@azure/communication-chat 1.5.2 → 1.5.3

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.
@@ -1,5 +1,5 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
2
+ // Licensed under the MIT License.
3
3
  /// <reference lib="esnext.asynciterable" />
4
4
  import { __asyncDelegator, __asyncGenerator, __asyncValues, __await } from "tslib";
5
5
  import { ConnectionState, } from "@azure/communication-signaling";
@@ -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/// <reference lib=\"esnext.asynciterable\" />\n\nimport {\n ChatClientOptions,\n CreateChatThreadOptions,\n DeleteChatThreadOptions,\n ListChatThreadsOptions,\n} from \"./models/options\";\nimport {\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\";\nimport { ChatThreadItem, CreateChatThreadResult, ListPageSettings } from \"./models/models\";\nimport {\n ConnectionState,\n SignalingClient,\n SignalingClientOptions,\n} from \"@azure/communication-signaling\";\nimport {\n mapToChatParticipantRestModel,\n mapToCreateChatThreadOptionsRestModel,\n mapToCreateChatThreadResultSdkModel,\n} from \"./models/mappers\";\n\nimport { ChatApiClient } from \"./generated/src\";\nimport { ChatThreadClient } from \"./chatThreadClient\";\nimport { CommunicationTokenCredential } from \"@azure/communication-common\";\nimport { CreateChatThreadRequest } from \"./models/requests\";\nimport { EventEmitter } from \"events\";\nimport { InternalPipelineOptions } from \"@azure/core-rest-pipeline\";\nimport { PagedAsyncIterableIterator } from \"@azure/core-paging\";\nimport { createCommunicationTokenCredentialPolicy } from \"./credential/communicationTokenCredentialPolicy\";\nimport { generateUuid } from \"./models/uuid\";\nimport { getSignalingClient } from \"./signaling/signalingClient\";\nimport { logger } from \"./models/logger\";\nimport { tracingClient } from \"./generated/src/tracing\";\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 },\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
+ {"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/// <reference lib=\"esnext.asynciterable\" />\n\nimport {\n ChatClientOptions,\n CreateChatThreadOptions,\n DeleteChatThreadOptions,\n ListChatThreadsOptions,\n} from \"./models/options\";\nimport {\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\";\nimport { ChatThreadItem, CreateChatThreadResult, ListPageSettings } from \"./models/models\";\nimport {\n ConnectionState,\n SignalingClient,\n SignalingClientOptions,\n} from \"@azure/communication-signaling\";\nimport {\n mapToChatParticipantRestModel,\n mapToCreateChatThreadOptionsRestModel,\n mapToCreateChatThreadResultSdkModel,\n} from \"./models/mappers\";\n\nimport { ChatApiClient } from \"./generated/src\";\nimport { ChatThreadClient } from \"./chatThreadClient\";\nimport { CommunicationTokenCredential } from \"@azure/communication-common\";\nimport { CreateChatThreadRequest } from \"./models/requests\";\nimport { EventEmitter } from \"events\";\nimport { InternalPipelineOptions } from \"@azure/core-rest-pipeline\";\nimport { PagedAsyncIterableIterator } from \"@azure/core-paging\";\nimport { createCommunicationTokenCredentialPolicy } from \"./credential/communicationTokenCredentialPolicy\";\nimport { generateUuid } from \"./models/uuid\";\nimport { getSignalingClient } from \"./signaling/signalingClient\";\nimport { logger } from \"./models/logger\";\nimport { tracingClient } from \"./generated/src/tracing\";\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 },\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,5 +1,5 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
2
+ // Licensed under the MIT License.
3
3
  import { __asyncDelegator, __asyncGenerator, __asyncValues, __await, __rest } from "tslib";
4
4
  import { logger } from "./models/logger";
5
5
  import { serializeCommunicationIdentifier, } from "@azure/communication-common";
@@ -1 +1 @@
1
- {"version":3,"file":"chatThreadClient.js","sourceRoot":"","sources":["../../src/chatThreadClient.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAGL,gCAAgC,GACjC,MAAM,6BAA6B,CAAC;AAiBrC,OAAO,EACL,wCAAwC,EACxC,wBAAwB,EACxB,4BAA4B,EAC5B,iCAAiC,EACjC,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAiB1B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,wCAAwC,EAAE,MAAM,iDAAiD,CAAC;AAC3G,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,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,cAAc,EAAE,EAAE;YACvB,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;;;;;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\";\nimport {\n CommunicationIdentifier,\n CommunicationTokenCredential,\n serializeCommunicationIdentifier,\n} from \"@azure/communication-common\";\nimport { PagedAsyncIterableIterator } from \"@azure/core-paging\";\nimport {\n AddParticipantsRequest,\n SendMessageRequest,\n SendReadReceiptRequest,\n} from \"./models/requests\";\n\nimport {\n AddChatParticipantsResult,\n ChatMessage,\n ChatMessageReadReceipt,\n ChatParticipant,\n ChatThreadProperties,\n ListPageSettings,\n SendChatMessageResult,\n} from \"./models/models\";\nimport {\n mapToAddChatParticipantsRequestRestModel,\n mapToChatMessageSdkModel,\n mapToChatParticipantSdkModel,\n mapToChatThreadPropertiesSdkModel,\n mapToReadReceiptSdkModel,\n} from \"./models/mappers\";\nimport {\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} from \"./models/options\";\nimport { ChatApiClient } from \"./generated/src\";\nimport { InternalPipelineOptions } from \"@azure/core-rest-pipeline\";\nimport { createCommunicationTokenCredentialPolicy } from \"./credential/communicationTokenCredentialPolicy\";\nimport { tracingClient } from \"./generated/src/tracing\";\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) => {\n await this.client.chatThread.updateChatThreadProperties(\n this.threadId,\n { topic: topic },\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"]}
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\";\nimport {\n CommunicationIdentifier,\n CommunicationTokenCredential,\n serializeCommunicationIdentifier,\n} from \"@azure/communication-common\";\nimport { PagedAsyncIterableIterator } from \"@azure/core-paging\";\nimport {\n AddParticipantsRequest,\n SendMessageRequest,\n SendReadReceiptRequest,\n} from \"./models/requests\";\n\nimport {\n AddChatParticipantsResult,\n ChatMessage,\n ChatMessageReadReceipt,\n ChatParticipant,\n ChatThreadProperties,\n ListPageSettings,\n SendChatMessageResult,\n} from \"./models/models\";\nimport {\n mapToAddChatParticipantsRequestRestModel,\n mapToChatMessageSdkModel,\n mapToChatParticipantSdkModel,\n mapToChatThreadPropertiesSdkModel,\n mapToReadReceiptSdkModel,\n} from \"./models/mappers\";\nimport {\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} from \"./models/options\";\nimport { ChatApiClient } from \"./generated/src\";\nimport { InternalPipelineOptions } from \"@azure/core-rest-pipeline\";\nimport { createCommunicationTokenCredentialPolicy } from \"./credential/communicationTokenCredentialPolicy\";\nimport { tracingClient } from \"./generated/src/tracing\";\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) => {\n await this.client.chatThread.updateChatThreadProperties(\n this.threadId,\n { topic: topic },\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"]}
@@ -1,5 +1,5 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
2
+ // Licensed under the MIT License.
3
3
  import { bearerTokenAuthenticationPolicy, } from "@azure/core-rest-pipeline";
