{"version":3,"sources":["../src/trailing-slash.ts"],"sourcesContent":["const FARM_TRAILING_SLASH_PREFERENCE = Symbol.for(\"farm.trailingSlashPreference\");\n\nfunction getFarmGlobalState(): Record<PropertyKey, unknown> {\n  return globalThis as unknown as Record<PropertyKey, unknown>;\n}\n\n/** @internal Configure the app-wide URL preference for framework link rendering. */\nexport function setFarmTrailingSlashPreference(enabled: boolean | undefined): void {\n  getFarmGlobalState()[FARM_TRAILING_SLASH_PREFERENCE] = enabled === true;\n}\n\n/** @internal Read the app-wide URL preference used by framework links. */\nexport function getFarmTrailingSlashPreference(): boolean {\n  return getFarmGlobalState()[FARM_TRAILING_SLASH_PREFERENCE] === true;\n}\n\nexport function normalizeFarmTrailingSlashPathname(pathname: string, enabled: boolean): string {\n  if (pathname === \"/\") return pathname;\n  if (enabled) return pathname.endsWith(\"/\") ? pathname : `${pathname}/`;\n  return pathname.replace(/\\/+$/, \"\") || \"/\";\n}\n\nexport function resolveFarmTrailingSlashRedirect(url: URL, enabled: boolean): string | null {\n  const pathname = normalizeFarmTrailingSlashPathname(url.pathname, enabled);\n  return pathname === url.pathname ? null : `${pathname}${url.search}`;\n}\n"],"mappings":";;;;;AAAA,IAAM,iCAAiC,uBAAO,IAAI,8BAA8B;AAEhF,SAAS,qBAAmD;AAC1D,SAAO;AACT;AAFS;AAKF,SAAS,+BAA+B,SAAoC;AACjF,qBAAmB,EAAE,8BAA8B,IAAI,YAAY;AACrE;AAFgB;AAKT,SAAS,iCAA0C;AACxD,SAAO,mBAAmB,EAAE,8BAA8B,MAAM;AAClE;AAFgB;AAIT,SAAS,mCAAmC,UAAkB,SAA0B;AAC7F,MAAI,aAAa,IAAK,QAAO;AAC7B,MAAI,QAAS,QAAO,SAAS,SAAS,GAAG,IAAI,WAAW,GAAG,QAAQ;AACnE,SAAO,SAAS,QAAQ,QAAQ,EAAE,KAAK;AACzC;AAJgB;AAMT,SAAS,iCAAiC,KAAU,SAAiC;AAC1F,QAAM,WAAW,mCAAmC,IAAI,UAAU,OAAO;AACzE,SAAO,aAAa,IAAI,WAAW,OAAO,GAAG,QAAQ,GAAG,IAAI,MAAM;AACpE;AAHgB;","names":[]}