import { ENV } from "./_core/env"; function hasProtocol(value: string) { return /^[a-z][a-z0-9+.-]*:\/\//i.test(value); } export function toPublicUrl(pathOrUrl: string) { const value = pathOrUrl.trim(); if (!value) { throw new Error("Public URL value is empty"); } if (hasProtocol(value)) { return value; } if (!ENV.appPublicBaseUrl) { throw new Error("APP_PUBLIC_BASE_URL is required for externally accessible asset URLs"); } return new URL(value.startsWith("/") ? value : `/${value}`, ENV.appPublicBaseUrl).toString(); }