4
4
  /**
5
5
  * Creates a new CommunicationTokenCredentialPolicy factory.
@@ -1 +1 @@
1
- {"version":3,"file":"communicationTokenCredentialPolicy.js","sourceRoot":"","sources":["../../../src/credential/communicationTokenCredentialPolicy.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAGL,+BAA+B,GAChC,MAAM,2BAA2B,CAAC;AAEnC;;;;GAIG;AACH,MAAM,CAAC,MAAM,wCAAwC,GAAG,CACtD,UAAwC,EACxB,EAAE;IAClB,MAAM,aAAa,GAA2C;QAC5D,UAAU,EAAE;YACV,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,EAAE,CAAC;SAC3F;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IAEF,OAAO,+BAA+B,CAAC,aAAa,CAAC,CAAC;AACxD,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { CommunicationTokenCredential } from \"@azure/communication-common\";\nimport {\n BearerTokenAuthenticationPolicyOptions,\n PipelinePolicy,\n bearerTokenAuthenticationPolicy,\n} from \"@azure/core-rest-pipeline\";\n\n/**\n * Creates a new CommunicationTokenCredentialPolicy factory.\n *\n * @param credential - The CommunicationTokenCredential implementation that can supply the user credential.\n */\nexport const createCommunicationTokenCredentialPolicy = (\n credential: CommunicationTokenCredential,\n): PipelinePolicy => {\n const policyOptions: BearerTokenAuthenticationPolicyOptions = {\n credential: {\n getToken: (_scopes, options) => credential.getToken({ abortSignal: options?.abortSignal }),\n },\n scopes: [],\n };\n\n return bearerTokenAuthenticationPolicy(policyOptions);\n};\n"]}
1
+ {"version":3,"file":"communicationTokenCredentialPolicy.js","sourceRoot":"","sources":["../../../src/credential/communicationTokenCredentialPolicy.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAGL,+BAA+B,GAChC,MAAM,2BAA2B,CAAC;AAEnC;;;;GAIG;AACH,MAAM,CAAC,MAAM,wCAAwC,GAAG,CACtD,UAAwC,EACxB,EAAE;IAClB,MAAM,aAAa,GAA2C;QAC5D,UAAU,EAAE;YACV,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,EAAE,CAAC;SAC3F;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IAEF,OAAO,+BAA+B,CAAC,aAAa,CAAC,CAAC;AACxD,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CommunicationTokenCredential } from \"@azure/communication-common\";\nimport {\n BearerTokenAuthenticationPolicyOptions,\n PipelinePolicy,\n bearerTokenAuthenticationPolicy,\n} from \"@azure/core-rest-pipeline\";\n\n/**\n * Creates a new CommunicationTokenCredentialPolicy factory.\n *\n * @param credential - The CommunicationTokenCredential implementation that can supply the user credential.\n */\nexport const createCommunicationTokenCredentialPolicy = (\n credential: CommunicationTokenCredential,\n): PipelinePolicy => {\n const policyOptions: BearerTokenAuthenticationPolicyOptions = {\n credential: {\n getToken: (_scopes, options) => credential.getToken({ abortSignal: options?.abortSignal }),\n },\n scopes: [],\n };\n\n return bearerTokenAuthenticationPolicy(policyOptions);\n};\n"]}
@@ -1,5 +1,5 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
2
+ // Licensed under the MIT License.
3
3
  export * from "./models/options";
4
4
  export * from "./models/requests";
5
5
  export * from "./models/models";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport * from \"./models/options\";\nexport * from \"./models/requests\";\nexport * from \"./models/models\";\nexport * from \"./models/events\";\nexport * from \"./chatClient\";\nexport * from \"./chatThreadClient\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport * from \"./models/options\";\nexport * from \"./models/requests\";\nexport * from \"./models/models\";\nexport * from \"./models/events\";\nexport * from \"./chatClient\";\nexport * from \"./chatThreadClient\";\n"]}
@@ -1,4 +1,4 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
2
+ // Licensed under the MIT License.
3
3
  export {};
4
4
  //# sourceMappingURL=events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/models/events.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n ChatMessageDeletedEvent,\n ChatMessageEditedEvent,\n ChatMessageReceivedEvent,\n ChatThreadCreatedEvent,\n ChatThreadDeletedEvent,\n ChatThreadPropertiesUpdatedEvent,\n ParticipantsAddedEvent,\n ParticipantsRemovedEvent,\n ReadReceiptReceivedEvent,\n TypingIndicatorReceivedEvent,\n} from \"@azure/communication-signaling\";\n\ntype ChatEventId =\n | \"chatMessageReceived\"\n | \"chatMessageEdited\"\n | \"chatMessageDeleted\"\n | \"typingIndicatorReceived\"\n | \"readReceiptReceived\"\n | \"chatThreadCreated\"\n | \"chatThreadDeleted\"\n | \"chatThreadPropertiesUpdated\"\n | \"participantsAdded\"\n | \"participantsRemoved\"\n | \"realTimeNotificationConnected\"\n | \"realTimeNotificationDisconnected\";\n\nexport {\n ChatEventId,\n ChatMessageReceivedEvent,\n ChatMessageEditedEvent,\n ChatMessageDeletedEvent,\n ReadReceiptReceivedEvent,\n TypingIndicatorReceivedEvent,\n ChatThreadCreatedEvent,\n ChatThreadDeletedEvent,\n ChatThreadPropertiesUpdatedEvent,\n ParticipantsAddedEvent,\n ParticipantsRemovedEvent,\n};\n"]}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/models/events.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n ChatMessageDeletedEvent,\n ChatMessageEditedEvent,\n ChatMessageReceivedEvent,\n ChatThreadCreatedEvent,\n ChatThreadDeletedEvent,\n ChatThreadPropertiesUpdatedEvent,\n ParticipantsAddedEvent,\n ParticipantsRemovedEvent,\n ReadReceiptReceivedEvent,\n TypingIndicatorReceivedEvent,\n} from \"@azure/communication-signaling\";\n\ntype ChatEventId =\n | \"chatMessageReceived\"\n | \"chatMessageEdited\"\n | \"chatMessageDeleted\"\n | \"typingIndicatorReceived\"\n | \"readReceiptReceived\"\n | \"chatThreadCreated\"\n | \"chatThreadDeleted\"\n | \"chatThreadPropertiesUpdated\"\n | \"participantsAdded\"\n | \"participantsRemoved\"\n | \"realTimeNotificationConnected\"\n | \"realTimeNotificationDisconnected\";\n\nexport {\n ChatEventId,\n ChatMessageReceivedEvent,\n ChatMessageEditedEvent,\n ChatMessageDeletedEvent,\n ReadReceiptReceivedEvent,\n TypingIndicatorReceivedEvent,\n ChatThreadCreatedEvent,\n ChatThreadDeletedEvent,\n ChatThreadPropertiesUpdatedEvent,\n ParticipantsAddedEvent,\n ParticipantsRemovedEvent,\n};\n"]}
