{
  "version": 3,
  "sources": ["../src/index.ts", "../src/errors.ts", "../src/gen/client/errors.ts", "../src/client.ts", "../src/consts.ts", "../src/gen/client/index.ts", "../src/gen/client/to-axios.ts", "../src/gen/client/operations/getConversation.ts", "../src/gen/client/operations/createConversation.ts", "../src/gen/client/operations/getOrCreateConversation.ts", "../src/gen/client/operations/deleteConversation.ts", "../src/gen/client/operations/listConversations.ts", "../src/gen/client/operations/listenConversation.ts", "../src/gen/client/operations/listMessages.ts", "../src/gen/client/operations/addParticipant.ts", "../src/gen/client/operations/removeParticipant.ts", "../src/gen/client/operations/getParticipant.ts", "../src/gen/client/operations/listParticipants.ts", "../src/gen/client/operations/getMessage.ts", "../src/gen/client/operations/createMessage.ts", "../src/gen/client/operations/deleteMessage.ts", "../src/gen/client/operations/getUser.ts", "../src/gen/client/operations/createUser.ts", "../src/gen/client/operations/getOrCreateUser.ts", "../src/gen/client/operations/updateUser.ts", "../src/gen/client/operations/deleteUser.ts", "../src/gen/client/operations/getEvent.ts", "../src/gen/client/operations/createEvent.ts", "../src/jsonwebtoken.ts", "../src/listing.ts", "../src/event-emitter.ts", "../src/eventsource.ts", "../src/gen/signals/messageCreated.z.ts", "../src/gen/signals/eventCreated.z.ts", "../src/gen/signals/participantAdded.z.ts", "../src/gen/signals/participantRemoved.z.ts", "../src/gen/signals/messageDeleted.z.ts", "../src/gen/signals/index.ts", "../src/watchdog.ts", "../src/signal-listener.ts"],
  "sourcesContent": ["export * as axios from 'axios'\nexport * from './types'\nexport * from './errors'\nexport * from './client'\nexport * from './signal-listener'\n", "import axios, { AxiosError } from 'axios'\nimport { VError } from 'verror'\n\nexport * from './gen/client/errors'\n\nexport class ChatClientError extends VError {\n  public static wrap(thrown: unknown, message: string): ChatClientError {\n    const err = ChatClientError.map(thrown)\n    return new ChatClientError(err, message ?? '')\n  }\n\n  public static map(thrown: unknown): ChatClientError {\n    if (thrown instanceof ChatClientError) {\n      return thrown\n    }\n    if (axios.isAxiosError(thrown)) {\n      return ChatHTTPError.fromAxios(thrown)\n    }\n    if (thrown instanceof Error) {\n      const { message } = thrown\n      return new ChatClientError(message)\n    }\n    return new ChatClientError(String(thrown))\n  }\n\n  public constructor(error: ChatClientError, message: string)\n  public constructor(message: string)\n  public constructor(first: ChatClientError | string, second?: string) {\n    if (typeof first === 'string') {\n      super(first)\n      return\n    }\n    super(first, second!)\n  }\n}\n\nexport class ChatHTTPError extends ChatClientError {\n  public constructor(\n    public readonly status: number | undefined,\n    message: string\n  ) {\n    super(message)\n  }\n\n  public static fromAxios(e: AxiosError<{ message?: string }>): ChatHTTPError {\n    const message = this._axiosMsg(e)\n    return new ChatHTTPError(e.response?.status, message)\n  }\n\n  private static _axiosMsg(e: AxiosError<{ message?: string }>): string {\n    let message = e.message\n    if (e.response?.statusText) {\n      message += `\\n  ${e.response?.statusText}`\n    }\n    if (e.response?.status && e.request?.method && e.request?.path) {\n      message += `\\n  (${e.response?.status}) ${e.request.method} ${e.request.path}`\n    }\n    if (e.response?.data?.message) {\n      message += `\\n  ${e.response?.data?.message}`\n    }\n    return message\n  }\n}\n\nexport class ChatConfigError extends ChatClientError {\n  public constructor(message: string) {\n    super(message)\n  }\n}\n", "\nimport crypto from 'crypto'\n\nconst codes = {\n  HTTP_STATUS_BAD_REQUEST: 400,\n  HTTP_STATUS_UNAUTHORIZED: 401,\n  HTTP_STATUS_PAYMENT_REQUIRED: 402,\n  HTTP_STATUS_FORBIDDEN: 403,\n  HTTP_STATUS_NOT_FOUND: 404,\n  HTTP_STATUS_METHOD_NOT_ALLOWED: 405,\n  HTTP_STATUS_REQUEST_TIMEOUT: 408,\n  HTTP_STATUS_CONFLICT: 409,\n  HTTP_STATUS_GONE: 410,\n  HTTP_STATUS_PAYLOAD_TOO_LARGE: 413,\n  HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE: 415,\n  HTTP_STATUS_DEPENDENCY_FAILED: 424,\n  HTTP_STATUS_TOO_MANY_REQUESTS: 429,\n  HTTP_STATUS_INTERNAL_SERVER_ERROR: 500,\n  HTTP_STATUS_NOT_IMPLEMENTED: 501,\n  HTTP_STATUS_BAD_GATEWAY: 502,\n  HTTP_STATUS_SERVICE_UNAVAILABLE: 503,\n  HTTP_STATUS_GATEWAY_TIMEOUT: 504,\n} as const\n\ntype ErrorCode = typeof codes[keyof typeof codes]\n\ndeclare const window: any\ntype CryptoLib = { getRandomValues(array: Uint8Array): Uint8Array }\n\nconst cryptoLibPolyfill: CryptoLib = {\n  // Fallback in case crypto isn't available.\n  getRandomValues: (array: Uint8Array) => new Uint8Array(array.map(() => Math.floor(Math.random() * 256))),\n}\n\nlet cryptoLib: CryptoLib =\n  typeof window !== 'undefined' && typeof window.document !== 'undefined'\n    ? window.crypto // Note: On browsers we need to use window.crypto instead of the imported crypto module as the latter is externalized and doesn't have getRandomValues().\n    : crypto\n\nif (!cryptoLib.getRandomValues) {\n  // Use a polyfill in older environments that have a crypto implementaton missing getRandomValues()\n  cryptoLib = cryptoLibPolyfill\n}\n\nabstract class BaseApiError<Code extends ErrorCode, Type extends string, Description extends string> extends Error {\n  public readonly isApiError = true\n\n  constructor(\n    public readonly code: Code,\n    public readonly description: Description,\n    public readonly type: Type,\n    public override readonly message: string,\n    public readonly error?: Error,\n    public readonly id?: string,\n    public readonly metadata?: Record<string, unknown>,\n  ) {\n    super(message)\n\n    if (!this.id) {\n      this.id = BaseApiError.generateId()\n    }\n  }\n\n  format() {\n    return `[${this.type}] ${this.message} (Error ID: ${this.id})`\n  }\n\n  toJSON() {\n    return {\n      id: this.id,\n      code: this.code,\n      type: this.type,\n      message: this.message,\n      metadata: this.metadata,\n    }\n  }\n\n  static generateId() {\n    const prefix = this.getPrefix();\n    const timestamp = new Date().toISOString().replace(/[\\-:TZ]/g, \"\").split(\".\")[0] // UTC time in YYMMDDHHMMSS format\n\n    const randomSuffixByteLength = 4\n    const randomHexSuffix = Array.from(cryptoLib.getRandomValues(new Uint8Array(randomSuffixByteLength)))\n      .map(x => x.toString(16).padStart(2, '0'))\n      .join('')\n      .toUpperCase()\n\n    return `${prefix}_${timestamp}x${randomHexSuffix}`\n  }\n\n  private static getPrefix() {\n    if (typeof window !== 'undefined' && typeof window.document !== 'undefined') {\n      // Browser environment\n      return 'err_bwsr'\n    }\n    return 'err'\n  }\n}\n\nconst isObject = (obj: unknown): obj is object => typeof obj === 'object' && !Array.isArray(obj) && obj !== null\n\nexport const isApiError = (thrown: unknown): thrown is ApiError => {\n  return thrown instanceof BaseApiError || isObject(thrown) && (thrown as ApiError).isApiError === true\n}\n\ntype UnknownType = 'Unknown'\n\n/**\n *  An unknown error occurred\n */\nexport class UnknownError extends BaseApiError<500, UnknownType, 'An unknown error occurred'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(500, 'An unknown error occurred', 'Unknown', message, error, id, metadata)\n  }\n}\n\ntype InternalType = 'Internal'\n\n/**\n *  An internal error occurred\n */\nexport class InternalError extends BaseApiError<500, InternalType, 'An internal error occurred'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(500, 'An internal error occurred', 'Internal', message, error, id, metadata)\n  }\n}\n\ntype UnauthorizedType = 'Unauthorized'\n\n/**\n *  The request requires to be authenticated.\n */\nexport class UnauthorizedError extends BaseApiError<401, UnauthorizedType, 'The request requires to be authenticated.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(401, 'The request requires to be authenticated.', 'Unauthorized', message, error, id, metadata)\n  }\n}\n\ntype ForbiddenType = 'Forbidden'\n\n/**\n *  The requested action can\\'t be peform by this resource.\n */\nexport class ForbiddenError extends BaseApiError<403, ForbiddenType, 'The requested action can\\'t be peform by this resource.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(403, 'The requested action can\\'t be peform by this resource.', 'Forbidden', message, error, id, metadata)\n  }\n}\n\ntype PayloadTooLargeType = 'PayloadTooLarge'\n\n/**\n *  The request payload is too large.\n */\nexport class PayloadTooLargeError extends BaseApiError<413, PayloadTooLargeType, 'The request payload is too large.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(413, 'The request payload is too large.', 'PayloadTooLarge', message, error, id, metadata)\n  }\n}\n\ntype InvalidPayloadType = 'InvalidPayload'\n\n/**\n *  The request payload is invalid.\n */\nexport class InvalidPayloadError extends BaseApiError<400, InvalidPayloadType, 'The request payload is invalid.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The request payload is invalid.', 'InvalidPayload', message, error, id, metadata)\n  }\n}\n\ntype UnsupportedMediaTypeType = 'UnsupportedMediaType'\n\n/**\n *  The request is invalid because the content-type is not supported.\n */\nexport class UnsupportedMediaTypeError extends BaseApiError<415, UnsupportedMediaTypeType, 'The request is invalid because the content-type is not supported.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(415, 'The request is invalid because the content-type is not supported.', 'UnsupportedMediaType', message, error, id, metadata)\n  }\n}\n\ntype MethodNotFoundType = 'MethodNotFound'\n\n/**\n *  The requested method does not exist.\n */\nexport class MethodNotFoundError extends BaseApiError<405, MethodNotFoundType, 'The requested method does not exist.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(405, 'The requested method does not exist.', 'MethodNotFound', message, error, id, metadata)\n  }\n}\n\ntype ResourceNotFoundType = 'ResourceNotFound'\n\n/**\n *  The requested resource does not exist.\n */\nexport class ResourceNotFoundError extends BaseApiError<404, ResourceNotFoundType, 'The requested resource does not exist.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(404, 'The requested resource does not exist.', 'ResourceNotFound', message, error, id, metadata)\n  }\n}\n\ntype InvalidJsonSchemaType = 'InvalidJsonSchema'\n\n/**\n *  The provided JSON schema is invalid.\n */\nexport class InvalidJsonSchemaError extends BaseApiError<400, InvalidJsonSchemaType, 'The provided JSON schema is invalid.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided JSON schema is invalid.', 'InvalidJsonSchema', message, error, id, metadata)\n  }\n}\n\ntype InvalidDataFormatType = 'InvalidDataFormat'\n\n/**\n *  The provided data doesn\\'t respect the provided JSON schema.\n */\nexport class InvalidDataFormatError extends BaseApiError<400, InvalidDataFormatType, 'The provided data doesn\\'t respect the provided JSON schema.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided data doesn\\'t respect the provided JSON schema.', 'InvalidDataFormat', message, error, id, metadata)\n  }\n}\n\ntype InvalidIdentifierType = 'InvalidIdentifier'\n\n/**\n *  The provided identifier is not valid. An identifier must start with a lowercase letter, be between 2 and 100 characters long and use only alphanumeric characters.\n */\nexport class InvalidIdentifierError extends BaseApiError<400, InvalidIdentifierType, 'The provided identifier is not valid. An identifier must start with a lowercase letter, be between 2 and 100 characters long and use only alphanumeric characters.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided identifier is not valid. An identifier must start with a lowercase letter, be between 2 and 100 characters long and use only alphanumeric characters.', 'InvalidIdentifier', message, error, id, metadata)\n  }\n}\n\ntype RelationConflictType = 'RelationConflict'\n\n/**\n *  The resource is related with a different resource that the one referenced in the request. This is usually caused when providing two resource identifiers that aren\\'t linked together.\n */\nexport class RelationConflictError extends BaseApiError<409, RelationConflictType, 'The resource is related with a different resource that the one referenced in the request. This is usually caused when providing two resource identifiers that aren\\'t linked together.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The resource is related with a different resource that the one referenced in the request. This is usually caused when providing two resource identifiers that aren\\'t linked together.', 'RelationConflict', message, error, id, metadata)\n  }\n}\n\ntype ReferenceConstraintType = 'ReferenceConstraint'\n\n/**\n *  The resource cannot be deleted because it\\'s referenced by another resource\n */\nexport class ReferenceConstraintError extends BaseApiError<409, ReferenceConstraintType, 'The resource cannot be deleted because it\\'s referenced by another resource'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The resource cannot be deleted because it\\'s referenced by another resource', 'ReferenceConstraint', message, error, id, metadata)\n  }\n}\n\ntype ResourceLockedConflictType = 'ResourceLockedConflict'\n\n/**\n *  The resource is current locked and cannot be operated on until the lock is released.\n */\nexport class ResourceLockedConflictError extends BaseApiError<409, ResourceLockedConflictType, 'The resource is current locked and cannot be operated on until the lock is released.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The resource is current locked and cannot be operated on until the lock is released.', 'ResourceLockedConflict', message, error, id, metadata)\n  }\n}\n\ntype ResourceGoneType = 'ResourceGone'\n\n/**\n *  The requested resource is no longer available.\n */\nexport class ResourceGoneError extends BaseApiError<410, ResourceGoneType, 'The requested resource is no longer available.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(410, 'The requested resource is no longer available.', 'ResourceGone', message, error, id, metadata)\n  }\n}\n\ntype ReferenceNotFoundType = 'ReferenceNotFound'\n\n/**\n *  The provided resource reference is missing. This is usually caused when providing an invalid id inside the payload of a request.\n */\nexport class ReferenceNotFoundError extends BaseApiError<400, ReferenceNotFoundType, 'The provided resource reference is missing. This is usually caused when providing an invalid id inside the payload of a request.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided resource reference is missing. This is usually caused when providing an invalid id inside the payload of a request.', 'ReferenceNotFound', message, error, id, metadata)\n  }\n}\n\ntype InvalidQueryType = 'InvalidQuery'\n\n/**\n *  The provided query is invalid. This is usually caused when providing an invalid parameter for querying a resource.\n */\nexport class InvalidQueryError extends BaseApiError<400, InvalidQueryType, 'The provided query is invalid. This is usually caused when providing an invalid parameter for querying a resource.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'The provided query is invalid. This is usually caused when providing an invalid parameter for querying a resource.', 'InvalidQuery', message, error, id, metadata)\n  }\n}\n\ntype RuntimeType = 'Runtime'\n\n/**\n *  An error happened during the execution of a runtime (bot or integration).\n */\nexport class RuntimeError extends BaseApiError<400, RuntimeType, 'An error happened during the execution of a runtime (bot or integration).'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'An error happened during the execution of a runtime (bot or integration).', 'Runtime', message, error, id, metadata)\n  }\n}\n\ntype AlreadyExistsType = 'AlreadyExists'\n\n/**\n *  The record attempted to be created already exists.\n */\nexport class AlreadyExistsError extends BaseApiError<409, AlreadyExistsType, 'The record attempted to be created already exists.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(409, 'The record attempted to be created already exists.', 'AlreadyExists', message, error, id, metadata)\n  }\n}\n\ntype RateLimitedType = 'RateLimited'\n\n/**\n *  The request has been rate limited.\n */\nexport class RateLimitedError extends BaseApiError<429, RateLimitedType, 'The request has been rate limited.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(429, 'The request has been rate limited.', 'RateLimited', message, error, id, metadata)\n  }\n}\n\ntype PaymentRequiredType = 'PaymentRequired'\n\n/**\n *  A payment is required to perform this request.\n */\nexport class PaymentRequiredError extends BaseApiError<402, PaymentRequiredType, 'A payment is required to perform this request.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(402, 'A payment is required to perform this request.', 'PaymentRequired', message, error, id, metadata)\n  }\n}\n\ntype QuotaExceededType = 'QuotaExceeded'\n\n/**\n *  The request exceeds the allowed quota. Quotas are a soft limit that can be increased.\n */\nexport class QuotaExceededError extends BaseApiError<403, QuotaExceededType, 'The request exceeds the allowed quota. Quotas are a soft limit that can be increased.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(403, 'The request exceeds the allowed quota. Quotas are a soft limit that can be increased.', 'QuotaExceeded', message, error, id, metadata)\n  }\n}\n\ntype LimitExceededType = 'LimitExceeded'\n\n/**\n *  The request exceeds the allowed limit. Limits are a hard limit that cannot be increased.\n */\nexport class LimitExceededError extends BaseApiError<413, LimitExceededType, 'The request exceeds the allowed limit. Limits are a hard limit that cannot be increased.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(413, 'The request exceeds the allowed limit. Limits are a hard limit that cannot be increased.', 'LimitExceeded', message, error, id, metadata)\n  }\n}\n\ntype BreakingChangesType = 'BreakingChanges'\n\n/**\n *  Request payload contains breaking changes which is not allowed for this resource without a version increment.\n */\nexport class BreakingChangesError extends BaseApiError<400, BreakingChangesType, 'Request payload contains breaking changes which is not allowed for this resource without a version increment.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(400, 'Request payload contains breaking changes which is not allowed for this resource without a version increment.', 'BreakingChanges', message, error, id, metadata)\n  }\n}\n\ntype OperationTimeoutType = 'OperationTimeout'\n\n/**\n *  The operation timed out.\n */\nexport class OperationTimeoutError extends BaseApiError<504, OperationTimeoutType, 'The operation timed out.'> {\n  constructor(message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) {\n    super(504, 'The operation timed out.', 'OperationTimeout', message, error, id, metadata)\n  }\n}\n\nexport type ErrorType =\n  | 'Unknown'\n  | 'Internal'\n  | 'Unauthorized'\n  | 'Forbidden'\n  | 'PayloadTooLarge'\n  | 'InvalidPayload'\n  | 'UnsupportedMediaType'\n  | 'MethodNotFound'\n  | 'ResourceNotFound'\n  | 'InvalidJsonSchema'\n  | 'InvalidDataFormat'\n  | 'InvalidIdentifier'\n  | 'RelationConflict'\n  | 'ReferenceConstraint'\n  | 'ResourceLockedConflict'\n  | 'ResourceGone'\n  | 'ReferenceNotFound'\n  | 'InvalidQuery'\n  | 'Runtime'\n  | 'AlreadyExists'\n  | 'RateLimited'\n  | 'PaymentRequired'\n  | 'QuotaExceeded'\n  | 'LimitExceeded'\n  | 'BreakingChanges'\n  | 'OperationTimeout'\n\nexport type ApiError =\n  | UnknownError\n  | InternalError\n  | UnauthorizedError\n  | ForbiddenError\n  | PayloadTooLargeError\n  | InvalidPayloadError\n  | UnsupportedMediaTypeError\n  | MethodNotFoundError\n  | ResourceNotFoundError\n  | InvalidJsonSchemaError\n  | InvalidDataFormatError\n  | InvalidIdentifierError\n  | RelationConflictError\n  | ReferenceConstraintError\n  | ResourceLockedConflictError\n  | ResourceGoneError\n  | ReferenceNotFoundError\n  | InvalidQueryError\n  | RuntimeError\n  | AlreadyExistsError\n  | RateLimitedError\n  | PaymentRequiredError\n  | QuotaExceededError\n  | LimitExceededError\n  | BreakingChangesError\n  | OperationTimeoutError\n\nconst errorTypes: { [type: string]: new (message: string, error?: Error, id?: string, metadata?: Record<string, unknown>) => ApiError } = {\n  Unknown: UnknownError,\n  Internal: InternalError,\n  Unauthorized: UnauthorizedError,\n  Forbidden: ForbiddenError,\n  PayloadTooLarge: PayloadTooLargeError,\n  InvalidPayload: InvalidPayloadError,\n  UnsupportedMediaType: UnsupportedMediaTypeError,\n  MethodNotFound: MethodNotFoundError,\n  ResourceNotFound: ResourceNotFoundError,\n  InvalidJsonSchema: InvalidJsonSchemaError,\n  InvalidDataFormat: InvalidDataFormatError,\n  InvalidIdentifier: InvalidIdentifierError,\n  RelationConflict: RelationConflictError,\n  ReferenceConstraint: ReferenceConstraintError,\n  ResourceLockedConflict: ResourceLockedConflictError,\n  ResourceGone: ResourceGoneError,\n  ReferenceNotFound: ReferenceNotFoundError,\n  InvalidQuery: InvalidQueryError,\n  Runtime: RuntimeError,\n  AlreadyExists: AlreadyExistsError,\n  RateLimited: RateLimitedError,\n  PaymentRequired: PaymentRequiredError,\n  QuotaExceeded: QuotaExceededError,\n  LimitExceeded: LimitExceededError,\n  BreakingChanges: BreakingChangesError,\n  OperationTimeout: OperationTimeoutError,\n}\n\nexport const errorFrom = (err: unknown): ApiError => {\n  if (isApiError(err)) {\n    return err\n  }\n  else if (err instanceof Error) {\n    return new UnknownError(err.message, err)\n  }\n  else if (typeof err === 'string') {\n    return new UnknownError(err)\n  }\n  else {\n    return getApiErrorFromObject(err)\n  }\n}\n\nfunction getApiErrorFromObject(err: any) {\n  // Check if it's an deserialized API error object\n  if (typeof err === 'object' && 'code' in err && 'type' in err && 'id' in err && 'message' in err && typeof err.type === 'string' && typeof err.message === 'string') {\n    const ErrorClass = errorTypes[err.type]\n    if (!ErrorClass) {\n      return new UnknownError(`An unclassified API error occurred: ${err.message} (Type: ${err.type}, Code: ${err.code})`)\n    }\n\n    return new ErrorClass(err.message, undefined, <string>err.id || 'UNKNOWN', err.metadata) // If error ID was not received do not pass undefined to generate a new one, flag it as UNKNOWN so we can fix the issue.\n  }\n\n  return new UnknownError('An invalid error occurred: ' + JSON.stringify(err))\n}\n", "import axios from 'axios'\nimport { isBrowser } from 'browser-or-node'\nimport * as consts from './consts'\nimport * as errors from './errors'\nimport { apiVersion, Client as AutoGeneratedClient } from './gen/client'\nimport jwt from './jsonwebtoken'\nimport { AsyncCollection } from './listing'\nimport { SignalListener } from './signal-listener'\nimport * as types from './types'\n\nconst _100mb = 100 * 1024 * 1024\nconst maxBodyLength = _100mb\nconst maxContentLength = _100mb\nconst defaultTimeout = 60_000\n\nconst _createAuthClient = Symbol('_createAuthClient')\n\ntype Merge<A, B> = Omit<A, keyof B> & B\ntype IClient = Merge<\n  {\n    [K in types.ClientOperation]: (x: types.ClientRequests[K]) => Promise<types.ClientResponses[K]>\n  },\n  {\n    listenConversation: (args: types.ClientRequests['listenConversation']) => Promise<SignalListener>\n  }\n>\n\ntype IAuthenticatedClient = Merge<\n  {\n    [K in types.AuthenticatedOperation]: (x: types.AuthenticatedClientRequests[K]) => Promise<types.ClientResponses[K]>\n  },\n  {\n    listenConversation: (args: types.AuthenticatedClientRequests['listenConversation']) => Promise<SignalListener>\n  }\n>\n\nexport class Client implements IClient {\n  private _connectionTested = false\n  private _auto: AutoGeneratedClient\n\n  public constructor(public readonly props: Readonly<types.ClientProps>) {\n    const axiosClient = Client._createAxios(props)\n    this._auto = new AutoGeneratedClient(axiosClient)\n  }\n\n  public get apiVersion() {\n    return apiVersion\n  }\n\n  /**\n   * Gets or creates a user based on the provided props and returns an authenticated client.\n   */\n  public static async connect(props: types.ConnectProps): Promise<AuthenticatedClient> {\n    const { userId, userKey, encryptionKey, ...clientProps } = props\n    const client = new Client(clientProps)\n    await client._testConnection()\n\n    if (userKey) {\n      const { user } = await client.getOrCreateUser({ 'x-user-key': userKey })\n      return AuthenticatedClient[_createAuthClient](client, { ...user, key: userKey })\n    }\n\n    if (encryptionKey) {\n      if (!jwt) {\n        const message =\n          'Connecting with an encryption key is not supported in the browser; use in NodeJs or format the key manually with jsonwebtoken.'\n        throw new errors.ChatConfigError(message)\n      }\n\n      if (!userId) {\n        throw new errors.ChatConfigError(\n          'userId is required when connecting with an encryption key. You may pick any userId of your choice that is not already taken by another user.'\n        )\n      }\n\n      const userKey = jwt.sign({ id: userId }, encryptionKey, { algorithm: 'HS256' })\n      const { user } = await client.getOrCreateUser({ 'x-user-key': userKey })\n      return AuthenticatedClient[_createAuthClient](client, { ...user, key: userKey })\n    }\n\n    const { user, key } = await client.createUser({ id: userId })\n    return AuthenticatedClient[_createAuthClient](client, { ...user, key })\n  }\n\n  public readonly createConversation: IClient['createConversation'] = (x) => this._call('createConversation', x)\n  public readonly getConversation: IClient['getConversation'] = (x) => this._call('getConversation', x)\n  public readonly getOrCreateConversation: IClient['getOrCreateConversation'] = (x) =>\n    this._call('getOrCreateConversation', x)\n  public readonly deleteConversation: IClient['deleteConversation'] = (x) => this._call('deleteConversation', x)\n  public readonly listConversations: IClient['listConversations'] = (x) => this._call('listConversations', x)\n  public readonly listMessages: IClient['listMessages'] = (x) => this._call('listMessages', x)\n  public readonly addParticipant: IClient['addParticipant'] = (x) => this._call('addParticipant', x)\n  public readonly removeParticipant: IClient['removeParticipant'] = (x) => this._call('removeParticipant', x)\n  public readonly getParticipant: IClient['getParticipant'] = (x) => this._call('getParticipant', x)\n  public readonly listParticipants: IClient['listParticipants'] = (x) => this._call('listParticipants', x)\n  public readonly createMessage: IClient['createMessage'] = (x) => this._call('createMessage', x)\n  public readonly getMessage: IClient['getMessage'] = (x) => this._call('getMessage', x)\n  public readonly deleteMessage: IClient['deleteMessage'] = (x) => this._call('deleteMessage', x)\n  public readonly createUser: IClient['createUser'] = (x) => this._call('createUser', x)\n  public readonly getUser: IClient['getUser'] = (x) => this._call('getUser', x)\n  public readonly getOrCreateUser: IClient['getOrCreateUser'] = (x) => this._call('getOrCreateUser', x)\n  public readonly updateUser: IClient['updateUser'] = (x) => this._call('updateUser', x)\n  public readonly deleteUser: IClient['deleteUser'] = (x) => this._call('deleteUser', x)\n  public readonly createEvent: IClient['createEvent'] = (x) => this._call('createEvent', x)\n  public readonly getEvent: IClient['getEvent'] = (x) => this._call('getEvent', x)\n\n  public get list() {\n    return {\n      conversations: (props: types.ClientRequests['listConversations']) =>\n        new AsyncCollection(({ nextToken }) =>\n          this.listConversations({ nextToken, ...props }).then((r) => ({ ...r, items: r.conversations }))\n        ),\n      messages: (props: types.ClientRequests['listMessages']) =>\n        new AsyncCollection(({ nextToken }) =>\n          this.listMessages({ nextToken, ...props }).then((r) => ({ ...r, items: r.messages }))\n        ),\n      participants: (props: types.ClientRequests['listParticipants']) =>\n        new AsyncCollection(({ nextToken }) =>\n          this.listParticipants({ nextToken, ...props }).then((r) => ({ ...r, items: r.participants }))\n        ),\n    }\n  }\n\n  public readonly listenConversation: IClient['listenConversation'] = async ({ id, 'x-user-key': userKey }) => {\n    const signalListener = await SignalListener.listen({\n      url: this._apiUrl,\n      conversationId: id,\n      userKey,\n      debug: this.props.debug ?? false,\n    })\n    return signalListener\n  }\n\n  private _call = async (operation: types.ClientOperation, args: any): Promise<any> => {\n    try {\n      await this._testConnection()\n      const response = await this._auto[operation](args)\n      const res = this._checkPayloadForError(response)\n      return res\n    } catch (thrown) {\n      if (errors.isApiError(thrown)) {\n        throw thrown\n      }\n      throw errors.ChatClientError.map(thrown)\n    }\n  }\n\n  /**\n   * The Chat-API is called like any other integrations by sending requests to the bridge webhook endpoint.\n   * This endpoint may return a successful status code even when the payload contains an error.\n   * This method parses the payload to check for an error and throws an error if one is found.\n   */\n  private _checkPayloadForError = <T>(response: unknown): T => {\n    if (typeof response !== 'object' || response === null) {\n      return response as T\n    }\n\n    if (!('code' in response)) {\n      return response as T\n    }\n\n    const { code } = response\n    if (typeof code !== 'number') {\n      return response as T\n    }\n\n    if (code < 400 || code >= 600) {\n      return response as T\n    }\n\n    const message = 'message' in response ? String(response['message']) : 'An error occurred'\n    throw new errors.ChatHTTPError(code, message)\n  }\n\n  private static _createAxios = (props: types.ClientProps) => {\n    const headers: types.Headers = {\n      ...props.headers,\n    }\n    const timeout = props.timeout ?? defaultTimeout\n    const withCredentials = isBrowser\n    const baseURL = this._getApiUrl(props)\n    return axios.create({\n      baseURL,\n      headers,\n      withCredentials,\n      timeout,\n      maxBodyLength,\n      maxContentLength,\n      validateStatus: (status) => status >= 200 && status < 400,\n    })\n  }\n\n  private get _apiUrl() {\n    return Client._getApiUrl(this.props)\n  }\n\n  private static _getApiUrl = (props: types.ClientProps) => {\n    if ('apiUrl' in props) {\n      return props.apiUrl\n    }\n\n    const baseApiUrl = props.baseApiUrl ?? consts.defaultBaseApiUrl\n    const { webhookId } = props\n    return `${baseApiUrl}/${webhookId}`\n  }\n\n  private _testConnection = async () => {\n    if (this._connectionTested) {\n      return\n    }\n\n    const url = `${this._apiUrl}/hello`\n    const axiosInstance = axios.create({ baseURL: url })\n    try {\n      const response = await axiosInstance.get('/')\n      this._checkPayloadForError(response.data)\n    } catch (thrown) {\n      throw errors.ChatClientError.wrap(thrown, `Failed to connect to url \"${this._apiUrl}\"`)\n    }\n\n    this._connectionTested = true\n  }\n}\n\nexport class AuthenticatedClient implements IAuthenticatedClient {\n  private constructor(\n    private _client: Client,\n    public readonly user: types.AuthenticatedUser\n  ) {}\n\n  // can not be instantiated outside of this module\n  public static [_createAuthClient] = (client: Client, user: types.AuthenticatedUser) => {\n    return new AuthenticatedClient(client, user)\n  }\n\n  public get apiVersion() {\n    return this._client.apiVersion\n  }\n\n  public readonly createConversation: IAuthenticatedClient['createConversation'] = (x) =>\n    this._client.createConversation({ 'x-user-key': this.user.key, ...x })\n  public readonly getConversation: IAuthenticatedClient['getConversation'] = (x) =>\n    this._client.getConversation({ 'x-user-key': this.user.key, ...x })\n  public readonly getOrCreateConversation: IAuthenticatedClient['getOrCreateConversation'] = (x) =>\n    this._client.getOrCreateConversation({ 'x-user-key': this.user.key, ...x })\n  public readonly deleteConversation: IAuthenticatedClient['deleteConversation'] = (x) =>\n    this._client.deleteConversation({ 'x-user-key': this.user.key, ...x })\n  public readonly listConversations: IAuthenticatedClient['listConversations'] = (x) =>\n    this._client.listConversations({ 'x-user-key': this.user.key, ...x })\n  public readonly listMessages: IAuthenticatedClient['listMessages'] = (x) =>\n    this._client.listMessages({ 'x-user-key': this.user.key, ...x })\n  public readonly listenConversation: IAuthenticatedClient['listenConversation'] = (x) =>\n    this._client.listenConversation({ 'x-user-key': this.user.key, ...x })\n  public readonly addParticipant: IAuthenticatedClient['addParticipant'] = (x) =>\n    this._client.addParticipant({ 'x-user-key': this.user.key, ...x })\n  public readonly removeParticipant: IAuthenticatedClient['removeParticipant'] = (x) =>\n    this._client.removeParticipant({ 'x-user-key': this.user.key, ...x })\n  public readonly getParticipant: IAuthenticatedClient['getParticipant'] = (x) =>\n    this._client.getParticipant({ 'x-user-key': this.user.key, ...x })\n  public readonly listParticipants: IAuthenticatedClient['listParticipants'] = (x) =>\n    this._client.listParticipants({ 'x-user-key': this.user.key, ...x })\n  public readonly createMessage: IAuthenticatedClient['createMessage'] = (x) =>\n    this._client.createMessage({ 'x-user-key': this.user.key, ...x })\n  public readonly getMessage: IAuthenticatedClient['getMessage'] = (x) =>\n    this._client.getMessage({ 'x-user-key': this.user.key, ...x })\n  public readonly deleteMessage: IAuthenticatedClient['deleteMessage'] = (x) =>\n    this._client.deleteMessage({ 'x-user-key': this.user.key, ...x })\n  public readonly getUser: IAuthenticatedClient['getUser'] = (x) =>\n    this._client.getUser({ 'x-user-key': this.user.key, ...x })\n  public readonly updateUser: IAuthenticatedClient['updateUser'] = (x) =>\n    this._client.updateUser({ 'x-user-key': this.user.key, ...x })\n  public readonly deleteUser: IAuthenticatedClient['deleteUser'] = (x) =>\n    this._client.deleteUser({ 'x-user-key': this.user.key, ...x })\n  public readonly createEvent: IAuthenticatedClient['createEvent'] = (x) =>\n    this._client.createEvent({ 'x-user-key': this.user.key, ...x })\n  public readonly getEvent: IAuthenticatedClient['getEvent'] = (x) =>\n    this._client.getEvent({ 'x-user-key': this.user.key, ...x })\n\n  public get list() {\n    return {\n      conversations: (x: types.AuthenticatedClientRequests['listConversations']) =>\n        this._client.list.conversations({ 'x-user-key': this.user.key, ...x }),\n      messages: (x: types.AuthenticatedClientRequests['listMessages']) =>\n        this._client.list.messages({ 'x-user-key': this.user.key, ...x }),\n      participants: (x: types.AuthenticatedClientRequests['listParticipants']) =>\n        this._client.list.participants({ 'x-user-key': this.user.key, ...x }),\n    }\n  }\n}\n", "export const defaultBaseApiUrl = 'https://chat.botpress.cloud'\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nimport axios, { AxiosInstance } from 'axios'\nimport { errorFrom } from './errors'\nimport { toAxiosRequest } from './to-axios'\nimport * as getConversation from './operations/getConversation'\nimport * as createConversation from './operations/createConversation'\nimport * as getOrCreateConversation from './operations/getOrCreateConversation'\nimport * as deleteConversation from './operations/deleteConversation'\nimport * as listConversations from './operations/listConversations'\nimport * as listenConversation from './operations/listenConversation'\nimport * as listMessages from './operations/listMessages'\nimport * as addParticipant from './operations/addParticipant'\nimport * as removeParticipant from './operations/removeParticipant'\nimport * as getParticipant from './operations/getParticipant'\nimport * as listParticipants from './operations/listParticipants'\nimport * as getMessage from './operations/getMessage'\nimport * as createMessage from './operations/createMessage'\nimport * as deleteMessage from './operations/deleteMessage'\nimport * as getUser from './operations/getUser'\nimport * as createUser from './operations/createUser'\nimport * as getOrCreateUser from './operations/getOrCreateUser'\nimport * as updateUser from './operations/updateUser'\nimport * as deleteUser from './operations/deleteUser'\nimport * as getEvent from './operations/getEvent'\nimport * as createEvent from './operations/createEvent'\n\nexport * from './models'\n\nexport * as getConversation from './operations/getConversation'\nexport * as createConversation from './operations/createConversation'\nexport * as getOrCreateConversation from './operations/getOrCreateConversation'\nexport * as deleteConversation from './operations/deleteConversation'\nexport * as listConversations from './operations/listConversations'\nexport * as listenConversation from './operations/listenConversation'\nexport * as listMessages from './operations/listMessages'\nexport * as addParticipant from './operations/addParticipant'\nexport * as removeParticipant from './operations/removeParticipant'\nexport * as getParticipant from './operations/getParticipant'\nexport * as listParticipants from './operations/listParticipants'\nexport * as getMessage from './operations/getMessage'\nexport * as createMessage from './operations/createMessage'\nexport * as deleteMessage from './operations/deleteMessage'\nexport * as getUser from './operations/getUser'\nexport * as createUser from './operations/createUser'\nexport * as getOrCreateUser from './operations/getOrCreateUser'\nexport * as updateUser from './operations/updateUser'\nexport * as deleteUser from './operations/deleteUser'\nexport * as getEvent from './operations/getEvent'\nexport * as createEvent from './operations/createEvent'\n\nexport const apiVersion = '0.7.6'\n\nexport type ClientProps = {\n  toAxiosRequest: typeof toAxiosRequest\n  toApiError: typeof toApiError\n}\n\nexport class Client {\n\n  public constructor(private axiosInstance: AxiosInstance, private props: Partial<ClientProps> = {}) {}\n\n  public readonly getConversation = async (input: getConversation.GetConversationInput): Promise<getConversation.GetConversationResponse> => {\n    const { path, headers, query, body } = getConversation.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getConversation.GetConversationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createConversation = async (input: createConversation.CreateConversationInput): Promise<createConversation.CreateConversationResponse> => {\n    const { path, headers, query, body } = createConversation.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createConversation.CreateConversationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getOrCreateConversation = async (input: getOrCreateConversation.GetOrCreateConversationInput): Promise<getOrCreateConversation.GetOrCreateConversationResponse> => {\n    const { path, headers, query, body } = getOrCreateConversation.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getOrCreateConversation.GetOrCreateConversationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteConversation = async (input: deleteConversation.DeleteConversationInput): Promise<deleteConversation.DeleteConversationResponse> => {\n    const { path, headers, query, body } = deleteConversation.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteConversation.DeleteConversationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listConversations = async (input: listConversations.ListConversationsInput): Promise<listConversations.ListConversationsResponse> => {\n    const { path, headers, query, body } = listConversations.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listConversations.ListConversationsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listenConversation = async (input: listenConversation.ListenConversationInput): Promise<listenConversation.ListenConversationResponse> => {\n    const { path, headers, query, body } = listenConversation.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listenConversation.ListenConversationResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listMessages = async (input: listMessages.ListMessagesInput): Promise<listMessages.ListMessagesResponse> => {\n    const { path, headers, query, body } = listMessages.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listMessages.ListMessagesResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly addParticipant = async (input: addParticipant.AddParticipantInput): Promise<addParticipant.AddParticipantResponse> => {\n    const { path, headers, query, body } = addParticipant.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<addParticipant.AddParticipantResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly removeParticipant = async (input: removeParticipant.RemoveParticipantInput): Promise<removeParticipant.RemoveParticipantResponse> => {\n    const { path, headers, query, body } = removeParticipant.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<removeParticipant.RemoveParticipantResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getParticipant = async (input: getParticipant.GetParticipantInput): Promise<getParticipant.GetParticipantResponse> => {\n    const { path, headers, query, body } = getParticipant.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getParticipant.GetParticipantResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly listParticipants = async (input: listParticipants.ListParticipantsInput): Promise<listParticipants.ListParticipantsResponse> => {\n    const { path, headers, query, body } = listParticipants.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<listParticipants.ListParticipantsResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getMessage = async (input: getMessage.GetMessageInput): Promise<getMessage.GetMessageResponse> => {\n    const { path, headers, query, body } = getMessage.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getMessage.GetMessageResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createMessage = async (input: createMessage.CreateMessageInput): Promise<createMessage.CreateMessageResponse> => {\n    const { path, headers, query, body } = createMessage.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createMessage.CreateMessageResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteMessage = async (input: deleteMessage.DeleteMessageInput): Promise<deleteMessage.DeleteMessageResponse> => {\n    const { path, headers, query, body } = deleteMessage.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteMessage.DeleteMessageResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getUser = async (input: getUser.GetUserInput): Promise<getUser.GetUserResponse> => {\n    const { path, headers, query, body } = getUser.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getUser.GetUserResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createUser = async (input: createUser.CreateUserInput): Promise<createUser.CreateUserResponse> => {\n    const { path, headers, query, body } = createUser.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createUser.CreateUserResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getOrCreateUser = async (input: getOrCreateUser.GetOrCreateUserInput): Promise<getOrCreateUser.GetOrCreateUserResponse> => {\n    const { path, headers, query, body } = getOrCreateUser.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getOrCreateUser.GetOrCreateUserResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly updateUser = async (input: updateUser.UpdateUserInput): Promise<updateUser.UpdateUserResponse> => {\n    const { path, headers, query, body } = updateUser.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"put\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<updateUser.UpdateUserResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly deleteUser = async (input: deleteUser.DeleteUserInput): Promise<deleteUser.DeleteUserResponse> => {\n    const { path, headers, query, body } = deleteUser.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"delete\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<deleteUser.DeleteUserResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly getEvent = async (input: getEvent.GetEventInput): Promise<getEvent.GetEventResponse> => {\n    const { path, headers, query, body } = getEvent.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"get\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<getEvent.GetEventResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n  public readonly createEvent = async (input: createEvent.CreateEventInput): Promise<createEvent.CreateEventResponse> => {\n    const { path, headers, query, body } = createEvent.parseReq(input)\n\n    const mapRequest = this.props.toAxiosRequest ?? toAxiosRequest\n    const mapErrorResponse = this.props.toApiError ?? toApiError\n\n    const axiosReq = mapRequest({\n        method: \"post\",\n        path,\n        headers: { ...headers },\n        query: { ...query },\n        body,\n    })\n    return this.axiosInstance.request<createEvent.CreateEventResponse>(axiosReq)\n      .then((res) => res.data)\n      .catch((e) => { throw mapErrorResponse(e) })\n  }\n\n}\n\n// maps axios error to api error type\nfunction toApiError(err: unknown): Error {\n  if (axios.isAxiosError(err) && err.response?.data) {\n    return errorFrom(err.response.data)\n  }\n  return errorFrom(err)\n}\n\n", "\nimport { AxiosRequestConfig } from \"axios\"\nimport qs from \"qs\"\n\nexport type Primitive = string | number | boolean\nexport type Value<P extends Primitive> = P | P[] | Record<string, P>\nexport type QueryValue = Value<string> | Value<boolean> | Value<number> | undefined\nexport type AnyQueryParams = Record<string, QueryValue>\nexport type HeaderValue = string | undefined\nexport type AnyHeaderParams = Record<string, HeaderValue>\nexport type AnyBodyParams = Record<string, any>\nexport type ParsedRequest = {\n  method: string\n  path: string\n  query: AnyQueryParams\n  headers: AnyHeaderParams\n  body: AnyBodyParams\n}\n\nconst isDefined = <T>(pair: [string, T | undefined]): pair is [string, T] => pair[1] !== undefined\n\nexport const toAxiosRequest = (req: ParsedRequest): AxiosRequestConfig => {\n  const { method, path, query, headers: headerParams, body } = req\n\n  // prepare headers\n  const headerEntries: [string, string][] = Object.entries(headerParams).filter(isDefined)\n  const headers = Object.fromEntries(headerEntries)\n\n  // prepare query params\n  const queryString = qs.stringify(query, { encode: true, arrayFormat: 'repeat', allowDots: true })\n\n  const url = queryString ? [path, queryString].join('?') : path\n  const data =\n    ['put', 'post', 'delete', 'patch'].includes(method.toLowerCase())\n      ? body\n      : undefined\n\n  return {\n    method,\n    url,\n    headers,\n    data,\n  }\n}\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetConversationRequestHeaders {\n  \"x-user-key\": string;\n}\n\nexport interface GetConversationRequestQuery {}\n\nexport interface GetConversationRequestParams {\n  id: string;\n}\n\nexport interface GetConversationRequestBody {}\n\nexport type GetConversationInput = GetConversationRequestBody & GetConversationRequestHeaders & GetConversationRequestQuery & GetConversationRequestParams\n\nexport type GetConversationRequest = {\n  headers: GetConversationRequestHeaders;\n  query: GetConversationRequestQuery;\n  params: GetConversationRequestParams;\n  body: GetConversationRequestBody;\n}\n\nexport const parseReq = (input: GetConversationInput): GetConversationRequest & { path: string } => {\n  return {\n    path: `/conversations/${encodeURIComponent(input['id'])}`,\n    headers: { 'x-user-key': input['x-user-key'] },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetConversationResponse {\n  conversation: {\n    /**\n     * Identifier of the [Conversation](#schema_conversation)\n     */\n    id: string;\n    /**\n     * Creation date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    updatedAt: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateConversationRequestHeaders {\n  \"x-user-key\": string;\n}\n\nexport interface CreateConversationRequestQuery {}\n\nexport interface CreateConversationRequestParams {}\n\nexport interface CreateConversationRequestBody {\n  /**\n   * Identifier of the [Conversation](#schema_conversation)\n   */\n  id?: string;\n}\n\nexport type CreateConversationInput = CreateConversationRequestBody & CreateConversationRequestHeaders & CreateConversationRequestQuery & CreateConversationRequestParams\n\nexport type CreateConversationRequest = {\n  headers: CreateConversationRequestHeaders;\n  query: CreateConversationRequestQuery;\n  params: CreateConversationRequestParams;\n  body: CreateConversationRequestBody;\n}\n\nexport const parseReq = (input: CreateConversationInput): CreateConversationRequest & { path: string } => {\n  return {\n    path: `/conversations`,\n    headers: { 'x-user-key': input['x-user-key'] },\n    query: {  },\n    params: {  },\n    body: { 'id': input['id'] },\n  }\n}\n\nexport interface CreateConversationResponse {\n  conversation: {\n    /**\n     * Identifier of the [Conversation](#schema_conversation)\n     */\n    id: string;\n    /**\n     * Creation date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    updatedAt: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetOrCreateConversationRequestHeaders {\n  \"x-user-key\": string;\n}\n\nexport interface GetOrCreateConversationRequestQuery {}\n\nexport interface GetOrCreateConversationRequestParams {}\n\nexport interface GetOrCreateConversationRequestBody {\n  /**\n   * Identifier of the [Conversation](#schema_conversation)\n   */\n  id: string;\n}\n\nexport type GetOrCreateConversationInput = GetOrCreateConversationRequestBody & GetOrCreateConversationRequestHeaders & GetOrCreateConversationRequestQuery & GetOrCreateConversationRequestParams\n\nexport type GetOrCreateConversationRequest = {\n  headers: GetOrCreateConversationRequestHeaders;\n  query: GetOrCreateConversationRequestQuery;\n  params: GetOrCreateConversationRequestParams;\n  body: GetOrCreateConversationRequestBody;\n}\n\nexport const parseReq = (input: GetOrCreateConversationInput): GetOrCreateConversationRequest & { path: string } => {\n  return {\n    path: `/conversations/get-or-create`,\n    headers: { 'x-user-key': input['x-user-key'] },\n    query: {  },\n    params: {  },\n    body: { 'id': input['id'] },\n  }\n}\n\nexport interface GetOrCreateConversationResponse {\n  conversation: {\n    /**\n     * Identifier of the [Conversation](#schema_conversation)\n     */\n    id: string;\n    /**\n     * Creation date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    updatedAt: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteConversationRequestHeaders {\n  \"x-user-key\": string;\n}\n\nexport interface DeleteConversationRequestQuery {}\n\nexport interface DeleteConversationRequestParams {\n  id: string;\n}\n\nexport interface DeleteConversationRequestBody {}\n\nexport type DeleteConversationInput = DeleteConversationRequestBody & DeleteConversationRequestHeaders & DeleteConversationRequestQuery & DeleteConversationRequestParams\n\nexport type DeleteConversationRequest = {\n  headers: DeleteConversationRequestHeaders;\n  query: DeleteConversationRequestQuery;\n  params: DeleteConversationRequestParams;\n  body: DeleteConversationRequestBody;\n}\n\nexport const parseReq = (input: DeleteConversationInput): DeleteConversationRequest & { path: string } => {\n  return {\n    path: `/conversations/${encodeURIComponent(input['id'])}`,\n    headers: { 'x-user-key': input['x-user-key'] },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteConversationResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListConversationsRequestHeaders {\n  \"x-user-key\": string;\n}\n\nexport interface ListConversationsRequestQuery {\n  nextToken?: string;\n}\n\nexport interface ListConversationsRequestParams {}\n\nexport interface ListConversationsRequestBody {}\n\nexport type ListConversationsInput = ListConversationsRequestBody & ListConversationsRequestHeaders & ListConversationsRequestQuery & ListConversationsRequestParams\n\nexport type ListConversationsRequest = {\n  headers: ListConversationsRequestHeaders;\n  query: ListConversationsRequestQuery;\n  params: ListConversationsRequestParams;\n  body: ListConversationsRequestBody;\n}\n\nexport const parseReq = (input: ListConversationsInput): ListConversationsRequest & { path: string } => {\n  return {\n    path: `/conversations`,\n    headers: { 'x-user-key': input['x-user-key'] },\n    query: { 'nextToken': input['nextToken'] },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface ListConversationsResponse {\n  conversations: {\n    /**\n     * Identifier of the [Conversation](#schema_conversation)\n     */\n    id: string;\n    /**\n     * Creation date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [Conversation](#schema_conversation) in ISO 8601 format\n     */\n    updatedAt: string;\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListenConversationRequestHeaders {\n  \"x-user-key\": string;\n}\n\nexport interface ListenConversationRequestQuery {}\n\nexport interface ListenConversationRequestParams {\n  id: string;\n}\n\nexport interface ListenConversationRequestBody {}\n\nexport type ListenConversationInput = ListenConversationRequestBody & ListenConversationRequestHeaders & ListenConversationRequestQuery & ListenConversationRequestParams\n\nexport type ListenConversationRequest = {\n  headers: ListenConversationRequestHeaders;\n  query: ListenConversationRequestQuery;\n  params: ListenConversationRequestParams;\n  body: ListenConversationRequestBody;\n}\n\nexport const parseReq = (input: ListenConversationInput): ListenConversationRequest & { path: string } => {\n  return {\n    path: `/conversations/${encodeURIComponent(input['id'])}/listen`,\n    headers: { 'x-user-key': input['x-user-key'] },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface ListenConversationResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListMessagesRequestHeaders {\n  \"x-user-key\": string;\n}\n\nexport interface ListMessagesRequestQuery {\n  nextToken?: string;\n}\n\nexport interface ListMessagesRequestParams {\n  conversationId: string;\n}\n\nexport interface ListMessagesRequestBody {}\n\nexport type ListMessagesInput = ListMessagesRequestBody & ListMessagesRequestHeaders & ListMessagesRequestQuery & ListMessagesRequestParams\n\nexport type ListMessagesRequest = {\n  headers: ListMessagesRequestHeaders;\n  query: ListMessagesRequestQuery;\n  params: ListMessagesRequestParams;\n  body: ListMessagesRequestBody;\n}\n\nexport const parseReq = (input: ListMessagesInput): ListMessagesRequest & { path: string } => {\n  return {\n    path: `/conversations/${encodeURIComponent(input['conversationId'])}/messages`,\n    headers: { 'x-user-key': input['x-user-key'] },\n    query: { 'nextToken': input['nextToken'] },\n    params: { 'conversationId': input['conversationId'] },\n    body: {  },\n  }\n}\n\nexport interface ListMessagesResponse {\n  messages: {\n    /**\n     * Identifier of the [Message](#schema_message)\n     */\n    id: string;\n    /**\n     * Creation date of the [Message](#schema_message) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Payload is the content type of the message.\n     */\n    payload:\n      | {\n          type: \"audio\";\n          audioUrl: string;\n          [k: string]: any;\n        }\n      | {\n          type: \"card\";\n          title: string;\n          subtitle?: string;\n          imageUrl?: string;\n          actions: {\n            action: \"postback\" | \"url\" | \"say\";\n            label: string;\n            value: string;\n            [k: string]: any;\n          }[];\n          [k: string]: any;\n        }\n      | {\n          type: \"carousel\";\n          items: {\n            type: \"card\";\n            title: string;\n            subtitle?: string;\n            imageUrl?: string;\n            actions: {\n              action: \"postback\" | \"url\" | \"say\";\n              label: string;\n              value: string;\n              [k: string]: any;\n            }[];\n            [k: string]: any;\n          }[];\n          [k: string]: any;\n        }\n      | {\n          text: string;\n          options: {\n            label: string;\n            value: string;\n            [k: string]: any;\n          }[];\n          type: \"choice\";\n          [k: string]: any;\n        }\n      | {\n          text: string;\n          options: {\n            label: string;\n            value: string;\n            [k: string]: any;\n          }[];\n          type: \"dropdown\";\n          [k: string]: any;\n        }\n      | {\n          type: \"file\";\n          fileUrl: string;\n          title?: string;\n          [k: string]: any;\n        }\n      | {\n          type: \"image\";\n          imageUrl: string;\n          [k: string]: any;\n        }\n      | {\n          type: \"location\";\n          latitude: number;\n          longitude: number;\n          address?: string;\n          title?: string;\n          [k: string]: any;\n        }\n      | {\n          type: \"text\";\n          text: string;\n          [k: string]: any;\n        }\n      | {\n          type: \"video\";\n          videoUrl: string;\n          [k: string]: any;\n        }\n      | {\n          type: \"markdown\";\n          markdown: string;\n          [k: string]: any;\n        }\n      | {\n          type: \"bloc\";\n          items: (\n            | {\n                type: \"text\";\n                text: string;\n                [k: string]: any;\n              }\n            | {\n                type: \"markdown\";\n                markdown: string;\n                [k: string]: any;\n              }\n            | {\n                type: \"image\";\n                imageUrl: string;\n                [k: string]: any;\n              }\n            | {\n                type: \"audio\";\n                audioUrl: string;\n                [k: string]: any;\n              }\n            | {\n                type: \"video\";\n                videoUrl: string;\n                [k: string]: any;\n              }\n            | {\n                type: \"file\";\n                fileUrl: string;\n                title?: string;\n                [k: string]: any;\n              }\n            | {\n                type: \"location\";\n                latitude: number;\n                longitude: number;\n                address?: string;\n                title?: string;\n                [k: string]: any;\n              }\n          )[];\n          [k: string]: any;\n        };\n    /**\n     * ID of the [User](#schema_user)\n     */\n    userId: string;\n    /**\n     * ID of the [Conversation](#schema_conversation)\n     */\n    conversationId: string;\n    /**\n     * Metadata of the message\n     */\n    metadata?: {\n      [k: string]: any | null;\n    };\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface AddParticipantRequestHeaders {\n  \"x-user-key\": string;\n}\n\nexport interface AddParticipantRequestQuery {}\n\nexport interface AddParticipantRequestParams {\n  conversationId: string;\n}\n\nexport interface AddParticipantRequestBody {\n  /**\n   * User id\n   */\n  userId: string;\n}\n\nexport type AddParticipantInput = AddParticipantRequestBody & AddParticipantRequestHeaders & AddParticipantRequestQuery & AddParticipantRequestParams\n\nexport type AddParticipantRequest = {\n  headers: AddParticipantRequestHeaders;\n  query: AddParticipantRequestQuery;\n  params: AddParticipantRequestParams;\n  body: AddParticipantRequestBody;\n}\n\nexport const parseReq = (input: AddParticipantInput): AddParticipantRequest & { path: string } => {\n  return {\n    path: `/conversations/${encodeURIComponent(input['conversationId'])}/participants`,\n    headers: { 'x-user-key': input['x-user-key'] },\n    query: {  },\n    params: { 'conversationId': input['conversationId'] },\n    body: { 'userId': input['userId'] },\n  }\n}\n\nexport interface AddParticipantResponse {\n  /**\n   * The user object represents someone interacting with the bot within a specific integration. The same person interacting with a bot in slack and messenger will be represented with two different users.\n   */\n  participant: {\n    /**\n     * Identifier of the [User](#schema_user)\n     */\n    id: string;\n    /**\n     * Name of the [User](#schema_user)\n     */\n    name?: string;\n    /**\n     * Picture url of the [User](#schema_user)\n     */\n    pictureUrl?: string;\n    /**\n     * Custom profile data of the [User](#schema_user) encoded as a string\n     */\n    profile?: string;\n    /**\n     * Creation date of the [User](#schema_user) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [User](#schema_user) in ISO 8601 format\n     */\n    updatedAt: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface RemoveParticipantRequestHeaders {\n  \"x-user-key\": string;\n}\n\nexport interface RemoveParticipantRequestQuery {}\n\nexport interface RemoveParticipantRequestParams {\n  conversationId: string;\n  userId: string;\n}\n\nexport interface RemoveParticipantRequestBody {}\n\nexport type RemoveParticipantInput = RemoveParticipantRequestBody & RemoveParticipantRequestHeaders & RemoveParticipantRequestQuery & RemoveParticipantRequestParams\n\nexport type RemoveParticipantRequest = {\n  headers: RemoveParticipantRequestHeaders;\n  query: RemoveParticipantRequestQuery;\n  params: RemoveParticipantRequestParams;\n  body: RemoveParticipantRequestBody;\n}\n\nexport const parseReq = (input: RemoveParticipantInput): RemoveParticipantRequest & { path: string } => {\n  return {\n    path: `/conversations/${encodeURIComponent(input['conversationId'])}/participants/${encodeURIComponent(input['userId'])}`,\n    headers: { 'x-user-key': input['x-user-key'] },\n    query: {  },\n    params: { 'conversationId': input['conversationId'], 'userId': input['userId'] },\n    body: {  },\n  }\n}\n\nexport interface RemoveParticipantResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetParticipantRequestHeaders {\n  \"x-user-key\": string;\n}\n\nexport interface GetParticipantRequestQuery {}\n\nexport interface GetParticipantRequestParams {\n  conversationId: string;\n  userId: string;\n}\n\nexport interface GetParticipantRequestBody {}\n\nexport type GetParticipantInput = GetParticipantRequestBody & GetParticipantRequestHeaders & GetParticipantRequestQuery & GetParticipantRequestParams\n\nexport type GetParticipantRequest = {\n  headers: GetParticipantRequestHeaders;\n  query: GetParticipantRequestQuery;\n  params: GetParticipantRequestParams;\n  body: GetParticipantRequestBody;\n}\n\nexport const parseReq = (input: GetParticipantInput): GetParticipantRequest & { path: string } => {\n  return {\n    path: `/conversations/${encodeURIComponent(input['conversationId'])}/participants/${encodeURIComponent(input['userId'])}`,\n    headers: { 'x-user-key': input['x-user-key'] },\n    query: {  },\n    params: { 'conversationId': input['conversationId'], 'userId': input['userId'] },\n    body: {  },\n  }\n}\n\nexport interface GetParticipantResponse {\n  /**\n   * The user object represents someone interacting with the bot within a specific integration. The same person interacting with a bot in slack and messenger will be represented with two different users.\n   */\n  participant: {\n    /**\n     * Identifier of the [User](#schema_user)\n     */\n    id: string;\n    /**\n     * Name of the [User](#schema_user)\n     */\n    name?: string;\n    /**\n     * Picture url of the [User](#schema_user)\n     */\n    pictureUrl?: string;\n    /**\n     * Custom profile data of the [User](#schema_user) encoded as a string\n     */\n    profile?: string;\n    /**\n     * Creation date of the [User](#schema_user) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [User](#schema_user) in ISO 8601 format\n     */\n    updatedAt: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface ListParticipantsRequestHeaders {\n  \"x-user-key\": string;\n}\n\nexport interface ListParticipantsRequestQuery {\n  nextToken?: string;\n}\n\nexport interface ListParticipantsRequestParams {\n  conversationId: string;\n}\n\nexport interface ListParticipantsRequestBody {}\n\nexport type ListParticipantsInput = ListParticipantsRequestBody & ListParticipantsRequestHeaders & ListParticipantsRequestQuery & ListParticipantsRequestParams\n\nexport type ListParticipantsRequest = {\n  headers: ListParticipantsRequestHeaders;\n  query: ListParticipantsRequestQuery;\n  params: ListParticipantsRequestParams;\n  body: ListParticipantsRequestBody;\n}\n\nexport const parseReq = (input: ListParticipantsInput): ListParticipantsRequest & { path: string } => {\n  return {\n    path: `/conversations/${encodeURIComponent(input['conversationId'])}/participants`,\n    headers: { 'x-user-key': input['x-user-key'] },\n    query: { 'nextToken': input['nextToken'] },\n    params: { 'conversationId': input['conversationId'] },\n    body: {  },\n  }\n}\n\nexport interface ListParticipantsResponse {\n  participants: {\n    /**\n     * Identifier of the [User](#schema_user)\n     */\n    id: string;\n    /**\n     * Name of the [User](#schema_user)\n     */\n    name?: string;\n    /**\n     * Picture url of the [User](#schema_user)\n     */\n    pictureUrl?: string;\n    /**\n     * Custom profile data of the [User](#schema_user) encoded as a string\n     */\n    profile?: string;\n    /**\n     * Creation date of the [User](#schema_user) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [User](#schema_user) in ISO 8601 format\n     */\n    updatedAt: string;\n  }[];\n  meta: {\n    /**\n     * The token to use to retrieve the next page of results, passed as a query string parameter (value should be URL-encoded) to this API endpoint.\n     */\n    nextToken?: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetMessageRequestHeaders {\n  \"x-user-key\": string;\n}\n\nexport interface GetMessageRequestQuery {}\n\nexport interface GetMessageRequestParams {\n  id: string;\n}\n\nexport interface GetMessageRequestBody {}\n\nexport type GetMessageInput = GetMessageRequestBody & GetMessageRequestHeaders & GetMessageRequestQuery & GetMessageRequestParams\n\nexport type GetMessageRequest = {\n  headers: GetMessageRequestHeaders;\n  query: GetMessageRequestQuery;\n  params: GetMessageRequestParams;\n  body: GetMessageRequestBody;\n}\n\nexport const parseReq = (input: GetMessageInput): GetMessageRequest & { path: string } => {\n  return {\n    path: `/messages/${encodeURIComponent(input['id'])}`,\n    headers: { 'x-user-key': input['x-user-key'] },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetMessageResponse {\n  /**\n   * The Message object represents a message in a [Conversation](#schema_conversation) for a specific [User](#schema_user).\n   */\n  message: {\n    /**\n     * Identifier of the [Message](#schema_message)\n     */\n    id: string;\n    /**\n     * Creation date of the [Message](#schema_message) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Payload is the content type of the message.\n     */\n    payload:\n      | {\n          type: \"audio\";\n          audioUrl: string;\n          [k: string]: any;\n        }\n      | {\n          type: \"card\";\n          title: string;\n          subtitle?: string;\n          imageUrl?: string;\n          actions: {\n            action: \"postback\" | \"url\" | \"say\";\n            label: string;\n            value: string;\n            [k: string]: any;\n          }[];\n          [k: string]: any;\n        }\n      | {\n          type: \"carousel\";\n          items: {\n            type: \"card\";\n            title: string;\n            subtitle?: string;\n            imageUrl?: string;\n            actions: {\n              action: \"postback\" | \"url\" | \"say\";\n              label: string;\n              value: string;\n              [k: string]: any;\n            }[];\n            [k: string]: any;\n          }[];\n          [k: string]: any;\n        }\n      | {\n          text: string;\n          options: {\n            label: string;\n            value: string;\n            [k: string]: any;\n          }[];\n          type: \"choice\";\n          [k: string]: any;\n        }\n      | {\n          text: string;\n          options: {\n            label: string;\n            value: string;\n            [k: string]: any;\n          }[];\n          type: \"dropdown\";\n          [k: string]: any;\n        }\n      | {\n          type: \"file\";\n          fileUrl: string;\n          title?: string;\n          [k: string]: any;\n        }\n      | {\n          type: \"image\";\n          imageUrl: string;\n          [k: string]: any;\n        }\n      | {\n          type: \"location\";\n          latitude: number;\n          longitude: number;\n          address?: string;\n          title?: string;\n          [k: string]: any;\n        }\n      | {\n          type: \"text\";\n          text: string;\n          [k: string]: any;\n        }\n      | {\n          type: \"video\";\n          videoUrl: string;\n          [k: string]: any;\n        }\n      | {\n          type: \"markdown\";\n          markdown: string;\n          [k: string]: any;\n        }\n      | {\n          type: \"bloc\";\n          items: (\n            | {\n                type: \"text\";\n                text: string;\n                [k: string]: any;\n              }\n            | {\n                type: \"markdown\";\n                markdown: string;\n                [k: string]: any;\n              }\n            | {\n                type: \"image\";\n                imageUrl: string;\n                [k: string]: any;\n              }\n            | {\n                type: \"audio\";\n                audioUrl: string;\n                [k: string]: any;\n              }\n            | {\n                type: \"video\";\n                videoUrl: string;\n                [k: string]: any;\n              }\n            | {\n                type: \"file\";\n                fileUrl: string;\n                title?: string;\n                [k: string]: any;\n              }\n            | {\n                type: \"location\";\n                latitude: number;\n                longitude: number;\n                address?: string;\n                title?: string;\n                [k: string]: any;\n              }\n          )[];\n          [k: string]: any;\n        };\n    /**\n     * ID of the [User](#schema_user)\n     */\n    userId: string;\n    /**\n     * ID of the [Conversation](#schema_conversation)\n     */\n    conversationId: string;\n    /**\n     * Metadata of the message\n     */\n    metadata?: {\n      [k: string]: any;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateMessageRequestHeaders {\n  \"x-user-key\": string;\n}\n\nexport interface CreateMessageRequestQuery {}\n\nexport interface CreateMessageRequestParams {}\n\nexport interface CreateMessageRequestBody {\n  /**\n   * Payload is the content type of the message.\n   */\n  payload:\n    | {\n        type: \"audio\";\n        audioUrl: string;\n        [k: string]: any;\n      }\n    | {\n        type: \"card\";\n        title: string;\n        subtitle?: string;\n        imageUrl?: string;\n        actions: {\n          action: \"postback\" | \"url\" | \"say\";\n          label: string;\n          value: string;\n          [k: string]: any;\n        }[];\n        [k: string]: any;\n      }\n    | {\n        type: \"carousel\";\n        items: {\n          type: \"card\";\n          title: string;\n          subtitle?: string;\n          imageUrl?: string;\n          actions: {\n            action: \"postback\" | \"url\" | \"say\";\n            label: string;\n            value: string;\n            [k: string]: any;\n          }[];\n          [k: string]: any;\n        }[];\n        [k: string]: any;\n      }\n    | {\n        text: string;\n        options: {\n          label: string;\n          value: string;\n          [k: string]: any;\n        }[];\n        type: \"choice\";\n        [k: string]: any;\n      }\n    | {\n        text: string;\n        options: {\n          label: string;\n          value: string;\n          [k: string]: any;\n        }[];\n        type: \"dropdown\";\n        [k: string]: any;\n      }\n    | {\n        type: \"file\";\n        fileUrl: string;\n        title?: string;\n        [k: string]: any;\n      }\n    | {\n        type: \"image\";\n        imageUrl: string;\n        [k: string]: any;\n      }\n    | {\n        type: \"location\";\n        latitude: number;\n        longitude: number;\n        address?: string;\n        title?: string;\n        [k: string]: any;\n      }\n    | {\n        type: \"text\";\n        text: string;\n        [k: string]: any;\n      }\n    | {\n        type: \"video\";\n        videoUrl: string;\n        [k: string]: any;\n      }\n    | {\n        type: \"markdown\";\n        markdown: string;\n        [k: string]: any;\n      }\n    | {\n        type: \"bloc\";\n        items: (\n          | {\n              type: \"text\";\n              text: string;\n              [k: string]: any;\n            }\n          | {\n              type: \"markdown\";\n              markdown: string;\n              [k: string]: any;\n            }\n          | {\n              type: \"image\";\n              imageUrl: string;\n              [k: string]: any;\n            }\n          | {\n              type: \"audio\";\n              audioUrl: string;\n              [k: string]: any;\n            }\n          | {\n              type: \"video\";\n              videoUrl: string;\n              [k: string]: any;\n            }\n          | {\n              type: \"file\";\n              fileUrl: string;\n              title?: string;\n              [k: string]: any;\n            }\n          | {\n              type: \"location\";\n              latitude: number;\n              longitude: number;\n              address?: string;\n              title?: string;\n              [k: string]: any;\n            }\n        )[];\n        [k: string]: any;\n      };\n  /**\n   * ID of the [Conversation](#schema_conversation)\n   */\n  conversationId: string;\n  /**\n   * Metadata of the message\n   */\n  metadata?: {\n    [k: string]: any;\n  };\n}\n\nexport type CreateMessageInput = CreateMessageRequestBody & CreateMessageRequestHeaders & CreateMessageRequestQuery & CreateMessageRequestParams\n\nexport type CreateMessageRequest = {\n  headers: CreateMessageRequestHeaders;\n  query: CreateMessageRequestQuery;\n  params: CreateMessageRequestParams;\n  body: CreateMessageRequestBody;\n}\n\nexport const parseReq = (input: CreateMessageInput): CreateMessageRequest & { path: string } => {\n  return {\n    path: `/messages`,\n    headers: { 'x-user-key': input['x-user-key'] },\n    query: {  },\n    params: {  },\n    body: { 'payload': input['payload'], 'conversationId': input['conversationId'], 'metadata': input['metadata'] },\n  }\n}\n\nexport interface CreateMessageResponse {\n  /**\n   * The Message object represents a message in a [Conversation](#schema_conversation) for a specific [User](#schema_user).\n   */\n  message: {\n    /**\n     * Identifier of the [Message](#schema_message)\n     */\n    id: string;\n    /**\n     * Creation date of the [Message](#schema_message) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Payload is the content type of the message.\n     */\n    payload:\n      | {\n          type: \"audio\";\n          audioUrl: string;\n          [k: string]: any;\n        }\n      | {\n          type: \"card\";\n          title: string;\n          subtitle?: string;\n          imageUrl?: string;\n          actions: {\n            action: \"postback\" | \"url\" | \"say\";\n            label: string;\n            value: string;\n            [k: string]: any;\n          }[];\n          [k: string]: any;\n        }\n      | {\n          type: \"carousel\";\n          items: {\n            type: \"card\";\n            title: string;\n            subtitle?: string;\n            imageUrl?: string;\n            actions: {\n              action: \"postback\" | \"url\" | \"say\";\n              label: string;\n              value: string;\n              [k: string]: any;\n            }[];\n            [k: string]: any;\n          }[];\n          [k: string]: any;\n        }\n      | {\n          text: string;\n          options: {\n            label: string;\n            value: string;\n            [k: string]: any;\n          }[];\n          type: \"choice\";\n          [k: string]: any;\n        }\n      | {\n          text: string;\n          options: {\n            label: string;\n            value: string;\n            [k: string]: any;\n          }[];\n          type: \"dropdown\";\n          [k: string]: any;\n        }\n      | {\n          type: \"file\";\n          fileUrl: string;\n          title?: string;\n          [k: string]: any;\n        }\n      | {\n          type: \"image\";\n          imageUrl: string;\n          [k: string]: any;\n        }\n      | {\n          type: \"location\";\n          latitude: number;\n          longitude: number;\n          address?: string;\n          title?: string;\n          [k: string]: any;\n        }\n      | {\n          type: \"text\";\n          text: string;\n          [k: string]: any;\n        }\n      | {\n          type: \"video\";\n          videoUrl: string;\n          [k: string]: any;\n        }\n      | {\n          type: \"markdown\";\n          markdown: string;\n          [k: string]: any;\n        }\n      | {\n          type: \"bloc\";\n          items: (\n            | {\n                type: \"text\";\n                text: string;\n                [k: string]: any;\n              }\n            | {\n                type: \"markdown\";\n                markdown: string;\n                [k: string]: any;\n              }\n            | {\n                type: \"image\";\n                imageUrl: string;\n                [k: string]: any;\n              }\n            | {\n                type: \"audio\";\n                audioUrl: string;\n                [k: string]: any;\n              }\n            | {\n                type: \"video\";\n                videoUrl: string;\n                [k: string]: any;\n              }\n            | {\n                type: \"file\";\n                fileUrl: string;\n                title?: string;\n                [k: string]: any;\n              }\n            | {\n                type: \"location\";\n                latitude: number;\n                longitude: number;\n                address?: string;\n                title?: string;\n                [k: string]: any;\n              }\n          )[];\n          [k: string]: any;\n        };\n    /**\n     * ID of the [User](#schema_user)\n     */\n    userId: string;\n    /**\n     * ID of the [Conversation](#schema_conversation)\n     */\n    conversationId: string;\n    /**\n     * Metadata of the message\n     */\n    metadata?: {\n      [k: string]: any;\n    };\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteMessageRequestHeaders {\n  \"x-user-key\": string;\n}\n\nexport interface DeleteMessageRequestQuery {}\n\nexport interface DeleteMessageRequestParams {\n  id: string;\n}\n\nexport interface DeleteMessageRequestBody {}\n\nexport type DeleteMessageInput = DeleteMessageRequestBody & DeleteMessageRequestHeaders & DeleteMessageRequestQuery & DeleteMessageRequestParams\n\nexport type DeleteMessageRequest = {\n  headers: DeleteMessageRequestHeaders;\n  query: DeleteMessageRequestQuery;\n  params: DeleteMessageRequestParams;\n  body: DeleteMessageRequestBody;\n}\n\nexport const parseReq = (input: DeleteMessageInput): DeleteMessageRequest & { path: string } => {\n  return {\n    path: `/messages/${encodeURIComponent(input['id'])}`,\n    headers: { 'x-user-key': input['x-user-key'] },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface DeleteMessageResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetUserRequestHeaders {\n  \"x-user-key\": string;\n}\n\nexport interface GetUserRequestQuery {}\n\nexport interface GetUserRequestParams {}\n\nexport interface GetUserRequestBody {}\n\nexport type GetUserInput = GetUserRequestBody & GetUserRequestHeaders & GetUserRequestQuery & GetUserRequestParams\n\nexport type GetUserRequest = {\n  headers: GetUserRequestHeaders;\n  query: GetUserRequestQuery;\n  params: GetUserRequestParams;\n  body: GetUserRequestBody;\n}\n\nexport const parseReq = (input: GetUserInput): GetUserRequest & { path: string } => {\n  return {\n    path: `/users/me`,\n    headers: { 'x-user-key': input['x-user-key'] },\n    query: {  },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface GetUserResponse {\n  /**\n   * The user object represents someone interacting with the bot within a specific integration. The same person interacting with a bot in slack and messenger will be represented with two different users.\n   */\n  user: {\n    /**\n     * Identifier of the [User](#schema_user)\n     */\n    id: string;\n    /**\n     * Name of the [User](#schema_user)\n     */\n    name?: string;\n    /**\n     * Picture url of the [User](#schema_user)\n     */\n    pictureUrl?: string;\n    /**\n     * Custom profile data of the [User](#schema_user) encoded as a string\n     */\n    profile?: string;\n    /**\n     * Creation date of the [User](#schema_user) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [User](#schema_user) in ISO 8601 format\n     */\n    updatedAt: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateUserRequestHeaders {}\n\nexport interface CreateUserRequestQuery {}\n\nexport interface CreateUserRequestParams {}\n\nexport interface CreateUserRequestBody {\n  /**\n   * Name of the [User](#schema_user) (not a unique identifier)\n   */\n  name?: string;\n  /**\n   * Picture url of the [User](#schema_user)\n   */\n  pictureUrl?: string;\n  /**\n   * Custom profile data of the [User](#schema_user) encoded as a string\n   */\n  profile?: string;\n  /**\n   * Identifier of the [User](#schema_user)\n   */\n  id?: string;\n}\n\nexport type CreateUserInput = CreateUserRequestBody & CreateUserRequestHeaders & CreateUserRequestQuery & CreateUserRequestParams\n\nexport type CreateUserRequest = {\n  headers: CreateUserRequestHeaders;\n  query: CreateUserRequestQuery;\n  params: CreateUserRequestParams;\n  body: CreateUserRequestBody;\n}\n\nexport const parseReq = (input: CreateUserInput): CreateUserRequest & { path: string } => {\n  return {\n    path: `/users`,\n    headers: {  },\n    query: {  },\n    params: {  },\n    body: { 'name': input['name'], 'pictureUrl': input['pictureUrl'], 'profile': input['profile'], 'id': input['id'] },\n  }\n}\n\nexport interface CreateUserResponse {\n  /**\n   * The user object represents someone interacting with the bot within a specific integration. The same person interacting with a bot in slack and messenger will be represented with two different users.\n   */\n  user: {\n    /**\n     * Identifier of the [User](#schema_user)\n     */\n    id: string;\n    /**\n     * Name of the [User](#schema_user)\n     */\n    name?: string;\n    /**\n     * Picture url of the [User](#schema_user)\n     */\n    pictureUrl?: string;\n    /**\n     * Custom profile data of the [User](#schema_user) encoded as a string\n     */\n    profile?: string;\n    /**\n     * Creation date of the [User](#schema_user) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [User](#schema_user) in ISO 8601 format\n     */\n    updatedAt: string;\n  };\n  key: string;\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetOrCreateUserRequestHeaders {\n  \"x-user-key\": string;\n}\n\nexport interface GetOrCreateUserRequestQuery {}\n\nexport interface GetOrCreateUserRequestParams {}\n\nexport interface GetOrCreateUserRequestBody {\n  /**\n   * Name of the [User](#schema_user) (not a unique identifier)\n   */\n  name?: string;\n  /**\n   * Picture url of the [User](#schema_user)\n   */\n  pictureUrl?: string;\n  /**\n   * Custom profile data of the [User](#schema_user) encoded as a string\n   */\n  profile?: string;\n}\n\nexport type GetOrCreateUserInput = GetOrCreateUserRequestBody & GetOrCreateUserRequestHeaders & GetOrCreateUserRequestQuery & GetOrCreateUserRequestParams\n\nexport type GetOrCreateUserRequest = {\n  headers: GetOrCreateUserRequestHeaders;\n  query: GetOrCreateUserRequestQuery;\n  params: GetOrCreateUserRequestParams;\n  body: GetOrCreateUserRequestBody;\n}\n\nexport const parseReq = (input: GetOrCreateUserInput): GetOrCreateUserRequest & { path: string } => {\n  return {\n    path: `/users/get-or-create`,\n    headers: { 'x-user-key': input['x-user-key'] },\n    query: {  },\n    params: {  },\n    body: { 'name': input['name'], 'pictureUrl': input['pictureUrl'], 'profile': input['profile'] },\n  }\n}\n\nexport interface GetOrCreateUserResponse {\n  /**\n   * The user object represents someone interacting with the bot within a specific integration. The same person interacting with a bot in slack and messenger will be represented with two different users.\n   */\n  user: {\n    /**\n     * Identifier of the [User](#schema_user)\n     */\n    id: string;\n    /**\n     * Name of the [User](#schema_user)\n     */\n    name?: string;\n    /**\n     * Picture url of the [User](#schema_user)\n     */\n    pictureUrl?: string;\n    /**\n     * Custom profile data of the [User](#schema_user) encoded as a string\n     */\n    profile?: string;\n    /**\n     * Creation date of the [User](#schema_user) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [User](#schema_user) in ISO 8601 format\n     */\n    updatedAt: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface UpdateUserRequestHeaders {\n  \"x-user-key\": string;\n}\n\nexport interface UpdateUserRequestQuery {}\n\nexport interface UpdateUserRequestParams {}\n\nexport interface UpdateUserRequestBody {\n  /**\n   * Name of the [User](#schema_user) (not a unique identifier)\n   */\n  name?: string;\n  /**\n   * Picture url of the [User](#schema_user)\n   */\n  pictureUrl?: string;\n  /**\n   * Custom profile data of the [User](#schema_user) encoded as a string\n   */\n  profile?: string;\n}\n\nexport type UpdateUserInput = UpdateUserRequestBody & UpdateUserRequestHeaders & UpdateUserRequestQuery & UpdateUserRequestParams\n\nexport type UpdateUserRequest = {\n  headers: UpdateUserRequestHeaders;\n  query: UpdateUserRequestQuery;\n  params: UpdateUserRequestParams;\n  body: UpdateUserRequestBody;\n}\n\nexport const parseReq = (input: UpdateUserInput): UpdateUserRequest & { path: string } => {\n  return {\n    path: `/users/me`,\n    headers: { 'x-user-key': input['x-user-key'] },\n    query: {  },\n    params: {  },\n    body: { 'name': input['name'], 'pictureUrl': input['pictureUrl'], 'profile': input['profile'] },\n  }\n}\n\nexport interface UpdateUserResponse {\n  /**\n   * The user object represents someone interacting with the bot within a specific integration. The same person interacting with a bot in slack and messenger will be represented with two different users.\n   */\n  user: {\n    /**\n     * Identifier of the [User](#schema_user)\n     */\n    id: string;\n    /**\n     * Name of the [User](#schema_user)\n     */\n    name?: string;\n    /**\n     * Picture url of the [User](#schema_user)\n     */\n    pictureUrl?: string;\n    /**\n     * Custom profile data of the [User](#schema_user) encoded as a string\n     */\n    profile?: string;\n    /**\n     * Creation date of the [User](#schema_user) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Updating date of the [User](#schema_user) in ISO 8601 format\n     */\n    updatedAt: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface DeleteUserRequestHeaders {\n  \"x-user-key\": string;\n}\n\nexport interface DeleteUserRequestQuery {}\n\nexport interface DeleteUserRequestParams {}\n\nexport interface DeleteUserRequestBody {}\n\nexport type DeleteUserInput = DeleteUserRequestBody & DeleteUserRequestHeaders & DeleteUserRequestQuery & DeleteUserRequestParams\n\nexport type DeleteUserRequest = {\n  headers: DeleteUserRequestHeaders;\n  query: DeleteUserRequestQuery;\n  params: DeleteUserRequestParams;\n  body: DeleteUserRequestBody;\n}\n\nexport const parseReq = (input: DeleteUserInput): DeleteUserRequest & { path: string } => {\n  return {\n    path: `/users/me`,\n    headers: { 'x-user-key': input['x-user-key'] },\n    query: {  },\n    params: {  },\n    body: {  },\n  }\n}\n\nexport interface DeleteUserResponse {}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface GetEventRequestHeaders {\n  \"x-user-key\": string;\n}\n\nexport interface GetEventRequestQuery {}\n\nexport interface GetEventRequestParams {\n  id: string;\n}\n\nexport interface GetEventRequestBody {}\n\nexport type GetEventInput = GetEventRequestBody & GetEventRequestHeaders & GetEventRequestQuery & GetEventRequestParams\n\nexport type GetEventRequest = {\n  headers: GetEventRequestHeaders;\n  query: GetEventRequestQuery;\n  params: GetEventRequestParams;\n  body: GetEventRequestBody;\n}\n\nexport const parseReq = (input: GetEventInput): GetEventRequest & { path: string } => {\n  return {\n    path: `/events/${encodeURIComponent(input['id'])}`,\n    headers: { 'x-user-key': input['x-user-key'] },\n    query: {  },\n    params: { 'id': input['id'] },\n    body: {  },\n  }\n}\n\nexport interface GetEventResponse {\n  event: {\n    /**\n     * ID of the custom [Event](#schema_event).\n     */\n    id: string;\n    /**\n     * Creation date of the custom [Event](#schema_event) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Payload is the content of the custom event.\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * ID of the [Conversation](#schema_conversation).\n     */\n    conversationId: string;\n    /**\n     * ID of the [User](#schema_user).\n     */\n    userId: string;\n  };\n}\n\n", "// this file was automatically generated, do not edit\n/* eslint-disable */\n\nexport interface CreateEventRequestHeaders {\n  \"x-user-key\": string;\n}\n\nexport interface CreateEventRequestQuery {}\n\nexport interface CreateEventRequestParams {}\n\nexport interface CreateEventRequestBody {\n  /**\n   * Payload is the content of the custom event.\n   */\n  payload: {\n    [k: string]: any;\n  };\n  /**\n   * ID of the [Conversation](#schema_conversation)\n   */\n  conversationId: string;\n}\n\nexport type CreateEventInput = CreateEventRequestBody & CreateEventRequestHeaders & CreateEventRequestQuery & CreateEventRequestParams\n\nexport type CreateEventRequest = {\n  headers: CreateEventRequestHeaders;\n  query: CreateEventRequestQuery;\n  params: CreateEventRequestParams;\n  body: CreateEventRequestBody;\n}\n\nexport const parseReq = (input: CreateEventInput): CreateEventRequest & { path: string } => {\n  return {\n    path: `/events`,\n    headers: { 'x-user-key': input['x-user-key'] },\n    query: {  },\n    params: {  },\n    body: { 'payload': input['payload'], 'conversationId': input['conversationId'] },\n  }\n}\n\nexport interface CreateEventResponse {\n  event: {\n    /**\n     * ID of the custom [Event](#schema_event).\n     */\n    id: string;\n    /**\n     * Creation date of the custom [Event](#schema_event) in ISO 8601 format\n     */\n    createdAt: string;\n    /**\n     * Payload is the content of the custom event.\n     */\n    payload: {\n      [k: string]: any;\n    };\n    /**\n     * ID of the [Conversation](#schema_conversation).\n     */\n    conversationId: string;\n    /**\n     * ID of the [User](#schema_user).\n     */\n    userId: string;\n  };\n}\n\n", "import { isBrowser } from 'browser-or-node'\nimport type * as jwt from 'jsonwebtoken'\n\nconst requireJwt = (): typeof jwt => require('jsonwebtoken')\nconst packageModule = isBrowser ? null : requireJwt()\nexport default packageModule\n", "export type PageLister<R> = (t: { nextToken?: string }) => Promise<{ items: R[]; meta: { nextToken?: string } }>\nexport class AsyncCollection<T> {\n  public constructor(private _list: PageLister<T>) {}\n\n  public async *[Symbol.asyncIterator]() {\n    let nextToken: string | undefined\n    do {\n      const { items, meta } = await this._list({ nextToken })\n      nextToken = meta.nextToken\n      for (const item of items) {\n        yield item\n      }\n    } while (nextToken)\n  }\n\n  public async collect(props: { limit?: number } = {}) {\n    const limit = props.limit ?? Number.POSITIVE_INFINITY\n    const arr: T[] = []\n    let count = 0\n    for await (const item of this) {\n      arr.push(item)\n      count++\n      if (count >= limit) {\n        break\n      }\n    }\n    return arr\n  }\n}\n", "export type ListenStatus = 'keep-listening' | 'stop-listening'\n\nexport class EventEmitter<E extends object> {\n  private _listeners: {\n    [K in keyof E]?: ((event: E[K]) => void)[]\n  } = {}\n\n  public emit<K extends keyof E>(type: K, event: E[K]) {\n    const listeners = this._listeners[type]\n    if (!listeners) {\n      return\n    }\n    for (const listener of [...listeners]) {\n      listener(event)\n    }\n  }\n\n  public onceOrMore<K extends keyof E>(type: K, listener: (event: E[K]) => ListenStatus) {\n    const wrapped = (event: E[K]) => {\n      const status = listener(event)\n      if (status === 'stop-listening') {\n        this.off(type, wrapped)\n      }\n    }\n    this.on(type, wrapped)\n  }\n\n  public once<K extends keyof E>(type: K, listener: (event: E[K]) => void) {\n    const wrapped = (event: E[K]) => {\n      this.off(type, wrapped)\n      listener(event)\n    }\n    this.on(type, wrapped)\n  }\n\n  public on<K extends keyof E>(type: K, listener: (event: E[K]) => void) {\n    if (!this._listeners[type]) {\n      this._listeners[type] = []\n    }\n    this._listeners[type]!.push(listener)\n  }\n\n  public off<K extends keyof E>(type: K, listener: (event: E[K]) => void) {\n    const listeners = this._listeners[type]\n    if (!listeners) {\n      return\n    }\n    const index = listeners.indexOf(listener)\n    if (index !== -1) {\n      listeners.splice(index, 1)\n    }\n  }\n\n  public cleanup() {\n    this._listeners = {}\n  }\n}\n", "import { isBrowser } from 'browser-or-node'\nimport type EventSourceBrowser from 'event-source-polyfill'\nimport type EventSourceNodeJs from 'eventsource'\nimport { EventEmitter } from './event-emitter'\n\ntype NodeOnOpen = EventSourceNodeJs['onopen']\ntype NodeOnMessage = EventSourceNodeJs['onmessage']\ntype NodeOnError = EventSourceNodeJs['onerror']\n\ntype NodeOpenEvent = Parameters<NodeOnOpen>[0]\ntype NodeMessageEvent = Parameters<NodeOnMessage>[0]\ntype NodeErrorEvent = Parameters<NodeOnError>[0]\n\ntype BrowserOnOpen = NonNullable<EventSourceBrowser.EventSourcePolyfill['onopen']>\ntype BrowserOnMessage = NonNullable<EventSourceBrowser.EventSourcePolyfill['onmessage']>\ntype BrowserOnError = NonNullable<EventSourceBrowser.EventSourcePolyfill['onerror']>\n\ntype BrowserOpenEvent = Parameters<BrowserOnOpen>[0]\ntype BrowserMessageEvent = Parameters<BrowserOnMessage>[0]\ntype BrowserErrorEvent = Parameters<BrowserOnError>[0]\n\nexport type OpenEvent = NodeOpenEvent | BrowserOpenEvent\nexport type MessageEvent = NodeMessageEvent | BrowserMessageEvent\nexport type ErrorEvent = NodeErrorEvent | BrowserErrorEvent\n\nexport type Events = {\n  open: OpenEvent\n  message: MessageEvent\n  error: ErrorEvent\n}\n\nexport type Props = {\n  headers?: Record<string, string>\n}\n\nconst makeEventSource = (url: string, props: Props = {}) => {\n  if (isBrowser) {\n    const module: typeof EventSourceBrowser = require('event-source-polyfill')\n    const ctor = module.EventSourcePolyfill\n    const source = new ctor(url, { headers: props.headers })\n    const emitter = new EventEmitter<Events>()\n    source.onopen = (ev) => emitter.emit('open', ev)\n    source.onmessage = (ev) => emitter.emit('message', ev)\n    source.onerror = (ev) => emitter.emit('error', ev)\n    return {\n      emitter,\n      source,\n    }\n  } else {\n    const module: typeof EventSourceNodeJs = require('eventsource')\n    const source = new module(url, { headers: props.headers })\n    const emitter = new EventEmitter<Events>()\n    source.onopen = (ev) => emitter.emit('open', ev)\n    source.onmessage = (ev) => emitter.emit('message', ev)\n    source.onerror = (ev) => emitter.emit('error', ev)\n    return {\n      emitter,\n      source,\n    }\n  }\n}\n\nexport type EventSourceEmitter = {\n  on: EventEmitter<Events>['on']\n  close: () => void\n}\n\nexport const listenEventSource = async (url: string, props: Props = {}): Promise<EventSourceEmitter> => {\n  const { emitter, source } = makeEventSource(url, props)\n\n  await new Promise<void>((resolve, reject) => {\n    emitter.on('open', () => {\n      resolve()\n    })\n    emitter.on('error', (thrown) => {\n      reject(thrown)\n    })\n  }).finally(() => emitter.cleanup())\n\n  return {\n    on: emitter.on.bind(emitter),\n    close: () => {\n      emitter.cleanup()\n      source.close()\n    },\n  }\n}\n", "import { z } from \"zod\";\n\nexport default z\n  .object({\n    type: z.literal(\"message_created\"),\n    data: z\n      .object({\n        id: z.string().describe(\"Identifier of the [Message](#schema_message)\"),\n        createdAt: z\n          .string()\n          .datetime()\n          .describe(\n            \"Creation date of the [Message](#schema_message) in ISO 8601 format\"\n          ),\n        payload: z\n          .union([\n            z.object({ type: z.literal(\"audio\"), audioUrl: z.string().min(1) }),\n            z.object({\n              type: z.literal(\"card\"),\n              title: z.string().min(1),\n              subtitle: z.string().min(1).optional(),\n              imageUrl: z.string().min(1).optional(),\n              actions: z.array(\n                z.object({\n                  action: z.enum([\"postback\", \"url\", \"say\"]),\n                  label: z.string().min(1),\n                  value: z.string().min(1),\n                })\n              ),\n            }),\n            z.object({\n              type: z.literal(\"carousel\"),\n              items: z.array(\n                z.object({\n                  type: z.literal(\"card\"),\n                  title: z.string().min(1),\n                  subtitle: z.string().min(1).optional(),\n                  imageUrl: z.string().min(1).optional(),\n                  actions: z.array(\n                    z.object({\n                      action: z.enum([\"postback\", \"url\", \"say\"]),\n                      label: z.string().min(1),\n                      value: z.string().min(1),\n                    })\n                  ),\n                })\n              ),\n            }),\n            z.object({\n              text: z.string().min(1),\n              options: z.array(\n                z.object({ label: z.string().min(1), value: z.string().min(1) })\n              ),\n              type: z.literal(\"choice\"),\n            }),\n            z.object({\n              text: z.string().min(1),\n              options: z.array(\n                z.object({ label: z.string().min(1), value: z.string().min(1) })\n              ),\n              type: z.literal(\"dropdown\"),\n            }),\n            z.object({\n              type: z.literal(\"file\"),\n              fileUrl: z.string().min(1),\n              title: z.string().min(1).optional(),\n            }),\n            z.object({ type: z.literal(\"image\"), imageUrl: z.string().min(1) }),\n            z.object({\n              type: z.literal(\"location\"),\n              latitude: z.number(),\n              longitude: z.number(),\n              address: z.string().optional(),\n              title: z.string().optional(),\n            }),\n            z.object({ type: z.literal(\"text\"), text: z.string().min(1) }),\n            z.object({ type: z.literal(\"video\"), videoUrl: z.string().min(1) }),\n            z.object({\n              type: z.literal(\"markdown\"),\n              markdown: z.string().min(1),\n            }),\n            z.object({\n              type: z.literal(\"bloc\"),\n              items: z.array(\n                z.union([\n                  z.object({\n                    type: z.literal(\"text\"),\n                    text: z.string().min(1),\n                  }),\n                  z.object({\n                    type: z.literal(\"markdown\"),\n                    markdown: z.string().min(1),\n                  }),\n                  z.object({\n                    type: z.literal(\"image\"),\n                    imageUrl: z.string().min(1),\n                  }),\n                  z.object({\n                    type: z.literal(\"audio\"),\n                    audioUrl: z.string().min(1),\n                  }),\n                  z.object({\n                    type: z.literal(\"video\"),\n                    videoUrl: z.string().min(1),\n                  }),\n                  z.object({\n                    type: z.literal(\"file\"),\n                    fileUrl: z.string().min(1),\n                    title: z.string().min(1).optional(),\n                  }),\n                  z.object({\n                    type: z.literal(\"location\"),\n                    latitude: z.number(),\n                    longitude: z.number(),\n                    address: z.string().optional(),\n                    title: z.string().optional(),\n                  }),\n                ])\n              ),\n            }),\n          ])\n          .describe(\"Payload is the content type of the message.\"),\n        userId: z.string().describe(\"ID of the [User](#schema_user)\"),\n        conversationId: z\n          .string()\n          .describe(\"ID of the [Conversation](#schema_conversation)\"),\n        metadata: z\n          .record(z.union([z.any(), z.null()]))\n          .describe(\"Metadata of the message\")\n          .optional(),\n        isBot: z\n          .boolean()\n          .describe(\"Whether the message was created by the bot or not\"),\n      })\n      ,\n  })\n  ;\n", "import { z } from \"zod\";\n\nexport default z\n  .object({\n    type: z.literal(\"event_created\"),\n    data: z\n      .object({\n        createdAt: z\n          .string()\n          .datetime()\n          .describe(\n            \"Creation date of the custom [Event](#schema_event) in ISO 8601 format\"\n          ),\n        payload: z\n          .record(z.any())\n          .describe(\"Payload is the content of the custom event.\"),\n        conversationId: z\n          .string()\n          .describe(\"ID of the [Conversation](#schema_conversation).\"),\n        userId: z.string().describe(\"ID of the [User](#schema_user).\"),\n        id: z.union([z.string(), z.null()]),\n        isBot: z\n          .boolean()\n          .describe(\"Whether the event was created by the bot or not\"),\n      })\n      ,\n  })\n  ;\n", "import { z } from \"zod\";\n\nexport default z\n  .object({\n    type: z.literal(\"participant_added\"),\n    data: z\n      .object({ conversationId: z.string(), participantId: z.string() })\n      ,\n  })\n  ;\n", "import { z } from \"zod\";\n\nexport default z\n  .object({\n    type: z.literal(\"participant_removed\"),\n    data: z\n      .object({ conversationId: z.string(), participantId: z.string() })\n      ,\n  })\n  ;\n", "import { z } from \"zod\";\n\nexport default z\n  .object({\n    type: z.literal(\"message_deleted\"),\n    data: z\n      .object({\n        id: z.string(),\n        conversationId: z.string(),\n        userId: z.string(),\n      })\n      ,\n  })\n  ;\n", "import json_messageCreated from './messageCreated.j'\nimport json_eventCreated from './eventCreated.j'\nimport json_participantAdded from './participantAdded.j'\nimport json_participantRemoved from './participantRemoved.j'\nimport json_messageDeleted from './messageDeleted.j'\nimport zod_messageCreated from './messageCreated.z'\nimport zod_eventCreated from './eventCreated.z'\nimport zod_participantAdded from './participantAdded.z'\nimport zod_participantRemoved from './participantRemoved.z'\nimport zod_messageDeleted from './messageDeleted.z'\nimport type { MessageCreated } from './messageCreated.t'\nimport type { EventCreated } from './eventCreated.t'\nimport type { ParticipantAdded } from './participantAdded.t'\nimport type { ParticipantRemoved } from './participantRemoved.t'\nimport type { MessageDeleted } from './messageDeleted.t'\n\nexport const json = {\n  messageCreated: json_messageCreated,\n  eventCreated: json_eventCreated,\n  participantAdded: json_participantAdded,\n  participantRemoved: json_participantRemoved,\n  messageDeleted: json_messageDeleted,\n}\n\nexport const zod = {\n  messageCreated: zod_messageCreated,\n  eventCreated: zod_eventCreated,\n  participantAdded: zod_participantAdded,\n  participantRemoved: zod_participantRemoved,\n  messageDeleted: zod_messageDeleted,\n}\n\nexport type Types = {\n  messageCreated: MessageCreated\n  eventCreated: EventCreated\n  participantAdded: ParticipantAdded\n  participantRemoved: ParticipantRemoved\n  messageDeleted: MessageDeleted\n}", "export class WatchDog {\n  private _listeners: ((error: Error) => void)[] = []\n  private _handle: ReturnType<typeof setTimeout> | null = null\n\n  private constructor(private _ms: number) {}\n\n  public static init = (ms: number): WatchDog => {\n    const inst = new WatchDog(ms)\n    inst.reset()\n    return inst\n  }\n\n  public reset() {\n    if (this._handle) {\n      clearTimeout(this._handle)\n    }\n    this._handle = setTimeout(() => {\n      this._emitError(new Error('Client connection timed out'))\n    }, this._ms)\n  }\n\n  public on(_type: 'error', listener: (error: Error) => void) {\n    this._listeners.push(listener)\n  }\n\n  public close() {\n    if (this._handle) {\n      clearTimeout(this._handle)\n    }\n    this._listeners = []\n  }\n\n  private _emitError(error: Error) {\n    for (const listener of this._listeners) {\n      listener(error)\n    }\n  }\n}\n", "import { EventEmitter } from './event-emitter'\nimport { listenEventSource, EventSourceEmitter, MessageEvent, ErrorEvent } from './eventsource'\nimport { zod as signals, Types } from './gen/signals'\nimport { WatchDog } from './watchdog'\n\nconst CONNECTION_TIMEOUT = 60_000\nconst DEFAULT_ERROR_MESSAGE = 'unknown error'\n\ntype ValueOf<T> = T[keyof T]\n\ntype _Signals = Types & {\n  unknown: {\n    type: 'unknown'\n    data: unknown\n  }\n}\n\ntype SignalListenerState =\n  | {\n      status: 'disconnected'\n    }\n  | {\n      status: 'connecting'\n      connectionPromise: Promise<EventSourceEmitter>\n    }\n  | {\n      status: 'connected'\n      source: EventSourceEmitter\n      watchdog: WatchDog\n    }\n\nexport type Signals = {\n  [K in keyof _Signals as _Signals[K]['type']]: _Signals[K]['data']\n}\n\ntype Events = Signals & {\n  error: Error\n}\n\nexport type SignalListenerStatus = SignalListenerState['status']\n\nexport type SignalListenerProps = {\n  url: string\n  userKey: string\n  conversationId: string\n  debug: boolean\n}\n\nexport class SignalListener extends EventEmitter<Events> {\n  private _state: SignalListenerState = { status: 'disconnected' }\n\n  private constructor(private _props: SignalListenerProps) {\n    super()\n  }\n\n  public static listen = async (props: SignalListenerProps): Promise<SignalListener> => {\n    const inst = new SignalListener(props)\n    await inst.connect()\n    return inst\n  }\n\n  public get status(): SignalListenerStatus {\n    return this._state.status\n  }\n\n  public readonly connect = async (): Promise<void> => {\n    if (this._state.status === 'connected') {\n      return\n    }\n\n    if (this._state.status === 'connecting') {\n      await this._state.connectionPromise\n      return\n    }\n\n    const connectionPromise = this._connect()\n\n    this._state = { status: 'connecting', connectionPromise }\n\n    await connectionPromise\n  }\n\n  public readonly disconnect = async (): Promise<void> => {\n    if (this._state.status === 'disconnected') {\n      return\n    }\n\n    let source: EventSourceEmitter\n    let watchdog: WatchDog | undefined\n    if (this._state.status === 'connecting') {\n      source = await this._state.connectionPromise\n    } else {\n      source = this._state.source\n      watchdog = this._state.watchdog\n    }\n\n    this._disconnectSync(source, watchdog)\n  }\n\n  private _connect = async (): Promise<EventSourceEmitter> => {\n    const source = await listenEventSource(`${this._props.url}/conversations/${this._props.conversationId}/listen`, {\n      headers: { 'x-user-key': this._props.userKey },\n    })\n\n    const watchdog = WatchDog.init(CONNECTION_TIMEOUT)\n\n    source.on('message', this._handleMessage(source, watchdog))\n    source.on('error', this._handleError(source, watchdog))\n    watchdog.on('error', this._handleError(source, watchdog))\n\n    this._state = { status: 'connected', source, watchdog }\n    return source\n  }\n\n  private _disconnectSync = (source: EventSourceEmitter, watchdog?: WatchDog): void => {\n    source.close()\n    watchdog?.close()\n    this._state = { status: 'disconnected' }\n  }\n\n  private _handleMessage = (_source: EventSourceEmitter, watchdog: WatchDog) => (ev: MessageEvent) => {\n    watchdog.reset()\n    const signal = this._parseSignal(ev.data)\n    this.emit(signal.type, signal.data)\n  }\n\n  private _handleError = (source: EventSourceEmitter, watchdog: WatchDog) => (ev: ErrorEvent | Error) => {\n    this._disconnectSync(source, watchdog)\n    const err = this._toError(ev)\n    this.emit('error', err)\n  }\n\n  private _parseSignal = (data: unknown): ValueOf<_Signals> => {\n    for (const [schemaName, schema] of Object.entries(signals)) {\n      this._debug('trying to parse', schemaName)\n      const parsedData = this._safeJsonParse(data)\n      const parseResult = schema.safeParse(parsedData)\n      if (parseResult.success) {\n        this._debug('parsing successfull', schemaName, parseResult.data)\n        return parseResult.data\n      }\n    }\n    return {\n      type: 'unknown',\n      data,\n    }\n  }\n\n  private _safeJsonParse = (x: any) => {\n    try {\n      return JSON.parse(x)\n    } catch {\n      return x\n    }\n  }\n\n  private _toError = (thrown: unknown): Error => {\n    if (thrown instanceof Error) {\n      return thrown\n    }\n    if (typeof thrown === 'string') {\n      return new Error(thrown)\n    }\n    if (thrown === null) {\n      return new Error(DEFAULT_ERROR_MESSAGE)\n    }\n    if (typeof thrown === 'object' && 'message' in thrown) {\n      return this._toError(thrown.message)\n    }\n    try {\n      const json = JSON.stringify(thrown)\n      return new Error(json)\n    } catch {\n      return new Error(DEFAULT_ERROR_MESSAGE)\n    }\n  }\n\n  private _debug = (...args: any[]) => {\n    if (!this._props.debug) {\n      return\n    }\n    console.info(...args)\n  }\n}\n"],
  "mappings": "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",
  "names": ["Client", "axios", "crypto", "axios", "import_axios", "import_browser_or_node", "import_axios", "qs", "parseReq", "parseReq", "parseReq", "parseReq", "parseReq", "parseReq", "parseReq", "parseReq", "parseReq", "parseReq", "parseReq", "parseReq", "parseReq", "parseReq", "parseReq", "parseReq", "parseReq", "parseReq", "parseReq", "parseReq", "parseReq", "axios", "import_browser_or_node", "module", "import_zod", "import_zod", "import_zod", "import_zod", "Client", "user", "userKey", "axios"]
}
