@junobuild/analytics 0.2.12 → 0.2.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/chunk-AY32D3XT.js +2 -0
- package/dist/browser/chunk-AY32D3XT.js.map +7 -0
- package/dist/browser/index.js +1 -1
- package/dist/browser/tracker.js +1 -1
- package/dist/browser/web-vitals-IB5RPD7K.js +2 -0
- package/dist/browser/web-vitals-IB5RPD7K.js.map +7 -0
- package/dist/node/index.mjs +1 -1
- package/dist/node/index.mjs.map +3 -3
- package/package.json +4 -4
- package/dist/browser/chunk-AGCKN2PA.js +0 -2
- package/dist/browser/chunk-AGCKN2PA.js.map +0 -7
- package/dist/browser/web-vitals-6ZNYHHDJ.js +0 -2
- package/dist/browser/web-vitals-6ZNYHHDJ.js.map +0 -7
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var I="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var u=(t=21)=>{let e="",r=crypto.getRandomValues(new Uint8Array(t|=0));for(;t--;)e+=I[r[t]&63];return e};var A="http://localhost:5987";var m=t=>t==null,s=t=>!m(t),d=t=>s(t)&&t!=="",V=t=>!d(t);var L="__bigint__",C=(t,e)=>typeof e=="bigint"?{[L]:`${e}`}:e;var b=class extends Error{constructor(r,n){super(`[${r}] Orbiter Error: ${n}`);this.status=r;this.statusText=n}status;statusText},v=class{#e;constructor({container:e,orbiterId:r}){let i=s(e)&&e!==!1?e===!0?A:e:"https://icp0.io",{protocol:o,host:c}=new URL(i);this.#e=`${o}//${r}.${c}`}postPageViews=async({request:e})=>await this.post({path:"/views",payload:e});postTrackEvents=async({request:e})=>await this.post({path:"/events",payload:e});postPerformanceMetrics=async({request:e})=>await this.post({path:"/metrics",payload:e});post=async({path:e,payload:r})=>{let n=await fetch(`${this.#e}${e}`,{method:"POST",keepalive:!0,headers:{"Content-Type":"application/json"},body:JSON.stringify(r,C)});if(!n.ok)throw new b(n.status,n.statusText);return await n.json()}};var S=class{#e;#t;constructor(e){this.#e=e,this.#t=new v(e)}setPageView=async e=>{let r={...this.satelliteId(),page_views:[e]};return await this.#t.postPageViews({request:r})};setTrackEvent=async e=>{let r={...this.satelliteId(),track_events:[e]};return await this.#t.postTrackEvents({request:r})};setPerformanceMetric=async e=>{let r={...this.satelliteId(),performance_metrics:[e]};return await this.#t.postPerformanceMetrics({request:r})};satelliteId(){return{satellite_id:this.#e.satelliteId}}};var O=()=>BigInt(Date.now())*BigInt(1e6);var f=()=>({collected_at:O()}),P=()=>{let{userAgent:t}=navigator;return s(t)?{user_agent:t}:{}},U=()=>{let{location:{search:t}}=document,e=new URLSearchParams(t),r=e.get("utm_source");if(m(r)||V(r))return{withCampaign:!1};let n=e.get("utm_medium"),i=e.get("utm_campaign"),o=e.get("utm_term"),c=e.get("utm_content");return{withCampaign:!0,campaign:{utm_source:r,...d(n)&&{utm_medium:n},...d(i)&&{utm_campaign:i},...d(o)&&{utm_term:o},...d(c)&&{utm_content:c}}}};var E=class t{async startPerformance({sessionId:e,postPerformanceMetric:r}){let{onCLS:n,onFCP:i,onINP:o,onLCP:c,onTTFB:g}=await import("./web-vitals-IB5RPD7K.js"),l=h=>{(async()=>await t.setPerformanceMetric({metric:{...h,sessionId:e},postPerformanceMetric:r}))()};n(l),i(l),o(l),c(l),g(l)}static setPerformanceMetric=async({metric:e,postPerformanceMetric:r})=>{let n=t.mapPerformanceMetric(e);if(n==="unknown"){console.warn("Performance metric ignored. Unknown metric name.",e);return}await r({key:{key:u(),...f()},performance_metric:n})};static mapPerformanceMetric({sessionId:e,name:r,value:n,delta:i,id:o,navigationType:c}){let l=(()=>{switch(r){case"CLS":case"FCP":case"INP":case"LCP":case"TTFB":return r;default:return"unknown"}})();if(l==="unknown")return l;let p=(()=>{switch(c){case"navigate":return"Navigate";case"restore":return"Restore";case"reload":return"Reload";case"back-forward":return"BackForward";case"back-forward-cache":return"BackForwardCache";case"prerender":return"Prerender";default:return}})(),q={value:n,delta:i,id:o,...s(p)&&{navigation_type:p}},{location:{href:R}}=document;return{href:R,metric_name:l,session_id:e,data:{WebVitalsMetric:q},...P()}}};var T=class{async parseUserAgent(e){if(m(e))return;let r=await import("./ua-parser-DMUY4BWA.js"),n=new r.default(e),{browser:i,os:o,device:c}=n.getResult();if(!(m(i.name)||m(o.name)))return{browser:i.name,os:o.name,device:c?.type}}};var M=class extends Error{},k=(t,e)=>{if(t==null)throw new M(e)};var N=()=>typeof window<"u";var F="Unable to connect to the analytics services. Did you call `initOrbiter`?",w=t=>{m(t)&&console.warn(F)};var j=()=>{if(!(typeof crypto>"u"))return u()},y=j(),a,_e=t=>(a={orbiter:new S(t),userAgent:t.options?.userAgentParser===!0?new T:null,performance:t.options?.performance===!0?new E:null},{cleanup(){a=null}}),be=()=>{let t=async()=>await B(),e=new Proxy(history.pushState,{apply:async(r,n,i)=>{r.apply(n,i),await t()}});return history.pushState=e,addEventListener("popstate",t,{passive:!0}),{cleanup(){e=null,removeEventListener("popstate",t,!1)}}},x="No session ID initialized.",$=async()=>{if(!N())return;k(y,x);let{title:t,location:{href:e},referrer:r}=document,{innerWidth:n,innerHeight:i,screen:o}=window,{timeZone:c}=Intl.DateTimeFormat().resolvedOptions(),{user_agent:g}=P(),l=s(a?.userAgent)?await a?.userAgent.parseUserAgent(g):void 0,{withCampaign:h,campaign:p}=U(),R={title:t,href:(()=>{if(!h)return e;try{let _=new URL(e);return Object.keys(p??{}).forEach(D=>_.searchParams.delete(D)),_.href}catch{return e}})(),...s(r)&&r!==""&&{referrer:r},device:{inner_width:n,inner_height:i,screen_width:o?.availWidth,screen_height:o?.availHeight},time_zone:c,session_id:y,user_agent:g,...s(l)&&{client:l},...s(p)&&{campaign:p}};w(a),await a?.orbiter?.setPageView({key:{key:u(),...f()},page_view:R})},Me=async()=>{if(!N()||m(a?.performance))return;k(y,x),w(a);let t=async e=>{w(a),await a?.orbiter?.setPerformanceMetric(e)};await a.performance.startPerformance({sessionId:y,postPerformanceMetric:t})},xe=()=>{B()},B=async()=>{await $()},qe=t=>{W(t)},W=async t=>{N()&&(k(y,x),w(a),await a?.orbiter?.setTrackEvent({key:{key:u(),...f()},track_event:{...t,session_id:y,...P(),...f()}}))};export{k as a,_e as b,be as c,$ as d,Me as e,xe as f,B as g,qe as h,W as i};
|
|
2
|
+
//# sourceMappingURL=chunk-AY32D3XT.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../node_modules/nanoid/url-alphabet/index.js", "../../../../node_modules/nanoid/index.browser.js", "../../src/constants/container.constants.ts", "../../src/utils/dfinity/nullish.utils.ts", "../../src/utils/dfinity/json.utils.ts", "../../src/api/orbiter.api.ts", "../../src/services/orbiter.services.ts", "../../src/utils/date.utils.ts", "../../src/utils/analytics.utils.ts", "../../src/services/performance.services.ts", "../../src/services/user-agent.services.ts", "../../src/utils/dfinity/asserts.utils.ts", "../../src/utils/env.utils.ts", "../../src/utils/log.utils.ts", "../../src/tracker.ts"],
|
|
4
|
+
"sourcesContent": ["export let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n", "/* @ts-self-types=\"./index.d.ts\" */\nimport { urlAlphabet as scopedUrlAlphabet } from './url-alphabet/index.js'\nexport { urlAlphabet } from './url-alphabet/index.js'\nexport let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nexport let customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << Math.log2(alphabet.length - 1)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step | 0\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length >= size) return id\n }\n }\n }\n}\nexport let customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size | 0, random)\nexport let nanoid = (size = 21) => {\n let id = ''\n let bytes = crypto.getRandomValues(new Uint8Array((size |= 0)))\n while (size--) {\n id += scopedUrlAlphabet[bytes[size] & 63]\n }\n return id\n}\n", "export const DOCKER_CONTAINER_WEB_URL = 'http://localhost:5987';\n", "/**\n * Checks if a given argument is null or undefined.\n *\n * @template T - The type of the argument.\n * @param {T | undefined | null} argument - The argument to check.\n * @returns {argument is undefined | null} `true` if the argument is null or undefined; otherwise, `false`.\n */\nexport const isNullish = <T>(argument: T | undefined | null): argument is undefined | null =>\n argument === null || argument === undefined;\n\n/**\n * Checks if a given argument is neither null nor undefined.\n *\n * @template T - The type of the argument.\n * @param {T | undefined | null} argument - The argument to check.\n * @returns {argument is NonNullable<T>} `true` if the argument is not null or undefined; otherwise, `false`.\n */\nexport const nonNullish = <T>(argument: T | undefined | null): argument is NonNullable<T> =>\n !isNullish(argument);\n\n/**\n * Checks if a given value is not null, not undefined, and not an empty string.\n *\n * @param {string | undefined | null} value - The value to check.\n * @returns {boolean} `true` if the value is not null, not undefined, and not an empty string; otherwise, `false`.\n */\nexport const notEmptyString = (value: string | undefined | null): value is string =>\n nonNullish(value) && value !== '';\n\n/**\n * Checks if a given value is null, undefined, or an empty string.\n *\n * @param {string | undefined | null} value - The value to check.\n * @returns {value is undefined | null | \"\"} Type predicate indicating if the value is null, undefined, or an empty string.\n */\nexport const isEmptyString = (value: string | undefined | null): value is undefined | null | '' =>\n !notEmptyString(value);\n", "import {nonNullish} from './nullish.utils';\n\nconst JSON_KEY_BIGINT = '__bigint__';\n\n/**\n * A custom replacer for `JSON.stringify` that converts specific types not natively supported\n * by the API into JSON-compatible formats.\n *\n * Supported conversions:\n * - `BigInt` \u2192 `{ \"__bigint__\": string }`\n *\n * @param {string} _key - Ignored. Only provided for API compatibility.\n * @param {unknown} value - The value to transform before stringification.\n * @returns {unknown} The transformed value if it matches a known type, otherwise the original value.\n */\n// eslint-disable-next-line local-rules/prefer-object-params\nexport const jsonReplacer = (_key: string, value: unknown): unknown => {\n if (typeof value === 'bigint') {\n return {[JSON_KEY_BIGINT]: `${value}`};\n }\n\n return value;\n};\n\n/**\n * A custom reviver for `JSON.parse` that reconstructs specific types from their JSON-encoded representations.\n *\n * This reverses the transformations applied by `jsonReplacer`, restoring the original types.\n *\n * Supported conversions:\n * - `{ \"__bigint__\": string }` \u2192 `BigInt`\n *\n * @param {string} _key - Ignored but provided for API compatibility.\n * @param {unknown} value - The parsed value to transform.\n * @returns {unknown} The reconstructed value if it matches a known type, otherwise the original value.\n */\n// eslint-disable-next-line local-rules/prefer-object-params\nexport const jsonReviver = (_key: string, value: unknown): unknown => {\n const mapValue = <T>(key: string): T => (value as Record<string, T>)[key];\n\n if (nonNullish(value) && typeof value === 'object' && JSON_KEY_BIGINT in value) {\n return BigInt(mapValue(JSON_KEY_BIGINT));\n }\n\n return value;\n};\n", "import {DOCKER_CONTAINER_WEB_URL} from '../constants/container.constants';\nimport type {Environment} from '../types/env';\nimport type {\n SetPageViewsRequest,\n SetPerformanceMetricsRequest,\n SetTrackEventsRequest\n} from '../types/orbiter';\nimport {jsonReplacer} from '../utils/dfinity/json.utils';\nimport {nonNullish} from '../utils/dfinity/nullish.utils';\n\ntype ApiPath = '/views' | '/events' | '/metrics';\n\nexport class ApiError extends Error {\n constructor(\n private readonly status: number,\n private readonly statusText: string\n ) {\n super(`[${status}] Orbiter Error: ${statusText}`);\n }\n}\n\nexport class OrbiterApi {\n readonly #apiUrl: string;\n\n constructor({container, orbiterId}: Environment) {\n const localActor = nonNullish(container) && container !== false;\n\n const hostDomain = localActor\n ? container === true\n ? DOCKER_CONTAINER_WEB_URL\n : container\n : 'https://icp0.io';\n\n const {protocol, host} = new URL(hostDomain);\n\n this.#apiUrl = `${protocol}//${orbiterId}.${host}`;\n }\n\n postPageViews = async ({request: payload}: {request: SetPageViewsRequest}): Promise<null> =>\n await this.post<SetPageViewsRequest, null>({\n path: '/views',\n payload\n });\n\n postTrackEvents = async ({request: payload}: {request: SetTrackEventsRequest}): Promise<null> =>\n await this.post<SetTrackEventsRequest, null>({\n path: '/events',\n payload\n });\n\n postPerformanceMetrics = async ({\n request: payload\n }: {\n request: SetPerformanceMetricsRequest;\n }): Promise<null> =>\n await this.post<SetPerformanceMetricsRequest, null>({\n path: '/metrics',\n payload\n });\n\n post = async <T, R>({path, payload}: {path: ApiPath; payload: T}): Promise<R> => {\n const response = await fetch(`${this.#apiUrl}${path}`, {\n method: 'POST',\n keepalive: true,\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(payload, jsonReplacer)\n });\n\n if (!response.ok) {\n throw new ApiError(response.status, response.statusText);\n }\n\n return await response.json();\n };\n}\n", "import {OrbiterApi} from '../api/orbiter.api';\nimport type {Environment} from '../types/env';\nimport type {\n SatelliteIdText,\n SetPageViewRequestEntry,\n SetPageViewsRequest,\n SetPerformanceMetricRequestEntry,\n SetPerformanceMetricsRequest,\n SetTrackEventRequestEntry,\n SetTrackEventsRequest\n} from '../types/orbiter';\n\nexport class OrbiterServices {\n readonly #env: Environment;\n readonly #api: OrbiterApi;\n\n constructor(env: Environment) {\n this.#env = env;\n this.#api = new OrbiterApi(env);\n }\n\n setPageView = async (entry: SetPageViewRequestEntry): Promise<null> => {\n const request: SetPageViewsRequest = {\n ...this.satelliteId(),\n page_views: [entry]\n };\n\n return await this.#api.postPageViews({request});\n };\n\n setTrackEvent = async (entry: SetTrackEventRequestEntry): Promise<null> => {\n const request: SetTrackEventsRequest = {\n ...this.satelliteId(),\n track_events: [entry]\n };\n\n return await this.#api.postTrackEvents({request});\n };\n\n setPerformanceMetric = async (entry: SetPerformanceMetricRequestEntry): Promise<null> => {\n const request: SetPerformanceMetricsRequest = {\n ...this.satelliteId(),\n performance_metrics: [entry]\n };\n\n return await this.#api.postPerformanceMetrics({request});\n };\n\n private satelliteId(): {satellite_id: SatelliteIdText} {\n return {\n satellite_id: this.#env.satelliteId\n };\n }\n}\n", "export const nowInBigIntNanoSeconds = (): bigint => BigInt(Date.now()) * BigInt(1e6);\n", "import type {AnalyticKey, SetPageViewPayload} from '../types/orbiter';\nimport {nowInBigIntNanoSeconds} from './date.utils';\nimport {isEmptyString, isNullish, nonNullish, notEmptyString} from './dfinity/nullish.utils';\n\nexport const timestamp = (): Pick<AnalyticKey, 'collected_at'> => ({\n collected_at: nowInBigIntNanoSeconds()\n});\n\nexport const userAgent = (): Pick<SetPageViewPayload, 'user_agent'> => {\n const {userAgent} = navigator;\n return nonNullish(userAgent) ? {user_agent: userAgent} : {};\n};\n\nexport const campaign = (): {withCampaign: boolean} & Pick<SetPageViewPayload, 'campaign'> => {\n const {\n location: {search}\n } = document;\n\n const searchParams = new URLSearchParams(search);\n\n const utm_source = searchParams.get('utm_source');\n\n if (isNullish(utm_source) || isEmptyString(utm_source)) {\n return {withCampaign: false};\n }\n\n const utm_medium = searchParams.get('utm_medium');\n const utm_campaign = searchParams.get('utm_campaign');\n const utm_term = searchParams.get('utm_term');\n const utm_content = searchParams.get('utm_content');\n\n return {\n withCampaign: true,\n campaign: {\n utm_source,\n ...(notEmptyString(utm_medium) && {utm_medium}),\n ...(notEmptyString(utm_campaign) && {utm_campaign}),\n ...(notEmptyString(utm_term) && {utm_term}),\n ...(notEmptyString(utm_content) && {utm_content})\n }\n };\n};\n", "import {nanoid} from 'nanoid';\nimport type {Metric} from 'web-vitals';\nimport type {\n NavigationTypePayload,\n PerformanceMetricNamePayload,\n SetPerformanceMetricPayload,\n SetPerformanceMetricRequestEntry,\n WebVitalsMetricPayload\n} from '../types/orbiter';\nimport {timestamp, userAgent} from '../utils/analytics.utils';\nimport {nonNullish} from '../utils/dfinity/nullish.utils';\n\ntype SessionMetric = Omit<Metric, 'navigationType'> &\n Partial<Pick<Metric, 'navigationType'>> & {sessionId: string};\n\ntype PostPerformanceMetric = (entry: SetPerformanceMetricRequestEntry) => Promise<void>;\n\nexport class PerformanceServices {\n async startPerformance({\n sessionId,\n postPerformanceMetric\n }: {\n sessionId: string;\n postPerformanceMetric: PostPerformanceMetric;\n }) {\n const {onCLS, onFCP, onINP, onLCP, onTTFB} = await import('web-vitals');\n\n const setMetric = (metric: Metric) => {\n (async () => {\n await PerformanceServices.setPerformanceMetric({\n metric: {...metric, sessionId},\n postPerformanceMetric\n });\n })();\n };\n\n onCLS(setMetric);\n onFCP(setMetric);\n onINP(setMetric);\n onLCP(setMetric);\n onTTFB(setMetric);\n }\n\n private static setPerformanceMetric = async ({\n metric,\n postPerformanceMetric\n }: {\n metric: SessionMetric;\n postPerformanceMetric: PostPerformanceMetric;\n }) => {\n const data = PerformanceServices.mapPerformanceMetric(metric);\n\n if (data === 'unknown') {\n console.warn('Performance metric ignored. Unknown metric name.', metric);\n return;\n }\n\n await postPerformanceMetric({\n key: {\n key: nanoid(),\n ...timestamp()\n },\n performance_metric: data\n });\n };\n\n private static mapPerformanceMetric({\n sessionId,\n name: metricName,\n value,\n delta,\n id,\n navigationType\n }: SessionMetric): SetPerformanceMetricPayload | 'unknown' {\n const mapMetricName = (): PerformanceMetricNamePayload | 'unknown' => {\n switch (metricName) {\n case 'CLS':\n case 'FCP':\n case 'INP':\n case 'LCP':\n case 'TTFB':\n return metricName;\n default:\n return 'unknown';\n }\n };\n\n const metric_name = mapMetricName();\n\n if (metric_name === 'unknown') {\n return metric_name;\n }\n\n const mapNavigationType = (): NavigationTypePayload | undefined => {\n switch (navigationType) {\n case 'navigate':\n return 'Navigate';\n case 'restore':\n return 'Restore';\n case 'reload':\n return 'Reload';\n case 'back-forward':\n return 'BackForward';\n case 'back-forward-cache':\n return 'BackForwardCache';\n case 'prerender':\n return 'Prerender';\n default:\n return undefined;\n }\n };\n\n const navigation_type = mapNavigationType();\n\n const data: WebVitalsMetricPayload = {\n value,\n delta,\n id,\n ...(nonNullish(navigation_type) && {navigation_type})\n };\n\n const {\n location: {href}\n } = document;\n\n const metric: SetPerformanceMetricPayload = {\n href,\n metric_name,\n session_id: sessionId,\n data: {\n WebVitalsMetric: data\n },\n ...userAgent()\n };\n\n return metric;\n }\n}\n", "import type {PageViewClientPayload} from '../types/orbiter';\nimport {isNullish} from '../utils/dfinity/nullish.utils';\n\nexport class UserAgentServices {\n async parseUserAgent(user_agent: string | undefined): Promise<PageViewClientPayload | undefined> {\n // In CI test, parsing undefined agent returns WebKit on linux\n if (isNullish(user_agent)) {\n return undefined;\n }\n\n const UAParser = await import('ua-parser-js');\n\n const parser = new UAParser.default(user_agent);\n const {browser, os, device} = parser.getResult();\n\n if (isNullish(browser.name) || isNullish(os.name)) {\n return undefined;\n }\n\n return {\n browser: browser.name,\n os: os.name,\n device: device?.type\n };\n }\n}\n", "export class InvalidPercentageError extends Error {}\nexport class NullishError extends Error {}\n\nexport const assertNonNullish: <T>(\n value: T,\n message?: string\n // eslint-disable-next-line local-rules/prefer-object-params\n) => asserts value is NonNullable<T> = <T>(value: T, message?: string): void => {\n if (value === null || value === undefined) {\n throw new NullishError(message);\n }\n};\n\n// eslint-disable-next-line local-rules/prefer-object-params\nexport const asNonNullish = <T>(value: T, message?: string): NonNullable<T> => {\n assertNonNullish(value, message);\n return value;\n};\n\nexport const assertPercentageNumber = (percentage: number) => {\n if (percentage < 0 || percentage > 100) {\n throw new InvalidPercentageError(`${percentage} is not a valid percentage number.`);\n }\n};\n", "/**\n * Checks if the current environment is a browser.\n * @returns {boolean} True if the current environment is a browser, false otherwise.\n */\nexport const isBrowser = (): boolean => typeof window !== `undefined`;\n", "import {isNullish} from './dfinity/nullish.utils';\n\nconst ORBITER_SERVICES_UNDEFINED_MSG =\n 'Unable to connect to the analytics services. Did you call `initOrbiter`?';\n\nexport const warningOrbiterServicesNotInitialized = <T>(value: T) => {\n if (isNullish(value)) {\n console.warn(ORBITER_SERVICES_UNDEFINED_MSG);\n }\n};\n", "import {nanoid} from 'nanoid';\nimport {OrbiterServices} from './services/orbiter.services';\nimport {PerformanceServices} from './services/performance.services';\nimport {UserAgentServices} from './services/user-agent.services';\nimport type {Environment} from './types/env';\nimport type {SetPageViewPayload, SetPerformanceMetricRequestEntry} from './types/orbiter';\nimport type {TrackEvent} from './types/track';\nimport {campaign, timestamp, userAgent} from './utils/analytics.utils';\nimport {assertNonNullish} from './utils/dfinity/asserts.utils';\nimport {isNullish, nonNullish} from './utils/dfinity/nullish.utils';\nimport {isBrowser} from './utils/env.utils';\nimport {warningOrbiterServicesNotInitialized} from './utils/log.utils';\n\nconst initSessionId = (): string | undefined => {\n // I faced this issue when I used the library in Docusaurus which does not implement the crypto API when server-side rendering.\n // https://github.com/ai/nanoid/issues?q=crypto+not+defined\n if (typeof crypto === 'undefined') {\n return undefined;\n }\n\n return nanoid();\n};\n\nconst sessionId = initSessionId();\n\ninterface Services {\n orbiter: OrbiterServices;\n /**\n * Developer opt-in feature.\n */\n userAgent: UserAgentServices | null;\n performance: PerformanceServices | null;\n}\n\nlet services: Services | undefined | null;\n\nexport const initServices = (env: Environment): {cleanup: () => void} => {\n services = {\n orbiter: new OrbiterServices(env),\n userAgent: env.options?.userAgentParser === true ? new UserAgentServices() : null,\n performance: env.options?.performance === true ? new PerformanceServices() : null\n };\n\n return {\n cleanup() {\n services = null;\n }\n };\n};\n\nexport const initTrackPageViews = (): {cleanup: () => void} => {\n const trackPages = async () => await trackPageViewAsync();\n\n let pushStateProxy: typeof history.pushState | null = new Proxy(history.pushState, {\n // eslint-disable-next-line local-rules/prefer-object-params\n apply: async (\n target,\n thisArg,\n argArray: [data: unknown, unused: string, url?: string | URL | null | undefined]\n ) => {\n target.apply(thisArg, argArray);\n await trackPages();\n }\n });\n\n history.pushState = pushStateProxy;\n\n addEventListener('popstate', trackPages, {passive: true});\n\n return {\n cleanup() {\n pushStateProxy = null;\n removeEventListener('popstate', trackPages, false);\n }\n };\n};\n\nconst SESSION_ID_UNDEFINED_MSG = 'No session ID initialized.';\n\nexport const setPageView = async () => {\n if (!isBrowser()) {\n return;\n }\n\n assertNonNullish(sessionId, SESSION_ID_UNDEFINED_MSG);\n\n const {\n title,\n location: {href},\n referrer\n } = document;\n const {innerWidth, innerHeight, screen: windowScreen} = window;\n const {timeZone} = Intl.DateTimeFormat().resolvedOptions();\n\n const {user_agent} = userAgent();\n const client = nonNullish(services?.userAgent)\n ? await services?.userAgent.parseUserAgent(user_agent)\n : undefined;\n\n const {withCampaign, campaign: campaignData} = campaign();\n\n // Not gracious but the goal is to manipulate strictly only when needed for performance reasons.\n const cleanHref = (): string => {\n if (!withCampaign) {\n return href;\n }\n\n try {\n const url = new URL(href);\n\n Object.keys(campaignData ?? {}).forEach((key) => url.searchParams.delete(key));\n\n return url.href;\n } catch {\n // Unlikely to happen\n return href;\n }\n };\n\n const page_view: SetPageViewPayload = {\n title,\n href: cleanHref(),\n ...(nonNullish(referrer) && referrer !== '' && {referrer}),\n device: {\n inner_width: innerWidth,\n inner_height: innerHeight,\n screen_width: windowScreen?.availWidth,\n screen_height: windowScreen?.availHeight\n },\n time_zone: timeZone,\n session_id: sessionId,\n user_agent,\n ...(nonNullish(client) && {client}),\n ...(nonNullish(campaignData) && {campaign: campaignData})\n };\n\n warningOrbiterServicesNotInitialized(services);\n\n await services?.orbiter?.setPageView({\n key: {\n key: nanoid(),\n ...timestamp()\n },\n page_view\n });\n};\n\nexport const startTrackPerformance = async () => {\n if (!isBrowser()) {\n return;\n }\n\n if (isNullish(services?.performance)) {\n return;\n }\n\n assertNonNullish(sessionId, SESSION_ID_UNDEFINED_MSG);\n\n warningOrbiterServicesNotInitialized(services);\n\n const postPerformanceMetric = async (entry: SetPerformanceMetricRequestEntry) => {\n warningOrbiterServicesNotInitialized(services);\n\n await services?.orbiter?.setPerformanceMetric(entry);\n };\n\n await services.performance.startPerformance({sessionId, postPerformanceMetric});\n};\n\n/**\n * Tracks a page view in Juno Analytics.\n *\n * This function does not return a promise, as it triggers the tracking request without awaiting its completion.\n * It is designed for fire-and-forget usage to avoid blocking application flow.\n */\nexport const trackPageView = () => {\n trackPageViewAsync();\n};\n\n/**\n * Tracks a page view in Juno Analytics.\n * @returns {Promise<void>} A promise that resolves when the page view is tracked.\n */\nexport const trackPageViewAsync = async (): Promise<void> => {\n await setPageView();\n};\n\n/**\n * Tracks a custom event in Juno Analytics.\n *\n * This function does not return a promise, as it triggers the tracking request without awaiting its completion.\n * It is designed for fire-and-forget usage to avoid blocking application flow.\n *\n * @param {TrackEvent} data - The event details.\n */\nexport const trackEvent = (data: TrackEvent) => {\n trackEventAsync(data);\n};\n\n/**\n * Tracks a custom event in Juno Analytics.\n * @param {TrackEvent} data - The event details.\n * @returns {Promise<void>} A promise that resolves when the event is tracked.\n */\nexport const trackEventAsync = async (data: TrackEvent): Promise<void> => {\n if (!isBrowser()) {\n return;\n }\n\n assertNonNullish(sessionId, SESSION_ID_UNDEFINED_MSG);\n\n warningOrbiterServicesNotInitialized(services);\n\n await services?.orbiter?.setTrackEvent({\n key: {\n key: nanoid(),\n ...timestamp()\n },\n track_event: {...data, session_id: sessionId, ...userAgent(), ...timestamp()}\n });\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["urlAlphabet", "nanoid", "size", "id", "bytes", "urlAlphabet", "DOCKER_CONTAINER_WEB_URL", "isNullish", "argument", "nonNullish", "notEmptyString", "value", "isEmptyString", "JSON_KEY_BIGINT", "jsonReplacer", "_key", "value", "ApiError", "status", "statusText", "OrbiterApi", "#apiUrl", "container", "orbiterId", "hostDomain", "nonNullish", "DOCKER_CONTAINER_WEB_URL", "protocol", "host", "payload", "path", "response", "jsonReplacer", "OrbiterServices", "#env", "#api", "env", "OrbiterApi", "entry", "request", "nowInBigIntNanoSeconds", "timestamp", "nowInBigIntNanoSeconds", "userAgent", "nonNullish", "campaign", "search", "searchParams", "utm_source", "isNullish", "isEmptyString", "utm_medium", "utm_campaign", "utm_term", "utm_content", "notEmptyString", "PerformanceServices", "_PerformanceServices", "sessionId", "postPerformanceMetric", "onCLS", "onFCP", "onINP", "onLCP", "onTTFB", "setMetric", "metric", "data", "nanoid", "timestamp", "metricName", "value", "delta", "id", "navigationType", "metric_name", "navigation_type", "nonNullish", "href", "userAgent", "UserAgentServices", "user_agent", "isNullish", "UAParser", "parser", "browser", "os", "device", "NullishError", "assertNonNullish", "value", "message", "isBrowser", "ORBITER_SERVICES_UNDEFINED_MSG", "warningOrbiterServicesNotInitialized", "value", "isNullish", "initSessionId", "nanoid", "sessionId", "services", "initServices", "env", "OrbiterServices", "UserAgentServices", "PerformanceServices", "initTrackPageViews", "trackPages", "trackPageViewAsync", "pushStateProxy", "target", "thisArg", "argArray", "SESSION_ID_UNDEFINED_MSG", "setPageView", "isBrowser", "assertNonNullish", "title", "href", "referrer", "innerWidth", "innerHeight", "windowScreen", "timeZone", "user_agent", "userAgent", "client", "nonNullish", "withCampaign", "campaignData", "campaign", "page_view", "url", "key", "warningOrbiterServicesNotInitialized", "timestamp", "startTrackPerformance", "isNullish", "postPerformanceMetric", "entry", "trackPageView", "trackEvent", "data", "trackEventAsync"]
|
|
7
|
+
}
|
package/dist/browser/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as o,b as i,c as a,d as s,e as p,f as I,g as f,h as u,i as v}from"./chunk-
|
|
1
|
+
import{a as o,b as i,c as a,d as s,e as p,f as I,g as f,h as u,i as v}from"./chunk-AY32D3XT.js";import"./chunk-YVLJX3HV.js";var d=()=>{let e=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_SATELLITE_ID??import.meta.env?.PUBLIC_SATELLITE_ID:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_SATELLITE_ID??e():e()},m=()=>{let e=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_ORBITER_ID??import.meta.env?.PUBLIC_ORBITER_ID:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_ORBITER_ID??e():e()},c=()=>{let e=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_CONTAINER??import.meta.env?.PUBLIC_CONTAINER:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_CONTAINER??e():e()};var E=e=>{let n=e?.satelliteId??d();o(n,"Satellite ID is not configured. Orbiter cannot be initialized without a target Satellite.");let t=e?.orbiterId??m();o(t,"Orbiter ID is not configured. The analytics cannot be initialized without an Orbiter.");let r=e?.container??c();return{orbiterId:t,satelliteId:n,container:r,options:e?.options}},g=e=>{let n=E(e),{cleanup:t}=i(n);s();let{cleanup:r}=a();return p(),()=>{t(),r()}};export{g as initOrbiter,u as trackEvent,v as trackEventAsync,I as trackPageView,f as trackPageViewAsync};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/browser/tracker.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as a,c as b,d as c,e as d,f as e,g as f,h as g,i as h}from"./chunk-
|
|
1
|
+
import{b as a,c as b,d as c,e as d,f as e,g as f,h as g,i as h}from"./chunk-AY32D3XT.js";import"./chunk-YVLJX3HV.js";export{a as initServices,b as initTrackPageViews,c as setPageView,d as startTrackPerformance,g as trackEvent,h as trackEventAsync,e as trackPageView,f as trackPageViewAsync};
|
|
2
2
|
//# sourceMappingURL=tracker.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"./chunk-YVLJX3HV.js";var D=-1,p=t=>{addEventListener("pageshow",e=>{e.persisted&&(D=e.timeStamp,t(e))},!0)},d=(t,e,r,n)=>{let i,s;return a=>{e.value>=0&&(a||n)&&(s=e.value-(i??0),(s||i===void 0)&&(i=e.value,e.delta=s,e.rating=((o,c)=>o>c[1]?"poor":o>c[0]?"needs-improvement":"good")(e.value,r),t(e)))}},A=t=>{requestAnimationFrame(()=>requestAnimationFrame(t))},M=()=>{let t=performance.getEntriesByType("navigation")[0];if(t&&t.responseStart>0&&t.responseStart<performance.now())return t},f=()=>M()?.activationStart??0,h=(t,e=-1)=>{let r=M(),n="navigate";return D>=0?n="back-forward-cache":r&&(document.prerendering||f()>0?n="prerender":document.wasDiscarded?n="restore":r.type&&(n=r.type.replace(/_/g,"-"))),{name:t,value:e,rating:"good",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:n}},C=new WeakMap;function F(t,e){return C.get(t)||C.set(t,new e),C.get(t)}var b=class{t;i=0;o=[];h(e){if(e.hadRecentInput)return;let r=this.o[0],n=this.o.at(-1);this.i&&r&&n&&e.startTime-n.startTime<1e3&&e.startTime-r.startTime<5e3?(this.i+=e.value,this.o.push(e)):(this.i=e.value,this.o=[e]),this.t?.(e)}},v=(t,e,r={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(t)){let n=new PerformanceObserver(i=>{queueMicrotask(()=>{e(i.getEntries())})});return n.observe({type:t,buffered:!0,...r}),n}}catch{}},k=t=>{let e=!1;return()=>{e||(t(),e=!0)}},m=-1,_=new Set,B=()=>document.visibilityState!=="hidden"||document.prerendering?1/0:0,S=t=>{if(document.visibilityState==="hidden"){if(t.type==="visibilitychange")for(let e of _)e();isFinite(m)||(m=t.type==="visibilitychange"?t.timeStamp:0,removeEventListener("prerenderingchange",S,!0))}},T=()=>{if(m<0){let t=f();m=(document.prerendering?void 0:globalThis.performance.getEntriesByType("visibility-state").find(r=>r.name==="hidden"&&r.startTime>=t)?.startTime)??B(),addEventListener("visibilitychange",S,!0),addEventListener("prerenderingchange",S,!0),p(()=>{setTimeout(()=>{m=B()})})}return{get firstHiddenTime(){return m},onHidden(t){_.add(t)}}},y=t=>{document.prerendering?addEventListener("prerenderingchange",t,!0):t()},H=[1800,3e3],z=(t,e={})=>{y(()=>{let r=T(),n,i=h("FCP"),s=v("paint",a=>{for(let o of a)o.name==="first-contentful-paint"&&(s.disconnect(),o.startTime<r.firstHiddenTime&&(i.value=Math.max(o.startTime-f(),0),i.entries.push(o),n(!0)))});s&&(n=d(t,i,H,e.reportAllChanges),p(a=>{i=h("FCP"),n=d(t,i,H,e.reportAllChanges),A(()=>{i.value=performance.now()-a.timeStamp,n(!0)})}))})},x=[.1,.25],K=(t,e={})=>{let r=T();z(k(()=>{let n,i=h("CLS",0),s=F(e,b),a=c=>{for(let l of c)s.h(l);s.i>i.value&&(i.value=s.i,i.entries=s.o,n())},o=v("layout-shift",a);o&&(n=d(t,i,x,e.reportAllChanges),r.onHidden(()=>{a(o.takeRecords()),n(!0)}),p(()=>{s.i=0,i=h("CLS",0),n=d(t,i,x,e.reportAllChanges),A(n)}),setTimeout(n))}))},W=0,L=1/0,g=0,G=t=>{for(let e of t)e.interactionId&&(L=Math.min(L,e.interactionId),g=Math.max(g,e.interactionId),W=g?(g-L)/7+1:0)},E,N=()=>E?W:performance.interactionCount??0,J=()=>{"interactionCount"in performance||E||(E=v("event",G,{durationThreshold:0}))},R=0,P=class{l=[];u=new Map;m;p;v(){R=N(),this.l.length=0,this.u.clear()}T(){let e=Math.min(this.l.length-1,Math.floor((N()-R)/50));return this.l[e]}h(e){if(this.m?.(e),!e.interactionId&&e.entryType!=="first-input")return;let r=this.l.at(-1),n=this.u.get(e.interactionId);if(n||this.l.length<10||e.duration>r.L){if(n?e.duration>n.L?(n.entries=[e],n.L=e.duration):e.duration===n.L&&e.startTime===n.entries[0].startTime&&n.entries.push(e):(n={id:e.interactionId,entries:[e],L:e.duration},this.u.set(n.id,n),this.l.push(n)),this.l.sort((i,s)=>s.L-i.L),this.l.length>10){let i=this.l.splice(10);for(let s of i)this.u.delete(s.id)}this.p?.(n)}}},j=t=>{let e=globalThis.requestIdleCallback||setTimeout,r=globalThis.cancelIdleCallback||clearTimeout;if(document.visibilityState==="hidden")t();else{let n=k(t),i=-1,s=()=>{r(i),n()};addEventListener("visibilitychange",s,{once:!0,capture:!0}),i=e(()=>{removeEventListener("visibilitychange",s,{capture:!0}),n()})}},q=[200,500],Q=(t,e={})=>{if(!globalThis.PerformanceEventTiming||!("interactionId"in PerformanceEventTiming.prototype))return;let r=T();y(()=>{J();let n,i=h("INP"),s=F(e,P),a=c=>{j(()=>{for(let u of c)s.h(u);let l=s.T();l&&l.L!==i.value&&(i.value=l.L,i.entries=l.entries,n())})},o=v("event",a,{durationThreshold:e.durationThreshold??40});n=d(t,i,q,e.reportAllChanges),o&&(o.observe({type:"first-input",buffered:!0}),r.onHidden(()=>{a(o.takeRecords()),n(!0)}),p(()=>{s.v(),i=h("INP"),n=d(t,i,q,e.reportAllChanges)}))})},I=class{m;h(e){this.m?.(e)}},O=[2500,4e3],U=(t,e={})=>{y(()=>{let r=T(),n,i=h("LCP"),s=F(e,I),a=c=>{e.reportAllChanges||(c=c.slice(-1));for(let l of c)s.h(l),l.startTime<r.firstHiddenTime&&(i.value=Math.max(l.startTime-f(),0),i.entries=[l],n())},o=v("largest-contentful-paint",a);if(o){n=d(t,i,O,e.reportAllChanges);let c=k(()=>{a(o.takeRecords()),o.disconnect(),n(!0)}),l=u=>{u.isTrusted&&(j(c),removeEventListener(u.type,l,{capture:!0}))};for(let u of["keydown","click","visibilitychange"])addEventListener(u,l,{capture:!0});p(u=>{i=h("LCP"),n=d(t,i,O,e.reportAllChanges),A(()=>{i.value=performance.now()-u.timeStamp,n(!0)})})}})},$=[800,1800],w=t=>{document.prerendering?y(()=>w(t)):document.readyState!=="complete"?addEventListener("load",()=>w(t),!0):setTimeout(t)},V=(t,e={})=>{let r=h("TTFB"),n=d(t,r,$,e.reportAllChanges);w(()=>{let i=M();i&&(r.value=Math.max(i.responseStart-f(),0),r.entries=[i],n(!0),p(()=>{r=h("TTFB",0),n=d(t,r,$,e.reportAllChanges),n(!0)}))})};export{x as CLSThresholds,H as FCPThresholds,q as INPThresholds,O as LCPThresholds,$ as TTFBThresholds,K as onCLS,z as onFCP,Q as onINP,U as onLCP,V as onTTFB};
|
|
2
|
+
//# sourceMappingURL=web-vitals-IB5RPD7K.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../node_modules/web-vitals/dist/web-vitals.js"],
|
|
4
|
+
"sourcesContent": ["let e=-1;const t=t=>{addEventListener(\"pageshow\",n=>{n.persisted&&(e=n.timeStamp,t(n))},!0)},n=(e,t,n,i)=>{let s,o;return r=>{t.value>=0&&(r||i)&&(o=t.value-(s??0),(o||void 0===s)&&(s=t.value,t.delta=o,t.rating=((e,t)=>e>t[1]?\"poor\":e>t[0]?\"needs-improvement\":\"good\")(t.value,n),e(t)))}},i=e=>{requestAnimationFrame(()=>requestAnimationFrame(e))},s=()=>{const e=performance.getEntriesByType(\"navigation\")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},o=()=>s()?.activationStart??0,r=(t,n=-1)=>{const i=s();let r=\"navigate\";e>=0?r=\"back-forward-cache\":i&&(document.prerendering||o()>0?r=\"prerender\":document.wasDiscarded?r=\"restore\":i.type&&(r=i.type.replace(/_/g,\"-\")));return{name:t,value:n,rating:\"good\",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:r}},c=new WeakMap;function a(e,t){return c.get(e)||c.set(e,new t),c.get(e)}class d{t;i=0;o=[];h(e){if(e.hadRecentInput)return;const t=this.o[0],n=this.o.at(-1);this.i&&t&&n&&e.startTime-n.startTime<1e3&&e.startTime-t.startTime<5e3?(this.i+=e.value,this.o.push(e)):(this.i=e.value,this.o=[e]),this.t?.(e)}}const h=(e,t,n={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(e)){const i=new PerformanceObserver(e=>{queueMicrotask(()=>{t(e.getEntries())})});return i.observe({type:e,buffered:!0,...n}),i}}catch{}},f=e=>{let t=!1;return()=>{t||(e(),t=!0)}};let l=-1;const u=new Set,m=()=>\"hidden\"!==document.visibilityState||document.prerendering?1/0:0,g=e=>{if(\"hidden\"===document.visibilityState){if(\"visibilitychange\"===e.type)for(const e of u)e();isFinite(l)||(l=\"visibilitychange\"===e.type?e.timeStamp:0,removeEventListener(\"prerenderingchange\",g,!0))}},p=()=>{if(l<0){const e=o(),n=document.prerendering?void 0:globalThis.performance.getEntriesByType(\"visibility-state\").find(t=>\"hidden\"===t.name&&t.startTime>=e)?.startTime;l=n??m(),addEventListener(\"visibilitychange\",g,!0),addEventListener(\"prerenderingchange\",g,!0),t(()=>{setTimeout(()=>{l=m()})})}return{get firstHiddenTime(){return l},onHidden(e){u.add(e)}}},v=e=>{document.prerendering?addEventListener(\"prerenderingchange\",e,!0):e()},y=[1800,3e3],T=(e,s={})=>{v(()=>{const c=p();let a,d=r(\"FCP\");const f=h(\"paint\",e=>{for(const t of e)\"first-contentful-paint\"===t.name&&(f.disconnect(),t.startTime<c.firstHiddenTime&&(d.value=Math.max(t.startTime-o(),0),d.entries.push(t),a(!0)))});f&&(a=n(e,d,y,s.reportAllChanges),t(t=>{d=r(\"FCP\"),a=n(e,d,y,s.reportAllChanges),i(()=>{d.value=performance.now()-t.timeStamp,a(!0)})}))})},E=[.1,.25],b=(e,s={})=>{const o=p();T(f(()=>{let c,f=r(\"CLS\",0);const l=a(s,d),u=e=>{for(const t of e)l.h(t);l.i>f.value&&(f.value=l.i,f.entries=l.o,c())},m=h(\"layout-shift\",u);m&&(c=n(e,f,E,s.reportAllChanges),o.onHidden(()=>{u(m.takeRecords()),c(!0)}),t(()=>{l.i=0,f=r(\"CLS\",0),c=n(e,f,E,s.reportAllChanges),i(c)}),setTimeout(c))}))};let L=0,P=1/0,_=0;const M=e=>{for(const t of e)t.interactionId&&(P=Math.min(P,t.interactionId),_=Math.max(_,t.interactionId),L=_?(_-P)/7+1:0)};let w;const C=()=>w?L:performance.interactionCount??0,I=()=>{\"interactionCount\"in performance||w||(w=h(\"event\",M,{durationThreshold:0}))};let F=0;class k{l=[];u=new Map;m;p;v(){F=C(),this.l.length=0,this.u.clear()}T(){const e=Math.min(this.l.length-1,Math.floor((C()-F)/50));return this.l[e]}h(e){if(this.m?.(e),!e.interactionId&&\"first-input\"!==e.entryType)return;const t=this.l.at(-1);let n=this.u.get(e.interactionId);if(n||this.l.length<10||e.duration>t.L){if(n?e.duration>n.L?(n.entries=[e],n.L=e.duration):e.duration===n.L&&e.startTime===n.entries[0].startTime&&n.entries.push(e):(n={id:e.interactionId,entries:[e],L:e.duration},this.u.set(n.id,n),this.l.push(n)),this.l.sort((e,t)=>t.L-e.L),this.l.length>10){const e=this.l.splice(10);for(const t of e)this.u.delete(t.id)}this.p?.(n)}}}const A=e=>{const t=globalThis.requestIdleCallback||setTimeout,n=globalThis.cancelIdleCallback||clearTimeout;if(\"hidden\"===document.visibilityState)e();else{const i=f(e);let s=-1;const o=()=>{n(s),i()};addEventListener(\"visibilitychange\",o,{once:!0,capture:!0}),s=t(()=>{removeEventListener(\"visibilitychange\",o,{capture:!0}),i()})}},B=[200,500],S=(e,i={})=>{if(!globalThis.PerformanceEventTiming||!(\"interactionId\"in PerformanceEventTiming.prototype))return;const s=p();v(()=>{I();let o,c=r(\"INP\");const d=a(i,k),f=e=>{A(()=>{for(const t of e)d.h(t);const t=d.T();t&&t.L!==c.value&&(c.value=t.L,c.entries=t.entries,o())})},l=h(\"event\",f,{durationThreshold:i.durationThreshold??40});o=n(e,c,B,i.reportAllChanges),l&&(l.observe({type:\"first-input\",buffered:!0}),s.onHidden(()=>{f(l.takeRecords()),o(!0)}),t(()=>{d.v(),c=r(\"INP\"),o=n(e,c,B,i.reportAllChanges)}))})};class q{m;h(e){this.m?.(e)}}const N=[2500,4e3],x=(e,s={})=>{v(()=>{const c=p();let d,l=r(\"LCP\");const u=a(s,q),m=e=>{s.reportAllChanges||(e=e.slice(-1));for(const t of e)u.h(t),t.startTime<c.firstHiddenTime&&(l.value=Math.max(t.startTime-o(),0),l.entries=[t],d())},g=h(\"largest-contentful-paint\",m);if(g){d=n(e,l,N,s.reportAllChanges);const o=f(()=>{m(g.takeRecords()),g.disconnect(),d(!0)}),c=e=>{e.isTrusted&&(A(o),removeEventListener(e.type,c,{capture:!0}))};for(const e of[\"keydown\",\"click\",\"visibilitychange\"])addEventListener(e,c,{capture:!0});t(t=>{l=r(\"LCP\"),d=n(e,l,N,s.reportAllChanges),i(()=>{l.value=performance.now()-t.timeStamp,d(!0)})})}})},H=[800,1800],O=e=>{document.prerendering?v(()=>O(e)):\"complete\"!==document.readyState?addEventListener(\"load\",()=>O(e),!0):setTimeout(e)},$=(e,i={})=>{let c=r(\"TTFB\"),a=n(e,c,H,i.reportAllChanges);O(()=>{const d=s();d&&(c.value=Math.max(d.responseStart-o(),0),c.entries=[d],a(!0),t(()=>{c=r(\"TTFB\",0),a=n(e,c,H,i.reportAllChanges),a(!0)}))})};export{E as CLSThresholds,y as FCPThresholds,B as INPThresholds,N as LCPThresholds,H as TTFBThresholds,b as onCLS,T as onFCP,S as onINP,x as onLCP,$ as onTTFB};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["e", "t", "n", "i", "s", "o", "r", "c", "a", "d", "h", "f", "l", "u", "m", "g", "p", "v", "y", "T", "E", "b", "L", "P", "_", "M", "w", "C", "I", "F", "k", "A", "B", "S", "q", "N", "x", "H", "O", "$"]
|
|
7
|
+
}
|
package/dist/node/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createRequire as topLevelCreateRequire } from 'module';
|
|
2
2
|
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
-
var Ht=Object.create;var Re=Object.defineProperty;var Wt=Object.getOwnPropertyDescriptor;var $t=Object.getOwnPropertyNames;var Gt=Object.getPrototypeOf,Xt=Object.prototype.hasOwnProperty;var Kt=(t,e)=>()=>(t&&(e=t(t=0)),e);var Yt=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Zt=(t,e)=>{for(var c in e)Re(t,c,{get:e[c],enumerable:!0})},Jt=(t,e,c,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let l of $t(e))!Xt.call(t,l)&&l!==c&&Re(t,l,{get:()=>e[l],enumerable:!(o=Wt(e,l))||o.enumerable});return t};var Qt=(t,e,c)=>(c=t!=null?Ht(Gt(t)):{},Jt(e||!t||!t.__esModule?Re(c,"default",{value:t,enumerable:!0}):c,t));var Nt={};Zt(Nt,{CLSThresholds:()=>Ue,FCPThresholds:()=>Be,INPThresholds:()=>ze,LCPThresholds:()=>je,TTFBThresholds:()=>He,onCLS:()=>ri,onFCP:()=>St,onINP:()=>ai,onLCP:()=>si,onTTFB:()=>ci});function Xe(t,e){return Oe.get(t)||Oe.set(t,new e),Oe.get(t)}var Et,H,A,$e,Ge,te,O,Oe,Le,ie,Ke,j,xt,Pt,qe,fe,he,Be,St,Ue,ri,_t,Ce,be,ni,Ve,kt,oi,Tt,De,It,ze,ai,Fe,je,si,He,We,ci,Mt=Kt(()=>{Et=-1,H=t=>{addEventListener("pageshow",(e=>{e.persisted&&(Et=e.timeStamp,t(e))}),!0)},A=(t,e,c,o)=>{let l,d;return b=>{e.value>=0&&(b||o)&&(d=e.value-(l??0),(d||l===void 0)&&(l=e.value,e.delta=d,e.rating=((y,g)=>y>g[1]?"poor":y>g[0]?"needs-improvement":"good")(e.value,c),t(e)))}},$e=t=>{requestAnimationFrame((()=>requestAnimationFrame((()=>t()))))},Ge=()=>{let t=performance.getEntriesByType("navigation")[0];if(t&&t.responseStart>0&&t.responseStart<performance.now())return t},te=()=>Ge()?.activationStart??0,O=(t,e=-1)=>{let c=Ge(),o="navigate";return Et>=0?o="back-forward-cache":c&&(document.prerendering||te()>0?o="prerender":document.wasDiscarded?o="restore":c.type&&(o=c.type.replace(/_/g,"-"))),{name:t,value:e,rating:"good",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:o}},Oe=new WeakMap;Le=class{t;i=0;o=[];h(e){if(e.hadRecentInput)return;let c=this.o[0],o=this.o.at(-1);this.i&&c&&o&&e.startTime-o.startTime<1e3&&e.startTime-c.startTime<5e3?(this.i+=e.value,this.o.push(e)):(this.i=e.value,this.o=[e]),this.t?.(e)}},ie=(t,e,c={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(t)){let o=new PerformanceObserver((l=>{Promise.resolve().then((()=>{e(l.getEntries())}))}));return o.observe({type:t,buffered:!0,...c}),o}}catch{}},Ke=t=>{let e=!1;return()=>{e||(t(),e=!0)}},j=-1,xt=new Set,Pt=()=>document.visibilityState!=="hidden"||document.prerendering?1/0:0,qe=t=>{if(document.visibilityState==="hidden"){if(t.type==="visibilitychange")for(let e of xt)e();isFinite(j)||(j=t.type==="visibilitychange"?t.timeStamp:0,removeEventListener("prerenderingchange",qe,!0))}},fe=()=>{if(j<0){let t=te();j=(document.prerendering?void 0:globalThis.performance.getEntriesByType("visibility-state").filter((c=>c.name==="hidden"&&c.startTime>t))[0]?.startTime)??Pt(),addEventListener("visibilitychange",qe,!0),addEventListener("prerenderingchange",qe,!0),H((()=>{setTimeout((()=>{j=Pt()}))}))}return{get firstHiddenTime(){return j},onHidden(t){xt.add(t)}}},he=t=>{document.prerendering?addEventListener("prerenderingchange",(()=>t()),!0):t()},Be=[1800,3e3],St=(t,e={})=>{he((()=>{let c=fe(),o,l=O("FCP"),d=ie("paint",(b=>{for(let y of b)y.name==="first-contentful-paint"&&(d.disconnect(),y.startTime<c.firstHiddenTime&&(l.value=Math.max(y.startTime-te(),0),l.entries.push(y),o(!0)))}));d&&(o=A(t,l,Be,e.reportAllChanges),H((b=>{l=O("FCP"),o=A(t,l,Be,e.reportAllChanges),$e((()=>{l.value=performance.now()-b.timeStamp,o(!0)}))})))}))},Ue=[.1,.25],ri=(t,e={})=>{let c=fe();St(Ke((()=>{let o,l=O("CLS",0),d=Xe(e,Le),b=g=>{for(let k of g)d.h(k);d.i>l.value&&(l.value=d.i,l.entries=d.o,o())},y=ie("layout-shift",b);y&&(o=A(t,l,Ue,e.reportAllChanges),c.onHidden((()=>{b(y.takeRecords()),o(!0)})),H((()=>{d.i=0,l=O("CLS",0),o=A(t,l,Ue,e.reportAllChanges),$e((()=>o()))})),setTimeout(o))})))},_t=0,Ce=1/0,be=0,ni=t=>{for(let e of t)e.interactionId&&(Ce=Math.min(Ce,e.interactionId),be=Math.max(be,e.interactionId),_t=be?(be-Ce)/7+1:0)},kt=()=>Ve?_t:performance.interactionCount??0,oi=()=>{"interactionCount"in performance||Ve||(Ve=ie("event",ni,{type:"event",buffered:!0,durationThreshold:0}))},Tt=0,De=class{u=[];l=new Map;m;p;v(){Tt=kt(),this.u.length=0,this.l.clear()}L(){let e=Math.min(this.u.length-1,Math.floor((kt()-Tt)/50));return this.u[e]}h(e){if(this.m?.(e),!e.interactionId&&e.entryType!=="first-input")return;let c=this.u.at(-1),o=this.l.get(e.interactionId);if(o||this.u.length<10||e.duration>c.P){if(o?e.duration>o.P?(o.entries=[e],o.P=e.duration):e.duration===o.P&&e.startTime===o.entries[0].startTime&&o.entries.push(e):(o={id:e.interactionId,entries:[e],P:e.duration},this.l.set(o.id,o),this.u.push(o)),this.u.sort(((l,d)=>d.P-l.P)),this.u.length>10){let l=this.u.splice(10);for(let d of l)this.l.delete(d.id)}this.p?.(o)}}},It=t=>{let e=globalThis.requestIdleCallback||setTimeout;document.visibilityState==="hidden"?t():(t=Ke(t),addEventListener("visibilitychange",t,{once:!0,capture:!0}),e((()=>{t(),removeEventListener("visibilitychange",t,{capture:!0})})))},ze=[200,500],ai=(t,e={})=>{if(!globalThis.PerformanceEventTiming||!("interactionId"in PerformanceEventTiming.prototype))return;let c=fe();he((()=>{oi();let o,l=O("INP"),d=Xe(e,De),b=g=>{It((()=>{for(let i of g)d.h(i);let k=d.L();k&&k.P!==l.value&&(l.value=k.P,l.entries=k.entries,o())}))},y=ie("event",b,{durationThreshold:e.durationThreshold??40});o=A(t,l,ze,e.reportAllChanges),y&&(y.observe({type:"first-input",buffered:!0}),c.onHidden((()=>{b(y.takeRecords()),o(!0)})),H((()=>{d.v(),l=O("INP"),o=A(t,l,ze,e.reportAllChanges)})))}))},Fe=class{m;h(e){this.m?.(e)}},je=[2500,4e3],si=(t,e={})=>{he((()=>{let c=fe(),o,l=O("LCP"),d=Xe(e,Fe),b=g=>{e.reportAllChanges||(g=g.slice(-1));for(let k of g)d.h(k),k.startTime<c.firstHiddenTime&&(l.value=Math.max(k.startTime-te(),0),l.entries=[k],o())},y=ie("largest-contentful-paint",b);if(y){o=A(t,l,je,e.reportAllChanges);let g=Ke((()=>{b(y.takeRecords()),y.disconnect(),o(!0)})),k=i=>{i.isTrusted&&(It(g),removeEventListener(i.type,k,{capture:!0}))};for(let i of["keydown","click","visibilitychange"])addEventListener(i,k,{capture:!0});H((i=>{l=O("LCP"),o=A(t,l,je,e.reportAllChanges),$e((()=>{l.value=performance.now()-i.timeStamp,o(!0)}))}))}}))},He=[800,1800],We=t=>{document.prerendering?he((()=>We(t))):document.readyState!=="complete"?addEventListener("load",(()=>We(t)),!0):setTimeout(t)},ci=(t,e={})=>{let c=O("TTFB"),o=A(t,c,He,e.reportAllChanges);We((()=>{let l=Ge();l&&(c.value=Math.max(l.responseStart-te(),0),c.entries=[l],o(!0),H((()=>{c=O("TTFB",0),o=A(t,c,He,e.reportAllChanges),o(!0)})))}))}});var Rt=Yt((re,ve)=>{(function(t,e){"use strict";var c="1.0.41",o="",l="?",d="function",b="undefined",y="object",g="string",k="major",i="model",a="name",r="type",n="vendor",s="version",N="architecture",$="console",m="mobile",p="tablet",T="smarttv",E="wearable",G="embedded",ke=500,oe="Amazon",B="Apple",et="ASUS",tt="BlackBerry",ae="Browser",se="Chrome",Vt="Edge",ce="Firefox",le="Google",it="Honor",rt="Huawei",Dt="Lenovo",ue="LG",Te="Microsoft",Ee="Motorola",xe="Nvidia",nt="OnePlus",X="Opera",Se="OPPO",K="Samsung",ot="Sharp",Y="Sony",_e="Xiaomi",Ie="Zebra",at="Facebook",st="Chromium OS",ct="Mac OS",lt=" Browser",zt=function(f,h){var w={};for(var P in f)h[P]&&h[P].length%2===0?w[P]=h[P].concat(f[P]):w[P]=f[P];return w},de=function(f){for(var h={},w=0;w<f.length;w++)h[f[w].toUpperCase()]=f[w];return h},ut=function(f,h){return typeof f===g?Z(h).indexOf(Z(f))!==-1:!1},Z=function(f){return f.toLowerCase()},Ft=function(f){return typeof f===g?f.replace(/[^\d\.]/g,o).split(".")[0]:e},Ne=function(f,h){if(typeof f===g)return f=f.replace(/^\s\s*/,o),typeof h===b?f:f.substring(0,ke)},J=function(f,h){for(var w=0,P,C,M,v,u,R;w<h.length&&!u;){var Me=h[w],pt=h[w+1];for(P=C=0;P<Me.length&&!u&&Me[P];)if(u=Me[P++].exec(f),u)for(M=0;M<pt.length;M++)R=u[++C],v=pt[M],typeof v===y&&v.length>0?v.length===2?typeof v[1]==d?this[v[0]]=v[1].call(this,R):this[v[0]]=v[1]:v.length===3?typeof v[1]===d&&!(v[1].exec&&v[1].test)?this[v[0]]=R?v[1].call(this,R,v[2]):e:this[v[0]]=R?R.replace(v[1],v[2]):e:v.length===4&&(this[v[0]]=R?v[3].call(this,R.replace(v[1],v[2])):e):this[v]=R||e;w+=2}},Q=function(f,h){for(var w in h)if(typeof h[w]===y&&h[w].length>0){for(var P=0;P<h[w].length;P++)if(ut(h[w][P],f))return w===l?e:w}else if(ut(h[w],f))return w===l?e:w;return h.hasOwnProperty("*")?h["*"]:f},jt={"1.0":"/8","1.2":"/1","1.3":"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"},dt={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2","8.1":"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},mt={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[s,[a,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[s,[a,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[a,s],[/opios[\/ ]+([\w\.]+)/i],[s,[a,X+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[s,[a,X+" GX"]],[/\bopr\/([\w\.]+)/i],[s,[a,X]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[s,[a,"Baidu"]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[s,[a,"Maxthon"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon)\/([-\w\.]+)/i,/(heytap|ovi|115)browser\/([\d\.]+)/i,/(weibo)__([\d\.]+)/i],[a,s],[/quark(?:pc)?\/([-\w\.]+)/i],[s,[a,"Quark"]],[/\bddg\/([\w\.]+)/i],[s,[a,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[s,[a,"UC"+ae]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[s,[a,"WeChat"]],[/konqueror\/([\w\.]+)/i],[s,[a,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[s,[a,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[s,[a,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[s,[a,"Smart Lenovo "+ae]],[/(avast|avg)\/([\w\.]+)/i],[[a,/(.+)/,"$1 Secure "+ae],s],[/\bfocus\/([\w\.]+)/i],[s,[a,ce+" Focus"]],[/\bopt\/([\w\.]+)/i],[s,[a,X+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[s,[a,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[s,[a,"Dolphin"]],[/coast\/([\w\.]+)/i],[s,[a,X+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[s,[a,"MIUI"+lt]],[/fxios\/([\w\.-]+)/i],[s,[a,ce]],[/\bqihoobrowser\/?([\w\.]*)/i],[s,[a,"360"]],[/\b(qq)\/([\w\.]+)/i],[[a,/(.+)/,"$1Browser"],s],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[a,/(.+)/,"$1"+lt],s],[/samsungbrowser\/([\w\.]+)/i],[s,[a,K+" Internet"]],[/metasr[\/ ]?([\d\.]+)/i],[s,[a,"Sogou Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[a,"Sogou Mobile"],s],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[a,s],[/(lbbrowser|rekonq)/i,/\[(linkedin)app\]/i],[a],[/ome\/([\w\.]+) \w* ?(iron) saf/i,/ome\/([\w\.]+).+qihu (360)[es]e/i],[s,a],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[a,at],s],[/(Klarna)\/([\w\.]+)/i,/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/(daum)apps[\/ ]([\w\.]+)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(chromium|instagram|snapchat)[\/ ]([-\w\.]+)/i],[a,s],[/\bgsa\/([\w\.]+) .*safari\//i],[s,[a,"GSA"]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[s,[a,"TikTok"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[s,[a,se+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[a,se+" WebView"],s],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[s,[a,"Android "+ae]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[a,s],[/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],[s,[a,"Mobile Safari"]],[/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],[s,a],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[a,[s,Q,jt]],[/(webkit|khtml)\/([\w\.]+)/i],[a,s],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[a,"Netscape"],s],[/(wolvic|librewolf)\/([\w\.]+)/i],[a,s],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[s,[a,ce+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/\b(links) \(([\w\.]+)/i],[a,[s,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[a,[s,/master.|lts./,""]]],cpu:[[/\b((amd|x|x86[-_]?|wow|win)64)\b/i],[[N,"amd64"]],[/(ia32(?=;))/i,/\b((i[346]|x)86)(pc)?\b/i],[[N,"ia32"]],[/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i],[[N,"arm64"]],[/\b(arm(v[67])?ht?n?[fl]p?)\b/i],[[N,"armhf"]],[/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i],[[N,"arm"]],[/((ppc|powerpc)(64)?)( mac|;|\))/i],[[N,/ower/,o,Z]],[/ sun4\w[;\)]/i],[[N,"sparc"]],[/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i],[[N,Z]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[i,[n,K],[r,p]],[/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]((?!sm-[lr])[-\w]+)/i,/sec-(sgh\w+)/i],[i,[n,K],[r,m]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[i,[n,B],[r,m]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[i,[n,B],[r,p]],[/(macintosh);/i],[i,[n,B]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[i,[n,ot],[r,m]],[/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i],[i,[n,it],[r,p]],[/honor([-\w ]+)[;\)]/i],[i,[n,it],[r,m]],[/\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i],[i,[n,rt],[r,p]],[/(?:huawei)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[i,[n,rt],[r,m]],[/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,/\b((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i],[[i,/_/g," "],[n,_e],[r,p]],[/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i,/ ([\w ]+) miui\/v?\d/i],[[i,/_/g," "],[n,_e],[r,m]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[i,[n,Se],[r,m]],[/\b(opd2(\d{3}a?))(?: bui|\))/i],[i,[n,Q,{OnePlus:["304","403","203"],"*":Se}],[r,p]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[i,[n,"Vivo"],[r,m]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[i,[n,"Realme"],[r,m]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto(?! 360)[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[i,[n,Ee],[r,m]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[i,[n,Ee],[r,p]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[i,[n,ue],[r,p]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv|watch)\w+)/i,/\blg-?([\d\w]+) bui/i],[i,[n,ue],[r,m]],[/(ideatab[-\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\d{3,4}(?:f[cu]|xu|[av])|yt\d?-[jx]?\d+[lfmx])( bui|;|\)|\/)/i,/lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i],[i,[n,Dt],[r,p]],[/(nokia) (t[12][01])/i],[n,i,[r,p]],[/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,/nokia[-_ ]?(([-\w\. ]*))/i],[[i,/_/g," "],[r,m],[n,"Nokia"]],[/(pixel (c|tablet))\b/i],[i,[n,le],[r,p]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[i,[n,le],[r,m]],[/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[i,[n,Y],[r,m]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[i,"Xperia Tablet"],[n,Y],[r,p]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[i,[n,nt],[r,m]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[i,[n,oe],[r,p]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[i,/(.+)/g,"Fire Phone $1"],[n,oe],[r,m]],[/(playbook);[-\w\),; ]+(rim)/i],[i,n,[r,p]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[i,[n,tt],[r,m]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[i,[n,et],[r,p]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[i,[n,et],[r,m]],[/(nexus 9)/i],[i,[n,"HTC"],[r,p]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[n,[i,/_/g," "],[r,m]],[/droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])\w*(\)| bui)/i],[i,[n,"TCL"],[r,p]],[/(itel) ((\w+))/i],[[n,Z],i,[r,Q,{tablet:["p10001l","w7001"],"*":"mobile"}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[i,[n,"Acer"],[r,p]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[i,[n,"Meizu"],[r,m]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[i,[n,"Ulefone"],[r,m]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[i,[n,"Energizer"],[r,m]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[i,[n,"Cat"],[r,m]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[i,[n,"Smartfren"],[r,m]],[/droid.+; (a(?:015|06[35]|142p?))/i],[i,[n,"Nothing"],[r,m]],[/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,/archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i],[i,[n,"Archos"],[r,p]],[/archos ([\w ]+)( b|\))/i,/; (ac[3-6]\d\w{2,8})( b|\))/i],[i,[n,"Archos"],[r,m]],[/(imo) (tab \w+)/i,/(infinix) (x1101b?)/i],[n,i,[r,p]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|infinix|tecno|micromax|advan)[-_ ]?([-\w]*)/i,/; (hmd|imo) ([\w ]+?)(?: bui|\))/i,/(hp) ([\w ]+\w)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i,/(oppo) ?([\w ]+) bui/i],[n,i,[r,m]],[/(kobo)\s(ereader|touch)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[n,i,[r,p]],[/(surface duo)/i],[i,[n,Te],[r,p]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[i,[n,"Fairphone"],[r,m]],[/(u304aa)/i],[i,[n,"AT&T"],[r,m]],[/\bsie-(\w*)/i],[i,[n,"Siemens"],[r,m]],[/\b(rct\w+) b/i],[i,[n,"RCA"],[r,p]],[/\b(venue[\d ]{2,7}) b/i],[i,[n,"Dell"],[r,p]],[/\b(q(?:mv|ta)\w+) b/i],[i,[n,"Verizon"],[r,p]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[i,[n,"Barnes & Noble"],[r,p]],[/\b(tm\d{3}\w+) b/i],[i,[n,"NuVision"],[r,p]],[/\b(k88) b/i],[i,[n,"ZTE"],[r,p]],[/\b(nx\d{3}j) b/i],[i,[n,"ZTE"],[r,m]],[/\b(gen\d{3}) b.+49h/i],[i,[n,"Swiss"],[r,m]],[/\b(zur\d{3}) b/i],[i,[n,"Swiss"],[r,p]],[/\b((zeki)?tb.*\b) b/i],[i,[n,"Zeki"],[r,p]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[n,"Dragon Touch"],i,[r,p]],[/\b(ns-?\w{0,9}) b/i],[i,[n,"Insignia"],[r,p]],[/\b((nxa|next)-?\w{0,9}) b/i],[i,[n,"NextBook"],[r,p]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[n,"Voice"],i,[r,m]],[/\b(lvtel\-)?(v1[12]) b/i],[[n,"LvTel"],i,[r,m]],[/\b(ph-1) /i],[i,[n,"Essential"],[r,m]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[i,[n,"Envizen"],[r,p]],[/\b(trio[-\w\. ]+) b/i],[i,[n,"MachSpeed"],[r,p]],[/\btu_(1491) b/i],[i,[n,"Rotor"],[r,p]],[/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i],[i,[n,xe],[r,p]],[/(sprint) (\w+)/i],[n,i,[r,m]],[/(kin\.[onetw]{3})/i],[[i,/\./g," "],[n,Te],[r,m]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[i,[n,Ie],[r,p]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[i,[n,Ie],[r,m]],[/smart-tv.+(samsung)/i],[n,[r,T]],[/hbbtv.+maple;(\d+)/i],[[i,/^/,"SmartTV"],[n,K],[r,T]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[n,ue],[r,T]],[/(apple) ?tv/i],[n,[i,B+" TV"],[r,T]],[/crkey/i],[[i,se+"cast"],[n,le],[r,T]],[/droid.+aft(\w+)( bui|\))/i],[i,[n,oe],[r,T]],[/(shield \w+ tv)/i],[i,[n,xe],[r,T]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[i,[n,ot],[r,T]],[/(bravia[\w ]+)( bui|\))/i],[i,[n,Y],[r,T]],[/(mi(tv|box)-?\w+) bui/i],[i,[n,_e],[r,T]],[/Hbbtv.*(technisat) (.*);/i],[n,i,[r,T]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[n,Ne],[i,Ne],[r,T]],[/droid.+; ([\w- ]+) (?:android tv|smart[- ]?tv)/i],[i,[r,T]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[r,T]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[n,i,[r,$]],[/droid.+; (shield)( bui|\))/i],[i,[n,xe],[r,$]],[/(playstation \w+)/i],[i,[n,Y],[r,$]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[i,[n,Te],[r,$]],[/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i],[i,[n,K],[r,E]],[/((pebble))app/i,/(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i],[n,i,[r,E]],[/(ow(?:19|20)?we?[1-3]{1,3})/i],[i,[n,Se],[r,E]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[i,[n,B],[r,E]],[/(opwwe\d{3})/i],[i,[n,nt],[r,E]],[/(moto 360)/i],[i,[n,Ee],[r,E]],[/(smartwatch 3)/i],[i,[n,Y],[r,E]],[/(g watch r)/i],[i,[n,ue],[r,E]],[/droid.+; (wt63?0{2,3})\)/i],[i,[n,Ie],[r,E]],[/droid.+; (glass) \d/i],[i,[n,le],[r,E]],[/(pico) (4|neo3(?: link|pro)?)/i],[n,i,[r,E]],[/; (quest( \d| pro)?)/i],[i,[n,at],[r,E]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[n,[r,G]],[/(aeobc)\b/i],[i,[n,oe],[r,G]],[/(homepod).+mac os/i],[i,[n,B],[r,G]],[/windows iot/i],[[r,G]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i],[i,[r,m]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[i,[r,p]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[r,p]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[r,m]],[/droid .+?; ([\w\. -]+)( bui|\))/i],[i,[n,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[s,[a,Vt+"HTML"]],[/(arkweb)\/([\w\.]+)/i],[a,s],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[s,[a,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[a,s],[/ladybird\//i],[[a,"LibWeb"]],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[s,a]],os:[[/microsoft (windows) (vista|xp)/i],[a,s],[/(windows (?:phone(?: os)?|mobile|iot))[\/ ]?([\d\.\w ]*)/i],[a,[s,Q,dt]],[/windows nt 6\.2; (arm)/i,/windows[\/ ]([ntce\d\. ]+\w)(?!.+xbox)/i,/(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[s,Q,dt],[a,"Windows"]],[/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[s,/_/g,"."],[a,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[a,ct],[s,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[s,a],[/(ubuntu) ([\w\.]+) like android/i],[[a,/(.+)/,"$1 Touch"],s],[/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen|webos)\w*[-\/; ]?([\d\.]*)/i],[a,s],[/\(bb(10);/i],[s,[a,tt]],[/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i],[s,[a,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[s,[a,ce+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[s,[a,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[s,[a,"watchOS"]],[/crkey\/([\d\.]+)/i],[s,[a,se+"cast"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[a,st],s],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux)(?: arm\w*| x86\w*| ?)([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[a,s],[/(sunos) ?([\w\.\d]*)/i],[[a,"Solaris"],s],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[a,s]]},x=function(f,h){if(typeof f===y&&(h=f,f=e),!(this instanceof x))return new x(f,h).getResult();var w=typeof t!==b&&t.navigator?t.navigator:e,P=f||(w&&w.userAgent?w.userAgent:o),C=w&&w.userAgentData?w.userAgentData:e,M=h?zt(mt,h):mt,v=w&&w.userAgent==P;return this.getBrowser=function(){var u={};return u[a]=e,u[s]=e,J.call(u,P,M.browser),u[k]=Ft(u[s]),v&&w&&w.brave&&typeof w.brave.isBrave==d&&(u[a]="Brave"),u},this.getCPU=function(){var u={};return u[N]=e,J.call(u,P,M.cpu),u},this.getDevice=function(){var u={};return u[n]=e,u[i]=e,u[r]=e,J.call(u,P,M.device),v&&!u[r]&&C&&C.mobile&&(u[r]=m),v&&u[i]=="Macintosh"&&w&&typeof w.standalone!==b&&w.maxTouchPoints&&w.maxTouchPoints>2&&(u[i]="iPad",u[r]=p),u},this.getEngine=function(){var u={};return u[a]=e,u[s]=e,J.call(u,P,M.engine),u},this.getOS=function(){var u={};return u[a]=e,u[s]=e,J.call(u,P,M.os),v&&!u[a]&&C&&C.platform&&C.platform!="Unknown"&&(u[a]=C.platform.replace(/chrome os/i,st).replace(/macos/i,ct)),u},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return P},this.setUA=function(u){return P=typeof u===g&&u.length>ke?Ne(u,ke):u,this},this.setUA(P),this};x.VERSION=c,x.BROWSER=de([a,s,k]),x.CPU=de([N]),x.DEVICE=de([i,n,r,$,m,T,p,E,G]),x.ENGINE=x.OS=de([a,s]),typeof re!==b?(typeof ve!==b&&ve.exports&&(re=ve.exports=x),re.UAParser=x):typeof define===d&&define.amd?define(function(){return x}):typeof t!==b&&(t.UAParser=x);var U=typeof t!==b&&(t.jQuery||t.Zepto);if(U&&!U.ua){var me=new x;U.ua=me.getResult(),U.ua.get=function(){return me.getUA()},U.ua.set=function(f){me.setUA(f);var h=me.getResult();for(var w in h)U.ua[w]=h[w]}}})(typeof window=="object"?window:re)});import{webcrypto as bt}from"node:crypto";var wt="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var ei=128,L,V;function ti(t){!L||L.length<t?(L=Buffer.allocUnsafe(t*ei),bt.getRandomValues(L),V=0):V+t>L.length&&(bt.getRandomValues(L),V=0),V+=t}function D(t=21){ti(t|=0);let e="";for(let c=V-t;c<V;c++)e+=wt[L[c]&63];return e}var ft="http://localhost:5987";var I=t=>t==null,S=t=>!I(t),z=t=>S(t)&&t!=="",ht=t=>!z(t);var ii="__bigint__",gt=(t,e)=>typeof e=="bigint"?{[ii]:`${e}`}:e;var Ae=class extends Error{constructor(c,o){super(`[${c}] Orbiter Error: ${o}`);this.status=c;this.statusText=o}},pe=class{#e;constructor({container:e,orbiterId:c}){let l=S(e)&&e!==!1?e===!0?ft:e:"https://icp0.io",{protocol:d,host:b}=new URL(l);this.#e=`${d}//${c}.${b}`}postPageViews=async({request:e})=>await this.post({path:"/views",payload:e});postTrackEvents=async({request:e})=>await this.post({path:"/events",payload:e});postPerformanceMetrics=async({request:e})=>await this.post({path:"/metrics",payload:e});post=async({path:e,payload:c})=>{let o=await fetch(`${this.#e}${e}`,{method:"POST",keepalive:!0,headers:{"Content-Type":"application/json"},body:JSON.stringify(c,gt)});if(!o.ok)throw new Ae(o.status,o.statusText);return await o.json()}};var we=class{#e;#t;constructor(e){this.#e=e,this.#t=new pe(e)}setPageView=async e=>{let c={...this.satelliteId(),page_views:[e]};return await this.#t.postPageViews({request:c})};setTrackEvent=async e=>{let c={...this.satelliteId(),track_events:[e]};return await this.#t.postTrackEvents({request:c})};setPerformanceMetric=async e=>{let c={...this.satelliteId(),performance_metrics:[e]};return await this.#t.postPerformanceMetrics({request:c})};satelliteId(){return{satellite_id:this.#e.satelliteId}}};var vt=()=>BigInt(Date.now())*BigInt(1e6);var F=()=>({collected_at:vt()}),ee=()=>{let{userAgent:t}=navigator;return S(t)?{user_agent:t}:{}},yt=()=>{let{location:{search:t}}=document,e=new URLSearchParams(t),c=e.get("utm_source");if(I(c)||ht(c))return{withCampaign:!1};let o=e.get("utm_medium"),l=e.get("utm_campaign"),d=e.get("utm_term"),b=e.get("utm_content");return{withCampaign:!0,campaign:{utm_source:c,...z(o)&&{utm_medium:o},...z(l)&&{utm_campaign:l},...z(d)&&{utm_term:d},...z(b)&&{utm_content:b}}}};var ge=class t{async startPerformance({sessionId:e,postPerformanceMetric:c}){let{onCLS:o,onFCP:l,onINP:d,onLCP:b,onTTFB:y}=await Promise.resolve().then(()=>(Mt(),Nt)),g=k=>{(async()=>await t.setPerformanceMetric({metric:{...k,sessionId:e},postPerformanceMetric:c}))()};o(g),l(g),d(g),b(g),y(g)}static setPerformanceMetric=async({metric:e,postPerformanceMetric:c})=>{let o=t.mapPerformanceMetric(e);if(o==="unknown"){console.warn("Performance metric ignored. Unknown metric name.",e);return}await c({key:{key:D(),...F()},performance_metric:o})};static mapPerformanceMetric({sessionId:e,name:c,value:o,delta:l,id:d,navigationType:b}){let g=(()=>{switch(c){case"CLS":case"FCP":case"INP":case"LCP":case"TTFB":return c;default:return"unknown"}})();if(g==="unknown")return g;let i=(()=>{switch(b){case"navigate":return"Navigate";case"restore":return"Restore";case"reload":return"Reload";case"back-forward":return"BackForward";case"back-forward-cache":return"BackForwardCache";case"prerender":return"Prerender";default:return}})(),a={value:o,delta:l,id:d,...S(i)&&{navigation_type:i}},{location:{href:r}}=document;return{href:r,metric_name:g,session_id:e,data:{WebVitalsMetric:a},...ee()}}};var ye=class{async parseUserAgent(e){if(I(e))return;let c=await Promise.resolve().then(()=>Qt(Rt(),1)),o=new c.default(e),{browser:l,os:d,device:b}=o.getResult();if(!(I(l.name)||I(d.name)))return{browser:l.name,os:d.name,device:b?.type}}};var Ye=class extends Error{},q=(t,e)=>{if(t==null)throw new Ye(e)};var Pe=()=>typeof window<"u";var li="Unable to connect to the analytics services. Did you call `initOrbiter`?",ne=t=>{I(t)&&console.warn(li)};var ui=()=>{if(!(typeof crypto>"u"))return D()},W=ui(),_,At=t=>(_={orbiter:new we(t),userAgent:t.options?.userAgentParser===!0?new ye:null,performance:t.options?.performance===!0?new ge:null},{cleanup(){_=null}}),Ot=()=>{let t=async()=>await Qe(),e=new Proxy(history.pushState,{apply:async(c,o,l)=>{c.apply(o,l),await t()}});return history.pushState=e,addEventListener("popstate",t,{passive:!0}),{cleanup(){e=null,removeEventListener("popstate",t,!1)}}},Ze="No session ID initialized.",Je=async()=>{if(!Pe())return;q(W,Ze);let{title:t,location:{href:e},referrer:c}=document,{innerWidth:o,innerHeight:l,screen:d}=window,{timeZone:b}=Intl.DateTimeFormat().resolvedOptions(),{user_agent:y}=ee(),g=S(_?.userAgent)?await _?.userAgent.parseUserAgent(y):void 0,{withCampaign:k,campaign:i}=yt(),r={title:t,href:(()=>{if(!k)return e;try{let n=new URL(e);return Object.keys(i??{}).forEach(s=>n.searchParams.delete(s)),n.href}catch{return e}})(),...S(c)&&c!==""&&{referrer:c},device:{inner_width:o,inner_height:l,screen_width:d?.availWidth,screen_height:d?.availHeight},time_zone:b,session_id:W,user_agent:y,...S(g)&&{client:g},...S(i)&&{campaign:i}};ne(_),await _?.orbiter?.setPageView({key:{key:D(),...F()},page_view:r})},Ct=async()=>{if(!Pe()||I(_?.performance))return;q(W,Ze),ne(_);let t=async e=>{ne(_),await _?.orbiter?.setPerformanceMetric(e)};await _.performance.startPerformance({sessionId:W,postPerformanceMetric:t})},di=()=>{Qe()},Qe=async()=>{await Je()},mi=t=>{Lt(t)},Lt=async t=>{Pe()&&(q(W,Ze),ne(_),await _?.orbiter?.setTrackEvent({key:{key:D(),...F()},track_event:{...t,session_id:W,...ee(),...F()}}))};var qt=()=>{let t=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_SATELLITE_ID??import.meta.env?.PUBLIC_SATELLITE_ID:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_SATELLITE_ID??t():t()},Bt=()=>{let t=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_ORBITER_ID??import.meta.env?.PUBLIC_ORBITER_ID:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_ORBITER_ID??t():t()},Ut=()=>{let t=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_CONTAINER??import.meta.env?.PUBLIC_CONTAINER:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_CONTAINER??t():t()};var pi=t=>{let e=t?.satelliteId??qt();q(e,"Satellite ID is not configured. Orbiter cannot be initialized without a target Satellite.");let c=t?.orbiterId??Bt();q(c,"Orbiter ID is not configured. The analytics cannot be initialized without an Orbiter.");let o=t?.container??Ut();return{orbiterId:c,satelliteId:e,container:o,options:t?.options}},rr=t=>{let e=pi(t),{cleanup:c}=At(e);Je();let{cleanup:o}=Ot();return Ct(),()=>{c(),o()}};export{rr as initOrbiter,mi as trackEvent,Lt as trackEventAsync,di as trackPageView,Qe as trackPageViewAsync};
|
|
3
|
+
var Ht=Object.create;var Re=Object.defineProperty;var Wt=Object.getOwnPropertyDescriptor;var $t=Object.getOwnPropertyNames;var Gt=Object.getPrototypeOf,Xt=Object.prototype.hasOwnProperty;var Kt=(t,e)=>()=>(t&&(e=t(t=0)),e);var Yt=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Zt=(t,e)=>{for(var s in e)Re(t,s,{get:e[s],enumerable:!0})},Jt=(t,e,s,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let l of $t(e))!Xt.call(t,l)&&l!==s&&Re(t,l,{get:()=>e[l],enumerable:!(o=Wt(e,l))||o.enumerable});return t};var Qt=(t,e,s)=>(s=t!=null?Ht(Gt(t)):{},Jt(e||!t||!t.__esModule?Re(s,"default",{value:t,enumerable:!0}):s,t));var Nt={};Zt(Nt,{CLSThresholds:()=>Ue,FCPThresholds:()=>Be,INPThresholds:()=>ze,LCPThresholds:()=>je,TTFBThresholds:()=>He,onCLS:()=>ri,onFCP:()=>St,onINP:()=>ai,onLCP:()=>si,onTTFB:()=>ci});function Xe(t,e){return Oe.get(t)||Oe.set(t,new e),Oe.get(t)}var Et,H,A,$e,Ge,te,O,Oe,Le,ie,Ke,j,xt,kt,qe,fe,he,Be,St,Ue,ri,_t,Ce,be,ni,Ve,Tt,oi,Pt,De,It,ze,ai,Fe,je,si,He,We,ci,Mt=Kt(()=>{Et=-1,H=t=>{addEventListener("pageshow",e=>{e.persisted&&(Et=e.timeStamp,t(e))},!0)},A=(t,e,s,o)=>{let l,d;return b=>{e.value>=0&&(b||o)&&(d=e.value-(l??0),(d||l===void 0)&&(l=e.value,e.delta=d,e.rating=((y,g)=>y>g[1]?"poor":y>g[0]?"needs-improvement":"good")(e.value,s),t(e)))}},$e=t=>{requestAnimationFrame(()=>requestAnimationFrame(t))},Ge=()=>{let t=performance.getEntriesByType("navigation")[0];if(t&&t.responseStart>0&&t.responseStart<performance.now())return t},te=()=>Ge()?.activationStart??0,O=(t,e=-1)=>{let s=Ge(),o="navigate";return Et>=0?o="back-forward-cache":s&&(document.prerendering||te()>0?o="prerender":document.wasDiscarded?o="restore":s.type&&(o=s.type.replace(/_/g,"-"))),{name:t,value:e,rating:"good",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:o}},Oe=new WeakMap;Le=class{t;i=0;o=[];h(e){if(e.hadRecentInput)return;let s=this.o[0],o=this.o.at(-1);this.i&&s&&o&&e.startTime-o.startTime<1e3&&e.startTime-s.startTime<5e3?(this.i+=e.value,this.o.push(e)):(this.i=e.value,this.o=[e]),this.t?.(e)}},ie=(t,e,s={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(t)){let o=new PerformanceObserver(l=>{queueMicrotask(()=>{e(l.getEntries())})});return o.observe({type:t,buffered:!0,...s}),o}}catch{}},Ke=t=>{let e=!1;return()=>{e||(t(),e=!0)}},j=-1,xt=new Set,kt=()=>document.visibilityState!=="hidden"||document.prerendering?1/0:0,qe=t=>{if(document.visibilityState==="hidden"){if(t.type==="visibilitychange")for(let e of xt)e();isFinite(j)||(j=t.type==="visibilitychange"?t.timeStamp:0,removeEventListener("prerenderingchange",qe,!0))}},fe=()=>{if(j<0){let t=te();j=(document.prerendering?void 0:globalThis.performance.getEntriesByType("visibility-state").find(s=>s.name==="hidden"&&s.startTime>=t)?.startTime)??kt(),addEventListener("visibilitychange",qe,!0),addEventListener("prerenderingchange",qe,!0),H(()=>{setTimeout(()=>{j=kt()})})}return{get firstHiddenTime(){return j},onHidden(t){xt.add(t)}}},he=t=>{document.prerendering?addEventListener("prerenderingchange",t,!0):t()},Be=[1800,3e3],St=(t,e={})=>{he(()=>{let s=fe(),o,l=O("FCP"),d=ie("paint",b=>{for(let y of b)y.name==="first-contentful-paint"&&(d.disconnect(),y.startTime<s.firstHiddenTime&&(l.value=Math.max(y.startTime-te(),0),l.entries.push(y),o(!0)))});d&&(o=A(t,l,Be,e.reportAllChanges),H(b=>{l=O("FCP"),o=A(t,l,Be,e.reportAllChanges),$e(()=>{l.value=performance.now()-b.timeStamp,o(!0)})}))})},Ue=[.1,.25],ri=(t,e={})=>{let s=fe();St(Ke(()=>{let o,l=O("CLS",0),d=Xe(e,Le),b=g=>{for(let T of g)d.h(T);d.i>l.value&&(l.value=d.i,l.entries=d.o,o())},y=ie("layout-shift",b);y&&(o=A(t,l,Ue,e.reportAllChanges),s.onHidden(()=>{b(y.takeRecords()),o(!0)}),H(()=>{d.i=0,l=O("CLS",0),o=A(t,l,Ue,e.reportAllChanges),$e(o)}),setTimeout(o))}))},_t=0,Ce=1/0,be=0,ni=t=>{for(let e of t)e.interactionId&&(Ce=Math.min(Ce,e.interactionId),be=Math.max(be,e.interactionId),_t=be?(be-Ce)/7+1:0)},Tt=()=>Ve?_t:performance.interactionCount??0,oi=()=>{"interactionCount"in performance||Ve||(Ve=ie("event",ni,{durationThreshold:0}))},Pt=0,De=class{l=[];u=new Map;m;p;v(){Pt=Tt(),this.l.length=0,this.u.clear()}T(){let e=Math.min(this.l.length-1,Math.floor((Tt()-Pt)/50));return this.l[e]}h(e){if(this.m?.(e),!e.interactionId&&e.entryType!=="first-input")return;let s=this.l.at(-1),o=this.u.get(e.interactionId);if(o||this.l.length<10||e.duration>s.L){if(o?e.duration>o.L?(o.entries=[e],o.L=e.duration):e.duration===o.L&&e.startTime===o.entries[0].startTime&&o.entries.push(e):(o={id:e.interactionId,entries:[e],L:e.duration},this.u.set(o.id,o),this.l.push(o)),this.l.sort((l,d)=>d.L-l.L),this.l.length>10){let l=this.l.splice(10);for(let d of l)this.u.delete(d.id)}this.p?.(o)}}},It=t=>{let e=globalThis.requestIdleCallback||setTimeout,s=globalThis.cancelIdleCallback||clearTimeout;if(document.visibilityState==="hidden")t();else{let o=Ke(t),l=-1,d=()=>{s(l),o()};addEventListener("visibilitychange",d,{once:!0,capture:!0}),l=e(()=>{removeEventListener("visibilitychange",d,{capture:!0}),o()})}},ze=[200,500],ai=(t,e={})=>{if(!globalThis.PerformanceEventTiming||!("interactionId"in PerformanceEventTiming.prototype))return;let s=fe();he(()=>{oi();let o,l=O("INP"),d=Xe(e,De),b=g=>{It(()=>{for(let i of g)d.h(i);let T=d.T();T&&T.L!==l.value&&(l.value=T.L,l.entries=T.entries,o())})},y=ie("event",b,{durationThreshold:e.durationThreshold??40});o=A(t,l,ze,e.reportAllChanges),y&&(y.observe({type:"first-input",buffered:!0}),s.onHidden(()=>{b(y.takeRecords()),o(!0)}),H(()=>{d.v(),l=O("INP"),o=A(t,l,ze,e.reportAllChanges)}))})},Fe=class{m;h(e){this.m?.(e)}},je=[2500,4e3],si=(t,e={})=>{he(()=>{let s=fe(),o,l=O("LCP"),d=Xe(e,Fe),b=g=>{e.reportAllChanges||(g=g.slice(-1));for(let T of g)d.h(T),T.startTime<s.firstHiddenTime&&(l.value=Math.max(T.startTime-te(),0),l.entries=[T],o())},y=ie("largest-contentful-paint",b);if(y){o=A(t,l,je,e.reportAllChanges);let g=Ke(()=>{b(y.takeRecords()),y.disconnect(),o(!0)}),T=i=>{i.isTrusted&&(It(g),removeEventListener(i.type,T,{capture:!0}))};for(let i of["keydown","click","visibilitychange"])addEventListener(i,T,{capture:!0});H(i=>{l=O("LCP"),o=A(t,l,je,e.reportAllChanges),$e(()=>{l.value=performance.now()-i.timeStamp,o(!0)})})}})},He=[800,1800],We=t=>{document.prerendering?he(()=>We(t)):document.readyState!=="complete"?addEventListener("load",()=>We(t),!0):setTimeout(t)},ci=(t,e={})=>{let s=O("TTFB"),o=A(t,s,He,e.reportAllChanges);We(()=>{let l=Ge();l&&(s.value=Math.max(l.responseStart-te(),0),s.entries=[l],o(!0),H(()=>{s=O("TTFB",0),o=A(t,s,He,e.reportAllChanges),o(!0)}))})}});var Rt=Yt((re,ve)=>{(function(t,e){"use strict";var s="1.0.41",o="",l="?",d="function",b="undefined",y="object",g="string",T="major",i="model",a="name",r="type",n="vendor",c="version",N="architecture",$="console",m="mobile",p="tablet",P="smarttv",E="wearable",G="embedded",Te=500,oe="Amazon",B="Apple",et="ASUS",tt="BlackBerry",ae="Browser",se="Chrome",Vt="Edge",ce="Firefox",le="Google",it="Honor",rt="Huawei",Dt="Lenovo",de="LG",Pe="Microsoft",Ee="Motorola",xe="Nvidia",nt="OnePlus",X="Opera",Se="OPPO",K="Samsung",ot="Sharp",Y="Sony",_e="Xiaomi",Ie="Zebra",at="Facebook",st="Chromium OS",ct="Mac OS",lt=" Browser",zt=function(f,h){var w={};for(var k in f)h[k]&&h[k].length%2===0?w[k]=h[k].concat(f[k]):w[k]=f[k];return w},ue=function(f){for(var h={},w=0;w<f.length;w++)h[f[w].toUpperCase()]=f[w];return h},dt=function(f,h){return typeof f===g?Z(h).indexOf(Z(f))!==-1:!1},Z=function(f){return f.toLowerCase()},Ft=function(f){return typeof f===g?f.replace(/[^\d\.]/g,o).split(".")[0]:e},Ne=function(f,h){if(typeof f===g)return f=f.replace(/^\s\s*/,o),typeof h===b?f:f.substring(0,Te)},J=function(f,h){for(var w=0,k,C,M,v,u,R;w<h.length&&!u;){var Me=h[w],pt=h[w+1];for(k=C=0;k<Me.length&&!u&&Me[k];)if(u=Me[k++].exec(f),u)for(M=0;M<pt.length;M++)R=u[++C],v=pt[M],typeof v===y&&v.length>0?v.length===2?typeof v[1]==d?this[v[0]]=v[1].call(this,R):this[v[0]]=v[1]:v.length===3?typeof v[1]===d&&!(v[1].exec&&v[1].test)?this[v[0]]=R?v[1].call(this,R,v[2]):e:this[v[0]]=R?R.replace(v[1],v[2]):e:v.length===4&&(this[v[0]]=R?v[3].call(this,R.replace(v[1],v[2])):e):this[v]=R||e;w+=2}},Q=function(f,h){for(var w in h)if(typeof h[w]===y&&h[w].length>0){for(var k=0;k<h[w].length;k++)if(dt(h[w][k],f))return w===l?e:w}else if(dt(h[w],f))return w===l?e:w;return h.hasOwnProperty("*")?h["*"]:f},jt={"1.0":"/8","1.2":"/1","1.3":"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"},ut={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2","8.1":"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},mt={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[c,[a,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[c,[a,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[a,c],[/opios[\/ ]+([\w\.]+)/i],[c,[a,X+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[c,[a,X+" GX"]],[/\bopr\/([\w\.]+)/i],[c,[a,X]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[c,[a,"Baidu"]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[c,[a,"Maxthon"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon)\/([-\w\.]+)/i,/(heytap|ovi|115)browser\/([\d\.]+)/i,/(weibo)__([\d\.]+)/i],[a,c],[/quark(?:pc)?\/([-\w\.]+)/i],[c,[a,"Quark"]],[/\bddg\/([\w\.]+)/i],[c,[a,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[c,[a,"UC"+ae]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[c,[a,"WeChat"]],[/konqueror\/([\w\.]+)/i],[c,[a,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[c,[a,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[c,[a,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[c,[a,"Smart Lenovo "+ae]],[/(avast|avg)\/([\w\.]+)/i],[[a,/(.+)/,"$1 Secure "+ae],c],[/\bfocus\/([\w\.]+)/i],[c,[a,ce+" Focus"]],[/\bopt\/([\w\.]+)/i],[c,[a,X+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[c,[a,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[c,[a,"Dolphin"]],[/coast\/([\w\.]+)/i],[c,[a,X+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[c,[a,"MIUI"+lt]],[/fxios\/([\w\.-]+)/i],[c,[a,ce]],[/\bqihoobrowser\/?([\w\.]*)/i],[c,[a,"360"]],[/\b(qq)\/([\w\.]+)/i],[[a,/(.+)/,"$1Browser"],c],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[a,/(.+)/,"$1"+lt],c],[/samsungbrowser\/([\w\.]+)/i],[c,[a,K+" Internet"]],[/metasr[\/ ]?([\d\.]+)/i],[c,[a,"Sogou Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[a,"Sogou Mobile"],c],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[a,c],[/(lbbrowser|rekonq)/i,/\[(linkedin)app\]/i],[a],[/ome\/([\w\.]+) \w* ?(iron) saf/i,/ome\/([\w\.]+).+qihu (360)[es]e/i],[c,a],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[a,at],c],[/(Klarna)\/([\w\.]+)/i,/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/(daum)apps[\/ ]([\w\.]+)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(chromium|instagram|snapchat)[\/ ]([-\w\.]+)/i],[a,c],[/\bgsa\/([\w\.]+) .*safari\//i],[c,[a,"GSA"]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[c,[a,"TikTok"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[c,[a,se+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[a,se+" WebView"],c],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[c,[a,"Android "+ae]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[a,c],[/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],[c,[a,"Mobile Safari"]],[/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],[c,a],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[a,[c,Q,jt]],[/(webkit|khtml)\/([\w\.]+)/i],[a,c],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[a,"Netscape"],c],[/(wolvic|librewolf)\/([\w\.]+)/i],[a,c],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[c,[a,ce+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/\b(links) \(([\w\.]+)/i],[a,[c,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[a,[c,/master.|lts./,""]]],cpu:[[/\b((amd|x|x86[-_]?|wow|win)64)\b/i],[[N,"amd64"]],[/(ia32(?=;))/i,/\b((i[346]|x)86)(pc)?\b/i],[[N,"ia32"]],[/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i],[[N,"arm64"]],[/\b(arm(v[67])?ht?n?[fl]p?)\b/i],[[N,"armhf"]],[/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i],[[N,"arm"]],[/((ppc|powerpc)(64)?)( mac|;|\))/i],[[N,/ower/,o,Z]],[/ sun4\w[;\)]/i],[[N,"sparc"]],[/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i],[[N,Z]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[i,[n,K],[r,p]],[/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]((?!sm-[lr])[-\w]+)/i,/sec-(sgh\w+)/i],[i,[n,K],[r,m]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[i,[n,B],[r,m]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[i,[n,B],[r,p]],[/(macintosh);/i],[i,[n,B]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[i,[n,ot],[r,m]],[/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i],[i,[n,it],[r,p]],[/honor([-\w ]+)[;\)]/i],[i,[n,it],[r,m]],[/\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i],[i,[n,rt],[r,p]],[/(?:huawei)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[i,[n,rt],[r,m]],[/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,/\b((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i],[[i,/_/g," "],[n,_e],[r,p]],[/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i,/ ([\w ]+) miui\/v?\d/i],[[i,/_/g," "],[n,_e],[r,m]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[i,[n,Se],[r,m]],[/\b(opd2(\d{3}a?))(?: bui|\))/i],[i,[n,Q,{OnePlus:["304","403","203"],"*":Se}],[r,p]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[i,[n,"Vivo"],[r,m]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[i,[n,"Realme"],[r,m]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto(?! 360)[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[i,[n,Ee],[r,m]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[i,[n,Ee],[r,p]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[i,[n,de],[r,p]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv|watch)\w+)/i,/\blg-?([\d\w]+) bui/i],[i,[n,de],[r,m]],[/(ideatab[-\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\d{3,4}(?:f[cu]|xu|[av])|yt\d?-[jx]?\d+[lfmx])( bui|;|\)|\/)/i,/lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i],[i,[n,Dt],[r,p]],[/(nokia) (t[12][01])/i],[n,i,[r,p]],[/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,/nokia[-_ ]?(([-\w\. ]*))/i],[[i,/_/g," "],[r,m],[n,"Nokia"]],[/(pixel (c|tablet))\b/i],[i,[n,le],[r,p]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[i,[n,le],[r,m]],[/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[i,[n,Y],[r,m]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[i,"Xperia Tablet"],[n,Y],[r,p]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[i,[n,nt],[r,m]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[i,[n,oe],[r,p]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[i,/(.+)/g,"Fire Phone $1"],[n,oe],[r,m]],[/(playbook);[-\w\),; ]+(rim)/i],[i,n,[r,p]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[i,[n,tt],[r,m]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[i,[n,et],[r,p]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[i,[n,et],[r,m]],[/(nexus 9)/i],[i,[n,"HTC"],[r,p]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[n,[i,/_/g," "],[r,m]],[/droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])\w*(\)| bui)/i],[i,[n,"TCL"],[r,p]],[/(itel) ((\w+))/i],[[n,Z],i,[r,Q,{tablet:["p10001l","w7001"],"*":"mobile"}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[i,[n,"Acer"],[r,p]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[i,[n,"Meizu"],[r,m]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[i,[n,"Ulefone"],[r,m]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[i,[n,"Energizer"],[r,m]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[i,[n,"Cat"],[r,m]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[i,[n,"Smartfren"],[r,m]],[/droid.+; (a(?:015|06[35]|142p?))/i],[i,[n,"Nothing"],[r,m]],[/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,/archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i],[i,[n,"Archos"],[r,p]],[/archos ([\w ]+)( b|\))/i,/; (ac[3-6]\d\w{2,8})( b|\))/i],[i,[n,"Archos"],[r,m]],[/(imo) (tab \w+)/i,/(infinix) (x1101b?)/i],[n,i,[r,p]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|infinix|tecno|micromax|advan)[-_ ]?([-\w]*)/i,/; (hmd|imo) ([\w ]+?)(?: bui|\))/i,/(hp) ([\w ]+\w)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i,/(oppo) ?([\w ]+) bui/i],[n,i,[r,m]],[/(kobo)\s(ereader|touch)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[n,i,[r,p]],[/(surface duo)/i],[i,[n,Pe],[r,p]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[i,[n,"Fairphone"],[r,m]],[/(u304aa)/i],[i,[n,"AT&T"],[r,m]],[/\bsie-(\w*)/i],[i,[n,"Siemens"],[r,m]],[/\b(rct\w+) b/i],[i,[n,"RCA"],[r,p]],[/\b(venue[\d ]{2,7}) b/i],[i,[n,"Dell"],[r,p]],[/\b(q(?:mv|ta)\w+) b/i],[i,[n,"Verizon"],[r,p]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[i,[n,"Barnes & Noble"],[r,p]],[/\b(tm\d{3}\w+) b/i],[i,[n,"NuVision"],[r,p]],[/\b(k88) b/i],[i,[n,"ZTE"],[r,p]],[/\b(nx\d{3}j) b/i],[i,[n,"ZTE"],[r,m]],[/\b(gen\d{3}) b.+49h/i],[i,[n,"Swiss"],[r,m]],[/\b(zur\d{3}) b/i],[i,[n,"Swiss"],[r,p]],[/\b((zeki)?tb.*\b) b/i],[i,[n,"Zeki"],[r,p]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[n,"Dragon Touch"],i,[r,p]],[/\b(ns-?\w{0,9}) b/i],[i,[n,"Insignia"],[r,p]],[/\b((nxa|next)-?\w{0,9}) b/i],[i,[n,"NextBook"],[r,p]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[n,"Voice"],i,[r,m]],[/\b(lvtel\-)?(v1[12]) b/i],[[n,"LvTel"],i,[r,m]],[/\b(ph-1) /i],[i,[n,"Essential"],[r,m]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[i,[n,"Envizen"],[r,p]],[/\b(trio[-\w\. ]+) b/i],[i,[n,"MachSpeed"],[r,p]],[/\btu_(1491) b/i],[i,[n,"Rotor"],[r,p]],[/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i],[i,[n,xe],[r,p]],[/(sprint) (\w+)/i],[n,i,[r,m]],[/(kin\.[onetw]{3})/i],[[i,/\./g," "],[n,Pe],[r,m]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[i,[n,Ie],[r,p]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[i,[n,Ie],[r,m]],[/smart-tv.+(samsung)/i],[n,[r,P]],[/hbbtv.+maple;(\d+)/i],[[i,/^/,"SmartTV"],[n,K],[r,P]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[n,de],[r,P]],[/(apple) ?tv/i],[n,[i,B+" TV"],[r,P]],[/crkey/i],[[i,se+"cast"],[n,le],[r,P]],[/droid.+aft(\w+)( bui|\))/i],[i,[n,oe],[r,P]],[/(shield \w+ tv)/i],[i,[n,xe],[r,P]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[i,[n,ot],[r,P]],[/(bravia[\w ]+)( bui|\))/i],[i,[n,Y],[r,P]],[/(mi(tv|box)-?\w+) bui/i],[i,[n,_e],[r,P]],[/Hbbtv.*(technisat) (.*);/i],[n,i,[r,P]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[n,Ne],[i,Ne],[r,P]],[/droid.+; ([\w- ]+) (?:android tv|smart[- ]?tv)/i],[i,[r,P]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[r,P]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[n,i,[r,$]],[/droid.+; (shield)( bui|\))/i],[i,[n,xe],[r,$]],[/(playstation \w+)/i],[i,[n,Y],[r,$]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[i,[n,Pe],[r,$]],[/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i],[i,[n,K],[r,E]],[/((pebble))app/i,/(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i],[n,i,[r,E]],[/(ow(?:19|20)?we?[1-3]{1,3})/i],[i,[n,Se],[r,E]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[i,[n,B],[r,E]],[/(opwwe\d{3})/i],[i,[n,nt],[r,E]],[/(moto 360)/i],[i,[n,Ee],[r,E]],[/(smartwatch 3)/i],[i,[n,Y],[r,E]],[/(g watch r)/i],[i,[n,de],[r,E]],[/droid.+; (wt63?0{2,3})\)/i],[i,[n,Ie],[r,E]],[/droid.+; (glass) \d/i],[i,[n,le],[r,E]],[/(pico) (4|neo3(?: link|pro)?)/i],[n,i,[r,E]],[/; (quest( \d| pro)?)/i],[i,[n,at],[r,E]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[n,[r,G]],[/(aeobc)\b/i],[i,[n,oe],[r,G]],[/(homepod).+mac os/i],[i,[n,B],[r,G]],[/windows iot/i],[[r,G]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i],[i,[r,m]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[i,[r,p]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[r,p]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[r,m]],[/droid .+?; ([\w\. -]+)( bui|\))/i],[i,[n,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[c,[a,Vt+"HTML"]],[/(arkweb)\/([\w\.]+)/i],[a,c],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[c,[a,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[a,c],[/ladybird\//i],[[a,"LibWeb"]],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[c,a]],os:[[/microsoft (windows) (vista|xp)/i],[a,c],[/(windows (?:phone(?: os)?|mobile|iot))[\/ ]?([\d\.\w ]*)/i],[a,[c,Q,ut]],[/windows nt 6\.2; (arm)/i,/windows[\/ ]([ntce\d\. ]+\w)(?!.+xbox)/i,/(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[c,Q,ut],[a,"Windows"]],[/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[c,/_/g,"."],[a,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[a,ct],[c,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[c,a],[/(ubuntu) ([\w\.]+) like android/i],[[a,/(.+)/,"$1 Touch"],c],[/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen|webos)\w*[-\/; ]?([\d\.]*)/i],[a,c],[/\(bb(10);/i],[c,[a,tt]],[/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i],[c,[a,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[c,[a,ce+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[c,[a,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[c,[a,"watchOS"]],[/crkey\/([\d\.]+)/i],[c,[a,se+"cast"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[a,st],c],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux)(?: arm\w*| x86\w*| ?)([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[a,c],[/(sunos) ?([\w\.\d]*)/i],[[a,"Solaris"],c],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[a,c]]},x=function(f,h){if(typeof f===y&&(h=f,f=e),!(this instanceof x))return new x(f,h).getResult();var w=typeof t!==b&&t.navigator?t.navigator:e,k=f||(w&&w.userAgent?w.userAgent:o),C=w&&w.userAgentData?w.userAgentData:e,M=h?zt(mt,h):mt,v=w&&w.userAgent==k;return this.getBrowser=function(){var u={};return u[a]=e,u[c]=e,J.call(u,k,M.browser),u[T]=Ft(u[c]),v&&w&&w.brave&&typeof w.brave.isBrave==d&&(u[a]="Brave"),u},this.getCPU=function(){var u={};return u[N]=e,J.call(u,k,M.cpu),u},this.getDevice=function(){var u={};return u[n]=e,u[i]=e,u[r]=e,J.call(u,k,M.device),v&&!u[r]&&C&&C.mobile&&(u[r]=m),v&&u[i]=="Macintosh"&&w&&typeof w.standalone!==b&&w.maxTouchPoints&&w.maxTouchPoints>2&&(u[i]="iPad",u[r]=p),u},this.getEngine=function(){var u={};return u[a]=e,u[c]=e,J.call(u,k,M.engine),u},this.getOS=function(){var u={};return u[a]=e,u[c]=e,J.call(u,k,M.os),v&&!u[a]&&C&&C.platform&&C.platform!="Unknown"&&(u[a]=C.platform.replace(/chrome os/i,st).replace(/macos/i,ct)),u},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return k},this.setUA=function(u){return k=typeof u===g&&u.length>Te?Ne(u,Te):u,this},this.setUA(k),this};x.VERSION=s,x.BROWSER=ue([a,c,T]),x.CPU=ue([N]),x.DEVICE=ue([i,n,r,$,m,P,p,E,G]),x.ENGINE=x.OS=ue([a,c]),typeof re!==b?(typeof ve!==b&&ve.exports&&(re=ve.exports=x),re.UAParser=x):typeof define===d&&define.amd?define(function(){return x}):typeof t!==b&&(t.UAParser=x);var U=typeof t!==b&&(t.jQuery||t.Zepto);if(U&&!U.ua){var me=new x;U.ua=me.getResult(),U.ua.get=function(){return me.getUA()},U.ua.set=function(f){me.setUA(f);var h=me.getResult();for(var w in h)U.ua[w]=h[w]}}})(typeof window=="object"?window:re)});import{webcrypto as bt}from"node:crypto";var wt="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var ei=128,L,V;function ti(t){!L||L.length<t?(L=Buffer.allocUnsafe(t*ei),bt.getRandomValues(L),V=0):V+t>L.length&&(bt.getRandomValues(L),V=0),V+=t}function D(t=21){ti(t|=0);let e="";for(let s=V-t;s<V;s++)e+=wt[L[s]&63];return e}var ft="http://localhost:5987";var I=t=>t==null,S=t=>!I(t),z=t=>S(t)&&t!=="",ht=t=>!z(t);var ii="__bigint__",gt=(t,e)=>typeof e=="bigint"?{[ii]:`${e}`}:e;var Ae=class extends Error{constructor(s,o){super(`[${s}] Orbiter Error: ${o}`);this.status=s;this.statusText=o}status;statusText},pe=class{#e;constructor({container:e,orbiterId:s}){let l=S(e)&&e!==!1?e===!0?ft:e:"https://icp0.io",{protocol:d,host:b}=new URL(l);this.#e=`${d}//${s}.${b}`}postPageViews=async({request:e})=>await this.post({path:"/views",payload:e});postTrackEvents=async({request:e})=>await this.post({path:"/events",payload:e});postPerformanceMetrics=async({request:e})=>await this.post({path:"/metrics",payload:e});post=async({path:e,payload:s})=>{let o=await fetch(`${this.#e}${e}`,{method:"POST",keepalive:!0,headers:{"Content-Type":"application/json"},body:JSON.stringify(s,gt)});if(!o.ok)throw new Ae(o.status,o.statusText);return await o.json()}};var we=class{#e;#t;constructor(e){this.#e=e,this.#t=new pe(e)}setPageView=async e=>{let s={...this.satelliteId(),page_views:[e]};return await this.#t.postPageViews({request:s})};setTrackEvent=async e=>{let s={...this.satelliteId(),track_events:[e]};return await this.#t.postTrackEvents({request:s})};setPerformanceMetric=async e=>{let s={...this.satelliteId(),performance_metrics:[e]};return await this.#t.postPerformanceMetrics({request:s})};satelliteId(){return{satellite_id:this.#e.satelliteId}}};var vt=()=>BigInt(Date.now())*BigInt(1e6);var F=()=>({collected_at:vt()}),ee=()=>{let{userAgent:t}=navigator;return S(t)?{user_agent:t}:{}},yt=()=>{let{location:{search:t}}=document,e=new URLSearchParams(t),s=e.get("utm_source");if(I(s)||ht(s))return{withCampaign:!1};let o=e.get("utm_medium"),l=e.get("utm_campaign"),d=e.get("utm_term"),b=e.get("utm_content");return{withCampaign:!0,campaign:{utm_source:s,...z(o)&&{utm_medium:o},...z(l)&&{utm_campaign:l},...z(d)&&{utm_term:d},...z(b)&&{utm_content:b}}}};var ge=class t{async startPerformance({sessionId:e,postPerformanceMetric:s}){let{onCLS:o,onFCP:l,onINP:d,onLCP:b,onTTFB:y}=await Promise.resolve().then(()=>(Mt(),Nt)),g=T=>{(async()=>await t.setPerformanceMetric({metric:{...T,sessionId:e},postPerformanceMetric:s}))()};o(g),l(g),d(g),b(g),y(g)}static setPerformanceMetric=async({metric:e,postPerformanceMetric:s})=>{let o=t.mapPerformanceMetric(e);if(o==="unknown"){console.warn("Performance metric ignored. Unknown metric name.",e);return}await s({key:{key:D(),...F()},performance_metric:o})};static mapPerformanceMetric({sessionId:e,name:s,value:o,delta:l,id:d,navigationType:b}){let g=(()=>{switch(s){case"CLS":case"FCP":case"INP":case"LCP":case"TTFB":return s;default:return"unknown"}})();if(g==="unknown")return g;let i=(()=>{switch(b){case"navigate":return"Navigate";case"restore":return"Restore";case"reload":return"Reload";case"back-forward":return"BackForward";case"back-forward-cache":return"BackForwardCache";case"prerender":return"Prerender";default:return}})(),a={value:o,delta:l,id:d,...S(i)&&{navigation_type:i}},{location:{href:r}}=document;return{href:r,metric_name:g,session_id:e,data:{WebVitalsMetric:a},...ee()}}};var ye=class{async parseUserAgent(e){if(I(e))return;let s=await Promise.resolve().then(()=>Qt(Rt(),1)),o=new s.default(e),{browser:l,os:d,device:b}=o.getResult();if(!(I(l.name)||I(d.name)))return{browser:l.name,os:d.name,device:b?.type}}};var Ye=class extends Error{},q=(t,e)=>{if(t==null)throw new Ye(e)};var ke=()=>typeof window<"u";var li="Unable to connect to the analytics services. Did you call `initOrbiter`?",ne=t=>{I(t)&&console.warn(li)};var di=()=>{if(!(typeof crypto>"u"))return D()},W=di(),_,At=t=>(_={orbiter:new we(t),userAgent:t.options?.userAgentParser===!0?new ye:null,performance:t.options?.performance===!0?new ge:null},{cleanup(){_=null}}),Ot=()=>{let t=async()=>await Qe(),e=new Proxy(history.pushState,{apply:async(s,o,l)=>{s.apply(o,l),await t()}});return history.pushState=e,addEventListener("popstate",t,{passive:!0}),{cleanup(){e=null,removeEventListener("popstate",t,!1)}}},Ze="No session ID initialized.",Je=async()=>{if(!ke())return;q(W,Ze);let{title:t,location:{href:e},referrer:s}=document,{innerWidth:o,innerHeight:l,screen:d}=window,{timeZone:b}=Intl.DateTimeFormat().resolvedOptions(),{user_agent:y}=ee(),g=S(_?.userAgent)?await _?.userAgent.parseUserAgent(y):void 0,{withCampaign:T,campaign:i}=yt(),r={title:t,href:(()=>{if(!T)return e;try{let n=new URL(e);return Object.keys(i??{}).forEach(c=>n.searchParams.delete(c)),n.href}catch{return e}})(),...S(s)&&s!==""&&{referrer:s},device:{inner_width:o,inner_height:l,screen_width:d?.availWidth,screen_height:d?.availHeight},time_zone:b,session_id:W,user_agent:y,...S(g)&&{client:g},...S(i)&&{campaign:i}};ne(_),await _?.orbiter?.setPageView({key:{key:D(),...F()},page_view:r})},Ct=async()=>{if(!ke()||I(_?.performance))return;q(W,Ze),ne(_);let t=async e=>{ne(_),await _?.orbiter?.setPerformanceMetric(e)};await _.performance.startPerformance({sessionId:W,postPerformanceMetric:t})},ui=()=>{Qe()},Qe=async()=>{await Je()},mi=t=>{Lt(t)},Lt=async t=>{ke()&&(q(W,Ze),ne(_),await _?.orbiter?.setTrackEvent({key:{key:D(),...F()},track_event:{...t,session_id:W,...ee(),...F()}}))};var qt=()=>{let t=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_SATELLITE_ID??import.meta.env?.PUBLIC_SATELLITE_ID:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_SATELLITE_ID??t():t()},Bt=()=>{let t=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_ORBITER_ID??import.meta.env?.PUBLIC_ORBITER_ID:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_ORBITER_ID??t():t()},Ut=()=>{let t=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_CONTAINER??import.meta.env?.PUBLIC_CONTAINER:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_CONTAINER??t():t()};var pi=t=>{let e=t?.satelliteId??qt();q(e,"Satellite ID is not configured. Orbiter cannot be initialized without a target Satellite.");let s=t?.orbiterId??Bt();q(s,"Orbiter ID is not configured. The analytics cannot be initialized without an Orbiter.");let o=t?.container??Ut();return{orbiterId:s,satelliteId:e,container:o,options:t?.options}},rr=t=>{let e=pi(t),{cleanup:s}=At(e);Je();let{cleanup:o}=Ot();return Ct(),()=>{s(),o()}};export{rr as initOrbiter,mi as trackEvent,Lt as trackEventAsync,ui as trackPageView,Qe as trackPageViewAsync};
|
|
4
4
|
//# sourceMappingURL=index.mjs.map
|