UNPKG

@the_cfdude/productboard-mcp

Version:

Model Context Protocol server for Productboard REST API with dynamic tool loading

110 lines (109 loc) 4.32 kB
/** * Utilities for handling standardized parameters */ import { StandardListParams, StandardGetParams, DetailLevel, DetailFieldMappings, EnterpriseErrorInfo, OutputFormat, ResponseOptimizationParams, CustomFieldInclusion } from '../types/parameter-types.js'; /** * Apply default values and validate list parameters */ export declare function normalizeListParams(params?: StandardListParams): StandardListParams & { limit: number; startWith: number; detail: DetailLevel; includeSubData: boolean; fields: string[]; exclude: string[]; validateFields: boolean; outputFormat: OutputFormat; truncateFields: string[]; truncateIndicator: string; includeDescription: boolean; includeCustomFields: CustomFieldInclusion; includeCustomFieldsStrategy: CustomFieldInclusion; includeLinks: boolean; includeEmpty: boolean; includeMetadata: boolean; }; /** * Apply default values and validate get parameters */ export declare function normalizeGetParams(params?: StandardGetParams): StandardGetParams & { detail: DetailLevel; includeSubData: boolean; fields: string[]; exclude: string[]; validateFields: boolean; outputFormat: OutputFormat; truncateFields: string[]; truncateIndicator: string; includeDescription: boolean; includeCustomFields: CustomFieldInclusion; includeCustomFieldsStrategy: CustomFieldInclusion; includeLinks: boolean; includeEmpty: boolean; includeMetadata: boolean; }; /** * Filter response data based on detail level */ export declare function filterByDetailLevel<T extends Record<string, any>>(data: T, entityType: keyof typeof DetailFieldMappings, detailLevel: DetailLevel, fields?: string[], exclude?: string[], outputFormat?: OutputFormat, optimization?: ResponseOptimizationParams): Partial<T> | string; /** * Filter object by specific fields, supporting dot notation for nested fields */ /** * @deprecated Use fieldSelector.selectFields() from field-selection.ts instead * Legacy field filtering function - kept for backward compatibility */ export declare function filterByFields<T extends Record<string, any>>(data: T, fields: string[]): Partial<T>; /** * Filter object by excluding specific fields */ /** * @deprecated Use fieldSelector.selectFields() with exclude option from field-selection.ts instead * Legacy field exclusion function - kept for backward compatibility */ export declare function filterByExclusion<T extends Record<string, any>>(data: T, excludeFields: string[]): Partial<T>; /** * Validate field names against entity schema and return suggestions */ export declare function validateFieldNames(entityType: keyof typeof DetailFieldMappings, requestedFields: string[]): { valid: string[]; invalid: string[]; suggestions: Array<{ field: string; suggestion: string; }>; }; /** * Filter array of items by detail level */ export declare function filterArrayByDetailLevel<T extends Record<string, any>>(data: T[], entityType: keyof typeof DetailFieldMappings, detailLevel: DetailLevel, fields?: string[], exclude?: string[], outputFormat?: OutputFormat, optimization?: ResponseOptimizationParams): (Partial<T> | string)[]; /** * Check if error is due to enterprise feature limitation */ export declare function isEnterpriseError(error: any): EnterpriseErrorInfo; /** * Convert old pagination params to new format */ export declare function convertPaginationParams(params: any): { limit?: number; startWith?: number; }; /** * Format response data according to the specified output format */ export declare function formatResponse<T>(data: T, format: OutputFormat | undefined, entityType: string): string | T; /** * Response Optimization Functions */ /** * Optimize response data using truncation and conditional inclusion */ export declare function optimizeResponse<T>(data: T, optimization?: ResponseOptimizationParams): T; /** * Truncate a single field with word preservation */ export declare function truncateField(value: string, maxLength: number, indicator?: string, preserveWords?: boolean): string; /** * Normalize optimization parameters with defaults and validation */ export declare function normalizeOptimizationParams(params?: ResponseOptimizationParams): ResponseOptimizationParams;