{"version":3,"sources":["../../../src/lib/utils/reviewFormatting.ts"],"names":[],"mappings":";;;AAOA,IAAM,YAAA,GAAe,CAAC,KAAA,KACrB,OAAO,KAAA,KAAU,YAAY,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,GAAI,KAAA,GAAQ,IAAA;AAExD,IAAM,mBAAA,GAAsB,CAAC,KAAA,KAA2C;AAC9E,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,EAAU,OAAO,KAAA;AACtC,EAAA,MAAM,eAAe,YAAA,CAAa,OAAO,KAAA,KAAU,QAAA,GAAW,QAAQ,IAAI,CAAA;AAC1E,EAAA,OAAO,YAAA,KAAiB,IAAA,GAAO,YAAA,CAAa,OAAA,CAAQ,CAAC,CAAA,GAAI,QAAA;AAC1D;AAEO,IAAM,eAAA,GAAkB,CAAC,OAAA,KAAgD;AAC/E,EAAA,IAAI,CAAC,SAAS,OAAO,MAAA;AACrB,EAAA,OAAO,CAAA,gDAAA,EAAmD,kBAAA,CAAmB,OAAO,CAAC,CAAA,CAAA;AACtF;AAEO,IAAM,iBAAA,GAAoB,CAAC,OAAA,EAAyB,WAAA,KAAoD;AAC9G,EAAA,IAAI,eAAe,WAAA,CAAY,IAAA,EAAK,CAAE,MAAA,GAAS,GAAG,OAAO,WAAA;AACzD,EAAA,OAAO,gBAAgB,OAAO,CAAA;AAC/B;AAUO,IAAM,+BAA+B,CAAC;AAAA,EAC5C,QAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,YAAA;AAAA,EACA;AACD,CAAA,KAA8C;AAC7C,EAAA,MAAM,GAAA,GAAM,IAAI,GAAA,CAAI,QAAA,EAAU,MAAM,CAAA;AAEpC,EAAA,IAAI,OAAA,EAAS;AACZ,IAAA,GAAA,CAAI,YAAA,CAAa,GAAA,CAAI,SAAA,EAAW,OAAO,CAAA;AAAA,EACxC;AAEA,EAAA,MAAM,sBAAA,GAAyB,cAAc,IAAA,EAAK;AAClD,EAAA,IAAI,sBAAA,IAA0B,sBAAA,CAAuB,WAAA,EAAY,KAAM,IAAA,EAAM;AAC5E,IAAA,GAAA,CAAI,YAAA,CAAa,GAAA,CAAI,cAAA,EAAgB,sBAAsB,CAAA;AAAA,EAC5D;AAEA,EAAA,IAAI,YAAA,EAAc;AACjB,IAAA,GAAA,CAAI,YAAA,CAAa,GAAA,CAAI,cAAA,EAAgB,YAAY,CAAA;AAAA,EAClD;AAEA,EAAA,OAAO,IAAI,QAAA,EAAS;AACrB;AAOO,IAAM,kBAAA,GAAqB,CAAC,EAAE,cAAA,EAAgB,qBAAoB,KAAkD;AAC1H,EAAA,MAAM,WAAA,GAAc,aAAa,cAAc,CAAA;AAC/C,EAAA,IAAI,gBAAgB,IAAA,EAAM;AACzB,IAAA,OAAO,IAAA;AAAA,EACR;AAEA,EAAA,MAAM,gBAAA,GAAmB,aAAa,mBAAmB,CAAA;AAEzD,EAAA,OAAO;AAAA,IACN,MAAA,EAAQ,WAAA;AAAA,IACR,WAAA,EAAa,gBAAA;AAAA,IACb,MAAA,EAAQ,UAAA;AAAA,IACR,SAAA,EAAA,iBAAW,IAAI,IAAA,EAAK,EAAE,WAAA;AAAY,GACnC;AACD","file":"reviewFormatting.cjs","sourcesContent":["export type FallbackReviewData = {\n\trating: number;\n\treviewCount: number | null;\n\tsource: 'fallback';\n\tupdatedAt: string;\n};\n\nconst formatNumber = (value?: number | null) =>\n\ttypeof value === 'number' && Number.isFinite(value) ? value : null;\n\nexport const formatRatingDisplay = (value?: number | string | null): string => {\n\tif (typeof value === 'string') return value;\n\tconst numericValue = formatNumber(typeof value === 'number' ? value : null);\n\treturn numericValue !== null ? numericValue.toFixed(1) : '—';\n};\n\nexport const buildReviewsUrl = (placeId?: string | null): string | undefined => {\n\tif (!placeId) return undefined;\n\treturn `https://search.google.com/local/reviews?placeid=${encodeURIComponent(placeId)}`;\n};\n\nexport const resolveReviewsUrl = (placeId?: string | null, explicitUrl?: string | null): string | undefined => {\n\tif (explicitUrl && explicitUrl.trim().length > 0) return explicitUrl;\n\treturn buildReviewsUrl(placeId);\n};\n\ntype GoogleReviewsRequestUrlOptions = {\n\tendpoint: string;\n\torigin: string;\n\tplaceId?: string | null;\n\tlanguageCode?: string | null;\n\tbusinessName?: string | null;\n};\n\nexport const buildGoogleReviewsRequestUrl = ({\n\tendpoint,\n\torigin,\n\tplaceId,\n\tlanguageCode,\n\tbusinessName,\n}: GoogleReviewsRequestUrlOptions): string => {\n\tconst url = new URL(endpoint, origin);\n\n\tif (placeId) {\n\t\turl.searchParams.set('placeId', placeId);\n\t}\n\n\tconst normalizedLanguageCode = languageCode?.trim();\n\tif (normalizedLanguageCode && normalizedLanguageCode.toLowerCase() !== 'en') {\n\t\turl.searchParams.set('languageCode', normalizedLanguageCode);\n\t}\n\n\tif (businessName) {\n\t\turl.searchParams.set('businessName', businessName);\n\t}\n\n\treturn url.toString();\n};\n\ntype FallbackOptions = {\n\tfallbackRating?: number;\n\tfallbackReviewCount?: number;\n};\n\nexport const createFallbackData = ({ fallbackRating, fallbackReviewCount }: FallbackOptions): FallbackReviewData | null => {\n\tconst ratingValue = formatNumber(fallbackRating);\n\tif (ratingValue === null) {\n\t\treturn null;\n\t}\n\n\tconst reviewCountValue = formatNumber(fallbackReviewCount);\n\n\treturn {\n\t\trating: ratingValue,\n\t\treviewCount: reviewCountValue,\n\t\tsource: 'fallback',\n\t\tupdatedAt: new Date().toISOString(),\n\t};\n};\n"]}