@@ -1,5 +1,5 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
2
+ // Licensed under the MIT License.
3
3
  import { createClientLogger } from "@azure/logger";
4
4
  export const logger = createClientLogger("communication-chat");
5
5
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/models/logger.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,CAAC,MAAM,MAAM,GAAG,kBAAkB,CAAC,oBAAoB,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { createClientLogger } from \"@azure/logger\";\n\nexport const logger = createClientLogger(\"communication-chat\");\n"]}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/models/logger.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,CAAC,MAAM,MAAM,GAAG,kBAAkB,CAAC,oBAAoB,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createClientLogger } from \"@azure/logger\";\n\nexport const logger = createClientLogger(\"communication-chat\");\n"]}
@@ -1,5 +1,5 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
2
+ // Licensed under the MIT License.
3
3
  import { __rest } from "tslib";
4
4
  import { deserializeCommunicationIdentifier, serializeCommunicationIdentifier, } from "@azure/communication-common";
5
5
  export const mapToCreateChatThreadOptionsRestModel = (options) => {
@@ -1 +1 @@
1
- {"version":3,"file":"mappers.js","sourceRoot":"","sources":["../../../src/models/mappers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n SerializedCommunicationIdentifier,\n deserializeCommunicationIdentifier,\n serializeCommunicationIdentifier,\n} from \"@azure/communication-common\";\nimport * as RestModel from \"../generated/src/models\";\nimport { AddParticipantsRequest } from \"./requests\";\nimport { CreateChatThreadOptions } from \"./options\";\nimport {\n ChatMessage,\n ChatMessageContent,\n ChatMessageReadReceipt,\n ChatParticipant,\n ChatThreadProperties,\n CreateChatThreadResult,\n} from \"./models\";\n\nexport const mapToCreateChatThreadOptionsRestModel = (\n options: CreateChatThreadOptions,\n): RestModel.ChatCreateChatThreadOptionalParams => {\n const { participants, idempotencyToken, ...rest } = options;\n return {\n repeatabilityRequestId: idempotencyToken,\n ...rest,\n };\n};\n\n/**\n * @internal\n * Mapping chat participant customer model to chat participant REST model\n */\nexport const mapToChatParticipantRestModel = (\n chatParticipant: ChatParticipant,\n): RestModel.ChatParticipant => {\n const { id, ...rest } = chatParticipant;\n return {\n ...rest,\n communicationIdentifier: serializeCommunicationIdentifier(id),\n };\n};\n\n/**\n * @internal\n * Mapping add participants request to add chat participants request REST model\n */\nexport const mapToAddChatParticipantsRequestRestModel = (\n addParticipantsRequest: AddParticipantsRequest,\n): RestModel.AddChatParticipantsRequest => {\n return {\n participants: addParticipantsRequest.participants?.map((participant) =>\n mapToChatParticipantRestModel(participant),\n ),\n };\n};\n\n/**\n * @internal\n * Mapping chat participant REST model to chat participant SDK model\n */\nexport const mapToChatParticipantSdkModel = (\n chatParticipant: RestModel.ChatParticipant,\n): ChatParticipant => {\n const { communicationIdentifier, ...rest } = chatParticipant;\n return {\n ...rest,\n id: deserializeCommunicationIdentifier(\n communicationIdentifier as SerializedCommunicationIdentifier,\n ),\n };\n};\n\n/**\n * @internal\n */\nexport const mapToChatContentSdkModel = (\n content: RestModel.ChatMessageContent,\n): ChatMessageContent => {\n const { participants, initiatorCommunicationIdentifier, ...otherChatContents } = content;\n let result: ChatMessageContent = { ...otherChatContents };\n if (initiatorCommunicationIdentifier) {\n const initiator = deserializeCommunicationIdentifier(\n initiatorCommunicationIdentifier as SerializedCommunicationIdentifier,\n );\n result = { ...result, initiator };\n }\n if (participants) {\n result = {\n ...result,\n participants: participants?.map((participant) => mapToChatParticipantSdkModel(participant)),\n };\n }\n return result;\n};\n\n/**\n * @internal\n * Mapping chat message REST model to chat message SDK model\n */\nexport const mapToChatMessageSdkModel = (chatMessage: RestModel.ChatMessage): ChatMessage => {\n const { content, senderCommunicationIdentifier, ...otherChatMessage } = chatMessage;\n let result: ChatMessage = { ...otherChatMessage };\n if (content) {\n result = {\n ...result,\n content: mapToChatContentSdkModel(content),\n };\n }\n if (senderCommunicationIdentifier) {\n const sender = deserializeCommunicationIdentifier(\n senderCommunicationIdentifier as SerializedCommunicationIdentifier,\n );\n result = { ...result, sender };\n }\n return result;\n};\n\n/**\n * @internal\n * Mapping chat messages collection REST model to chat message SDK model array\n */\nexport const mapToChatMessagesSdkModelArray = (\n chatMessagesCollection: RestModel.ChatMessagesCollection,\n): ChatMessage[] => {\n return chatMessagesCollection.value?.map((chatMessage) => mapToChatMessageSdkModel(chatMessage));\n};\n\n/**\n * @internal\n * Mapping chat thread REST model to chat thread SDK model\n */\nexport const mapToChatThreadPropertiesSdkModel = (\n chatThread: RestModel.ChatThreadProperties,\n): ChatThreadProperties => {\n const { createdByCommunicationIdentifier, ...rest } = chatThread;\n if (createdByCommunicationIdentifier) {\n return {\n ...rest,\n createdBy: deserializeCommunicationIdentifier(\n createdByCommunicationIdentifier as SerializedCommunicationIdentifier,\n ),\n };\n } else {\n return { ...rest };\n }\n};\n\n/**\n * @internal\n * Mapping chat thread REST model to chat thread SDK model\n */\nexport const mapToCreateChatThreadResultSdkModel = (\n result: RestModel.CreateChatThreadResult,\n): CreateChatThreadResult => {\n const { chatThread, ...rest } = result;\n if (chatThread) {\n return {\n ...rest,\n chatThread: mapToChatThreadPropertiesSdkModel(chatThread),\n };\n } else {\n return { ...rest };\n }\n};\n\n/**\n * @internal\n * Mapping read receipt REST model to read receipt SDK model\n */\nexport const mapToReadReceiptSdkModel = (\n readReceipt: RestModel.ChatMessageReadReceipt,\n): ChatMessageReadReceipt => {\n const { senderCommunicationIdentifier, ...rest } = readReceipt;\n return {\n ...rest,\n sender: deserializeCommunicationIdentifier(\n senderCommunicationIdentifier as SerializedCommunicationIdentifier,\n ),\n };\n};\n"]}
1
+ {"version":3,"file":"mappers.js","sourceRoot":"","sources":["../../../src/models/mappers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n SerializedCommunicationIdentifier,\n deserializeCommunicationIdentifier,\n serializeCommunicationIdentifier,\n} from \"@azure/communication-common\";\nimport * as RestModel from \"../generated/src/models\";\nimport { AddParticipantsRequest } from \"./requests\";\nimport { CreateChatThreadOptions } from \"./options\";\nimport {\n ChatMessage,\n ChatMessageContent,\n ChatMessageReadReceipt,\n ChatParticipant,\n ChatThreadProperties,\n CreateChatThreadResult,\n} from \"./models\";\n\nexport const mapToCreateChatThreadOptionsRestModel = (\n options: CreateChatThreadOptions,\n): RestModel.ChatCreateChatThreadOptionalParams => {\n const { participants, idempotencyToken, ...rest } = options;\n return {\n repeatabilityRequestId: idempotencyToken,\n ...rest,\n };\n};\n\n/**\n * @internal\n * Mapping chat participant customer model to chat participant REST model\n */\nexport const mapToChatParticipantRestModel = (\n chatParticipant: ChatParticipant,\n): RestModel.ChatParticipant => {\n const { id, ...rest } = chatParticipant;\n return {\n ...rest,\n communicationIdentifier: serializeCommunicationIdentifier(id),\n };\n};\n\n/**\n * @internal\n * Mapping add participants request to add chat participants request REST model\n */\nexport const mapToAddChatParticipantsRequestRestModel = (\n addParticipantsRequest: AddParticipantsRequest,\n): RestModel.AddChatParticipantsRequest => {\n return {\n participants: addParticipantsRequest.participants?.map((participant) =>\n mapToChatParticipantRestModel(participant),\n ),\n };\n};\n\n/**\n * @internal\n * Mapping chat participant REST model to chat participant SDK model\n */\nexport const mapToChatParticipantSdkModel = (\n chatParticipant: RestModel.ChatParticipant,\n): ChatParticipant => {\n const { communicationIdentifier, ...rest } = chatParticipant;\n return {\n ...rest,\n id: deserializeCommunicationIdentifier(\n communicationIdentifier as SerializedCommunicationIdentifier,\n ),\n };\n};\n\n/**\n * @internal\n */\nexport const mapToChatContentSdkModel = (\n content: RestModel.ChatMessageContent,\n): ChatMessageContent => {\n const { participants, initiatorCommunicationIdentifier, ...otherChatContents } = content;\n let result: ChatMessageContent = { ...otherChatContents };\n if (initiatorCommunicationIdentifier) {\n const initiator = deserializeCommunicationIdentifier(\n initiatorCommunicationIdentifier as SerializedCommunicationIdentifier,\n );\n result = { ...result, initiator };\n }\n if (participants) {\n result = {\n ...result,\n participants: participants?.map((participant) => mapToChatParticipantSdkModel(participant)),\n };\n }\n return result;\n};\n\n/**\n * @internal\n * Mapping chat message REST model to chat message SDK model\n */\nexport const mapToChatMessageSdkModel = (chatMessage: RestModel.ChatMessage): ChatMessage => {\n const { content, senderCommunicationIdentifier, ...otherChatMessage } = chatMessage;\n let result: ChatMessage = { ...otherChatMessage };\n if (content) {\n result = {\n ...result,\n content: mapToChatContentSdkModel(content),\n };\n }\n if (senderCommunicationIdentifier) {\n const sender = deserializeCommunicationIdentifier(\n senderCommunicationIdentifier as SerializedCommunicationIdentifier,\n );\n result = { ...result, sender };\n }\n return result;\n};\n\n/**\n * @internal\n * Mapping chat messages collection REST model to chat message SDK model array\n */\nexport const mapToChatMessagesSdkModelArray = (\n chatMessagesCollection: RestModel.ChatMessagesCollection,\n): ChatMessage[] => {\n return chatMessagesCollection.value?.map((chatMessage) => mapToChatMessageSdkModel(chatMessage));\n};\n\n/**\n * @internal\n * Mapping chat thread REST model to chat thread SDK model\n */\nexport const mapToChatThreadPropertiesSdkModel = (\n chatThread: RestModel.ChatThreadProperties,\n): ChatThreadProperties => {\n const { createdByCommunicationIdentifier, ...rest } = chatThread;\n if (createdByCommunicationIdentifier) {\n return {\n ...rest,\n createdBy: deserializeCommunicationIdentifier(\n createdByCommunicationIdentifier as SerializedCommunicationIdentifier,\n ),\n };\n } else {\n return { ...rest };\n }\n};\n\n/**\n * @internal\n * Mapping chat thread REST model to chat thread SDK model\n */\nexport const mapToCreateChatThreadResultSdkModel = (\n result: RestModel.CreateChatThreadResult,\n): CreateChatThreadResult => {\n const { chatThread, ...rest } = result;\n if (chatThread) {\n return {\n ...rest,\n chatThread: mapToChatThreadPropertiesSdkModel(chatThread),\n };\n } else {\n return { ...rest };\n }\n};\n\n/**\n * @internal\n * Mapping read receipt REST model to read receipt SDK model\n */\nexport const mapToReadReceiptSdkModel = (\n readReceipt: RestModel.ChatMessageReadReceipt,\n): ChatMessageReadReceipt => {\n const { senderCommunicationIdentifier, ...rest } = readReceipt;\n return {\n ...rest,\n sender: deserializeCommunicationIdentifier(\n senderCommunicationIdentifier as SerializedCommunicationIdentifier,\n ),\n };\n};\n"]}
@@ -1,4 +1,4 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
2
+ // Licensed under the MIT License.
3
3
  export {};
4
4
  //# sourceMappingURL=models.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/models/models.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { CommunicationIdentifier, CommunicationIdentifierKind } from \"@azure/communication-common\";\nimport { ChatError, ChatMessageType } from \"../generated/src\";\n\nexport {\n AddChatParticipantsResult,\n ChatMessageType,\n ChatThreadItem,\n ChatError,\n SendChatMessageResult,\n} from \"../generated/src/models\";\n\n/** Chat thread. */\nexport interface ChatThreadProperties {\n /** Chat thread id. */\n id: string;\n /** Chat thread topic. */\n topic: string;\n /** The timestamp when the chat thread was created. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`. */\n createdOn: Date;\n /** Identifies a participant in Azure Communication services. A participant is, for example, a phone number or an Azure communication user. This model must be interpreted as a union: Apart from rawId, at most one further property may be set. */\n readonly createdBy?: CommunicationIdentifierKind;\n /** The timestamp when the chat thread was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`. */\n deletedOn?: Date;\n}\n\n/** Chat message. */\nexport interface ChatMessage {\n /** The id of the chat message. This id is server generated. */\n id: string;\n /** The chat message type. */\n type: ChatMessageType;\n /** Sequence of the chat message in the conversation. */\n sequenceId: string;\n /** Version of the chat message. */\n version: string;\n /** Content of a chat message. */\n content?: ChatMessageContent;\n /** The display name of the chat message sender. This property is used to populate sender name for push notifications. */\n senderDisplayName?: string;\n /** The timestamp when the chat message arrived at the server. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`. */\n createdOn: Date;\n /** Identifies a participant in Azure Communication services. A participant is, for example, a phone number or an Azure communication user. This model must be interpreted as a union: Apart from rawId, at most one further property may be set. */\n sender?: CommunicationIdentifierKind;\n /** The timestamp (if applicable) when the message was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`. */\n deletedOn?: Date;\n /** The last timestamp (if applicable) when the message was edited. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`. */\n editedOn?: Date;\n /** metadata */\n metadata?: Record<string, string>;\n}\n\n/** Content of a chat message. */\nexport interface ChatMessageContent {\n /** Chat message content for messages of types text or html. */\n message?: string;\n /** Chat message content for messages of type topicUpdated. */\n topic?: string;\n /** Chat message content for messages of types participantAdded or participantRemoved. */\n participants?: ChatParticipant[];\n /** Identifies a participant in Azure Communication services. A participant is, for example, a phone number or an Azure communication user. This model must be interpreted as a union: Apart from rawId, at most one further property may be set. */\n initiator?: CommunicationIdentifierKind;\n /** List of attachments for this message */\n attachments?: ChatAttachment[];\n}\n\n/** A chat message read receipt indicates the time a chat message was read by a recipient. */\nexport interface ChatMessageReadReceipt {\n /** Identifies a participant in Azure Communication services. A participant is, for example, a phone number or an Azure communication user. This model must be interpreted as a union: Apart from rawId, at most one further property may be set. */\n sender: CommunicationIdentifierKind;\n /** Id of the chat message that has been read. This id is generated by the server. */\n chatMessageId: string;\n /** The time at which the message was read. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`. */\n readOn: Date;\n}\n\n/** A participant of the chat thread. */\nexport interface ChatParticipant {\n /** Identifies a participant in Azure Communication services. A participant is, for example, a phone number or an Azure communication user. This model must be interpreted as a union: Apart from rawId, at most one further property may be set. */\n id: CommunicationIdentifier;\n /** Display name for the chat participant. */\n displayName?: string;\n /** Time from which the chat history is shared with the participant. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`. */\n shareHistoryTime?: Date;\n}\n\n/** Result of the create chat thread operation. */\nexport interface CreateChatThreadResult {\n /** Chat thread. */\n chatThread?: ChatThreadProperties;\n /**\n * The participants that failed to be added to the chat thread.\n * NOTE: This property will not be serialized. It can only be populated by the server.\n */\n readonly invalidParticipants?: ChatError[];\n}\n\n/**\n * Arguments for retrieving the next page of search results.\n */\nexport interface ListPageSettings {\n /**\n * A token used for retrieving the next page of results when the server\n * enforces pagination.\n */\n continuationToken?: string;\n}\n\n/** Defines values for AttachmentType. */\nexport type ChatAttachmentType = \"image\" | \"file\" | \"unknown\";\n\n/** An attachment in a chat message. */\nexport interface ChatAttachment {\n /** Id of the attachment */\n id: string;\n /** The type of attachment. */\n attachmentType: ChatAttachmentType;\n /** The name of the attachment content. */\n name?: string;\n /** The URL where the attachment can be downloaded */\n url?: string;\n /** The URL where the preview of attachment can be downloaded */\n previewUrl?: string;\n}\n"]}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/models/models.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CommunicationIdentifier, CommunicationIdentifierKind } from \"@azure/communication-common\";\nimport { ChatError, ChatMessageType } from \"../generated/src\";\n\nexport {\n AddChatParticipantsResult,\n ChatMessageType,\n ChatThreadItem,\n ChatError,\n SendChatMessageResult,\n} from \"../generated/src/models\";\n\n/** Chat thread. */\nexport interface ChatThreadProperties {\n /** Chat thread id. */\n id: string;\n /** Chat thread topic. */\n topic: string;\n /** The timestamp when the chat thread was created. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`. */\n createdOn: Date;\n /** Identifies a participant in Azure Communication services. A participant is, for example, a phone number or an Azure communication user. This model must be interpreted as a union: Apart from rawId, at most one further property may be set. */\n readonly createdBy?: CommunicationIdentifierKind;\n /** The timestamp when the chat thread was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`. */\n deletedOn?: Date;\n}\n\n/** Chat message. */\nexport interface ChatMessage {\n /** The id of the chat message. This id is server generated. */\n id: string;\n /** The chat message type. */\n type: ChatMessageType;\n /** Sequence of the chat message in the conversation. */\n sequenceId: string;\n /** Version of the chat message. */\n version: string;\n /** Content of a chat message. */\n content?: ChatMessageContent;\n /** The display name of the chat message sender. This property is used to populate sender name for push notifications. */\n senderDisplayName?: string;\n /** The timestamp when the chat message arrived at the server. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`. */\n createdOn: Date;\n /** Identifies a participant in Azure Communication services. A participant is, for example, a phone number or an Azure communication user. This model must be interpreted as a union: Apart from rawId, at most one further property may be set. */\n sender?: CommunicationIdentifierKind;\n /** The timestamp (if applicable) when the message was deleted. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`. */\n deletedOn?: Date;\n /** The last timestamp (if applicable) when the message was edited. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`. */\n editedOn?: Date;\n /** metadata */\n metadata?: Record<string, string>;\n}\n\n/** Content of a chat message. */\nexport interface ChatMessageContent {\n /** Chat message content for messages of types text or html. */\n message?: string;\n /** Chat message content for messages of type topicUpdated. */\n topic?: string;\n /** Chat message content for messages of types participantAdded or participantRemoved. */\n participants?: ChatParticipant[];\n /** Identifies a participant in Azure Communication services. A participant is, for example, a phone number or an Azure communication user. This model must be interpreted as a union: Apart from rawId, at most one further property may be set. */\n initiator?: CommunicationIdentifierKind;\n /** List of attachments for this message */\n attachments?: ChatAttachment[];\n}\n\n/** A chat message read receipt indicates the time a chat message was read by a recipient. */\nexport interface ChatMessageReadReceipt {\n /** Identifies a participant in Azure Communication services. A participant is, for example, a phone number or an Azure communication user. This model must be interpreted as a union: Apart from rawId, at most one further property may be set. */\n sender: CommunicationIdentifierKind;\n /** Id of the chat message that has been read. This id is generated by the server. */\n chatMessageId: string;\n /** The time at which the message was read. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`. */\n readOn: Date;\n}\n\n/** A participant of the chat thread. */\nexport interface ChatParticipant {\n /** Identifies a participant in Azure Communication services. A participant is, for example, a phone number or an Azure communication user. This model must be interpreted as a union: Apart from rawId, at most one further property may be set. */\n id: CommunicationIdentifier;\n /** Display name for the chat participant. */\n displayName?: string;\n /** Time from which the chat history is shared with the participant. The timestamp is in RFC3339 format: `yyyy-MM-ddTHH:mm:ssZ`. */\n shareHistoryTime?: Date;\n}\n\n/** Result of the create chat thread operation. */\nexport interface CreateChatThreadResult {\n /** Chat thread. */\n chatThread?: ChatThreadProperties;\n /**\n * The participants that failed to be added to the chat thread.\n * NOTE: This property will not be serialized. It can only be populated by the server.\n */\n readonly invalidParticipants?: ChatError[];\n}\n\n/**\n * Arguments for retrieving the next page of search results.\n */\nexport interface ListPageSettings {\n /**\n * A token used for retrieving the next page of results when the server\n * enforces pagination.\n */\n continuationToken?: string;\n}\n\n/** Defines values for AttachmentType. */\nexport type ChatAttachmentType = \"image\" | \"file\" | \"unknown\";\n\n/** An attachment in a chat message. */\nexport interface ChatAttachment {\n /** Id of the attachment */\n id: string;\n /** The type of attachment. */\n attachmentType: ChatAttachmentType;\n /** The name of the attachment content. */\n name?: string;\n /** The URL where the attachment can be downloaded */\n url?: string;\n /** The URL where the preview of attachment can be downloaded */\n previewUrl?: string;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/models/options.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { CommonClientOptions, OperationOptions } from \"@azure/core-client\";\nimport {\n ChatMessageType,\n ChatListChatThreadsOptionalParams as RestListChatThreadsOptions,\n ChatThreadListChatMessagesOptionalParams as RestListMessagesOptions,\n ChatThreadListChatParticipantsOptionalParams as RestListParticipantsOptions,\n ChatThreadListChatReadReceiptsOptionalParams as RestListReadReceiptsOptions,\n} from \"../generated/src/models\";\nimport { ChatParticipant } from \"./models\";\n\nexport {\n RestListMessagesOptions,\n RestListChatThreadsOptions,\n RestListParticipantsOptions,\n RestListReadReceiptsOptions,\n};\n\n/**\n * Options to create chat client.\n */\nexport interface ChatClientOptions extends CommonClientOptions {}\n\n/**\n * Options to create chat thread client.\n */\nexport interface ChatThreadClientOptions extends ChatClientOptions {}\n\n/**\n * Options to update a chat thread.\n */\nexport interface UpdateTopicOptions extends OperationOptions {}\n\n/**\n * Options to get chat threads.\n */\nexport type ListChatThreadsOptions = RestListChatThreadsOptions;\n\n/**\n * Options to send a chat message.\n */\nexport interface SendMessageOptions extends OperationOptions {\n /** The display name of the chat message sender. This property is used to populate sender name for push notifications. */\n senderDisplayName?: string;\n /** The chat message type. */\n type?: ChatMessageType;\n /** Message metadata. */\n metadata?: Record<string, string>;\n}\n\n/**\n * Options to update a chat message.\n */\nexport interface UpdateMessageOptions extends OperationOptions {\n /** Chat message content. */\n content?: string;\n /** Message metadata. */\n metadata?: Record<string, string>;\n}\n\n/**\n * Options to list chat messages.\n */\nexport type ListMessagesOptions = RestListMessagesOptions;\n\n/**\n * Options to create a chat thread.\n */\nexport interface CreateChatThreadOptions extends OperationOptions {\n /** Participants to be added to the chat thread. */\n participants?: ChatParticipant[];\n /** If specified, the client directs that the request is repeatable; that is, that the client can make the request multiple times with the same Idempotency-Token and get back an appropriate response without the server executing the request multiple times. The value of the Idempotency-Token is an opaque string representing a client-generated, globally unique for all time, identifier for the request. It is recommended to use version 4 (random) UUIDs. */\n idempotencyToken?: string;\n}\n\n/**\n * Options to get a chat thread.\n */\nexport type GetPropertiesOptions = OperationOptions;\n\n/**\n * Options to delete a chat thread.\n */\nexport type DeleteChatThreadOptions = OperationOptions;\n\n/**\n * Options to get a chat message.\n */\nexport type GetMessageOptions = OperationOptions;\n\n/**\n * Options to delete a chat message.\n */\nexport type DeleteMessageOptions = OperationOptions;\n\n/**\n * Options to add a chat participant.\n */\nexport type AddParticipantsOptions = OperationOptions;\n\n/**\n * Options to list chat participants.\n */\nexport type ListParticipantsOptions = RestListParticipantsOptions;\n\n/**\n * Options to remove a chat participant.\n */\nexport type RemoveParticipantOptions = OperationOptions;\n\n/**\n * Options to send typing notifications.\n */\nexport interface SendTypingNotificationOptions extends OperationOptions {\n /** The display name of the typing notification sender. This property is used to populate sender name for push notifications. */\n senderDisplayName?: string;\n}\n\n/**\n * Options to send read receipt.\n */\nexport type SendReadReceiptOptions = OperationOptions;\n\n/**\n * Options to list read receipts.\n */\nexport type ListReadReceiptsOptions = RestListReadReceiptsOptions;\n"]}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/models/options.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { CommonClientOptions, OperationOptions } from \"@azure/core-client\";\nimport {\n ChatMessageType,\n ChatListChatThreadsOptionalParams as RestListChatThreadsOptions,\n ChatThreadListChatMessagesOptionalParams as RestListMessagesOptions,\n ChatThreadListChatParticipantsOptionalParams as RestListParticipantsOptions,\n ChatThreadListChatReadReceiptsOptionalParams as RestListReadReceiptsOptions,\n} from \"../generated/src/models\";\nimport { ChatParticipant } from \"./models\";\n\nexport {\n RestListMessagesOptions,\n RestListChatThreadsOptions,\n RestListParticipantsOptions,\n RestListReadReceiptsOptions,\n};\n\n/**\n * Options to create chat client.\n */\nexport interface ChatClientOptions extends CommonClientOptions {}\n\n/**\n * Options to create chat thread client.\n */\nexport interface ChatThreadClientOptions extends ChatClientOptions {}\n\n/**\n * Options to update a chat thread.\n */\nexport interface UpdateTopicOptions extends OperationOptions {}\n\n/**\n * Options to get chat threads.\n */\nexport type ListChatThreadsOptions = RestListChatThreadsOptions;\n\n/**\n * Options to send a chat message.\n */\nexport interface SendMessageOptions extends OperationOptions {\n /** The display name of the chat message sender. This property is used to populate sender name for push notifications. */\n senderDisplayName?: string;\n /** The chat message type. */\n type?: ChatMessageType;\n /** Message metadata. */\n metadata?: Record<string, string>;\n}\n\n/**\n * Options to update a chat message.\n */\nexport interface UpdateMessageOptions extends OperationOptions {\n /** Chat message content. */\n content?: string;\n /** Message metadata. */\n metadata?: Record<string, string>;\n}\n\n/**\n * Options to list chat messages.\n */\nexport type ListMessagesOptions = RestListMessagesOptions;\n\n/**\n * Options to create a chat thread.\n */\nexport interface CreateChatThreadOptions extends OperationOptions {\n /** Participants to be added to the chat thread. */\n participants?: ChatParticipant[];\n /** If specified, the client directs that the request is repeatable; that is, that the client can make the request multiple times with the same Idempotency-Token and get back an appropriate response without the server executing the request multiple times. The value of the Idempotency-Token is an opaque string representing a client-generated, globally unique for all time, identifier for the request. It is recommended to use version 4 (random) UUIDs. */\n idempotencyToken?: string;\n}\n\n/**\n * Options to get a chat thread.\n */\nexport type GetPropertiesOptions = OperationOptions;\n\n/**\n * Options to delete a chat thread.\n */\nexport type DeleteChatThreadOptions = OperationOptions;\n\n/**\n * Options to get a chat message.\n */\nexport type GetMessageOptions = OperationOptions;\n\n/**\n * Options to delete a chat message.\n */\nexport type DeleteMessageOptions = OperationOptions;\n\n/**\n * Options to add a chat participant.\n */\nexport type AddParticipantsOptions = OperationOptions;\n\n/**\n * Options to list chat participants.\n */\nexport type ListParticipantsOptions = RestListParticipantsOptions;\n\n/**\n * Options to remove a chat participant.\n */\nexport type RemoveParticipantOptions = OperationOptions;\n\n/**\n * Options to send typing notifications.\n */\nexport interface SendTypingNotificationOptions extends OperationOptions {\n /** The display name of the typing notification sender. This property is used to populate sender name for push notifications. */\n senderDisplayName?: string;\n}\n\n/**\n * Options to send read receipt.\n */\nexport type SendReadReceiptOptions = OperationOptions;\n\n/**\n * Options to list read receipts.\n */\nexport type ListReadReceiptsOptions = RestListReadReceiptsOptions;\n"]}
@@ -1,4 +1,4 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
2
+ // Licensed under the MIT License.
3
3
  export {};
4
4
  //# sourceMappingURL=requests.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"requests.js","sourceRoot":"","sources":["../../../src/models/requests.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { ChatParticipant } from \"./models\";\n\nexport { SendReadReceiptRequest } from \"../generated/src/models\";\n\n/** Participants to be added to the thread. */\nexport interface AddParticipantsRequest {\n /** Participants to add to a chat thread. */\n participants: ChatParticipant[];\n}\n\n/** Request payload for creating a chat thread. */\nexport interface CreateChatThreadRequest {\n /** The chat thread topic. */\n topic: string;\n}\n\n/** Details of the message to send. */\nexport interface SendMessageRequest {\n /** Chat message content. */\n content: string;\n}\n"]}
1
+ {"version":3,"file":"requests.js","sourceRoot":"","sources":["../../../src/models/requests.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ChatParticipant } from \"./models\";\n\nexport { SendReadReceiptRequest } from \"../generated/src/models\";\n\n/** Participants to be added to the thread. */\nexport interface AddParticipantsRequest {\n /** Participants to add to a chat thread. */\n participants: ChatParticipant[];\n}\n\n/** Request payload for creating a chat thread. */\nexport interface CreateChatThreadRequest {\n /** The chat thread topic. */\n topic: string;\n}\n\n/** Details of the message to send. */\nexport interface SendMessageRequest {\n /** Chat message content. */\n content: string;\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
2
+ // Licensed under the MIT License.
3
3
  import { v4 as uuidv4 } from "uuid";
4
4
  /**
5
5
  * Generated Universally Unique Identifier
@@ -1 +1 @@
1
- {"version":3,"file":"uuid.js","sourceRoot":"","sources":["../../../src/models/uuid.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,MAAM,EAAE,CAAC;AAClB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { v4 as uuidv4 } from \"uuid\";\n\n/**\n * Generated Universally Unique Identifier\n *\n * @returns RFC4122 v4 UUID.\n * @internal\n */\nexport function generateUuid(): string {\n return uuidv4();\n}\n"]}
1
+ {"version":3,"file":"uuid.js","sourceRoot":"","sources":["../../../src/models/uuid.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,MAAM,EAAE,CAAC;AAClB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { v4 as uuidv4 } from \"uuid\";\n\n/**\n * Generated Universally Unique Identifier\n *\n * @returns RFC4122 v4 UUID.\n * @internal\n */\nexport function generateUuid(): string {\n return uuidv4();\n}\n"]}
@@ -1,12 +1,13 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
2
+ // Licensed under the MIT License.
3
3
  import { CommunicationSignalingClient } from "@azure/communication-signaling";
4
4
  export const getSignalingClient = (credential, logger, options) => {
5
- var _a, _b, _c;
5
+ var _a, _b, _c, _d;
6
6
  return new CommunicationSignalingClient(credential, logger, {
7
- environment: (_a = options === null || options === void 0 ? void 0 : options.environment) !== null && _a !== void 0 ? _a : undefined,
8
- resourceEndpoint: (_b = options === null || options === void 0 ? void 0 : options.resourceEndpoint) !== null && _b !== void 0 ? _b : undefined,
9
- gatewayApiVersion: (_c = options === null || options === void 0 ? void 0 : options.gatewayApiVersion) !== null && _c !== void 0 ? _c : undefined,
7
+ resourceEndpoint: (_a = options === null || options === void 0 ? void 0 : options.resourceEndpoint) !== null && _a !== void 0 ? _a : undefined,
8
+ gatewayApiVersion: (_b = options === null || options === void 0 ? void 0 : options.gatewayApiVersion) !== null && _b !== void 0 ? _b : undefined,
9
+ additionalPolicies: (_c = options === null || options === void 0 ? void 0 : options.additionalPolicies) !== null && _c !== void 0 ? _c : undefined,
10
+ userAgentOptions: (_d = options === null || options === void 0 ? void 0 : options.userAgentOptions) !== null && _d !== void 0 ? _d : undefined,
10
11
  });
11
12
  };
12
13
  //# sourceMappingURL=signalingClient.browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"signalingClient.browser.js","sourceRoot":"","sources":["../../../src/signaling/signalingClient.browser.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,4BAA4B,EAAmB,MAAM,gCAAgC,CAAC;AAK/F,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,UAAwC,EACxC,MAAmB,EACnB,OAAgC,EACH,EAAE;;IAC/B,OAAO,IAAI,4BAA4B,CAAC,UAAU,EAAE,MAAM,EAAE;QAC1D,WAAW,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,mCAAI,SAAS;QAC9C,gBAAgB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,mCAAI,SAAS;QACxD,iBAAiB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,mCAAI,SAAS;KAC3D,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { CommunicationSignalingClient, SignalingClient } from \"@azure/communication-signaling\";\nimport { CommunicationTokenCredential } from \"@azure/communication-common\";\nimport { AzureLogger } from \"@azure/logger\";\nimport { SignalingClientOptions } from \"./signalingClient\";\n\nexport const getSignalingClient = (\n credential: CommunicationTokenCredential,\n logger: AzureLogger,\n options?: SignalingClientOptions,\n): SignalingClient | undefined => {\n return new CommunicationSignalingClient(credential, logger, {\n environment: options?.environment ?? undefined,\n resourceEndpoint: options?.resourceEndpoint ?? undefined,\n gatewayApiVersion: options?.gatewayApiVersion ?? undefined,\n });\n};\n"]}
1
+ {"version":3,"file":"signalingClient.browser.js","sourceRoot":"","sources":["../../../src/signaling/signalingClient.browser.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,4BAA4B,EAAmB,MAAM,gCAAgC,CAAC;AAK/F,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,UAAwC,EACxC,MAAmB,EACnB,OAAgC,EACH,EAAE;;IAC/B,OAAO,IAAI,4BAA4B,CAAC,UAAU,EAAE,MAAM,EAAE;QAC1D,gBAAgB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,mCAAI,SAAS;QACxD,iBAAiB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,mCAAI,SAAS;QAC1D,kBAAkB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB,mCAAI,SAAS;QAC5D,gBAAgB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,mCAAI,SAAS;KACzD,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CommunicationSignalingClient, SignalingClient } from \"@azure/communication-signaling\";\nimport { CommunicationTokenCredential } from \"@azure/communication-common\";\nimport { AzureLogger } from \"@azure/logger\";\nimport { SignalingClientOptions } from \"./signalingClient\";\n\nexport const getSignalingClient = (\n credential: CommunicationTokenCredential,\n logger: AzureLogger,\n options?: SignalingClientOptions,\n): SignalingClient | undefined => {\n return new CommunicationSignalingClient(credential, logger, {\n resourceEndpoint: options?.resourceEndpoint ?? undefined,\n gatewayApiVersion: options?.gatewayApiVersion ?? undefined,\n additionalPolicies: options?.additionalPolicies ?? undefined,\n userAgentOptions: options?.userAgentOptions ?? undefined,\n });\n};\n"]}
@@ -1,14 +1,15 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
2
+ // Licensed under the MIT License.
3
3
  import { CommunicationSignalingClient } from "@azure/communication-signaling";
4
4
  export const getSignalingClient = (credential, logger, options) => {
5
- var _a, _b, _c;
5
+ var _a, _b, _c, _d;
6
6
  if (typeof navigator !== "undefined" && navigator.product === "ReactNative") {
7
7
  // In React Native
8
8
  return new CommunicationSignalingClient(credential, logger, {
9
- environment: (_a = options === null || options === void 0 ? void 0 : options.environment) !== null && _a !== void 0 ? _a : undefined,
10
- resourceEndpoint: (_b = options === null || options === void 0 ? void 0 : options.resourceEndpoint) !== null && _b !== void 0 ? _b : undefined,
11
- gatewayApiVersion: (_c = options === null || options === void 0 ? void 0 : options.gatewayApiVersion) !== null && _c !== void 0 ? _c : undefined,
9
+ resourceEndpoint: (_a = options === null || options === void 0 ? void 0 : options.resourceEndpoint) !== null && _a !== void 0 ? _a : undefined,
10
+ gatewayApiVersion: (_b = options === null || options === void 0 ? void 0 : options.gatewayApiVersion) !== null && _b !== void 0 ? _b : undefined,
11
+ additionalPolicies: (_c = options === null || options === void 0 ? void 0 : options.additionalPolicies) !== null && _c !== void 0 ? _c : undefined,
12
+ userAgentOptions: (_d = options === null || options === void 0 ? void 0 : options.userAgentOptions) !== null && _d !== void 0 ? _d : undefined,
12
13
  });
13
14
  }
14
15
  // In node js
@@ -1 +1 @@
1
- {"version":3,"file":"signalingClient.js","sourceRoot":"","sources":["../../../src/signaling/signalingClient.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,4BAA4B,EAAmB,MAAM,gCAAgC,CAAC;AAU/F,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,UAAwC,EACxC,MAAmB,EACnB,OAAgC,EACH,EAAE;;IAC/B,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;QAC5E,kBAAkB;QAClB,OAAO,IAAI,4BAA4B,CAAC,UAAU,EAAE,MAAM,EAAE;YAC1D,WAAW,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,mCAAI,SAAS;YAC9C,gBAAgB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,mCAAI,SAAS;YACxD,iBAAiB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,mCAAI,SAAS;SAC3D,CAAC,CAAC;IACL,CAAC;IAED,aAAa;IACb,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { CommunicationSignalingClient, SignalingClient } from \"@azure/communication-signaling\";\nimport { CommunicationTokenCredential } from \"@azure/communication-common\";\nimport { AzureLogger } from \"@azure/logger\";\n\nexport interface SignalingClientOptions {\n environment?: string;\n resourceEndpoint?: string;\n gatewayApiVersion?: string;\n}\n\nexport const getSignalingClient = (\n credential: CommunicationTokenCredential,\n logger: AzureLogger,\n options?: SignalingClientOptions,\n): SignalingClient | undefined => {\n if (typeof navigator !== \"undefined\" && navigator.product === \"ReactNative\") {\n // In React Native\n return new CommunicationSignalingClient(credential, logger, {\n environment: options?.environment ?? undefined,\n resourceEndpoint: options?.resourceEndpoint ?? undefined,\n gatewayApiVersion: options?.gatewayApiVersion ?? undefined,\n });\n }\n\n // In node js\n return undefined;\n};\n"]}
1
+ {"version":3,"file":"signalingClient.js","sourceRoot":"","sources":["../../../src/signaling/signalingClient.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,4BAA4B,EAAmB,MAAM,gCAAgC,CAAC;AAU/F,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,UAAwC,EACxC,MAAmB,EACnB,OAAgC,EACH,EAAE;;IAC/B,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;QAC5E,kBAAkB;QAClB,OAAO,IAAI,4BAA4B,CAAC,UAAU,EAAE,MAAM,EAAE;YAC1D,gBAAgB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,mCAAI,SAAS;YACxD,iBAAiB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,mCAAI,SAAS;YAC1D,kBAAkB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB,mCAAI,SAAS;YAC5D,gBAAgB,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,mCAAI,SAAS;SACzD,CAAC,CAAC;IACL,CAAC;IAED,aAAa;IACb,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { CommunicationSignalingClient, SignalingClient } from \"@azure/communication-signaling\";\nimport { CommunicationTokenCredential } from \"@azure/communication-common\";\nimport { AzureLogger } from \"@azure/logger\";\nimport { ChatClientOptions } from \"@azure/communication-chat\";\n\nexport interface SignalingClientOptions extends ChatClientOptions {\n resourceEndpoint?: string;\n gatewayApiVersion?: string;\n}\n\nexport const getSignalingClient = (\n credential: CommunicationTokenCredential,\n logger: AzureLogger,\n options?: SignalingClientOptions,\n): SignalingClient | undefined => {\n if (typeof navigator !== \"undefined\" && navigator.product === \"ReactNative\") {\n // In React Native\n return new CommunicationSignalingClient(credential, logger, {\n resourceEndpoint: options?.resourceEndpoint ?? undefined,\n gatewayApiVersion: options?.gatewayApiVersion ?? undefined,\n additionalPolicies: options?.additionalPolicies ?? undefined,\n userAgentOptions: options?.userAgentOptions ?? undefined,\n });\n }\n\n // In node js\n return undefined;\n};\n"]}