export type ChunkMetaDataValueType = boolean | string | number; export class Document { content: string; metadata: Record; constructor(data: { content: string; metadata?: Record; }) { this.content = data.content; this.metadata = this.filterMetadata(data.metadata || {}); } toJSON(): Record { return { content: this.content, metadata: this.metadata }; } private filterMetadata( metadata: Record ): Record { return Object.fromEntries( Object.entries(metadata).filter(([, value]) => ['boolean', 'string', 'number'].includes(typeof value) ) ); } }