Files
zCode-CLI-X/~/.npm-cache/@growthbook/growthbook@1.6.5@@@1/dist/esm/plugins/auto-attributes.mjs.map
admin 875c7f9b91 feat: Complete zCode CLI X with Telegram bot integration
- Add full Telegram bot functionality with Z.AI API integration
- Implement 4 tools: Bash, FileEdit, WebSearch, Git
- Add 3 agents: Code Reviewer, Architect, DevOps Engineer
- Add 6 skills for common coding tasks
- Add systemd service file for 24/7 operation
- Add nginx configuration for HTTPS webhook
- Add comprehensive documentation
- Implement WebSocket server for real-time updates
- Add logging system with Winston
- Add environment validation

🤖 zCode CLI X - Agentic coder with Z.AI + Telegram integration
2026-05-05 09:01:26 +00:00

1 line
13 KiB
Plaintext

{"version":3,"file":"auto-attributes.mjs","names":["getBrowserDevice","ua","browser","match","deviceType","getURLAttributes","url","href","path","pathname","host","query","search","autoAttributesPlugin","settings","window","Error","COOKIE_NAME","uuidCookieName","uuidKey","uuid","persistUUID","setCookie","getUUID","getCookie","genUUID","crypto","document","addEventListener","getAutoAttributes","navigator","userAgent","_uuid","uuidAutoPersist","location","getDataLayerVariables","pageTitle","title","getUtmAttributes","gb","attributes","setURL","updateAttributes","currentUrl","intervalTimer","setInterval","refreshListener","onDestroy","clearInterval","removeEventListener","name","value","d","Date","COOKIE_DAYS","setTime","getTime","cookie","toUTCString","parts","split","length","randomUUID","replace","c","n","getRandomValues","Uint8Array","Math","floor","random","toString","utms","existing","sessionStorage","getItem","JSON","parse","e","params","URLSearchParams","hasChanges","forEach","k","param","attr","toUpperCase","slice","has","get","setItem","stringify","dataLayer","obj","item","Object","keys","val","valueType","includes"],"sources":["../../../src/plugins/auto-attributes.ts"],"sourcesContent":["import type { GrowthBook } from \"../GrowthBook\";\nimport type {\n UserScopedGrowthBook,\n GrowthBookClient,\n} from \"../GrowthBookClient\";\n\nexport type AutoAttributeSettings = {\n uuidCookieName?: string;\n uuidKey?: string;\n uuid?: string;\n uuidAutoPersist?: boolean;\n};\n\nfunction getBrowserDevice(ua: string): { browser: string; deviceType: string } {\n const browser = ua.match(/Edg/)\n ? \"edge\"\n : ua.match(/Chrome/)\n ? \"chrome\"\n : ua.match(/Firefox/)\n ? \"firefox\"\n : ua.match(/Safari/)\n ? \"safari\"\n : \"unknown\";\n\n const deviceType = ua.match(/Mobi/) ? \"mobile\" : \"desktop\";\n\n return { browser, deviceType };\n}\n\nfunction getURLAttributes(url: URL | Location | undefined) {\n if (!url) return {};\n return {\n url: url.href,\n path: url.pathname,\n host: url.host,\n query: url.search,\n };\n}\n\nexport function autoAttributesPlugin(settings: AutoAttributeSettings = {}) {\n // Browser only\n if (typeof window === \"undefined\") {\n throw new Error(\"autoAttributesPlugin only works in the browser\");\n }\n\n const COOKIE_NAME = settings.uuidCookieName || \"gbuuid\";\n const uuidKey = settings.uuidKey || \"id\";\n let uuid = settings.uuid || \"\";\n function persistUUID() {\n setCookie(COOKIE_NAME, uuid);\n }\n function getUUID() {\n // Already stored in memory, return\n if (uuid) return uuid;\n\n // If cookie is already set, return\n uuid = getCookie(COOKIE_NAME);\n if (uuid) return uuid;\n\n // Generate a new UUID\n uuid = genUUID(window.crypto);\n return uuid;\n }\n\n // Listen for a custom event to persist the UUID cookie\n document.addEventListener(\"growthbookpersist\", () => {\n persistUUID();\n });\n\n function getAutoAttributes(settings: AutoAttributeSettings) {\n const ua = navigator.userAgent;\n\n const _uuid = getUUID();\n\n // If a uuid is provided, default persist to false, otherwise default to true\n if (settings.uuidAutoPersist ?? !settings.uuid) {\n persistUUID();\n }\n\n const url = location;\n\n return {\n ...getDataLayerVariables(),\n [uuidKey]: _uuid,\n ...getURLAttributes(url),\n pageTitle: document.title,\n ...getBrowserDevice(ua),\n ...getUtmAttributes(url),\n };\n }\n\n return (gb: GrowthBook | UserScopedGrowthBook | GrowthBookClient) => {\n // Only works for instances with user attributes\n if (\"createScopedInstance\" in gb) {\n return;\n }\n\n // Set initial attributes\n const attributes = getAutoAttributes(settings);\n attributes.url && gb.setURL(attributes.url);\n gb.updateAttributes(attributes);\n\n // Poll for URL changes and update GrowthBook\n let currentUrl = attributes.url;\n const intervalTimer = setInterval(() => {\n if (location.href !== currentUrl) {\n currentUrl = location.href;\n gb.setURL(currentUrl);\n gb.updateAttributes(getAutoAttributes(settings));\n }\n }, 500);\n\n // Listen for a custom event to update URL and attributes\n const refreshListener = () => {\n if (location.href !== currentUrl) {\n currentUrl = location.href;\n gb.setURL(currentUrl);\n }\n gb.updateAttributes(getAutoAttributes(settings));\n };\n document.addEventListener(\"growthbookrefresh\", refreshListener);\n\n if (\"onDestroy\" in gb) {\n gb.onDestroy(() => {\n clearInterval(intervalTimer);\n document.removeEventListener(\"growthbookrefresh\", refreshListener);\n });\n }\n };\n}\n\nfunction setCookie(name: string, value: string) {\n const d = new Date();\n const COOKIE_DAYS = 400; // 400 days is the max cookie duration for chrome\n d.setTime(d.getTime() + 24 * 60 * 60 * 1000 * COOKIE_DAYS);\n document.cookie = name + \"=\" + value + \";path=/;expires=\" + d.toUTCString();\n}\n\nfunction getCookie(name: string): string {\n const value = \"; \" + document.cookie;\n const parts = value.split(`; ${name}=`);\n return parts.length === 2 ? parts[1].split(\";\")[0] : \"\";\n}\n\n// Use the browsers crypto.randomUUID if set to generate a UUID\nfunction genUUID(crypto?: Crypto) {\n if (crypto && crypto.randomUUID) return crypto.randomUUID();\n return (\"\" + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c) => {\n const n =\n crypto && crypto.getRandomValues\n ? crypto.getRandomValues(new Uint8Array(1))[0]\n : Math.floor(Math.random() * 256);\n return (\n (c as unknown as number) ^\n (n & (15 >> ((c as unknown as number) / 4)))\n ).toString(16);\n });\n}\n\nfunction getUtmAttributes(url: URL | Location | undefined) {\n // Store utm- params in sessionStorage for future page loads\n let utms: Record<string, string> = {};\n try {\n const existing = sessionStorage.getItem(\"utm_params\");\n if (existing) {\n utms = JSON.parse(existing);\n }\n } catch (e) {\n // Do nothing if sessionStorage is disabled (e.g. incognito window)\n }\n\n // Add utm params from querystring\n if (url && url.search) {\n const params = new URLSearchParams(url.search);\n let hasChanges = false;\n [\"source\", \"medium\", \"campaign\", \"term\", \"content\"].forEach((k) => {\n // Querystring is in snake_case\n const param = `utm_${k}`;\n // Attribute keys are camelCase\n const attr = `utm` + k[0].toUpperCase() + k.slice(1);\n\n if (params.has(param)) {\n utms[attr] = params.get(param) || \"\";\n hasChanges = true;\n }\n });\n\n // Write back to sessionStorage\n if (hasChanges) {\n try {\n sessionStorage.setItem(\"utm_params\", JSON.stringify(utms));\n } catch (e) {\n // Do nothing if sessionStorage is disabled (e.g. incognito window)\n }\n }\n }\n\n return utms;\n}\n\nfunction getDataLayerVariables() {\n if (\n typeof window === \"undefined\" ||\n !window.dataLayer ||\n !window.dataLayer.forEach\n ) {\n return {};\n }\n\n const obj: Record<string, unknown> = {};\n window.dataLayer.forEach((item: unknown) => {\n // Skip empty and non-object entries\n if (!item || typeof item !== \"object\" || \"length\" in item) return;\n\n // Skip events\n if (\"event\" in item) return;\n\n Object.keys(item).forEach((k) => {\n // Filter out known properties that aren't useful\n if (typeof k !== \"string\" || k.match(/^(gtm)/)) return;\n\n const val = (item as Record<string, unknown>)[k];\n\n // Only add primitive variable values\n const valueType = typeof val;\n if ([\"string\", \"number\", \"boolean\"].includes(valueType)) {\n obj[k] = val;\n }\n });\n });\n return obj;\n}\n"],"mappings":"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","ignoreList":[]}