{"version":3,"sources":["jsdelivr-header.js","/npm/@vonage/conversations@1.13.4/dist/cjs/index.js"],"names":[],"mappings":"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","file":"/npm/@vonage/conversations@1.13.4/dist/cjs/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@vonage/conversations@1.13.4/dist/cjs/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n  for (var name in all)\n    __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// lib/index.ts\nvar index_exports = {};\n__export(index_exports, {\n  ChannelType: () => ChannelType,\n  ConversationState: () => ConversationState,\n  Conversations: () => Conversations,\n  EventMessageType: () => EventMessageType,\n  EventType: () => EventType,\n  LegStatus: () => LegStatus,\n  MemberState: () => MemberState,\n  ReasonCode: () => ReasonCode\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// lib/conversations.ts\nvar import_server_client = require(\"@vonage/server-client\");\nvar apiToConversation = (response) => {\n  const customData = response.properties?.custom_data;\n  delete response._links;\n  const conversation = import_server_client.Client.transformers.camelCaseObjectKeys(\n    response,\n    true\n  );\n  if (conversation?.properties?.customData && customData) {\n    conversation.properties.customData = customData;\n  }\n  return conversation;\n};\nvar conversationToApi = (conversation) => {\n  const customData = conversation.properties?.customData;\n  const apiConversation = import_server_client.Client.transformers.snakeCaseObjectKeys(\n    import_server_client.Client.transformers.omit(\n      [\"id\", \"sequenceNumber\", \"timestamp\", \"state\"],\n      conversation\n    ),\n    true\n  );\n  if (apiConversation?.properties?.custom_data && customData) {\n    apiConversation.properties.custom_data = customData;\n  }\n  if (conversation?.callback?.params?.applicationId && apiConversation?.callback?.params) {\n    apiConversation.callback.params = {\n      applicationId: conversation.callback.params.applicationId,\n      ncco_url: conversation.callback.params.nccoUrl\n    };\n  }\n  return apiConversation;\n};\nvar apiToSession = (response) => {\n  return {\n    id: response.id,\n    user: {\n      id: response._embedded.user.id,\n      name: response._embedded.user.name\n    },\n    apiKey: response._embedded.api_key,\n    properties: {\n      ttl: response.properties.ttl\n    }\n  };\n};\nvar apiToEvent = (response) => {\n  return {\n    ...import_server_client.Client.transformers.camelCaseObjectKeys(\n      import_server_client.Client.transformers.omit([\"_embedded\", \"_links\"], response),\n      true\n    ),\n    fromMember: {\n      ...import_server_client.Client.transformers.camelCaseObjectKeys(\n        response._embedded?.from_member,\n        true\n      )\n    },\n    fromUser: {\n      ...import_server_client.Client.transformers.camelCaseObjectKeys(\n        response._embedded?.from_user,\n        true\n      )\n    }\n  };\n};\nvar apiToMember = (response) => {\n  return {\n    ...import_server_client.Client.transformers.camelCaseObjectKeys(\n      import_server_client.Client.transformers.omit([\"_embedded\", \"_links\"], response),\n      true\n    ),\n    user: {\n      ...import_server_client.Client.transformers.camelCaseObjectKeys(\n        import_server_client.Client.transformers.omit([\"_links\"], response._embedded?.user),\n        true\n      )\n    }\n  };\n};\nvar memberToApi = (member) => ({\n  ...import_server_client.Client.transformers.snakeCaseObjectKeys(\n    import_server_client.Client.transformers.omit(\n      [\n        \"id\",\n        \"timestamp\",\n        \"conversationId\",\n        \"initiator\",\n        \"invitedBy\"\n      ],\n      member\n    ),\n    true\n  ),\n  user: {\n    id: member.user.id,\n    name: member.user.name\n  },\n  member_id_inviting: member.invitedBy\n});\nvar Conversations = class extends import_server_client.Client {\n  authType = import_server_client.AuthenticationType.JWT;\n  /**\n   * Retrieves all conversations, iterating over paginated results.\n   *\n   * @param {ListConversationParams} [params={}] - Optional filter parameters.\n   * @yields {Conversation} - Yields conversation items.\n   * @return {AsyncGenerator<Conversation, void, undefined>} - An asynchronous generator.\n   *\n   * @example\n   * List conversations with pagination using an iterator\n   *\n   * ```ts\n   * for await (const conversation of conversationClient.listAllConversations()) {\n   *   console.log(conversation.name);\n   * }\n   * ```\n   */\n  async *listAllConversations(params = {}) {\n    let next = null;\n    do {\n      const resp = await this.getConversationPage(params);\n      yield* resp.conversations || [];\n      next = resp.links?.next ? new URL(resp.links?.next?.href).searchParams.get(\"cursor\") : null;\n      params.cursor = next || \"\";\n    } while (next);\n  }\n  /**\n   * Retrieves a page of conversations based on filter parameters.\n   *\n   * @param {ListConversationParams} filter - The filter parameters for pagination.\n   * @return {Promise<ConversationPageList>} - A promise resolving to a page of conversations.\n   *\n   * @see API Specification {@link https://developer.vonage.com/en/api/conversation#listConversation}\n   *\n   * @example\n   * Get a single page of conversations\n   *\n   * ```ts\n   * const conversations = await conversationClient.getConversationPage({\n   *   page: 1,\n   *   size: 10\n   * });\n   *\n   * conversations.conversations.forEach(conversation => {\n   *   console.log(conversation.name);\n   * });\n   * ```\n   */\n  async getConversationPage(filter) {\n    const url = filter?.byUser ? `${this.config.apiHost}/v1/users/${filter.byUser}/conversations` : `${this.config.apiHost}/v1/conversations`;\n    const resp = await this.sendGetRequest(\n      url,\n      import_server_client.Client.transformers.omit(\n        [\"by_user\"],\n        import_server_client.Client.transformers.snakeCaseObjectKeys(filter)\n      )\n    );\n    return {\n      conversations: (resp.data._embedded?.conversations || []).map(\n        apiToConversation\n      ),\n      pageSize: resp.data.page_size,\n      links: resp.data._links\n    };\n  }\n  /**\n   * Creates a new conversation with the provided details.\n   *\n   * @see API Specification {@link https://developer.vonage.com/en/api/conversation#createConversation}\n   *\n   * @param {Conversation} conversation - The conversation details to be created.\n   * @return {Promise<Conversation>} - A promise resolving to the created conversation.\n   *\n   * @example\n   * Create a new conversation\n   *\n   * ```ts\n   * const conversation = await conversationClient.createConversation({\n   *   name: 'My Conversation',\n   * });\n   *\n   * console.log(conversation.id);\n   * ```\n   */\n  async createConversation(conversation) {\n    const resp = await this.sendPostRequest(\n      `${this.config.apiHost}/v1/conversations`,\n      conversationToApi(conversation)\n    );\n    return apiToConversation(resp.data);\n  }\n  /**\n   * Retrieves an conversation by its unique identifier.\n   *\n   * @see API Specification {@link https://developer.vonage.com/en/api/conversation#getConversation}\n   *\n   * @param {string} conversationId - The unique identifier of the conversation to retrieve.\n   * @return {Promise<Conversation>} - A promise resolving to the retrieved conversation.\n   *\n   * @example\n   * Retrieve an conversation\n   *\n   * ```ts\n   * const conversation = await conversationClient.getConversation(conversation_ID);\n   * console.log(conversation.name);\n   * ```\n   */\n  async getConversation(conversationId) {\n    const resp = await this.sendGetRequest(\n      `${this.config.apiHost}/v1/conversations/${conversationId}`\n    );\n    return apiToConversation(resp.data);\n  }\n  /**\n   * Updates an existing conversation with the provided details.\n   *\n   * @see API Specification {@link https://developer.vonage.com/en/api/conversation#updateConversation}\n   *\n   * @param {Conversation} conversation - The conversation details to be updated.\n   * @return {Promise<Conversation>} - A promise resolving to the updated conversation.\n   *\n   * @example\n   * Update an conversation\n   *\n   * ```ts\n   * const conversation = await conversationClient.updateConversation({\n   *   id: conversation_ID,\n   *   name: 'My Conversation',\n   * });\n   * console.log(conversation.name);\n   * ```\n   */\n  async updateConversation(conversation) {\n    const resp = await this.sendPutRequest(\n      `${this.config.apiHost}/v1/conversations/${conversation.id}`,\n      conversationToApi(conversation)\n    );\n    return apiToConversation(resp.data);\n  }\n  /**\n   * Deletes an conversation by its unique identifier.\n   *\n   * @see API Specification {@link https://developer.vonage.com/en/api/conversation#deleteConversation}\n   *\n   * @param {string} conversationId - The unique identifier of the conversation to delete.\n   * @return {Promise<void>} - A promise indicating the successful deletion of the conversation.\n   *\n   * @example\n   * Delete an conversation\n   *\n   * ```ts\n   * await conversationClient.deleteConversation(conversation_ID);\n   * ```\n   */\n  async deleteConversation(conversationId) {\n    await this.sendDeleteRequest(\n      `${this.config.apiHost}/v1/conversations/${conversationId}`\n    );\n  }\n  /**\n   * Retrieves all conversations, for a user\n   *\n   * @param {string} userId - The user id to retrieve conversations from.\n   * @param {ListConversationParams} [params={}] - Optional filter parameters.\n   * @yields {Conversation} - Yields conversation items.\n   * @return {AsyncGenerator<Conversation, void, undefined>} - An asynchronous generator.\n   *\n   * @example\n   * List conversations with pagination using an iterator\n   *\n   * ```ts\n   * for await (const conversation of conversationClient.listAllUserConversations(USER_ID)) {\n   *   console.log(conversation.name);\n   * }\n   * ```\n   */\n  async *listAllUserConversations(userId, params = {}) {\n    let next = null;\n    do {\n      const resp = await this.getConversationPage({\n        ...params,\n        byUser: userId\n      });\n      yield* resp.conversations || [];\n      next = resp.links?.next ? new URL(resp.links?.next?.href).searchParams.get(\"cursor\") : null;\n      params.cursor = next || \"\";\n    } while (next);\n  }\n  /**\n   * Retrieves all session, for a user\n   *\n   * @param {string} userId - The user id to retrieve sessions from.\n   * @param {ListSessionParams} [params={}] - Optional filter parameters.\n   * @yields {Session} - Yields session items.\n   * @return {AsyncGenerator<Session, void, undefined>} - An asynchronous generator.\n   *\n   * @example\n   * List sessions with pagination using an iterator\n   *\n   * ```ts\n   * for await (const session of conversationClient.listAllUserSessions(USER_ID)) {\n   *   console.log(session.id);\n   * }\n   * ```\n   */\n  async *listAllUserSessions(userId, params = {}) {\n    let next = null;\n    do {\n      const resp = await this.getUserSessionsPage(userId, params);\n      yield* resp.sessions || [];\n      next = resp.links?.next ? new URL(resp.links?.next?.href).searchParams.get(\"cursor\") : null;\n      params.cursor = next || \"\";\n    } while (next);\n  }\n  /**\n   * Retrieves a page of sessions based on filter parameters.\n   *\n   * @param {string} userId - The user id to retrieve sessions from.\n   * @param {ListSessionParams} filter - The filter parameters for pagination.\n   * @return {Promise<SessionPageResponse>} - A promise resolving to a page of sessions.\n   *\n   * @see API Specification {@link https://developer.vonage.com/en/api/session#listSession}\n   *\n   * @example\n   * Get a single page of sessions\n   *\n   * ```ts\n   * const sessions = await conversationClient.getUserSessionPage(\n   *   USER_ID,\n   *   {\n   *     page: 1,\n   *     size: 10\n   *   }\n   * );\n   *\n   * sessions.sessions.forEach(session => {\n   *   console.log(session.id);\n   * });\n   * ```\n   */\n  async getUserSessionsPage(userId, filter) {\n    const resp = await this.sendGetRequest(\n      `${this.config.apiHost}/v1/users/${userId}/sessions`,\n      import_server_client.Client.transformers.snakeCaseObjectKeys(filter)\n    );\n    return {\n      sessions: (resp.data._embedded?.sessions || []).map(\n        apiToSession\n      ),\n      pageSize: resp.data.page_size,\n      links: resp.data._links\n    };\n  }\n  /**\n   * Retrieves all members, iterating over paginated results.\n   *\n   * @param {string} conversationId - The conversation id to retrieve members from.\n   * @param {ListMemberParams} [params={}] - Optional filter parameters.\n   * @yields {Member} - Yields member items.\n   * @return {AsyncGenerator<Member, void, undefined>} - An asynchronous generator.\n   *\n   * @example\n   * List members with pagination using an iterator\n   *\n   * ```ts\n   * for await (const member of memberClient.listAllMembers(CONVERSATION_ID)) {\n   *   console.log(member.name);\n   * }\n   * ```\n   */\n  async *listAllMembers(conversationId, params = {}) {\n    let next = null;\n    do {\n      const resp = await this.getMemberPage(conversationId, params);\n      yield* resp.members || [];\n      next = resp.links?.next ? new URL(resp.links?.next?.href).searchParams.get(\"cursor\") : null;\n      params.cursor = next || \"\";\n    } while (next);\n  }\n  /**\n   * Retrieves a page of members in a conversation based on filter parameters.\n   *\n   * @param {string} conversationId - The conversation id to retrieve members from.\n   * @param {ListMemberParams} filter - The filter parameters for pagination.\n   * @return {Promise<MemberPageList>} - A promise resolving to a page of members.\n   *\n   * @see API Specification {@link https://developer.vonage.com/en/api/conversation#listMember}\n   *\n   * @example\n   * Get a single page of members\n   *\n   * ```ts\n   * const members = await memberClient.getMemberPage(\n   *   CONVERSATION_ID,\n   *   {\n   *     page: 1,\n   *     size: 10\n   *   }\n   * );\n   *\n   * members.members.forEach(member => {\n   *   console.log(member.name);\n   * });\n   * ```\n   */\n  async getMemberPage(conversationId, filter = {}) {\n    const resp = await this.sendGetRequest(\n      `${this.config.apiHost}/v1/conversations/${conversationId}/members`,\n      import_server_client.Client.transformers.snakeCaseObjectKeys(filter)\n    );\n    return {\n      members: (resp.data._embedded?.members || []).map(\n        apiToMember\n      ),\n      pageSize: resp.data.page_size,\n      links: resp.data._links\n    };\n  }\n  /**\n   * Creates a new member with the provided details.\n   *\n   * @see API Specification {@link https://developer.vonage.com/en/api/conversation#createMember}\n   *\n   * @param {string} conversationId - The conversation id to create the member in.\n   * @param {Member} member - The member details to be created.\n   * @return {Promise<Member>} - A promise resolving to the created member.\n   *\n   * @example\n   * Create a new member\n   *\n   * ```ts\n   * const member = await memberClient.createMember(\n   *   CONVERSATION_ID,\n   *   {\n   *     name: 'My Member',\n   *   },\n   * );\n   *\n   * console.log(member.id);\n   * ```\n   */\n  async createMember(conversationId, member) {\n    const resp = await this.sendPostRequest(\n      `${this.config.apiHost}/v1/conversations/${conversationId}/members`,\n      memberToApi(member)\n    );\n    return apiToMember(resp.data);\n  }\n  /**\n   * Retrieves an member by its unique identifier.\n   *\n   * @see API Specification {@link https://developer.vonage.com/en/api/conversation#getMember}\n   *\n   * @param {string} conversationId - The conversation id to retrieve the member from.\n   * @param {string} memberId - The unique identifier of the member to retrieve.\n   * @return {Promise<Member>} - A promise resolving to the retrieved member.\n   *\n   * @example\n   * Retrieve an member\n   *\n   * ```ts\n   * const member = await memberClient.getMember(CONVERSATION_ID, MEMBER_ID);\n   * console.log(member.name);\n   * ```\n   */\n  async getMember(conversationId, memberId) {\n    const resp = await this.sendGetRequest(\n      `${this.config.apiHost}/v1/conversations/${conversationId}/members/${memberId}`\n    );\n    return apiToMember(resp.data);\n  }\n  /**\n   * This retrieves the member associated with the sub claim on the JWT\n   *\n   * @see API Specification {@link https://developer.vonage.com/en/api/conversation#getMe}\n   *\n   * @param {string} conversationId - The conversation id to retrieve the member from.\n   * @return {Promise<Member>} - A promise resolving to the retrieved member.\n   *\n   * @example\n   * Retrieve an member\n   *\n   * ```ts\n   * const member = await memberClient.getMe(CONVERSATION_ID);\n   * console.log(member.name);\n   * ```\n   */\n  async getMe(conversationId) {\n    return this.getMember(conversationId, \"me\");\n  }\n  /**\n   * Updates an existing member with the provided details.\n   *\n   * Setting the state to left will result in the member leaving the conversation.\n   *\n   * @see API Specification {@link https://developer.vonage.com/en/api/conversation#updateMember}\n   *\n   * @param {string} conversationId - The conversation id to update the member in.\n   * @param {string} memberId - The member details to be updated.\n   * @param {UpdateMemberParameters} params - The update parameters.\n   * @return {Promise<Member>} - A promise resolving to the updated member.\n   *\n   * @example\n   * ```ts\n   * import { MemberState } from '@vonage/conversation';\n   *\n   * const member = await memberClient.updateMember(\n   *   CONVERSATION_ID,\n   *   MEMBER_ID,\n   *   {\n   *     state: MemberState.LEFT,\n   *     from: USER_ID,\n   *   },\n   * );\n   *\n   * console.log(member.name);\n   * ```\n   */\n  async updateMember(conversationId, memberId, params) {\n    const resp = await this.sendPatchRequest(\n      `${this.config.apiHost}/v1/conversations/${conversationId}/members/${memberId}`,\n      params\n    );\n    return apiToMember(resp.data);\n  }\n  /**\n   * Retrieves all events, iterating over paginated results.\n   *\n   * @param {string} conversationId - The conversation id to retrieve events from.\n   * @param {ListEventParams} [params={}] - Optional filter parameters.\n   * @yields {Event} - Yields event items.\n   * @return {AsyncGenerator<Event, void, undefined>} - An asynchronous generator.\n   *\n   * @example\n   * List events with pagination using an iterator\n   *\n   * ```ts\n   * for await (const event of eventClient.listAllEvents()) {\n   *   console.log(event.name);\n   * }\n   * ```\n   */\n  async *listAllEvents(conversationId, params = {}) {\n    let next = null;\n    do {\n      const resp = await this.getEventPage(conversationId, params);\n      yield* resp.events || [];\n      next = resp.links?.next ? new URL(resp.links?.next?.href).searchParams.get(\"cursor\") : null;\n      params.cursor = next || \"\";\n    } while (next);\n  }\n  /**\n   * Retrieves a page of events based on filter parameters.\n   *\n   * @param {string} conversationId - The conversation id to retrieve events from.\n   * @param {ListEventParams} filter - The filter parameters for pagination.\n   * @return {Promise<EventPageList>} - A promise resolving to a page of events.\n   *\n   * @see API Specification {@link https://developer.vonage.com/en/api/event#listEvent}\n   *\n   * @example\n   * Get a single page of events\n   *\n   * ```ts\n   * const events = await eventClient.getEventPage({\n   *   page: 1,\n   *   size: 10\n   * });\n   *\n   * events.events.forEach(event => {\n   *   console.log(event.name);\n   * });\n   * ```\n   */\n  async getEventPage(conversationId, filter) {\n    const resp = await this.sendGetRequest(\n      `${this.config.apiHost}/v1/conversations/${conversationId}/events`,\n      import_server_client.Client.transformers.omit(\n        [\"by_user\"],\n        import_server_client.Client.transformers.snakeCaseObjectKeys(filter)\n      )\n    );\n    return {\n      pageSize: resp.data.page_size,\n      events: (resp.data._embedded || []).map(\n        apiToEvent\n      ),\n      links: resp.data._links\n    };\n  }\n  /**\n   * Retrieves an event by its unique identifier.\n   *\n   * @see API Specification {@link https://developer.vonage.com/en/api/conversation#getEvent}\n   *\n   * @param {string} conversationId - The conversation id to retrieve the event from.\n   * @param {string} eventId - The unique identifier of the event to retrieve.\n   * @return {Promise<Event>} - A promise resolving to the retrieved event.\n   *\n   * @example\n   * Retrieve an event\n   *\n   * ```ts\n   * const event = await eventClient.getEvent(CONVERSATION_ID, event_ID);\n   * console.log(event.name);\n   * ```\n   */\n  async getEvent(conversationId, eventId) {\n    const resp = await this.sendGetRequest(\n      `${this.config.apiHost}/v1/conversations/${conversationId}/events/${eventId}`\n    );\n    return apiToEvent(resp.data);\n  }\n  /**\n   * Creates a new event with the provided details.\n   *\n   * @see API Specification {@link https://developer.vonage.com/en/api/event#createEvent}\n   *\n   * @param {string} conversationId - The conversation id to create the event in.\n   * @param {Event} event - The event details to be created.\n   * @return {Promise<Event>} - A promise resolving to the created event.\n   *\n   * @example\n   * Create a new event\n   *\n   * ```ts\n   * const event = await eventClient.createEvent({\n   *   name: 'My Event',\n   * });\n   *\n   * console.log(event.id);\n   * ```\n   */\n  async createEvent(conversationId, event) {\n    const resp = await this.sendPostRequest(\n      `${this.config.apiHost}/v1/conversations/${conversationId}/events`,\n      {\n        type: event.type,\n        from: event.from,\n        body: import_server_client.Client.transformers.snakeCaseObjectKeys(event.body)\n      }\n    );\n    return apiToEvent(resp.data);\n  }\n  /**\n   * Deletes an event by its unique identifier.\n   *\n   * @see API Specification {@link https://developer.vonage.com/en/api/event#deleteEvent}\n   *\n   *\n   * @param {string} conversationId - The conversation id to delete the event from.\n   * @param {string} eventId - The unique identifier of the conversation to delete.\n   * @return {Promise<void>} - A promise indicating the successful deletion of the event.\n   *\n   * @example\n   * Delete an event\n   *\n   * ```ts\n   * await eventClient.deleteEvent(conversation_ID);\n   * ```\n   */\n  async deleteEvent(conversationId, eventId) {\n    await this.sendDeleteRequest(\n      `${this.config.apiHost}/v1/conversations/${conversationId}/events/${eventId}`\n    );\n  }\n};\n\n// lib/enums/channelType.ts\nvar ChannelType = /* @__PURE__ */ ((ChannelType2) => {\n  ChannelType2[\"PHONE\"] = \"phone\";\n  ChannelType2[\"SIP\"] = \"sip\";\n  ChannelType2[\"APP\"] = \"app\";\n  ChannelType2[\"WEBSOCKET\"] = \"websocket\";\n  ChannelType2[\"VBC\"] = \"vbc\";\n  return ChannelType2;\n})(ChannelType || {});\n\n// lib/enums/conversationState.ts\nvar ConversationState = /* @__PURE__ */ ((ConversationState2) => {\n  ConversationState2[\"ACTIVE\"] = \"ACTIVE\";\n  ConversationState2[\"INACTIVE\"] = \"INACTIVE\";\n  ConversationState2[\"DELETED\"] = \"DELETED\";\n  return ConversationState2;\n})(ConversationState || {});\n\n// lib/enums/eventMessageType.ts\nvar EventMessageType = /* @__PURE__ */ ((EventMessageType2) => {\n  EventMessageType2[\"TEXT\"] = \"text\";\n  EventMessageType2[\"IMAGE\"] = \"image\";\n  EventMessageType2[\"AUDIO\"] = \"audio\";\n  EventMessageType2[\"VIDEO\"] = \"video\";\n  EventMessageType2[\"FILE\"] = \"file\";\n  EventMessageType2[\"TEMPLATE\"] = \"template\";\n  EventMessageType2[\"CUSTOM\"] = \"custom\";\n  EventMessageType2[\"VCARD\"] = \"vcard\";\n  EventMessageType2[\"LOCATION\"] = \"location\";\n  EventMessageType2[\"RANDOM\"] = \"random\";\n  return EventMessageType2;\n})(EventMessageType || {});\n\n// lib/enums/eventsTypes.ts\nvar EventType = /* @__PURE__ */ ((EventType2) => {\n  EventType2[\"AUDIO_PLAY\"] = \"audio:play\";\n  EventType2[\"AUDIO_PLAY_STOP\"] = \"audio:play:stop\";\n  EventType2[\"AUDIO_SAY\"] = \"audio:say\";\n  EventType2[\"AUDIO_SAY_STOP\"] = \"audio:say:stop\";\n  EventType2[\"AUDIO_DTMF\"] = \"audio:dtmf\";\n  EventType2[\"AUDIO_RECORD\"] = \"audio:record\";\n  EventType2[\"AUDIO_RECORD_STOP\"] = \"audio:record:stop\";\n  EventType2[\"AUDIO_MUTE_ON\"] = \"audio:mute:on\";\n  EventType2[\"AUDIO_MUTE_OFF\"] = \"audio:mute:off\";\n  EventType2[\"AUDIO_EAR_MUFF_ON\"] = \"audio:earmuff:on\";\n  EventType2[\"AUDIO_EAR_MUFF_OFF\"] = \"audio:earmuff:off\";\n  EventType2[\"AUDIO_SPEAKING_ON\"] = \"audio:speaking:on\";\n  EventType2[\"AUDIO_SPEAKING_OFF\"] = \"audio:speaking:off\";\n  EventType2[\"CUSTOM\"] = \"custom\";\n  EventType2[\"EPHEMERAL\"] = \"ephemeral\";\n  EventType2[\"MESSAGE\"] = \"message\";\n  EventType2[\"MESSAGE_SUBMITTED\"] = \"message:submitted\";\n  EventType2[\"MESSAGE_REJECTED\"] = \"message:rejected\";\n  EventType2[\"MESSAGE_UNDELIVERABLE\"] = \"message:undeliverable\";\n  EventType2[\"MESSAGE_SEEN\"] = \"message:seen\";\n  EventType2[\"MESSAGE_DELIVERED\"] = \"message:delivered\";\n  return EventType2;\n})(EventType || {});\n\n// lib/enums/legStatus.ts\nvar LegStatus = /* @__PURE__ */ ((LegStatus2) => {\n  LegStatus2[\"STARTED\"] = \"started\";\n  LegStatus2[\"RINGING\"] = \"ringing\";\n  LegStatus2[\"ANSWERED\"] = \"answered\";\n  return LegStatus2;\n})(LegStatus || {});\n\n// lib/enums/memberState.ts\nvar MemberState = /* @__PURE__ */ ((MemberState2) => {\n  MemberState2[\"INVITED\"] = \"INVITED\";\n  MemberState2[\"JOINED\"] = \"JOINED\";\n  MemberState2[\"LEFT\"] = \"LEFT\";\n  MemberState2[\"UNKNOWN\"] = \"UNKNOWN\";\n  return MemberState2;\n})(MemberState || {});\n\n// lib/enums/reasonMessages.ts\nvar ReasonCode = /* @__PURE__ */ ((ReasonCode2) => {\n  ReasonCode2[\"FAILED\"] = \"failed\";\n  ReasonCode2[\"BUSY\"] = \"busy\";\n  ReasonCode2[\"TIMEOUT\"] = \"timeout\";\n  ReasonCode2[\"CANCELLED\"] = \"cancelled\";\n  ReasonCode2[\"REJECTED\"] = \"rejected\";\n  ReasonCode2[\"OK\"] = \"ok\";\n  ReasonCode2[\"NOT_FOUND\"] = \"not_found\";\n  ReasonCode2[\"REQUEST_TERMINATED\"] = \"request_terminated\";\n  ReasonCode2[\"BAD_EXTENSION\"] = \"bad_extension\";\n  ReasonCode2[\"BUSY_HERE\"] = \"busy_here\";\n  ReasonCode2[\"REQUEST_TIMEOUT\"] = \"request_timeout\";\n  ReasonCode2[\"TEMPORARILY_UNAVAILABLE\"] = \"temporarily_unavailable\";\n  ReasonCode2[\"FORBIDDEN\"] = \"forbidden\";\n  ReasonCode2[\"GONE\"] = \"gone\";\n  ReasonCode2[\"BAD_GATEWAY\"] = \"bad_gateway\";\n  ReasonCode2[\"ADDRESS_INCOMPLETE\"] = \"address_incomplete\";\n  ReasonCode2[\"SERVER_INTERNAL_ERROR\"] = \"server_internal_error\";\n  ReasonCode2[\"NOT_IMPLEMENTED\"] = \"not_implemented\";\n  ReasonCode2[\"SERVER_TIMEOUT\"] = \"server_timeout\";\n  ReasonCode2[\"VERSION_NOT_SUPPORTED\"] = \"version_not_supported\";\n  ReasonCode2[\"SERVICE_UNAVAILABLE\"] = \"service_unavailable\";\n  ReasonCode2[\"PAYMENT_REQUIRED\"] = \"payment_required\";\n  ReasonCode2[\"BANNED_CALL_ENDED\"] = \"banned_call_ended\";\n  ReasonCode2[\"FLOW_FAILED\"] = \"flow_failed\";\n  return ReasonCode2;\n})(ReasonCode || {});\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n  ChannelType,\n  ConversationState,\n  Conversations,\n  EventMessageType,\n  EventType,\n  LegStatus,\n  MemberState,\n  ReasonCode\n});\n"]}