@holocronlab/botruntime-chat 0.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +8 -0
- package/README.md +64 -0
- package/dist/client.d.ts +363 -0
- package/dist/consts.d.ts +1 -0
- package/dist/errors.d.ts +20 -0
- package/dist/event-emitter.d.ts +10 -0
- package/dist/eventsource.d.ts +32 -0
- package/dist/gen/client/errors.d.ts +229 -0
- package/dist/gen/client/index.d.ts +77 -0
- package/dist/gen/client/models.d.ts +212 -0
- package/dist/gen/client/operations/addParticipant.d.ts +55 -0
- package/dist/gen/client/operations/createConversation.d.ts +39 -0
- package/dist/gen/client/operations/createEvent.d.ts +55 -0
- package/dist/gen/client/operations/createMessage.d.ts +294 -0
- package/dist/gen/client/operations/createUser.d.ts +66 -0
- package/dist/gen/client/operations/deleteConversation.d.ts +22 -0
- package/dist/gen/client/operations/deleteMessage.d.ts +22 -0
- package/dist/gen/client/operations/deleteUser.d.ts +21 -0
- package/dist/gen/client/operations/getConversation.d.ts +36 -0
- package/dist/gen/client/operations/getEvent.d.ts +46 -0
- package/dist/gen/client/operations/getMessage.d.ts +167 -0
- package/dist/gen/client/operations/getOrCreateConversation.d.ts +39 -0
- package/dist/gen/client/operations/getOrCreateUser.d.ts +62 -0
- package/dist/gen/client/operations/getParticipant.d.ts +52 -0
- package/dist/gen/client/operations/getUser.d.ts +50 -0
- package/dist/gen/client/operations/listConversations.d.ts +42 -0
- package/dist/gen/client/operations/listMessages.d.ts +171 -0
- package/dist/gen/client/operations/listParticipants.d.ts +55 -0
- package/dist/gen/client/operations/listenConversation.d.ts +22 -0
- package/dist/gen/client/operations/removeParticipant.d.ts +23 -0
- package/dist/gen/client/operations/updateUser.d.ts +62 -0
- package/dist/gen/client/to-axios.d.ts +16 -0
- package/dist/gen/signals/eventCreated.j.d.ts +3 -0
- package/dist/gen/signals/eventCreated.t.d.ts +28 -0
- package/dist/gen/signals/eventCreated.z.d.ts +47 -0
- package/dist/gen/signals/index.d.ts +924 -0
- package/dist/gen/signals/messageCreated.j.d.ts +3 -0
- package/dist/gen/signals/messageCreated.t.d.ts +149 -0
- package/dist/gen/signals/messageCreated.z.d.ts +780 -0
- package/dist/gen/signals/messageDeleted.j.d.ts +3 -0
- package/dist/gen/signals/messageDeleted.t.d.ts +8 -0
- package/dist/gen/signals/messageDeleted.z.d.ts +32 -0
- package/dist/gen/signals/participantAdded.j.d.ts +3 -0
- package/dist/gen/signals/participantAdded.t.d.ts +7 -0
- package/dist/gen/signals/participantAdded.z.d.ts +27 -0
- package/dist/gen/signals/participantRemoved.j.d.ts +3 -0
- package/dist/gen/signals/participantRemoved.t.d.ts +7 -0
- package/dist/gen/signals/participantRemoved.z.d.ts +27 -0
- package/dist/index.cjs +1660 -0
- package/dist/index.cjs.map +7 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.mjs +138836 -0
- package/dist/index.mjs.map +7 -0
- package/dist/jsonwebtoken.d.ts +3 -0
- package/dist/listing.d.ts +16 -0
- package/dist/signal-listener.d.ts +51 -0
- package/dist/types.d.ts +41 -0
- package/dist/watchdog.d.ts +11 -0
- package/package.json +35 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
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"],
|
|
4
|
+
"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"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"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"]
|
|
7
|
+
}
|