Rocky_Mountain_Vending/.pnpm-store/v10/files/1f/5984dc1c297961760271371b42599b83c1f4e108e67dae08a0989be71b7e39fc7b1d711cf51f057ad20669dfdf560a46797f55c550d723fb91688fac24b907
DMleadgen 46d973904b
Initial commit: Rocky Mountain Vending website
Next.js website for Rocky Mountain Vending company featuring:
- Product catalog with Stripe integration
- Service areas and parts pages
- Admin dashboard with Clerk authentication
- SEO optimized pages with JSON-LD structured data

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 16:22:15 -07:00

53 lines
1.9 KiB
Text

export { createUserAgentStringParsingProvider } from "./createUserAgentStringParsingProvider";
export const createDefaultUserAgentProvider = ({ serviceId, clientVersion }) => async (config) => {
const navigator = typeof window !== "undefined" ? window.navigator : undefined;
const uaString = navigator?.userAgent ?? "";
const osName = navigator?.userAgentData?.platform ?? fallback.os(uaString) ?? "other";
const osVersion = undefined;
const brands = navigator?.userAgentData?.brands ?? [];
const brand = brands[brands.length - 1];
const browserName = brand?.brand ?? fallback.browser(uaString) ?? "unknown";
const browserVersion = brand?.version ?? "unknown";
const sections = [
["aws-sdk-js", clientVersion],
["ua", "2.1"],
[`os/${osName}`, osVersion],
["lang/js"],
["md/browser", `${browserName}_${browserVersion}`],
];
if (serviceId) {
sections.push([`api/${serviceId}`, clientVersion]);
}
const appId = await config?.userAgentAppId?.();
if (appId) {
sections.push([`app/${appId}`]);
}
return sections;
};
export const fallback = {
os(ua) {
if (/iPhone|iPad|iPod/.test(ua))
return "iOS";
if (/Macintosh|Mac OS X/.test(ua))
return "macOS";
if (/Windows NT/.test(ua))
return "Windows";
if (/Android/.test(ua))
return "Android";
if (/Linux/.test(ua))
return "Linux";
return undefined;
},
browser(ua) {
if (/EdgiOS|EdgA|Edg\//.test(ua))
return "Microsoft Edge";
if (/Firefox\//.test(ua))
return "Firefox";
if (/Chrome\//.test(ua))
return "Chrome";
if (/Safari\//.test(ua))
return "Safari";
return undefined;
},
};
export const defaultUserAgent = createDefaultUserAgentProvider;