@mjquinlan2000/practicepanther-mcp 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/client/core/bodySerializer.gen.ts","../src/client/core/params.gen.ts","../src/client/core/serverSentEvents.gen.ts","../src/client/core/pathSerializer.gen.ts","../src/client/core/utils.gen.ts","../src/client/core/auth.gen.ts","../src/client/client/utils.gen.ts","../src/client/client/client.gen.ts","../src/client/client.gen.ts","../src/pp.ts","../src/server.ts","../src/create-server.ts","../src/client/sdk.gen.ts","../src/client/zod.gen.ts","../src/helpers.ts","../src/tool-handler.ts"],"sourcesContent":["// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { ArrayStyle, ObjectStyle, SerializerOptions } from './pathSerializer.gen.js';\n\nexport type QuerySerializer = (query: Record<string, unknown>) => string;\n\nexport type BodySerializer = (body: unknown) => unknown;\n\ntype QuerySerializerOptionsObject = {\n allowReserved?: boolean;\n array?: Partial<SerializerOptions<ArrayStyle>>;\n object?: Partial<SerializerOptions<ObjectStyle>>;\n};\n\nexport type QuerySerializerOptions = QuerySerializerOptionsObject & {\n /**\n * Per-parameter serialization overrides. When provided, these settings\n * override the global array/object settings for specific parameter names.\n */\n parameters?: Record<string, QuerySerializerOptionsObject>;\n};\n\nconst serializeFormDataPair = (data: FormData, key: string, value: unknown): void => {\n if (typeof value === 'string' || value instanceof Blob) {\n data.append(key, value);\n } else if (value instanceof Date) {\n data.append(key, value.toISOString());\n } else {\n data.append(key, JSON.stringify(value));\n }\n};\n\nconst serializeUrlSearchParamsPair = (data: URLSearchParams, key: string, value: unknown): void => {\n if (typeof value === 'string') {\n data.append(key, value);\n } else {\n data.append(key, JSON.stringify(value));\n }\n};\n\nexport const formDataBodySerializer = {\n bodySerializer: (body: unknown): FormData => {\n const data = new FormData();\n\n Object.entries(body as Record<string, unknown>).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeFormDataPair(data, key, v));\n } else {\n serializeFormDataPair(data, key, value);\n }\n });\n\n return data;\n },\n};\n\nexport const jsonBodySerializer = {\n bodySerializer: (body: unknown): string =>\n JSON.stringify(body, (_key, value) => (typeof value === 'bigint' ? value.toString() : value)),\n};\n\nexport const urlSearchParamsBodySerializer = {\n bodySerializer: (body: unknown): string => {\n const data = new URLSearchParams();\n\n Object.entries(body as Record<string, unknown>).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeUrlSearchParamsPair(data, key, v));\n } else {\n serializeUrlSearchParamsPair(data, key, value);\n }\n });\n\n return data.toString();\n },\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\ntype Slot = 'body' | 'headers' | 'path' | 'query';\n\nexport type Field =\n | {\n in: Exclude<Slot, 'body'>;\n /**\n * Field name. This is the name we want the user to see and use.\n */\n key: string;\n /**\n * Field mapped name. This is the name we want to use in the request.\n * If omitted, we use the same value as `key`.\n */\n map?: string;\n }\n | {\n in: Extract<Slot, 'body'>;\n /**\n * Key isn't required for bodies.\n */\n key?: string;\n map?: string;\n }\n | {\n /**\n * Field name. This is the name we want the user to see and use.\n */\n key: string;\n /**\n * Field mapped name. This is the name we want to use in the request.\n * If `in` is omitted, `map` aliases `key` to the transport layer.\n */\n map: Slot;\n };\n\nexport interface Fields {\n allowExtra?: Partial<Record<Slot, boolean>>;\n args?: ReadonlyArray<Field>;\n}\n\nexport type FieldsConfig = ReadonlyArray<Field | Fields>;\n\nconst extraPrefixesMap: Record<string, Slot> = {\n $body_: 'body',\n $headers_: 'headers',\n $path_: 'path',\n $query_: 'query',\n};\nconst extraPrefixes = Object.entries(extraPrefixesMap);\n\ntype KeyMap = Map<\n string,\n | {\n in: Slot;\n map?: string;\n }\n | {\n in?: never;\n map: Slot;\n }\n>;\n\nconst buildKeyMap = (fields: FieldsConfig, map?: KeyMap): KeyMap => {\n if (!map) {\n map = new Map();\n }\n\n for (const config of fields) {\n if ('in' in config) {\n if (config.key) {\n map.set(config.key, {\n in: config.in,\n map: config.map,\n });\n }\n } else if ('key' in config) {\n map.set(config.key, {\n map: config.map,\n });\n } else if (config.args) {\n buildKeyMap(config.args, map);\n }\n }\n\n return map;\n};\n\ninterface Params {\n body: unknown;\n headers: Record<string, unknown>;\n path: Record<string, unknown>;\n query: Record<string, unknown>;\n}\n\nconst stripEmptySlots = (params: Params) => {\n for (const [slot, value] of Object.entries(params)) {\n if (value && typeof value === 'object' && !Array.isArray(value) && !Object.keys(value).length) {\n delete params[slot as Slot];\n }\n }\n};\n\nexport const buildClientParams = (args: ReadonlyArray<unknown>, fields: FieldsConfig) => {\n const params: Params = {\n body: {},\n headers: {},\n path: {},\n query: {},\n };\n\n const map = buildKeyMap(fields);\n\n let config: FieldsConfig[number] | undefined;\n\n for (const [index, arg] of args.entries()) {\n if (fields[index]) {\n config = fields[index];\n }\n\n if (!config) {\n continue;\n }\n\n if ('in' in config) {\n if (config.key) {\n const field = map.get(config.key)!;\n const name = field.map || config.key;\n if (field.in) {\n (params[field.in] as Record<string, unknown>)[name] = arg;\n }\n } else {\n params.body = arg;\n }\n } else {\n for (const [key, value] of Object.entries(arg ?? {})) {\n const field = map.get(key);\n\n if (field) {\n if (field.in) {\n const name = field.map || key;\n (params[field.in] as Record<string, unknown>)[name] = value;\n } else {\n params[field.map] = value;\n }\n } else {\n const extra = extraPrefixes.find(([prefix]) => key.startsWith(prefix));\n\n if (extra) {\n const [prefix, slot] = extra;\n (params[slot] as Record<string, unknown>)[key.slice(prefix.length)] = value;\n } else if ('allowExtra' in config && config.allowExtra) {\n for (const [slot, allowed] of Object.entries(config.allowExtra)) {\n if (allowed) {\n (params[slot as Slot] as Record<string, unknown>)[key] = value;\n break;\n }\n }\n }\n }\n }\n }\n }\n\n stripEmptySlots(params);\n\n return params;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { Config } from './types.gen.js';\n\nexport type ServerSentEventsOptions<TData = unknown> = Omit<RequestInit, 'method'> &\n Pick<Config, 'method' | 'responseTransformer' | 'responseValidator'> & {\n /**\n * Fetch API implementation. You can use this option to provide a custom\n * fetch instance.\n *\n * @default globalThis.fetch\n */\n fetch?: typeof fetch;\n /**\n * Implementing clients can call request interceptors inside this hook.\n */\n onRequest?: (url: string, init: RequestInit) => Promise<Request>;\n /**\n * Callback invoked when a network or parsing error occurs during streaming.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @param error The error that occurred.\n */\n onSseError?: (error: unknown) => void;\n /**\n * Callback invoked when an event is streamed from the server.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @param event Event streamed from the server.\n * @returns Nothing (void).\n */\n onSseEvent?: (event: StreamEvent<TData>) => void;\n serializedBody?: RequestInit['body'];\n /**\n * Default retry delay in milliseconds.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @default 3000\n */\n sseDefaultRetryDelay?: number;\n /**\n * Maximum number of retry attempts before giving up.\n */\n sseMaxRetryAttempts?: number;\n /**\n * Maximum retry delay in milliseconds.\n *\n * Applies only when exponential backoff is used.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @default 30000\n */\n sseMaxRetryDelay?: number;\n /**\n * Optional sleep function for retry backoff.\n *\n * Defaults to using `setTimeout`.\n */\n sseSleepFn?: (ms: number) => Promise<void>;\n url: string;\n };\n\nexport interface StreamEvent<TData = unknown> {\n data: TData;\n event?: string;\n id?: string;\n retry?: number;\n}\n\nexport type ServerSentEventsResult<TData = unknown, TReturn = void, TNext = unknown> = {\n stream: AsyncGenerator<\n TData extends Record<string, unknown> ? TData[keyof TData] : TData,\n TReturn,\n TNext\n >;\n};\n\nexport const createSseClient = <TData = unknown>({\n onRequest,\n onSseError,\n onSseEvent,\n responseTransformer,\n responseValidator,\n sseDefaultRetryDelay,\n sseMaxRetryAttempts,\n sseMaxRetryDelay,\n sseSleepFn,\n url,\n ...options\n}: ServerSentEventsOptions): ServerSentEventsResult<TData> => {\n let lastEventId: string | undefined;\n\n const sleep = sseSleepFn ?? ((ms: number) => new Promise((resolve) => setTimeout(resolve, ms)));\n\n const createStream = async function* () {\n let retryDelay: number = sseDefaultRetryDelay ?? 3000;\n let attempt = 0;\n const signal = options.signal ?? new AbortController().signal;\n\n while (true) {\n if (signal.aborted) break;\n\n attempt++;\n\n const headers =\n options.headers instanceof Headers\n ? options.headers\n : new Headers(options.headers as Record<string, string> | undefined);\n\n if (lastEventId !== undefined) {\n headers.set('Last-Event-ID', lastEventId);\n }\n\n try {\n const requestInit: RequestInit = {\n redirect: 'follow',\n ...options,\n body: options.serializedBody,\n headers,\n signal,\n };\n let request = new Request(url, requestInit);\n if (onRequest) {\n request = await onRequest(url, requestInit);\n }\n // fetch must be assigned here, otherwise it would throw the error:\n // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation\n const _fetch = options.fetch ?? globalThis.fetch;\n const response = await _fetch(request);\n\n if (!response.ok) throw new Error(`SSE failed: ${response.status} ${response.statusText}`);\n\n if (!response.body) throw new Error('No body in SSE response');\n\n const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();\n\n let buffer = '';\n\n const abortHandler = () => {\n try {\n reader.cancel();\n } catch {\n // noop\n }\n };\n\n signal.addEventListener('abort', abortHandler);\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n buffer += value;\n // Normalize line endings: CRLF -> LF, then CR -> LF\n buffer = buffer.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n\n const chunks = buffer.split('\\n\\n');\n buffer = chunks.pop() ?? '';\n\n for (const chunk of chunks) {\n const lines = chunk.split('\\n');\n const dataLines: Array<string> = [];\n let eventName: string | undefined;\n\n for (const line of lines) {\n if (line.startsWith('data:')) {\n dataLines.push(line.replace(/^data:\\s*/, ''));\n } else if (line.startsWith('event:')) {\n eventName = line.replace(/^event:\\s*/, '');\n } else if (line.startsWith('id:')) {\n lastEventId = line.replace(/^id:\\s*/, '');\n } else if (line.startsWith('retry:')) {\n const parsed = Number.parseInt(line.replace(/^retry:\\s*/, ''), 10);\n if (!Number.isNaN(parsed)) {\n retryDelay = parsed;\n }\n }\n }\n\n let data: unknown;\n let parsedJson = false;\n\n if (dataLines.length) {\n const rawData = dataLines.join('\\n');\n try {\n data = JSON.parse(rawData);\n parsedJson = true;\n } catch {\n data = rawData;\n }\n }\n\n if (parsedJson) {\n if (responseValidator) {\n await responseValidator(data);\n }\n\n if (responseTransformer) {\n data = await responseTransformer(data);\n }\n }\n\n onSseEvent?.({\n data,\n event: eventName,\n id: lastEventId,\n retry: retryDelay,\n });\n\n if (dataLines.length) {\n yield data as any;\n }\n }\n }\n } finally {\n signal.removeEventListener('abort', abortHandler);\n reader.releaseLock();\n }\n\n break; // exit loop on normal completion\n } catch (error) {\n // connection failed or aborted; retry after delay\n onSseError?.(error);\n\n if (sseMaxRetryAttempts !== undefined && attempt >= sseMaxRetryAttempts) {\n break; // stop after firing error\n }\n\n // exponential backoff: double retry each attempt, cap at 30s\n const backoff = Math.min(retryDelay * 2 ** (attempt - 1), sseMaxRetryDelay ?? 30000);\n await sleep(backoff);\n }\n }\n };\n\n const stream = createStream();\n\n return { stream };\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\ninterface SerializeOptions<T> extends SerializePrimitiveOptions, SerializerOptions<T> {}\n\ninterface SerializePrimitiveOptions {\n allowReserved?: boolean;\n name: string;\n}\n\nexport interface SerializerOptions<T> {\n /**\n * @default true\n */\n explode: boolean;\n style: T;\n}\n\nexport type ArrayStyle = 'form' | 'spaceDelimited' | 'pipeDelimited';\nexport type ArraySeparatorStyle = ArrayStyle | MatrixStyle;\ntype MatrixStyle = 'label' | 'matrix' | 'simple';\nexport type ObjectStyle = 'form' | 'deepObject';\ntype ObjectSeparatorStyle = ObjectStyle | MatrixStyle;\n\ninterface SerializePrimitiveParam extends SerializePrimitiveOptions {\n value: string;\n}\n\nexport const separatorArrayExplode = (style: ArraySeparatorStyle) => {\n switch (style) {\n case 'label':\n return '.';\n case 'matrix':\n return ';';\n case 'simple':\n return ',';\n default:\n return '&';\n }\n};\n\nexport const separatorArrayNoExplode = (style: ArraySeparatorStyle) => {\n switch (style) {\n case 'form':\n return ',';\n case 'pipeDelimited':\n return '|';\n case 'spaceDelimited':\n return '%20';\n default:\n return ',';\n }\n};\n\nexport const separatorObjectExplode = (style: ObjectSeparatorStyle) => {\n switch (style) {\n case 'label':\n return '.';\n case 'matrix':\n return ';';\n case 'simple':\n return ',';\n default:\n return '&';\n }\n};\n\nexport const serializeArrayParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n}: SerializeOptions<ArraySeparatorStyle> & {\n value: unknown[];\n}) => {\n if (!explode) {\n const joinedValues = (\n allowReserved ? value : value.map((v) => encodeURIComponent(v as string))\n ).join(separatorArrayNoExplode(style));\n switch (style) {\n case 'label':\n return `.${joinedValues}`;\n case 'matrix':\n return `;${name}=${joinedValues}`;\n case 'simple':\n return joinedValues;\n default:\n return `${name}=${joinedValues}`;\n }\n }\n\n const separator = separatorArrayExplode(style);\n const joinedValues = value\n .map((v) => {\n if (style === 'label' || style === 'simple') {\n return allowReserved ? v : encodeURIComponent(v as string);\n }\n\n return serializePrimitiveParam({\n allowReserved,\n name,\n value: v as string,\n });\n })\n .join(separator);\n return style === 'label' || style === 'matrix' ? separator + joinedValues : joinedValues;\n};\n\nexport const serializePrimitiveParam = ({\n allowReserved,\n name,\n value,\n}: SerializePrimitiveParam) => {\n if (value === undefined || value === null) {\n return '';\n }\n\n if (typeof value === 'object') {\n throw new Error(\n 'Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.',\n );\n }\n\n return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;\n};\n\nexport const serializeObjectParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n valueOnly,\n}: SerializeOptions<ObjectSeparatorStyle> & {\n value: Record<string, unknown> | Date;\n valueOnly?: boolean;\n}) => {\n if (value instanceof Date) {\n return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`;\n }\n\n if (style !== 'deepObject' && !explode) {\n let values: string[] = [];\n Object.entries(value).forEach(([key, v]) => {\n values = [...values, key, allowReserved ? (v as string) : encodeURIComponent(v as string)];\n });\n const joinedValues = values.join(',');\n switch (style) {\n case 'form':\n return `${name}=${joinedValues}`;\n case 'label':\n return `.${joinedValues}`;\n case 'matrix':\n return `;${name}=${joinedValues}`;\n default:\n return joinedValues;\n }\n }\n\n const separator = separatorObjectExplode(style);\n const joinedValues = Object.entries(value)\n .map(([key, v]) =>\n serializePrimitiveParam({\n allowReserved,\n name: style === 'deepObject' ? `${name}[${key}]` : key,\n value: v as string,\n }),\n )\n .join(separator);\n return style === 'label' || style === 'matrix' ? separator + joinedValues : joinedValues;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { BodySerializer, QuerySerializer } from './bodySerializer.gen.js';\nimport {\n type ArraySeparatorStyle,\n serializeArrayParam,\n serializeObjectParam,\n serializePrimitiveParam,\n} from './pathSerializer.gen.js';\n\nexport interface PathSerializer {\n path: Record<string, unknown>;\n url: string;\n}\n\nexport const PATH_PARAM_RE = /\\{[^{}]+\\}/g;\n\nexport const defaultPathSerializer = ({ path, url: _url }: PathSerializer) => {\n let url = _url;\n const matches = _url.match(PATH_PARAM_RE);\n if (matches) {\n for (const match of matches) {\n let explode = false;\n let name = match.substring(1, match.length - 1);\n let style: ArraySeparatorStyle = 'simple';\n\n if (name.endsWith('*')) {\n explode = true;\n name = name.substring(0, name.length - 1);\n }\n\n if (name.startsWith('.')) {\n name = name.substring(1);\n style = 'label';\n } else if (name.startsWith(';')) {\n name = name.substring(1);\n style = 'matrix';\n }\n\n const value = path[name];\n\n if (value === undefined || value === null) {\n continue;\n }\n\n if (Array.isArray(value)) {\n url = url.replace(match, serializeArrayParam({ explode, name, style, value }));\n continue;\n }\n\n if (typeof value === 'object') {\n url = url.replace(\n match,\n serializeObjectParam({\n explode,\n name,\n style,\n value: value as Record<string, unknown>,\n valueOnly: true,\n }),\n );\n continue;\n }\n\n if (style === 'matrix') {\n url = url.replace(\n match,\n `;${serializePrimitiveParam({\n name,\n value: value as string,\n })}`,\n );\n continue;\n }\n\n const replaceValue = encodeURIComponent(\n style === 'label' ? `.${value as string}` : (value as string),\n );\n url = url.replace(match, replaceValue);\n }\n }\n return url;\n};\n\nexport const getUrl = ({\n baseUrl,\n path,\n query,\n querySerializer,\n url: _url,\n}: {\n baseUrl?: string;\n path?: Record<string, unknown>;\n query?: Record<string, unknown>;\n querySerializer: QuerySerializer;\n url: string;\n}) => {\n const pathUrl = _url.startsWith('/') ? _url : `/${_url}`;\n let url = (baseUrl ?? '') + pathUrl;\n if (path) {\n url = defaultPathSerializer({ path, url });\n }\n let search = query ? querySerializer(query) : '';\n if (search.startsWith('?')) {\n search = search.substring(1);\n }\n if (search) {\n url += `?${search}`;\n }\n return url;\n};\n\nexport function getValidRequestBody(options: {\n body?: unknown;\n bodySerializer?: BodySerializer | null;\n serializedBody?: unknown;\n}) {\n const hasBody = options.body !== undefined;\n const isSerializedBody = hasBody && options.bodySerializer;\n\n if (isSerializedBody) {\n if ('serializedBody' in options) {\n const hasSerializedBody =\n options.serializedBody !== undefined && options.serializedBody !== '';\n\n return hasSerializedBody ? options.serializedBody : null;\n }\n\n // not all clients implement a serializedBody property (i.e. client-axios)\n return options.body !== '' ? options.body : null;\n }\n\n // plain/text body\n if (hasBody) {\n return options.body;\n }\n\n // no body was provided\n return undefined;\n}\n","// This file is auto-generated by @hey-api/openapi-ts\n\nexport type AuthToken = string | undefined;\n\nexport interface Auth {\n /**\n * Which part of the request do we use to send the auth?\n *\n * @default 'header'\n */\n in?: 'header' | 'query' | 'cookie';\n /**\n * Header or query parameter name.\n *\n * @default 'Authorization'\n */\n name?: string;\n scheme?: 'basic' | 'bearer';\n type: 'apiKey' | 'http';\n}\n\nexport const getAuthToken = async (\n auth: Auth,\n callback: ((auth: Auth) => Promise<AuthToken> | AuthToken) | AuthToken,\n): Promise<string | undefined> => {\n const token = typeof callback === 'function' ? await callback(auth) : callback;\n\n if (!token) {\n return;\n }\n\n if (auth.scheme === 'bearer') {\n return `Bearer ${token}`;\n }\n\n if (auth.scheme === 'basic') {\n return `Basic ${btoa(token)}`;\n }\n\n return token;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { getAuthToken } from '../core/auth.gen.js';\nimport type { QuerySerializerOptions } from '../core/bodySerializer.gen.js';\nimport { jsonBodySerializer } from '../core/bodySerializer.gen.js';\nimport {\n serializeArrayParam,\n serializeObjectParam,\n serializePrimitiveParam,\n} from '../core/pathSerializer.gen.js';\nimport { getUrl } from '../core/utils.gen.js';\nimport type { Client, ClientOptions, Config, RequestOptions } from './types.gen.js';\n\nexport const createQuerySerializer = <T = unknown>({\n parameters = {},\n ...args\n}: QuerySerializerOptions = {}) => {\n const querySerializer = (queryParams: T) => {\n const search: string[] = [];\n if (queryParams && typeof queryParams === 'object') {\n for (const name in queryParams) {\n const value = queryParams[name];\n\n if (value === undefined || value === null) {\n continue;\n }\n\n const options = parameters[name] || args;\n\n if (Array.isArray(value)) {\n const serializedArray = serializeArrayParam({\n allowReserved: options.allowReserved,\n explode: true,\n name,\n style: 'form',\n value,\n ...options.array,\n });\n if (serializedArray) search.push(serializedArray);\n } else if (typeof value === 'object') {\n const serializedObject = serializeObjectParam({\n allowReserved: options.allowReserved,\n explode: true,\n name,\n style: 'deepObject',\n value: value as Record<string, unknown>,\n ...options.object,\n });\n if (serializedObject) search.push(serializedObject);\n } else {\n const serializedPrimitive = serializePrimitiveParam({\n allowReserved: options.allowReserved,\n name,\n value: value as string,\n });\n if (serializedPrimitive) search.push(serializedPrimitive);\n }\n }\n }\n return search.join('&');\n };\n return querySerializer;\n};\n\n/**\n * Infers parseAs value from provided Content-Type header.\n */\nexport const getParseAs = (contentType: string | null): Exclude<Config['parseAs'], 'auto'> => {\n if (!contentType) {\n // If no Content-Type header is provided, the best we can do is return the raw response body,\n // which is effectively the same as the 'stream' option.\n return 'stream';\n }\n\n const cleanContent = contentType.split(';')[0]?.trim();\n\n if (!cleanContent) {\n return;\n }\n\n if (cleanContent.startsWith('application/json') || cleanContent.endsWith('+json')) {\n return 'json';\n }\n\n if (cleanContent === 'multipart/form-data') {\n return 'formData';\n }\n\n if (\n ['application/', 'audio/', 'image/', 'video/'].some((type) => cleanContent.startsWith(type))\n ) {\n return 'blob';\n }\n\n if (cleanContent.startsWith('text/')) {\n return 'text';\n }\n\n return;\n};\n\nconst checkForExistence = (\n options: Pick<RequestOptions, 'auth' | 'query'> & {\n headers: Headers;\n },\n name?: string,\n): boolean => {\n if (!name) {\n return false;\n }\n if (\n options.headers.has(name) ||\n options.query?.[name] ||\n options.headers.get('Cookie')?.includes(`${name}=`)\n ) {\n return true;\n }\n return false;\n};\n\nexport const setAuthParams = async ({\n security,\n ...options\n}: Pick<Required<RequestOptions>, 'security'> &\n Pick<RequestOptions, 'auth' | 'query'> & {\n headers: Headers;\n }) => {\n for (const auth of security) {\n if (checkForExistence(options, auth.name)) {\n continue;\n }\n\n const token = await getAuthToken(auth, options.auth);\n\n if (!token) {\n continue;\n }\n\n const name = auth.name ?? 'Authorization';\n\n switch (auth.in) {\n case 'query':\n if (!options.query) {\n options.query = {};\n }\n options.query[name] = token;\n break;\n case 'cookie':\n options.headers.append('Cookie', `${name}=${token}`);\n break;\n case 'header':\n default:\n options.headers.set(name, token);\n break;\n }\n }\n};\n\nexport const buildUrl: Client['buildUrl'] = (options) =>\n getUrl({\n baseUrl: options.baseUrl as string,\n path: options.path,\n query: options.query,\n querySerializer:\n typeof options.querySerializer === 'function'\n ? options.querySerializer\n : createQuerySerializer(options.querySerializer),\n url: options.url,\n });\n\nexport const mergeConfigs = (a: Config, b: Config): Config => {\n const config = { ...a, ...b };\n if (config.baseUrl?.endsWith('/')) {\n config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1);\n }\n config.headers = mergeHeaders(a.headers, b.headers);\n return config;\n};\n\nconst headersEntries = (headers: Headers): Array<[string, string]> => {\n const entries: Array<[string, string]> = [];\n headers.forEach((value, key) => {\n entries.push([key, value]);\n });\n return entries;\n};\n\nexport const mergeHeaders = (\n ...headers: Array<Required<Config>['headers'] | undefined>\n): Headers => {\n const mergedHeaders = new Headers();\n for (const header of headers) {\n if (!header) {\n continue;\n }\n\n const iterator = header instanceof Headers ? headersEntries(header) : Object.entries(header);\n\n for (const [key, value] of iterator) {\n if (value === null) {\n mergedHeaders.delete(key);\n } else if (Array.isArray(value)) {\n for (const v of value) {\n mergedHeaders.append(key, v as string);\n }\n } else if (value !== undefined) {\n // assume object headers are meant to be JSON stringified, i.e. their\n // content value in OpenAPI specification is 'application/json'\n mergedHeaders.set(\n key,\n typeof value === 'object' ? JSON.stringify(value) : (value as string),\n );\n }\n }\n }\n return mergedHeaders;\n};\n\ntype ErrInterceptor<Err, Res, Req, Options> = (\n error: Err,\n response: Res,\n request: Req,\n options: Options,\n) => Err | Promise<Err>;\n\ntype ReqInterceptor<Req, Options> = (request: Req, options: Options) => Req | Promise<Req>;\n\ntype ResInterceptor<Res, Req, Options> = (\n response: Res,\n request: Req,\n options: Options,\n) => Res | Promise<Res>;\n\nclass Interceptors<Interceptor> {\n fns: Array<Interceptor | null> = [];\n\n clear(): void {\n this.fns = [];\n }\n\n eject(id: number | Interceptor): void {\n const index = this.getInterceptorIndex(id);\n if (this.fns[index]) {\n this.fns[index] = null;\n }\n }\n\n exists(id: number | Interceptor): boolean {\n const index = this.getInterceptorIndex(id);\n return Boolean(this.fns[index]);\n }\n\n getInterceptorIndex(id: number | Interceptor): number {\n if (typeof id === 'number') {\n return this.fns[id] ? id : -1;\n }\n return this.fns.indexOf(id);\n }\n\n update(id: number | Interceptor, fn: Interceptor): number | Interceptor | false {\n const index = this.getInterceptorIndex(id);\n if (this.fns[index]) {\n this.fns[index] = fn;\n return id;\n }\n return false;\n }\n\n use(fn: Interceptor): number {\n this.fns.push(fn);\n return this.fns.length - 1;\n }\n}\n\nexport interface Middleware<Req, Res, Err, Options> {\n error: Interceptors<ErrInterceptor<Err, Res, Req, Options>>;\n request: Interceptors<ReqInterceptor<Req, Options>>;\n response: Interceptors<ResInterceptor<Res, Req, Options>>;\n}\n\nexport const createInterceptors = <Req, Res, Err, Options>(): Middleware<\n Req,\n Res,\n Err,\n Options\n> => ({\n error: new Interceptors<ErrInterceptor<Err, Res, Req, Options>>(),\n request: new Interceptors<ReqInterceptor<Req, Options>>(),\n response: new Interceptors<ResInterceptor<Res, Req, Options>>(),\n});\n\nconst defaultQuerySerializer = createQuerySerializer({\n allowReserved: false,\n array: {\n explode: true,\n style: 'form',\n },\n object: {\n explode: true,\n style: 'deepObject',\n },\n});\n\nconst defaultHeaders = {\n 'Content-Type': 'application/json',\n};\n\nexport const createConfig = <T extends ClientOptions = ClientOptions>(\n override: Config<Omit<ClientOptions, keyof T> & T> = {},\n): Config<Omit<ClientOptions, keyof T> & T> => ({\n ...jsonBodySerializer,\n headers: defaultHeaders,\n parseAs: 'auto',\n querySerializer: defaultQuerySerializer,\n ...override,\n});\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { createSseClient } from '../core/serverSentEvents.gen.js';\nimport type { HttpMethod } from '../core/types.gen.js';\nimport { getValidRequestBody } from '../core/utils.gen.js';\nimport type { Client, Config, RequestOptions, ResolvedRequestOptions } from './types.gen.js';\nimport {\n buildUrl,\n createConfig,\n createInterceptors,\n getParseAs,\n mergeConfigs,\n mergeHeaders,\n setAuthParams,\n} from './utils.gen.js';\n\ntype ReqInit = Omit<RequestInit, 'body' | 'headers'> & {\n body?: any;\n headers: ReturnType<typeof mergeHeaders>;\n};\n\nexport const createClient = (config: Config = {}): Client => {\n let _config = mergeConfigs(createConfig(), config);\n\n const getConfig = (): Config => ({ ..._config });\n\n const setConfig = (config: Config): Config => {\n _config = mergeConfigs(_config, config);\n return getConfig();\n };\n\n const interceptors = createInterceptors<Request, Response, unknown, ResolvedRequestOptions>();\n\n const beforeRequest = async (options: RequestOptions) => {\n const opts = {\n ..._config,\n ...options,\n fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,\n headers: mergeHeaders(_config.headers, options.headers),\n serializedBody: undefined as string | undefined,\n };\n\n if (opts.security) {\n await setAuthParams({\n ...opts,\n security: opts.security,\n });\n }\n\n if (opts.requestValidator) {\n await opts.requestValidator(opts);\n }\n\n if (opts.body !== undefined && opts.bodySerializer) {\n opts.serializedBody = opts.bodySerializer(opts.body) as string | undefined;\n }\n\n // remove Content-Type header if body is empty to avoid sending invalid requests\n if (opts.body === undefined || opts.serializedBody === '') {\n opts.headers.delete('Content-Type');\n }\n\n const url = buildUrl(opts);\n\n return { opts, url };\n };\n\n const request: Client['request'] = async (options) => {\n // @ts-expect-error\n const { opts, url } = await beforeRequest(options);\n const requestInit: ReqInit = {\n redirect: 'follow',\n ...opts,\n body: getValidRequestBody(opts),\n };\n\n let request = new Request(url, requestInit);\n\n for (const fn of interceptors.request.fns) {\n if (fn) {\n request = await fn(request, opts);\n }\n }\n\n // fetch must be assigned here, otherwise it would throw the error:\n // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation\n const _fetch = opts.fetch!;\n let response: Response;\n\n try {\n response = await _fetch(request);\n } catch (error) {\n // Handle fetch exceptions (AbortError, network errors, etc.)\n let finalError = error;\n\n for (const fn of interceptors.error.fns) {\n if (fn) {\n finalError = (await fn(error, undefined as any, request, opts)) as unknown;\n }\n }\n\n finalError = finalError || ({} as unknown);\n\n if (opts.throwOnError) {\n throw finalError;\n }\n\n // Return error response\n return opts.responseStyle === 'data'\n ? undefined\n : {\n error: finalError,\n request,\n response: undefined as any,\n };\n }\n\n for (const fn of interceptors.response.fns) {\n if (fn) {\n response = await fn(response, request, opts);\n }\n }\n\n const result = {\n request,\n response,\n };\n\n if (response.ok) {\n const parseAs =\n (opts.parseAs === 'auto'\n ? getParseAs(response.headers.get('Content-Type'))\n : opts.parseAs) ?? 'json';\n\n if (response.status === 204 || response.headers.get('Content-Length') === '0') {\n let emptyData: any;\n switch (parseAs) {\n case 'arrayBuffer':\n case 'blob':\n case 'text':\n emptyData = await response[parseAs]();\n break;\n case 'formData':\n emptyData = new FormData();\n break;\n case 'stream':\n emptyData = response.body;\n break;\n case 'json':\n default:\n emptyData = {};\n break;\n }\n return opts.responseStyle === 'data'\n ? emptyData\n : {\n data: emptyData,\n ...result,\n };\n }\n\n let data: any;\n switch (parseAs) {\n case 'arrayBuffer':\n case 'blob':\n case 'formData':\n case 'text':\n data = await response[parseAs]();\n break;\n case 'json': {\n // Some servers return 200 with no Content-Length and empty body.\n // response.json() would throw; read as text and parse if non-empty.\n const text = await response.text();\n data = text ? JSON.parse(text) : {};\n break;\n }\n case 'stream':\n return opts.responseStyle === 'data'\n ? response.body\n : {\n data: response.body,\n ...result,\n };\n }\n\n if (parseAs === 'json') {\n if (opts.responseValidator) {\n await opts.responseValidator(data);\n }\n\n if (opts.responseTransformer) {\n data = await opts.responseTransformer(data);\n }\n }\n\n return opts.responseStyle === 'data'\n ? data\n : {\n data,\n ...result,\n };\n }\n\n const textError = await response.text();\n let jsonError: unknown;\n\n try {\n jsonError = JSON.parse(textError);\n } catch {\n // noop\n }\n\n const error = jsonError ?? textError;\n let finalError = error;\n\n for (const fn of interceptors.error.fns) {\n if (fn) {\n finalError = (await fn(error, response, request, opts)) as string;\n }\n }\n\n finalError = finalError || ({} as string);\n\n if (opts.throwOnError) {\n throw finalError;\n }\n\n // TODO: we probably want to return error and improve types\n return opts.responseStyle === 'data'\n ? undefined\n : {\n error: finalError,\n ...result,\n };\n };\n\n const makeMethodFn = (method: Uppercase<HttpMethod>) => (options: RequestOptions) =>\n request({ ...options, method });\n\n const makeSseFn = (method: Uppercase<HttpMethod>) => async (options: RequestOptions) => {\n const { opts, url } = await beforeRequest(options);\n return createSseClient({\n ...opts,\n body: opts.body as BodyInit | null | undefined,\n headers: opts.headers as unknown as Record<string, string>,\n method,\n onRequest: async (url, init) => {\n let request = new Request(url, init);\n for (const fn of interceptors.request.fns) {\n if (fn) {\n request = await fn(request, opts);\n }\n }\n return request;\n },\n serializedBody: getValidRequestBody(opts) as BodyInit | null | undefined,\n url,\n });\n };\n\n const _buildUrl: Client['buildUrl'] = (options) => buildUrl({ ..._config, ...options });\n\n return {\n buildUrl: _buildUrl,\n connect: makeMethodFn('CONNECT'),\n delete: makeMethodFn('DELETE'),\n get: makeMethodFn('GET'),\n getConfig,\n head: makeMethodFn('HEAD'),\n interceptors,\n options: makeMethodFn('OPTIONS'),\n patch: makeMethodFn('PATCH'),\n post: makeMethodFn('POST'),\n put: makeMethodFn('PUT'),\n request,\n setConfig,\n sse: {\n connect: makeSseFn('CONNECT'),\n delete: makeSseFn('DELETE'),\n get: makeSseFn('GET'),\n head: makeSseFn('HEAD'),\n options: makeSseFn('OPTIONS'),\n patch: makeSseFn('PATCH'),\n post: makeSseFn('POST'),\n put: makeSseFn('PUT'),\n trace: makeSseFn('TRACE'),\n },\n trace: makeMethodFn('TRACE'),\n } as Client;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { type ClientOptions, type Config, createClient, createConfig } from './client/index.js';\nimport type { ClientOptions as ClientOptions2 } from './types.gen.js';\n\n/**\n * The `createClientConfig()` function will be called on client initialization\n * and the returned object will become the client's initial configuration.\n *\n * You may want to initialize your client this way instead of calling\n * `setConfig()`. This is useful for example if you're using Next.js\n * to ensure your client always has the correct values.\n */\nexport type CreateClientConfig<T extends ClientOptions = ClientOptions2> = (override?: Config<ClientOptions & T>) => Config<Required<ClientOptions> & T>;\n\nexport const client = createClient(createConfig<ClientOptions2>({ baseUrl: 'https://app.practicepanther.com' }));\n","import { getAccessToken } from \"./auth.js\";\nimport { client } from \"./client/client.gen.js\";\n\nclient.setConfig({\n baseUrl: \"https://app.practicepanther.com\",\n auth: async () => getAccessToken(),\n});\n\nexport { client };\n","#!/usr/bin/env node\nimport \"./pp.js\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport { createServer } from \"./create-server.js\";\n\nconst command = process.argv[2];\nif (command === \"auth\") {\n const { runCli } = await import(\"./auth.js\");\n runCli(process.argv[3]);\n} else {\n const server = createServer();\n const transport = new StdioServerTransport();\n await server.connect(transport);\n}\n","import { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { z } from \"zod\";\n\nimport {\n accountsGetAccount,\n accountsGetAccounts,\n bankAccountsGetBankAccount,\n bankAccountsGetBankAccounts,\n callLogsGetCallLog,\n callLogsGetCallLogs,\n contactsGetContact,\n contactsGetContacts,\n customFieldsGetCustomField,\n customFieldsGetCustomFieldsForAccount,\n customFieldsGetCustomFieldsForContact,\n customFieldsGetCustomFieldsForMatter,\n emailsGetEmail,\n emailsGetEmails,\n eventsGetEvent,\n eventsGetEvents,\n expenseCategoriesGetExpenseCategories,\n expenseCategoriesGetExpenseCategory,\n expensesGetExpense,\n expensesGetExpensess,\n filesDownloadFile,\n filesGetFile,\n filesGetFiles,\n flatFeesGetFlatFee,\n flatFeesGetFlatFees,\n invoicesGetInvoice,\n invoicesGetInvoices,\n itemsGetItem,\n itemsGetItems,\n mattersGetMatter,\n mattersGetMatters,\n messagesGetMessagesAsync,\n notesGetNote,\n notesGetNotes,\n paymentsGetPayment,\n paymentsGetPayments,\n relationshipsGetRelationship,\n relationshipsGetRelationships,\n tagsGetTagsForAccounts,\n tagsGetTagsForActivities,\n tagsGetTagsForProjects,\n tasksGetTask,\n tasksGetTasks,\n timeEntriesGetTimeEntry,\n timeEntriesGetTimeEntrys,\n usersGetUser,\n usersGetUsers,\n usersMe,\n} from \"./client/index.js\";\nimport {\n zAccount,\n zBankAccount,\n zCallLog,\n zContact,\n zCustomField,\n zEmail,\n zEvent,\n zExpense,\n zExpenseCategory,\n zFile,\n zFlatFee,\n zInvoice,\n zItem,\n zMatter,\n zMessage,\n zNote,\n zPayment,\n zPaymentDetail,\n zRelationship,\n zTag,\n zTask,\n zTimeEntry,\n zUser,\n} from \"./client/zod.gen.js\";\nimport { listOf } from \"./helpers.js\";\nimport { createToolHandler, type ToolConfig } from \"./tool-handler.js\";\n\nexport function createServer(): McpServer {\n const server = new McpServer(\n {\n name: \"practicepanther\",\n version: \"1.0.0\",\n },\n {\n instructions: [\n \"PracticePanther is a legal practice management system.\",\n \"IMPORTANT: The API does not support pagination.\",\n \"List endpoints return ALL matching records, which can be very large.\",\n \"Always constrain list calls with filters (date ranges, account/matter IDs, tags, etc.) to avoid returning excessive data.\",\n \"Prefer using created_since/updated_since or date_from/date_to to narrow results.\",\n \"If looking for a specific record, use a get-by-id tool instead of listing and filtering client-side.\",\n ].join(\" \"),\n },\n );\n\n // ── Tool definitions ──\n\n const tools: ToolConfig[] = [\n // ── Accounts ──\n {\n name: \"get_account\",\n description:\n \"Get a single account (company or individual) by ID. Returns contacts, tags, custom fields, and assigned users.\",\n sdkFn: accountsGetAccount,\n schema: zAccount,\n pathParams: { id: \"Account ID\" },\n },\n {\n name: \"list_accounts\",\n description:\n \"List accounts with optional filters. An account represents one or more contacts (e.g. a company).\",\n sdkFn: accountsGetAccounts,\n schema: zAccount,\n isList: true,\n queryParams: {\n assigned_to_user_id: z\n .string()\n .optional()\n .describe(\"Filter by assigned user ID\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n search_text: z.string().optional().describe(\"Search text\"),\n account_tag: z.string().optional().describe(\"Filter by account tag\"),\n },\n },\n\n // ── Bank Accounts ──\n {\n name: \"get_bank_account\",\n description:\n \"Get a single bank account (operating, trust, or credit card) by ID.\",\n sdkFn: bankAccountsGetBankAccount,\n schema: zBankAccount,\n pathParams: { id: \"Bank Account ID\" },\n },\n {\n name: \"list_bank_accounts\",\n description: \"List all bank accounts.\",\n sdkFn: bankAccountsGetBankAccounts,\n schema: zBankAccount,\n isList: true,\n queryParams: {\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n },\n },\n\n // ── Call Logs ──\n {\n name: \"get_call_log\",\n description: \"Get a single call log entry by ID.\",\n sdkFn: callLogsGetCallLog,\n schema: zCallLog,\n pathParams: { id: \"Call Log ID\" },\n },\n {\n name: \"list_call_logs\",\n description:\n \"List call log entries with optional filters by account, matter, user, date range, or tag.\",\n sdkFn: callLogsGetCallLogs,\n schema: zCallLog,\n isList: true,\n queryParams: {\n assigned_to_user_id: z\n .string()\n .optional()\n .describe(\"Filter by assigned user ID\"),\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n matter_id: z.string().optional().describe(\"Filter by matter ID\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n date_from: z\n .string()\n .optional()\n .describe(\"ISO date — filter from this date\"),\n date_to: z\n .string()\n .optional()\n .describe(\"ISO date — filter to this date\"),\n activity_tag: z.string().optional().describe(\"Filter by activity tag\"),\n },\n },\n\n // ── Contacts ──\n {\n name: \"get_contact\",\n description:\n \"Get a single contact by ID. Each account can have multiple contacts; one is the primary.\",\n sdkFn: contactsGetContact,\n schema: zContact,\n pathParams: { id: \"Contact ID\" },\n },\n {\n name: \"list_contacts\",\n description:\n \"List contacts with optional filters by account, status, user, search text, or company.\",\n sdkFn: contactsGetContacts,\n schema: zContact,\n isList: true,\n queryParams: {\n assigned_to_user_id: z\n .string()\n .optional()\n .describe(\"Filter by assigned user ID\"),\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n status: z\n .enum([\"Active\", \"Archived\"])\n .optional()\n .describe(\"Filter by status\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n search_text: z.string().optional().describe(\"Search text\"),\n account_tag: z.string().optional().describe(\"Filter by account tag\"),\n company_name: z.string().optional().describe(\"Filter by company name\"),\n },\n },\n\n // ── Custom Fields ──\n {\n name: \"get_custom_field\",\n description: \"Get a single custom field definition by ID.\",\n sdkFn: customFieldsGetCustomField,\n schema: zCustomField,\n pathParams: { id: \"Custom Field ID\" },\n },\n {\n name: \"list_custom_fields_for_company\",\n description: \"List custom field definitions for companies (accounts).\",\n sdkFn: customFieldsGetCustomFieldsForAccount,\n schema: zCustomField,\n isList: true,\n queryParams: {\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n },\n },\n {\n name: \"list_custom_fields_for_matter\",\n description: \"List custom field definitions for matters.\",\n sdkFn: customFieldsGetCustomFieldsForMatter,\n schema: zCustomField,\n isList: true,\n queryParams: {\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n },\n },\n {\n name: \"list_custom_fields_for_contact\",\n description: \"List custom field definitions for contacts.\",\n sdkFn: customFieldsGetCustomFieldsForContact,\n schema: zCustomField,\n isList: true,\n queryParams: {\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n },\n },\n\n // ── Emails ──\n {\n name: \"get_email\",\n description:\n \"Get a single email by ID. Returns full HTML body when fetched individually.\",\n sdkFn: emailsGetEmail,\n schema: zEmail,\n pathParams: { id: \"Email ID\" },\n },\n {\n name: \"list_emails\",\n description:\n \"List emails with optional filters by account, matter, user, tag, or external message ID.\",\n sdkFn: emailsGetEmails,\n schema: zEmail,\n isList: true,\n queryParams: {\n assigned_to_user_id: z\n .string()\n .optional()\n .describe(\"Filter by assigned user ID\"),\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n matter_id: z.string().optional().describe(\"Filter by matter ID\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n activity_tag: z.string().optional().describe(\"Filter by activity tag\"),\n external_message_id: z\n .string()\n .optional()\n .describe(\"Filter by external message ID\"),\n },\n },\n\n // ── Events ──\n {\n name: \"get_event\",\n description: \"Get a single calendar event by ID.\",\n sdkFn: eventsGetEvent,\n schema: zEvent,\n pathParams: { id: \"Event ID\" },\n },\n {\n name: \"list_events\",\n description:\n \"List calendar events with optional filters by account, matter, user, date range, or tag.\",\n sdkFn: eventsGetEvents,\n schema: zEvent,\n isList: true,\n queryParams: {\n assigned_to_user_id: z\n .string()\n .optional()\n .describe(\"Filter by assigned user ID\"),\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n matter_id: z.string().optional().describe(\"Filter by matter ID\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n date_from: z\n .string()\n .optional()\n .describe(\"ISO date — filter from this date\"),\n date_to: z\n .string()\n .optional()\n .describe(\"ISO date — filter to this date\"),\n activity_tag: z.string().optional().describe(\"Filter by activity tag\"),\n },\n },\n\n // ── Expense Categories ──\n {\n name: \"get_expense_category\",\n description: \"Get a single expense category by ID.\",\n sdkFn: expenseCategoriesGetExpenseCategory,\n schema: zExpenseCategory,\n pathParams: { id: \"Expense Category ID\" },\n },\n {\n name: \"list_expense_categories\",\n description: \"List all expense categories.\",\n sdkFn: expenseCategoriesGetExpenseCategories,\n schema: zExpenseCategory,\n isList: true,\n queryParams: {\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n },\n },\n\n // ── Expenses ──\n {\n name: \"get_expense\",\n description:\n \"Get a single expense by ID. Includes billable status, amount, and category.\",\n sdkFn: expensesGetExpense,\n schema: zExpense,\n pathParams: { id: \"Expense ID\" },\n },\n {\n name: \"list_expenses\",\n description:\n \"List expenses with optional filters by account, matter, billing user, category, or date range.\",\n sdkFn: expensesGetExpensess,\n schema: zExpense,\n isList: true,\n queryParams: {\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n matter_id: z.string().optional().describe(\"Filter by matter ID\"),\n billed_by_user_id: z\n .string()\n .optional()\n .describe(\"Filter by billing user ID\"),\n expense_category_id: z\n .string()\n .optional()\n .describe(\"Filter by expense category ID\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n date_from: z\n .string()\n .optional()\n .describe(\"ISO date — filter from this date\"),\n date_to: z\n .string()\n .optional()\n .describe(\"ISO date — filter to this date\"),\n },\n },\n\n // ── Files ──\n {\n name: \"get_file\",\n description: \"Get file metadata by ID (name, size, content type).\",\n sdkFn: filesGetFile,\n schema: zFile,\n pathParams: { id: \"File ID\" },\n },\n {\n name: \"download_file\",\n description: \"Download a file's contents by ID.\",\n sdkFn: filesDownloadFile,\n pathParams: { id: \"File ID to download\" },\n rawContent: true,\n },\n {\n name: \"list_files\",\n description:\n \"List files with optional filters by account, matter, activity, creator, or search text.\",\n sdkFn: filesGetFiles,\n schema: zFile,\n isList: true,\n queryParams: {\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n search_text: z.string().optional().describe(\"Search text\"),\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n matter_id: z.string().optional().describe(\"Filter by matter ID\"),\n activity_id: z.string().optional().describe(\"Filter by activity ID\"),\n created_by_user_id: z\n .string()\n .optional()\n .describe(\"Filter by creating user ID\"),\n },\n },\n\n // ── Flat Fees ──\n {\n name: \"get_flat_fee\",\n description: \"Get a single flat fee entry by ID.\",\n sdkFn: flatFeesGetFlatFee,\n schema: zFlatFee,\n pathParams: { id: \"Flat Fee ID\" },\n },\n {\n name: \"list_flat_fees\",\n description:\n \"List flat fees with optional filters by account, matter, user, item, or date range.\",\n sdkFn: flatFeesGetFlatFees,\n schema: zFlatFee,\n isList: true,\n queryParams: {\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n matter_id: z.string().optional().describe(\"Filter by matter ID\"),\n user_id: z.string().optional().describe(\"Filter by user ID\"),\n item_id: z.string().optional().describe(\"Filter by item ID\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n date_from: z\n .string()\n .optional()\n .describe(\"ISO date — filter from this date\"),\n date_to: z\n .string()\n .optional()\n .describe(\"ISO date — filter to this date\"),\n },\n },\n\n // ── Invoices ──\n {\n name: \"get_invoice\",\n description:\n \"Get a single invoice by ID with line items (time entries, expenses, flat fees).\",\n sdkFn: invoicesGetInvoice,\n schema: zInvoice,\n pathParams: { id: \"Invoice ID\" },\n },\n {\n name: \"list_invoices\",\n description:\n \"List invoices with optional filters by account, matter, or date range.\",\n sdkFn: invoicesGetInvoices,\n schema: zInvoice,\n isList: true,\n queryParams: {\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n matter_id: z.string().optional().describe(\"Filter by matter ID\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n date_from: z\n .string()\n .optional()\n .describe(\"ISO date — filter from this date\"),\n date_to: z\n .string()\n .optional()\n .describe(\"ISO date — filter to this date\"),\n },\n },\n\n // ── Items ──\n {\n name: \"get_item\",\n description: \"Get a single billing item/service by ID.\",\n sdkFn: itemsGetItem,\n schema: zItem,\n pathParams: { id: \"Item ID\" },\n },\n {\n name: \"list_items\",\n description: \"List all billing items/services.\",\n sdkFn: itemsGetItems,\n schema: zItem,\n isList: true,\n queryParams: {\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n },\n },\n\n // ── Matters ──\n {\n name: \"get_matter\",\n description:\n \"Get a single matter (case/project) by ID. Returns status, assigned users, tags, and custom fields.\",\n sdkFn: mattersGetMatter,\n schema: zMatter,\n pathParams: { id: \"Matter ID\" },\n },\n {\n name: \"list_matters\",\n description:\n \"List matters with optional filters by account, status (Open/Closed/Pending/Archived), user, search text, or tags.\",\n sdkFn: mattersGetMatters,\n schema: zMatter,\n isList: true,\n queryParams: {\n assigned_to_user_id: z\n .string()\n .optional()\n .describe(\"Filter by assigned user ID\"),\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n status: z\n .enum([\"Closed\", \"Pending\", \"Open\", \"Archived\"])\n .optional()\n .describe(\"Filter by matter status\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n search_text: z.string().optional().describe(\"Search text\"),\n account_tag: z.string().optional().describe(\"Filter by account tag\"),\n matter_tag: z.string().optional().describe(\"Filter by matter tag\"),\n },\n },\n\n // ── Messages ──\n {\n name: \"list_messages\",\n description: \"List all messages.\",\n sdkFn: messagesGetMessagesAsync,\n schema: zMessage,\n isList: true,\n },\n\n // ── Notes ──\n {\n name: \"get_note\",\n description: \"Get a single note by ID.\",\n sdkFn: notesGetNote,\n schema: zNote,\n pathParams: { id: \"Note ID\" },\n },\n {\n name: \"list_notes\",\n description:\n \"List notes with optional filters by account, matter, user, date range, or tag.\",\n sdkFn: notesGetNotes,\n schema: zNote,\n isList: true,\n queryParams: {\n assigned_to_user_id: z\n .string()\n .optional()\n .describe(\"Filter by assigned user ID\"),\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n matter_id: z.string().optional().describe(\"Filter by matter ID\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n date_from: z\n .string()\n .optional()\n .describe(\"ISO date — filter from this date\"),\n date_to: z\n .string()\n .optional()\n .describe(\"ISO date — filter to this date\"),\n activity_tag: z.string().optional().describe(\"Filter by activity tag\"),\n },\n },\n\n // ── Payments ──\n {\n name: \"get_payment\",\n description:\n \"Get a single payment by ID with full details including status.\",\n sdkFn: paymentsGetPayment,\n schema: zPaymentDetail,\n pathParams: { id: \"Payment ID\" },\n },\n {\n name: \"list_payments\",\n description:\n \"List payments with optional filters by account, matter, bank account, type, or date range.\",\n sdkFn: paymentsGetPayments,\n schema: zPayment,\n isList: true,\n queryParams: {\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n matter_id: z.string().optional().describe(\"Filter by matter ID\"),\n bank_account_id: z\n .string()\n .optional()\n .describe(\"Filter by bank account ID\"),\n bank_account_type: z\n .enum([\"Operating\", \"Trust\", \"CreditCard\"])\n .optional()\n .describe(\"Filter by bank account type\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n date_from: z\n .string()\n .optional()\n .describe(\"ISO date — filter from this date\"),\n date_to: z\n .string()\n .optional()\n .describe(\"ISO date — filter to this date\"),\n },\n },\n\n // ── Relationships ──\n {\n name: \"get_relationship\",\n description: \"Get a single matter-contact relationship by ID.\",\n sdkFn: relationshipsGetRelationship,\n schema: zRelationship,\n pathParams: { id: \"Relationship ID\" },\n },\n {\n name: \"list_relationships\",\n description:\n \"List relationships between contacts and matters with optional filters.\",\n sdkFn: relationshipsGetRelationships,\n schema: zRelationship,\n isList: true,\n queryParams: {\n contact_id: z.string().optional().describe(\"Filter by contact ID\"),\n matter_id: z.string().optional().describe(\"Filter by matter ID\"),\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n },\n },\n\n // ── Tags ──\n {\n name: \"list_account_tags\",\n description: \"List all tags available for accounts.\",\n sdkFn: tagsGetTagsForAccounts,\n schema: zTag,\n isList: true,\n },\n {\n name: \"list_matter_tags\",\n description: \"List all tags available for matters.\",\n sdkFn: tagsGetTagsForProjects,\n schema: zTag,\n isList: true,\n },\n {\n name: \"list_activity_tags\",\n description:\n \"List all tags available for activities (call logs, events, notes, etc.).\",\n sdkFn: tagsGetTagsForActivities,\n schema: zTag,\n isList: true,\n },\n\n // ── Tasks ──\n {\n name: \"get_task\",\n description: \"Get a single task by ID.\",\n sdkFn: tasksGetTask,\n schema: zTask,\n pathParams: { id: \"Task ID\" },\n },\n {\n name: \"list_tasks\",\n description:\n \"List tasks with optional filters by account, matter, user, status, due date range, or tag.\",\n sdkFn: tasksGetTasks,\n schema: zTask,\n isList: true,\n queryParams: {\n assigned_to_user_id: z\n .string()\n .optional()\n .describe(\"Filter by assigned user ID\"),\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n matter_id: z.string().optional().describe(\"Filter by matter ID\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n status: z\n .enum([\"NotCompleted\", \"InProgress\", \"Completed\", \"Conditional\"])\n .optional()\n .describe(\"Filter by task status\"),\n due_date_from: z\n .string()\n .optional()\n .describe(\"ISO date — filter by due date from\"),\n due_date_to: z\n .string()\n .optional()\n .describe(\"ISO date — filter by due date to\"),\n activity_tag: z.string().optional().describe(\"Filter by activity tag\"),\n },\n },\n\n // ── Time Entries ──\n {\n name: \"get_time_entry\",\n description:\n \"Get a single time entry by ID. Hours are decimal (e.g. 1.5 = 1h30m).\",\n sdkFn: timeEntriesGetTimeEntry,\n schema: zTimeEntry,\n pathParams: { id: \"Time Entry ID\" },\n },\n {\n name: \"list_time_entries\",\n description:\n \"List time entries with optional filters by account, matter, user, item, or date range.\",\n sdkFn: timeEntriesGetTimeEntrys,\n schema: zTimeEntry,\n isList: true,\n queryParams: {\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n matter_id: z.string().optional().describe(\"Filter by matter ID\"),\n user_id: z.string().optional().describe(\"Filter by user ID\"),\n item_id: z.string().optional().describe(\"Filter by item ID\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n date_from: z\n .string()\n .optional()\n .describe(\"ISO date — filter from this date\"),\n date_to: z\n .string()\n .optional()\n .describe(\"ISO date — filter to this date\"),\n },\n },\n\n // ── Users ──\n {\n name: \"get_me\",\n description: \"Get the currently authenticated user's profile.\",\n sdkFn: usersMe,\n schema: zUser,\n },\n {\n name: \"get_user\",\n description: \"Get a single user by ID.\",\n sdkFn: usersGetUser,\n schema: zUser,\n pathParams: { id: \"User ID\" },\n },\n {\n name: \"list_users\",\n description:\n \"List users with optional filters by creation date, update date, or email address.\",\n sdkFn: usersGetUsers,\n schema: zUser,\n isList: true,\n queryParams: {\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n email_address: z\n .string()\n .optional()\n .describe(\"Filter by email address\"),\n },\n },\n ];\n\n // ── Register all tools ──\n\n for (const tool of tools) {\n const inputSchema: Record<string, z.ZodType> = {};\n\n // Add path params as required strings\n if (tool.pathParams) {\n for (const [paramName, description] of Object.entries(tool.pathParams)) {\n inputSchema[paramName] = z.string().describe(description);\n }\n }\n\n // Add query params (already full Zod types)\n if (tool.queryParams) {\n for (const [paramName, zodType] of Object.entries(tool.queryParams)) {\n inputSchema[paramName] = zodType;\n }\n }\n\n const outputSchema = tool.schema\n ? tool.isList\n ? listOf(tool.schema)\n : tool.schema\n : undefined;\n\n server.registerTool(\n tool.name,\n {\n description: tool.description,\n inputSchema:\n Object.keys(inputSchema).length > 0 ? inputSchema : undefined,\n outputSchema,\n },\n createToolHandler(tool),\n );\n }\n\n return server;\n}\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { client } from './client.gen.js';\nimport type { Client, Options as Options2, TDataShape } from './client/index.js';\nimport type { AccountsDeleteData, AccountsDeleteResponses, AccountsGetAccountData, AccountsGetAccountResponses, AccountsGetAccountsData, AccountsGetAccountsResponses, AccountsPostAccountData, AccountsPostAccountResponses, AccountsPutAccountData, AccountsPutAccountResponses, BankAccountsDeleteData, BankAccountsDeleteResponses, BankAccountsGetBankAccountData, BankAccountsGetBankAccountResponses, BankAccountsGetBankAccountsData, BankAccountsGetBankAccountsResponses, BankAccountsPostBankAccountData, BankAccountsPostBankAccountResponses, BankAccountsPutBankAccountData, BankAccountsPutBankAccountResponses, CallLogsDeleteData, CallLogsDeleteResponses, CallLogsGetCallLogData, CallLogsGetCallLogResponses, CallLogsGetCallLogsData, CallLogsGetCallLogsResponses, CallLogsPostCallLogData, CallLogsPostCallLogResponses, CallLogsPutCallLogData, CallLogsPutCallLogResponses, ContactsGetContactData, ContactsGetContactResponses, ContactsGetContactsData, ContactsGetContactsResponses, CustomFieldsGetCustomFieldData, CustomFieldsGetCustomFieldResponses, CustomFieldsGetCustomFieldsForAccountData, CustomFieldsGetCustomFieldsForAccountResponses, CustomFieldsGetCustomFieldsForContactData, CustomFieldsGetCustomFieldsForContactResponses, CustomFieldsGetCustomFieldsForMatterData, CustomFieldsGetCustomFieldsForMatterResponses, EmailsDeleteData, EmailsDeleteResponses, EmailsGetEmailData, EmailsGetEmailResponses, EmailsGetEmailsData, EmailsGetEmailsResponses, EmailsPostEmailData, EmailsPostEmailResponses, EmailsPutAccountData, EmailsPutAccountResponses, EventsDeleteData, EventsDeleteResponses, EventsGetEventData, EventsGetEventResponses, EventsGetEventsData, EventsGetEventsResponses, EventsPostAccountData, EventsPostAccountResponses, EventsPutAccountData, EventsPutAccountResponses, ExpenseCategoriesDeleteData, ExpenseCategoriesDeleteResponses, ExpenseCategoriesGetExpenseCategoriesData, ExpenseCategoriesGetExpenseCategoriesResponses, ExpenseCategoriesGetExpenseCategoryData, ExpenseCategoriesGetExpenseCategoryResponses, ExpenseCategoriesPostExpenseCategoryData, ExpenseCategoriesPostExpenseCategoryResponses, ExpenseCategoriesPutExpenseCategoryData, ExpenseCategoriesPutExpenseCategoryResponses, ExpensesDeleteData, ExpensesDeleteResponses, ExpensesGetExpenseData, ExpensesGetExpenseResponses, ExpensesGetExpensessData, ExpensesGetExpensessResponses, ExpensesPostAccountData, ExpensesPostAccountResponses, ExpensesPutAccountData, ExpensesPutAccountResponses, FilesDeleteData, FilesDeleteResponses, FilesDownloadFileData, FilesDownloadFileResponses, FilesGetFileData, FilesGetFileResponses, FilesGetFilesData, FilesGetFilesResponses, FilesPostFileData, FilesPostFileResponses, FilesPostFileToBoxData, FilesPostFileToBoxResponses, FilesPutFileData, FilesPutFileResponses, FlatFeesDeleteData, FlatFeesDeleteResponses, FlatFeesGetFlatFeeData, FlatFeesGetFlatFeeResponses, FlatFeesGetFlatFeesData, FlatFeesGetFlatFeesResponses, FlatFeesPostAccountData, FlatFeesPostAccountResponses, FlatFeesPutAccountData, FlatFeesPutAccountResponses, InvoicesDeleteData, InvoicesDeleteResponses, InvoicesGetInvoiceData, InvoicesGetInvoiceResponses, InvoicesGetInvoicesData, InvoicesGetInvoicesResponses, ItemsDeleteData, ItemsDeleteResponses, ItemsGetItemData, ItemsGetItemResponses, ItemsGetItemsData, ItemsGetItemsResponses, ItemsPostItemData, ItemsPostItemResponses, ItemsPutItemData, ItemsPutItemResponses, MattersDeleteData, MattersDeleteResponses, MattersGetMatterData, MattersGetMatterResponses, MattersGetMattersData, MattersGetMattersResponses, MattersPostAccountData, MattersPostAccountResponses, MattersPutAccountData, MattersPutAccountResponses, MessagesDeleteData, MessagesDeleteResponses, MessagesGetMessagesAsyncData, MessagesGetMessagesAsyncResponses, MessagesPostMessageData, MessagesPostMessageResponses, MessagesPutMessageData, MessagesPutMessageResponses, NotesDeleteData, NotesDeleteResponses, NotesGetNoteData, NotesGetNoteResponses, NotesGetNotesData, NotesGetNotesResponses, NotesPostNoteData, NotesPostNoteResponses, NotesPutNoteData, NotesPutNoteResponses, PaymentsDeleteData, PaymentsDeleteResponses, PaymentsGetPaymentData, PaymentsGetPaymentResponses, PaymentsGetPaymentsData, PaymentsGetPaymentsResponses, RelationshipsDeleteData, RelationshipsDeleteResponses, RelationshipsGetRelationshipData, RelationshipsGetRelationshipResponses, RelationshipsGetRelationshipsData, RelationshipsGetRelationshipsResponses, RelationshipsPostAccountData, RelationshipsPostAccountResponses, RelationshipsPutRelationshipData, RelationshipsPutRelationshipResponses, TagsGetTagsForAccountsData, TagsGetTagsForAccountsResponses, TagsGetTagsForActivitiesData, TagsGetTagsForActivitiesResponses, TagsGetTagsForProjectsData, TagsGetTagsForProjectsResponses, TasksDeleteData, TasksDeleteResponses, TasksGetTaskData, TasksGetTaskResponses, TasksGetTasksData, TasksGetTasksResponses, TasksPostAccountData, TasksPostAccountResponses, TasksPutAccountData, TasksPutAccountResponses, TimeEntriesDeleteData, TimeEntriesDeleteResponses, TimeEntriesGetTimeEntryData, TimeEntriesGetTimeEntryResponses, TimeEntriesGetTimeEntrysData, TimeEntriesGetTimeEntrysResponses, TimeEntriesPostAccountData, TimeEntriesPostAccountResponses, TimeEntriesPutAccountData, TimeEntriesPutAccountResponses, UsersDeleteData, UsersDeleteResponses, UsersGetUserData, UsersGetUserResponses, UsersGetUsersData, UsersGetUsersResponses, UsersMeData, UsersMeResponses } from './types.gen.js';\n\nexport type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options2<TData, ThrowOnError> & {\n /**\n * You can provide a client instance returned by `createClient()` instead of\n * individual options. This might be also useful if you want to implement a\n * custom client.\n */\n client?: Client;\n /**\n * You can pass arbitrary values through the `meta` object. This can be\n * used to access values that aren't defined as part of the SDK function.\n */\n meta?: Record<string, unknown>;\n};\n\nexport const accountsGetAccount = <ThrowOnError extends boolean = false>(options: Options<AccountsGetAccountData, ThrowOnError>) => (options.client ?? client).get<AccountsGetAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/accounts/{id}',\n ...options\n});\n\nexport const accountsDelete = <ThrowOnError extends boolean = false>(options: Options<AccountsDeleteData, ThrowOnError>) => (options.client ?? client).delete<AccountsDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/accounts',\n ...options\n});\n\nexport const accountsGetAccounts = <ThrowOnError extends boolean = false>(options?: Options<AccountsGetAccountsData, ThrowOnError>) => (options?.client ?? client).get<AccountsGetAccountsResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/accounts',\n ...options\n});\n\nexport const accountsPostAccount = <ThrowOnError extends boolean = false>(options: Options<AccountsPostAccountData, ThrowOnError>) => (options.client ?? client).post<AccountsPostAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/accounts',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const accountsPutAccount = <ThrowOnError extends boolean = false>(options: Options<AccountsPutAccountData, ThrowOnError>) => (options.client ?? client).put<AccountsPutAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/accounts',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const bankAccountsGetBankAccount = <ThrowOnError extends boolean = false>(options: Options<BankAccountsGetBankAccountData, ThrowOnError>) => (options.client ?? client).get<BankAccountsGetBankAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/bankaccounts/{id}',\n ...options\n});\n\nexport const bankAccountsDelete = <ThrowOnError extends boolean = false>(options: Options<BankAccountsDeleteData, ThrowOnError>) => (options.client ?? client).delete<BankAccountsDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/bankaccounts',\n ...options\n});\n\nexport const bankAccountsGetBankAccounts = <ThrowOnError extends boolean = false>(options?: Options<BankAccountsGetBankAccountsData, ThrowOnError>) => (options?.client ?? client).get<BankAccountsGetBankAccountsResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/bankaccounts',\n ...options\n});\n\nexport const bankAccountsPostBankAccount = <ThrowOnError extends boolean = false>(options: Options<BankAccountsPostBankAccountData, ThrowOnError>) => (options.client ?? client).post<BankAccountsPostBankAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/bankaccounts',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const bankAccountsPutBankAccount = <ThrowOnError extends boolean = false>(options: Options<BankAccountsPutBankAccountData, ThrowOnError>) => (options.client ?? client).put<BankAccountsPutBankAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/bankaccounts',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const callLogsGetCallLog = <ThrowOnError extends boolean = false>(options: Options<CallLogsGetCallLogData, ThrowOnError>) => (options.client ?? client).get<CallLogsGetCallLogResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/calllogs/{id}',\n ...options\n});\n\nexport const callLogsDelete = <ThrowOnError extends boolean = false>(options: Options<CallLogsDeleteData, ThrowOnError>) => (options.client ?? client).delete<CallLogsDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/calllogs',\n ...options\n});\n\nexport const callLogsGetCallLogs = <ThrowOnError extends boolean = false>(options?: Options<CallLogsGetCallLogsData, ThrowOnError>) => (options?.client ?? client).get<CallLogsGetCallLogsResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/calllogs',\n ...options\n});\n\nexport const callLogsPostCallLog = <ThrowOnError extends boolean = false>(options: Options<CallLogsPostCallLogData, ThrowOnError>) => (options.client ?? client).post<CallLogsPostCallLogResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/calllogs',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const callLogsPutCallLog = <ThrowOnError extends boolean = false>(options: Options<CallLogsPutCallLogData, ThrowOnError>) => (options.client ?? client).put<CallLogsPutCallLogResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/calllogs',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const contactsGetContact = <ThrowOnError extends boolean = false>(options: Options<ContactsGetContactData, ThrowOnError>) => (options.client ?? client).get<ContactsGetContactResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/contacts/{id}',\n ...options\n});\n\nexport const contactsGetContacts = <ThrowOnError extends boolean = false>(options?: Options<ContactsGetContactsData, ThrowOnError>) => (options?.client ?? client).get<ContactsGetContactsResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/contacts',\n ...options\n});\n\nexport const customFieldsGetCustomFieldsForAccount = <ThrowOnError extends boolean = false>(options?: Options<CustomFieldsGetCustomFieldsForAccountData, ThrowOnError>) => (options?.client ?? client).get<CustomFieldsGetCustomFieldsForAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/customfields/company',\n ...options\n});\n\nexport const customFieldsGetCustomFieldsForMatter = <ThrowOnError extends boolean = false>(options?: Options<CustomFieldsGetCustomFieldsForMatterData, ThrowOnError>) => (options?.client ?? client).get<CustomFieldsGetCustomFieldsForMatterResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/customfields/matter',\n ...options\n});\n\nexport const customFieldsGetCustomFieldsForContact = <ThrowOnError extends boolean = false>(options?: Options<CustomFieldsGetCustomFieldsForContactData, ThrowOnError>) => (options?.client ?? client).get<CustomFieldsGetCustomFieldsForContactResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/customfields/contact',\n ...options\n});\n\nexport const customFieldsGetCustomField = <ThrowOnError extends boolean = false>(options: Options<CustomFieldsGetCustomFieldData, ThrowOnError>) => (options.client ?? client).get<CustomFieldsGetCustomFieldResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/customfields/{id}',\n ...options\n});\n\nexport const emailsGetEmail = <ThrowOnError extends boolean = false>(options: Options<EmailsGetEmailData, ThrowOnError>) => (options.client ?? client).get<EmailsGetEmailResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/emails/{id}',\n ...options\n});\n\nexport const emailsDelete = <ThrowOnError extends boolean = false>(options: Options<EmailsDeleteData, ThrowOnError>) => (options.client ?? client).delete<EmailsDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/emails',\n ...options\n});\n\nexport const emailsGetEmails = <ThrowOnError extends boolean = false>(options?: Options<EmailsGetEmailsData, ThrowOnError>) => (options?.client ?? client).get<EmailsGetEmailsResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/emails',\n ...options\n});\n\nexport const emailsPostEmail = <ThrowOnError extends boolean = false>(options: Options<EmailsPostEmailData, ThrowOnError>) => (options.client ?? client).post<EmailsPostEmailResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/emails',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const emailsPutAccount = <ThrowOnError extends boolean = false>(options: Options<EmailsPutAccountData, ThrowOnError>) => (options.client ?? client).put<EmailsPutAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/emails',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const eventsGetEvent = <ThrowOnError extends boolean = false>(options: Options<EventsGetEventData, ThrowOnError>) => (options.client ?? client).get<EventsGetEventResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/events/{id}',\n ...options\n});\n\nexport const eventsDelete = <ThrowOnError extends boolean = false>(options: Options<EventsDeleteData, ThrowOnError>) => (options.client ?? client).delete<EventsDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/events',\n ...options\n});\n\nexport const eventsGetEvents = <ThrowOnError extends boolean = false>(options?: Options<EventsGetEventsData, ThrowOnError>) => (options?.client ?? client).get<EventsGetEventsResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/events',\n ...options\n});\n\nexport const eventsPostAccount = <ThrowOnError extends boolean = false>(options: Options<EventsPostAccountData, ThrowOnError>) => (options.client ?? client).post<EventsPostAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/events',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const eventsPutAccount = <ThrowOnError extends boolean = false>(options: Options<EventsPutAccountData, ThrowOnError>) => (options.client ?? client).put<EventsPutAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/events',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const expenseCategoriesGetExpenseCategory = <ThrowOnError extends boolean = false>(options: Options<ExpenseCategoriesGetExpenseCategoryData, ThrowOnError>) => (options.client ?? client).get<ExpenseCategoriesGetExpenseCategoryResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/ExpenseCategories/{id}',\n ...options\n});\n\nexport const expenseCategoriesDelete = <ThrowOnError extends boolean = false>(options: Options<ExpenseCategoriesDeleteData, ThrowOnError>) => (options.client ?? client).delete<ExpenseCategoriesDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/ExpenseCategories',\n ...options\n});\n\nexport const expenseCategoriesGetExpenseCategories = <ThrowOnError extends boolean = false>(options?: Options<ExpenseCategoriesGetExpenseCategoriesData, ThrowOnError>) => (options?.client ?? client).get<ExpenseCategoriesGetExpenseCategoriesResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/ExpenseCategories',\n ...options\n});\n\nexport const expenseCategoriesPostExpenseCategory = <ThrowOnError extends boolean = false>(options: Options<ExpenseCategoriesPostExpenseCategoryData, ThrowOnError>) => (options.client ?? client).post<ExpenseCategoriesPostExpenseCategoryResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/ExpenseCategories',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const expenseCategoriesPutExpenseCategory = <ThrowOnError extends boolean = false>(options: Options<ExpenseCategoriesPutExpenseCategoryData, ThrowOnError>) => (options.client ?? client).put<ExpenseCategoriesPutExpenseCategoryResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/ExpenseCategories',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const expensesGetExpense = <ThrowOnError extends boolean = false>(options: Options<ExpensesGetExpenseData, ThrowOnError>) => (options.client ?? client).get<ExpensesGetExpenseResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/Expenses/{id}',\n ...options\n});\n\nexport const expensesDelete = <ThrowOnError extends boolean = false>(options: Options<ExpensesDeleteData, ThrowOnError>) => (options.client ?? client).delete<ExpensesDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/Expenses',\n ...options\n});\n\nexport const expensesGetExpensess = <ThrowOnError extends boolean = false>(options?: Options<ExpensesGetExpensessData, ThrowOnError>) => (options?.client ?? client).get<ExpensesGetExpensessResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/Expenses',\n ...options\n});\n\nexport const expensesPostAccount = <ThrowOnError extends boolean = false>(options: Options<ExpensesPostAccountData, ThrowOnError>) => (options.client ?? client).post<ExpensesPostAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/Expenses',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const expensesPutAccount = <ThrowOnError extends boolean = false>(options: Options<ExpensesPutAccountData, ThrowOnError>) => (options.client ?? client).put<ExpensesPutAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/Expenses',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const filesGetFile = <ThrowOnError extends boolean = false>(options: Options<FilesGetFileData, ThrowOnError>) => (options.client ?? client).get<FilesGetFileResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/files/{id}',\n ...options\n});\n\nexport const filesDownloadFile = <ThrowOnError extends boolean = false>(options: Options<FilesDownloadFileData, ThrowOnError>) => (options.client ?? client).get<FilesDownloadFileResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/files/download/{id}',\n ...options\n});\n\nexport const filesPostFileToBox = <ThrowOnError extends boolean = false>(options?: Options<FilesPostFileToBoxData, ThrowOnError>) => (options?.client ?? client).post<FilesPostFileToBoxResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/files/box',\n ...options\n});\n\nexport const filesDelete = <ThrowOnError extends boolean = false>(options: Options<FilesDeleteData, ThrowOnError>) => (options.client ?? client).delete<FilesDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/files',\n ...options\n});\n\nexport const filesGetFiles = <ThrowOnError extends boolean = false>(options?: Options<FilesGetFilesData, ThrowOnError>) => (options?.client ?? client).get<FilesGetFilesResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/files',\n ...options\n});\n\nexport const filesPostFile = <ThrowOnError extends boolean = false>(options?: Options<FilesPostFileData, ThrowOnError>) => (options?.client ?? client).post<FilesPostFileResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/files',\n ...options\n});\n\nexport const filesPutFile = <ThrowOnError extends boolean = false>(options: Options<FilesPutFileData, ThrowOnError>) => (options.client ?? client).put<FilesPutFileResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/files',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const flatFeesGetFlatFee = <ThrowOnError extends boolean = false>(options: Options<FlatFeesGetFlatFeeData, ThrowOnError>) => (options.client ?? client).get<FlatFeesGetFlatFeeResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/flatfees/{id}',\n ...options\n});\n\nexport const flatFeesDelete = <ThrowOnError extends boolean = false>(options: Options<FlatFeesDeleteData, ThrowOnError>) => (options.client ?? client).delete<FlatFeesDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/flatfees',\n ...options\n});\n\nexport const flatFeesGetFlatFees = <ThrowOnError extends boolean = false>(options?: Options<FlatFeesGetFlatFeesData, ThrowOnError>) => (options?.client ?? client).get<FlatFeesGetFlatFeesResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/flatfees',\n ...options\n});\n\nexport const flatFeesPostAccount = <ThrowOnError extends boolean = false>(options: Options<FlatFeesPostAccountData, ThrowOnError>) => (options.client ?? client).post<FlatFeesPostAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/flatfees',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const flatFeesPutAccount = <ThrowOnError extends boolean = false>(options: Options<FlatFeesPutAccountData, ThrowOnError>) => (options.client ?? client).put<FlatFeesPutAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/flatfees',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const invoicesGetInvoice = <ThrowOnError extends boolean = false>(options: Options<InvoicesGetInvoiceData, ThrowOnError>) => (options.client ?? client).get<InvoicesGetInvoiceResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/invoices/{id}',\n ...options\n});\n\nexport const invoicesDelete = <ThrowOnError extends boolean = false>(options: Options<InvoicesDeleteData, ThrowOnError>) => (options.client ?? client).delete<InvoicesDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/invoices',\n ...options\n});\n\nexport const invoicesGetInvoices = <ThrowOnError extends boolean = false>(options?: Options<InvoicesGetInvoicesData, ThrowOnError>) => (options?.client ?? client).get<InvoicesGetInvoicesResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/invoices',\n ...options\n});\n\nexport const itemsGetItem = <ThrowOnError extends boolean = false>(options: Options<ItemsGetItemData, ThrowOnError>) => (options.client ?? client).get<ItemsGetItemResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/Items/{id}',\n ...options\n});\n\nexport const itemsDelete = <ThrowOnError extends boolean = false>(options: Options<ItemsDeleteData, ThrowOnError>) => (options.client ?? client).delete<ItemsDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/Items',\n ...options\n});\n\nexport const itemsGetItems = <ThrowOnError extends boolean = false>(options?: Options<ItemsGetItemsData, ThrowOnError>) => (options?.client ?? client).get<ItemsGetItemsResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/Items',\n ...options\n});\n\nexport const itemsPostItem = <ThrowOnError extends boolean = false>(options: Options<ItemsPostItemData, ThrowOnError>) => (options.client ?? client).post<ItemsPostItemResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/Items',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const itemsPutItem = <ThrowOnError extends boolean = false>(options: Options<ItemsPutItemData, ThrowOnError>) => (options.client ?? client).put<ItemsPutItemResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/Items',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const mattersGetMatter = <ThrowOnError extends boolean = false>(options: Options<MattersGetMatterData, ThrowOnError>) => (options.client ?? client).get<MattersGetMatterResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/matters/{id}',\n ...options\n});\n\nexport const mattersDelete = <ThrowOnError extends boolean = false>(options: Options<MattersDeleteData, ThrowOnError>) => (options.client ?? client).delete<MattersDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/matters',\n ...options\n});\n\nexport const mattersGetMatters = <ThrowOnError extends boolean = false>(options?: Options<MattersGetMattersData, ThrowOnError>) => (options?.client ?? client).get<MattersGetMattersResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/matters',\n ...options\n});\n\nexport const mattersPostAccount = <ThrowOnError extends boolean = false>(options: Options<MattersPostAccountData, ThrowOnError>) => (options.client ?? client).post<MattersPostAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/matters',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const mattersPutAccount = <ThrowOnError extends boolean = false>(options: Options<MattersPutAccountData, ThrowOnError>) => (options.client ?? client).put<MattersPutAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/matters',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const messagesDelete = <ThrowOnError extends boolean = false>(options: Options<MessagesDeleteData, ThrowOnError>) => (options.client ?? client).delete<MessagesDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/messages',\n ...options\n});\n\nexport const messagesGetMessagesAsync = <ThrowOnError extends boolean = false>(options?: Options<MessagesGetMessagesAsyncData, ThrowOnError>) => (options?.client ?? client).get<MessagesGetMessagesAsyncResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/messages',\n ...options\n});\n\nexport const messagesPostMessage = <ThrowOnError extends boolean = false>(options: Options<MessagesPostMessageData, ThrowOnError>) => (options.client ?? client).post<MessagesPostMessageResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/messages',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const messagesPutMessage = <ThrowOnError extends boolean = false>(options: Options<MessagesPutMessageData, ThrowOnError>) => (options.client ?? client).put<MessagesPutMessageResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/messages',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const notesGetNote = <ThrowOnError extends boolean = false>(options: Options<NotesGetNoteData, ThrowOnError>) => (options.client ?? client).get<NotesGetNoteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/notes/{id}',\n ...options\n});\n\nexport const notesDelete = <ThrowOnError extends boolean = false>(options: Options<NotesDeleteData, ThrowOnError>) => (options.client ?? client).delete<NotesDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/notes',\n ...options\n});\n\nexport const notesGetNotes = <ThrowOnError extends boolean = false>(options?: Options<NotesGetNotesData, ThrowOnError>) => (options?.client ?? client).get<NotesGetNotesResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/notes',\n ...options\n});\n\nexport const notesPostNote = <ThrowOnError extends boolean = false>(options: Options<NotesPostNoteData, ThrowOnError>) => (options.client ?? client).post<NotesPostNoteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/notes',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const notesPutNote = <ThrowOnError extends boolean = false>(options: Options<NotesPutNoteData, ThrowOnError>) => (options.client ?? client).put<NotesPutNoteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/notes',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const paymentsGetPayment = <ThrowOnError extends boolean = false>(options: Options<PaymentsGetPaymentData, ThrowOnError>) => (options.client ?? client).get<PaymentsGetPaymentResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/payments/{id}',\n ...options\n});\n\nexport const paymentsDelete = <ThrowOnError extends boolean = false>(options: Options<PaymentsDeleteData, ThrowOnError>) => (options.client ?? client).delete<PaymentsDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/payments',\n ...options\n});\n\nexport const paymentsGetPayments = <ThrowOnError extends boolean = false>(options?: Options<PaymentsGetPaymentsData, ThrowOnError>) => (options?.client ?? client).get<PaymentsGetPaymentsResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/payments',\n ...options\n});\n\nexport const relationshipsGetRelationship = <ThrowOnError extends boolean = false>(options: Options<RelationshipsGetRelationshipData, ThrowOnError>) => (options.client ?? client).get<RelationshipsGetRelationshipResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/relationships/{id}',\n ...options\n});\n\nexport const relationshipsDelete = <ThrowOnError extends boolean = false>(options: Options<RelationshipsDeleteData, ThrowOnError>) => (options.client ?? client).delete<RelationshipsDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/relationships',\n ...options\n});\n\nexport const relationshipsGetRelationships = <ThrowOnError extends boolean = false>(options?: Options<RelationshipsGetRelationshipsData, ThrowOnError>) => (options?.client ?? client).get<RelationshipsGetRelationshipsResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/relationships',\n ...options\n});\n\nexport const relationshipsPostAccount = <ThrowOnError extends boolean = false>(options: Options<RelationshipsPostAccountData, ThrowOnError>) => (options.client ?? client).post<RelationshipsPostAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/relationships',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const relationshipsPutRelationship = <ThrowOnError extends boolean = false>(options: Options<RelationshipsPutRelationshipData, ThrowOnError>) => (options.client ?? client).put<RelationshipsPutRelationshipResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/relationships',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const tagsGetTagsForAccounts = <ThrowOnError extends boolean = false>(options?: Options<TagsGetTagsForAccountsData, ThrowOnError>) => (options?.client ?? client).get<TagsGetTagsForAccountsResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/tags/account',\n ...options\n});\n\nexport const tagsGetTagsForProjects = <ThrowOnError extends boolean = false>(options?: Options<TagsGetTagsForProjectsData, ThrowOnError>) => (options?.client ?? client).get<TagsGetTagsForProjectsResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/tags/matter',\n ...options\n});\n\nexport const tagsGetTagsForActivities = <ThrowOnError extends boolean = false>(options?: Options<TagsGetTagsForActivitiesData, ThrowOnError>) => (options?.client ?? client).get<TagsGetTagsForActivitiesResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/tags/activity',\n ...options\n});\n\nexport const tasksGetTask = <ThrowOnError extends boolean = false>(options: Options<TasksGetTaskData, ThrowOnError>) => (options.client ?? client).get<TasksGetTaskResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/tasks/{id}',\n ...options\n});\n\nexport const tasksDelete = <ThrowOnError extends boolean = false>(options: Options<TasksDeleteData, ThrowOnError>) => (options.client ?? client).delete<TasksDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/tasks',\n ...options\n});\n\nexport const tasksGetTasks = <ThrowOnError extends boolean = false>(options?: Options<TasksGetTasksData, ThrowOnError>) => (options?.client ?? client).get<TasksGetTasksResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/tasks',\n ...options\n});\n\nexport const tasksPostAccount = <ThrowOnError extends boolean = false>(options: Options<TasksPostAccountData, ThrowOnError>) => (options.client ?? client).post<TasksPostAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/tasks',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const tasksPutAccount = <ThrowOnError extends boolean = false>(options: Options<TasksPutAccountData, ThrowOnError>) => (options.client ?? client).put<TasksPutAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/tasks',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const timeEntriesGetTimeEntry = <ThrowOnError extends boolean = false>(options: Options<TimeEntriesGetTimeEntryData, ThrowOnError>) => (options.client ?? client).get<TimeEntriesGetTimeEntryResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/timeentries/{id}',\n ...options\n});\n\nexport const timeEntriesDelete = <ThrowOnError extends boolean = false>(options: Options<TimeEntriesDeleteData, ThrowOnError>) => (options.client ?? client).delete<TimeEntriesDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/timeentries',\n ...options\n});\n\nexport const timeEntriesGetTimeEntrys = <ThrowOnError extends boolean = false>(options?: Options<TimeEntriesGetTimeEntrysData, ThrowOnError>) => (options?.client ?? client).get<TimeEntriesGetTimeEntrysResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/timeentries',\n ...options\n});\n\nexport const timeEntriesPostAccount = <ThrowOnError extends boolean = false>(options: Options<TimeEntriesPostAccountData, ThrowOnError>) => (options.client ?? client).post<TimeEntriesPostAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/timeentries',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const timeEntriesPutAccount = <ThrowOnError extends boolean = false>(options: Options<TimeEntriesPutAccountData, ThrowOnError>) => (options.client ?? client).put<TimeEntriesPutAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/timeentries',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const usersMe = <ThrowOnError extends boolean = false>(options?: Options<UsersMeData, ThrowOnError>) => (options?.client ?? client).get<UsersMeResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/users/me',\n ...options\n});\n\nexport const usersGetUser = <ThrowOnError extends boolean = false>(options: Options<UsersGetUserData, ThrowOnError>) => (options.client ?? client).get<UsersGetUserResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/users/{id}',\n ...options\n});\n\nexport const usersDelete = <ThrowOnError extends boolean = false>(options: Options<UsersDeleteData, ThrowOnError>) => (options.client ?? client).delete<UsersDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/users',\n ...options\n});\n\nexport const usersGetUsers = <ThrowOnError extends boolean = false>(options?: Options<UsersGetUsersData, ThrowOnError>) => (options?.client ?? client).get<UsersGetUsersResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/users',\n ...options\n});\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport * as z from 'zod';\n\nexport const zUserReference = z.looseObject({\n id: z.string().nullable(),\n display_name: z.string().nullish(),\n email_address: z.string().nullish()\n});\n\nexport const zCustomFieldRef = z.looseObject({\n id: z.string().nullable(),\n label: z.string().nullish(),\n value_type: z.union([z.enum([\n 'TextBox',\n 'Date',\n 'DateTime',\n 'Number',\n 'Currency',\n 'TextEditor',\n 'DropDownList',\n 'Checkbox',\n 'Contact'\n ]), z.string()]).optional()\n});\n\nexport const zAccountReference = z.looseObject({\n id: z.string().nullable(),\n display_name: z.string().nullish()\n});\n\nexport const zContactReference = z.looseObject({\n account_ref: zAccountReference.nullish(),\n id: z.string().nullable(),\n display_name: z.string().nullish()\n});\n\nexport const zCustomFieldValue = z.looseObject({\n custom_field_ref: zCustomFieldRef.nullable(),\n value_boolean: z.boolean().nullish(),\n contact_ref: zContactReference.nullish(),\n value_date_time: z.string().nullish(),\n value_number: z.number().nullish(),\n value_string: z.string().nullish()\n});\n\n/**\n * Represents a contact. Each account can have multiple contacts. One of them must be the primary contact\n */\nexport const zContact = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n is_primary_contact: z.boolean().readonly().nullish(),\n display_name: z.string().readonly().nullish(),\n first_name: z.string().nullish(),\n middle_name: z.string().nullish(),\n last_name: z.string().nullish(),\n phone_mobile: z.string().nullish(),\n phone_home: z.string().nullish(),\n phone_fax: z.string().nullish(),\n phone_work: z.string().nullish(),\n email: z.string().nullish(),\n notes: z.string().nullish(),\n custom_field_values: z.array(zCustomFieldValue).nullish(),\n status: z.union([z.enum(['Active', 'Archived']), z.string()]).optional()\n});\n\n/**\n * An account is an entity that can represent either one contact, or multiple contacts. An account must contain at least one primary contact\n */\nexport const zAccount = z.looseObject({\n id: z.string().nullish(),\n display_name: z.string().readonly().nullish(),\n number: z.number().nullish(),\n company_name: z.string().nullish(),\n address_street_1: z.string().nullish(),\n address_street_2: z.string().nullish(),\n address_city: z.string().nullish(),\n address_state: z.string().nullish(),\n address_country: z.string().nullish(),\n address_zip_code: z.string().nullish(),\n tags: z.array(z.string()).nullish(),\n company_custom_field_values: z.array(zCustomFieldValue).nullish(),\n assigned_to_users: z.array(zUserReference).nullish(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish(),\n notes: z.string().nullish(),\n primary_contact: zContact.nullish(),\n other_contacts: z.array(zContact).nullish()\n});\n\n/**\n * Represents a bank account, either trust or operating. Each payment must be related to a bank account.\n */\nexport const zBankAccount = z.looseObject({\n id: z.string().nullable(),\n type: z.union([z.enum([\n 'Operating',\n 'Trust',\n 'CreditCard'\n ]), z.string()]).optional(),\n name: z.string().nullish()\n});\n\nexport const zMatter = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n number: z.number().nullish(),\n display_name: z.string().readonly().nullish(),\n name: z.string().nullable(),\n notes: z.string().nullish(),\n rate: z.string().nullish(),\n open_date: z.string().nullish(),\n close_date: z.string().nullish(),\n statute_of_limitation_date: z.string().nullish(),\n tags: z.array(z.string()).nullish(),\n status: z.union([z.enum([\n 'Closed',\n 'Pending',\n 'Open',\n 'Archived'\n ]), z.string()]),\n assigned_to_users: z.array(zUserReference).nullish(),\n custom_field_values: z.array(zCustomFieldValue).nullish(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish()\n});\n\nexport const zMatterReference = z.looseObject({\n id: z.string().nullable(),\n display_name: z.string().nullish()\n});\n\nexport const zCallLog = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullish(),\n subject: z.string().nullable(),\n duration: z.number().nullish(),\n notes: z.string().nullish(),\n date: z.string().nullish(),\n call_direction: z.union([z.enum(['Inbound', 'Outbound']), z.string()]).optional(),\n assigned_to_users: z.array(zUserReference).nullish(),\n tags: z.array(z.string()).nullish(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish()\n});\n\nexport const zCustomField = z.looseObject({\n id: z.string().nullish(),\n label: z.string().nullable(),\n value_type: z.union([z.enum([\n 'TextBox',\n 'Date',\n 'DateTime',\n 'Number',\n 'Currency',\n 'TextEditor',\n 'DropDownList',\n 'Checkbox',\n 'Contact'\n ]), z.string()]),\n dropdown_list_values: z.string().nullish(),\n help_text: z.string().nullish(),\n tooltip: z.string().nullish()\n});\n\nexport const zEmailAddress = z.looseObject({\n address: z.string().nullable(),\n display_name: z.string().nullish()\n});\n\nexport const zFileReference = z.looseObject({\n id: z.string().nullish(),\n file_name: z.string().nullish()\n});\n\nexport const zEmail = z.looseObject({\n id: z.string().nullish(),\n subject: z.string().nullable(),\n cc: z.array(zEmailAddress).nullish(),\n to: z.array(zEmailAddress).nullish(),\n from: zEmailAddress.nullish(),\n body_text: z.string().nullable(),\n body_html: z.string().nullish(),\n external_message_id: z.string().nullish(),\n external_thread_id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullish(),\n date: z.string().nullish(),\n tags: z.array(z.string()).nullish(),\n attachments: z.array(zFileReference).readonly().nullish(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish()\n});\n\nexport const zEvent = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullish(),\n subject: z.string().nullable(),\n location: z.string().nullish(),\n notes: z.string().nullish(),\n is_all_day: z.boolean().nullable(),\n start_date_time: z.string().nullable(),\n end_date_time: z.string().nullable(),\n tags: z.array(z.string()).nullish(),\n assigned_to_users: z.array(zUserReference).nullish(),\n assigned_to_contacts: z.array(zContactReference).nullish(),\n created_at: z.string().nullish(),\n updated_at: z.string().nullish()\n});\n\nexport const zExpenseCategory = z.looseObject({\n id: z.string().nullish(),\n name: z.string().nullish(),\n created_at: z.string().nullish(),\n updated_at: z.string().readonly().nullish()\n});\n\nexport const zExpense = z.looseObject({\n id: z.string().nullish(),\n is_billable: z.boolean().nullish(),\n is_billed: z.boolean().nullish(),\n date: z.string().nullish(),\n qty: z.number().nullable(),\n price: z.number().nullable(),\n amount: z.number().nullish(),\n description: z.string().nullish(),\n private_notes: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullable(),\n billed_by_user_ref: zUserReference.nullish(),\n expense_category_ref: zExpenseCategory.nullish(),\n created_at: z.string().nullish(),\n updated_at: z.string().nullish()\n});\n\nexport const zActivityReference = z.looseObject({\n id: z.string().nullish(),\n subject: z.string().nullish()\n});\n\nexport const zFile = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullish(),\n activity_ref: zActivityReference.nullish(),\n description: z.string().nullish(),\n file_name: z.string().nullable(),\n size: z.number().readonly().nullish(),\n content_type: z.string().readonly().nullish(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish()\n});\n\nexport const zItemReference = z.looseObject({\n id: z.string().nullable(),\n name: z.string().nullish()\n});\n\nexport const zFlatFee = z.looseObject({\n id: z.string().nullish(),\n is_billable: z.boolean().nullish(),\n is_billed: z.boolean().nullish(),\n date: z.string().nullable(),\n qty: z.number().nullable(),\n price: z.number().nullish(),\n description: z.string().nullish(),\n private_notes: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullable(),\n billed_by_user_ref: zUserReference.nullable(),\n item_ref: zItemReference.nullable(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish()\n});\n\nexport const zInvoiceLineItem = z.looseObject({\n quantity: z.number().nullish(),\n rate: z.number().nullish(),\n discount: z.number().nullish(),\n subtotal: z.number().nullish(),\n tax1_name: z.string().nullish(),\n tax1_rate: z.string().nullish(),\n tax1_amount: z.number().nullish(),\n tax2_name: z.string().nullish(),\n tax2_rate: z.string().nullish(),\n tax2_amount: z.number().nullish(),\n total: z.number().nullish(),\n date: z.string().nullish(),\n billed_by: z.string().nullish(),\n item_name: z.string().nullish(),\n item_description: z.string().nullish()\n});\n\nexport const zInvoice = z.looseObject({\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullish(),\n id: z.string().nullish(),\n issue_date: z.string().nullish(),\n due_date: z.string().nullish(),\n items_time_entries: z.array(zInvoiceLineItem).nullish(),\n items_expenses: z.array(zInvoiceLineItem).nullish(),\n items_flat_fees: z.array(zInvoiceLineItem).nullish(),\n subtotal: z.number().nullish(),\n tax: z.number().nullish(),\n discount: z.number().nullish(),\n total: z.number().nullish(),\n total_paid: z.number().nullish(),\n total_outstanding: z.number().nullish(),\n invoice_type: z.union([z.enum([\n 'Sale',\n 'Refund',\n 'Credit'\n ]), z.string()]).optional(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish()\n});\n\nexport const zItem = z.looseObject({\n id: z.string().nullish(),\n name: z.string().nullish(),\n code: z.string().nullish(),\n description: z.string().nullish(),\n rate: z.number().nullable(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish()\n});\n\nexport const zMessage = z.looseObject({\n id: z.string().nullish(),\n sender: zUserReference.nullish(),\n contact_id: z.string().nullish(),\n contact: zContactReference.nullish(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish(),\n type: z.union([z.enum(['Text', 'Secure']), z.string()]).optional(),\n matter_id: z.string().nullish(),\n account_id: z.string().nullish(),\n subject: z.string().nullish(),\n body: z.string().nullish(),\n sent_date: z.string().nullish(),\n conversation_id: z.string().nullish(),\n external_conversation_id: z.string().nullish(),\n firm_text_phone_number: z.string().nullish(),\n firm_location_name: z.string().nullish(),\n user_name: z.string().nullish(),\n user_email: z.string().nullish(),\n sent_by_contact: z.boolean().nullish()\n});\n\nexport const zNote = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullish(),\n subject: z.string().nullable(),\n note: z.string().nullish(),\n assigned_to_users: z.array(zUserReference).nullish(),\n date: z.string().nullish(),\n tags: z.array(z.string()).nullish(),\n created_at: z.string().nullish(),\n updated_at: z.string().nullish()\n});\n\nexport const zPaymentDetail = z.looseObject({\n refundedAmount: z.number().nullish(),\n id: z.string().nullish(),\n account_ref: zAccountReference.nullable(),\n matter_ref: zMatterReference.nullish(),\n number: z.number().nullish(),\n date: z.string().nullable(),\n total_amount: z.number().nullable(),\n unapplied_amount: z.number().nullish(),\n notes: z.string().nullish(),\n payee: z.string().nullish(),\n to_print: z.boolean().nullish(),\n check_number: z.number().nullish(),\n bank_account: zBankAccount.nullable(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish(),\n status: z.union([z.enum([\n 'Pending',\n 'Failed',\n 'Success',\n 'Refunded',\n 'RefundPending',\n 'Canceled'\n ]), z.string()]).optional()\n});\n\nexport const zPayment = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullable(),\n matter_ref: zMatterReference.nullish(),\n number: z.number().nullish(),\n date: z.string().nullable(),\n total_amount: z.number().nullable(),\n unapplied_amount: z.number().nullish(),\n notes: z.string().nullish(),\n payee: z.string().nullish(),\n to_print: z.boolean().nullish(),\n check_number: z.number().nullish(),\n bank_account: zBankAccount.nullable(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish(),\n status: z.union([z.enum([\n 'Pending',\n 'Failed',\n 'Success',\n 'Refunded',\n 'RefundPending',\n 'Canceled'\n ]), z.string()]).optional()\n});\n\nexport const zRelationship = z.looseObject({\n id: z.string().nullish(),\n contact_ref: zContactReference.nullable(),\n matter_ref: zMatterReference.nullable(),\n name: z.string().nullable(),\n notes: z.string().nullish()\n});\n\nexport const zTag = z.looseObject({\n created_at: z.string().nullish(),\n name: z.string().nullish()\n});\n\nexport const zTask = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullish(),\n subject: z.string().nullable(),\n notes: z.string().nullish(),\n priority: z.union([z.enum([\n 'Low',\n 'Medium',\n 'High'\n ]), z.string()]).optional(),\n status: z.union([z.enum([\n 'NotCompleted',\n 'InProgress',\n 'Completed',\n 'Conditional'\n ]), z.string()]).optional(),\n due_date: z.string().nullish(),\n assigned_to_users: z.array(zUserReference).nullish(),\n assigned_to_contacts: z.array(zContactReference).nullish(),\n tags: z.array(z.string()).nullish(),\n created_at: z.string().nullish(),\n updated_at: z.string().nullish()\n});\n\nexport const zTimeEntry = z.looseObject({\n id: z.string().nullish(),\n is_billable: z.boolean().nullish(),\n is_billed: z.boolean().nullish(),\n date: z.string().nullable(),\n hours: z.number().nullable(),\n rate: z.number().nullish(),\n description: z.string().nullish(),\n private_notes: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullable(),\n billed_by_user_ref: zUserReference.nullable(),\n item_ref: zItemReference.nullish(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish()\n});\n\nexport const zUser = z.looseObject({\n id: z.string().nullish(),\n is_active: z.boolean().nullish(),\n display_name: z.string().nullish(),\n first_name: z.string().nullish(),\n last_name: z.string().nullish(),\n middle_name: z.string().nullish(),\n email: z.string().nullish(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish()\n});\n\n/**\n * Represents a contact. Each account can have multiple contacts. One of them must be the primary contact\n */\nexport const zContactWritable = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n first_name: z.string().nullish(),\n middle_name: z.string().nullish(),\n last_name: z.string().nullish(),\n phone_mobile: z.string().nullish(),\n phone_home: z.string().nullish(),\n phone_fax: z.string().nullish(),\n phone_work: z.string().nullish(),\n email: z.string().nullish(),\n notes: z.string().nullish(),\n custom_field_values: z.array(zCustomFieldValue).nullish()\n});\n\n/**\n * An account is an entity that can represent either one contact, or multiple contacts. An account must contain at least one primary contact\n */\nexport const zAccountWritable = z.looseObject({\n id: z.string().nullish(),\n number: z.number().nullish(),\n company_name: z.string().nullish(),\n address_street_1: z.string().nullish(),\n address_street_2: z.string().nullish(),\n address_city: z.string().nullish(),\n address_state: z.string().nullish(),\n address_country: z.string().nullish(),\n address_zip_code: z.string().nullish(),\n tags: z.array(z.string()).nullish(),\n company_custom_field_values: z.array(zCustomFieldValue).nullish(),\n assigned_to_users: z.array(zUserReference).nullish(),\n notes: z.string().nullish(),\n primary_contact: zContactWritable.nullish(),\n other_contacts: z.array(zContactWritable).nullish()\n});\n\nexport const zMatterWritable = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n number: z.number().nullish(),\n name: z.string().nullable(),\n notes: z.string().nullish(),\n rate: z.string().nullish(),\n open_date: z.string().nullish(),\n close_date: z.string().nullish(),\n statute_of_limitation_date: z.string().nullish(),\n tags: z.array(z.string()).nullish(),\n status: z.union([z.enum([\n 'Closed',\n 'Pending',\n 'Open',\n 'Archived'\n ]), z.string()]),\n assigned_to_users: z.array(zUserReference).nullish(),\n custom_field_values: z.array(zCustomFieldValue).nullish()\n});\n\nexport const zCallLogWritable = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullish(),\n subject: z.string().nullable(),\n duration: z.number().nullish(),\n notes: z.string().nullish(),\n date: z.string().nullish(),\n call_direction: z.union([z.enum(['Inbound', 'Outbound']), z.string()]).optional(),\n assigned_to_users: z.array(zUserReference).nullish(),\n tags: z.array(z.string()).nullish()\n});\n\nexport const zEmailWritable = z.looseObject({\n id: z.string().nullish(),\n subject: z.string().nullable(),\n cc: z.array(zEmailAddress).nullish(),\n to: z.array(zEmailAddress).nullish(),\n from: zEmailAddress.nullish(),\n body_text: z.string().nullable(),\n body_html: z.string().nullish(),\n external_message_id: z.string().nullish(),\n external_thread_id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullish(),\n date: z.string().nullish(),\n tags: z.array(z.string()).nullish()\n});\n\nexport const zExpenseCategoryWritable = z.looseObject({\n id: z.string().nullish(),\n name: z.string().nullish(),\n created_at: z.string().nullish()\n});\n\nexport const zExpenseWritable = z.looseObject({\n id: z.string().nullish(),\n is_billable: z.boolean().nullish(),\n is_billed: z.boolean().nullish(),\n date: z.string().nullish(),\n qty: z.number().nullable(),\n price: z.number().nullable(),\n amount: z.number().nullish(),\n description: z.string().nullish(),\n private_notes: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullable(),\n billed_by_user_ref: zUserReference.nullish(),\n expense_category_ref: zExpenseCategoryWritable.nullish(),\n created_at: z.string().nullish(),\n updated_at: z.string().nullish()\n});\n\nexport const zFileWritable = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullish(),\n activity_ref: zActivityReference.nullish(),\n description: z.string().nullish(),\n file_name: z.string().nullable()\n});\n\nexport const zFlatFeeWritable = z.looseObject({\n id: z.string().nullish(),\n is_billable: z.boolean().nullish(),\n is_billed: z.boolean().nullish(),\n date: z.string().nullable(),\n qty: z.number().nullable(),\n price: z.number().nullish(),\n description: z.string().nullish(),\n private_notes: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullable(),\n billed_by_user_ref: zUserReference.nullable(),\n item_ref: zItemReference.nullable()\n});\n\nexport const zInvoiceWritable = z.looseObject({\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullish(),\n id: z.string().nullish(),\n issue_date: z.string().nullish(),\n due_date: z.string().nullish(),\n items_time_entries: z.array(zInvoiceLineItem).nullish(),\n items_expenses: z.array(zInvoiceLineItem).nullish(),\n items_flat_fees: z.array(zInvoiceLineItem).nullish(),\n subtotal: z.number().nullish(),\n tax: z.number().nullish(),\n discount: z.number().nullish(),\n total: z.number().nullish(),\n total_paid: z.number().nullish(),\n total_outstanding: z.number().nullish(),\n invoice_type: z.union([z.enum([\n 'Sale',\n 'Refund',\n 'Credit'\n ]), z.string()]).optional()\n});\n\nexport const zItemWritable = z.looseObject({\n id: z.string().nullish(),\n name: z.string().nullish(),\n code: z.string().nullish(),\n description: z.string().nullish(),\n rate: z.number().nullable()\n});\n\nexport const zMessageWritable = z.looseObject({\n id: z.string().nullish(),\n sender: zUserReference.nullish(),\n contact_id: z.string().nullish(),\n contact: zContactReference.nullish(),\n type: z.union([z.enum(['Text', 'Secure']), z.string()]).optional(),\n matter_id: z.string().nullish(),\n account_id: z.string().nullish(),\n subject: z.string().nullish(),\n body: z.string().nullish(),\n sent_date: z.string().nullish(),\n conversation_id: z.string().nullish(),\n external_conversation_id: z.string().nullish(),\n firm_text_phone_number: z.string().nullish(),\n firm_location_name: z.string().nullish(),\n user_name: z.string().nullish(),\n user_email: z.string().nullish(),\n sent_by_contact: z.boolean().nullish()\n});\n\nexport const zPaymentDetailWritable = z.looseObject({\n refundedAmount: z.number().nullish(),\n id: z.string().nullish(),\n account_ref: zAccountReference.nullable(),\n matter_ref: zMatterReference.nullish(),\n number: z.number().nullish(),\n date: z.string().nullable(),\n total_amount: z.number().nullable(),\n unapplied_amount: z.number().nullish(),\n notes: z.string().nullish(),\n payee: z.string().nullish(),\n to_print: z.boolean().nullish(),\n check_number: z.number().nullish(),\n bank_account: zBankAccount.nullable(),\n status: z.union([z.enum([\n 'Pending',\n 'Failed',\n 'Success',\n 'Refunded',\n 'RefundPending',\n 'Canceled'\n ]), z.string()]).optional()\n});\n\nexport const zPaymentWritable = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullable(),\n matter_ref: zMatterReference.nullish(),\n number: z.number().nullish(),\n date: z.string().nullable(),\n total_amount: z.number().nullable(),\n unapplied_amount: z.number().nullish(),\n notes: z.string().nullish(),\n payee: z.string().nullish(),\n to_print: z.boolean().nullish(),\n check_number: z.number().nullish(),\n bank_account: zBankAccount.nullable(),\n status: z.union([z.enum([\n 'Pending',\n 'Failed',\n 'Success',\n 'Refunded',\n 'RefundPending',\n 'Canceled'\n ]), z.string()]).optional()\n});\n\nexport const zTimeEntryWritable = z.looseObject({\n id: z.string().nullish(),\n is_billable: z.boolean().nullish(),\n is_billed: z.boolean().nullish(),\n date: z.string().nullable(),\n hours: z.number().nullable(),\n rate: z.number().nullish(),\n description: z.string().nullish(),\n private_notes: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullable(),\n billed_by_user_ref: zUserReference.nullable(),\n item_ref: zItemReference.nullish()\n});\n\nexport const zUserWritable = z.looseObject({\n id: z.string().nullish(),\n is_active: z.boolean().nullish(),\n display_name: z.string().nullish(),\n first_name: z.string().nullish(),\n last_name: z.string().nullish(),\n middle_name: z.string().nullish(),\n email: z.string().nullish()\n});\n\nexport const zNote2 = zNote;\n\nexport const zTimeEntry2 = zTimeEntryWritable;\n\nexport const zExpenseCategory2 = zExpenseCategoryWritable;\n\nexport const zBankAccount2 = zBankAccount;\n\nexport const zMessage2 = zMessageWritable;\n\nexport const zEmail2 = zEmailWritable;\n\nexport const zItem2 = zItemWritable;\n\nexport const zRelationship2 = zRelationship;\n\nexport const zExpense2 = zExpenseWritable;\n\nexport const zAccount2 = zAccountWritable;\n\nexport const zCallLog2 = zCallLogWritable;\n\nexport const zEvent2 = zEvent;\n\nexport const zFlatFee2 = zFlatFeeWritable;\n\nexport const zMatter2 = zMatterWritable;\n\nexport const zTask2 = zTask;\n\nexport const zAccountsGetAccountData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zAccountsGetAccountResponse = zAccount;\n\nexport const zAccountsDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zAccountsDeleteResponse = zAccount;\n\nexport const zAccountsGetAccountsData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n assigned_to_user_id: z.string().optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n search_text: z.string().optional(),\n account_tag: z.string().optional(),\n apiConsumer: z.union([z.enum(['Unknown', 'Zapier']), z.string()]).optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zAccountsGetAccountsResponse = zAccount;\n\nexport const zAccountsPostAccountData = z.looseObject({\n body: zAccount2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zAccountsPostAccountResponse = zAccount;\n\nexport const zAccountsPutAccountData = z.looseObject({\n body: zAccount2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zAccountsPutAccountResponse = zAccount;\n\nexport const zBankAccountsGetBankAccountData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zBankAccountsGetBankAccountResponse = zBankAccount;\n\nexport const zBankAccountsDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zBankAccountsDeleteResponse = zMatter;\n\nexport const zBankAccountsGetBankAccountsData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n created_since: z.string().optional(),\n updated_since: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zBankAccountsGetBankAccountsResponse = zBankAccount;\n\nexport const zBankAccountsPostBankAccountData = z.looseObject({\n body: zBankAccount2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zBankAccountsPostBankAccountResponse = zBankAccount;\n\nexport const zBankAccountsPutBankAccountData = z.looseObject({\n body: zBankAccount2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zBankAccountsPutBankAccountResponse = zBankAccount;\n\nexport const zCallLogsGetCallLogData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zCallLogsGetCallLogResponse = zCallLog;\n\nexport const zCallLogsDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zCallLogsDeleteResponse = zCallLog;\n\nexport const zCallLogsGetCallLogsData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n assigned_to_user_id: z.string().optional(),\n account_id: z.string().optional(),\n matter_id: z.string().optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n date_from: z.string().optional(),\n date_to: z.string().optional(),\n activity_tag: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zCallLogsGetCallLogsResponse = zCallLog;\n\nexport const zCallLogsPostCallLogData = z.looseObject({\n body: zCallLog2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zCallLogsPostCallLogResponse = zCallLog;\n\nexport const zCallLogsPutCallLogData = z.looseObject({\n body: zCallLog2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zCallLogsPutCallLogResponse = zCallLog;\n\nexport const zContactsGetContactData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zContactsGetContactResponse = zContact;\n\nexport const zContactsGetContactsData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n assigned_to_user_id: z.string().optional(),\n account_id: z.string().optional(),\n status: z.union([z.enum(['Active', 'Archived']), z.string()]).optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n search_text: z.string().optional(),\n account_tag: z.string().optional(),\n company_name: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zContactsGetContactsResponse = zContact;\n\nexport const zCustomFieldsGetCustomFieldsForAccountData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n created_since: z.string().optional(),\n updated_since: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zCustomFieldsGetCustomFieldsForAccountResponse = zCustomField;\n\nexport const zCustomFieldsGetCustomFieldsForMatterData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n created_since: z.string().optional(),\n updated_since: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zCustomFieldsGetCustomFieldsForMatterResponse = zCustomField;\n\nexport const zCustomFieldsGetCustomFieldsForContactData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n created_since: z.string().optional(),\n updated_since: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zCustomFieldsGetCustomFieldsForContactResponse = zCustomField;\n\nexport const zCustomFieldsGetCustomFieldData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zCustomFieldsGetCustomFieldResponse = zCustomField;\n\nexport const zEmailsGetEmailData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zEmailsGetEmailResponse = zEmail;\n\nexport const zEmailsDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zEmailsDeleteResponse = zEmail;\n\nexport const zEmailsGetEmailsData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n assigned_to_user_id: z.string().optional(),\n account_id: z.string().optional(),\n matter_id: z.string().optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n activity_tag: z.string().optional(),\n external_message_id: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zEmailsGetEmailsResponse = zEmail;\n\nexport const zEmailsPostEmailData = z.looseObject({\n body: zEmail2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zEmailsPostEmailResponse = zEmail;\n\nexport const zEmailsPutAccountData = z.looseObject({\n body: zEmail2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zEmailsPutAccountResponse = zEmail;\n\nexport const zEventsGetEventData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zEventsGetEventResponse = zEvent;\n\nexport const zEventsDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zEventsDeleteResponse = zEvent;\n\nexport const zEventsGetEventsData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n assigned_to_user_id: z.string().optional(),\n account_id: z.string().optional(),\n matter_id: z.string().optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n date_from: z.string().optional(),\n date_to: z.string().optional(),\n activity_tag: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zEventsGetEventsResponse = zEvent;\n\nexport const zEventsPostAccountData = z.looseObject({\n body: zEvent2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zEventsPostAccountResponse = zEvent;\n\nexport const zEventsPutAccountData = z.looseObject({\n body: zEvent2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zEventsPutAccountResponse = zEvent;\n\nexport const zExpenseCategoriesGetExpenseCategoryData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zExpenseCategoriesGetExpenseCategoryResponse = zExpenseCategory;\n\nexport const zExpenseCategoriesDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zExpenseCategoriesDeleteResponse = zExpenseCategory;\n\nexport const zExpenseCategoriesGetExpenseCategoriesData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n created_since: z.string().optional(),\n updated_since: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zExpenseCategoriesGetExpenseCategoriesResponse = zExpenseCategory;\n\nexport const zExpenseCategoriesPostExpenseCategoryData = z.looseObject({\n body: zExpenseCategory2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zExpenseCategoriesPostExpenseCategoryResponse = zExpenseCategory;\n\nexport const zExpenseCategoriesPutExpenseCategoryData = z.looseObject({\n body: zExpenseCategory2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zExpenseCategoriesPutExpenseCategoryResponse = zExpenseCategory;\n\nexport const zExpensesGetExpenseData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zExpensesGetExpenseResponse = zExpense;\n\nexport const zExpensesDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zExpensesDeleteResponse = zExpense;\n\nexport const zExpensesGetExpensessData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n account_id: z.string().optional(),\n matter_id: z.string().optional(),\n billed_by_user_id: z.string().optional(),\n expense_category_id: z.string().optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n date_from: z.string().optional(),\n date_to: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zExpensesGetExpensessResponse = zExpense;\n\nexport const zExpensesPostAccountData = z.looseObject({\n body: zExpense2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zExpensesPostAccountResponse = zExpense;\n\nexport const zExpensesPutAccountData = z.looseObject({\n body: zExpense2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zExpensesPutAccountResponse = zExpense;\n\nexport const zFilesGetFileData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zFilesGetFileResponse = zFile;\n\nexport const zFilesDownloadFileData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zFilesDownloadFileResponse = zFile;\n\nexport const zFilesPostFileToBoxData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zFilesPostFileToBoxResponse = z.record(z.string(), z.unknown());\n\nexport const zFilesDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zFilesDeleteResponse = zFile;\n\nexport const zFilesGetFilesData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n search_text: z.string().optional(),\n account_id: z.string().optional(),\n matter_id: z.string().optional(),\n activity_id: z.string().optional(),\n created_by_user_id: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zFilesGetFilesResponse = zFile;\n\nexport const zFilesPostFileData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zFilesPostFileResponse = zFile;\n\nexport const zFilesPutFileData = z.looseObject({\n body: zFileWritable,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zFilesPutFileResponse = zFile;\n\nexport const zFlatFeesGetFlatFeeData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zFlatFeesGetFlatFeeResponse = zFlatFee;\n\nexport const zFlatFeesDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zFlatFeesDeleteResponse = zFlatFee;\n\nexport const zFlatFeesGetFlatFeesData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n account_id: z.string().optional(),\n matter_id: z.string().optional(),\n user_id: z.string().optional(),\n item_id: z.string().optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n date_from: z.string().optional(),\n date_to: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zFlatFeesGetFlatFeesResponse = zFlatFee;\n\nexport const zFlatFeesPostAccountData = z.looseObject({\n body: zFlatFee2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zFlatFeesPostAccountResponse = zFlatFee;\n\nexport const zFlatFeesPutAccountData = z.looseObject({\n body: zFlatFee2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zFlatFeesPutAccountResponse = zFlatFee;\n\nexport const zInvoicesGetInvoiceData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zInvoicesGetInvoiceResponse = zInvoice;\n\nexport const zInvoicesDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zInvoicesDeleteResponse = zInvoice;\n\nexport const zInvoicesGetInvoicesData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n account_id: z.string().optional(),\n matter_id: z.string().optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n date_from: z.string().optional(),\n date_to: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zInvoicesGetInvoicesResponse = zInvoice;\n\nexport const zItemsGetItemData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zItemsGetItemResponse = zItem;\n\nexport const zItemsDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zItemsDeleteResponse = zItem;\n\nexport const zItemsGetItemsData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n created_since: z.string().optional(),\n updated_since: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zItemsGetItemsResponse = zItem;\n\nexport const zItemsPostItemData = z.looseObject({\n body: zItem2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zItemsPostItemResponse = zItem;\n\nexport const zItemsPutItemData = z.looseObject({\n body: zItem2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zItemsPutItemResponse = zItem;\n\nexport const zMattersGetMatterData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zMattersGetMatterResponse = zMatter;\n\nexport const zMattersDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zMattersDeleteResponse = zMatter;\n\nexport const zMattersGetMattersData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n assigned_to_user_id: z.string().optional(),\n account_id: z.string().optional(),\n status: z.union([z.enum([\n 'Closed',\n 'Pending',\n 'Open',\n 'Archived'\n ]), z.string()]).optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n search_text: z.string().optional(),\n account_tag: z.string().optional(),\n matter_tag: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zMattersGetMattersResponse = zMatter;\n\nexport const zMattersPostAccountData = z.looseObject({\n body: zMatter2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zMattersPostAccountResponse = zMatter;\n\nexport const zMattersPutAccountData = z.looseObject({\n body: zMatter2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zMattersPutAccountResponse = zMatter;\n\nexport const zMessagesDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zMessagesDeleteResponse = zMessage;\n\nexport const zMessagesGetMessagesAsyncData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zMessagesGetMessagesAsyncResponse = zMessage;\n\nexport const zMessagesPostMessageData = z.looseObject({\n body: zMessage2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zMessagesPostMessageResponse = zMessage;\n\nexport const zMessagesPutMessageData = z.looseObject({\n body: zMessage2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zMessagesPutMessageResponse = zMessage;\n\nexport const zNotesGetNoteData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zNotesGetNoteResponse = zNote;\n\nexport const zNotesDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zNotesDeleteResponse = zNote;\n\nexport const zNotesGetNotesData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n assigned_to_user_id: z.string().optional(),\n account_id: z.string().optional(),\n matter_id: z.string().optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n date_from: z.string().optional(),\n date_to: z.string().optional(),\n activity_tag: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zNotesGetNotesResponse = zNote;\n\nexport const zNotesPostNoteData = z.looseObject({\n body: zNote2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zNotesPostNoteResponse = zNote;\n\nexport const zNotesPutNoteData = z.looseObject({\n body: zNote2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zNotesPutNoteResponse = zNote;\n\nexport const zPaymentsGetPaymentData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zPaymentsGetPaymentResponse = zPaymentDetail;\n\nexport const zPaymentsDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zPaymentsDeleteResponse = zPayment;\n\nexport const zPaymentsGetPaymentsData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n account_id: z.string().optional(),\n matter_id: z.string().optional(),\n bank_account_id: z.string().optional(),\n bank_account_type: z.union([z.enum([\n 'Operating',\n 'Trust',\n 'CreditCard'\n ]), z.string()]).optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n date_from: z.string().optional(),\n date_to: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zPaymentsGetPaymentsResponse = zPayment;\n\nexport const zRelationshipsGetRelationshipData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zRelationshipsGetRelationshipResponse = zRelationship;\n\nexport const zRelationshipsDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zRelationshipsDeleteResponse = zRelationship;\n\nexport const zRelationshipsGetRelationshipsData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n contact_id: z.string().optional(),\n matter_id: z.string().optional(),\n account_id: z.string().optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zRelationshipsGetRelationshipsResponse = zRelationship;\n\nexport const zRelationshipsPostAccountData = z.looseObject({\n body: zRelationship2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zRelationshipsPostAccountResponse = zRelationship;\n\nexport const zRelationshipsPutRelationshipData = z.looseObject({\n body: zRelationship2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zRelationshipsPutRelationshipResponse = zRelationship;\n\nexport const zTagsGetTagsForAccountsData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zTagsGetTagsForAccountsResponse = z.array(zTag);\n\nexport const zTagsGetTagsForProjectsData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zTagsGetTagsForProjectsResponse = z.array(zTag);\n\nexport const zTagsGetTagsForActivitiesData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zTagsGetTagsForActivitiesResponse = z.array(zTag);\n\nexport const zTasksGetTaskData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zTasksGetTaskResponse = zTask;\n\nexport const zTasksDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zTasksDeleteResponse = zTask;\n\nexport const zTasksGetTasksData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n assigned_to_user_id: z.string().optional(),\n account_id: z.string().optional(),\n matter_id: z.string().optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n status: z.union([z.enum([\n 'NotCompleted',\n 'InProgress',\n 'Completed',\n 'Conditional'\n ]), z.string()]).optional(),\n due_date_from: z.string().optional(),\n due_date_to: z.string().optional(),\n activity_tag: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zTasksGetTasksResponse = zTask;\n\nexport const zTasksPostAccountData = z.looseObject({\n body: zTask2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zTasksPostAccountResponse = zTask;\n\nexport const zTasksPutAccountData = z.looseObject({\n body: zTask2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zTasksPutAccountResponse = zTask;\n\nexport const zTimeEntriesGetTimeEntryData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zTimeEntriesGetTimeEntryResponse = zTimeEntry;\n\nexport const zTimeEntriesDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zTimeEntriesDeleteResponse = zTimeEntry;\n\nexport const zTimeEntriesGetTimeEntrysData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n account_id: z.string().optional(),\n matter_id: z.string().optional(),\n user_id: z.string().optional(),\n item_id: z.string().optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n date_from: z.string().optional(),\n date_to: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zTimeEntriesGetTimeEntrysResponse = zTimeEntry;\n\nexport const zTimeEntriesPostAccountData = z.looseObject({\n body: zTimeEntry2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zTimeEntriesPostAccountResponse = zTimeEntry;\n\nexport const zTimeEntriesPutAccountData = z.looseObject({\n body: zTimeEntry2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zTimeEntriesPutAccountResponse = zTimeEntry;\n\nexport const zUsersMeData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zUsersMeResponse = zUser;\n\nexport const zUsersGetUserData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zUsersGetUserResponse = zUser;\n\nexport const zUsersDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zUsersDeleteResponse = zUser;\n\nexport const zUsersGetUsersData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n email_address: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zUsersGetUsersResponse = zUser;\n","import { z } from \"zod\";\n\nexport function listOf<T extends z.ZodTypeAny>(schema: T) {\n return z.looseObject({ items: z.array(schema) });\n}\n\nexport function cleanQuery<T extends Record<string, unknown>>(q: T): T {\n return Object.fromEntries(\n Object.entries(q).filter(([, v]) => v !== undefined),\n ) as T;\n}\n\nexport function err(e: unknown) {\n const msg = e instanceof Error ? e.message : String(e);\n return {\n content: [{ type: \"text\" as const, text: `Error: ${msg}` }],\n isError: true as const,\n };\n}\n","import type { z } from \"zod\";\nimport { cleanQuery, err } from \"./helpers.js\";\n\nexport interface ToolConfig {\n name: string;\n description: string;\n // biome-ignore lint/suspicious/noExplicitAny: SDK functions have varying signatures\n sdkFn: (options?: any) => Promise<any>;\n schema?: z.ZodTypeAny;\n isList?: boolean;\n pathParams?: Record<string, string>; // { mcpName: description } — SDK name is always the same\n queryParams?: Record<string, z.ZodType>;\n rawContent?: boolean;\n}\n\nexport interface ToolResult {\n [x: string]: unknown;\n content: { type: \"text\"; text: string }[];\n structuredContent?: Record<string, unknown>;\n isError?: true;\n}\n\nexport function createToolHandler(\n tool: ToolConfig,\n): (params: Record<string, unknown>) => Promise<ToolResult> {\n return async (params: Record<string, unknown>) => {\n try {\n const options: Record<string, unknown> = {};\n\n if (tool.pathParams) {\n const path: Record<string, string> = {};\n for (const paramName of Object.keys(tool.pathParams)) {\n path[paramName] = params[paramName] as string;\n }\n options.path = path;\n }\n\n if (tool.queryParams) {\n const query: Record<string, unknown> = {};\n for (const paramName of Object.keys(tool.queryParams)) {\n if (params[paramName] !== undefined) {\n query[paramName] = params[paramName];\n }\n }\n if (Object.keys(query).length > 0) {\n options.query = cleanQuery(query);\n }\n }\n\n const res = await tool.sdkFn(\n Object.keys(options).length > 0 ? options : undefined,\n );\n\n if (tool.rawContent) {\n return {\n content: [\n {\n type: \"text\" as const,\n text: JSON.stringify(res.data, null, 2),\n },\n ],\n };\n }\n\n const structured = tool.isList\n ? { items: res.data }\n : (res.data as Record<string, unknown>);\n\n return {\n content: [\n {\n type: \"text\" as const,\n text: JSON.stringify(structured, null, 2),\n },\n ],\n structuredContent: tool.schema ? structured : undefined,\n };\n } catch (e) {\n return err(e);\n }\n };\n}\n"],"mappings":"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","names":["joinedValues","config","request","error","finalError","url","z","z","z"]}
1
+ {"version":3,"sources":["../src/client/core/bodySerializer.gen.ts","../src/client/core/params.gen.ts","../src/client/core/serverSentEvents.gen.ts","../src/client/core/pathSerializer.gen.ts","../src/client/core/utils.gen.ts","../src/client/core/auth.gen.ts","../src/client/client/utils.gen.ts","../src/client/client/client.gen.ts","../src/client/client.gen.ts","../src/pp.ts","../src/server.ts","../../shared/src/helpers.ts","../../shared/src/tool-handler.ts","../src/create-server.ts","../src/client/sdk.gen.ts","../src/client/zod.gen.ts"],"sourcesContent":["// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { ArrayStyle, ObjectStyle, SerializerOptions } from './pathSerializer.gen.js';\n\nexport type QuerySerializer = (query: Record<string, unknown>) => string;\n\nexport type BodySerializer = (body: unknown) => unknown;\n\ntype QuerySerializerOptionsObject = {\n allowReserved?: boolean;\n array?: Partial<SerializerOptions<ArrayStyle>>;\n object?: Partial<SerializerOptions<ObjectStyle>>;\n};\n\nexport type QuerySerializerOptions = QuerySerializerOptionsObject & {\n /**\n * Per-parameter serialization overrides. When provided, these settings\n * override the global array/object settings for specific parameter names.\n */\n parameters?: Record<string, QuerySerializerOptionsObject>;\n};\n\nconst serializeFormDataPair = (data: FormData, key: string, value: unknown): void => {\n if (typeof value === 'string' || value instanceof Blob) {\n data.append(key, value);\n } else if (value instanceof Date) {\n data.append(key, value.toISOString());\n } else {\n data.append(key, JSON.stringify(value));\n }\n};\n\nconst serializeUrlSearchParamsPair = (data: URLSearchParams, key: string, value: unknown): void => {\n if (typeof value === 'string') {\n data.append(key, value);\n } else {\n data.append(key, JSON.stringify(value));\n }\n};\n\nexport const formDataBodySerializer = {\n bodySerializer: (body: unknown): FormData => {\n const data = new FormData();\n\n Object.entries(body as Record<string, unknown>).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeFormDataPair(data, key, v));\n } else {\n serializeFormDataPair(data, key, value);\n }\n });\n\n return data;\n },\n};\n\nexport const jsonBodySerializer = {\n bodySerializer: (body: unknown): string =>\n JSON.stringify(body, (_key, value) => (typeof value === 'bigint' ? value.toString() : value)),\n};\n\nexport const urlSearchParamsBodySerializer = {\n bodySerializer: (body: unknown): string => {\n const data = new URLSearchParams();\n\n Object.entries(body as Record<string, unknown>).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeUrlSearchParamsPair(data, key, v));\n } else {\n serializeUrlSearchParamsPair(data, key, value);\n }\n });\n\n return data.toString();\n },\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\ntype Slot = 'body' | 'headers' | 'path' | 'query';\n\nexport type Field =\n | {\n in: Exclude<Slot, 'body'>;\n /**\n * Field name. This is the name we want the user to see and use.\n */\n key: string;\n /**\n * Field mapped name. This is the name we want to use in the request.\n * If omitted, we use the same value as `key`.\n */\n map?: string;\n }\n | {\n in: Extract<Slot, 'body'>;\n /**\n * Key isn't required for bodies.\n */\n key?: string;\n map?: string;\n }\n | {\n /**\n * Field name. This is the name we want the user to see and use.\n */\n key: string;\n /**\n * Field mapped name. This is the name we want to use in the request.\n * If `in` is omitted, `map` aliases `key` to the transport layer.\n */\n map: Slot;\n };\n\nexport interface Fields {\n allowExtra?: Partial<Record<Slot, boolean>>;\n args?: ReadonlyArray<Field>;\n}\n\nexport type FieldsConfig = ReadonlyArray<Field | Fields>;\n\nconst extraPrefixesMap: Record<string, Slot> = {\n $body_: 'body',\n $headers_: 'headers',\n $path_: 'path',\n $query_: 'query',\n};\nconst extraPrefixes = Object.entries(extraPrefixesMap);\n\ntype KeyMap = Map<\n string,\n | {\n in: Slot;\n map?: string;\n }\n | {\n in?: never;\n map: Slot;\n }\n>;\n\nconst buildKeyMap = (fields: FieldsConfig, map?: KeyMap): KeyMap => {\n if (!map) {\n map = new Map();\n }\n\n for (const config of fields) {\n if ('in' in config) {\n if (config.key) {\n map.set(config.key, {\n in: config.in,\n map: config.map,\n });\n }\n } else if ('key' in config) {\n map.set(config.key, {\n map: config.map,\n });\n } else if (config.args) {\n buildKeyMap(config.args, map);\n }\n }\n\n return map;\n};\n\ninterface Params {\n body: unknown;\n headers: Record<string, unknown>;\n path: Record<string, unknown>;\n query: Record<string, unknown>;\n}\n\nconst stripEmptySlots = (params: Params) => {\n for (const [slot, value] of Object.entries(params)) {\n if (value && typeof value === 'object' && !Array.isArray(value) && !Object.keys(value).length) {\n delete params[slot as Slot];\n }\n }\n};\n\nexport const buildClientParams = (args: ReadonlyArray<unknown>, fields: FieldsConfig) => {\n const params: Params = {\n body: {},\n headers: {},\n path: {},\n query: {},\n };\n\n const map = buildKeyMap(fields);\n\n let config: FieldsConfig[number] | undefined;\n\n for (const [index, arg] of args.entries()) {\n if (fields[index]) {\n config = fields[index];\n }\n\n if (!config) {\n continue;\n }\n\n if ('in' in config) {\n if (config.key) {\n const field = map.get(config.key)!;\n const name = field.map || config.key;\n if (field.in) {\n (params[field.in] as Record<string, unknown>)[name] = arg;\n }\n } else {\n params.body = arg;\n }\n } else {\n for (const [key, value] of Object.entries(arg ?? {})) {\n const field = map.get(key);\n\n if (field) {\n if (field.in) {\n const name = field.map || key;\n (params[field.in] as Record<string, unknown>)[name] = value;\n } else {\n params[field.map] = value;\n }\n } else {\n const extra = extraPrefixes.find(([prefix]) => key.startsWith(prefix));\n\n if (extra) {\n const [prefix, slot] = extra;\n (params[slot] as Record<string, unknown>)[key.slice(prefix.length)] = value;\n } else if ('allowExtra' in config && config.allowExtra) {\n for (const [slot, allowed] of Object.entries(config.allowExtra)) {\n if (allowed) {\n (params[slot as Slot] as Record<string, unknown>)[key] = value;\n break;\n }\n }\n }\n }\n }\n }\n }\n\n stripEmptySlots(params);\n\n return params;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { Config } from './types.gen.js';\n\nexport type ServerSentEventsOptions<TData = unknown> = Omit<RequestInit, 'method'> &\n Pick<Config, 'method' | 'responseTransformer' | 'responseValidator'> & {\n /**\n * Fetch API implementation. You can use this option to provide a custom\n * fetch instance.\n *\n * @default globalThis.fetch\n */\n fetch?: typeof fetch;\n /**\n * Implementing clients can call request interceptors inside this hook.\n */\n onRequest?: (url: string, init: RequestInit) => Promise<Request>;\n /**\n * Callback invoked when a network or parsing error occurs during streaming.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @param error The error that occurred.\n */\n onSseError?: (error: unknown) => void;\n /**\n * Callback invoked when an event is streamed from the server.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @param event Event streamed from the server.\n * @returns Nothing (void).\n */\n onSseEvent?: (event: StreamEvent<TData>) => void;\n serializedBody?: RequestInit['body'];\n /**\n * Default retry delay in milliseconds.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @default 3000\n */\n sseDefaultRetryDelay?: number;\n /**\n * Maximum number of retry attempts before giving up.\n */\n sseMaxRetryAttempts?: number;\n /**\n * Maximum retry delay in milliseconds.\n *\n * Applies only when exponential backoff is used.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @default 30000\n */\n sseMaxRetryDelay?: number;\n /**\n * Optional sleep function for retry backoff.\n *\n * Defaults to using `setTimeout`.\n */\n sseSleepFn?: (ms: number) => Promise<void>;\n url: string;\n };\n\nexport interface StreamEvent<TData = unknown> {\n data: TData;\n event?: string;\n id?: string;\n retry?: number;\n}\n\nexport type ServerSentEventsResult<TData = unknown, TReturn = void, TNext = unknown> = {\n stream: AsyncGenerator<\n TData extends Record<string, unknown> ? TData[keyof TData] : TData,\n TReturn,\n TNext\n >;\n};\n\nexport const createSseClient = <TData = unknown>({\n onRequest,\n onSseError,\n onSseEvent,\n responseTransformer,\n responseValidator,\n sseDefaultRetryDelay,\n sseMaxRetryAttempts,\n sseMaxRetryDelay,\n sseSleepFn,\n url,\n ...options\n}: ServerSentEventsOptions): ServerSentEventsResult<TData> => {\n let lastEventId: string | undefined;\n\n const sleep = sseSleepFn ?? ((ms: number) => new Promise((resolve) => setTimeout(resolve, ms)));\n\n const createStream = async function* () {\n let retryDelay: number = sseDefaultRetryDelay ?? 3000;\n let attempt = 0;\n const signal = options.signal ?? new AbortController().signal;\n\n while (true) {\n if (signal.aborted) break;\n\n attempt++;\n\n const headers =\n options.headers instanceof Headers\n ? options.headers\n : new Headers(options.headers as Record<string, string> | undefined);\n\n if (lastEventId !== undefined) {\n headers.set('Last-Event-ID', lastEventId);\n }\n\n try {\n const requestInit: RequestInit = {\n redirect: 'follow',\n ...options,\n body: options.serializedBody,\n headers,\n signal,\n };\n let request = new Request(url, requestInit);\n if (onRequest) {\n request = await onRequest(url, requestInit);\n }\n // fetch must be assigned here, otherwise it would throw the error:\n // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation\n const _fetch = options.fetch ?? globalThis.fetch;\n const response = await _fetch(request);\n\n if (!response.ok) throw new Error(`SSE failed: ${response.status} ${response.statusText}`);\n\n if (!response.body) throw new Error('No body in SSE response');\n\n const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();\n\n let buffer = '';\n\n const abortHandler = () => {\n try {\n reader.cancel();\n } catch {\n // noop\n }\n };\n\n signal.addEventListener('abort', abortHandler);\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n buffer += value;\n // Normalize line endings: CRLF -> LF, then CR -> LF\n buffer = buffer.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n\n const chunks = buffer.split('\\n\\n');\n buffer = chunks.pop() ?? '';\n\n for (const chunk of chunks) {\n const lines = chunk.split('\\n');\n const dataLines: Array<string> = [];\n let eventName: string | undefined;\n\n for (const line of lines) {\n if (line.startsWith('data:')) {\n dataLines.push(line.replace(/^data:\\s*/, ''));\n } else if (line.startsWith('event:')) {\n eventName = line.replace(/^event:\\s*/, '');\n } else if (line.startsWith('id:')) {\n lastEventId = line.replace(/^id:\\s*/, '');\n } else if (line.startsWith('retry:')) {\n const parsed = Number.parseInt(line.replace(/^retry:\\s*/, ''), 10);\n if (!Number.isNaN(parsed)) {\n retryDelay = parsed;\n }\n }\n }\n\n let data: unknown;\n let parsedJson = false;\n\n if (dataLines.length) {\n const rawData = dataLines.join('\\n');\n try {\n data = JSON.parse(rawData);\n parsedJson = true;\n } catch {\n data = rawData;\n }\n }\n\n if (parsedJson) {\n if (responseValidator) {\n await responseValidator(data);\n }\n\n if (responseTransformer) {\n data = await responseTransformer(data);\n }\n }\n\n onSseEvent?.({\n data,\n event: eventName,\n id: lastEventId,\n retry: retryDelay,\n });\n\n if (dataLines.length) {\n yield data as any;\n }\n }\n }\n } finally {\n signal.removeEventListener('abort', abortHandler);\n reader.releaseLock();\n }\n\n break; // exit loop on normal completion\n } catch (error) {\n // connection failed or aborted; retry after delay\n onSseError?.(error);\n\n if (sseMaxRetryAttempts !== undefined && attempt >= sseMaxRetryAttempts) {\n break; // stop after firing error\n }\n\n // exponential backoff: double retry each attempt, cap at 30s\n const backoff = Math.min(retryDelay * 2 ** (attempt - 1), sseMaxRetryDelay ?? 30000);\n await sleep(backoff);\n }\n }\n };\n\n const stream = createStream();\n\n return { stream };\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\ninterface SerializeOptions<T> extends SerializePrimitiveOptions, SerializerOptions<T> {}\n\ninterface SerializePrimitiveOptions {\n allowReserved?: boolean;\n name: string;\n}\n\nexport interface SerializerOptions<T> {\n /**\n * @default true\n */\n explode: boolean;\n style: T;\n}\n\nexport type ArrayStyle = 'form' | 'spaceDelimited' | 'pipeDelimited';\nexport type ArraySeparatorStyle = ArrayStyle | MatrixStyle;\ntype MatrixStyle = 'label' | 'matrix' | 'simple';\nexport type ObjectStyle = 'form' | 'deepObject';\ntype ObjectSeparatorStyle = ObjectStyle | MatrixStyle;\n\ninterface SerializePrimitiveParam extends SerializePrimitiveOptions {\n value: string;\n}\n\nexport const separatorArrayExplode = (style: ArraySeparatorStyle) => {\n switch (style) {\n case 'label':\n return '.';\n case 'matrix':\n return ';';\n case 'simple':\n return ',';\n default:\n return '&';\n }\n};\n\nexport const separatorArrayNoExplode = (style: ArraySeparatorStyle) => {\n switch (style) {\n case 'form':\n return ',';\n case 'pipeDelimited':\n return '|';\n case 'spaceDelimited':\n return '%20';\n default:\n return ',';\n }\n};\n\nexport const separatorObjectExplode = (style: ObjectSeparatorStyle) => {\n switch (style) {\n case 'label':\n return '.';\n case 'matrix':\n return ';';\n case 'simple':\n return ',';\n default:\n return '&';\n }\n};\n\nexport const serializeArrayParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n}: SerializeOptions<ArraySeparatorStyle> & {\n value: unknown[];\n}) => {\n if (!explode) {\n const joinedValues = (\n allowReserved ? value : value.map((v) => encodeURIComponent(v as string))\n ).join(separatorArrayNoExplode(style));\n switch (style) {\n case 'label':\n return `.${joinedValues}`;\n case 'matrix':\n return `;${name}=${joinedValues}`;\n case 'simple':\n return joinedValues;\n default:\n return `${name}=${joinedValues}`;\n }\n }\n\n const separator = separatorArrayExplode(style);\n const joinedValues = value\n .map((v) => {\n if (style === 'label' || style === 'simple') {\n return allowReserved ? v : encodeURIComponent(v as string);\n }\n\n return serializePrimitiveParam({\n allowReserved,\n name,\n value: v as string,\n });\n })\n .join(separator);\n return style === 'label' || style === 'matrix' ? separator + joinedValues : joinedValues;\n};\n\nexport const serializePrimitiveParam = ({\n allowReserved,\n name,\n value,\n}: SerializePrimitiveParam) => {\n if (value === undefined || value === null) {\n return '';\n }\n\n if (typeof value === 'object') {\n throw new Error(\n 'Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.',\n );\n }\n\n return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;\n};\n\nexport const serializeObjectParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n valueOnly,\n}: SerializeOptions<ObjectSeparatorStyle> & {\n value: Record<string, unknown> | Date;\n valueOnly?: boolean;\n}) => {\n if (value instanceof Date) {\n return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`;\n }\n\n if (style !== 'deepObject' && !explode) {\n let values: string[] = [];\n Object.entries(value).forEach(([key, v]) => {\n values = [...values, key, allowReserved ? (v as string) : encodeURIComponent(v as string)];\n });\n const joinedValues = values.join(',');\n switch (style) {\n case 'form':\n return `${name}=${joinedValues}`;\n case 'label':\n return `.${joinedValues}`;\n case 'matrix':\n return `;${name}=${joinedValues}`;\n default:\n return joinedValues;\n }\n }\n\n const separator = separatorObjectExplode(style);\n const joinedValues = Object.entries(value)\n .map(([key, v]) =>\n serializePrimitiveParam({\n allowReserved,\n name: style === 'deepObject' ? `${name}[${key}]` : key,\n value: v as string,\n }),\n )\n .join(separator);\n return style === 'label' || style === 'matrix' ? separator + joinedValues : joinedValues;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { BodySerializer, QuerySerializer } from './bodySerializer.gen.js';\nimport {\n type ArraySeparatorStyle,\n serializeArrayParam,\n serializeObjectParam,\n serializePrimitiveParam,\n} from './pathSerializer.gen.js';\n\nexport interface PathSerializer {\n path: Record<string, unknown>;\n url: string;\n}\n\nexport const PATH_PARAM_RE = /\\{[^{}]+\\}/g;\n\nexport const defaultPathSerializer = ({ path, url: _url }: PathSerializer) => {\n let url = _url;\n const matches = _url.match(PATH_PARAM_RE);\n if (matches) {\n for (const match of matches) {\n let explode = false;\n let name = match.substring(1, match.length - 1);\n let style: ArraySeparatorStyle = 'simple';\n\n if (name.endsWith('*')) {\n explode = true;\n name = name.substring(0, name.length - 1);\n }\n\n if (name.startsWith('.')) {\n name = name.substring(1);\n style = 'label';\n } else if (name.startsWith(';')) {\n name = name.substring(1);\n style = 'matrix';\n }\n\n const value = path[name];\n\n if (value === undefined || value === null) {\n continue;\n }\n\n if (Array.isArray(value)) {\n url = url.replace(match, serializeArrayParam({ explode, name, style, value }));\n continue;\n }\n\n if (typeof value === 'object') {\n url = url.replace(\n match,\n serializeObjectParam({\n explode,\n name,\n style,\n value: value as Record<string, unknown>,\n valueOnly: true,\n }),\n );\n continue;\n }\n\n if (style === 'matrix') {\n url = url.replace(\n match,\n `;${serializePrimitiveParam({\n name,\n value: value as string,\n })}`,\n );\n continue;\n }\n\n const replaceValue = encodeURIComponent(\n style === 'label' ? `.${value as string}` : (value as string),\n );\n url = url.replace(match, replaceValue);\n }\n }\n return url;\n};\n\nexport const getUrl = ({\n baseUrl,\n path,\n query,\n querySerializer,\n url: _url,\n}: {\n baseUrl?: string;\n path?: Record<string, unknown>;\n query?: Record<string, unknown>;\n querySerializer: QuerySerializer;\n url: string;\n}) => {\n const pathUrl = _url.startsWith('/') ? _url : `/${_url}`;\n let url = (baseUrl ?? '') + pathUrl;\n if (path) {\n url = defaultPathSerializer({ path, url });\n }\n let search = query ? querySerializer(query) : '';\n if (search.startsWith('?')) {\n search = search.substring(1);\n }\n if (search) {\n url += `?${search}`;\n }\n return url;\n};\n\nexport function getValidRequestBody(options: {\n body?: unknown;\n bodySerializer?: BodySerializer | null;\n serializedBody?: unknown;\n}) {\n const hasBody = options.body !== undefined;\n const isSerializedBody = hasBody && options.bodySerializer;\n\n if (isSerializedBody) {\n if ('serializedBody' in options) {\n const hasSerializedBody =\n options.serializedBody !== undefined && options.serializedBody !== '';\n\n return hasSerializedBody ? options.serializedBody : null;\n }\n\n // not all clients implement a serializedBody property (i.e. client-axios)\n return options.body !== '' ? options.body : null;\n }\n\n // plain/text body\n if (hasBody) {\n return options.body;\n }\n\n // no body was provided\n return undefined;\n}\n","// This file is auto-generated by @hey-api/openapi-ts\n\nexport type AuthToken = string | undefined;\n\nexport interface Auth {\n /**\n * Which part of the request do we use to send the auth?\n *\n * @default 'header'\n */\n in?: 'header' | 'query' | 'cookie';\n /**\n * Header or query parameter name.\n *\n * @default 'Authorization'\n */\n name?: string;\n scheme?: 'basic' | 'bearer';\n type: 'apiKey' | 'http';\n}\n\nexport const getAuthToken = async (\n auth: Auth,\n callback: ((auth: Auth) => Promise<AuthToken> | AuthToken) | AuthToken,\n): Promise<string | undefined> => {\n const token = typeof callback === 'function' ? await callback(auth) : callback;\n\n if (!token) {\n return;\n }\n\n if (auth.scheme === 'bearer') {\n return `Bearer ${token}`;\n }\n\n if (auth.scheme === 'basic') {\n return `Basic ${btoa(token)}`;\n }\n\n return token;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { getAuthToken } from '../core/auth.gen.js';\nimport type { QuerySerializerOptions } from '../core/bodySerializer.gen.js';\nimport { jsonBodySerializer } from '../core/bodySerializer.gen.js';\nimport {\n serializeArrayParam,\n serializeObjectParam,\n serializePrimitiveParam,\n} from '../core/pathSerializer.gen.js';\nimport { getUrl } from '../core/utils.gen.js';\nimport type { Client, ClientOptions, Config, RequestOptions } from './types.gen.js';\n\nexport const createQuerySerializer = <T = unknown>({\n parameters = {},\n ...args\n}: QuerySerializerOptions = {}) => {\n const querySerializer = (queryParams: T) => {\n const search: string[] = [];\n if (queryParams && typeof queryParams === 'object') {\n for (const name in queryParams) {\n const value = queryParams[name];\n\n if (value === undefined || value === null) {\n continue;\n }\n\n const options = parameters[name] || args;\n\n if (Array.isArray(value)) {\n const serializedArray = serializeArrayParam({\n allowReserved: options.allowReserved,\n explode: true,\n name,\n style: 'form',\n value,\n ...options.array,\n });\n if (serializedArray) search.push(serializedArray);\n } else if (typeof value === 'object') {\n const serializedObject = serializeObjectParam({\n allowReserved: options.allowReserved,\n explode: true,\n name,\n style: 'deepObject',\n value: value as Record<string, unknown>,\n ...options.object,\n });\n if (serializedObject) search.push(serializedObject);\n } else {\n const serializedPrimitive = serializePrimitiveParam({\n allowReserved: options.allowReserved,\n name,\n value: value as string,\n });\n if (serializedPrimitive) search.push(serializedPrimitive);\n }\n }\n }\n return search.join('&');\n };\n return querySerializer;\n};\n\n/**\n * Infers parseAs value from provided Content-Type header.\n */\nexport const getParseAs = (contentType: string | null): Exclude<Config['parseAs'], 'auto'> => {\n if (!contentType) {\n // If no Content-Type header is provided, the best we can do is return the raw response body,\n // which is effectively the same as the 'stream' option.\n return 'stream';\n }\n\n const cleanContent = contentType.split(';')[0]?.trim();\n\n if (!cleanContent) {\n return;\n }\n\n if (cleanContent.startsWith('application/json') || cleanContent.endsWith('+json')) {\n return 'json';\n }\n\n if (cleanContent === 'multipart/form-data') {\n return 'formData';\n }\n\n if (\n ['application/', 'audio/', 'image/', 'video/'].some((type) => cleanContent.startsWith(type))\n ) {\n return 'blob';\n }\n\n if (cleanContent.startsWith('text/')) {\n return 'text';\n }\n\n return;\n};\n\nconst checkForExistence = (\n options: Pick<RequestOptions, 'auth' | 'query'> & {\n headers: Headers;\n },\n name?: string,\n): boolean => {\n if (!name) {\n return false;\n }\n if (\n options.headers.has(name) ||\n options.query?.[name] ||\n options.headers.get('Cookie')?.includes(`${name}=`)\n ) {\n return true;\n }\n return false;\n};\n\nexport const setAuthParams = async ({\n security,\n ...options\n}: Pick<Required<RequestOptions>, 'security'> &\n Pick<RequestOptions, 'auth' | 'query'> & {\n headers: Headers;\n }) => {\n for (const auth of security) {\n if (checkForExistence(options, auth.name)) {\n continue;\n }\n\n const token = await getAuthToken(auth, options.auth);\n\n if (!token) {\n continue;\n }\n\n const name = auth.name ?? 'Authorization';\n\n switch (auth.in) {\n case 'query':\n if (!options.query) {\n options.query = {};\n }\n options.query[name] = token;\n break;\n case 'cookie':\n options.headers.append('Cookie', `${name}=${token}`);\n break;\n case 'header':\n default:\n options.headers.set(name, token);\n break;\n }\n }\n};\n\nexport const buildUrl: Client['buildUrl'] = (options) =>\n getUrl({\n baseUrl: options.baseUrl as string,\n path: options.path,\n query: options.query,\n querySerializer:\n typeof options.querySerializer === 'function'\n ? options.querySerializer\n : createQuerySerializer(options.querySerializer),\n url: options.url,\n });\n\nexport const mergeConfigs = (a: Config, b: Config): Config => {\n const config = { ...a, ...b };\n if (config.baseUrl?.endsWith('/')) {\n config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1);\n }\n config.headers = mergeHeaders(a.headers, b.headers);\n return config;\n};\n\nconst headersEntries = (headers: Headers): Array<[string, string]> => {\n const entries: Array<[string, string]> = [];\n headers.forEach((value, key) => {\n entries.push([key, value]);\n });\n return entries;\n};\n\nexport const mergeHeaders = (\n ...headers: Array<Required<Config>['headers'] | undefined>\n): Headers => {\n const mergedHeaders = new Headers();\n for (const header of headers) {\n if (!header) {\n continue;\n }\n\n const iterator = header instanceof Headers ? headersEntries(header) : Object.entries(header);\n\n for (const [key, value] of iterator) {\n if (value === null) {\n mergedHeaders.delete(key);\n } else if (Array.isArray(value)) {\n for (const v of value) {\n mergedHeaders.append(key, v as string);\n }\n } else if (value !== undefined) {\n // assume object headers are meant to be JSON stringified, i.e. their\n // content value in OpenAPI specification is 'application/json'\n mergedHeaders.set(\n key,\n typeof value === 'object' ? JSON.stringify(value) : (value as string),\n );\n }\n }\n }\n return mergedHeaders;\n};\n\ntype ErrInterceptor<Err, Res, Req, Options> = (\n error: Err,\n response: Res,\n request: Req,\n options: Options,\n) => Err | Promise<Err>;\n\ntype ReqInterceptor<Req, Options> = (request: Req, options: Options) => Req | Promise<Req>;\n\ntype ResInterceptor<Res, Req, Options> = (\n response: Res,\n request: Req,\n options: Options,\n) => Res | Promise<Res>;\n\nclass Interceptors<Interceptor> {\n fns: Array<Interceptor | null> = [];\n\n clear(): void {\n this.fns = [];\n }\n\n eject(id: number | Interceptor): void {\n const index = this.getInterceptorIndex(id);\n if (this.fns[index]) {\n this.fns[index] = null;\n }\n }\n\n exists(id: number | Interceptor): boolean {\n const index = this.getInterceptorIndex(id);\n return Boolean(this.fns[index]);\n }\n\n getInterceptorIndex(id: number | Interceptor): number {\n if (typeof id === 'number') {\n return this.fns[id] ? id : -1;\n }\n return this.fns.indexOf(id);\n }\n\n update(id: number | Interceptor, fn: Interceptor): number | Interceptor | false {\n const index = this.getInterceptorIndex(id);\n if (this.fns[index]) {\n this.fns[index] = fn;\n return id;\n }\n return false;\n }\n\n use(fn: Interceptor): number {\n this.fns.push(fn);\n return this.fns.length - 1;\n }\n}\n\nexport interface Middleware<Req, Res, Err, Options> {\n error: Interceptors<ErrInterceptor<Err, Res, Req, Options>>;\n request: Interceptors<ReqInterceptor<Req, Options>>;\n response: Interceptors<ResInterceptor<Res, Req, Options>>;\n}\n\nexport const createInterceptors = <Req, Res, Err, Options>(): Middleware<\n Req,\n Res,\n Err,\n Options\n> => ({\n error: new Interceptors<ErrInterceptor<Err, Res, Req, Options>>(),\n request: new Interceptors<ReqInterceptor<Req, Options>>(),\n response: new Interceptors<ResInterceptor<Res, Req, Options>>(),\n});\n\nconst defaultQuerySerializer = createQuerySerializer({\n allowReserved: false,\n array: {\n explode: true,\n style: 'form',\n },\n object: {\n explode: true,\n style: 'deepObject',\n },\n});\n\nconst defaultHeaders = {\n 'Content-Type': 'application/json',\n};\n\nexport const createConfig = <T extends ClientOptions = ClientOptions>(\n override: Config<Omit<ClientOptions, keyof T> & T> = {},\n): Config<Omit<ClientOptions, keyof T> & T> => ({\n ...jsonBodySerializer,\n headers: defaultHeaders,\n parseAs: 'auto',\n querySerializer: defaultQuerySerializer,\n ...override,\n});\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { createSseClient } from '../core/serverSentEvents.gen.js';\nimport type { HttpMethod } from '../core/types.gen.js';\nimport { getValidRequestBody } from '../core/utils.gen.js';\nimport type { Client, Config, RequestOptions, ResolvedRequestOptions } from './types.gen.js';\nimport {\n buildUrl,\n createConfig,\n createInterceptors,\n getParseAs,\n mergeConfigs,\n mergeHeaders,\n setAuthParams,\n} from './utils.gen.js';\n\ntype ReqInit = Omit<RequestInit, 'body' | 'headers'> & {\n body?: any;\n headers: ReturnType<typeof mergeHeaders>;\n};\n\nexport const createClient = (config: Config = {}): Client => {\n let _config = mergeConfigs(createConfig(), config);\n\n const getConfig = (): Config => ({ ..._config });\n\n const setConfig = (config: Config): Config => {\n _config = mergeConfigs(_config, config);\n return getConfig();\n };\n\n const interceptors = createInterceptors<Request, Response, unknown, ResolvedRequestOptions>();\n\n const beforeRequest = async (options: RequestOptions) => {\n const opts = {\n ..._config,\n ...options,\n fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,\n headers: mergeHeaders(_config.headers, options.headers),\n serializedBody: undefined as string | undefined,\n };\n\n if (opts.security) {\n await setAuthParams({\n ...opts,\n security: opts.security,\n });\n }\n\n if (opts.requestValidator) {\n await opts.requestValidator(opts);\n }\n\n if (opts.body !== undefined && opts.bodySerializer) {\n opts.serializedBody = opts.bodySerializer(opts.body) as string | undefined;\n }\n\n // remove Content-Type header if body is empty to avoid sending invalid requests\n if (opts.body === undefined || opts.serializedBody === '') {\n opts.headers.delete('Content-Type');\n }\n\n const url = buildUrl(opts);\n\n return { opts, url };\n };\n\n const request: Client['request'] = async (options) => {\n // @ts-expect-error\n const { opts, url } = await beforeRequest(options);\n const requestInit: ReqInit = {\n redirect: 'follow',\n ...opts,\n body: getValidRequestBody(opts),\n };\n\n let request = new Request(url, requestInit);\n\n for (const fn of interceptors.request.fns) {\n if (fn) {\n request = await fn(request, opts);\n }\n }\n\n // fetch must be assigned here, otherwise it would throw the error:\n // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation\n const _fetch = opts.fetch!;\n let response: Response;\n\n try {\n response = await _fetch(request);\n } catch (error) {\n // Handle fetch exceptions (AbortError, network errors, etc.)\n let finalError = error;\n\n for (const fn of interceptors.error.fns) {\n if (fn) {\n finalError = (await fn(error, undefined as any, request, opts)) as unknown;\n }\n }\n\n finalError = finalError || ({} as unknown);\n\n if (opts.throwOnError) {\n throw finalError;\n }\n\n // Return error response\n return opts.responseStyle === 'data'\n ? undefined\n : {\n error: finalError,\n request,\n response: undefined as any,\n };\n }\n\n for (const fn of interceptors.response.fns) {\n if (fn) {\n response = await fn(response, request, opts);\n }\n }\n\n const result = {\n request,\n response,\n };\n\n if (response.ok) {\n const parseAs =\n (opts.parseAs === 'auto'\n ? getParseAs(response.headers.get('Content-Type'))\n : opts.parseAs) ?? 'json';\n\n if (response.status === 204 || response.headers.get('Content-Length') === '0') {\n let emptyData: any;\n switch (parseAs) {\n case 'arrayBuffer':\n case 'blob':\n case 'text':\n emptyData = await response[parseAs]();\n break;\n case 'formData':\n emptyData = new FormData();\n break;\n case 'stream':\n emptyData = response.body;\n break;\n case 'json':\n default:\n emptyData = {};\n break;\n }\n return opts.responseStyle === 'data'\n ? emptyData\n : {\n data: emptyData,\n ...result,\n };\n }\n\n let data: any;\n switch (parseAs) {\n case 'arrayBuffer':\n case 'blob':\n case 'formData':\n case 'text':\n data = await response[parseAs]();\n break;\n case 'json': {\n // Some servers return 200 with no Content-Length and empty body.\n // response.json() would throw; read as text and parse if non-empty.\n const text = await response.text();\n data = text ? JSON.parse(text) : {};\n break;\n }\n case 'stream':\n return opts.responseStyle === 'data'\n ? response.body\n : {\n data: response.body,\n ...result,\n };\n }\n\n if (parseAs === 'json') {\n if (opts.responseValidator) {\n await opts.responseValidator(data);\n }\n\n if (opts.responseTransformer) {\n data = await opts.responseTransformer(data);\n }\n }\n\n return opts.responseStyle === 'data'\n ? data\n : {\n data,\n ...result,\n };\n }\n\n const textError = await response.text();\n let jsonError: unknown;\n\n try {\n jsonError = JSON.parse(textError);\n } catch {\n // noop\n }\n\n const error = jsonError ?? textError;\n let finalError = error;\n\n for (const fn of interceptors.error.fns) {\n if (fn) {\n finalError = (await fn(error, response, request, opts)) as string;\n }\n }\n\n finalError = finalError || ({} as string);\n\n if (opts.throwOnError) {\n throw finalError;\n }\n\n // TODO: we probably want to return error and improve types\n return opts.responseStyle === 'data'\n ? undefined\n : {\n error: finalError,\n ...result,\n };\n };\n\n const makeMethodFn = (method: Uppercase<HttpMethod>) => (options: RequestOptions) =>\n request({ ...options, method });\n\n const makeSseFn = (method: Uppercase<HttpMethod>) => async (options: RequestOptions) => {\n const { opts, url } = await beforeRequest(options);\n return createSseClient({\n ...opts,\n body: opts.body as BodyInit | null | undefined,\n headers: opts.headers as unknown as Record<string, string>,\n method,\n onRequest: async (url, init) => {\n let request = new Request(url, init);\n for (const fn of interceptors.request.fns) {\n if (fn) {\n request = await fn(request, opts);\n }\n }\n return request;\n },\n serializedBody: getValidRequestBody(opts) as BodyInit | null | undefined,\n url,\n });\n };\n\n const _buildUrl: Client['buildUrl'] = (options) => buildUrl({ ..._config, ...options });\n\n return {\n buildUrl: _buildUrl,\n connect: makeMethodFn('CONNECT'),\n delete: makeMethodFn('DELETE'),\n get: makeMethodFn('GET'),\n getConfig,\n head: makeMethodFn('HEAD'),\n interceptors,\n options: makeMethodFn('OPTIONS'),\n patch: makeMethodFn('PATCH'),\n post: makeMethodFn('POST'),\n put: makeMethodFn('PUT'),\n request,\n setConfig,\n sse: {\n connect: makeSseFn('CONNECT'),\n delete: makeSseFn('DELETE'),\n get: makeSseFn('GET'),\n head: makeSseFn('HEAD'),\n options: makeSseFn('OPTIONS'),\n patch: makeSseFn('PATCH'),\n post: makeSseFn('POST'),\n put: makeSseFn('PUT'),\n trace: makeSseFn('TRACE'),\n },\n trace: makeMethodFn('TRACE'),\n } as Client;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { type ClientOptions, type Config, createClient, createConfig } from './client/index.js';\nimport type { ClientOptions as ClientOptions2 } from './types.gen.js';\n\n/**\n * The `createClientConfig()` function will be called on client initialization\n * and the returned object will become the client's initial configuration.\n *\n * You may want to initialize your client this way instead of calling\n * `setConfig()`. This is useful for example if you're using Next.js\n * to ensure your client always has the correct values.\n */\nexport type CreateClientConfig<T extends ClientOptions = ClientOptions2> = (override?: Config<ClientOptions & T>) => Config<Required<ClientOptions> & T>;\n\nexport const client = createClient(createConfig<ClientOptions2>({ baseUrl: 'https://app.practicepanther.com' }));\n","import { getAccessToken } from \"./auth.js\";\nimport { client } from \"./client/client.gen.js\";\n\nclient.setConfig({\n baseUrl: \"https://app.practicepanther.com\",\n auth: async () => getAccessToken(),\n});\n\nexport { client };\n","#!/usr/bin/env node\nimport \"./pp.js\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport { createServer } from \"./create-server.js\";\n\nconst command = process.argv[2];\nif (command === \"auth\") {\n const { runCli } = await import(\"./auth.js\");\n runCli(process.argv[3]);\n} else {\n const server = createServer();\n const transport = new StdioServerTransport();\n await server.connect(transport);\n}\n","import { z } from \"zod\";\n\nexport function listOf<T extends z.ZodTypeAny>(schema: T) {\n return z.looseObject({ items: z.array(schema) });\n}\n\nexport function cleanQuery<T extends Record<string, unknown>>(q: T): T {\n return Object.fromEntries(\n Object.entries(q).filter(([, v]) => v !== undefined),\n ) as T;\n}\n\nexport function err(e: unknown) {\n const msg = e instanceof Error ? e.message : String(e);\n return {\n content: [{ type: \"text\" as const, text: `Error: ${msg}` }],\n isError: true as const,\n };\n}\n","import type { z } from \"zod\";\nimport { cleanQuery, err } from \"./helpers.js\";\n\nexport interface ToolConfig {\n name: string;\n description: string;\n // biome-ignore lint/suspicious/noExplicitAny: SDK functions have varying signatures\n sdkFn: (options?: any) => Promise<any>;\n schema?: z.ZodTypeAny;\n isList?: boolean;\n /** Path params: string value = description (SDK name equals MCP name);\n * object value = { sdkName, description } for name remapping. */\n pathParams?: Record<\n string,\n string | { sdkName: string; description: string }\n >;\n /** Query params: Zod type = full schema (has .parse method);\n * plain object = { description } for simple string params. */\n queryParams?: Record<string, z.ZodType | { description: string }>;\n rawContent?: boolean;\n /** Default query values always included (e.g. { fields: \"all\" }). */\n defaultQuery?: Record<string, string>;\n /** Common query params auto-merged for tools whose name starts with \"list_\". */\n commonListQueryParams?: Record<string, { description: string }>;\n}\n\nexport interface ToolResult {\n [x: string]: unknown;\n content: { type: \"text\"; text: string }[];\n structuredContent?: Record<string, unknown>;\n isError?: true;\n}\n\n/** Common list query params used by Lawmatics. */\nexport const commonListQueryParams: Record<string, { description: string }> = {\n page: { description: \"Page number for pagination (default: 1)\" },\n sort_order: { description: \"Sort order: asc or desc (default: desc)\" },\n sort_by: {\n description: \"Field to sort by (e.g. id, created_at, updated_at)\",\n },\n filter_by: { description: \"Field name to filter on\" },\n filter_on: { description: \"Value to filter for\" },\n filter_with: {\n description:\n \"Filter operator: =, !=, <=, <, >=, >, like, ilike, null, not_null\",\n },\n};\n\n/** Check whether a value is a Zod type (has .parse) vs a plain { description } object. */\nfunction isZodType(v: z.ZodType | { description: string }): v is z.ZodType {\n return typeof (v as z.ZodType).parse === \"function\";\n}\n\n/** Compute effective query params for a tool, merging commonListQueryParams when applicable. */\nexport function getEffectiveQueryParams(\n tool: ToolConfig,\n): Record<string, z.ZodType | { description: string }> | undefined {\n if (tool.commonListQueryParams && tool.name.startsWith(\"list_\")) {\n return { ...tool.commonListQueryParams, ...tool.queryParams };\n }\n return tool.queryParams;\n}\n\nexport function createToolHandler(\n tool: ToolConfig,\n): (params: Record<string, unknown>) => Promise<ToolResult> {\n const effectiveQueryParams = getEffectiveQueryParams(tool);\n\n return async (params: Record<string, unknown>) => {\n try {\n const options: Record<string, unknown> = {};\n\n // Path params\n if (tool.pathParams) {\n const path: Record<string, string> = {};\n for (const [mcpName, spec] of Object.entries(tool.pathParams)) {\n const sdkName = typeof spec === \"string\" ? mcpName : spec.sdkName;\n path[sdkName] = params[mcpName] as string;\n }\n options.path = path;\n }\n\n // Query params\n const query: Record<string, unknown> = {\n ...(tool.defaultQuery ?? {}),\n };\n\n if (effectiveQueryParams) {\n for (const paramName of Object.keys(effectiveQueryParams)) {\n if (params[paramName] !== undefined) {\n query[paramName] = params[paramName];\n }\n }\n }\n\n const hasQueryEntries = Object.keys(query).length > 0;\n if (hasQueryEntries) {\n options.query = cleanQuery(query);\n }\n\n const res = await tool.sdkFn(\n Object.keys(options).length > 0 ? options : undefined,\n );\n\n if (tool.rawContent) {\n return {\n content: [\n {\n type: \"text\" as const,\n text: JSON.stringify(res.data, null, 2),\n },\n ],\n };\n }\n\n const structured = tool.isList\n ? { items: res.data }\n : (res.data as Record<string, unknown>);\n\n return {\n content: [\n {\n type: \"text\" as const,\n text: JSON.stringify(structured, null, 2),\n },\n ],\n structuredContent: tool.schema ? structured : undefined,\n };\n } catch (e) {\n return err(e);\n }\n };\n}\n\nexport { isZodType };\n","import { listOf } from \"@mjquinlan2000/shared/helpers.js\";\nimport {\n createToolHandler,\n type ToolConfig,\n} from \"@mjquinlan2000/shared/tool-handler.js\";\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { z } from \"zod\";\nimport {\n accountsGetAccount,\n accountsGetAccounts,\n bankAccountsGetBankAccount,\n bankAccountsGetBankAccounts,\n callLogsGetCallLog,\n callLogsGetCallLogs,\n contactsGetContact,\n contactsGetContacts,\n customFieldsGetCustomField,\n customFieldsGetCustomFieldsForAccount,\n customFieldsGetCustomFieldsForContact,\n customFieldsGetCustomFieldsForMatter,\n emailsGetEmail,\n emailsGetEmails,\n eventsGetEvent,\n eventsGetEvents,\n expenseCategoriesGetExpenseCategories,\n expenseCategoriesGetExpenseCategory,\n expensesGetExpense,\n expensesGetExpensess,\n filesDownloadFile,\n filesGetFile,\n filesGetFiles,\n flatFeesGetFlatFee,\n flatFeesGetFlatFees,\n invoicesGetInvoice,\n invoicesGetInvoices,\n itemsGetItem,\n itemsGetItems,\n mattersGetMatter,\n mattersGetMatters,\n messagesGetMessagesAsync,\n notesGetNote,\n notesGetNotes,\n paymentsGetPayment,\n paymentsGetPayments,\n relationshipsGetRelationship,\n relationshipsGetRelationships,\n tagsGetTagsForAccounts,\n tagsGetTagsForActivities,\n tagsGetTagsForProjects,\n tasksGetTask,\n tasksGetTasks,\n timeEntriesGetTimeEntry,\n timeEntriesGetTimeEntrys,\n usersGetUser,\n usersGetUsers,\n usersMe,\n} from \"./client/index.js\";\nimport {\n zAccount,\n zBankAccount,\n zCallLog,\n zContact,\n zCustomField,\n zEmail,\n zEvent,\n zExpense,\n zExpenseCategory,\n zFile,\n zFlatFee,\n zInvoice,\n zItem,\n zMatter,\n zMessage,\n zNote,\n zPayment,\n zPaymentDetail,\n zRelationship,\n zTag,\n zTask,\n zTimeEntry,\n zUser,\n} from \"./client/zod.gen.js\";\n\nexport function createServer(): McpServer {\n const server = new McpServer(\n {\n name: \"practicepanther\",\n version: \"1.0.0\",\n },\n {\n instructions: [\n \"PracticePanther is a legal practice management system.\",\n \"IMPORTANT: The API does not support pagination.\",\n \"List endpoints return ALL matching records, which can be very large.\",\n \"Always constrain list calls with filters (date ranges, account/matter IDs, tags, etc.) to avoid returning excessive data.\",\n \"Prefer using created_since/updated_since or date_from/date_to to narrow results.\",\n \"If looking for a specific record, use a get-by-id tool instead of listing and filtering client-side.\",\n ].join(\" \"),\n },\n );\n\n // ── Tool definitions ──\n\n const tools: ToolConfig[] = [\n // ── Accounts ──\n {\n name: \"get_account\",\n description:\n \"Get a single account (company or individual) by ID. Returns contacts, tags, custom fields, and assigned users.\",\n sdkFn: accountsGetAccount,\n schema: zAccount,\n pathParams: { id: \"Account ID\" },\n },\n {\n name: \"list_accounts\",\n description:\n \"List accounts with optional filters. An account represents one or more contacts (e.g. a company).\",\n sdkFn: accountsGetAccounts,\n schema: zAccount,\n isList: true,\n queryParams: {\n assigned_to_user_id: z\n .string()\n .optional()\n .describe(\"Filter by assigned user ID\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n search_text: z.string().optional().describe(\"Search text\"),\n account_tag: z.string().optional().describe(\"Filter by account tag\"),\n },\n },\n\n // ── Bank Accounts ──\n {\n name: \"get_bank_account\",\n description:\n \"Get a single bank account (operating, trust, or credit card) by ID.\",\n sdkFn: bankAccountsGetBankAccount,\n schema: zBankAccount,\n pathParams: { id: \"Bank Account ID\" },\n },\n {\n name: \"list_bank_accounts\",\n description: \"List all bank accounts.\",\n sdkFn: bankAccountsGetBankAccounts,\n schema: zBankAccount,\n isList: true,\n queryParams: {\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n },\n },\n\n // ── Call Logs ──\n {\n name: \"get_call_log\",\n description: \"Get a single call log entry by ID.\",\n sdkFn: callLogsGetCallLog,\n schema: zCallLog,\n pathParams: { id: \"Call Log ID\" },\n },\n {\n name: \"list_call_logs\",\n description:\n \"List call log entries with optional filters by account, matter, user, date range, or tag.\",\n sdkFn: callLogsGetCallLogs,\n schema: zCallLog,\n isList: true,\n queryParams: {\n assigned_to_user_id: z\n .string()\n .optional()\n .describe(\"Filter by assigned user ID\"),\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n matter_id: z.string().optional().describe(\"Filter by matter ID\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n date_from: z\n .string()\n .optional()\n .describe(\"ISO date — filter from this date\"),\n date_to: z\n .string()\n .optional()\n .describe(\"ISO date — filter to this date\"),\n activity_tag: z.string().optional().describe(\"Filter by activity tag\"),\n },\n },\n\n // ── Contacts ──\n {\n name: \"get_contact\",\n description:\n \"Get a single contact by ID. Each account can have multiple contacts; one is the primary.\",\n sdkFn: contactsGetContact,\n schema: zContact,\n pathParams: { id: \"Contact ID\" },\n },\n {\n name: \"list_contacts\",\n description:\n \"List contacts with optional filters by account, status, user, search text, or company.\",\n sdkFn: contactsGetContacts,\n schema: zContact,\n isList: true,\n queryParams: {\n assigned_to_user_id: z\n .string()\n .optional()\n .describe(\"Filter by assigned user ID\"),\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n status: z\n .enum([\"Active\", \"Archived\"])\n .optional()\n .describe(\"Filter by status\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n search_text: z.string().optional().describe(\"Search text\"),\n account_tag: z.string().optional().describe(\"Filter by account tag\"),\n company_name: z.string().optional().describe(\"Filter by company name\"),\n },\n },\n\n // ── Custom Fields ──\n {\n name: \"get_custom_field\",\n description: \"Get a single custom field definition by ID.\",\n sdkFn: customFieldsGetCustomField,\n schema: zCustomField,\n pathParams: { id: \"Custom Field ID\" },\n },\n {\n name: \"list_custom_fields_for_company\",\n description: \"List custom field definitions for companies (accounts).\",\n sdkFn: customFieldsGetCustomFieldsForAccount,\n schema: zCustomField,\n isList: true,\n queryParams: {\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n },\n },\n {\n name: \"list_custom_fields_for_matter\",\n description: \"List custom field definitions for matters.\",\n sdkFn: customFieldsGetCustomFieldsForMatter,\n schema: zCustomField,\n isList: true,\n queryParams: {\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n },\n },\n {\n name: \"list_custom_fields_for_contact\",\n description: \"List custom field definitions for contacts.\",\n sdkFn: customFieldsGetCustomFieldsForContact,\n schema: zCustomField,\n isList: true,\n queryParams: {\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n },\n },\n\n // ── Emails ──\n {\n name: \"get_email\",\n description:\n \"Get a single email by ID. Returns full HTML body when fetched individually.\",\n sdkFn: emailsGetEmail,\n schema: zEmail,\n pathParams: { id: \"Email ID\" },\n },\n {\n name: \"list_emails\",\n description:\n \"List emails with optional filters by account, matter, user, tag, or external message ID.\",\n sdkFn: emailsGetEmails,\n schema: zEmail,\n isList: true,\n queryParams: {\n assigned_to_user_id: z\n .string()\n .optional()\n .describe(\"Filter by assigned user ID\"),\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n matter_id: z.string().optional().describe(\"Filter by matter ID\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n activity_tag: z.string().optional().describe(\"Filter by activity tag\"),\n external_message_id: z\n .string()\n .optional()\n .describe(\"Filter by external message ID\"),\n },\n },\n\n // ── Events ──\n {\n name: \"get_event\",\n description: \"Get a single calendar event by ID.\",\n sdkFn: eventsGetEvent,\n schema: zEvent,\n pathParams: { id: \"Event ID\" },\n },\n {\n name: \"list_events\",\n description:\n \"List calendar events with optional filters by account, matter, user, date range, or tag.\",\n sdkFn: eventsGetEvents,\n schema: zEvent,\n isList: true,\n queryParams: {\n assigned_to_user_id: z\n .string()\n .optional()\n .describe(\"Filter by assigned user ID\"),\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n matter_id: z.string().optional().describe(\"Filter by matter ID\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n date_from: z\n .string()\n .optional()\n .describe(\"ISO date — filter from this date\"),\n date_to: z\n .string()\n .optional()\n .describe(\"ISO date — filter to this date\"),\n activity_tag: z.string().optional().describe(\"Filter by activity tag\"),\n },\n },\n\n // ── Expense Categories ──\n {\n name: \"get_expense_category\",\n description: \"Get a single expense category by ID.\",\n sdkFn: expenseCategoriesGetExpenseCategory,\n schema: zExpenseCategory,\n pathParams: { id: \"Expense Category ID\" },\n },\n {\n name: \"list_expense_categories\",\n description: \"List all expense categories.\",\n sdkFn: expenseCategoriesGetExpenseCategories,\n schema: zExpenseCategory,\n isList: true,\n queryParams: {\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n },\n },\n\n // ── Expenses ──\n {\n name: \"get_expense\",\n description:\n \"Get a single expense by ID. Includes billable status, amount, and category.\",\n sdkFn: expensesGetExpense,\n schema: zExpense,\n pathParams: { id: \"Expense ID\" },\n },\n {\n name: \"list_expenses\",\n description:\n \"List expenses with optional filters by account, matter, billing user, category, or date range.\",\n sdkFn: expensesGetExpensess,\n schema: zExpense,\n isList: true,\n queryParams: {\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n matter_id: z.string().optional().describe(\"Filter by matter ID\"),\n billed_by_user_id: z\n .string()\n .optional()\n .describe(\"Filter by billing user ID\"),\n expense_category_id: z\n .string()\n .optional()\n .describe(\"Filter by expense category ID\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n date_from: z\n .string()\n .optional()\n .describe(\"ISO date — filter from this date\"),\n date_to: z\n .string()\n .optional()\n .describe(\"ISO date — filter to this date\"),\n },\n },\n\n // ── Files ──\n {\n name: \"get_file\",\n description: \"Get file metadata by ID (name, size, content type).\",\n sdkFn: filesGetFile,\n schema: zFile,\n pathParams: { id: \"File ID\" },\n },\n {\n name: \"download_file\",\n description: \"Download a file's contents by ID.\",\n sdkFn: filesDownloadFile,\n pathParams: { id: \"File ID to download\" },\n rawContent: true,\n },\n {\n name: \"list_files\",\n description:\n \"List files with optional filters by account, matter, activity, creator, or search text.\",\n sdkFn: filesGetFiles,\n schema: zFile,\n isList: true,\n queryParams: {\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n search_text: z.string().optional().describe(\"Search text\"),\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n matter_id: z.string().optional().describe(\"Filter by matter ID\"),\n activity_id: z.string().optional().describe(\"Filter by activity ID\"),\n created_by_user_id: z\n .string()\n .optional()\n .describe(\"Filter by creating user ID\"),\n },\n },\n\n // ── Flat Fees ──\n {\n name: \"get_flat_fee\",\n description: \"Get a single flat fee entry by ID.\",\n sdkFn: flatFeesGetFlatFee,\n schema: zFlatFee,\n pathParams: { id: \"Flat Fee ID\" },\n },\n {\n name: \"list_flat_fees\",\n description:\n \"List flat fees with optional filters by account, matter, user, item, or date range.\",\n sdkFn: flatFeesGetFlatFees,\n schema: zFlatFee,\n isList: true,\n queryParams: {\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n matter_id: z.string().optional().describe(\"Filter by matter ID\"),\n user_id: z.string().optional().describe(\"Filter by user ID\"),\n item_id: z.string().optional().describe(\"Filter by item ID\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n date_from: z\n .string()\n .optional()\n .describe(\"ISO date — filter from this date\"),\n date_to: z\n .string()\n .optional()\n .describe(\"ISO date — filter to this date\"),\n },\n },\n\n // ── Invoices ──\n {\n name: \"get_invoice\",\n description:\n \"Get a single invoice by ID with line items (time entries, expenses, flat fees).\",\n sdkFn: invoicesGetInvoice,\n schema: zInvoice,\n pathParams: { id: \"Invoice ID\" },\n },\n {\n name: \"list_invoices\",\n description:\n \"List invoices with optional filters by account, matter, or date range.\",\n sdkFn: invoicesGetInvoices,\n schema: zInvoice,\n isList: true,\n queryParams: {\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n matter_id: z.string().optional().describe(\"Filter by matter ID\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n date_from: z\n .string()\n .optional()\n .describe(\"ISO date — filter from this date\"),\n date_to: z\n .string()\n .optional()\n .describe(\"ISO date — filter to this date\"),\n },\n },\n\n // ── Items ──\n {\n name: \"get_item\",\n description: \"Get a single billing item/service by ID.\",\n sdkFn: itemsGetItem,\n schema: zItem,\n pathParams: { id: \"Item ID\" },\n },\n {\n name: \"list_items\",\n description: \"List all billing items/services.\",\n sdkFn: itemsGetItems,\n schema: zItem,\n isList: true,\n queryParams: {\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n },\n },\n\n // ── Matters ──\n {\n name: \"get_matter\",\n description:\n \"Get a single matter (case/project) by ID. Returns status, assigned users, tags, and custom fields.\",\n sdkFn: mattersGetMatter,\n schema: zMatter,\n pathParams: { id: \"Matter ID\" },\n },\n {\n name: \"list_matters\",\n description:\n \"List matters with optional filters by account, status (Open/Closed/Pending/Archived), user, search text, or tags.\",\n sdkFn: mattersGetMatters,\n schema: zMatter,\n isList: true,\n queryParams: {\n assigned_to_user_id: z\n .string()\n .optional()\n .describe(\"Filter by assigned user ID\"),\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n status: z\n .enum([\"Closed\", \"Pending\", \"Open\", \"Archived\"])\n .optional()\n .describe(\"Filter by matter status\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n search_text: z.string().optional().describe(\"Search text\"),\n account_tag: z.string().optional().describe(\"Filter by account tag\"),\n matter_tag: z.string().optional().describe(\"Filter by matter tag\"),\n },\n },\n\n // ── Messages ──\n {\n name: \"list_messages\",\n description: \"List all messages.\",\n sdkFn: messagesGetMessagesAsync,\n schema: zMessage,\n isList: true,\n },\n\n // ── Notes ──\n {\n name: \"get_note\",\n description: \"Get a single note by ID.\",\n sdkFn: notesGetNote,\n schema: zNote,\n pathParams: { id: \"Note ID\" },\n },\n {\n name: \"list_notes\",\n description:\n \"List notes with optional filters by account, matter, user, date range, or tag.\",\n sdkFn: notesGetNotes,\n schema: zNote,\n isList: true,\n queryParams: {\n assigned_to_user_id: z\n .string()\n .optional()\n .describe(\"Filter by assigned user ID\"),\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n matter_id: z.string().optional().describe(\"Filter by matter ID\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n date_from: z\n .string()\n .optional()\n .describe(\"ISO date — filter from this date\"),\n date_to: z\n .string()\n .optional()\n .describe(\"ISO date — filter to this date\"),\n activity_tag: z.string().optional().describe(\"Filter by activity tag\"),\n },\n },\n\n // ── Payments ──\n {\n name: \"get_payment\",\n description:\n \"Get a single payment by ID with full details including status.\",\n sdkFn: paymentsGetPayment,\n schema: zPaymentDetail,\n pathParams: { id: \"Payment ID\" },\n },\n {\n name: \"list_payments\",\n description:\n \"List payments with optional filters by account, matter, bank account, type, or date range.\",\n sdkFn: paymentsGetPayments,\n schema: zPayment,\n isList: true,\n queryParams: {\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n matter_id: z.string().optional().describe(\"Filter by matter ID\"),\n bank_account_id: z\n .string()\n .optional()\n .describe(\"Filter by bank account ID\"),\n bank_account_type: z\n .enum([\"Operating\", \"Trust\", \"CreditCard\"])\n .optional()\n .describe(\"Filter by bank account type\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n date_from: z\n .string()\n .optional()\n .describe(\"ISO date — filter from this date\"),\n date_to: z\n .string()\n .optional()\n .describe(\"ISO date — filter to this date\"),\n },\n },\n\n // ── Relationships ──\n {\n name: \"get_relationship\",\n description: \"Get a single matter-contact relationship by ID.\",\n sdkFn: relationshipsGetRelationship,\n schema: zRelationship,\n pathParams: { id: \"Relationship ID\" },\n },\n {\n name: \"list_relationships\",\n description:\n \"List relationships between contacts and matters with optional filters.\",\n sdkFn: relationshipsGetRelationships,\n schema: zRelationship,\n isList: true,\n queryParams: {\n contact_id: z.string().optional().describe(\"Filter by contact ID\"),\n matter_id: z.string().optional().describe(\"Filter by matter ID\"),\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n },\n },\n\n // ── Tags ──\n {\n name: \"list_account_tags\",\n description: \"List all tags available for accounts.\",\n sdkFn: tagsGetTagsForAccounts,\n schema: zTag,\n isList: true,\n },\n {\n name: \"list_matter_tags\",\n description: \"List all tags available for matters.\",\n sdkFn: tagsGetTagsForProjects,\n schema: zTag,\n isList: true,\n },\n {\n name: \"list_activity_tags\",\n description:\n \"List all tags available for activities (call logs, events, notes, etc.).\",\n sdkFn: tagsGetTagsForActivities,\n schema: zTag,\n isList: true,\n },\n\n // ── Tasks ──\n {\n name: \"get_task\",\n description: \"Get a single task by ID.\",\n sdkFn: tasksGetTask,\n schema: zTask,\n pathParams: { id: \"Task ID\" },\n },\n {\n name: \"list_tasks\",\n description:\n \"List tasks with optional filters by account, matter, user, status, due date range, or tag.\",\n sdkFn: tasksGetTasks,\n schema: zTask,\n isList: true,\n queryParams: {\n assigned_to_user_id: z\n .string()\n .optional()\n .describe(\"Filter by assigned user ID\"),\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n matter_id: z.string().optional().describe(\"Filter by matter ID\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n status: z\n .enum([\"NotCompleted\", \"InProgress\", \"Completed\", \"Conditional\"])\n .optional()\n .describe(\"Filter by task status\"),\n due_date_from: z\n .string()\n .optional()\n .describe(\"ISO date — filter by due date from\"),\n due_date_to: z\n .string()\n .optional()\n .describe(\"ISO date — filter by due date to\"),\n activity_tag: z.string().optional().describe(\"Filter by activity tag\"),\n },\n },\n\n // ── Time Entries ──\n {\n name: \"get_time_entry\",\n description:\n \"Get a single time entry by ID. Hours are decimal (e.g. 1.5 = 1h30m).\",\n sdkFn: timeEntriesGetTimeEntry,\n schema: zTimeEntry,\n pathParams: { id: \"Time Entry ID\" },\n },\n {\n name: \"list_time_entries\",\n description:\n \"List time entries with optional filters by account, matter, user, item, or date range.\",\n sdkFn: timeEntriesGetTimeEntrys,\n schema: zTimeEntry,\n isList: true,\n queryParams: {\n account_id: z.string().optional().describe(\"Filter by account ID\"),\n matter_id: z.string().optional().describe(\"Filter by matter ID\"),\n user_id: z.string().optional().describe(\"Filter by user ID\"),\n item_id: z.string().optional().describe(\"Filter by item ID\"),\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n date_from: z\n .string()\n .optional()\n .describe(\"ISO date — filter from this date\"),\n date_to: z\n .string()\n .optional()\n .describe(\"ISO date — filter to this date\"),\n },\n },\n\n // ── Users ──\n {\n name: \"get_me\",\n description: \"Get the currently authenticated user's profile.\",\n sdkFn: usersMe,\n schema: zUser,\n },\n {\n name: \"get_user\",\n description: \"Get a single user by ID.\",\n sdkFn: usersGetUser,\n schema: zUser,\n pathParams: { id: \"User ID\" },\n },\n {\n name: \"list_users\",\n description:\n \"List users with optional filters by creation date, update date, or email address.\",\n sdkFn: usersGetUsers,\n schema: zUser,\n isList: true,\n queryParams: {\n created_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records created after this date\"),\n updated_since: z\n .string()\n .optional()\n .describe(\"ISO date — return records updated after this date\"),\n email_address: z\n .string()\n .optional()\n .describe(\"Filter by email address\"),\n },\n },\n ];\n\n // ── Register all tools ──\n\n for (const tool of tools) {\n const inputSchema: Record<string, z.ZodType> = {};\n\n // Add path params as required strings\n if (tool.pathParams) {\n for (const [paramName, spec] of Object.entries(tool.pathParams)) {\n const desc = typeof spec === \"string\" ? spec : spec.description;\n inputSchema[paramName] = z.string().describe(desc);\n }\n }\n\n // Add query params (already full Zod types)\n if (tool.queryParams) {\n for (const [paramName, zodType] of Object.entries(tool.queryParams)) {\n inputSchema[paramName] = zodType as z.ZodType;\n }\n }\n\n const outputSchema = tool.schema\n ? tool.isList\n ? listOf(tool.schema)\n : tool.schema\n : undefined;\n\n server.registerTool(\n tool.name,\n {\n description: tool.description,\n inputSchema:\n Object.keys(inputSchema).length > 0 ? inputSchema : undefined,\n outputSchema,\n },\n createToolHandler(tool),\n );\n }\n\n return server;\n}\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { client } from './client.gen.js';\nimport type { Client, Options as Options2, TDataShape } from './client/index.js';\nimport type { AccountsDeleteData, AccountsDeleteResponses, AccountsGetAccountData, AccountsGetAccountResponses, AccountsGetAccountsData, AccountsGetAccountsResponses, AccountsPostAccountData, AccountsPostAccountResponses, AccountsPutAccountData, AccountsPutAccountResponses, BankAccountsDeleteData, BankAccountsDeleteResponses, BankAccountsGetBankAccountData, BankAccountsGetBankAccountResponses, BankAccountsGetBankAccountsData, BankAccountsGetBankAccountsResponses, BankAccountsPostBankAccountData, BankAccountsPostBankAccountResponses, BankAccountsPutBankAccountData, BankAccountsPutBankAccountResponses, CallLogsDeleteData, CallLogsDeleteResponses, CallLogsGetCallLogData, CallLogsGetCallLogResponses, CallLogsGetCallLogsData, CallLogsGetCallLogsResponses, CallLogsPostCallLogData, CallLogsPostCallLogResponses, CallLogsPutCallLogData, CallLogsPutCallLogResponses, ContactsGetContactData, ContactsGetContactResponses, ContactsGetContactsData, ContactsGetContactsResponses, CustomFieldsGetCustomFieldData, CustomFieldsGetCustomFieldResponses, CustomFieldsGetCustomFieldsForAccountData, CustomFieldsGetCustomFieldsForAccountResponses, CustomFieldsGetCustomFieldsForContactData, CustomFieldsGetCustomFieldsForContactResponses, CustomFieldsGetCustomFieldsForMatterData, CustomFieldsGetCustomFieldsForMatterResponses, EmailsDeleteData, EmailsDeleteResponses, EmailsGetEmailData, EmailsGetEmailResponses, EmailsGetEmailsData, EmailsGetEmailsResponses, EmailsPostEmailData, EmailsPostEmailResponses, EmailsPutAccountData, EmailsPutAccountResponses, EventsDeleteData, EventsDeleteResponses, EventsGetEventData, EventsGetEventResponses, EventsGetEventsData, EventsGetEventsResponses, EventsPostAccountData, EventsPostAccountResponses, EventsPutAccountData, EventsPutAccountResponses, ExpenseCategoriesDeleteData, ExpenseCategoriesDeleteResponses, ExpenseCategoriesGetExpenseCategoriesData, ExpenseCategoriesGetExpenseCategoriesResponses, ExpenseCategoriesGetExpenseCategoryData, ExpenseCategoriesGetExpenseCategoryResponses, ExpenseCategoriesPostExpenseCategoryData, ExpenseCategoriesPostExpenseCategoryResponses, ExpenseCategoriesPutExpenseCategoryData, ExpenseCategoriesPutExpenseCategoryResponses, ExpensesDeleteData, ExpensesDeleteResponses, ExpensesGetExpenseData, ExpensesGetExpenseResponses, ExpensesGetExpensessData, ExpensesGetExpensessResponses, ExpensesPostAccountData, ExpensesPostAccountResponses, ExpensesPutAccountData, ExpensesPutAccountResponses, FilesDeleteData, FilesDeleteResponses, FilesDownloadFileData, FilesDownloadFileResponses, FilesGetFileData, FilesGetFileResponses, FilesGetFilesData, FilesGetFilesResponses, FilesPostFileData, FilesPostFileResponses, FilesPostFileToBoxData, FilesPostFileToBoxResponses, FilesPutFileData, FilesPutFileResponses, FlatFeesDeleteData, FlatFeesDeleteResponses, FlatFeesGetFlatFeeData, FlatFeesGetFlatFeeResponses, FlatFeesGetFlatFeesData, FlatFeesGetFlatFeesResponses, FlatFeesPostAccountData, FlatFeesPostAccountResponses, FlatFeesPutAccountData, FlatFeesPutAccountResponses, InvoicesDeleteData, InvoicesDeleteResponses, InvoicesGetInvoiceData, InvoicesGetInvoiceResponses, InvoicesGetInvoicesData, InvoicesGetInvoicesResponses, ItemsDeleteData, ItemsDeleteResponses, ItemsGetItemData, ItemsGetItemResponses, ItemsGetItemsData, ItemsGetItemsResponses, ItemsPostItemData, ItemsPostItemResponses, ItemsPutItemData, ItemsPutItemResponses, MattersDeleteData, MattersDeleteResponses, MattersGetMatterData, MattersGetMatterResponses, MattersGetMattersData, MattersGetMattersResponses, MattersPostAccountData, MattersPostAccountResponses, MattersPutAccountData, MattersPutAccountResponses, MessagesDeleteData, MessagesDeleteResponses, MessagesGetMessagesAsyncData, MessagesGetMessagesAsyncResponses, MessagesPostMessageData, MessagesPostMessageResponses, MessagesPutMessageData, MessagesPutMessageResponses, NotesDeleteData, NotesDeleteResponses, NotesGetNoteData, NotesGetNoteResponses, NotesGetNotesData, NotesGetNotesResponses, NotesPostNoteData, NotesPostNoteResponses, NotesPutNoteData, NotesPutNoteResponses, PaymentsDeleteData, PaymentsDeleteResponses, PaymentsGetPaymentData, PaymentsGetPaymentResponses, PaymentsGetPaymentsData, PaymentsGetPaymentsResponses, RelationshipsDeleteData, RelationshipsDeleteResponses, RelationshipsGetRelationshipData, RelationshipsGetRelationshipResponses, RelationshipsGetRelationshipsData, RelationshipsGetRelationshipsResponses, RelationshipsPostAccountData, RelationshipsPostAccountResponses, RelationshipsPutRelationshipData, RelationshipsPutRelationshipResponses, TagsGetTagsForAccountsData, TagsGetTagsForAccountsResponses, TagsGetTagsForActivitiesData, TagsGetTagsForActivitiesResponses, TagsGetTagsForProjectsData, TagsGetTagsForProjectsResponses, TasksDeleteData, TasksDeleteResponses, TasksGetTaskData, TasksGetTaskResponses, TasksGetTasksData, TasksGetTasksResponses, TasksPostAccountData, TasksPostAccountResponses, TasksPutAccountData, TasksPutAccountResponses, TimeEntriesDeleteData, TimeEntriesDeleteResponses, TimeEntriesGetTimeEntryData, TimeEntriesGetTimeEntryResponses, TimeEntriesGetTimeEntrysData, TimeEntriesGetTimeEntrysResponses, TimeEntriesPostAccountData, TimeEntriesPostAccountResponses, TimeEntriesPutAccountData, TimeEntriesPutAccountResponses, UsersDeleteData, UsersDeleteResponses, UsersGetUserData, UsersGetUserResponses, UsersGetUsersData, UsersGetUsersResponses, UsersMeData, UsersMeResponses } from './types.gen.js';\n\nexport type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options2<TData, ThrowOnError> & {\n /**\n * You can provide a client instance returned by `createClient()` instead of\n * individual options. This might be also useful if you want to implement a\n * custom client.\n */\n client?: Client;\n /**\n * You can pass arbitrary values through the `meta` object. This can be\n * used to access values that aren't defined as part of the SDK function.\n */\n meta?: Record<string, unknown>;\n};\n\nexport const accountsGetAccount = <ThrowOnError extends boolean = false>(options: Options<AccountsGetAccountData, ThrowOnError>) => (options.client ?? client).get<AccountsGetAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/accounts/{id}',\n ...options\n});\n\nexport const accountsDelete = <ThrowOnError extends boolean = false>(options: Options<AccountsDeleteData, ThrowOnError>) => (options.client ?? client).delete<AccountsDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/accounts',\n ...options\n});\n\nexport const accountsGetAccounts = <ThrowOnError extends boolean = false>(options?: Options<AccountsGetAccountsData, ThrowOnError>) => (options?.client ?? client).get<AccountsGetAccountsResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/accounts',\n ...options\n});\n\nexport const accountsPostAccount = <ThrowOnError extends boolean = false>(options: Options<AccountsPostAccountData, ThrowOnError>) => (options.client ?? client).post<AccountsPostAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/accounts',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const accountsPutAccount = <ThrowOnError extends boolean = false>(options: Options<AccountsPutAccountData, ThrowOnError>) => (options.client ?? client).put<AccountsPutAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/accounts',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const bankAccountsGetBankAccount = <ThrowOnError extends boolean = false>(options: Options<BankAccountsGetBankAccountData, ThrowOnError>) => (options.client ?? client).get<BankAccountsGetBankAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/bankaccounts/{id}',\n ...options\n});\n\nexport const bankAccountsDelete = <ThrowOnError extends boolean = false>(options: Options<BankAccountsDeleteData, ThrowOnError>) => (options.client ?? client).delete<BankAccountsDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/bankaccounts',\n ...options\n});\n\nexport const bankAccountsGetBankAccounts = <ThrowOnError extends boolean = false>(options?: Options<BankAccountsGetBankAccountsData, ThrowOnError>) => (options?.client ?? client).get<BankAccountsGetBankAccountsResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/bankaccounts',\n ...options\n});\n\nexport const bankAccountsPostBankAccount = <ThrowOnError extends boolean = false>(options: Options<BankAccountsPostBankAccountData, ThrowOnError>) => (options.client ?? client).post<BankAccountsPostBankAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/bankaccounts',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const bankAccountsPutBankAccount = <ThrowOnError extends boolean = false>(options: Options<BankAccountsPutBankAccountData, ThrowOnError>) => (options.client ?? client).put<BankAccountsPutBankAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/bankaccounts',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const callLogsGetCallLog = <ThrowOnError extends boolean = false>(options: Options<CallLogsGetCallLogData, ThrowOnError>) => (options.client ?? client).get<CallLogsGetCallLogResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/calllogs/{id}',\n ...options\n});\n\nexport const callLogsDelete = <ThrowOnError extends boolean = false>(options: Options<CallLogsDeleteData, ThrowOnError>) => (options.client ?? client).delete<CallLogsDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/calllogs',\n ...options\n});\n\nexport const callLogsGetCallLogs = <ThrowOnError extends boolean = false>(options?: Options<CallLogsGetCallLogsData, ThrowOnError>) => (options?.client ?? client).get<CallLogsGetCallLogsResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/calllogs',\n ...options\n});\n\nexport const callLogsPostCallLog = <ThrowOnError extends boolean = false>(options: Options<CallLogsPostCallLogData, ThrowOnError>) => (options.client ?? client).post<CallLogsPostCallLogResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/calllogs',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const callLogsPutCallLog = <ThrowOnError extends boolean = false>(options: Options<CallLogsPutCallLogData, ThrowOnError>) => (options.client ?? client).put<CallLogsPutCallLogResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/calllogs',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const contactsGetContact = <ThrowOnError extends boolean = false>(options: Options<ContactsGetContactData, ThrowOnError>) => (options.client ?? client).get<ContactsGetContactResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/contacts/{id}',\n ...options\n});\n\nexport const contactsGetContacts = <ThrowOnError extends boolean = false>(options?: Options<ContactsGetContactsData, ThrowOnError>) => (options?.client ?? client).get<ContactsGetContactsResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/contacts',\n ...options\n});\n\nexport const customFieldsGetCustomFieldsForAccount = <ThrowOnError extends boolean = false>(options?: Options<CustomFieldsGetCustomFieldsForAccountData, ThrowOnError>) => (options?.client ?? client).get<CustomFieldsGetCustomFieldsForAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/customfields/company',\n ...options\n});\n\nexport const customFieldsGetCustomFieldsForMatter = <ThrowOnError extends boolean = false>(options?: Options<CustomFieldsGetCustomFieldsForMatterData, ThrowOnError>) => (options?.client ?? client).get<CustomFieldsGetCustomFieldsForMatterResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/customfields/matter',\n ...options\n});\n\nexport const customFieldsGetCustomFieldsForContact = <ThrowOnError extends boolean = false>(options?: Options<CustomFieldsGetCustomFieldsForContactData, ThrowOnError>) => (options?.client ?? client).get<CustomFieldsGetCustomFieldsForContactResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/customfields/contact',\n ...options\n});\n\nexport const customFieldsGetCustomField = <ThrowOnError extends boolean = false>(options: Options<CustomFieldsGetCustomFieldData, ThrowOnError>) => (options.client ?? client).get<CustomFieldsGetCustomFieldResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/customfields/{id}',\n ...options\n});\n\nexport const emailsGetEmail = <ThrowOnError extends boolean = false>(options: Options<EmailsGetEmailData, ThrowOnError>) => (options.client ?? client).get<EmailsGetEmailResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/emails/{id}',\n ...options\n});\n\nexport const emailsDelete = <ThrowOnError extends boolean = false>(options: Options<EmailsDeleteData, ThrowOnError>) => (options.client ?? client).delete<EmailsDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/emails',\n ...options\n});\n\nexport const emailsGetEmails = <ThrowOnError extends boolean = false>(options?: Options<EmailsGetEmailsData, ThrowOnError>) => (options?.client ?? client).get<EmailsGetEmailsResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/emails',\n ...options\n});\n\nexport const emailsPostEmail = <ThrowOnError extends boolean = false>(options: Options<EmailsPostEmailData, ThrowOnError>) => (options.client ?? client).post<EmailsPostEmailResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/emails',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const emailsPutAccount = <ThrowOnError extends boolean = false>(options: Options<EmailsPutAccountData, ThrowOnError>) => (options.client ?? client).put<EmailsPutAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/emails',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const eventsGetEvent = <ThrowOnError extends boolean = false>(options: Options<EventsGetEventData, ThrowOnError>) => (options.client ?? client).get<EventsGetEventResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/events/{id}',\n ...options\n});\n\nexport const eventsDelete = <ThrowOnError extends boolean = false>(options: Options<EventsDeleteData, ThrowOnError>) => (options.client ?? client).delete<EventsDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/events',\n ...options\n});\n\nexport const eventsGetEvents = <ThrowOnError extends boolean = false>(options?: Options<EventsGetEventsData, ThrowOnError>) => (options?.client ?? client).get<EventsGetEventsResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/events',\n ...options\n});\n\nexport const eventsPostAccount = <ThrowOnError extends boolean = false>(options: Options<EventsPostAccountData, ThrowOnError>) => (options.client ?? client).post<EventsPostAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/events',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const eventsPutAccount = <ThrowOnError extends boolean = false>(options: Options<EventsPutAccountData, ThrowOnError>) => (options.client ?? client).put<EventsPutAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/events',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const expenseCategoriesGetExpenseCategory = <ThrowOnError extends boolean = false>(options: Options<ExpenseCategoriesGetExpenseCategoryData, ThrowOnError>) => (options.client ?? client).get<ExpenseCategoriesGetExpenseCategoryResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/ExpenseCategories/{id}',\n ...options\n});\n\nexport const expenseCategoriesDelete = <ThrowOnError extends boolean = false>(options: Options<ExpenseCategoriesDeleteData, ThrowOnError>) => (options.client ?? client).delete<ExpenseCategoriesDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/ExpenseCategories',\n ...options\n});\n\nexport const expenseCategoriesGetExpenseCategories = <ThrowOnError extends boolean = false>(options?: Options<ExpenseCategoriesGetExpenseCategoriesData, ThrowOnError>) => (options?.client ?? client).get<ExpenseCategoriesGetExpenseCategoriesResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/ExpenseCategories',\n ...options\n});\n\nexport const expenseCategoriesPostExpenseCategory = <ThrowOnError extends boolean = false>(options: Options<ExpenseCategoriesPostExpenseCategoryData, ThrowOnError>) => (options.client ?? client).post<ExpenseCategoriesPostExpenseCategoryResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/ExpenseCategories',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const expenseCategoriesPutExpenseCategory = <ThrowOnError extends boolean = false>(options: Options<ExpenseCategoriesPutExpenseCategoryData, ThrowOnError>) => (options.client ?? client).put<ExpenseCategoriesPutExpenseCategoryResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/ExpenseCategories',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const expensesGetExpense = <ThrowOnError extends boolean = false>(options: Options<ExpensesGetExpenseData, ThrowOnError>) => (options.client ?? client).get<ExpensesGetExpenseResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/Expenses/{id}',\n ...options\n});\n\nexport const expensesDelete = <ThrowOnError extends boolean = false>(options: Options<ExpensesDeleteData, ThrowOnError>) => (options.client ?? client).delete<ExpensesDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/Expenses',\n ...options\n});\n\nexport const expensesGetExpensess = <ThrowOnError extends boolean = false>(options?: Options<ExpensesGetExpensessData, ThrowOnError>) => (options?.client ?? client).get<ExpensesGetExpensessResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/Expenses',\n ...options\n});\n\nexport const expensesPostAccount = <ThrowOnError extends boolean = false>(options: Options<ExpensesPostAccountData, ThrowOnError>) => (options.client ?? client).post<ExpensesPostAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/Expenses',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const expensesPutAccount = <ThrowOnError extends boolean = false>(options: Options<ExpensesPutAccountData, ThrowOnError>) => (options.client ?? client).put<ExpensesPutAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/Expenses',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const filesGetFile = <ThrowOnError extends boolean = false>(options: Options<FilesGetFileData, ThrowOnError>) => (options.client ?? client).get<FilesGetFileResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/files/{id}',\n ...options\n});\n\nexport const filesDownloadFile = <ThrowOnError extends boolean = false>(options: Options<FilesDownloadFileData, ThrowOnError>) => (options.client ?? client).get<FilesDownloadFileResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/files/download/{id}',\n ...options\n});\n\nexport const filesPostFileToBox = <ThrowOnError extends boolean = false>(options?: Options<FilesPostFileToBoxData, ThrowOnError>) => (options?.client ?? client).post<FilesPostFileToBoxResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/files/box',\n ...options\n});\n\nexport const filesDelete = <ThrowOnError extends boolean = false>(options: Options<FilesDeleteData, ThrowOnError>) => (options.client ?? client).delete<FilesDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/files',\n ...options\n});\n\nexport const filesGetFiles = <ThrowOnError extends boolean = false>(options?: Options<FilesGetFilesData, ThrowOnError>) => (options?.client ?? client).get<FilesGetFilesResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/files',\n ...options\n});\n\nexport const filesPostFile = <ThrowOnError extends boolean = false>(options?: Options<FilesPostFileData, ThrowOnError>) => (options?.client ?? client).post<FilesPostFileResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/files',\n ...options\n});\n\nexport const filesPutFile = <ThrowOnError extends boolean = false>(options: Options<FilesPutFileData, ThrowOnError>) => (options.client ?? client).put<FilesPutFileResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/files',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const flatFeesGetFlatFee = <ThrowOnError extends boolean = false>(options: Options<FlatFeesGetFlatFeeData, ThrowOnError>) => (options.client ?? client).get<FlatFeesGetFlatFeeResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/flatfees/{id}',\n ...options\n});\n\nexport const flatFeesDelete = <ThrowOnError extends boolean = false>(options: Options<FlatFeesDeleteData, ThrowOnError>) => (options.client ?? client).delete<FlatFeesDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/flatfees',\n ...options\n});\n\nexport const flatFeesGetFlatFees = <ThrowOnError extends boolean = false>(options?: Options<FlatFeesGetFlatFeesData, ThrowOnError>) => (options?.client ?? client).get<FlatFeesGetFlatFeesResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/flatfees',\n ...options\n});\n\nexport const flatFeesPostAccount = <ThrowOnError extends boolean = false>(options: Options<FlatFeesPostAccountData, ThrowOnError>) => (options.client ?? client).post<FlatFeesPostAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/flatfees',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const flatFeesPutAccount = <ThrowOnError extends boolean = false>(options: Options<FlatFeesPutAccountData, ThrowOnError>) => (options.client ?? client).put<FlatFeesPutAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/flatfees',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const invoicesGetInvoice = <ThrowOnError extends boolean = false>(options: Options<InvoicesGetInvoiceData, ThrowOnError>) => (options.client ?? client).get<InvoicesGetInvoiceResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/invoices/{id}',\n ...options\n});\n\nexport const invoicesDelete = <ThrowOnError extends boolean = false>(options: Options<InvoicesDeleteData, ThrowOnError>) => (options.client ?? client).delete<InvoicesDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/invoices',\n ...options\n});\n\nexport const invoicesGetInvoices = <ThrowOnError extends boolean = false>(options?: Options<InvoicesGetInvoicesData, ThrowOnError>) => (options?.client ?? client).get<InvoicesGetInvoicesResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/invoices',\n ...options\n});\n\nexport const itemsGetItem = <ThrowOnError extends boolean = false>(options: Options<ItemsGetItemData, ThrowOnError>) => (options.client ?? client).get<ItemsGetItemResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/Items/{id}',\n ...options\n});\n\nexport const itemsDelete = <ThrowOnError extends boolean = false>(options: Options<ItemsDeleteData, ThrowOnError>) => (options.client ?? client).delete<ItemsDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/Items',\n ...options\n});\n\nexport const itemsGetItems = <ThrowOnError extends boolean = false>(options?: Options<ItemsGetItemsData, ThrowOnError>) => (options?.client ?? client).get<ItemsGetItemsResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/Items',\n ...options\n});\n\nexport const itemsPostItem = <ThrowOnError extends boolean = false>(options: Options<ItemsPostItemData, ThrowOnError>) => (options.client ?? client).post<ItemsPostItemResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/Items',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const itemsPutItem = <ThrowOnError extends boolean = false>(options: Options<ItemsPutItemData, ThrowOnError>) => (options.client ?? client).put<ItemsPutItemResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/Items',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const mattersGetMatter = <ThrowOnError extends boolean = false>(options: Options<MattersGetMatterData, ThrowOnError>) => (options.client ?? client).get<MattersGetMatterResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/matters/{id}',\n ...options\n});\n\nexport const mattersDelete = <ThrowOnError extends boolean = false>(options: Options<MattersDeleteData, ThrowOnError>) => (options.client ?? client).delete<MattersDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/matters',\n ...options\n});\n\nexport const mattersGetMatters = <ThrowOnError extends boolean = false>(options?: Options<MattersGetMattersData, ThrowOnError>) => (options?.client ?? client).get<MattersGetMattersResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/matters',\n ...options\n});\n\nexport const mattersPostAccount = <ThrowOnError extends boolean = false>(options: Options<MattersPostAccountData, ThrowOnError>) => (options.client ?? client).post<MattersPostAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/matters',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const mattersPutAccount = <ThrowOnError extends boolean = false>(options: Options<MattersPutAccountData, ThrowOnError>) => (options.client ?? client).put<MattersPutAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/matters',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const messagesDelete = <ThrowOnError extends boolean = false>(options: Options<MessagesDeleteData, ThrowOnError>) => (options.client ?? client).delete<MessagesDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/messages',\n ...options\n});\n\nexport const messagesGetMessagesAsync = <ThrowOnError extends boolean = false>(options?: Options<MessagesGetMessagesAsyncData, ThrowOnError>) => (options?.client ?? client).get<MessagesGetMessagesAsyncResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/messages',\n ...options\n});\n\nexport const messagesPostMessage = <ThrowOnError extends boolean = false>(options: Options<MessagesPostMessageData, ThrowOnError>) => (options.client ?? client).post<MessagesPostMessageResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/messages',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const messagesPutMessage = <ThrowOnError extends boolean = false>(options: Options<MessagesPutMessageData, ThrowOnError>) => (options.client ?? client).put<MessagesPutMessageResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/messages',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const notesGetNote = <ThrowOnError extends boolean = false>(options: Options<NotesGetNoteData, ThrowOnError>) => (options.client ?? client).get<NotesGetNoteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/notes/{id}',\n ...options\n});\n\nexport const notesDelete = <ThrowOnError extends boolean = false>(options: Options<NotesDeleteData, ThrowOnError>) => (options.client ?? client).delete<NotesDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/notes',\n ...options\n});\n\nexport const notesGetNotes = <ThrowOnError extends boolean = false>(options?: Options<NotesGetNotesData, ThrowOnError>) => (options?.client ?? client).get<NotesGetNotesResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/notes',\n ...options\n});\n\nexport const notesPostNote = <ThrowOnError extends boolean = false>(options: Options<NotesPostNoteData, ThrowOnError>) => (options.client ?? client).post<NotesPostNoteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/notes',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const notesPutNote = <ThrowOnError extends boolean = false>(options: Options<NotesPutNoteData, ThrowOnError>) => (options.client ?? client).put<NotesPutNoteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/notes',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const paymentsGetPayment = <ThrowOnError extends boolean = false>(options: Options<PaymentsGetPaymentData, ThrowOnError>) => (options.client ?? client).get<PaymentsGetPaymentResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/payments/{id}',\n ...options\n});\n\nexport const paymentsDelete = <ThrowOnError extends boolean = false>(options: Options<PaymentsDeleteData, ThrowOnError>) => (options.client ?? client).delete<PaymentsDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/payments',\n ...options\n});\n\nexport const paymentsGetPayments = <ThrowOnError extends boolean = false>(options?: Options<PaymentsGetPaymentsData, ThrowOnError>) => (options?.client ?? client).get<PaymentsGetPaymentsResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/payments',\n ...options\n});\n\nexport const relationshipsGetRelationship = <ThrowOnError extends boolean = false>(options: Options<RelationshipsGetRelationshipData, ThrowOnError>) => (options.client ?? client).get<RelationshipsGetRelationshipResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/relationships/{id}',\n ...options\n});\n\nexport const relationshipsDelete = <ThrowOnError extends boolean = false>(options: Options<RelationshipsDeleteData, ThrowOnError>) => (options.client ?? client).delete<RelationshipsDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/relationships',\n ...options\n});\n\nexport const relationshipsGetRelationships = <ThrowOnError extends boolean = false>(options?: Options<RelationshipsGetRelationshipsData, ThrowOnError>) => (options?.client ?? client).get<RelationshipsGetRelationshipsResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/relationships',\n ...options\n});\n\nexport const relationshipsPostAccount = <ThrowOnError extends boolean = false>(options: Options<RelationshipsPostAccountData, ThrowOnError>) => (options.client ?? client).post<RelationshipsPostAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/relationships',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const relationshipsPutRelationship = <ThrowOnError extends boolean = false>(options: Options<RelationshipsPutRelationshipData, ThrowOnError>) => (options.client ?? client).put<RelationshipsPutRelationshipResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/relationships',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const tagsGetTagsForAccounts = <ThrowOnError extends boolean = false>(options?: Options<TagsGetTagsForAccountsData, ThrowOnError>) => (options?.client ?? client).get<TagsGetTagsForAccountsResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/tags/account',\n ...options\n});\n\nexport const tagsGetTagsForProjects = <ThrowOnError extends boolean = false>(options?: Options<TagsGetTagsForProjectsData, ThrowOnError>) => (options?.client ?? client).get<TagsGetTagsForProjectsResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/tags/matter',\n ...options\n});\n\nexport const tagsGetTagsForActivities = <ThrowOnError extends boolean = false>(options?: Options<TagsGetTagsForActivitiesData, ThrowOnError>) => (options?.client ?? client).get<TagsGetTagsForActivitiesResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/tags/activity',\n ...options\n});\n\nexport const tasksGetTask = <ThrowOnError extends boolean = false>(options: Options<TasksGetTaskData, ThrowOnError>) => (options.client ?? client).get<TasksGetTaskResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/tasks/{id}',\n ...options\n});\n\nexport const tasksDelete = <ThrowOnError extends boolean = false>(options: Options<TasksDeleteData, ThrowOnError>) => (options.client ?? client).delete<TasksDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/tasks',\n ...options\n});\n\nexport const tasksGetTasks = <ThrowOnError extends boolean = false>(options?: Options<TasksGetTasksData, ThrowOnError>) => (options?.client ?? client).get<TasksGetTasksResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/tasks',\n ...options\n});\n\nexport const tasksPostAccount = <ThrowOnError extends boolean = false>(options: Options<TasksPostAccountData, ThrowOnError>) => (options.client ?? client).post<TasksPostAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/tasks',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const tasksPutAccount = <ThrowOnError extends boolean = false>(options: Options<TasksPutAccountData, ThrowOnError>) => (options.client ?? client).put<TasksPutAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/tasks',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const timeEntriesGetTimeEntry = <ThrowOnError extends boolean = false>(options: Options<TimeEntriesGetTimeEntryData, ThrowOnError>) => (options.client ?? client).get<TimeEntriesGetTimeEntryResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/timeentries/{id}',\n ...options\n});\n\nexport const timeEntriesDelete = <ThrowOnError extends boolean = false>(options: Options<TimeEntriesDeleteData, ThrowOnError>) => (options.client ?? client).delete<TimeEntriesDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/timeentries',\n ...options\n});\n\nexport const timeEntriesGetTimeEntrys = <ThrowOnError extends boolean = false>(options?: Options<TimeEntriesGetTimeEntrysData, ThrowOnError>) => (options?.client ?? client).get<TimeEntriesGetTimeEntrysResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/timeentries',\n ...options\n});\n\nexport const timeEntriesPostAccount = <ThrowOnError extends boolean = false>(options: Options<TimeEntriesPostAccountData, ThrowOnError>) => (options.client ?? client).post<TimeEntriesPostAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/timeentries',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const timeEntriesPutAccount = <ThrowOnError extends boolean = false>(options: Options<TimeEntriesPutAccountData, ThrowOnError>) => (options.client ?? client).put<TimeEntriesPutAccountResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/timeentries',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\nexport const usersMe = <ThrowOnError extends boolean = false>(options?: Options<UsersMeData, ThrowOnError>) => (options?.client ?? client).get<UsersMeResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/users/me',\n ...options\n});\n\nexport const usersGetUser = <ThrowOnError extends boolean = false>(options: Options<UsersGetUserData, ThrowOnError>) => (options.client ?? client).get<UsersGetUserResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/users/{id}',\n ...options\n});\n\nexport const usersDelete = <ThrowOnError extends boolean = false>(options: Options<UsersDeleteData, ThrowOnError>) => (options.client ?? client).delete<UsersDeleteResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/users',\n ...options\n});\n\nexport const usersGetUsers = <ThrowOnError extends boolean = false>(options?: Options<UsersGetUsersData, ThrowOnError>) => (options?.client ?? client).get<UsersGetUsersResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/api/v2/users',\n ...options\n});\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport * as z from 'zod';\n\nexport const zUserReference = z.looseObject({\n id: z.string().nullable(),\n display_name: z.string().nullish(),\n email_address: z.string().nullish()\n});\n\nexport const zCustomFieldRef = z.looseObject({\n id: z.string().nullable(),\n label: z.string().nullish(),\n value_type: z.union([z.enum([\n 'TextBox',\n 'Date',\n 'DateTime',\n 'Number',\n 'Currency',\n 'TextEditor',\n 'DropDownList',\n 'Checkbox',\n 'Contact'\n ]), z.string()]).optional()\n});\n\nexport const zAccountReference = z.looseObject({\n id: z.string().nullable(),\n display_name: z.string().nullish()\n});\n\nexport const zContactReference = z.looseObject({\n account_ref: zAccountReference.nullish(),\n id: z.string().nullable(),\n display_name: z.string().nullish()\n});\n\nexport const zCustomFieldValue = z.looseObject({\n custom_field_ref: zCustomFieldRef.nullable(),\n value_boolean: z.boolean().nullish(),\n contact_ref: zContactReference.nullish(),\n value_date_time: z.string().nullish(),\n value_number: z.number().nullish(),\n value_string: z.string().nullish()\n});\n\n/**\n * Represents a contact. Each account can have multiple contacts. One of them must be the primary contact\n */\nexport const zContact = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n is_primary_contact: z.boolean().readonly().nullish(),\n display_name: z.string().readonly().nullish(),\n first_name: z.string().nullish(),\n middle_name: z.string().nullish(),\n last_name: z.string().nullish(),\n phone_mobile: z.string().nullish(),\n phone_home: z.string().nullish(),\n phone_fax: z.string().nullish(),\n phone_work: z.string().nullish(),\n email: z.string().nullish(),\n notes: z.string().nullish(),\n custom_field_values: z.array(zCustomFieldValue).nullish(),\n status: z.union([z.enum(['Active', 'Archived']), z.string()]).optional()\n});\n\n/**\n * An account is an entity that can represent either one contact, or multiple contacts. An account must contain at least one primary contact\n */\nexport const zAccount = z.looseObject({\n id: z.string().nullish(),\n display_name: z.string().readonly().nullish(),\n number: z.number().nullish(),\n company_name: z.string().nullish(),\n address_street_1: z.string().nullish(),\n address_street_2: z.string().nullish(),\n address_city: z.string().nullish(),\n address_state: z.string().nullish(),\n address_country: z.string().nullish(),\n address_zip_code: z.string().nullish(),\n tags: z.array(z.string()).nullish(),\n company_custom_field_values: z.array(zCustomFieldValue).nullish(),\n assigned_to_users: z.array(zUserReference).nullish(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish(),\n notes: z.string().nullish(),\n primary_contact: zContact.nullish(),\n other_contacts: z.array(zContact).nullish()\n});\n\n/**\n * Represents a bank account, either trust or operating. Each payment must be related to a bank account.\n */\nexport const zBankAccount = z.looseObject({\n id: z.string().nullable(),\n type: z.union([z.enum([\n 'Operating',\n 'Trust',\n 'CreditCard'\n ]), z.string()]).optional(),\n name: z.string().nullish()\n});\n\nexport const zMatter = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n number: z.number().nullish(),\n display_name: z.string().readonly().nullish(),\n name: z.string().nullable(),\n notes: z.string().nullish(),\n rate: z.string().nullish(),\n open_date: z.string().nullish(),\n close_date: z.string().nullish(),\n statute_of_limitation_date: z.string().nullish(),\n tags: z.array(z.string()).nullish(),\n status: z.union([z.enum([\n 'Closed',\n 'Pending',\n 'Open',\n 'Archived'\n ]), z.string()]),\n assigned_to_users: z.array(zUserReference).nullish(),\n custom_field_values: z.array(zCustomFieldValue).nullish(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish()\n});\n\nexport const zMatterReference = z.looseObject({\n id: z.string().nullable(),\n display_name: z.string().nullish()\n});\n\nexport const zCallLog = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullish(),\n subject: z.string().nullable(),\n duration: z.number().nullish(),\n notes: z.string().nullish(),\n date: z.string().nullish(),\n call_direction: z.union([z.enum(['Inbound', 'Outbound']), z.string()]).optional(),\n assigned_to_users: z.array(zUserReference).nullish(),\n tags: z.array(z.string()).nullish(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish()\n});\n\nexport const zCustomField = z.looseObject({\n id: z.string().nullish(),\n label: z.string().nullable(),\n value_type: z.union([z.enum([\n 'TextBox',\n 'Date',\n 'DateTime',\n 'Number',\n 'Currency',\n 'TextEditor',\n 'DropDownList',\n 'Checkbox',\n 'Contact'\n ]), z.string()]),\n dropdown_list_values: z.string().nullish(),\n help_text: z.string().nullish(),\n tooltip: z.string().nullish()\n});\n\nexport const zEmailAddress = z.looseObject({\n address: z.string().nullable(),\n display_name: z.string().nullish()\n});\n\nexport const zFileReference = z.looseObject({\n id: z.string().nullish(),\n file_name: z.string().nullish()\n});\n\nexport const zEmail = z.looseObject({\n id: z.string().nullish(),\n subject: z.string().nullable(),\n cc: z.array(zEmailAddress).nullish(),\n to: z.array(zEmailAddress).nullish(),\n from: zEmailAddress.nullish(),\n body_text: z.string().nullable(),\n body_html: z.string().nullish(),\n external_message_id: z.string().nullish(),\n external_thread_id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullish(),\n date: z.string().nullish(),\n tags: z.array(z.string()).nullish(),\n attachments: z.array(zFileReference).readonly().nullish(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish()\n});\n\nexport const zEvent = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullish(),\n subject: z.string().nullable(),\n location: z.string().nullish(),\n notes: z.string().nullish(),\n is_all_day: z.boolean().nullable(),\n start_date_time: z.string().nullable(),\n end_date_time: z.string().nullable(),\n tags: z.array(z.string()).nullish(),\n assigned_to_users: z.array(zUserReference).nullish(),\n assigned_to_contacts: z.array(zContactReference).nullish(),\n created_at: z.string().nullish(),\n updated_at: z.string().nullish()\n});\n\nexport const zExpenseCategory = z.looseObject({\n id: z.string().nullish(),\n name: z.string().nullish(),\n created_at: z.string().nullish(),\n updated_at: z.string().readonly().nullish()\n});\n\nexport const zExpense = z.looseObject({\n id: z.string().nullish(),\n is_billable: z.boolean().nullish(),\n is_billed: z.boolean().nullish(),\n date: z.string().nullish(),\n qty: z.number().nullable(),\n price: z.number().nullable(),\n amount: z.number().nullish(),\n description: z.string().nullish(),\n private_notes: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullable(),\n billed_by_user_ref: zUserReference.nullish(),\n expense_category_ref: zExpenseCategory.nullish(),\n created_at: z.string().nullish(),\n updated_at: z.string().nullish()\n});\n\nexport const zActivityReference = z.looseObject({\n id: z.string().nullish(),\n subject: z.string().nullish()\n});\n\nexport const zFile = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullish(),\n activity_ref: zActivityReference.nullish(),\n description: z.string().nullish(),\n file_name: z.string().nullable(),\n size: z.number().readonly().nullish(),\n content_type: z.string().readonly().nullish(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish()\n});\n\nexport const zItemReference = z.looseObject({\n id: z.string().nullable(),\n name: z.string().nullish()\n});\n\nexport const zFlatFee = z.looseObject({\n id: z.string().nullish(),\n is_billable: z.boolean().nullish(),\n is_billed: z.boolean().nullish(),\n date: z.string().nullable(),\n qty: z.number().nullable(),\n price: z.number().nullish(),\n description: z.string().nullish(),\n private_notes: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullable(),\n billed_by_user_ref: zUserReference.nullable(),\n item_ref: zItemReference.nullable(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish()\n});\n\nexport const zInvoiceLineItem = z.looseObject({\n quantity: z.number().nullish(),\n rate: z.number().nullish(),\n discount: z.number().nullish(),\n subtotal: z.number().nullish(),\n tax1_name: z.string().nullish(),\n tax1_rate: z.string().nullish(),\n tax1_amount: z.number().nullish(),\n tax2_name: z.string().nullish(),\n tax2_rate: z.string().nullish(),\n tax2_amount: z.number().nullish(),\n total: z.number().nullish(),\n date: z.string().nullish(),\n billed_by: z.string().nullish(),\n item_name: z.string().nullish(),\n item_description: z.string().nullish()\n});\n\nexport const zInvoice = z.looseObject({\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullish(),\n id: z.string().nullish(),\n issue_date: z.string().nullish(),\n due_date: z.string().nullish(),\n items_time_entries: z.array(zInvoiceLineItem).nullish(),\n items_expenses: z.array(zInvoiceLineItem).nullish(),\n items_flat_fees: z.array(zInvoiceLineItem).nullish(),\n subtotal: z.number().nullish(),\n tax: z.number().nullish(),\n discount: z.number().nullish(),\n total: z.number().nullish(),\n total_paid: z.number().nullish(),\n total_outstanding: z.number().nullish(),\n invoice_type: z.union([z.enum([\n 'Sale',\n 'Refund',\n 'Credit'\n ]), z.string()]).optional(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish()\n});\n\nexport const zItem = z.looseObject({\n id: z.string().nullish(),\n name: z.string().nullish(),\n code: z.string().nullish(),\n description: z.string().nullish(),\n rate: z.number().nullable(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish()\n});\n\nexport const zMessage = z.looseObject({\n id: z.string().nullish(),\n sender: zUserReference.nullish(),\n contact_id: z.string().nullish(),\n contact: zContactReference.nullish(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish(),\n type: z.union([z.enum(['Text', 'Secure']), z.string()]).optional(),\n matter_id: z.string().nullish(),\n account_id: z.string().nullish(),\n subject: z.string().nullish(),\n body: z.string().nullish(),\n sent_date: z.string().nullish(),\n conversation_id: z.string().nullish(),\n external_conversation_id: z.string().nullish(),\n firm_text_phone_number: z.string().nullish(),\n firm_location_name: z.string().nullish(),\n user_name: z.string().nullish(),\n user_email: z.string().nullish(),\n sent_by_contact: z.boolean().nullish()\n});\n\nexport const zNote = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullish(),\n subject: z.string().nullable(),\n note: z.string().nullish(),\n assigned_to_users: z.array(zUserReference).nullish(),\n date: z.string().nullish(),\n tags: z.array(z.string()).nullish(),\n created_at: z.string().nullish(),\n updated_at: z.string().nullish()\n});\n\nexport const zPaymentDetail = z.looseObject({\n refundedAmount: z.number().nullish(),\n id: z.string().nullish(),\n account_ref: zAccountReference.nullable(),\n matter_ref: zMatterReference.nullish(),\n number: z.number().nullish(),\n date: z.string().nullable(),\n total_amount: z.number().nullable(),\n unapplied_amount: z.number().nullish(),\n notes: z.string().nullish(),\n payee: z.string().nullish(),\n to_print: z.boolean().nullish(),\n check_number: z.number().nullish(),\n bank_account: zBankAccount.nullable(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish(),\n status: z.union([z.enum([\n 'Pending',\n 'Failed',\n 'Success',\n 'Refunded',\n 'RefundPending',\n 'Canceled'\n ]), z.string()]).optional()\n});\n\nexport const zPayment = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullable(),\n matter_ref: zMatterReference.nullish(),\n number: z.number().nullish(),\n date: z.string().nullable(),\n total_amount: z.number().nullable(),\n unapplied_amount: z.number().nullish(),\n notes: z.string().nullish(),\n payee: z.string().nullish(),\n to_print: z.boolean().nullish(),\n check_number: z.number().nullish(),\n bank_account: zBankAccount.nullable(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish(),\n status: z.union([z.enum([\n 'Pending',\n 'Failed',\n 'Success',\n 'Refunded',\n 'RefundPending',\n 'Canceled'\n ]), z.string()]).optional()\n});\n\nexport const zRelationship = z.looseObject({\n id: z.string().nullish(),\n contact_ref: zContactReference.nullable(),\n matter_ref: zMatterReference.nullable(),\n name: z.string().nullable(),\n notes: z.string().nullish()\n});\n\nexport const zTag = z.looseObject({\n created_at: z.string().nullish(),\n name: z.string().nullish()\n});\n\nexport const zTask = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullish(),\n subject: z.string().nullable(),\n notes: z.string().nullish(),\n priority: z.union([z.enum([\n 'Low',\n 'Medium',\n 'High'\n ]), z.string()]).optional(),\n status: z.union([z.enum([\n 'NotCompleted',\n 'InProgress',\n 'Completed',\n 'Conditional'\n ]), z.string()]).optional(),\n due_date: z.string().nullish(),\n assigned_to_users: z.array(zUserReference).nullish(),\n assigned_to_contacts: z.array(zContactReference).nullish(),\n tags: z.array(z.string()).nullish(),\n created_at: z.string().nullish(),\n updated_at: z.string().nullish()\n});\n\nexport const zTimeEntry = z.looseObject({\n id: z.string().nullish(),\n is_billable: z.boolean().nullish(),\n is_billed: z.boolean().nullish(),\n date: z.string().nullable(),\n hours: z.number().nullable(),\n rate: z.number().nullish(),\n description: z.string().nullish(),\n private_notes: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullable(),\n billed_by_user_ref: zUserReference.nullable(),\n item_ref: zItemReference.nullish(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish()\n});\n\nexport const zUser = z.looseObject({\n id: z.string().nullish(),\n is_active: z.boolean().nullish(),\n display_name: z.string().nullish(),\n first_name: z.string().nullish(),\n last_name: z.string().nullish(),\n middle_name: z.string().nullish(),\n email: z.string().nullish(),\n created_at: z.string().readonly().nullish(),\n updated_at: z.string().readonly().nullish()\n});\n\n/**\n * Represents a contact. Each account can have multiple contacts. One of them must be the primary contact\n */\nexport const zContactWritable = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n first_name: z.string().nullish(),\n middle_name: z.string().nullish(),\n last_name: z.string().nullish(),\n phone_mobile: z.string().nullish(),\n phone_home: z.string().nullish(),\n phone_fax: z.string().nullish(),\n phone_work: z.string().nullish(),\n email: z.string().nullish(),\n notes: z.string().nullish(),\n custom_field_values: z.array(zCustomFieldValue).nullish()\n});\n\n/**\n * An account is an entity that can represent either one contact, or multiple contacts. An account must contain at least one primary contact\n */\nexport const zAccountWritable = z.looseObject({\n id: z.string().nullish(),\n number: z.number().nullish(),\n company_name: z.string().nullish(),\n address_street_1: z.string().nullish(),\n address_street_2: z.string().nullish(),\n address_city: z.string().nullish(),\n address_state: z.string().nullish(),\n address_country: z.string().nullish(),\n address_zip_code: z.string().nullish(),\n tags: z.array(z.string()).nullish(),\n company_custom_field_values: z.array(zCustomFieldValue).nullish(),\n assigned_to_users: z.array(zUserReference).nullish(),\n notes: z.string().nullish(),\n primary_contact: zContactWritable.nullish(),\n other_contacts: z.array(zContactWritable).nullish()\n});\n\nexport const zMatterWritable = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n number: z.number().nullish(),\n name: z.string().nullable(),\n notes: z.string().nullish(),\n rate: z.string().nullish(),\n open_date: z.string().nullish(),\n close_date: z.string().nullish(),\n statute_of_limitation_date: z.string().nullish(),\n tags: z.array(z.string()).nullish(),\n status: z.union([z.enum([\n 'Closed',\n 'Pending',\n 'Open',\n 'Archived'\n ]), z.string()]),\n assigned_to_users: z.array(zUserReference).nullish(),\n custom_field_values: z.array(zCustomFieldValue).nullish()\n});\n\nexport const zCallLogWritable = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullish(),\n subject: z.string().nullable(),\n duration: z.number().nullish(),\n notes: z.string().nullish(),\n date: z.string().nullish(),\n call_direction: z.union([z.enum(['Inbound', 'Outbound']), z.string()]).optional(),\n assigned_to_users: z.array(zUserReference).nullish(),\n tags: z.array(z.string()).nullish()\n});\n\nexport const zEmailWritable = z.looseObject({\n id: z.string().nullish(),\n subject: z.string().nullable(),\n cc: z.array(zEmailAddress).nullish(),\n to: z.array(zEmailAddress).nullish(),\n from: zEmailAddress.nullish(),\n body_text: z.string().nullable(),\n body_html: z.string().nullish(),\n external_message_id: z.string().nullish(),\n external_thread_id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullish(),\n date: z.string().nullish(),\n tags: z.array(z.string()).nullish()\n});\n\nexport const zExpenseCategoryWritable = z.looseObject({\n id: z.string().nullish(),\n name: z.string().nullish(),\n created_at: z.string().nullish()\n});\n\nexport const zExpenseWritable = z.looseObject({\n id: z.string().nullish(),\n is_billable: z.boolean().nullish(),\n is_billed: z.boolean().nullish(),\n date: z.string().nullish(),\n qty: z.number().nullable(),\n price: z.number().nullable(),\n amount: z.number().nullish(),\n description: z.string().nullish(),\n private_notes: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullable(),\n billed_by_user_ref: zUserReference.nullish(),\n expense_category_ref: zExpenseCategoryWritable.nullish(),\n created_at: z.string().nullish(),\n updated_at: z.string().nullish()\n});\n\nexport const zFileWritable = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullish(),\n activity_ref: zActivityReference.nullish(),\n description: z.string().nullish(),\n file_name: z.string().nullable()\n});\n\nexport const zFlatFeeWritable = z.looseObject({\n id: z.string().nullish(),\n is_billable: z.boolean().nullish(),\n is_billed: z.boolean().nullish(),\n date: z.string().nullable(),\n qty: z.number().nullable(),\n price: z.number().nullish(),\n description: z.string().nullish(),\n private_notes: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullable(),\n billed_by_user_ref: zUserReference.nullable(),\n item_ref: zItemReference.nullable()\n});\n\nexport const zInvoiceWritable = z.looseObject({\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullish(),\n id: z.string().nullish(),\n issue_date: z.string().nullish(),\n due_date: z.string().nullish(),\n items_time_entries: z.array(zInvoiceLineItem).nullish(),\n items_expenses: z.array(zInvoiceLineItem).nullish(),\n items_flat_fees: z.array(zInvoiceLineItem).nullish(),\n subtotal: z.number().nullish(),\n tax: z.number().nullish(),\n discount: z.number().nullish(),\n total: z.number().nullish(),\n total_paid: z.number().nullish(),\n total_outstanding: z.number().nullish(),\n invoice_type: z.union([z.enum([\n 'Sale',\n 'Refund',\n 'Credit'\n ]), z.string()]).optional()\n});\n\nexport const zItemWritable = z.looseObject({\n id: z.string().nullish(),\n name: z.string().nullish(),\n code: z.string().nullish(),\n description: z.string().nullish(),\n rate: z.number().nullable()\n});\n\nexport const zMessageWritable = z.looseObject({\n id: z.string().nullish(),\n sender: zUserReference.nullish(),\n contact_id: z.string().nullish(),\n contact: zContactReference.nullish(),\n type: z.union([z.enum(['Text', 'Secure']), z.string()]).optional(),\n matter_id: z.string().nullish(),\n account_id: z.string().nullish(),\n subject: z.string().nullish(),\n body: z.string().nullish(),\n sent_date: z.string().nullish(),\n conversation_id: z.string().nullish(),\n external_conversation_id: z.string().nullish(),\n firm_text_phone_number: z.string().nullish(),\n firm_location_name: z.string().nullish(),\n user_name: z.string().nullish(),\n user_email: z.string().nullish(),\n sent_by_contact: z.boolean().nullish()\n});\n\nexport const zPaymentDetailWritable = z.looseObject({\n refundedAmount: z.number().nullish(),\n id: z.string().nullish(),\n account_ref: zAccountReference.nullable(),\n matter_ref: zMatterReference.nullish(),\n number: z.number().nullish(),\n date: z.string().nullable(),\n total_amount: z.number().nullable(),\n unapplied_amount: z.number().nullish(),\n notes: z.string().nullish(),\n payee: z.string().nullish(),\n to_print: z.boolean().nullish(),\n check_number: z.number().nullish(),\n bank_account: zBankAccount.nullable(),\n status: z.union([z.enum([\n 'Pending',\n 'Failed',\n 'Success',\n 'Refunded',\n 'RefundPending',\n 'Canceled'\n ]), z.string()]).optional()\n});\n\nexport const zPaymentWritable = z.looseObject({\n id: z.string().nullish(),\n account_ref: zAccountReference.nullable(),\n matter_ref: zMatterReference.nullish(),\n number: z.number().nullish(),\n date: z.string().nullable(),\n total_amount: z.number().nullable(),\n unapplied_amount: z.number().nullish(),\n notes: z.string().nullish(),\n payee: z.string().nullish(),\n to_print: z.boolean().nullish(),\n check_number: z.number().nullish(),\n bank_account: zBankAccount.nullable(),\n status: z.union([z.enum([\n 'Pending',\n 'Failed',\n 'Success',\n 'Refunded',\n 'RefundPending',\n 'Canceled'\n ]), z.string()]).optional()\n});\n\nexport const zTimeEntryWritable = z.looseObject({\n id: z.string().nullish(),\n is_billable: z.boolean().nullish(),\n is_billed: z.boolean().nullish(),\n date: z.string().nullable(),\n hours: z.number().nullable(),\n rate: z.number().nullish(),\n description: z.string().nullish(),\n private_notes: z.string().nullish(),\n account_ref: zAccountReference.nullish(),\n matter_ref: zMatterReference.nullable(),\n billed_by_user_ref: zUserReference.nullable(),\n item_ref: zItemReference.nullish()\n});\n\nexport const zUserWritable = z.looseObject({\n id: z.string().nullish(),\n is_active: z.boolean().nullish(),\n display_name: z.string().nullish(),\n first_name: z.string().nullish(),\n last_name: z.string().nullish(),\n middle_name: z.string().nullish(),\n email: z.string().nullish()\n});\n\nexport const zNote2 = zNote;\n\nexport const zTimeEntry2 = zTimeEntryWritable;\n\nexport const zExpenseCategory2 = zExpenseCategoryWritable;\n\nexport const zBankAccount2 = zBankAccount;\n\nexport const zMessage2 = zMessageWritable;\n\nexport const zEmail2 = zEmailWritable;\n\nexport const zItem2 = zItemWritable;\n\nexport const zRelationship2 = zRelationship;\n\nexport const zExpense2 = zExpenseWritable;\n\nexport const zAccount2 = zAccountWritable;\n\nexport const zCallLog2 = zCallLogWritable;\n\nexport const zEvent2 = zEvent;\n\nexport const zFlatFee2 = zFlatFeeWritable;\n\nexport const zMatter2 = zMatterWritable;\n\nexport const zTask2 = zTask;\n\nexport const zAccountsGetAccountData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zAccountsGetAccountResponse = zAccount;\n\nexport const zAccountsDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zAccountsDeleteResponse = zAccount;\n\nexport const zAccountsGetAccountsData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n assigned_to_user_id: z.string().optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n search_text: z.string().optional(),\n account_tag: z.string().optional(),\n apiConsumer: z.union([z.enum(['Unknown', 'Zapier']), z.string()]).optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zAccountsGetAccountsResponse = zAccount;\n\nexport const zAccountsPostAccountData = z.looseObject({\n body: zAccount2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zAccountsPostAccountResponse = zAccount;\n\nexport const zAccountsPutAccountData = z.looseObject({\n body: zAccount2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zAccountsPutAccountResponse = zAccount;\n\nexport const zBankAccountsGetBankAccountData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zBankAccountsGetBankAccountResponse = zBankAccount;\n\nexport const zBankAccountsDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zBankAccountsDeleteResponse = zMatter;\n\nexport const zBankAccountsGetBankAccountsData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n created_since: z.string().optional(),\n updated_since: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zBankAccountsGetBankAccountsResponse = zBankAccount;\n\nexport const zBankAccountsPostBankAccountData = z.looseObject({\n body: zBankAccount2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zBankAccountsPostBankAccountResponse = zBankAccount;\n\nexport const zBankAccountsPutBankAccountData = z.looseObject({\n body: zBankAccount2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zBankAccountsPutBankAccountResponse = zBankAccount;\n\nexport const zCallLogsGetCallLogData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zCallLogsGetCallLogResponse = zCallLog;\n\nexport const zCallLogsDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zCallLogsDeleteResponse = zCallLog;\n\nexport const zCallLogsGetCallLogsData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n assigned_to_user_id: z.string().optional(),\n account_id: z.string().optional(),\n matter_id: z.string().optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n date_from: z.string().optional(),\n date_to: z.string().optional(),\n activity_tag: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zCallLogsGetCallLogsResponse = zCallLog;\n\nexport const zCallLogsPostCallLogData = z.looseObject({\n body: zCallLog2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zCallLogsPostCallLogResponse = zCallLog;\n\nexport const zCallLogsPutCallLogData = z.looseObject({\n body: zCallLog2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zCallLogsPutCallLogResponse = zCallLog;\n\nexport const zContactsGetContactData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zContactsGetContactResponse = zContact;\n\nexport const zContactsGetContactsData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n assigned_to_user_id: z.string().optional(),\n account_id: z.string().optional(),\n status: z.union([z.enum(['Active', 'Archived']), z.string()]).optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n search_text: z.string().optional(),\n account_tag: z.string().optional(),\n company_name: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zContactsGetContactsResponse = zContact;\n\nexport const zCustomFieldsGetCustomFieldsForAccountData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n created_since: z.string().optional(),\n updated_since: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zCustomFieldsGetCustomFieldsForAccountResponse = zCustomField;\n\nexport const zCustomFieldsGetCustomFieldsForMatterData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n created_since: z.string().optional(),\n updated_since: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zCustomFieldsGetCustomFieldsForMatterResponse = zCustomField;\n\nexport const zCustomFieldsGetCustomFieldsForContactData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n created_since: z.string().optional(),\n updated_since: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zCustomFieldsGetCustomFieldsForContactResponse = zCustomField;\n\nexport const zCustomFieldsGetCustomFieldData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zCustomFieldsGetCustomFieldResponse = zCustomField;\n\nexport const zEmailsGetEmailData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zEmailsGetEmailResponse = zEmail;\n\nexport const zEmailsDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zEmailsDeleteResponse = zEmail;\n\nexport const zEmailsGetEmailsData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n assigned_to_user_id: z.string().optional(),\n account_id: z.string().optional(),\n matter_id: z.string().optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n activity_tag: z.string().optional(),\n external_message_id: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zEmailsGetEmailsResponse = zEmail;\n\nexport const zEmailsPostEmailData = z.looseObject({\n body: zEmail2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zEmailsPostEmailResponse = zEmail;\n\nexport const zEmailsPutAccountData = z.looseObject({\n body: zEmail2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zEmailsPutAccountResponse = zEmail;\n\nexport const zEventsGetEventData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zEventsGetEventResponse = zEvent;\n\nexport const zEventsDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zEventsDeleteResponse = zEvent;\n\nexport const zEventsGetEventsData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n assigned_to_user_id: z.string().optional(),\n account_id: z.string().optional(),\n matter_id: z.string().optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n date_from: z.string().optional(),\n date_to: z.string().optional(),\n activity_tag: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zEventsGetEventsResponse = zEvent;\n\nexport const zEventsPostAccountData = z.looseObject({\n body: zEvent2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zEventsPostAccountResponse = zEvent;\n\nexport const zEventsPutAccountData = z.looseObject({\n body: zEvent2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zEventsPutAccountResponse = zEvent;\n\nexport const zExpenseCategoriesGetExpenseCategoryData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zExpenseCategoriesGetExpenseCategoryResponse = zExpenseCategory;\n\nexport const zExpenseCategoriesDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zExpenseCategoriesDeleteResponse = zExpenseCategory;\n\nexport const zExpenseCategoriesGetExpenseCategoriesData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n created_since: z.string().optional(),\n updated_since: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zExpenseCategoriesGetExpenseCategoriesResponse = zExpenseCategory;\n\nexport const zExpenseCategoriesPostExpenseCategoryData = z.looseObject({\n body: zExpenseCategory2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zExpenseCategoriesPostExpenseCategoryResponse = zExpenseCategory;\n\nexport const zExpenseCategoriesPutExpenseCategoryData = z.looseObject({\n body: zExpenseCategory2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zExpenseCategoriesPutExpenseCategoryResponse = zExpenseCategory;\n\nexport const zExpensesGetExpenseData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zExpensesGetExpenseResponse = zExpense;\n\nexport const zExpensesDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zExpensesDeleteResponse = zExpense;\n\nexport const zExpensesGetExpensessData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n account_id: z.string().optional(),\n matter_id: z.string().optional(),\n billed_by_user_id: z.string().optional(),\n expense_category_id: z.string().optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n date_from: z.string().optional(),\n date_to: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zExpensesGetExpensessResponse = zExpense;\n\nexport const zExpensesPostAccountData = z.looseObject({\n body: zExpense2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zExpensesPostAccountResponse = zExpense;\n\nexport const zExpensesPutAccountData = z.looseObject({\n body: zExpense2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zExpensesPutAccountResponse = zExpense;\n\nexport const zFilesGetFileData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zFilesGetFileResponse = zFile;\n\nexport const zFilesDownloadFileData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zFilesDownloadFileResponse = zFile;\n\nexport const zFilesPostFileToBoxData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zFilesPostFileToBoxResponse = z.record(z.string(), z.unknown());\n\nexport const zFilesDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zFilesDeleteResponse = zFile;\n\nexport const zFilesGetFilesData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n search_text: z.string().optional(),\n account_id: z.string().optional(),\n matter_id: z.string().optional(),\n activity_id: z.string().optional(),\n created_by_user_id: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zFilesGetFilesResponse = zFile;\n\nexport const zFilesPostFileData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zFilesPostFileResponse = zFile;\n\nexport const zFilesPutFileData = z.looseObject({\n body: zFileWritable,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zFilesPutFileResponse = zFile;\n\nexport const zFlatFeesGetFlatFeeData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zFlatFeesGetFlatFeeResponse = zFlatFee;\n\nexport const zFlatFeesDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zFlatFeesDeleteResponse = zFlatFee;\n\nexport const zFlatFeesGetFlatFeesData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n account_id: z.string().optional(),\n matter_id: z.string().optional(),\n user_id: z.string().optional(),\n item_id: z.string().optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n date_from: z.string().optional(),\n date_to: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zFlatFeesGetFlatFeesResponse = zFlatFee;\n\nexport const zFlatFeesPostAccountData = z.looseObject({\n body: zFlatFee2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zFlatFeesPostAccountResponse = zFlatFee;\n\nexport const zFlatFeesPutAccountData = z.looseObject({\n body: zFlatFee2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zFlatFeesPutAccountResponse = zFlatFee;\n\nexport const zInvoicesGetInvoiceData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zInvoicesGetInvoiceResponse = zInvoice;\n\nexport const zInvoicesDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zInvoicesDeleteResponse = zInvoice;\n\nexport const zInvoicesGetInvoicesData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n account_id: z.string().optional(),\n matter_id: z.string().optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n date_from: z.string().optional(),\n date_to: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zInvoicesGetInvoicesResponse = zInvoice;\n\nexport const zItemsGetItemData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zItemsGetItemResponse = zItem;\n\nexport const zItemsDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zItemsDeleteResponse = zItem;\n\nexport const zItemsGetItemsData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n created_since: z.string().optional(),\n updated_since: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zItemsGetItemsResponse = zItem;\n\nexport const zItemsPostItemData = z.looseObject({\n body: zItem2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zItemsPostItemResponse = zItem;\n\nexport const zItemsPutItemData = z.looseObject({\n body: zItem2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zItemsPutItemResponse = zItem;\n\nexport const zMattersGetMatterData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zMattersGetMatterResponse = zMatter;\n\nexport const zMattersDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zMattersDeleteResponse = zMatter;\n\nexport const zMattersGetMattersData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n assigned_to_user_id: z.string().optional(),\n account_id: z.string().optional(),\n status: z.union([z.enum([\n 'Closed',\n 'Pending',\n 'Open',\n 'Archived'\n ]), z.string()]).optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n search_text: z.string().optional(),\n account_tag: z.string().optional(),\n matter_tag: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zMattersGetMattersResponse = zMatter;\n\nexport const zMattersPostAccountData = z.looseObject({\n body: zMatter2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zMattersPostAccountResponse = zMatter;\n\nexport const zMattersPutAccountData = z.looseObject({\n body: zMatter2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zMattersPutAccountResponse = zMatter;\n\nexport const zMessagesDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zMessagesDeleteResponse = zMessage;\n\nexport const zMessagesGetMessagesAsyncData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zMessagesGetMessagesAsyncResponse = zMessage;\n\nexport const zMessagesPostMessageData = z.looseObject({\n body: zMessage2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zMessagesPostMessageResponse = zMessage;\n\nexport const zMessagesPutMessageData = z.looseObject({\n body: zMessage2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zMessagesPutMessageResponse = zMessage;\n\nexport const zNotesGetNoteData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zNotesGetNoteResponse = zNote;\n\nexport const zNotesDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zNotesDeleteResponse = zNote;\n\nexport const zNotesGetNotesData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n assigned_to_user_id: z.string().optional(),\n account_id: z.string().optional(),\n matter_id: z.string().optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n date_from: z.string().optional(),\n date_to: z.string().optional(),\n activity_tag: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zNotesGetNotesResponse = zNote;\n\nexport const zNotesPostNoteData = z.looseObject({\n body: zNote2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zNotesPostNoteResponse = zNote;\n\nexport const zNotesPutNoteData = z.looseObject({\n body: zNote2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zNotesPutNoteResponse = zNote;\n\nexport const zPaymentsGetPaymentData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zPaymentsGetPaymentResponse = zPaymentDetail;\n\nexport const zPaymentsDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zPaymentsDeleteResponse = zPayment;\n\nexport const zPaymentsGetPaymentsData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n account_id: z.string().optional(),\n matter_id: z.string().optional(),\n bank_account_id: z.string().optional(),\n bank_account_type: z.union([z.enum([\n 'Operating',\n 'Trust',\n 'CreditCard'\n ]), z.string()]).optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n date_from: z.string().optional(),\n date_to: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zPaymentsGetPaymentsResponse = zPayment;\n\nexport const zRelationshipsGetRelationshipData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zRelationshipsGetRelationshipResponse = zRelationship;\n\nexport const zRelationshipsDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zRelationshipsDeleteResponse = zRelationship;\n\nexport const zRelationshipsGetRelationshipsData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n contact_id: z.string().optional(),\n matter_id: z.string().optional(),\n account_id: z.string().optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zRelationshipsGetRelationshipsResponse = zRelationship;\n\nexport const zRelationshipsPostAccountData = z.looseObject({\n body: zRelationship2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zRelationshipsPostAccountResponse = zRelationship;\n\nexport const zRelationshipsPutRelationshipData = z.looseObject({\n body: zRelationship2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zRelationshipsPutRelationshipResponse = zRelationship;\n\nexport const zTagsGetTagsForAccountsData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zTagsGetTagsForAccountsResponse = z.array(zTag);\n\nexport const zTagsGetTagsForProjectsData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zTagsGetTagsForProjectsResponse = z.array(zTag);\n\nexport const zTagsGetTagsForActivitiesData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zTagsGetTagsForActivitiesResponse = z.array(zTag);\n\nexport const zTasksGetTaskData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zTasksGetTaskResponse = zTask;\n\nexport const zTasksDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zTasksDeleteResponse = zTask;\n\nexport const zTasksGetTasksData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n assigned_to_user_id: z.string().optional(),\n account_id: z.string().optional(),\n matter_id: z.string().optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n status: z.union([z.enum([\n 'NotCompleted',\n 'InProgress',\n 'Completed',\n 'Conditional'\n ]), z.string()]).optional(),\n due_date_from: z.string().optional(),\n due_date_to: z.string().optional(),\n activity_tag: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zTasksGetTasksResponse = zTask;\n\nexport const zTasksPostAccountData = z.looseObject({\n body: zTask2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zTasksPostAccountResponse = zTask;\n\nexport const zTasksPutAccountData = z.looseObject({\n body: zTask2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zTasksPutAccountResponse = zTask;\n\nexport const zTimeEntriesGetTimeEntryData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zTimeEntriesGetTimeEntryResponse = zTimeEntry;\n\nexport const zTimeEntriesDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zTimeEntriesDeleteResponse = zTimeEntry;\n\nexport const zTimeEntriesGetTimeEntrysData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n account_id: z.string().optional(),\n matter_id: z.string().optional(),\n user_id: z.string().optional(),\n item_id: z.string().optional(),\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n date_from: z.string().optional(),\n date_to: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zTimeEntriesGetTimeEntrysResponse = zTimeEntry;\n\nexport const zTimeEntriesPostAccountData = z.looseObject({\n body: zTimeEntry2,\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zTimeEntriesPostAccountResponse = zTimeEntry;\n\nexport const zTimeEntriesPutAccountData = z.looseObject({\n body: zTimeEntry2,\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zTimeEntriesPutAccountResponse = zTimeEntry;\n\nexport const zUsersMeData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zUsersMeResponse = zUser;\n\nexport const zUsersGetUserData = z.looseObject({\n body: z.never().optional(),\n path: z.looseObject({\n id: z.string()\n }),\n query: z.never().optional()\n});\n\n/**\n * OK\n */\nexport const zUsersGetUserResponse = zUser;\n\nexport const zUsersDeleteData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n id: z.string()\n })\n});\n\n/**\n * OK\n */\nexport const zUsersDeleteResponse = zUser;\n\nexport const zUsersGetUsersData = z.looseObject({\n body: z.never().optional(),\n path: z.never().optional(),\n query: z.looseObject({\n created_since: z.string().optional(),\n updated_since: z.string().optional(),\n email_address: z.string().optional()\n }).optional()\n});\n\n/**\n * OK\n */\nexport const zUsersGetUsersResponse = zUser;\n"],"mappings":"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","names":["joinedValues","config","request","error","finalError","url","z","z","z"]}