@azure/communication-chat 1.6.0-alpha.20240607.1 → 1.6.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +836 -46
- package/dist/index.js.map +1 -1
- package/dist-esm/src/chatClient.js +4 -3
- package/dist-esm/src/chatClient.js.map +1 -1
- package/dist-esm/src/chatThreadClient.js +84 -4
- package/dist-esm/src/chatThreadClient.js.map +1 -1
- package/dist-esm/src/generated/src/chatApiClient.js +2 -2
- package/dist-esm/src/generated/src/chatApiClient.js.map +1 -1
- package/dist-esm/src/generated/src/models/index.js +8 -0
- package/dist-esm/src/generated/src/models/index.js.map +1 -1
- package/dist-esm/src/generated/src/models/mappers.js +298 -30
- package/dist-esm/src/generated/src/models/mappers.js.map +1 -1
- package/dist-esm/src/generated/src/models/parameters.js +73 -1
- package/dist-esm/src/generated/src/models/parameters.js.map +1 -1
- package/dist-esm/src/generated/src/operations/chatThread.js +98 -0
- package/dist-esm/src/generated/src/operations/chatThread.js.map +1 -1
- package/dist-esm/src/generated/src/operationsInterfaces/chatThread.js.map +1 -1
- package/dist-esm/src/generated/src/tracing.js +1 -1
- package/dist-esm/src/generated/src/tracing.js.map +1 -1
- package/dist-esm/src/models/mappers.js +82 -6
- package/dist-esm/src/models/mappers.js.map +1 -1
- package/dist-esm/src/models/models.js.map +1 -1
- package/dist-esm/src/models/options.js.map +1 -1
- package/dist-esm/src/xhrHttpClient.js +186 -0
- package/dist-esm/src/xhrHttpClient.js.map +1 -0
- package/package.json +4 -4
- package/types/communication-chat.d.ts +129 -4
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/models/mappers.ts","../src/generated/src/tracing.ts","../src/generated/src/models/mappers.ts","../src/generated/src/models/parameters.ts","../src/generated/src/operations/chatThread.ts","../src/generated/src/operations/chat.ts","../src/generated/src/chatApiClient.ts","../src/models/logger.ts","../src/credential/communicationTokenCredentialPolicy.ts","../src/chatThreadClient.ts","../src/models/uuid.ts","../src/signaling/signalingClient.ts","../src/chatClient.ts"],"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","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { createTracingClient } from \"@azure/core-tracing\";\n\nexport const tracingClient = createTracingClient({\n namespace: \"Azure.Communication\",\n packageName: \"@azure/communication-chat\",\n packageVersion: \"1.5.0\",\n});\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\n\nexport const ChatMessageReadReceiptsCollection: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ChatMessageReadReceiptsCollection\",\n modelProperties: {\n value: {\n serializedName: \"value\",\n required: true,\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ChatMessageReadReceipt\",\n },\n },\n },\n },\n nextLink: {\n serializedName: \"nextLink\",\n readOnly: true,\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const ChatMessageReadReceipt: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ChatMessageReadReceipt\",\n modelProperties: {\n senderCommunicationIdentifier: {\n serializedName: \"senderCommunicationIdentifier\",\n type: {\n name: \"Composite\",\n className: \"CommunicationIdentifierModel\",\n },\n },\n chatMessageId: {\n serializedName: \"chatMessageId\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n readOn: {\n serializedName: \"readOn\",\n required: true,\n type: {\n name: \"DateTime\",\n },\n },\n },\n },\n};\n\nexport const CommunicationIdentifierModel: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"CommunicationIdentifierModel\",\n modelProperties: {\n kind: {\n serializedName: \"kind\",\n type: {\n name: \"String\",\n },\n },\n rawId: {\n serializedName: \"rawId\",\n type: {\n name: \"String\",\n },\n },\n communicationUser: {\n serializedName: \"communicationUser\",\n type: {\n name: \"Composite\",\n className: \"CommunicationUserIdentifierModel\",\n },\n },\n phoneNumber: {\n serializedName: \"phoneNumber\",\n type: {\n name: \"Composite\",\n className: \"PhoneNumberIdentifierModel\",\n },\n },\n microsoftTeamsUser: {\n serializedName: \"microsoftTeamsUser\",\n type: {\n name: \"Composite\",\n className: \"MicrosoftTeamsUserIdentifierModel\",\n },\n },\n microsoftTeamsApp: {\n serializedName: \"microsoftTeamsApp\",\n type: {\n name: \"Composite\",\n className: \"MicrosoftTeamsAppIdentifierModel\",\n },\n },\n },\n },\n};\n\nexport const CommunicationUserIdentifierModel: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"CommunicationUserIdentifierModel\",\n modelProperties: {\n id: {\n serializedName: \"id\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const PhoneNumberIdentifierModel: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"PhoneNumberIdentifierModel\",\n modelProperties: {\n value: {\n serializedName: \"value\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const MicrosoftTeamsUserIdentifierModel: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"MicrosoftTeamsUserIdentifierModel\",\n modelProperties: {\n userId: {\n serializedName: \"userId\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n isAnonymous: {\n serializedName: \"isAnonymous\",\n type: {\n name: \"Boolean\",\n },\n },\n cloud: {\n serializedName: \"cloud\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const MicrosoftTeamsAppIdentifierModel: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"MicrosoftTeamsAppIdentifierModel\",\n modelProperties: {\n appId: {\n serializedName: \"appId\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n cloud: {\n serializedName: \"cloud\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const CommunicationErrorResponse: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"CommunicationErrorResponse\",\n modelProperties: {\n error: {\n serializedName: \"error\",\n type: {\n name: \"Composite\",\n className: \"ChatError\",\n },\n },\n },\n },\n};\n\nexport const ChatError: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ChatError\",\n modelProperties: {\n code: {\n serializedName: \"code\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n message: {\n serializedName: \"message\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n target: {\n serializedName: \"target\",\n readOnly: true,\n type: {\n name: \"String\",\n },\n },\n details: {\n serializedName: \"details\",\n readOnly: true,\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ChatError\",\n },\n },\n },\n },\n innerError: {\n serializedName: \"innererror\",\n type: {\n name: \"Composite\",\n className: \"ChatError\",\n },\n },\n },\n },\n};\n\nexport const SendReadReceiptRequest: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"SendReadReceiptRequest\",\n modelProperties: {\n chatMessageId: {\n serializedName: \"chatMessageId\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const SendChatMessageRequest: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"SendChatMessageRequest\",\n modelProperties: {\n content: {\n serializedName: \"content\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n senderDisplayName: {\n serializedName: \"senderDisplayName\",\n type: {\n name: \"String\",\n },\n },\n type: {\n serializedName: \"type\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"text\",\n \"html\",\n \"topicUpdated\",\n \"participantAdded\",\n \"participantRemoved\",\n ],\n },\n },\n metadata: {\n serializedName: \"metadata\",\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"String\" } },\n },\n },\n },\n },\n};\n\nexport const SendChatMessageResult: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"SendChatMessageResult\",\n modelProperties: {\n id: {\n serializedName: \"id\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const ChatMessagesCollection: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ChatMessagesCollection\",\n modelProperties: {\n value: {\n serializedName: \"value\",\n required: true,\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ChatMessage\",\n },\n },\n },\n },\n nextLink: {\n serializedName: \"nextLink\",\n readOnly: true,\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const ChatMessage: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ChatMessage\",\n modelProperties: {\n id: {\n serializedName: \"id\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n type: {\n serializedName: \"type\",\n required: true,\n type: {\n name: \"Enum\",\n allowedValues: [\n \"text\",\n \"html\",\n \"topicUpdated\",\n \"participantAdded\",\n \"participantRemoved\",\n ],\n },\n },\n sequenceId: {\n serializedName: \"sequenceId\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n version: {\n serializedName: \"version\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n content: {\n serializedName: \"content\",\n type: {\n name: \"Composite\",\n className: \"ChatMessageContent\",\n },\n },\n senderDisplayName: {\n serializedName: \"senderDisplayName\",\n type: {\n name: \"String\",\n },\n },\n createdOn: {\n serializedName: \"createdOn\",\n required: true,\n type: {\n name: \"DateTime\",\n },\n },\n senderCommunicationIdentifier: {\n serializedName: \"senderCommunicationIdentifier\",\n type: {\n name: \"Composite\",\n className: \"CommunicationIdentifierModel\",\n },\n },\n deletedOn: {\n serializedName: \"deletedOn\",\n type: {\n name: \"DateTime\",\n },\n },\n editedOn: {\n serializedName: \"editedOn\",\n type: {\n name: \"DateTime\",\n },\n },\n metadata: {\n serializedName: \"metadata\",\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"String\" } },\n },\n },\n },\n },\n};\n\nexport const ChatMessageContent: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ChatMessageContent\",\n modelProperties: {\n message: {\n serializedName: \"message\",\n type: {\n name: \"String\",\n },\n },\n topic: {\n serializedName: \"topic\",\n type: {\n name: \"String\",\n },\n },\n participants: {\n serializedName: \"participants\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ChatParticipant\",\n },\n },\n },\n },\n attachments: {\n serializedName: \"attachments\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ChatAttachment\",\n },\n },\n },\n },\n initiatorCommunicationIdentifier: {\n serializedName: \"initiatorCommunicationIdentifier\",\n type: {\n name: \"Composite\",\n className: \"CommunicationIdentifierModel\",\n },\n },\n },\n },\n};\n\nexport const ChatParticipant: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ChatParticipant\",\n modelProperties: {\n communicationIdentifier: {\n serializedName: \"communicationIdentifier\",\n type: {\n name: \"Composite\",\n className: \"CommunicationIdentifierModel\",\n },\n },\n displayName: {\n serializedName: \"displayName\",\n type: {\n name: \"String\",\n },\n },\n shareHistoryTime: {\n serializedName: \"shareHistoryTime\",\n type: {\n name: \"DateTime\",\n },\n },\n },\n },\n};\n\nexport const ChatAttachment: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ChatAttachment\",\n modelProperties: {\n id: {\n serializedName: \"id\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n attachmentType: {\n serializedName: \"attachmentType\",\n required: true,\n type: {\n name: \"Enum\",\n allowedValues: [\"image\", \"file\"],\n },\n },\n name: {\n serializedName: \"name\",\n type: {\n name: \"String\",\n },\n },\n url: {\n serializedName: \"url\",\n type: {\n name: \"String\",\n },\n },\n previewUrl: {\n serializedName: \"previewUrl\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const UpdateChatMessageRequest: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"UpdateChatMessageRequest\",\n modelProperties: {\n content: {\n serializedName: \"content\",\n type: {\n name: \"String\",\n },\n },\n metadata: {\n serializedName: \"metadata\",\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"String\" } },\n },\n },\n },\n },\n};\n\nexport const ChatParticipantsCollection: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ChatParticipantsCollection\",\n modelProperties: {\n value: {\n serializedName: \"value\",\n required: true,\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ChatParticipant\",\n },\n },\n },\n },\n nextLink: {\n serializedName: \"nextLink\",\n readOnly: true,\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const AddChatParticipantsRequest: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"AddChatParticipantsRequest\",\n modelProperties: {\n participants: {\n serializedName: \"participants\",\n required: true,\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ChatParticipant\",\n },\n },\n },\n },\n },\n },\n};\n\nexport const AddChatParticipantsResult: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"AddChatParticipantsResult\",\n modelProperties: {\n invalidParticipants: {\n serializedName: \"invalidParticipants\",\n readOnly: true,\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ChatError\",\n },\n },\n },\n },\n },\n },\n};\n\nexport const CreateChatThreadRequest: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"CreateChatThreadRequest\",\n modelProperties: {\n topic: {\n serializedName: \"topic\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n participants: {\n serializedName: \"participants\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ChatParticipant\",\n },\n },\n },\n },\n },\n },\n};\n\nexport const CreateChatThreadResult: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"CreateChatThreadResult\",\n modelProperties: {\n chatThread: {\n serializedName: \"chatThread\",\n type: {\n name: \"Composite\",\n className: \"ChatThreadProperties\",\n },\n },\n invalidParticipants: {\n serializedName: \"invalidParticipants\",\n readOnly: true,\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ChatError\",\n },\n },\n },\n },\n },\n },\n};\n\nexport const ChatThreadProperties: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ChatThreadProperties\",\n modelProperties: {\n id: {\n serializedName: \"id\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n topic: {\n serializedName: \"topic\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n createdOn: {\n serializedName: \"createdOn\",\n required: true,\n type: {\n name: \"DateTime\",\n },\n },\n createdByCommunicationIdentifier: {\n serializedName: \"createdByCommunicationIdentifier\",\n type: {\n name: \"Composite\",\n className: \"CommunicationIdentifierModel\",\n },\n },\n deletedOn: {\n serializedName: \"deletedOn\",\n type: {\n name: \"DateTime\",\n },\n },\n },\n },\n};\n\nexport const ChatThreadsItemCollection: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ChatThreadsItemCollection\",\n modelProperties: {\n value: {\n serializedName: \"value\",\n required: true,\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ChatThreadItem\",\n },\n },\n },\n },\n nextLink: {\n serializedName: \"nextLink\",\n readOnly: true,\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const ChatThreadItem: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ChatThreadItem\",\n modelProperties: {\n id: {\n serializedName: \"id\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n topic: {\n serializedName: \"topic\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n deletedOn: {\n serializedName: \"deletedOn\",\n type: {\n name: \"DateTime\",\n },\n },\n lastMessageReceivedOn: {\n serializedName: \"lastMessageReceivedOn\",\n readOnly: true,\n type: {\n name: \"DateTime\",\n },\n },\n },\n },\n};\n\nexport const UpdateChatThreadRequest: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"UpdateChatThreadRequest\",\n modelProperties: {\n topic: {\n serializedName: \"topic\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const SendTypingNotificationRequest: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"SendTypingNotificationRequest\",\n modelProperties: {\n senderDisplayName: {\n serializedName: \"senderDisplayName\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport {\n OperationParameter,\n OperationURLParameter,\n OperationQueryParameter,\n} from \"@azure/core-client\";\nimport {\n SendReadReceiptRequest as SendReadReceiptRequestMapper,\n SendChatMessageRequest as SendChatMessageRequestMapper,\n UpdateChatMessageRequest as UpdateChatMessageRequestMapper,\n CommunicationIdentifierModel as CommunicationIdentifierModelMapper,\n AddChatParticipantsRequest as AddChatParticipantsRequestMapper,\n UpdateChatThreadRequest as UpdateChatThreadRequestMapper,\n SendTypingNotificationRequest as SendTypingNotificationRequestMapper,\n CreateChatThreadRequest as CreateChatThreadRequestMapper,\n} from \"../models/mappers\";\n\nexport const accept: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/json\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const endpoint: OperationURLParameter = {\n parameterPath: \"endpoint\",\n mapper: {\n serializedName: \"endpoint\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n skipEncoding: true,\n};\n\nexport const chatThreadId: OperationURLParameter = {\n parameterPath: \"chatThreadId\",\n mapper: {\n serializedName: \"chatThreadId\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const maxPageSize: OperationQueryParameter = {\n parameterPath: [\"options\", \"maxPageSize\"],\n mapper: {\n serializedName: \"maxPageSize\",\n type: {\n name: \"Number\",\n },\n },\n};\n\nexport const skip: OperationQueryParameter = {\n parameterPath: [\"options\", \"skip\"],\n mapper: {\n serializedName: \"skip\",\n type: {\n name: \"Number\",\n },\n },\n};\n\nexport const apiVersion: OperationQueryParameter = {\n parameterPath: \"apiVersion\",\n mapper: {\n defaultValue: \"2024-03-07\",\n isConstant: true,\n serializedName: \"api-version\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const contentType: OperationParameter = {\n parameterPath: [\"options\", \"contentType\"],\n mapper: {\n defaultValue: \"application/json\",\n isConstant: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const sendReadReceiptRequest: OperationParameter = {\n parameterPath: \"sendReadReceiptRequest\",\n mapper: SendReadReceiptRequestMapper,\n};\n\nexport const sendChatMessageRequest: OperationParameter = {\n parameterPath: \"sendChatMessageRequest\",\n mapper: SendChatMessageRequestMapper,\n};\n\nexport const startTime: OperationQueryParameter = {\n parameterPath: [\"options\", \"startTime\"],\n mapper: {\n serializedName: \"startTime\",\n type: {\n name: \"DateTime\",\n },\n },\n};\n\nexport const chatMessageId: OperationURLParameter = {\n parameterPath: \"chatMessageId\",\n mapper: {\n serializedName: \"chatMessageId\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const contentType1: OperationParameter = {\n parameterPath: [\"options\", \"contentType\"],\n mapper: {\n defaultValue: \"application/merge-patch+json\",\n isConstant: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const updateChatMessageRequest: OperationParameter = {\n parameterPath: \"updateChatMessageRequest\",\n mapper: UpdateChatMessageRequestMapper,\n};\n\nexport const participantCommunicationIdentifier: OperationParameter = {\n parameterPath: \"participantCommunicationIdentifier\",\n mapper: CommunicationIdentifierModelMapper,\n};\n\nexport const addChatParticipantsRequest: OperationParameter = {\n parameterPath: \"addChatParticipantsRequest\",\n mapper: AddChatParticipantsRequestMapper,\n};\n\nexport const updateChatThreadRequest: OperationParameter = {\n parameterPath: \"updateChatThreadRequest\",\n mapper: UpdateChatThreadRequestMapper,\n};\n\nexport const sendTypingNotificationRequest: OperationParameter = {\n parameterPath: [\"options\", \"sendTypingNotificationRequest\"],\n mapper: SendTypingNotificationRequestMapper,\n};\n\nexport const nextLink: OperationURLParameter = {\n parameterPath: \"nextLink\",\n mapper: {\n serializedName: \"nextLink\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n skipEncoding: true,\n};\n\nexport const createChatThreadRequest: OperationParameter = {\n parameterPath: \"createChatThreadRequest\",\n mapper: CreateChatThreadRequestMapper,\n};\n\nexport const repeatabilityRequestId: OperationParameter = {\n parameterPath: [\"options\", \"repeatabilityRequestId\"],\n mapper: {\n serializedName: \"repeatability-request-id\",\n type: {\n name: \"String\",\n },\n },\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { tracingClient } from \"../tracing\";\nimport { ChatThread } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { ChatApiClient } from \"../chatApiClient\";\nimport {\n ChatThreadListChatReadReceiptsOptionalParams,\n ChatThreadListChatReadReceiptsResponse,\n SendReadReceiptRequest,\n ChatThreadSendChatReadReceiptOptionalParams,\n SendChatMessageRequest,\n ChatThreadSendChatMessageOptionalParams,\n ChatThreadSendChatMessageResponse,\n ChatThreadListChatMessagesOptionalParams,\n ChatThreadListChatMessagesResponse,\n ChatThreadGetChatMessageOptionalParams,\n ChatThreadGetChatMessageResponse,\n UpdateChatMessageRequest,\n ChatThreadUpdateChatMessageOptionalParams,\n ChatThreadDeleteChatMessageOptionalParams,\n ChatThreadListChatParticipantsOptionalParams,\n ChatThreadListChatParticipantsResponse,\n CommunicationIdentifierModel,\n ChatThreadRemoveChatParticipantOptionalParams,\n AddChatParticipantsRequest,\n ChatThreadAddChatParticipantsOptionalParams,\n ChatThreadAddChatParticipantsResponse,\n UpdateChatThreadRequest,\n ChatThreadUpdateChatThreadPropertiesOptionalParams,\n ChatThreadGetChatThreadPropertiesOptionalParams,\n ChatThreadGetChatThreadPropertiesResponse,\n ChatThreadSendTypingNotificationOptionalParams,\n ChatThreadListChatReadReceiptsNextOptionalParams,\n ChatThreadListChatReadReceiptsNextResponse,\n ChatThreadListChatMessagesNextOptionalParams,\n ChatThreadListChatMessagesNextResponse,\n ChatThreadListChatParticipantsNextOptionalParams,\n ChatThreadListChatParticipantsNextResponse,\n} from \"../models\";\n\n/** Class containing ChatThread operations. */\nexport class ChatThreadImpl implements ChatThread {\n private readonly client: ChatApiClient;\n\n /**\n * Initialize a new instance of the class ChatThread class.\n * @param client Reference to the service client\n */\n constructor(client: ChatApiClient) {\n this.client = client;\n }\n\n /**\n * Gets chat message read receipts for a thread.\n * @param chatThreadId Thread id to get the chat message read receipts for.\n * @param options The options parameters.\n */\n async listChatReadReceipts(\n chatThreadId: string,\n options?: ChatThreadListChatReadReceiptsOptionalParams,\n ): Promise<ChatThreadListChatReadReceiptsResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.listChatReadReceipts\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, options },\n listChatReadReceiptsOperationSpec,\n ) as Promise<ChatThreadListChatReadReceiptsResponse>;\n },\n );\n }\n\n /**\n * Sends a read receipt event to a thread, on behalf of a user.\n * @param chatThreadId Thread id to send the read receipt event to.\n * @param sendReadReceiptRequest Read receipt details.\n * @param options The options parameters.\n */\n async sendChatReadReceipt(\n chatThreadId: string,\n sendReadReceiptRequest: SendReadReceiptRequest,\n options?: ChatThreadSendChatReadReceiptOptionalParams,\n ): Promise<void> {\n return tracingClient.withSpan(\n \"ChatApiClient.sendChatReadReceipt\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, sendReadReceiptRequest, options },\n sendChatReadReceiptOperationSpec,\n ) as Promise<void>;\n },\n );\n }\n\n /**\n * Sends a message to a thread.\n * @param chatThreadId The thread id to send the message to.\n * @param sendChatMessageRequest Details of the message to send.\n * @param options The options parameters.\n */\n async sendChatMessage(\n chatThreadId: string,\n sendChatMessageRequest: SendChatMessageRequest,\n options?: ChatThreadSendChatMessageOptionalParams,\n ): Promise<ChatThreadSendChatMessageResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.sendChatMessage\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, sendChatMessageRequest, options },\n sendChatMessageOperationSpec,\n ) as Promise<ChatThreadSendChatMessageResponse>;\n },\n );\n }\n\n /**\n * Gets a list of messages from a thread.\n * @param chatThreadId The thread id of the message.\n * @param options The options parameters.\n */\n async listChatMessages(\n chatThreadId: string,\n options?: ChatThreadListChatMessagesOptionalParams,\n ): Promise<ChatThreadListChatMessagesResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.listChatMessages\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, options },\n listChatMessagesOperationSpec,\n ) as Promise<ChatThreadListChatMessagesResponse>;\n },\n );\n }\n\n /**\n * Gets a message by id.\n * @param chatThreadId The thread id to which the message was sent.\n * @param chatMessageId The message id.\n * @param options The options parameters.\n */\n async getChatMessage(\n chatThreadId: string,\n chatMessageId: string,\n options?: ChatThreadGetChatMessageOptionalParams,\n ): Promise<ChatThreadGetChatMessageResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.getChatMessage\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, chatMessageId, options },\n getChatMessageOperationSpec,\n ) as Promise<ChatThreadGetChatMessageResponse>;\n },\n );\n }\n\n /**\n * Updates a message.\n * @param chatThreadId The thread id to which the message was sent.\n * @param chatMessageId The message id.\n * @param updateChatMessageRequest Details of the request to update the message.\n * @param options The options parameters.\n */\n async updateChatMessage(\n chatThreadId: string,\n chatMessageId: string,\n updateChatMessageRequest: UpdateChatMessageRequest,\n options?: ChatThreadUpdateChatMessageOptionalParams,\n ): Promise<void> {\n return tracingClient.withSpan(\n \"ChatApiClient.updateChatMessage\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, chatMessageId, updateChatMessageRequest, options },\n updateChatMessageOperationSpec,\n ) as Promise<void>;\n },\n );\n }\n\n /**\n * Deletes a message.\n * @param chatThreadId The thread id to which the message was sent.\n * @param chatMessageId The message id.\n * @param options The options parameters.\n */\n async deleteChatMessage(\n chatThreadId: string,\n chatMessageId: string,\n options?: ChatThreadDeleteChatMessageOptionalParams,\n ): Promise<void> {\n return tracingClient.withSpan(\n \"ChatApiClient.deleteChatMessage\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, chatMessageId, options },\n deleteChatMessageOperationSpec,\n ) as Promise<void>;\n },\n );\n }\n\n /**\n * Gets the participants of a thread.\n * @param chatThreadId Thread id to get participants for.\n * @param options The options parameters.\n */\n async listChatParticipants(\n chatThreadId: string,\n options?: ChatThreadListChatParticipantsOptionalParams,\n ): Promise<ChatThreadListChatParticipantsResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.listChatParticipants\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, options },\n listChatParticipantsOperationSpec,\n ) as Promise<ChatThreadListChatParticipantsResponse>;\n },\n );\n }\n\n /**\n * Remove a participant from a thread.\n * @param chatThreadId Thread id to remove the participant from.\n * @param participantCommunicationIdentifier Id of the thread participant to remove from the thread.\n * @param options The options parameters.\n */\n async removeChatParticipant(\n chatThreadId: string,\n participantCommunicationIdentifier: CommunicationIdentifierModel,\n options?: ChatThreadRemoveChatParticipantOptionalParams,\n ): Promise<void> {\n return tracingClient.withSpan(\n \"ChatApiClient.removeChatParticipant\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, participantCommunicationIdentifier, options },\n removeChatParticipantOperationSpec,\n ) as Promise<void>;\n },\n );\n }\n\n /**\n * Adds thread participants to a thread. If participants already exist, no change occurs.\n * @param chatThreadId Id of the thread to add participants to.\n * @param addChatParticipantsRequest Thread participants to be added to the thread.\n * @param options The options parameters.\n */\n async addChatParticipants(\n chatThreadId: string,\n addChatParticipantsRequest: AddChatParticipantsRequest,\n options?: ChatThreadAddChatParticipantsOptionalParams,\n ): Promise<ChatThreadAddChatParticipantsResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.addChatParticipants\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, addChatParticipantsRequest, options },\n addChatParticipantsOperationSpec,\n ) as Promise<ChatThreadAddChatParticipantsResponse>;\n },\n );\n }\n\n /**\n * Updates a thread's properties.\n * @param chatThreadId The id of the thread to update.\n * @param updateChatThreadRequest Request payload for updating a chat thread.\n * @param options The options parameters.\n */\n async updateChatThreadProperties(\n chatThreadId: string,\n updateChatThreadRequest: UpdateChatThreadRequest,\n options?: ChatThreadUpdateChatThreadPropertiesOptionalParams,\n ): Promise<void> {\n return tracingClient.withSpan(\n \"ChatApiClient.updateChatThreadProperties\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, updateChatThreadRequest, options },\n updateChatThreadPropertiesOperationSpec,\n ) as Promise<void>;\n },\n );\n }\n\n /**\n * Gets a chat thread's properties.\n * @param chatThreadId Id of the thread.\n * @param options The options parameters.\n */\n async getChatThreadProperties(\n chatThreadId: string,\n options?: ChatThreadGetChatThreadPropertiesOptionalParams,\n ): Promise<ChatThreadGetChatThreadPropertiesResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.getChatThreadProperties\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, options },\n getChatThreadPropertiesOperationSpec,\n ) as Promise<ChatThreadGetChatThreadPropertiesResponse>;\n },\n );\n }\n\n /**\n * Posts a typing event to a thread, on behalf of a user.\n * @param chatThreadId Id of the thread.\n * @param options The options parameters.\n */\n async sendTypingNotification(\n chatThreadId: string,\n options?: ChatThreadSendTypingNotificationOptionalParams,\n ): Promise<void> {\n return tracingClient.withSpan(\n \"ChatApiClient.sendTypingNotification\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, options },\n sendTypingNotificationOperationSpec,\n ) as Promise<void>;\n },\n );\n }\n\n /**\n * ListChatReadReceiptsNext\n * @param chatThreadId Thread id to get the chat message read receipts for.\n * @param nextLink The nextLink from the previous successful call to the ListChatReadReceipts method.\n * @param options The options parameters.\n */\n async listChatReadReceiptsNext(\n chatThreadId: string,\n nextLink: string,\n options?: ChatThreadListChatReadReceiptsNextOptionalParams,\n ): Promise<ChatThreadListChatReadReceiptsNextResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.listChatReadReceiptsNext\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, nextLink, options },\n listChatReadReceiptsNextOperationSpec,\n ) as Promise<ChatThreadListChatReadReceiptsNextResponse>;\n },\n );\n }\n\n /**\n * ListChatMessagesNext\n * @param chatThreadId The thread id of the message.\n * @param nextLink The nextLink from the previous successful call to the ListChatMessages method.\n * @param options The options parameters.\n */\n async listChatMessagesNext(\n chatThreadId: string,\n nextLink: string,\n options?: ChatThreadListChatMessagesNextOptionalParams,\n ): Promise<ChatThreadListChatMessagesNextResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.listChatMessagesNext\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, nextLink, options },\n listChatMessagesNextOperationSpec,\n ) as Promise<ChatThreadListChatMessagesNextResponse>;\n },\n );\n }\n\n /**\n * ListChatParticipantsNext\n * @param chatThreadId Thread id to get participants for.\n * @param nextLink The nextLink from the previous successful call to the ListChatParticipants method.\n * @param options The options parameters.\n */\n async listChatParticipantsNext(\n chatThreadId: string,\n nextLink: string,\n options?: ChatThreadListChatParticipantsNextOptionalParams,\n ): Promise<ChatThreadListChatParticipantsNextResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.listChatParticipantsNext\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, nextLink, options },\n listChatParticipantsNextOperationSpec,\n ) as Promise<ChatThreadListChatParticipantsNextResponse>;\n },\n );\n }\n}\n// Operation Specifications\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst listChatReadReceiptsOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}/readReceipts\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.ChatMessageReadReceiptsCollection,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n queryParameters: [\n Parameters.maxPageSize,\n Parameters.skip,\n Parameters.apiVersion,\n ],\n urlParameters: [Parameters.endpoint, Parameters.chatThreadId],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst sendChatReadReceiptOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}/readReceipts\",\n httpMethod: \"POST\",\n responses: {\n 200: {},\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n requestBody: Parameters.sendReadReceiptRequest,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.chatThreadId],\n headerParameters: [Parameters.accept, Parameters.contentType],\n mediaType: \"json\",\n serializer,\n};\nconst sendChatMessageOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}/messages\",\n httpMethod: \"POST\",\n responses: {\n 201: {\n bodyMapper: Mappers.SendChatMessageResult,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n requestBody: Parameters.sendChatMessageRequest,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.chatThreadId],\n headerParameters: [Parameters.accept, Parameters.contentType],\n mediaType: \"json\",\n serializer,\n};\nconst listChatMessagesOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}/messages\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.ChatMessagesCollection,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n queryParameters: [\n Parameters.maxPageSize,\n Parameters.apiVersion,\n Parameters.startTime,\n ],\n urlParameters: [Parameters.endpoint, Parameters.chatThreadId],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst getChatMessageOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}/messages/{chatMessageId}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.ChatMessage,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.endpoint,\n Parameters.chatThreadId,\n Parameters.chatMessageId,\n ],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst updateChatMessageOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}/messages/{chatMessageId}\",\n httpMethod: \"PATCH\",\n responses: {\n 204: {},\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n requestBody: Parameters.updateChatMessageRequest,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.endpoint,\n Parameters.chatThreadId,\n Parameters.chatMessageId,\n ],\n headerParameters: [Parameters.accept, Parameters.contentType1],\n mediaType: \"json\",\n serializer,\n};\nconst deleteChatMessageOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}/messages/{chatMessageId}\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.endpoint,\n Parameters.chatThreadId,\n Parameters.chatMessageId,\n ],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst listChatParticipantsOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}/participants\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.ChatParticipantsCollection,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n queryParameters: [\n Parameters.maxPageSize,\n Parameters.skip,\n Parameters.apiVersion,\n ],\n urlParameters: [Parameters.endpoint, Parameters.chatThreadId],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst removeChatParticipantOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}/participants/:remove\",\n httpMethod: \"POST\",\n responses: {\n 204: {},\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n requestBody: Parameters.participantCommunicationIdentifier,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.chatThreadId],\n headerParameters: [Parameters.accept, Parameters.contentType],\n mediaType: \"json\",\n serializer,\n};\nconst addChatParticipantsOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}/participants/:add\",\n httpMethod: \"POST\",\n responses: {\n 201: {\n bodyMapper: Mappers.AddChatParticipantsResult,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n requestBody: Parameters.addChatParticipantsRequest,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.chatThreadId],\n headerParameters: [Parameters.accept, Parameters.contentType],\n mediaType: \"json\",\n serializer,\n};\nconst updateChatThreadPropertiesOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}\",\n httpMethod: \"PATCH\",\n responses: {\n 204: {},\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n requestBody: Parameters.updateChatThreadRequest,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.chatThreadId],\n headerParameters: [Parameters.accept, Parameters.contentType1],\n mediaType: \"json\",\n serializer,\n};\nconst getChatThreadPropertiesOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.ChatThreadProperties,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.chatThreadId],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst sendTypingNotificationOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}/typing\",\n httpMethod: \"POST\",\n responses: {\n 200: {},\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n requestBody: Parameters.sendTypingNotificationRequest,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.chatThreadId],\n headerParameters: [Parameters.accept, Parameters.contentType],\n mediaType: \"json\",\n serializer,\n};\nconst listChatReadReceiptsNextOperationSpec: coreClient.OperationSpec = {\n path: \"{nextLink}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.ChatMessageReadReceiptsCollection,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n urlParameters: [\n Parameters.endpoint,\n Parameters.chatThreadId,\n Parameters.nextLink,\n ],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst listChatMessagesNextOperationSpec: coreClient.OperationSpec = {\n path: \"{nextLink}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.ChatMessagesCollection,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n urlParameters: [\n Parameters.endpoint,\n Parameters.chatThreadId,\n Parameters.nextLink,\n ],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst listChatParticipantsNextOperationSpec: coreClient.OperationSpec = {\n path: \"{nextLink}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.ChatParticipantsCollection,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n urlParameters: [\n Parameters.endpoint,\n Parameters.chatThreadId,\n Parameters.nextLink,\n ],\n headerParameters: [Parameters.accept],\n serializer,\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { tracingClient } from \"../tracing\";\nimport { Chat } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { ChatApiClient } from \"../chatApiClient\";\nimport {\n CreateChatThreadRequest,\n ChatCreateChatThreadOptionalParams,\n ChatCreateChatThreadResponse,\n ChatListChatThreadsOptionalParams,\n ChatListChatThreadsResponse,\n ChatDeleteChatThreadOptionalParams,\n ChatListChatThreadsNextOptionalParams,\n ChatListChatThreadsNextResponse,\n} from \"../models\";\n\n/** Class containing Chat operations. */\nexport class ChatImpl implements Chat {\n private readonly client: ChatApiClient;\n\n /**\n * Initialize a new instance of the class Chat class.\n * @param client Reference to the service client\n */\n constructor(client: ChatApiClient) {\n this.client = client;\n }\n\n /**\n * Creates a chat thread.\n * @param createChatThreadRequest Request payload for creating a chat thread.\n * @param options The options parameters.\n */\n async createChatThread(\n createChatThreadRequest: CreateChatThreadRequest,\n options?: ChatCreateChatThreadOptionalParams,\n ): Promise<ChatCreateChatThreadResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.createChatThread\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { createChatThreadRequest, options },\n createChatThreadOperationSpec,\n ) as Promise<ChatCreateChatThreadResponse>;\n },\n );\n }\n\n /**\n * Gets the list of chat threads of a user.\n * @param options The options parameters.\n */\n async listChatThreads(\n options?: ChatListChatThreadsOptionalParams,\n ): Promise<ChatListChatThreadsResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.listChatThreads\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { options },\n listChatThreadsOperationSpec,\n ) as Promise<ChatListChatThreadsResponse>;\n },\n );\n }\n\n /**\n * Deletes a thread.\n * @param chatThreadId Id of the thread to be deleted.\n * @param options The options parameters.\n */\n async deleteChatThread(\n chatThreadId: string,\n options?: ChatDeleteChatThreadOptionalParams,\n ): Promise<void> {\n return tracingClient.withSpan(\n \"ChatApiClient.deleteChatThread\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, options },\n deleteChatThreadOperationSpec,\n ) as Promise<void>;\n },\n );\n }\n\n /**\n * ListChatThreadsNext\n * @param nextLink The nextLink from the previous successful call to the ListChatThreads method.\n * @param options The options parameters.\n */\n async listChatThreadsNext(\n nextLink: string,\n options?: ChatListChatThreadsNextOptionalParams,\n ): Promise<ChatListChatThreadsNextResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.listChatThreadsNext\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { nextLink, options },\n listChatThreadsNextOperationSpec,\n ) as Promise<ChatListChatThreadsNextResponse>;\n },\n );\n }\n}\n// Operation Specifications\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst createChatThreadOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads\",\n httpMethod: \"POST\",\n responses: {\n 201: {\n bodyMapper: Mappers.CreateChatThreadResult,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n requestBody: Parameters.createChatThreadRequest,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint],\n headerParameters: [\n Parameters.accept,\n Parameters.contentType,\n Parameters.repeatabilityRequestId,\n ],\n mediaType: \"json\",\n serializer,\n};\nconst listChatThreadsOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.ChatThreadsItemCollection,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n queryParameters: [\n Parameters.maxPageSize,\n Parameters.apiVersion,\n Parameters.startTime,\n ],\n urlParameters: [Parameters.endpoint],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst deleteChatThreadOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.chatThreadId],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst listChatThreadsNextOperationSpec: coreClient.OperationSpec = {\n path: \"{nextLink}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.ChatThreadsItemCollection,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n urlParameters: [Parameters.endpoint, Parameters.nextLink],\n headerParameters: [Parameters.accept],\n serializer,\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\nimport {\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n} from \"@azure/core-rest-pipeline\";\nimport { ChatThreadImpl, ChatImpl } from \"./operations\";\nimport { ChatThread, Chat } from \"./operationsInterfaces\";\nimport { ChatApiClientOptionalParams } from \"./models\";\n\nexport class ChatApiClient extends coreClient.ServiceClient {\n endpoint: string;\n apiVersion: string;\n\n /**\n * Initializes a new instance of the ChatApiClient class.\n * @param endpoint The endpoint of the Azure Communication resource.\n * @param options The parameter options\n */\n constructor(endpoint: string, options?: ChatApiClientOptionalParams) {\n if (endpoint === undefined) {\n throw new Error(\"'endpoint' cannot be null\");\n }\n\n // Initializing default values for options\n if (!options) {\n options = {};\n }\n const defaults: ChatApiClientOptionalParams = {\n requestContentType: \"application/json; charset=utf-8\",\n };\n\n const packageDetails = `azsdk-js-communication-chat/1.5.0`;\n const userAgentPrefix =\n options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`\n : `${packageDetails}`;\n\n const optionsWithDefaults = {\n ...defaults,\n ...options,\n userAgentOptions: {\n userAgentPrefix,\n },\n endpoint: options.endpoint ?? options.baseUri ?? \"{endpoint}\",\n };\n super(optionsWithDefaults);\n // Parameter assignments\n this.endpoint = endpoint;\n\n // Assigning values to Constant parameters\n this.apiVersion = options.apiVersion || \"2024-03-07\";\n this.chatThread = new ChatThreadImpl(this);\n this.chat = new ChatImpl(this);\n this.addCustomApiVersionPolicy(options.apiVersion);\n }\n\n /** A function that adds a policy that sets the api-version (or equivalent) to reflect the library version. */\n private addCustomApiVersionPolicy(apiVersion?: string) {\n if (!apiVersion) {\n return;\n }\n const apiVersionPolicy = {\n name: \"CustomApiVersionPolicy\",\n async sendRequest(\n request: PipelineRequest,\n next: SendRequest,\n ): Promise<PipelineResponse> {\n const param = request.url.split(\"?\");\n if (param.length > 1) {\n const newParams = param[1].split(\"&\").map((item) => {\n if (item.indexOf(\"api-version\") > -1) {\n return \"api-version=\" + apiVersion;\n } else {\n return item;\n }\n });\n request.url = param[0] + \"?\" + newParams.join(\"&\");\n }\n return next(request);\n },\n };\n this.pipeline.addPolicy(apiVersionPolicy);\n }\n\n chatThread: ChatThread;\n chat: Chat;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { createClientLogger } from \"@azure/logger\";\n\nexport const logger = createClientLogger(\"communication-chat\");\n","// 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","// 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","// 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","// 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","// 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"],"names":["__rest","serializeCommunicationIdentifier","deserializeCommunicationIdentifier","createTracingClient","SendReadReceiptRequestMapper","SendChatMessageRequestMapper","UpdateChatMessageRequestMapper","CommunicationIdentifierModelMapper","AddChatParticipantsRequestMapper","UpdateChatThreadRequestMapper","SendTypingNotificationRequestMapper","CreateChatThreadRequestMapper","serializer","coreClient","Mappers.ChatMessageReadReceiptsCollection","Mappers.CommunicationErrorResponse","Parameters.maxPageSize","Parameters.skip","Parameters.apiVersion","Parameters.endpoint","Parameters.chatThreadId","Parameters.accept","Parameters.sendReadReceiptRequest","Parameters.contentType","Mappers.SendChatMessageResult","Parameters.sendChatMessageRequest","Mappers.ChatMessagesCollection","Parameters.startTime","Mappers.ChatMessage","Parameters.chatMessageId","Parameters.updateChatMessageRequest","Parameters.contentType1","Mappers.ChatParticipantsCollection","Parameters.participantCommunicationIdentifier","Mappers.AddChatParticipantsResult","Parameters.addChatParticipantsRequest","Parameters.updateChatThreadRequest","Mappers.ChatThreadProperties","Parameters.sendTypingNotificationRequest","Parameters.nextLink","Mappers.CreateChatThreadResult","Parameters.createChatThreadRequest","Parameters.repeatabilityRequestId","Mappers.ChatThreadsItemCollection","createClientLogger","bearerTokenAuthenticationPolicy","__await","__asyncValues","__asyncDelegator","uuidv4","CommunicationSignalingClient","EventEmitter","ConnectionState"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/models/mappers.ts","../src/generated/src/tracing.ts","../src/generated/src/models/mappers.ts","../src/generated/src/models/parameters.ts","../src/generated/src/operations/chatThread.ts","../src/generated/src/operations/chat.ts","../src/generated/src/chatApiClient.ts","../src/models/logger.ts","../src/xhrHttpClient.ts","../src/credential/communicationTokenCredentialPolicy.ts","../src/chatThreadClient.ts","../src/models/uuid.ts","../src/signaling/signalingClient.ts","../src/chatClient.ts"],"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, SendMessageRequest } from \"./requests\";\nimport { CreateChatThreadOptions, SendMessageOptions, UpdateMessageOptions } from \"./options\";\nimport {\n ChatAttachment,\n ChatMessage,\n ChatMessageContent,\n ChatMessageReadReceipt,\n ChatParticipant,\n ChatRetentionPolicy,\n ChatThreadProperties,\n CreateChatThreadResult,\n PolicyViolation,\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 attachment SDK model to chat attachment REST model\n */\nexport const mapToChatAttachmentRestModel = (\n chatAttachment: ChatAttachment,\n): RestModel.ChatAttachment => {\n const { attachmentType, ...rest } = chatAttachment;\n if (attachmentType === \"unknown\") {\n throw new Error(\"'unknown' attachmentType not supported\");\n }\n return {\n ...rest,\n attachmentType: attachmentType,\n };\n};\n\n/**\n * @internal\n * Mapping send message request and options to send chat message request REST model\n */\nexport const mapToSendChatMessageRequestRestModel = (\n sendMessageRequest: SendMessageRequest,\n sendMessageOptions: SendMessageOptions,\n): RestModel.SendChatMessageRequest => {\n const { attachments, ...restOptions } = sendMessageOptions;\n let request: RestModel.SendChatMessageRequest = { ...sendMessageRequest, ...restOptions };\n if (attachments) {\n request = {\n ...request,\n attachments: attachments?.map((attachment) => mapToChatAttachmentRestModel(attachment)),\n };\n }\n return request;\n};\n\n/**\n * @internal\n * Mapping update message options to update chat message request REST model\n */\nexport const mapToUpdateChatMessageRequestRestModel = (\n updateMessageOptions: UpdateMessageOptions,\n): RestModel.UpdateChatMessageRequest => {\n const { attachments, ...restOptions } = updateMessageOptions;\n let request: RestModel.UpdateChatMessageRequest = { ...restOptions };\n if (attachments) {\n request = {\n ...request,\n attachments: attachments?.map((attachment) => mapToChatAttachmentRestModel(attachment)),\n };\n }\n return request;\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 * Mapping chat attachment REST model to chat attachment SDK model\n */\nexport const mapToChatAttachmentSdkModel = (\n chatAttachment: RestModel.ChatAttachment,\n): ChatAttachment => {\n const { attachmentType, ...rest } = chatAttachment;\n return {\n ...rest,\n attachmentType: attachmentType,\n };\n};\n\n/**\n * @internal\n */\nexport const mapToChatContentSdkModel = (\n content: RestModel.ChatMessageContent,\n): ChatMessageContent => {\n const { participants, attachments, initiatorCommunicationIdentifier, ...otherChatContents } =\n 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 if (attachments) {\n result = {\n ...result,\n attachments: attachments?.map((attachment) => mapToChatAttachmentSdkModel(attachment)),\n };\n }\n return result;\n};\n\n/**\n * @internal\n */\nexport const mapToChatPolicyViolationSdkModel = (\n policyVolation: RestModel.PolicyViolation,\n): PolicyViolation => {\n const { state } = policyVolation;\n const result: PolicyViolation = {\n result: state,\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, policyViolation, ...otherChatMessage } =\n 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 if (policyViolation) {\n result = {\n ...result,\n policyViolation: mapToChatPolicyViolationSdkModel(policyViolation),\n };\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 retention policy REST model to chat retention policy SDK model\n */\nexport const mapToRetentionPolicySdkModel = (\n retentionPolicy: RestModel.ChatRetentionPolicyUnion,\n): ChatRetentionPolicy => {\n if (retentionPolicy.kind === \"threadCreationDate\") {\n return retentionPolicy as RestModel.ThreadCreationDateRetentionPolicy;\n }\n if (retentionPolicy.kind === \"none\") {\n return retentionPolicy as RestModel.NoneRetentionPolicy;\n } else {\n throw new Error(`Retention Policy ${retentionPolicy.kind} is not supported`);\n }\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, retentionPolicy, ...rest } = chatThread;\n let result: ChatThreadProperties = { ...rest };\n if (createdByCommunicationIdentifier) {\n result = {\n ...result,\n createdBy: deserializeCommunicationIdentifier(\n createdByCommunicationIdentifier as SerializedCommunicationIdentifier,\n ),\n };\n }\n\n if (retentionPolicy) {\n result = {\n ...result,\n retentionPolicy: mapToRetentionPolicySdkModel(retentionPolicy),\n };\n }\n\n return result;\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","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { createTracingClient } from \"@azure/core-tracing\";\n\nexport const tracingClient = createTracingClient({\n namespace: \"Azure.Communication\",\n packageName: \"@azure/communication-chat\",\n packageVersion: \"1.6.0-beta.2\",\n});\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\n\nexport const ChatMessageReadReceiptsCollection: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ChatMessageReadReceiptsCollection\",\n modelProperties: {\n value: {\n serializedName: \"value\",\n required: true,\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ChatMessageReadReceipt\",\n },\n },\n },\n },\n nextLink: {\n serializedName: \"nextLink\",\n readOnly: true,\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const ChatMessageReadReceipt: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ChatMessageReadReceipt\",\n modelProperties: {\n senderCommunicationIdentifier: {\n serializedName: \"senderCommunicationIdentifier\",\n type: {\n name: \"Composite\",\n className: \"CommunicationIdentifierModel\",\n },\n },\n chatMessageId: {\n serializedName: \"chatMessageId\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n readOn: {\n serializedName: \"readOn\",\n required: true,\n type: {\n name: \"DateTime\",\n },\n },\n },\n },\n};\n\nexport const CommunicationIdentifierModel: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"CommunicationIdentifierModel\",\n modelProperties: {\n kind: {\n serializedName: \"kind\",\n type: {\n name: \"String\",\n },\n },\n rawId: {\n serializedName: \"rawId\",\n type: {\n name: \"String\",\n },\n },\n communicationUser: {\n serializedName: \"communicationUser\",\n type: {\n name: \"Composite\",\n className: \"CommunicationUserIdentifierModel\",\n },\n },\n phoneNumber: {\n serializedName: \"phoneNumber\",\n type: {\n name: \"Composite\",\n className: \"PhoneNumberIdentifierModel\",\n },\n },\n microsoftTeamsUser: {\n serializedName: \"microsoftTeamsUser\",\n type: {\n name: \"Composite\",\n className: \"MicrosoftTeamsUserIdentifierModel\",\n },\n },\n microsoftTeamsApp: {\n serializedName: \"microsoftTeamsApp\",\n type: {\n name: \"Composite\",\n className: \"MicrosoftTeamsAppIdentifierModel\",\n },\n },\n },\n },\n};\n\nexport const CommunicationUserIdentifierModel: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"CommunicationUserIdentifierModel\",\n modelProperties: {\n id: {\n serializedName: \"id\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const PhoneNumberIdentifierModel: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"PhoneNumberIdentifierModel\",\n modelProperties: {\n value: {\n serializedName: \"value\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const MicrosoftTeamsUserIdentifierModel: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"MicrosoftTeamsUserIdentifierModel\",\n modelProperties: {\n userId: {\n serializedName: \"userId\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n isAnonymous: {\n serializedName: \"isAnonymous\",\n type: {\n name: \"Boolean\",\n },\n },\n cloud: {\n serializedName: \"cloud\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const MicrosoftTeamsAppIdentifierModel: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"MicrosoftTeamsAppIdentifierModel\",\n modelProperties: {\n appId: {\n serializedName: \"appId\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n cloud: {\n serializedName: \"cloud\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const CommunicationErrorResponse: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"CommunicationErrorResponse\",\n modelProperties: {\n error: {\n serializedName: \"error\",\n type: {\n name: \"Composite\",\n className: \"ChatError\",\n },\n },\n },\n },\n};\n\nexport const ChatError: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ChatError\",\n modelProperties: {\n code: {\n serializedName: \"code\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n message: {\n serializedName: \"message\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n target: {\n serializedName: \"target\",\n readOnly: true,\n type: {\n name: \"String\",\n },\n },\n details: {\n serializedName: \"details\",\n readOnly: true,\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ChatError\",\n },\n },\n },\n },\n innerError: {\n serializedName: \"innererror\",\n type: {\n name: \"Composite\",\n className: \"ChatError\",\n },\n },\n },\n },\n};\n\nexport const SendReadReceiptRequest: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"SendReadReceiptRequest\",\n modelProperties: {\n chatMessageId: {\n serializedName: \"chatMessageId\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const SendChatMessageRequest: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"SendChatMessageRequest\",\n modelProperties: {\n content: {\n serializedName: \"content\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n senderDisplayName: {\n serializedName: \"senderDisplayName\",\n type: {\n name: \"String\",\n },\n },\n type: {\n serializedName: \"type\",\n type: {\n name: \"Enum\",\n allowedValues: [\n \"text\",\n \"html\",\n \"topicUpdated\",\n \"participantAdded\",\n \"participantRemoved\",\n ],\n },\n },\n metadata: {\n serializedName: \"metadata\",\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"String\" } },\n },\n },\n attachments: {\n serializedName: \"attachments\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ChatAttachment\",\n },\n },\n },\n },\n },\n },\n};\n\nexport const ChatAttachment: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ChatAttachment\",\n modelProperties: {\n id: {\n serializedName: \"id\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n attachmentType: {\n serializedName: \"attachmentType\",\n required: true,\n type: {\n name: \"Enum\",\n allowedValues: [\"image\", \"file\"],\n },\n },\n name: {\n serializedName: \"name\",\n type: {\n name: \"String\",\n },\n },\n url: {\n serializedName: \"url\",\n type: {\n name: \"String\",\n },\n },\n previewUrl: {\n serializedName: \"previewUrl\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const SendChatMessageResult: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"SendChatMessageResult\",\n modelProperties: {\n id: {\n serializedName: \"id\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const ChatMessagesCollection: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ChatMessagesCollection\",\n modelProperties: {\n value: {\n serializedName: \"value\",\n required: true,\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ChatMessage\",\n },\n },\n },\n },\n nextLink: {\n serializedName: \"nextLink\",\n readOnly: true,\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const ChatMessage: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ChatMessage\",\n modelProperties: {\n id: {\n serializedName: \"id\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n type: {\n serializedName: \"type\",\n required: true,\n type: {\n name: \"Enum\",\n allowedValues: [\n \"text\",\n \"html\",\n \"topicUpdated\",\n \"participantAdded\",\n \"participantRemoved\",\n ],\n },\n },\n sequenceId: {\n serializedName: \"sequenceId\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n version: {\n serializedName: \"version\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n content: {\n serializedName: \"content\",\n type: {\n name: \"Composite\",\n className: \"ChatMessageContent\",\n },\n },\n senderDisplayName: {\n serializedName: \"senderDisplayName\",\n type: {\n name: \"String\",\n },\n },\n createdOn: {\n serializedName: \"createdOn\",\n required: true,\n type: {\n name: \"DateTime\",\n },\n },\n senderCommunicationIdentifier: {\n serializedName: \"senderCommunicationIdentifier\",\n type: {\n name: \"Composite\",\n className: \"CommunicationIdentifierModel\",\n },\n },\n deletedOn: {\n serializedName: \"deletedOn\",\n type: {\n name: \"DateTime\",\n },\n },\n editedOn: {\n serializedName: \"editedOn\",\n type: {\n name: \"DateTime\",\n },\n },\n metadata: {\n serializedName: \"metadata\",\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"String\" } },\n },\n },\n policyViolation: {\n serializedName: \"policyViolation\",\n type: {\n name: \"Composite\",\n className: \"PolicyViolation\",\n },\n },\n },\n },\n};\n\nexport const ChatMessageContent: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ChatMessageContent\",\n modelProperties: {\n message: {\n serializedName: \"message\",\n type: {\n name: \"String\",\n },\n },\n topic: {\n serializedName: \"topic\",\n type: {\n name: \"String\",\n },\n },\n participants: {\n serializedName: \"participants\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ChatParticipant\",\n },\n },\n },\n },\n attachments: {\n serializedName: \"attachments\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ChatAttachment\",\n },\n },\n },\n },\n initiatorCommunicationIdentifier: {\n serializedName: \"initiatorCommunicationIdentifier\",\n type: {\n name: \"Composite\",\n className: \"CommunicationIdentifierModel\",\n },\n },\n },\n },\n};\n\nexport const ChatParticipant: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ChatParticipant\",\n modelProperties: {\n communicationIdentifier: {\n serializedName: \"communicationIdentifier\",\n type: {\n name: \"Composite\",\n className: \"CommunicationIdentifierModel\",\n },\n },\n displayName: {\n serializedName: \"displayName\",\n type: {\n name: \"String\",\n },\n },\n shareHistoryTime: {\n serializedName: \"shareHistoryTime\",\n type: {\n name: \"DateTime\",\n },\n },\n metadata: {\n serializedName: \"metadata\",\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"String\" } },\n },\n },\n },\n },\n};\n\nexport const PolicyViolation: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"PolicyViolation\",\n modelProperties: {\n state: {\n serializedName: \"state\",\n required: true,\n type: {\n name: \"Enum\",\n allowedValues: [\"contentBlocked\", \"warning\"],\n },\n },\n },\n },\n};\n\nexport const UpdateChatMessageRequest: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"UpdateChatMessageRequest\",\n modelProperties: {\n content: {\n serializedName: \"content\",\n type: {\n name: \"String\",\n },\n },\n metadata: {\n serializedName: \"metadata\",\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"String\" } },\n },\n },\n attachments: {\n serializedName: \"attachments\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ChatAttachment\",\n },\n },\n },\n },\n },\n },\n};\n\nexport const ChatParticipantsCollection: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ChatParticipantsCollection\",\n modelProperties: {\n value: {\n serializedName: \"value\",\n required: true,\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ChatParticipant\",\n },\n },\n },\n },\n nextLink: {\n serializedName: \"nextLink\",\n readOnly: true,\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const AddChatParticipantsRequest: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"AddChatParticipantsRequest\",\n modelProperties: {\n participants: {\n serializedName: \"participants\",\n required: true,\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ChatParticipant\",\n },\n },\n },\n },\n },\n },\n};\n\nexport const AddChatParticipantsResult: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"AddChatParticipantsResult\",\n modelProperties: {\n invalidParticipants: {\n serializedName: \"invalidParticipants\",\n readOnly: true,\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ChatError\",\n },\n },\n },\n },\n },\n },\n};\n\nexport const CreateChatThreadRequest: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"CreateChatThreadRequest\",\n modelProperties: {\n topic: {\n serializedName: \"topic\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n participants: {\n serializedName: \"participants\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ChatParticipant\",\n },\n },\n },\n },\n metadata: {\n serializedName: \"metadata\",\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"String\" } },\n },\n },\n retentionPolicy: {\n serializedName: \"retentionPolicy\",\n type: {\n name: \"Composite\",\n className: \"ChatRetentionPolicy\",\n },\n },\n },\n },\n};\n\nexport const ChatRetentionPolicy: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ChatRetentionPolicy\",\n uberParent: \"ChatRetentionPolicy\",\n polymorphicDiscriminator: {\n serializedName: \"kind\",\n clientName: \"kind\",\n },\n modelProperties: {\n kind: {\n serializedName: \"kind\",\n required: true,\n type: {\n name: \"Enum\",\n allowedValues: [\"threadCreationDate\", \"none\"],\n },\n },\n },\n },\n};\n\nexport const CreateChatThreadResult: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"CreateChatThreadResult\",\n modelProperties: {\n chatThread: {\n serializedName: \"chatThread\",\n type: {\n name: \"Composite\",\n className: \"ChatThreadProperties\",\n },\n },\n invalidParticipants: {\n serializedName: \"invalidParticipants\",\n readOnly: true,\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ChatError\",\n },\n },\n },\n },\n },\n },\n};\n\nexport const ChatThreadProperties: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ChatThreadProperties\",\n modelProperties: {\n id: {\n serializedName: \"id\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n topic: {\n serializedName: \"topic\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n createdOn: {\n serializedName: \"createdOn\",\n required: true,\n type: {\n name: \"DateTime\",\n },\n },\n createdByCommunicationIdentifier: {\n serializedName: \"createdByCommunicationIdentifier\",\n type: {\n name: \"Composite\",\n className: \"CommunicationIdentifierModel\",\n },\n },\n deletedOn: {\n serializedName: \"deletedOn\",\n type: {\n name: \"DateTime\",\n },\n },\n metadata: {\n serializedName: \"metadata\",\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"String\" } },\n },\n },\n retentionPolicy: {\n serializedName: \"retentionPolicy\",\n type: {\n name: \"Composite\",\n className: \"ChatRetentionPolicy\",\n },\n },\n messagingPolicy: {\n serializedName: \"messagingPolicy\",\n type: {\n name: \"Composite\",\n className: \"MessagingPolicy\",\n },\n },\n },\n },\n};\n\nexport const MessagingPolicy: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"MessagingPolicy\",\n modelProperties: {\n textOnlyChat: {\n serializedName: \"textOnlyChat\",\n type: {\n name: \"Boolean\",\n },\n },\n },\n },\n};\n\nexport const ChatThreadsItemCollection: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ChatThreadsItemCollection\",\n modelProperties: {\n value: {\n serializedName: \"value\",\n required: true,\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ChatThreadItem\",\n },\n },\n },\n },\n nextLink: {\n serializedName: \"nextLink\",\n readOnly: true,\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const ChatThreadItem: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ChatThreadItem\",\n modelProperties: {\n id: {\n serializedName: \"id\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n topic: {\n serializedName: \"topic\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n deletedOn: {\n serializedName: \"deletedOn\",\n type: {\n name: \"DateTime\",\n },\n },\n lastMessageReceivedOn: {\n serializedName: \"lastMessageReceivedOn\",\n readOnly: true,\n type: {\n name: \"DateTime\",\n },\n },\n },\n },\n};\n\nexport const UpdateChatThreadRequest: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"UpdateChatThreadRequest\",\n modelProperties: {\n topic: {\n serializedName: \"topic\",\n type: {\n name: \"String\",\n },\n },\n metadata: {\n serializedName: \"metadata\",\n type: {\n name: \"Dictionary\",\n value: { type: { name: \"String\" } },\n },\n },\n retentionPolicy: {\n serializedName: \"retentionPolicy\",\n type: {\n name: \"Composite\",\n className: \"ChatRetentionPolicy\",\n },\n },\n },\n },\n};\n\nexport const SendTypingNotificationRequest: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"SendTypingNotificationRequest\",\n modelProperties: {\n senderDisplayName: {\n serializedName: \"senderDisplayName\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const UploadChatImageResult: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"UploadChatImageResult\",\n modelProperties: {\n id: {\n serializedName: \"id\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n attachmentType: {\n serializedName: \"attachmentType\",\n type: {\n name: \"Enum\",\n allowedValues: [\"image\", \"file\"],\n },\n },\n name: {\n serializedName: \"name\",\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const ErrorResponse: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ErrorResponse\",\n modelProperties: {\n error: {\n serializedName: \"error\",\n type: {\n name: \"Composite\",\n className: \"ErrorModel\",\n },\n },\n },\n },\n};\n\nexport const ErrorModel: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ErrorModel\",\n modelProperties: {\n code: {\n serializedName: \"code\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n message: {\n serializedName: \"message\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n details: {\n serializedName: \"details\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"ErrorDetail\",\n },\n },\n },\n },\n },\n },\n};\n\nexport const ErrorDetail: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ErrorDetail\",\n modelProperties: {\n code: {\n serializedName: \"code\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n message: {\n serializedName: \"message\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n },\n },\n};\n\nexport const ThreadCreationDateRetentionPolicy: coreClient.CompositeMapper = {\n serializedName: \"threadCreationDate\",\n type: {\n name: \"Composite\",\n className: \"ThreadCreationDateRetentionPolicy\",\n uberParent: \"ChatRetentionPolicy\",\n polymorphicDiscriminator: ChatRetentionPolicy.type.polymorphicDiscriminator,\n modelProperties: {\n ...ChatRetentionPolicy.type.modelProperties,\n deleteThreadAfterDays: {\n serializedName: \"deleteThreadAfterDays\",\n required: true,\n type: {\n name: \"Number\",\n },\n },\n },\n },\n};\n\nexport const NoneRetentionPolicy: coreClient.CompositeMapper = {\n serializedName: \"none\",\n type: {\n name: \"Composite\",\n className: \"NoneRetentionPolicy\",\n uberParent: \"ChatRetentionPolicy\",\n polymorphicDiscriminator: ChatRetentionPolicy.type.polymorphicDiscriminator,\n modelProperties: {\n ...ChatRetentionPolicy.type.modelProperties,\n },\n },\n};\n\nexport let discriminators = {\n ChatRetentionPolicy: ChatRetentionPolicy,\n \"ChatRetentionPolicy.threadCreationDate\": ThreadCreationDateRetentionPolicy,\n \"ChatRetentionPolicy.none\": NoneRetentionPolicy,\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport {\n OperationParameter,\n OperationURLParameter,\n OperationQueryParameter,\n} from \"@azure/core-client\";\nimport {\n SendReadReceiptRequest as SendReadReceiptRequestMapper,\n SendChatMessageRequest as SendChatMessageRequestMapper,\n UpdateChatMessageRequest as UpdateChatMessageRequestMapper,\n CommunicationIdentifierModel as CommunicationIdentifierModelMapper,\n AddChatParticipantsRequest as AddChatParticipantsRequestMapper,\n UpdateChatThreadRequest as UpdateChatThreadRequestMapper,\n SendTypingNotificationRequest as SendTypingNotificationRequestMapper,\n CreateChatThreadRequest as CreateChatThreadRequestMapper,\n} from \"../models/mappers\";\n\nexport const accept: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/json\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const endpoint: OperationURLParameter = {\n parameterPath: \"endpoint\",\n mapper: {\n serializedName: \"endpoint\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n skipEncoding: true,\n};\n\nexport const chatThreadId: OperationURLParameter = {\n parameterPath: \"chatThreadId\",\n mapper: {\n serializedName: \"chatThreadId\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const maxPageSize: OperationQueryParameter = {\n parameterPath: [\"options\", \"maxPageSize\"],\n mapper: {\n serializedName: \"maxPageSize\",\n type: {\n name: \"Number\",\n },\n },\n};\n\nexport const skip: OperationQueryParameter = {\n parameterPath: [\"options\", \"skip\"],\n mapper: {\n serializedName: \"skip\",\n type: {\n name: \"Number\",\n },\n },\n};\n\nexport const apiVersion: OperationQueryParameter = {\n parameterPath: \"apiVersion\",\n mapper: {\n defaultValue: \"2024-06-05-preview\",\n isConstant: true,\n serializedName: \"api-version\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const contentType: OperationParameter = {\n parameterPath: [\"options\", \"contentType\"],\n mapper: {\n defaultValue: \"application/json\",\n isConstant: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const sendReadReceiptRequest: OperationParameter = {\n parameterPath: \"sendReadReceiptRequest\",\n mapper: SendReadReceiptRequestMapper,\n};\n\nexport const sendChatMessageRequest: OperationParameter = {\n parameterPath: \"sendChatMessageRequest\",\n mapper: SendChatMessageRequestMapper,\n};\n\nexport const startTime: OperationQueryParameter = {\n parameterPath: [\"options\", \"startTime\"],\n mapper: {\n serializedName: \"startTime\",\n type: {\n name: \"DateTime\",\n },\n },\n};\n\nexport const chatMessageId: OperationURLParameter = {\n parameterPath: \"chatMessageId\",\n mapper: {\n serializedName: \"chatMessageId\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const contentType1: OperationParameter = {\n parameterPath: [\"options\", \"contentType\"],\n mapper: {\n defaultValue: \"application/merge-patch+json\",\n isConstant: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const updateChatMessageRequest: OperationParameter = {\n parameterPath: \"updateChatMessageRequest\",\n mapper: UpdateChatMessageRequestMapper,\n};\n\nexport const participantCommunicationIdentifier: OperationParameter = {\n parameterPath: \"participantCommunicationIdentifier\",\n mapper: CommunicationIdentifierModelMapper,\n};\n\nexport const addChatParticipantsRequest: OperationParameter = {\n parameterPath: \"addChatParticipantsRequest\",\n mapper: AddChatParticipantsRequestMapper,\n};\n\nexport const updateChatThreadRequest: OperationParameter = {\n parameterPath: \"updateChatThreadRequest\",\n mapper: UpdateChatThreadRequestMapper,\n};\n\nexport const sendTypingNotificationRequest: OperationParameter = {\n parameterPath: [\"options\", \"sendTypingNotificationRequest\"],\n mapper: SendTypingNotificationRequestMapper,\n};\n\nexport const contentType2: OperationParameter = {\n parameterPath: [\"options\", \"contentType\"],\n mapper: {\n defaultValue: \"application/octet-stream\",\n isConstant: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const chatImageFile: OperationParameter = {\n parameterPath: \"chatImageFile\",\n mapper: {\n serializedName: \"chatImageFile\",\n required: true,\n type: {\n name: \"Stream\",\n },\n },\n};\n\nexport const accept1: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/json\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const imageFilename: OperationParameter = {\n parameterPath: [\"options\", \"imageFilename\"],\n mapper: {\n serializedName: \"image-filename\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const accept2: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue:\n \"application/json, image/gif, image/jpeg, image/png, image/bmp, image/tiff\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const imageId: OperationURLParameter = {\n parameterPath: \"imageId\",\n mapper: {\n serializedName: \"imageId\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const imageViewType: OperationURLParameter = {\n parameterPath: \"imageViewType\",\n mapper: {\n serializedName: \"imageViewType\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n};\n\nexport const nextLink: OperationURLParameter = {\n parameterPath: \"nextLink\",\n mapper: {\n serializedName: \"nextLink\",\n required: true,\n type: {\n name: \"String\",\n },\n },\n skipEncoding: true,\n};\n\nexport const createChatThreadRequest: OperationParameter = {\n parameterPath: \"createChatThreadRequest\",\n mapper: CreateChatThreadRequestMapper,\n};\n\nexport const repeatabilityRequestId: OperationParameter = {\n parameterPath: [\"options\", \"repeatabilityRequestId\"],\n mapper: {\n serializedName: \"repeatability-request-id\",\n type: {\n name: \"String\",\n },\n },\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { tracingClient } from \"../tracing\";\nimport { ChatThread } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as coreRestPipeline from \"@azure/core-rest-pipeline\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { ChatApiClient } from \"../chatApiClient\";\nimport {\n ChatThreadListChatReadReceiptsOptionalParams,\n ChatThreadListChatReadReceiptsResponse,\n SendReadReceiptRequest,\n ChatThreadSendChatReadReceiptOptionalParams,\n SendChatMessageRequest,\n ChatThreadSendChatMessageOptionalParams,\n ChatThreadSendChatMessageResponse,\n ChatThreadListChatMessagesOptionalParams,\n ChatThreadListChatMessagesResponse,\n ChatThreadGetChatMessageOptionalParams,\n ChatThreadGetChatMessageResponse,\n UpdateChatMessageRequest,\n ChatThreadUpdateChatMessageOptionalParams,\n ChatThreadDeleteChatMessageOptionalParams,\n ChatThreadListChatParticipantsOptionalParams,\n ChatThreadListChatParticipantsResponse,\n CommunicationIdentifierModel,\n ChatThreadRemoveChatParticipantOptionalParams,\n AddChatParticipantsRequest,\n ChatThreadAddChatParticipantsOptionalParams,\n ChatThreadAddChatParticipantsResponse,\n UpdateChatThreadRequest,\n ChatThreadUpdateChatThreadPropertiesOptionalParams,\n ChatThreadGetChatThreadPropertiesOptionalParams,\n ChatThreadGetChatThreadPropertiesResponse,\n ChatThreadSendTypingNotificationOptionalParams,\n ChatThreadUploadChatImageOptionalParams,\n ChatThreadUploadChatImageResponse,\n ImageViewType,\n ChatThreadGetChatImageOptionalParams,\n ChatThreadGetChatImageResponse,\n ChatThreadDeleteChatImageOptionalParams,\n ChatThreadListChatReadReceiptsNextOptionalParams,\n ChatThreadListChatReadReceiptsNextResponse,\n ChatThreadListChatMessagesNextOptionalParams,\n ChatThreadListChatMessagesNextResponse,\n ChatThreadListChatParticipantsNextOptionalParams,\n ChatThreadListChatParticipantsNextResponse,\n} from \"../models\";\n\n/** Class containing ChatThread operations. */\nexport class ChatThreadImpl implements ChatThread {\n private readonly client: ChatApiClient;\n\n /**\n * Initialize a new instance of the class ChatThread class.\n * @param client Reference to the service client\n */\n constructor(client: ChatApiClient) {\n this.client = client;\n }\n\n /**\n * Gets chat message read receipts for a thread.\n * @param chatThreadId Thread id to get the chat message read receipts for.\n * @param options The options parameters.\n */\n async listChatReadReceipts(\n chatThreadId: string,\n options?: ChatThreadListChatReadReceiptsOptionalParams,\n ): Promise<ChatThreadListChatReadReceiptsResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.listChatReadReceipts\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, options },\n listChatReadReceiptsOperationSpec,\n ) as Promise<ChatThreadListChatReadReceiptsResponse>;\n },\n );\n }\n\n /**\n * Sends a read receipt event to a thread, on behalf of a user.\n * @param chatThreadId Thread id to send the read receipt event to.\n * @param sendReadReceiptRequest Read receipt details.\n * @param options The options parameters.\n */\n async sendChatReadReceipt(\n chatThreadId: string,\n sendReadReceiptRequest: SendReadReceiptRequest,\n options?: ChatThreadSendChatReadReceiptOptionalParams,\n ): Promise<void> {\n return tracingClient.withSpan(\n \"ChatApiClient.sendChatReadReceipt\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, sendReadReceiptRequest, options },\n sendChatReadReceiptOperationSpec,\n ) as Promise<void>;\n },\n );\n }\n\n /**\n * Sends a message to a thread.\n * @param chatThreadId The thread id to send the message to.\n * @param sendChatMessageRequest Details of the message to send.\n * @param options The options parameters.\n */\n async sendChatMessage(\n chatThreadId: string,\n sendChatMessageRequest: SendChatMessageRequest,\n options?: ChatThreadSendChatMessageOptionalParams,\n ): Promise<ChatThreadSendChatMessageResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.sendChatMessage\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, sendChatMessageRequest, options },\n sendChatMessageOperationSpec,\n ) as Promise<ChatThreadSendChatMessageResponse>;\n },\n );\n }\n\n /**\n * Gets a list of messages from a thread.\n * @param chatThreadId The thread id of the message.\n * @param options The options parameters.\n */\n async listChatMessages(\n chatThreadId: string,\n options?: ChatThreadListChatMessagesOptionalParams,\n ): Promise<ChatThreadListChatMessagesResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.listChatMessages\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, options },\n listChatMessagesOperationSpec,\n ) as Promise<ChatThreadListChatMessagesResponse>;\n },\n );\n }\n\n /**\n * Gets a message by id.\n * @param chatThreadId The thread id to which the message was sent.\n * @param chatMessageId The message id.\n * @param options The options parameters.\n */\n async getChatMessage(\n chatThreadId: string,\n chatMessageId: string,\n options?: ChatThreadGetChatMessageOptionalParams,\n ): Promise<ChatThreadGetChatMessageResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.getChatMessage\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, chatMessageId, options },\n getChatMessageOperationSpec,\n ) as Promise<ChatThreadGetChatMessageResponse>;\n },\n );\n }\n\n /**\n * Updates a message.\n * @param chatThreadId The thread id to which the message was sent.\n * @param chatMessageId The message id.\n * @param updateChatMessageRequest Details of the request to update the message.\n * @param options The options parameters.\n */\n async updateChatMessage(\n chatThreadId: string,\n chatMessageId: string,\n updateChatMessageRequest: UpdateChatMessageRequest,\n options?: ChatThreadUpdateChatMessageOptionalParams,\n ): Promise<void> {\n return tracingClient.withSpan(\n \"ChatApiClient.updateChatMessage\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, chatMessageId, updateChatMessageRequest, options },\n updateChatMessageOperationSpec,\n ) as Promise<void>;\n },\n );\n }\n\n /**\n * Deletes a message.\n * @param chatThreadId The thread id to which the message was sent.\n * @param chatMessageId The message id.\n * @param options The options parameters.\n */\n async deleteChatMessage(\n chatThreadId: string,\n chatMessageId: string,\n options?: ChatThreadDeleteChatMessageOptionalParams,\n ): Promise<void> {\n return tracingClient.withSpan(\n \"ChatApiClient.deleteChatMessage\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, chatMessageId, options },\n deleteChatMessageOperationSpec,\n ) as Promise<void>;\n },\n );\n }\n\n /**\n * Gets the participants of a thread.\n * @param chatThreadId Thread id to get participants for.\n * @param options The options parameters.\n */\n async listChatParticipants(\n chatThreadId: string,\n options?: ChatThreadListChatParticipantsOptionalParams,\n ): Promise<ChatThreadListChatParticipantsResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.listChatParticipants\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, options },\n listChatParticipantsOperationSpec,\n ) as Promise<ChatThreadListChatParticipantsResponse>;\n },\n );\n }\n\n /**\n * Remove a participant from a thread.\n * @param chatThreadId Thread id to remove the participant from.\n * @param participantCommunicationIdentifier Id of the thread participant to remove from the thread.\n * @param options The options parameters.\n */\n async removeChatParticipant(\n chatThreadId: string,\n participantCommunicationIdentifier: CommunicationIdentifierModel,\n options?: ChatThreadRemoveChatParticipantOptionalParams,\n ): Promise<void> {\n return tracingClient.withSpan(\n \"ChatApiClient.removeChatParticipant\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, participantCommunicationIdentifier, options },\n removeChatParticipantOperationSpec,\n ) as Promise<void>;\n },\n );\n }\n\n /**\n * Adds thread participants to a thread. If participants already exist, no change occurs.\n * @param chatThreadId Id of the thread to add participants to.\n * @param addChatParticipantsRequest Thread participants to be added to the thread.\n * @param options The options parameters.\n */\n async addChatParticipants(\n chatThreadId: string,\n addChatParticipantsRequest: AddChatParticipantsRequest,\n options?: ChatThreadAddChatParticipantsOptionalParams,\n ): Promise<ChatThreadAddChatParticipantsResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.addChatParticipants\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, addChatParticipantsRequest, options },\n addChatParticipantsOperationSpec,\n ) as Promise<ChatThreadAddChatParticipantsResponse>;\n },\n );\n }\n\n /**\n * Updates a thread's properties.\n * @param chatThreadId The id of the thread to update.\n * @param updateChatThreadRequest Request payload for updating a chat thread.\n * @param options The options parameters.\n */\n async updateChatThreadProperties(\n chatThreadId: string,\n updateChatThreadRequest: UpdateChatThreadRequest,\n options?: ChatThreadUpdateChatThreadPropertiesOptionalParams,\n ): Promise<void> {\n return tracingClient.withSpan(\n \"ChatApiClient.updateChatThreadProperties\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, updateChatThreadRequest, options },\n updateChatThreadPropertiesOperationSpec,\n ) as Promise<void>;\n },\n );\n }\n\n /**\n * Gets a chat thread's properties.\n * @param chatThreadId Id of the thread.\n * @param options The options parameters.\n */\n async getChatThreadProperties(\n chatThreadId: string,\n options?: ChatThreadGetChatThreadPropertiesOptionalParams,\n ): Promise<ChatThreadGetChatThreadPropertiesResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.getChatThreadProperties\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, options },\n getChatThreadPropertiesOperationSpec,\n ) as Promise<ChatThreadGetChatThreadPropertiesResponse>;\n },\n );\n }\n\n /**\n * Posts a typing event to a thread, on behalf of a user.\n * @param chatThreadId Id of the thread.\n * @param options The options parameters.\n */\n async sendTypingNotification(\n chatThreadId: string,\n options?: ChatThreadSendTypingNotificationOptionalParams,\n ): Promise<void> {\n return tracingClient.withSpan(\n \"ChatApiClient.sendTypingNotification\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, options },\n sendTypingNotificationOperationSpec,\n ) as Promise<void>;\n },\n );\n }\n\n /**\n * Upload an image in a thread, on behalf of a user.\n * @param chatThreadId Thread id where the uploaded image belongs to. (Teams meeting only)\n * @param chatImageFile Image binary data, allowed image formats: jpeg, png, gif, heic, webp\n * @param options The options parameters.\n */\n async uploadChatImage(\n chatThreadId: string,\n chatImageFile: coreRestPipeline.RequestBodyType,\n options?: ChatThreadUploadChatImageOptionalParams,\n ): Promise<ChatThreadUploadChatImageResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.uploadChatImage\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, chatImageFile, options },\n uploadChatImageOperationSpec,\n ) as Promise<ChatThreadUploadChatImageResponse>;\n },\n );\n }\n\n /**\n * Get an image by view type.\n * @param chatThreadId The thread id to which the message was sent.\n * @param imageId The image id.\n * @param imageViewType The view type of image.\n * @param options The options parameters.\n */\n async getChatImage(\n chatThreadId: string,\n imageId: string,\n imageViewType: ImageViewType,\n options?: ChatThreadGetChatImageOptionalParams,\n ): Promise<ChatThreadGetChatImageResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.getChatImage\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, imageId, imageViewType, options },\n getChatImageOperationSpec,\n ) as Promise<ChatThreadGetChatImageResponse>;\n },\n );\n }\n\n /**\n * Deletes a image.\n * @param chatThreadId The thread id to which the message was sent.\n * @param imageId The image id.\n * @param options The options parameters.\n */\n async deleteChatImage(\n chatThreadId: string,\n imageId: string,\n options?: ChatThreadDeleteChatImageOptionalParams,\n ): Promise<void> {\n return tracingClient.withSpan(\n \"ChatApiClient.deleteChatImage\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, imageId, options },\n deleteChatImageOperationSpec,\n ) as Promise<void>;\n },\n );\n }\n\n /**\n * ListChatReadReceiptsNext\n * @param chatThreadId Thread id to get the chat message read receipts for.\n * @param nextLink The nextLink from the previous successful call to the ListChatReadReceipts method.\n * @param options The options parameters.\n */\n async listChatReadReceiptsNext(\n chatThreadId: string,\n nextLink: string,\n options?: ChatThreadListChatReadReceiptsNextOptionalParams,\n ): Promise<ChatThreadListChatReadReceiptsNextResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.listChatReadReceiptsNext\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, nextLink, options },\n listChatReadReceiptsNextOperationSpec,\n ) as Promise<ChatThreadListChatReadReceiptsNextResponse>;\n },\n );\n }\n\n /**\n * ListChatMessagesNext\n * @param chatThreadId The thread id of the message.\n * @param nextLink The nextLink from the previous successful call to the ListChatMessages method.\n * @param options The options parameters.\n */\n async listChatMessagesNext(\n chatThreadId: string,\n nextLink: string,\n options?: ChatThreadListChatMessagesNextOptionalParams,\n ): Promise<ChatThreadListChatMessagesNextResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.listChatMessagesNext\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, nextLink, options },\n listChatMessagesNextOperationSpec,\n ) as Promise<ChatThreadListChatMessagesNextResponse>;\n },\n );\n }\n\n /**\n * ListChatParticipantsNext\n * @param chatThreadId Thread id to get participants for.\n * @param nextLink The nextLink from the previous successful call to the ListChatParticipants method.\n * @param options The options parameters.\n */\n async listChatParticipantsNext(\n chatThreadId: string,\n nextLink: string,\n options?: ChatThreadListChatParticipantsNextOptionalParams,\n ): Promise<ChatThreadListChatParticipantsNextResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.listChatParticipantsNext\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, nextLink, options },\n listChatParticipantsNextOperationSpec,\n ) as Promise<ChatThreadListChatParticipantsNextResponse>;\n },\n );\n }\n}\n// Operation Specifications\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst listChatReadReceiptsOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}/readReceipts\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.ChatMessageReadReceiptsCollection,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n queryParameters: [\n Parameters.maxPageSize,\n Parameters.skip,\n Parameters.apiVersion,\n ],\n urlParameters: [Parameters.endpoint, Parameters.chatThreadId],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst sendChatReadReceiptOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}/readReceipts\",\n httpMethod: \"POST\",\n responses: {\n 200: {},\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n requestBody: Parameters.sendReadReceiptRequest,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.chatThreadId],\n headerParameters: [Parameters.accept, Parameters.contentType],\n mediaType: \"json\",\n serializer,\n};\nconst sendChatMessageOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}/messages\",\n httpMethod: \"POST\",\n responses: {\n 201: {\n bodyMapper: Mappers.SendChatMessageResult,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n requestBody: Parameters.sendChatMessageRequest,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.chatThreadId],\n headerParameters: [Parameters.accept, Parameters.contentType],\n mediaType: \"json\",\n serializer,\n};\nconst listChatMessagesOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}/messages\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.ChatMessagesCollection,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n queryParameters: [\n Parameters.maxPageSize,\n Parameters.apiVersion,\n Parameters.startTime,\n ],\n urlParameters: [Parameters.endpoint, Parameters.chatThreadId],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst getChatMessageOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}/messages/{chatMessageId}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.ChatMessage,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.endpoint,\n Parameters.chatThreadId,\n Parameters.chatMessageId,\n ],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst updateChatMessageOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}/messages/{chatMessageId}\",\n httpMethod: \"PATCH\",\n responses: {\n 204: {},\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n requestBody: Parameters.updateChatMessageRequest,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.endpoint,\n Parameters.chatThreadId,\n Parameters.chatMessageId,\n ],\n headerParameters: [Parameters.accept, Parameters.contentType1],\n mediaType: \"json\",\n serializer,\n};\nconst deleteChatMessageOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}/messages/{chatMessageId}\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.endpoint,\n Parameters.chatThreadId,\n Parameters.chatMessageId,\n ],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst listChatParticipantsOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}/participants\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.ChatParticipantsCollection,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n queryParameters: [\n Parameters.maxPageSize,\n Parameters.skip,\n Parameters.apiVersion,\n ],\n urlParameters: [Parameters.endpoint, Parameters.chatThreadId],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst removeChatParticipantOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}/participants/:remove\",\n httpMethod: \"POST\",\n responses: {\n 204: {},\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n requestBody: Parameters.participantCommunicationIdentifier,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.chatThreadId],\n headerParameters: [Parameters.accept, Parameters.contentType],\n mediaType: \"json\",\n serializer,\n};\nconst addChatParticipantsOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}/participants/:add\",\n httpMethod: \"POST\",\n responses: {\n 201: {\n bodyMapper: Mappers.AddChatParticipantsResult,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n requestBody: Parameters.addChatParticipantsRequest,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.chatThreadId],\n headerParameters: [Parameters.accept, Parameters.contentType],\n mediaType: \"json\",\n serializer,\n};\nconst updateChatThreadPropertiesOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}\",\n httpMethod: \"PATCH\",\n responses: {\n 204: {},\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n requestBody: Parameters.updateChatThreadRequest,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.chatThreadId],\n headerParameters: [Parameters.accept, Parameters.contentType1],\n mediaType: \"json\",\n serializer,\n};\nconst getChatThreadPropertiesOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.ChatThreadProperties,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.chatThreadId],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst sendTypingNotificationOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}/typing\",\n httpMethod: \"POST\",\n responses: {\n 200: {},\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n requestBody: Parameters.sendTypingNotificationRequest,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.chatThreadId],\n headerParameters: [Parameters.accept, Parameters.contentType],\n mediaType: \"json\",\n serializer,\n};\nconst uploadChatImageOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}/images\",\n httpMethod: \"POST\",\n responses: {\n 201: {\n bodyMapper: Mappers.UploadChatImageResult,\n },\n default: {\n bodyMapper: Mappers.ErrorResponse,\n },\n },\n requestBody: Parameters.chatImageFile,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.chatThreadId],\n headerParameters: [\n Parameters.contentType2,\n Parameters.accept1,\n Parameters.imageFilename,\n ],\n mediaType: \"binary\",\n serializer,\n};\nconst getChatImageOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}/images/{imageId}/view/{imageViewType}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: {\n type: { name: \"Stream\" },\n serializedName: \"parsedResponse\",\n },\n },\n default: {\n bodyMapper: Mappers.ErrorResponse,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.endpoint,\n Parameters.chatThreadId,\n Parameters.imageId,\n Parameters.imageViewType,\n ],\n headerParameters: [Parameters.accept2],\n serializer,\n};\nconst deleteChatImageOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}/images/{imageId}\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n default: {\n bodyMapper: Mappers.ErrorResponse,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.endpoint,\n Parameters.chatThreadId,\n Parameters.imageId,\n ],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst listChatReadReceiptsNextOperationSpec: coreClient.OperationSpec = {\n path: \"{nextLink}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.ChatMessageReadReceiptsCollection,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n urlParameters: [\n Parameters.endpoint,\n Parameters.chatThreadId,\n Parameters.nextLink,\n ],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst listChatMessagesNextOperationSpec: coreClient.OperationSpec = {\n path: \"{nextLink}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.ChatMessagesCollection,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n urlParameters: [\n Parameters.endpoint,\n Parameters.chatThreadId,\n Parameters.nextLink,\n ],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst listChatParticipantsNextOperationSpec: coreClient.OperationSpec = {\n path: \"{nextLink}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.ChatParticipantsCollection,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n urlParameters: [\n Parameters.endpoint,\n Parameters.chatThreadId,\n Parameters.nextLink,\n ],\n headerParameters: [Parameters.accept],\n serializer,\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { tracingClient } from \"../tracing\";\nimport { Chat } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { ChatApiClient } from \"../chatApiClient\";\nimport {\n CreateChatThreadRequest,\n ChatCreateChatThreadOptionalParams,\n ChatCreateChatThreadResponse,\n ChatListChatThreadsOptionalParams,\n ChatListChatThreadsResponse,\n ChatDeleteChatThreadOptionalParams,\n ChatListChatThreadsNextOptionalParams,\n ChatListChatThreadsNextResponse,\n} from \"../models\";\n\n/** Class containing Chat operations. */\nexport class ChatImpl implements Chat {\n private readonly client: ChatApiClient;\n\n /**\n * Initialize a new instance of the class Chat class.\n * @param client Reference to the service client\n */\n constructor(client: ChatApiClient) {\n this.client = client;\n }\n\n /**\n * Creates a chat thread.\n * @param createChatThreadRequest Request payload for creating a chat thread.\n * @param options The options parameters.\n */\n async createChatThread(\n createChatThreadRequest: CreateChatThreadRequest,\n options?: ChatCreateChatThreadOptionalParams,\n ): Promise<ChatCreateChatThreadResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.createChatThread\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { createChatThreadRequest, options },\n createChatThreadOperationSpec,\n ) as Promise<ChatCreateChatThreadResponse>;\n },\n );\n }\n\n /**\n * Gets the list of chat threads of a user.\n * @param options The options parameters.\n */\n async listChatThreads(\n options?: ChatListChatThreadsOptionalParams,\n ): Promise<ChatListChatThreadsResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.listChatThreads\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { options },\n listChatThreadsOperationSpec,\n ) as Promise<ChatListChatThreadsResponse>;\n },\n );\n }\n\n /**\n * Deletes a thread.\n * @param chatThreadId Id of the thread to be deleted.\n * @param options The options parameters.\n */\n async deleteChatThread(\n chatThreadId: string,\n options?: ChatDeleteChatThreadOptionalParams,\n ): Promise<void> {\n return tracingClient.withSpan(\n \"ChatApiClient.deleteChatThread\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { chatThreadId, options },\n deleteChatThreadOperationSpec,\n ) as Promise<void>;\n },\n );\n }\n\n /**\n * ListChatThreadsNext\n * @param nextLink The nextLink from the previous successful call to the ListChatThreads method.\n * @param options The options parameters.\n */\n async listChatThreadsNext(\n nextLink: string,\n options?: ChatListChatThreadsNextOptionalParams,\n ): Promise<ChatListChatThreadsNextResponse> {\n return tracingClient.withSpan(\n \"ChatApiClient.listChatThreadsNext\",\n options ?? {},\n async (options) => {\n return this.client.sendOperationRequest(\n { nextLink, options },\n listChatThreadsNextOperationSpec,\n ) as Promise<ChatListChatThreadsNextResponse>;\n },\n );\n }\n}\n// Operation Specifications\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst createChatThreadOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads\",\n httpMethod: \"POST\",\n responses: {\n 201: {\n bodyMapper: Mappers.CreateChatThreadResult,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n requestBody: Parameters.createChatThreadRequest,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint],\n headerParameters: [\n Parameters.accept,\n Parameters.contentType,\n Parameters.repeatabilityRequestId,\n ],\n mediaType: \"json\",\n serializer,\n};\nconst listChatThreadsOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.ChatThreadsItemCollection,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n queryParameters: [\n Parameters.maxPageSize,\n Parameters.apiVersion,\n Parameters.startTime,\n ],\n urlParameters: [Parameters.endpoint],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst deleteChatThreadOperationSpec: coreClient.OperationSpec = {\n path: \"/chat/threads/{chatThreadId}\",\n httpMethod: \"DELETE\",\n responses: {\n 204: {},\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.endpoint, Parameters.chatThreadId],\n headerParameters: [Parameters.accept],\n serializer,\n};\nconst listChatThreadsNextOperationSpec: coreClient.OperationSpec = {\n path: \"{nextLink}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.ChatThreadsItemCollection,\n },\n 401: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 403: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 429: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n 503: {\n bodyMapper: Mappers.CommunicationErrorResponse,\n isError: true,\n },\n },\n urlParameters: [Parameters.endpoint, Parameters.nextLink],\n headerParameters: [Parameters.accept],\n serializer,\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\nimport {\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n} from \"@azure/core-rest-pipeline\";\nimport { ChatThreadImpl, ChatImpl } from \"./operations\";\nimport { ChatThread, Chat } from \"./operationsInterfaces\";\nimport { ChatApiClientOptionalParams } from \"./models\";\n\nexport class ChatApiClient extends coreClient.ServiceClient {\n endpoint: string;\n apiVersion: string;\n\n /**\n * Initializes a new instance of the ChatApiClient class.\n * @param endpoint The endpoint of the Azure Communication resource.\n * @param options The parameter options\n */\n constructor(endpoint: string, options?: ChatApiClientOptionalParams) {\n if (endpoint === undefined) {\n throw new Error(\"'endpoint' cannot be null\");\n }\n\n // Initializing default values for options\n if (!options) {\n options = {};\n }\n const defaults: ChatApiClientOptionalParams = {\n requestContentType: \"application/json; charset=utf-8\",\n };\n\n const packageDetails = `azsdk-js-communication-chat/1.6.0-beta.2`;\n const userAgentPrefix =\n options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`\n : `${packageDetails}`;\n\n const optionsWithDefaults = {\n ...defaults,\n ...options,\n userAgentOptions: {\n userAgentPrefix,\n },\n endpoint: options.endpoint ?? options.baseUri ?? \"{endpoint}\",\n };\n super(optionsWithDefaults);\n // Parameter assignments\n this.endpoint = endpoint;\n\n // Assigning values to Constant parameters\n this.apiVersion = options.apiVersion || \"2024-06-05-preview\";\n this.chatThread = new ChatThreadImpl(this);\n this.chat = new ChatImpl(this);\n this.addCustomApiVersionPolicy(options.apiVersion);\n }\n\n /** A function that adds a policy that sets the api-version (or equivalent) to reflect the library version. */\n private addCustomApiVersionPolicy(apiVersion?: string) {\n if (!apiVersion) {\n return;\n }\n const apiVersionPolicy = {\n name: \"CustomApiVersionPolicy\",\n async sendRequest(\n request: PipelineRequest,\n next: SendRequest,\n ): Promise<PipelineResponse> {\n const param = request.url.split(\"?\");\n if (param.length > 1) {\n const newParams = param[1].split(\"&\").map((item) => {\n if (item.indexOf(\"api-version\") > -1) {\n return \"api-version=\" + apiVersion;\n } else {\n return item;\n }\n });\n request.url = param[0] + \"?\" + newParams.join(\"&\");\n }\n return next(request);\n },\n };\n this.pipeline.addPolicy(apiVersionPolicy);\n }\n\n chatThread: ChatThread;\n chat: Chat;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { createClientLogger } from \"@azure/logger\";\n\nexport const logger = createClientLogger(\"communication-chat\");\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { AbortError } from \"@azure/abort-controller\";\nimport {\n HttpClient,\n PipelineRequest,\n PipelineResponse,\n TransferProgressEvent,\n HttpHeaders,\n RestError,\n createHttpHeaders,\n} from \"@azure/core-rest-pipeline\";\n\n// Temporary workaround with local copy of XhrHttpClient\nfunction isNodeReadableStream(body: any): body is NodeJS.ReadableStream {\n return body && typeof body.pipe === \"function\";\n}\n\n/**\n * Checks if the body is a Blob or Blob-like\n * @internal\n */\nexport function isBlob(body: unknown): body is Blob {\n // File objects count as a type of Blob, so we want to use instanceof explicitly\n return (typeof Blob === \"function\" || typeof Blob === \"object\") && body instanceof Blob;\n}\n\n/**\n * Checks if the body is a ReadableStream supported by browsers\n * @internal\n */\nexport function isReadableStream(body: unknown): body is ReadableStream {\n return Boolean(\n body &&\n typeof (body as ReadableStream).getReader === \"function\" &&\n typeof (body as ReadableStream).tee === \"function\",\n );\n}\n\n/**\n * A HttpClient implementation that uses XMLHttpRequest to send HTTP requests.\n * @internal\n */\nclass XhrHttpClient implements HttpClient {\n /**\n * Makes a request over an underlying transport layer and returns the response.\n * @param request - The request to be made.\n */\n public async sendRequest(request: PipelineRequest): Promise<PipelineResponse> {\n const url = new URL(request.url);\n const isInsecure = url.protocol !== \"https:\";\n\n if (isInsecure && !request.allowInsecureConnection) {\n throw new Error(`Cannot connect to ${request.url} while allowInsecureConnection is false.`);\n }\n\n const xhr = new XMLHttpRequest();\n\n if (request.proxySettings) {\n throw new Error(\"HTTP proxy is not supported in browser environment\");\n }\n\n const abortSignal = request.abortSignal;\n if (abortSignal) {\n if (abortSignal.aborted) {\n throw new AbortError(\"The operation was aborted.\");\n }\n\n const listener = (): void => {\n xhr.abort();\n };\n abortSignal.addEventListener(\"abort\", listener);\n xhr.addEventListener(\"readystatechange\", () => {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n abortSignal.removeEventListener(\"abort\", listener);\n }\n });\n }\n\n addProgressListener(xhr.upload, request.onUploadProgress);\n addProgressListener(xhr, request.onDownloadProgress);\n\n xhr.open(request.method, request.url);\n xhr.timeout = request.timeout;\n xhr.withCredentials = request.withCredentials;\n for (const [name, value] of request.headers) {\n xhr.setRequestHeader(name, value);\n }\n\n xhr.responseType = request.streamResponseStatusCodes?.size ? \"blob\" : \"text\";\n\n const body = typeof request.body === \"function\" ? request.body() : request.body;\n if (isNodeReadableStream(body) || isReadableStream(body)) {\n throw new Error(\"Streams are not supported by xhrHttpClient.\");\n }\n\n xhr.send(body === undefined ? null : body);\n\n if (xhr.responseType === \"blob\") {\n return new Promise((resolve, reject) => {\n handleBlobResponse(xhr, request, resolve, reject);\n rejectOnTerminalEvent(request, xhr, reject);\n });\n } else {\n return new Promise(function (resolve, reject) {\n xhr.addEventListener(\"load\", () =>\n resolve({\n request,\n status: xhr.status,\n headers: parseHeaders(xhr),\n bodyAsText: xhr.responseText,\n }),\n );\n rejectOnTerminalEvent(request, xhr, reject);\n });\n }\n }\n}\n\nfunction handleBlobResponse(\n xhr: XMLHttpRequest,\n request: PipelineRequest,\n res: (value: PipelineResponse | PromiseLike<PipelineResponse>) => void,\n rej: (reason?: any) => void,\n): void {\n xhr.addEventListener(\"readystatechange\", () => {\n // Resolve as soon as headers are loaded\n if (xhr.readyState === XMLHttpRequest.HEADERS_RECEIVED) {\n if (\n // Value of POSITIVE_INFINITY in streamResponseStatusCodes is considered as any status code\n request.streamResponseStatusCodes?.has(Number.POSITIVE_INFINITY) ||\n request.streamResponseStatusCodes?.has(xhr.status)\n ) {\n const blobBody = new Promise<Blob>((resolve, reject) => {\n xhr.addEventListener(\"load\", () => {\n resolve(xhr.response);\n });\n rejectOnTerminalEvent(request, xhr, reject);\n });\n res({\n request,\n status: xhr.status,\n headers: parseHeaders(xhr),\n blobBody,\n });\n } else {\n xhr.addEventListener(\"load\", () => {\n // xhr.response is of Blob type if the request is sent with xhr.responseType === \"blob\"\n // but the status code is not one of the stream response status codes,\n // so treat it as text and convert from Blob to text\n if (xhr.response) {\n xhr.response\n .text()\n .then((text: string) => {\n res({\n request: request,\n status: xhr.status,\n headers: parseHeaders(xhr),\n bodyAsText: text,\n });\n return;\n })\n .catch((e: any) => {\n rej(e);\n });\n } else {\n res({\n request,\n status: xhr.status,\n headers: parseHeaders(xhr),\n });\n }\n });\n }\n }\n });\n}\n\nfunction addProgressListener(\n xhr: XMLHttpRequestEventTarget,\n listener?: (progress: TransferProgressEvent) => void,\n): void {\n if (listener) {\n xhr.addEventListener(\"progress\", (rawEvent) =>\n listener({\n loadedBytes: rawEvent.loaded,\n }),\n );\n }\n}\n\nfunction parseHeaders(xhr: XMLHttpRequest): HttpHeaders {\n const responseHeaders = createHttpHeaders();\n const headerLines = xhr\n .getAllResponseHeaders()\n .trim()\n .split(/[\\r\\n]+/);\n for (const line of headerLines) {\n const index = line.indexOf(\":\");\n const headerName = line.slice(0, index);\n const headerValue = line.slice(index + 2);\n responseHeaders.set(headerName, headerValue);\n }\n return responseHeaders;\n}\n\nfunction rejectOnTerminalEvent(\n request: PipelineRequest,\n xhr: XMLHttpRequest,\n reject: (err: any) => void,\n): void {\n xhr.addEventListener(\"error\", () =>\n reject(\n new RestError(`Failed to send request to ${request.url}`, {\n code: RestError.REQUEST_SEND_ERROR,\n request,\n }),\n ),\n );\n const abortError = new AbortError(\"The operation was aborted.\");\n xhr.addEventListener(\"abort\", () => reject(abortError));\n xhr.addEventListener(\"timeout\", () => reject(abortError));\n}\n\n/**\n * Create a new HttpClient instance for the browser environment.\n * @internal\n */\nexport function createXhrHttpClient(): HttpClient {\n return new XhrHttpClient();\n}\n","// 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","// 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 UploadChatImageResult,\n} from \"./models/models\";\nimport {\n mapToAddChatParticipantsRequestRestModel,\n mapToChatMessageSdkModel,\n mapToChatParticipantSdkModel,\n mapToChatThreadPropertiesSdkModel,\n mapToReadReceiptSdkModel,\n mapToSendChatMessageRequestRestModel,\n mapToUpdateChatMessageRequestRestModel,\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 UpdateChatThreadPropertiesOptions,\n DeleteImageOptions,\n UploadImageOptions,\n UploadImageStreamOptions,\n} from \"./models/options\";\nimport {\n ChatApiClient,\n ChatThreadGetChatThreadPropertiesOptionalParams,\n ChatThreadUpdateChatThreadPropertiesOptionalParams,\n ChatThreadSendChatMessageOptionalParams,\n ChatThreadGetChatMessageOptionalParams,\n ChatThreadDeleteChatMessageOptionalParams,\n ChatThreadUpdateChatMessageOptionalParams,\n ChatThreadAddChatParticipantsOptionalParams,\n ChatThreadRemoveChatParticipantOptionalParams,\n ChatThreadSendChatReadReceiptOptionalParams,\n ChatThreadUploadChatImageOptionalParams,\n ChatThreadDeleteChatImageOptionalParams,\n} from \"./generated/src\";\nimport { InternalPipelineOptions } from \"@azure/core-rest-pipeline\";\nimport { createXhrHttpClient, isReadableStream, isBlob } from \"./xhrHttpClient\";\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 private readonly xhrClient?: ChatApiClient;\n\n private timeOfLastTypingRequest: Date | undefined = undefined;\n\n constructor(\n private readonly endpoint: string,\n threadId: string,\n credential: CommunicationTokenCredential,\n options: ChatThreadClientOptions = {},\n ) {\n this.threadId = threadId;\n this.tokenCredential = credential;\n\n const internalPipelineOptions: InternalPipelineOptions = {\n ...options,\n ...{\n loggingOptions: {\n logger: logger.info,\n },\n },\n };\n\n this.client = new ChatApiClient(this.endpoint, {\n endpoint: this.endpoint,\n ...internalPipelineOptions,\n });\n\n const authPolicy = createCommunicationTokenCredentialPolicy(this.tokenCredential);\n this.client.pipeline.addPolicy(authPolicy);\n\n if (typeof XMLHttpRequest !== \"undefined\") {\n this.xhrClient = new ChatApiClient(this.endpoint, {\n endpoint: this.endpoint,\n ...internalPipelineOptions,\n httpClient: createXhrHttpClient(),\n });\n this.xhrClient.pipeline.addPolicy(authPolicy);\n }\n }\n\n /**\n * Gets a chat thread.\n * Returns the chat thread.\n * @param options - Operation options.\n */\n public getProperties(options: GetPropertiesOptions = {}): Promise<ChatThreadProperties> {\n return tracingClient.withSpan(\n \"ChatClient-GetProperties\",\n options,\n async (updatedOptions: ChatThreadGetChatThreadPropertiesOptionalParams | undefined) => {\n const result = await this.client.chatThread.getChatThreadProperties(\n this.threadId,\n updatedOptions,\n );\n return mapToChatThreadPropertiesSdkModel(result);\n },\n );\n }\n\n /**\n * Updates a thread's topic.\n * @param topic - The topic needs to be updated to.\n * @param options - Operation options.\n */\n public updateTopic(topic: string, options: UpdateTopicOptions = {}): Promise<void> {\n return tracingClient.withSpan(\n \"ChatThreadClient-UpdateTopic\",\n options,\n async (updatedOptions: ChatThreadUpdateChatThreadPropertiesOptionalParams | undefined) => {\n await this.client.chatThread.updateChatThreadProperties(\n this.threadId,\n { topic: topic },\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Updates a thread's properties.\n * @param options - Operation options.\n */\n public updateProperties(options: UpdateChatThreadPropertiesOptions = {}): Promise<void> {\n return tracingClient.withSpan(\n \"ChatThreadClient-UpdateProperties\",\n options,\n async (updatedOptions: ChatThreadUpdateChatThreadPropertiesOptionalParams | undefined) => {\n await this.client.chatThread.updateChatThreadProperties(\n this.threadId,\n options,\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Sends a chat message to a thread identified by threadId.\n * Returns the id of the created message.\n * @param request - Request for sending a message.\n * @param options - Operation options.\n */\n public sendMessage(\n request: SendMessageRequest,\n options: SendMessageOptions = {},\n ): Promise<SendChatMessageResult> {\n return tracingClient.withSpan(\n \"ChatThreadClient-SendMessage\",\n options,\n async (updatedOptions: ChatThreadSendChatMessageOptionalParams | undefined) => {\n // reset typing notification clock\n this.timeOfLastTypingRequest = undefined;\n\n const result = await this.client.chatThread.sendChatMessage(\n this.threadId,\n mapToSendChatMessageRequestRestModel(request, options),\n updatedOptions,\n );\n return result;\n },\n );\n }\n\n /**\n * Gets a chat message identified by messageId.\n * Returns the specific message.\n * @param messageId - The message id of the message.\n * @param options - Operation options.\n */\n public getMessage(messageId: string, options: GetMessageOptions = {}): Promise<ChatMessage> {\n return tracingClient.withSpan(\n \"ChatThreadClient-GetMessage\",\n options,\n async (updatedOptions: ChatThreadGetChatMessageOptionalParams | undefined) => {\n const result = await this.client.chatThread.getChatMessage(\n this.threadId,\n messageId,\n updatedOptions,\n );\n return mapToChatMessageSdkModel(result);\n },\n );\n }\n\n private async *listMessagesPage(\n pageSettings: ListPageSettings,\n options: ListMessagesOptions = {},\n ): AsyncIterableIterator<ChatMessage[]> {\n if (!pageSettings.continuationToken) {\n const currentSetResponse = await this.client.chatThread.listChatMessages(\n this.threadId,\n options,\n );\n pageSettings.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mapToChatMessageSdkModel, this);\n }\n }\n\n while (pageSettings.continuationToken) {\n const currentSetResponse = await this.client.chatThread.listChatMessagesNext(\n this.threadId,\n pageSettings.continuationToken,\n options,\n );\n pageSettings.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mapToChatMessageSdkModel, this);\n } else {\n break;\n }\n }\n }\n\n private async *listMessagesAll(options: ListMessagesOptions): AsyncIterableIterator<ChatMessage> {\n for await (const page of this.listMessagesPage({}, options)) {\n yield* page;\n }\n }\n\n /**\n * Gets a list of message from a thread identified by threadId.\n * Returns the list of the messages.\n * @param options - Get messages options.\n */\n public listMessages(options: ListMessagesOptions = {}): PagedAsyncIterableIterator<ChatMessage> {\n const { span, updatedOptions } = tracingClient.startSpan(\n \"ChatThreadClient-ListMessages\",\n options,\n );\n\n try {\n const iter = this.listMessagesAll(updatedOptions);\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage: (settings: ListPageSettings = {}) => {\n return this.listMessagesPage(settings, updatedOptions);\n },\n };\n } catch (e: any) {\n span.setStatus({\n status: \"error\",\n error: e,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Deletes a message identified by threadId and messageId\n * @param messageId - The message id of the message.\n * @param options - Operation options.\n */\n public deleteMessage(messageId: string, options: DeleteMessageOptions = {}): Promise<void> {\n return tracingClient.withSpan(\n \"ChatThreadClient-DeleteMessage\",\n options,\n async (updatedOptions: ChatThreadDeleteChatMessageOptionalParams | undefined) => {\n await this.client.chatThread.deleteChatMessage(this.threadId, messageId, updatedOptions);\n },\n );\n }\n\n /**\n * Updates a message identified by threadId and messageId\n * @param messageId - The message id of the message.\n * @param options - Operation options.\n */\n public async updateMessage(messageId: string, options: UpdateMessageOptions = {}): Promise<void> {\n return tracingClient.withSpan(\n \"ChatThreadClient-UpdateMessage\",\n options,\n async (updatedOptions: ChatThreadUpdateChatMessageOptionalParams | undefined) => {\n await this.client.chatThread.updateChatMessage(\n this.threadId,\n messageId,\n mapToUpdateChatMessageRequestRestModel(options),\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Adds the details of chat participants belonging to the thread identified by threadId.\n * @param request - Thread participants' details to add in the thread roster\n * @param options - Operation options.\n */\n public async addParticipants(\n request: AddParticipantsRequest,\n options: AddParticipantsOptions = {},\n ): Promise<AddChatParticipantsResult> {\n return tracingClient.withSpan(\n \"ChatThreadClient-AddParticipants\",\n options,\n async (updatedOptions: ChatThreadAddChatParticipantsOptionalParams | undefined) => {\n const result = await this.client.chatThread.addChatParticipants(\n this.threadId,\n mapToAddChatParticipantsRequestRestModel(request),\n updatedOptions,\n );\n return result;\n },\n );\n }\n\n private async *listParticipantsPage(\n continuationState: ListPageSettings,\n options: ListParticipantsOptions = {},\n ): AsyncIterableIterator<ChatParticipant[]> {\n if (!continuationState.continuationToken) {\n const currentSetResponse = await this.client.chatThread.listChatParticipants(\n this.threadId,\n options,\n );\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mapToChatParticipantSdkModel, this);\n }\n }\n\n while (continuationState.continuationToken) {\n const currentSetResponse = await this.client.chatThread.listChatParticipantsNext(\n this.threadId,\n continuationState.continuationToken,\n options,\n );\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mapToChatParticipantSdkModel, this);\n } else {\n break;\n }\n }\n }\n\n private async *listParticipantsAll(\n options: ListParticipantsOptions,\n ): AsyncIterableIterator<ChatParticipant> {\n for await (const page of this.listParticipantsPage({}, options)) {\n yield* page;\n }\n }\n\n /**\n * Gets the participants of the thread identified by threadId.\n * Returns the lists of the participants.\n * @param options - Operation options.\n */\n public listParticipants(\n options: ListParticipantsOptions = {},\n ): PagedAsyncIterableIterator<ChatParticipant> {\n const { span, updatedOptions } = tracingClient.startSpan(\n \"ChatThreadClient-ListParticipants\",\n options,\n );\n\n try {\n const iter = this.listParticipantsAll(updatedOptions);\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage: (settings: ListPageSettings = {}) => {\n return this.listParticipantsPage(settings, updatedOptions);\n },\n };\n } catch (e: any) {\n span.setStatus({\n status: \"error\",\n error: e,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Removes participant from the thread identified by threadId.\n * @param participant - Thread participant to remove from the thread roster\n * @param options - Operation options.\n */\n public async removeParticipant(\n participant: CommunicationIdentifier,\n options: RemoveParticipantOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"ChatThreadClient-RemoveParticipant\",\n options,\n async (updatedOptions: ChatThreadRemoveChatParticipantOptionalParams | undefined) => {\n await this.client.chatThread.removeChatParticipant(\n this.threadId,\n serializeCommunicationIdentifier(participant),\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Sends a typing notification to the thread.\n * Doesn't attempt to send if the time since last notification is smaller than the minimum typing interval\n * @param options - - Operation options\n * @returns True if the typing message notification could be sent, otherwise false.\n */\n public async sendTypingNotification(\n options: SendTypingNotificationOptions = {},\n ): Promise<boolean> {\n return tracingClient.withSpan(\n \"ChatThreadClient-SendTypingNotification\",\n options,\n async (updatedOptions: SendTypingNotificationOptions) => {\n const dateNow = new Date();\n const { senderDisplayName, ...restOptions } = updatedOptions;\n\n if (this.canPostTypingNotification(dateNow)) {\n this.timeOfLastTypingRequest = dateNow;\n\n await this.client.chatThread.sendTypingNotification(this.threadId, {\n sendTypingNotificationRequest: { senderDisplayName: senderDisplayName },\n ...restOptions,\n });\n return true;\n }\n\n logger.info(`Typing Notification NOT Send. [thread_id=${this.threadId}]`);\n return false;\n },\n );\n }\n\n /**\n * Sends a read receipt to the thread identified by threadId.\n * @param request - Request for sending a read receipt\n * @param options - Operation options.\n */\n public async sendReadReceipt(\n request: SendReadReceiptRequest,\n options: SendReadReceiptOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"ChatThreadClient-SendReadReceipt\",\n options,\n async (updatedOptions: ChatThreadSendChatReadReceiptOptionalParams | undefined) => {\n await this.client.chatThread.sendChatReadReceipt(this.threadId, request, updatedOptions);\n },\n );\n }\n\n private async *listReadReceiptsPage(\n continuationState: ListPageSettings,\n options: ListReadReceiptsOptions = {},\n ): AsyncIterableIterator<ChatMessageReadReceipt[]> {\n if (!continuationState.continuationToken) {\n const currentSetResponse = await this.client.chatThread.listChatReadReceipts(\n this.threadId,\n options,\n );\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mapToReadReceiptSdkModel, this);\n }\n }\n\n while (continuationState.continuationToken) {\n const currentSetResponse = await this.client.chatThread.listChatReadReceiptsNext(\n this.threadId,\n continuationState.continuationToken,\n options,\n );\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mapToReadReceiptSdkModel, this);\n } else {\n break;\n }\n }\n }\n\n private async *listReadReceiptsAll(\n options: ListReadReceiptsOptions,\n ): AsyncIterableIterator<ChatMessageReadReceipt> {\n for await (const page of this.listReadReceiptsPage({}, options)) {\n yield* page;\n }\n }\n\n /**\n * Gets a list of read receipt from a thread identified by threadId.\n * Returns the list of the messages.\n * @param options - Get messages options.\n */\n public listReadReceipts(\n options: ListReadReceiptsOptions = {},\n ): PagedAsyncIterableIterator<ChatMessageReadReceipt> {\n const { span, updatedOptions } = tracingClient.startSpan(\n \"ChatThreadClient-ListChatReadReceipts\",\n options,\n );\n\n try {\n const iter = this.listReadReceiptsAll(updatedOptions);\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage: (settings: ListPageSettings = {}) => {\n return this.listReadReceiptsPage(settings, updatedOptions);\n },\n };\n } catch (e: any) {\n span.setStatus({\n status: \"error\",\n error: e,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n private canPostTypingNotification(dateNow: Date): boolean {\n if (this.timeOfLastTypingRequest) {\n const timeSinceLastRequestInMilliSeconds =\n dateNow.getTime() - this.timeOfLastTypingRequest.getTime();\n\n if (timeSinceLastRequestInMilliSeconds < minimumTypingIntervalInMilliSeconds) {\n logger.info(`Typing interval check failed. [last_request=${this.timeOfLastTypingRequest}]`);\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * Uploads an chat image to a thread identified by threadId.\n * Allowed image types \"jpg\", \"png\", \"gif\", \"heic\", \"webp\".\n * Returns the id of the uploaded image.\n * @param image - Request for uploading an image.\n * @param imageFilename - The image's file name with file extension.\n * @param options - Operation options.\n */\n public async uploadImage(\n image: ArrayBuffer | Blob,\n imageFilename: string,\n options?: UploadImageOptions,\n ): Promise<UploadChatImageResult>;\n\n /**\n * Uploads an chat image stream to a thread identified by threadId.\n * Allowed image types \"jpg\", \"png\", \"gif\", \"heic\", \"webp\".\n * Returns the id of the uploaded image.\n * @param image - Request for uploading an image.\n * @param imageFileName - The image's file name with file extension.\n * @param imageBytesLength - The image's file length in bytes.\n * @param options - Operation options.\n */\n public async uploadImage(\n image: ReadableStream<Uint8Array> | NodeJS.ReadableStream,\n imageFileName: string,\n imageBytesLength: number,\n // eslint-disable-next-line\n options?: UploadImageStreamOptions,\n ): Promise<UploadChatImageResult>;\n\n async uploadImage(\n image: ArrayBuffer | Blob | ReadableStream<Uint8Array> | NodeJS.ReadableStream,\n imageFilename: string,\n imageBytesLengthOrOptions?: number | UploadImageOptions,\n options: UploadImageStreamOptions = {},\n ): Promise<UploadChatImageResult> {\n let uploadImageOptions = {};\n if (imageBytesLengthOrOptions !== undefined) {\n if (typeof imageBytesLengthOrOptions === \"number\") {\n uploadImageOptions = { ...options, imageBytesLength: imageBytesLengthOrOptions };\n } else {\n uploadImageOptions = { ...options, ...imageBytesLengthOrOptions };\n }\n }\n\n return tracingClient.withSpan(\n \"ChatThreadClient-UploadImage\",\n uploadImageOptions,\n async (updatedOptions: ChatThreadUploadChatImageOptionalParams | undefined) => {\n let result: UploadChatImageResult;\n if (\n this.xhrClient && // is browser\n ((!this.supportsReadableStream() && isReadableStream(image)) || // is readable stream but no support, need to convert\n !isReadableStream(image))\n ) {\n // use xhrClient if (to support onUploadProgress)\n // - is readable stream but no support => convert to ArrayBuffer (so will have content-length)\n // - is not readable stream\n result = await this.xhrClient.chatThread.uploadChatImage(\n this.threadId,\n isReadableStream(image) ? await this.getArrayBufferFromReadableStream(image) : image,\n { imageFilename, ...updatedOptions },\n );\n } else {\n // backend (node fetch client) or readable readable stream\n // Backend (no browser) need to convert Blob/ReadableStream to ArrayBuffer\n let chatImageFile = image;\n if (isBlob(image)) {\n chatImageFile = await this.getArrayBufferFromBlob(image);\n } else if (isReadableStream(image)) {\n chatImageFile = await this.getArrayBufferFromReadableStream(image);\n }\n result = await this.client.chatThread.uploadChatImage(this.threadId, chatImageFile, {\n imageFilename,\n ...updatedOptions,\n });\n }\n return result;\n },\n );\n }\n\n /**\n * Deletes an image identified by threadId and imageId\n * @param imageId - The image id of the image.\n * @param options - Operation options.\n */\n public deleteImage(imageId: string, options: DeleteImageOptions = {}): Promise<void> {\n return tracingClient.withSpan(\n \"ChatThreadClient-DeleteImage\",\n options,\n async (updatedOptions: ChatThreadDeleteChatImageOptionalParams | undefined) => {\n await this.client.chatThread.deleteChatImage(this.threadId, imageId, updatedOptions);\n },\n );\n }\n\n private supportsReadableStream(): boolean {\n let duplexAccessed = false;\n const hasContentType = new Request(\"\", {\n body: new ReadableStream(),\n method: \"POST\",\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n get duplex() {\n duplexAccessed = true;\n return \"half\";\n },\n }).headers.has(\"Content-Type\");\n return duplexAccessed && !hasContentType;\n }\n\n private async getArrayBufferFromReadableStream(\n body: ReadableStream<Uint8Array>,\n ): Promise<ArrayBuffer> {\n const arrayBuffer = await new Response(body).arrayBuffer();\n return new Uint8Array(arrayBuffer);\n }\n\n private async getArrayBufferFromBlob(body: Blob): Promise<ArrayBuffer> {\n return new Uint8Array(await body.arrayBuffer());\n }\n}\n","// 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","// 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","// 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 metadata: options.metadata,\n retentionPolicy: options.retentionPolicy,\n },\n updatedRestModelOptions,\n );\n return mapToCreateChatThreadResultSdkModel(result);\n },\n );\n }\n\n private async *listChatThreadsPage(\n continuationState: ListPageSettings,\n options: ListChatThreadsOptions = {},\n ): AsyncIterableIterator<ChatThreadItem[]> {\n if (!continuationState.continuationToken) {\n const currentSetResponse = await this.client.chat.listChatThreads(options);\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value;\n }\n }\n\n while (continuationState.continuationToken) {\n const currentSetResponse = await this.client.chat.listChatThreadsNext(\n continuationState.continuationToken,\n options,\n );\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value;\n } else {\n break;\n }\n }\n }\n\n private async *listChatThreadsAll(\n options: ListChatThreadsOptions,\n ): AsyncIterableIterator<ChatThreadItem> {\n for await (const page of this.listChatThreadsPage({}, options)) {\n yield* page;\n }\n }\n\n /**\n * Gets the list of chat threads of a user.\n * @param options - List chat threads options.\n */\n public listChatThreads(\n options: ListChatThreadsOptions = {},\n ): PagedAsyncIterableIterator<ChatThreadItem> {\n const { span, updatedOptions } = tracingClient.startSpan(\"ChatClient-ListChatThreads\", options);\n try {\n const iter = this.listChatThreadsAll(updatedOptions);\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage: (settings: ListPageSettings = {}) => {\n return this.listChatThreadsPage(settings, updatedOptions);\n },\n };\n } catch (e: any) {\n span.setStatus({\n error: e,\n status: \"error\",\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Deletes a chat thread.\n * @param threadId - The ID of the thread to delete.\n * @param options - Operation options.\n */\n public async deleteChatThread(\n threadId: string,\n options: DeleteChatThreadOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"ChatClient-DeleteChatThread\",\n options,\n async (updatedOptions) => {\n await this.client.chat.deleteChatThread(threadId, updatedOptions);\n },\n );\n }\n\n /**\n * Start receiving realtime notifications.\n * Call this function before subscribing to any event.\n */\n public async startRealtimeNotifications(): Promise<void> {\n if (this.signalingClient === undefined) {\n throw new Error(\"Realtime notifications are not supported in node js.\");\n }\n\n if (this.isRealtimeNotificationsStarted) {\n return;\n }\n\n this.isRealtimeNotificationsStarted = true;\n await this.signalingClient.start();\n this.subscribeToSignalingEvents();\n }\n\n /**\n * Stop receiving realtime notifications.\n * This function would unsubscribe to all events.\n */\n public async stopRealtimeNotifications(): Promise<void> {\n if (this.signalingClient === undefined) {\n throw new Error(\"Realtime notifications are not supported in node js.\");\n }\n\n this.isRealtimeNotificationsStarted = false;\n await this.signalingClient.stop();\n this.emitter.removeAllListeners();\n }\n\n /**\n * Subscribe function for chatMessageReceived.\n * The initial sender will also receive this event.\n * You need to call startRealtimeNotifications before subscribing to any event.\n * @param event - The ChatMessageReceivedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(event: \"chatMessageReceived\", listener: (e: ChatMessageReceivedEvent) => void): void;\n\n /**\n * Subscribe function for chatMessageEdited.\n * The initial sender will also receive this event.\n * @param event - The ChatMessageEditedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(event: \"chatMessageEdited\", listener: (e: ChatMessageEditedEvent) => void): void;\n\n /**\n * Subscribe function for chatMessageDeleted.\n * The initial sender will also receive this event.\n * @param event - The ChatMessageDeletedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(event: \"chatMessageDeleted\", listener: (e: ChatMessageDeletedEvent) => void): void;\n\n /**\n * Subscribe function for typingIndicatorReceived.\n * The initial sender will also receive this event.\n * @param event - The TypingIndicatorReceivedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(\n event: \"typingIndicatorReceived\",\n listener: (e: TypingIndicatorReceivedEvent) => void,\n ): void;\n\n /**\n * Subscribe function for readReceiptReceived.\n * @param event - The ReadReceiptReceivedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(event: \"readReceiptReceived\", listener: (e: ReadReceiptReceivedEvent) => void): void;\n\n /**\n * Subscribe function for chatThreadCreated.\n * @param event - The ChatThreadCreatedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(event: \"chatThreadCreated\", listener: (e: ChatThreadCreatedEvent) => void): void;\n\n /**\n * Subscribe function for chatThreadDeleted.\n * @param event - The ChatThreadDeletedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(event: \"chatThreadDeleted\", listener: (e: ChatThreadDeletedEvent) => void): void;\n\n /**\n * Subscribe function for chatThreadPropertiesUpdated.\n * @param event - The ChatThreadPropertiesUpdatedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(\n event: \"chatThreadPropertiesUpdated\",\n listener: (e: ChatThreadPropertiesUpdatedEvent) => void,\n ): void;\n\n /**\n * Subscribe function for participantsAdded.\n * @param event - The ParticipantsAddedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(event: \"participantsAdded\", listener: (e: ParticipantsAddedEvent) => void): void;\n\n /**\n * Subscribe function for participantsRemoved.\n * @param event - The ParticipantsRemovedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(event: \"participantsRemoved\", listener: (e: ParticipantsRemovedEvent) => void): void;\n\n /**\n * Subscribe function for realTimeNotificationConnected.\n * @param event - The realTimeNotificationConnected Event\n * @param listener - The listener to handle the event.\n */\n public on(event: \"realTimeNotificationConnected\", listener: () => void): void;\n\n /**\n * Subscribe function for realTimeNotificationDisconnected.\n * @param event - The realTimeNotificationDisconnected Event\n * @param listener - The listener to handle the event.\n */\n public on(event: \"realTimeNotificationDisconnected\", listener: () => void): void;\n\n public on(event: ChatEventId, listener: (e?: any) => void): void {\n if (this.signalingClient === undefined) {\n throw new Error(\"Realtime notifications are only supported in the browser.\");\n }\n if (\n !this.isRealtimeNotificationsStarted &&\n event !== \"realTimeNotificationConnected\" &&\n event !== \"realTimeNotificationDisconnected\"\n ) {\n throw new Error(\n \"You must call startRealtimeNotifications before you can subscribe to events.\",\n );\n }\n\n this.emitter.on(event, listener);\n }\n\n /**\n * Unsubscribe from chatMessageReceived.\n * @param event - The ChatMessageReceivedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(event: \"chatMessageReceived\", listener: (e: ChatMessageReceivedEvent) => void): void;\n\n /**\n * Unsubscribe from chatMessageEdited.\n * @param event - The ChatMessageEditedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(event: \"chatMessageEdited\", listener: (e: ChatMessageEditedEvent) => void): void;\n\n /**\n * Unsubscribe from chatMessageDeleted.\n * @param event - The ChatMessageDeletedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(event: \"chatMessageDeleted\", listener: (e: ChatMessageDeletedEvent) => void): void;\n\n /**\n * Unsubscribe from typingIndicatorReceived.\n * @param event - The TypingIndicatorReceivedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(\n event: \"typingIndicatorReceived\",\n listener: (e: TypingIndicatorReceivedEvent) => void,\n ): void;\n\n /**\n * Unsubscribe from readReceiptReceived.\n * @param event - The ReadReceiptReceivedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(event: \"readReceiptReceived\", listener: (e: ReadReceiptReceivedEvent) => void): void;\n\n /**\n * Unsubscribe from chatThreadCreated.\n * @param event - The ChatThreadCreatedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(event: \"chatThreadCreated\", listener: (e: ChatThreadCreatedEvent) => void): void;\n\n /**\n * Unsubscribe from chatThreadDeleted.\n * @param event - The ChatThreadDeletedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(event: \"chatThreadDeleted\", listener: (e: ChatThreadDeletedEvent) => void): void;\n\n /**\n * Unsubscribe from chatThreadPropertiesUpdated.\n * @param event - The ChatThreadPropertiesUpdatedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(\n event: \"chatThreadPropertiesUpdated\",\n listener: (e: ChatThreadPropertiesUpdatedEvent) => void,\n ): void;\n\n /**\n * Unsubscribe from participantsAdded.\n * @param event - The ParticipantsAddedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(event: \"participantsAdded\", listener: (e: ParticipantsAddedEvent) => void): void;\n\n /**\n * Unsubscribe from participantsRemoved.\n * @param event - The ParticipantsRemovedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(event: \"participantsRemoved\", listener: (e: ParticipantsRemovedEvent) => void): void;\n\n public off(event: ChatEventId, listener: (e: any) => void): void {\n if (this.signalingClient === undefined) {\n throw new Error(\"Realtime notifications are only supported in the browser.\");\n }\n\n this.emitter.removeListener(event, listener);\n }\n\n private subscribeToSignalingEvents(): void {\n if (this.signalingClient === undefined) {\n throw new Error(\"Realtime notifications are only supported in the browser.\");\n }\n\n this.signalingClient.on(\"connectionChanged\", (payload) => {\n if (payload === ConnectionState.Connected) {\n this.emitter.emit(\"realTimeNotificationConnected\");\n } else if (payload === ConnectionState.Disconnected) {\n this.emitter.emit(\"realTimeNotificationDisconnected\");\n }\n });\n\n this.signalingClient.on(\"chatMessageReceived\", (payload) => {\n this.emitter.emit(\"chatMessageReceived\", payload);\n });\n\n this.signalingClient.on(\"chatMessageEdited\", (payload) => {\n this.emitter.emit(\"chatMessageEdited\", payload);\n });\n\n this.signalingClient.on(\"chatMessageDeleted\", (payload) => {\n this.emitter.emit(\"chatMessageDeleted\", payload);\n });\n\n this.signalingClient.on(\"typingIndicatorReceived\", (payload) => {\n this.emitter.emit(\"typingIndicatorReceived\", payload);\n });\n\n this.signalingClient.on(\"readReceiptReceived\", (payload) => {\n this.emitter.emit(\"readReceiptReceived\", payload);\n });\n\n this.signalingClient.on(\"chatThreadCreated\", (payload) => {\n this.emitter.emit(\"chatThreadCreated\", payload);\n });\n\n this.signalingClient.on(\"chatThreadDeleted\", (payload) => {\n this.emitter.emit(\"chatThreadDeleted\", payload);\n });\n\n this.signalingClient.on(\"chatThreadPropertiesUpdated\", (payload) => {\n this.emitter.emit(\"chatThreadPropertiesUpdated\", payload);\n });\n\n this.signalingClient.on(\"participantsAdded\", (payload) => {\n this.emitter.emit(\"participantsAdded\", payload);\n });\n\n this.signalingClient.on(\"participantsRemoved\", (payload) => {\n this.emitter.emit(\"participantsRemoved\", payload);\n });\n }\n}\n"],"names":["__rest","serializeCommunicationIdentifier","deserializeCommunicationIdentifier","createTracingClient","SendReadReceiptRequestMapper","SendChatMessageRequestMapper","UpdateChatMessageRequestMapper","CommunicationIdentifierModelMapper","AddChatParticipantsRequestMapper","UpdateChatThreadRequestMapper","SendTypingNotificationRequestMapper","CreateChatThreadRequestMapper","serializer","coreClient","Mappers.ChatMessageReadReceiptsCollection","Mappers.CommunicationErrorResponse","Parameters.maxPageSize","Parameters.skip","Parameters.apiVersion","Parameters.endpoint","Parameters.chatThreadId","Parameters.accept","Parameters.sendReadReceiptRequest","Parameters.contentType","Mappers.SendChatMessageResult","Parameters.sendChatMessageRequest","Mappers.ChatMessagesCollection","Parameters.startTime","Mappers.ChatMessage","Parameters.chatMessageId","Parameters.updateChatMessageRequest","Parameters.contentType1","Mappers.ChatParticipantsCollection","Parameters.participantCommunicationIdentifier","Mappers.AddChatParticipantsResult","Parameters.addChatParticipantsRequest","Parameters.updateChatThreadRequest","Mappers.ChatThreadProperties","Parameters.sendTypingNotificationRequest","Mappers.UploadChatImageResult","Mappers.ErrorResponse","Parameters.chatImageFile","Parameters.contentType2","Parameters.accept1","Parameters.imageFilename","Parameters.imageId","Parameters.imageViewType","Parameters.accept2","Parameters.nextLink","Mappers.CreateChatThreadResult","Parameters.createChatThreadRequest","Parameters.repeatabilityRequestId","Mappers.ChatThreadsItemCollection","createClientLogger","AbortError","createHttpHeaders","RestError","bearerTokenAuthenticationPolicy","__await","__asyncValues","__asyncDelegator","uuidv4","CommunicationSignalingClient","EventEmitter"],"mappings":"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"}
|