{"version":3,"file":"field-weighting.cjs","sources":["../../../src/core/field-weighting.ts"],"sourcesContent":["/**\n * Field Weighting Utilities\n * Support for multi-field search with weighted scoring\n */\n\n/**\n * Extract field values from an object or string\n */\nexport function extractFieldValues(\n  //\n  item: any,\n  fields?: string[]\n): Record<string, string> | null {\n  // If no fields specified, treat item as simple string\n  if (!fields || fields.length === 0) {\n    return null;\n  }\n\n  // If item is a string, can't extract fields\n  if (typeof item === \"string\") {\n    return null;\n  }\n\n  // If item is an object, extract field values\n  if (typeof item === \"object\" && item !== null) {\n    const fieldValues: Record<string, string> = {};\n\n    for (const field of fields) {\n      const value = item[field];\n      if (value !== undefined && value !== null) {\n        fieldValues[field] = String(value);\n      }\n    }\n\n    return Object.keys(fieldValues).length > 0 ? fieldValues : null;\n  }\n\n  return null;\n}\n\n/**\n * Get all searchable text from field values\n */\nexport function getSearchableText(\n  //\n  fieldValues: Record<string, string>\n): string[] {\n  return Object.values(fieldValues).filter((v) => v && v.trim().length > 0);\n}\n\n/**\n * Normalize field weights (ensure all fields have a weight)\n */\nexport function normalizeFieldWeights(\n  //\n  fields: string[],\n  fieldWeights?: Record<string, number>\n): Record<string, number> {\n  const normalized: Record<string, number> = {};\n\n  for (const field of fields) {\n    normalized[field] = fieldWeights?.[field] ?? 1.0;\n  }\n\n  return normalized;\n}\n\n/**\n * Apply field weight to a score\n */\nexport function applyFieldWeight(\n  //\n  baseScore: number,\n  fieldWeight: number\n): number {\n  return Math.min(1.0, baseScore * fieldWeight);\n}\n"],"names":[],"mappings":";;AAQO,SAAS,mBAEd,MACA,QAC+B;AAE/B,MAAI,CAAC,UAAU,OAAO,WAAW,GAAG;AAClC,WAAO;AAAA,EACT;AAGA,MAAI,OAAO,SAAS,UAAU;AAC5B,WAAO;AAAA,EACT;AAGA,MAAI,OAAO,SAAS,YAAY,SAAS,MAAM;AAC7C,UAAM,cAAsC,CAAA;AAE5C,eAAW,SAAS,QAAQ;AAC1B,YAAM,QAAQ,KAAK,KAAK;AACxB,UAAI,UAAU,UAAa,UAAU,MAAM;AACzC,oBAAY,KAAK,IAAI,OAAO,KAAK;AAAA,MACnC;AAAA,IACF;AAEA,WAAO,OAAO,KAAK,WAAW,EAAE,SAAS,IAAI,cAAc;AAAA,EAC7D;AAEA,SAAO;AACT;AAeO,SAAS,sBAEd,QACA,cACwB;AACxB,QAAM,aAAqC,CAAA;AAE3C,aAAW,SAAS,QAAQ;AAC1B,eAAW,KAAK,IAAI,eAAe,KAAK,KAAK;AAAA,EAC/C;AAEA,SAAO;AACT;;;"}