@junobuild/analytics
Version:
Tracker for Juno analytics
6 lines • 50.5 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../../node_modules/web-vitals/dist/web-vitals.js", "../../../../node_modules/idb-keyval/dist/index.js", "../../src/services/idb.services.ts", "../../src/index.ts", "../../src/services/analytics.services.ts", "../../../../node_modules/nanoid/index.js", "../../../../node_modules/nanoid/url-alphabet/index.js", "../../src/utils/analytics.utils.ts", "../../src/utils/date.utils.ts", "../../src/utils/log.utils.ts", "../../src/services/performance.services.ts", "../../src/utils/window.env.utils.ts"],
"sourcesContent": ["var e,n,t,r,i,o=-1,a=function(e){addEventListener(\"pageshow\",(function(n){n.persisted&&(o=n.timeStamp,e(n))}),!0)},c=function(){var e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType(\"navigation\")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},u=function(){var e=c();return e&&e.activationStart||0},f=function(e,n){var t=c(),r=\"navigate\";o>=0?r=\"back-forward-cache\":t&&(document.prerendering||u()>0?r=\"prerender\":document.wasDiscarded?r=\"restore\":t.type&&(r=t.type.replace(/_/g,\"-\")));return{name:e,value:void 0===n?-1:n,rating:\"good\",delta:0,entries:[],id:\"v4-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:r}},s=function(e,n,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var r=new PerformanceObserver((function(e){Promise.resolve().then((function(){n(e.getEntries())}))}));return r.observe(Object.assign({type:e,buffered:!0},t||{})),r}}catch(e){}},d=function(e,n,t,r){var i,o;return function(a){n.value>=0&&(a||r)&&((o=n.value-(i||0))||void 0===i)&&(i=n.value,n.delta=o,n.rating=function(e,n){return e>n[1]?\"poor\":e>n[0]?\"needs-improvement\":\"good\"}(n.value,t),e(n))}},l=function(e){requestAnimationFrame((function(){return requestAnimationFrame((function(){return e()}))}))},p=function(e){document.addEventListener(\"visibilitychange\",(function(){\"hidden\"===document.visibilityState&&e()}))},v=function(e){var n=!1;return function(){n||(e(),n=!0)}},m=-1,h=function(){return\"hidden\"!==document.visibilityState||document.prerendering?1/0:0},g=function(e){\"hidden\"===document.visibilityState&&m>-1&&(m=\"visibilitychange\"===e.type?e.timeStamp:0,T())},y=function(){addEventListener(\"visibilitychange\",g,!0),addEventListener(\"prerenderingchange\",g,!0)},T=function(){removeEventListener(\"visibilitychange\",g,!0),removeEventListener(\"prerenderingchange\",g,!0)},E=function(){return m<0&&(m=h(),y(),a((function(){setTimeout((function(){m=h(),y()}),0)}))),{get firstHiddenTime(){return m}}},C=function(e){document.prerendering?addEventListener(\"prerenderingchange\",(function(){return e()}),!0):e()},b=[1800,3e3],S=function(e,n){n=n||{},C((function(){var t,r=E(),i=f(\"FCP\"),o=s(\"paint\",(function(e){e.forEach((function(e){\"first-contentful-paint\"===e.name&&(o.disconnect(),e.startTime<r.firstHiddenTime&&(i.value=Math.max(e.startTime-u(),0),i.entries.push(e),t(!0)))}))}));o&&(t=d(e,i,b,n.reportAllChanges),a((function(r){i=f(\"FCP\"),t=d(e,i,b,n.reportAllChanges),l((function(){i.value=performance.now()-r.timeStamp,t(!0)}))})))}))},L=[.1,.25],w=function(e,n){n=n||{},S(v((function(){var t,r=f(\"CLS\",0),i=0,o=[],c=function(e){e.forEach((function(e){if(!e.hadRecentInput){var n=o[0],t=o[o.length-1];i&&e.startTime-t.startTime<1e3&&e.startTime-n.startTime<5e3?(i+=e.value,o.push(e)):(i=e.value,o=[e])}})),i>r.value&&(r.value=i,r.entries=o,t())},u=s(\"layout-shift\",c);u&&(t=d(e,r,L,n.reportAllChanges),p((function(){c(u.takeRecords()),t(!0)})),a((function(){i=0,r=f(\"CLS\",0),t=d(e,r,L,n.reportAllChanges),l((function(){return t()}))})),setTimeout(t,0))})))},A=0,I=1/0,P=0,M=function(e){e.forEach((function(e){e.interactionId&&(I=Math.min(I,e.interactionId),P=Math.max(P,e.interactionId),A=P?(P-I)/7+1:0)}))},k=function(){return e?A:performance.interactionCount||0},F=function(){\"interactionCount\"in performance||e||(e=s(\"event\",M,{type:\"event\",buffered:!0,durationThreshold:0}))},D=[],x=new Map,R=0,B=function(){var e=Math.min(D.length-1,Math.floor((k()-R)/50));return D[e]},H=[],q=function(e){if(H.forEach((function(n){return n(e)})),e.interactionId||\"first-input\"===e.entryType){var n=D[D.length-1],t=x.get(e.interactionId);if(t||D.length<10||e.duration>n.latency){if(t)e.duration>t.latency?(t.entries=[e],t.latency=e.duration):e.duration===t.latency&&e.startTime===t.entries[0].startTime&&t.entries.push(e);else{var r={id:e.interactionId,latency:e.duration,entries:[e]};x.set(r.id,r),D.push(r)}D.sort((function(e,n){return n.latency-e.latency})),D.length>10&&D.splice(10).forEach((function(e){return x.delete(e.id)}))}}},O=function(e){var n=self.requestIdleCallback||self.setTimeout,t=-1;return e=v(e),\"hidden\"===document.visibilityState?e():(t=n(e),p(e)),t},N=[200,500],j=function(e,n){\"PerformanceEventTiming\"in self&&\"interactionId\"in PerformanceEventTiming.prototype&&(n=n||{},C((function(){var t;F();var r,i=f(\"INP\"),o=function(e){O((function(){e.forEach(q);var n=B();n&&n.latency!==i.value&&(i.value=n.latency,i.entries=n.entries,r())}))},c=s(\"event\",o,{durationThreshold:null!==(t=n.durationThreshold)&&void 0!==t?t:40});r=d(e,i,N,n.reportAllChanges),c&&(c.observe({type:\"first-input\",buffered:!0}),p((function(){o(c.takeRecords()),r(!0)})),a((function(){R=k(),D.length=0,x.clear(),i=f(\"INP\"),r=d(e,i,N,n.reportAllChanges)})))})))},_=[2500,4e3],z={},G=function(e,n){n=n||{},C((function(){var t,r=E(),i=f(\"LCP\"),o=function(e){n.reportAllChanges||(e=e.slice(-1)),e.forEach((function(e){e.startTime<r.firstHiddenTime&&(i.value=Math.max(e.startTime-u(),0),i.entries=[e],t())}))},c=s(\"largest-contentful-paint\",o);if(c){t=d(e,i,_,n.reportAllChanges);var m=v((function(){z[i.id]||(o(c.takeRecords()),c.disconnect(),z[i.id]=!0,t(!0))}));[\"keydown\",\"click\"].forEach((function(e){addEventListener(e,(function(){return O(m)}),{once:!0,capture:!0})})),p(m),a((function(r){i=f(\"LCP\"),t=d(e,i,_,n.reportAllChanges),l((function(){i.value=performance.now()-r.timeStamp,z[i.id]=!0,t(!0)}))}))}}))},J=[800,1800],K=function e(n){document.prerendering?C((function(){return e(n)})):\"complete\"!==document.readyState?addEventListener(\"load\",(function(){return e(n)}),!0):setTimeout(n,0)},Q=function(e,n){n=n||{};var t=f(\"TTFB\"),r=d(e,t,J,n.reportAllChanges);K((function(){var i=c();i&&(t.value=Math.max(i.responseStart-u(),0),t.entries=[i],r(!0),a((function(){t=f(\"TTFB\",0),(r=d(e,t,J,n.reportAllChanges))(!0)})))}))},U={passive:!0,capture:!0},V=new Date,W=function(e,i){n||(n=i,t=e,r=new Date,Z(removeEventListener),X())},X=function(){if(t>=0&&t<r-V){var e={entryType:\"first-input\",name:n.type,target:n.target,cancelable:n.cancelable,startTime:n.timeStamp,processingStart:n.timeStamp+t};i.forEach((function(n){n(e)})),i=[]}},Y=function(e){if(e.cancelable){var n=(e.timeStamp>1e12?new Date:performance.now())-e.timeStamp;\"pointerdown\"==e.type?function(e,n){var t=function(){W(e,n),i()},r=function(){i()},i=function(){removeEventListener(\"pointerup\",t,U),removeEventListener(\"pointercancel\",r,U)};addEventListener(\"pointerup\",t,U),addEventListener(\"pointercancel\",r,U)}(n,e):W(n,e)}},Z=function(e){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(n){return e(n,Y,U)}))},$=[100,300],ee=function(e,r){r=r||{},C((function(){var o,c=E(),u=f(\"FID\"),l=function(e){e.startTime<c.firstHiddenTime&&(u.value=e.processingStart-e.startTime,u.entries.push(e),o(!0))},m=function(e){e.forEach(l)},h=s(\"first-input\",m);o=d(e,u,$,r.reportAllChanges),h&&(p(v((function(){m(h.takeRecords()),h.disconnect()}))),a((function(){var a;u=f(\"FID\"),o=d(e,u,$,r.reportAllChanges),i=[],t=-1,n=null,Z(addEventListener),a=l,i.push(a),X()})))}))};export{L as CLSThresholds,b as FCPThresholds,$ as FIDThresholds,N as INPThresholds,_ as LCPThresholds,J as TTFBThresholds,w as onCLS,S as onFCP,ee as onFID,j as onINP,G as onLCP,Q as onTTFB};\n", "function promisifyRequest(request) {\n return new Promise((resolve, reject) => {\n // @ts-ignore - file size hacks\n request.oncomplete = request.onsuccess = () => resolve(request.result);\n // @ts-ignore - file size hacks\n request.onabort = request.onerror = () => reject(request.error);\n });\n}\nfunction createStore(dbName, storeName) {\n const request = indexedDB.open(dbName);\n request.onupgradeneeded = () => request.result.createObjectStore(storeName);\n const dbp = promisifyRequest(request);\n return (txMode, callback) => dbp.then((db) => callback(db.transaction(storeName, txMode).objectStore(storeName)));\n}\nlet defaultGetStoreFunc;\nfunction defaultGetStore() {\n if (!defaultGetStoreFunc) {\n defaultGetStoreFunc = createStore('keyval-store', 'keyval');\n }\n return defaultGetStoreFunc;\n}\n/**\n * Get a value by its key.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction get(key, customStore = defaultGetStore()) {\n return customStore('readonly', (store) => promisifyRequest(store.get(key)));\n}\n/**\n * Set a value with a key.\n *\n * @param key\n * @param value\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction set(key, value, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.put(value, key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Set multiple values at once. This is faster than calling set() multiple times.\n * It's also atomic \u2013 if one of the pairs can't be added, none will be added.\n *\n * @param entries Array of entries, where each entry is an array of `[key, value]`.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction setMany(entries, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n entries.forEach((entry) => store.put(entry[1], entry[0]));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Get multiple values by their keys\n *\n * @param keys\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction getMany(keys, customStore = defaultGetStore()) {\n return customStore('readonly', (store) => Promise.all(keys.map((key) => promisifyRequest(store.get(key)))));\n}\n/**\n * Update a value. This lets you see the old value and update it as an atomic operation.\n *\n * @param key\n * @param updater A callback that takes the old value and returns a new value.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction update(key, updater, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => \n // Need to create the promise manually.\n // If I try to chain promises, the transaction closes in browsers\n // that use a promise polyfill (IE10/11).\n new Promise((resolve, reject) => {\n store.get(key).onsuccess = function () {\n try {\n store.put(updater(this.result), key);\n resolve(promisifyRequest(store.transaction));\n }\n catch (err) {\n reject(err);\n }\n };\n }));\n}\n/**\n * Delete a particular key from the store.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction del(key, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.delete(key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Delete multiple keys at once.\n *\n * @param keys List of keys to delete.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction delMany(keys, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n keys.forEach((key) => store.delete(key));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Clear all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction clear(customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.clear();\n return promisifyRequest(store.transaction);\n });\n}\nfunction eachCursor(store, callback) {\n store.openCursor().onsuccess = function () {\n if (!this.result)\n return;\n callback(this.result);\n this.result.continue();\n };\n return promisifyRequest(store.transaction);\n}\n/**\n * Get all keys in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction keys(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n if (store.getAllKeys) {\n return promisifyRequest(store.getAllKeys());\n }\n const items = [];\n return eachCursor(store, (cursor) => items.push(cursor.key)).then(() => items);\n });\n}\n/**\n * Get all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction values(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n if (store.getAll) {\n return promisifyRequest(store.getAll());\n }\n const items = [];\n return eachCursor(store, (cursor) => items.push(cursor.value)).then(() => items);\n });\n}\n/**\n * Get all entries in the store. Each entry is an array of `[key, value]`.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction entries(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n // (although, hopefully we'll get a simpler path some day)\n if (store.getAll && store.getAllKeys) {\n return Promise.all([\n promisifyRequest(store.getAllKeys()),\n promisifyRequest(store.getAll()),\n ]).then(([keys, values]) => keys.map((key, i) => [key, values[i]]));\n }\n const items = [];\n return customStore('readonly', (store) => eachCursor(store, (cursor) => items.push([cursor.key, cursor.value])).then(() => items));\n });\n}\n\nexport { clear, createStore, del, delMany, entries, get, getMany, keys, promisifyRequest, set, setMany, update, values };\n", "import {createStore, delMany, entries, set} from 'idb-keyval';\nimport type {IdbKey, IdbPageView, IdbPerformanceMetric, IdbTrackEvent} from '../types/idb';\n\nconst viewsStore = createStore('juno-views', 'views');\nconst eventsStore = createStore('juno-events', 'events');\nconst metricsStore = createStore('juno-metrics', 'metrics');\n\nexport const setPageView = ({key, view}: {key: IdbKey; view: IdbPageView}): Promise<void> =>\n set(key, view, viewsStore);\n\nexport const getPageViews = (): Promise<[IDBValidKey, IdbPageView][]> => entries(viewsStore);\n\nexport const delPageViews = (keys: IDBValidKey[]): Promise<void> => delMany(keys, viewsStore);\n\nexport const setTrackEvent = ({key, track}: {key: IdbKey; track: IdbTrackEvent}): Promise<void> =>\n set(key, track, eventsStore);\n\nexport const getTrackEvents = (): Promise<[IDBValidKey, IdbTrackEvent][]> => entries(eventsStore);\n\nexport const delTrackEvents = (keys: IDBValidKey[]): Promise<void> => delMany(keys, eventsStore);\n\nexport const setPerformanceMetric = ({\n key,\n view\n}: {\n key: IdbKey;\n view: IdbPerformanceMetric;\n}): Promise<void> => set(key, view, metricsStore);\n\nexport const getPerformanceMetrics = (): Promise<[IDBValidKey, IdbPerformanceMetric][]> =>\n entries(metricsStore);\n\nexport const delPerformanceMetrics = (keys: IDBValidKey[]): Promise<void> =>\n delMany(keys, metricsStore);\n", "import {assertNonNullish} from '@dfinity/utils';\nimport {\n initTrackPageViews,\n initTrackPerformance,\n initWorker,\n setPageView,\n startTracking,\n stopTracking\n} from './services/analytics.services';\nimport type {Environment, UserEnvironment} from './types/env';\nimport {envContainer, envOrbiterId, envSatelliteId} from './utils/window.env.utils';\n\nexport {trackEvent, trackPageView} from './services/analytics.services';\nexport type * from './types/env';\n\nconst parseEnv = (userEnv?: UserEnvironment): Environment => {\n const satelliteId = userEnv?.satelliteId ?? envSatelliteId();\n\n assertNonNullish(\n satelliteId,\n 'Satellite ID is not configured. Orbiter cannot be initialized without a target Satellite.'\n );\n\n const orbiterId = userEnv?.orbiterId ?? envOrbiterId();\n\n assertNonNullish(\n orbiterId,\n 'Orbiter ID is not configured. The analytics cannot be initialized without an Orbiter.'\n );\n\n const container = userEnv?.container ?? envContainer();\n\n return {\n orbiterId,\n satelliteId,\n container,\n worker: userEnv?.worker,\n options: userEnv?.options\n };\n};\n\n/**\n * Initializes the Juno Analytics.\n * @param {UserEnvironment} [userEnv] - The optional user environment configuration. If no environment is provided, the variables injected by the Vite or NextJS plugins will be used.\n * @returns {Promise<() => void>} A promise that resolves to a cleanup function that stops tracking and cleans up resources.\n */\nexport const initOrbiter = async (userEnv?: UserEnvironment): Promise<() => void> => {\n // Save first page as soon as possible\n await setPageView();\n\n const env = parseEnv(userEnv);\n\n const {cleanup: workerCleanup} = initWorker(env);\n\n const {cleanup: pushHistoryCleanup} = initTrackPageViews();\n\n await initTrackPerformance(env);\n\n // Starting tracking will instantly sync the first page and the data from previous sessions that have not been synced yet\n startTracking();\n\n return () => {\n stopTracking();\n workerCleanup();\n pushHistoryCleanup();\n };\n};\n", "import {assertNonNullish, nonNullish, toNullable} from '@dfinity/utils';\nimport {isBrowser} from '@junobuild/utils';\nimport {nanoid} from 'nanoid';\nimport type {Environment, EnvironmentWorker} from '../types/env';\nimport type {IdbPageView} from '../types/idb';\nimport type {PostMessageInitEnvData} from '../types/post-message';\nimport type {TrackEvent} from '../types/track';\nimport {timestamp, userAgent} from '../utils/analytics.utils';\nimport {warningWorkerNotInitialized} from '../utils/log.utils';\nimport {startPerformance} from './performance.services';\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\nlet worker: Worker | undefined;\n\nexport const initWorker = (env: Environment): {cleanup: () => void} => {\n const {path}: EnvironmentWorker = env.worker ?? {};\n const workerUrl = path ?? './workers/analytics.worker.js';\n\n worker = new Worker(workerUrl);\n\n const consoleWarn = () =>\n console.warn('Unable to connect to the analytics web worker. Have you deployed it?');\n\n worker?.addEventListener('error', consoleWarn, false);\n\n initWorkerEnvironment(env);\n\n return {\n cleanup() {\n worker?.removeEventListener('error', consoleWarn, false);\n }\n };\n};\n\nexport const initTrackPageViews = (): {cleanup: () => void} => {\n const trackPages = async () => await trackPageView();\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} = window;\n const {timeZone} = Intl.DateTimeFormat().resolvedOptions();\n\n const data: IdbPageView = {\n title,\n href,\n referrer: toNullable(nonNullish(referrer) && referrer !== '' ? referrer : undefined),\n device: {\n inner_width: innerWidth,\n inner_height: innerHeight\n },\n time_zone: timeZone,\n session_id: sessionId,\n ...userAgent(),\n ...timestamp()\n };\n\n const idb = await import('./idb.services');\n await idb.setPageView({\n key: nanoid(),\n view: data\n });\n};\n\nexport const initTrackPerformance = async ({options}: Environment) => {\n if (!isBrowser()) {\n return;\n }\n\n if (options?.performance === false) {\n return;\n }\n\n assertNonNullish(sessionId, SESSION_ID_UNDEFINED_MSG);\n\n await startPerformance(sessionId);\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 trackPageView = async (): Promise<void> => {\n warningWorkerNotInitialized(worker);\n\n await setPageView();\n\n worker?.postMessage({msg: 'junoTrackPageView'});\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 trackEvent = async (data: TrackEvent): Promise<void> => {\n if (!isBrowser()) {\n return;\n }\n\n assertNonNullish(sessionId, SESSION_ID_UNDEFINED_MSG);\n warningWorkerNotInitialized(worker);\n\n const idb = await import('./idb.services');\n await idb.setTrackEvent({\n key: nanoid(),\n track: {...data, session_id: sessionId, ...userAgent(), ...timestamp()}\n });\n\n worker?.postMessage({msg: 'junoTrackEvent'});\n};\n\nexport const initWorkerEnvironment = (env: PostMessageInitEnvData) => {\n warningWorkerNotInitialized(worker);\n\n worker?.postMessage({msg: 'junoInitEnvironment', data: env});\n};\n\nexport const startTracking = () => {\n warningWorkerNotInitialized(worker);\n\n worker?.postMessage({msg: 'junoStartTrackTimer'});\n};\n\nexport const stopTracking = () => {\n warningWorkerNotInitialized(worker);\n\n worker?.postMessage({msg: 'junoStopTracker'});\n};\n", "import { webcrypto as crypto } from 'node:crypto'\nimport { urlAlphabet as scopedUrlAlphabet } from './url-alphabet/index.js'\nexport { urlAlphabet } from './url-alphabet/index.js'\nconst POOL_SIZE_MULTIPLIER = 128\nlet pool, poolOffset\nfunction fillPool(bytes) {\n if (!pool || pool.length < bytes) {\n pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER)\n crypto.getRandomValues(pool)\n poolOffset = 0\n } else if (poolOffset + bytes > pool.length) {\n crypto.getRandomValues(pool)\n poolOffset = 0\n }\n poolOffset += bytes\n}\nexport function random(bytes) {\n fillPool((bytes |= 0))\n return pool.subarray(poolOffset - bytes, poolOffset)\n}\nexport function customRandom(alphabet, defaultSize, getRandom) {\n let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1\n let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let i = step\n while (i--) {\n id += alphabet[bytes[i] & mask] || ''\n if (id.length >= size) return id\n }\n }\n }\n}\nexport function customAlphabet(alphabet, size = 21) {\n return customRandom(alphabet, size, random)\n}\nexport function nanoid(size = 21) {\n fillPool((size |= 0))\n let id = ''\n for (let i = poolOffset - size; i < poolOffset; i++) {\n id += scopedUrlAlphabet[pool[i] & 63]\n }\n return id\n}\n", "export const urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n", "import {toNullable} from '@dfinity/utils';\nimport {nowInBigIntNanoSeconds} from './date.utils';\n\nexport const timestamp = (): {\n collected_at: bigint;\n updated_at: [] | [bigint];\n version: [] | [bigint];\n} => ({\n collected_at: nowInBigIntNanoSeconds(),\n updated_at: [],\n version: []\n});\n\nexport const userAgent = (): {user_agent: [] | [string]} => {\n const {userAgent} = navigator;\n return {user_agent: toNullable(userAgent)};\n};\n", "export const nowInBigIntNanoSeconds = (): bigint => BigInt(Date.now()) * BigInt(1e6);\n", "import {isNullish} from '@dfinity/utils';\n\nconst WORKER_UNDEFINED_MSG = 'Analytics worker not initialized. Did you call `initOrbiter`?';\n\nexport const warningWorkerNotInitialized = <T>(value: T) => {\n if (isNullish(value)) {\n console.warn(WORKER_UNDEFINED_MSG);\n }\n};\n", "import {toNullable} from '@dfinity/utils';\nimport {nanoid} from 'nanoid';\nimport type {Metric} from 'web-vitals';\nimport type {\n NavigationType,\n PerformanceMetricName,\n WebVitalsMetric\n} from '../../declarations/orbiter/orbiter.did';\nimport type {IdbPerformanceMetric} from '../types/idb';\nimport {timestamp, userAgent} from '../utils/analytics.utils';\n\ntype SessionMetric = Omit<Metric, 'navigationType'> &\n Partial<Pick<Metric, 'navigationType'>> & {sessionId: string};\n\nexport const startPerformance = async (sessionId: string) => {\n const {onCLS, onFCP, onINP, onLCP, onTTFB} = await import('web-vitals');\n\n const setMetric = (metric: Metric) => {\n (async () => {\n await setPerformanceMetric({...metric, sessionId});\n })();\n };\n\n onCLS(setMetric);\n onFCP(setMetric);\n onINP(setMetric);\n onLCP(setMetric);\n onTTFB(setMetric);\n};\n\nconst setPerformanceMetric = async (metric: SessionMetric) => {\n const data = mapPerformanceMetric(metric);\n\n if (data === 'unknown') {\n console.warn('Performance metric ignored. Unknown metric name.', metric);\n return;\n }\n\n if (data === 'deprecated') {\n return;\n }\n\n const idb = await import('./idb.services');\n await idb.setPerformanceMetric({\n key: nanoid(),\n view: data\n });\n};\n\nconst mapPerformanceMetric = ({\n sessionId,\n name: metricName,\n value,\n delta,\n id,\n navigationType\n}: SessionMetric): IdbPerformanceMetric | 'deprecated' | 'unknown' => {\n const mapMetricName = (): PerformanceMetricName | 'deprecated' | 'unknown' => {\n switch (metricName) {\n case 'CLS':\n return {CLS: null};\n case 'FCP':\n return {FCP: null};\n case 'INP':\n return {INP: null};\n case 'LCP':\n return {LCP: null};\n case 'TTFB':\n return {TTFB: null};\n case 'FID':\n return 'deprecated';\n default:\n return 'unknown';\n }\n };\n\n const metric_name = mapMetricName();\n\n if (metric_name === 'unknown' || metric_name === 'deprecated') {\n return metric_name;\n }\n\n const mapNavigationType = (): NavigationType | undefined => {\n switch (navigationType) {\n case 'navigate':\n return {Navigate: null};\n case 'restore':\n return {Restore: null};\n case 'reload':\n return {Reload: null};\n case 'back-forward':\n return {BackForward: null};\n case 'back-forward-cache':\n return {BackForwardCache: null};\n case 'prerender':\n return {Prerender: null};\n default:\n return undefined;\n }\n };\n\n const data: WebVitalsMetric = {\n value,\n delta,\n id,\n navigation_type: toNullable(mapNavigationType())\n };\n\n const {\n location: {href}\n } = document;\n\n const {updated_at: _, ...timestampRest} = timestamp();\n\n const metric: IdbPerformanceMetric = {\n href,\n metric_name,\n session_id: sessionId,\n data: {\n WebVitalsMetric: data\n },\n ...userAgent(),\n ...timestampRest\n };\n\n return metric;\n};\n", "// TODO: duplicated because those should not be bundled in web worker. We can avoid this by transforming utils into a library of modules.\ninterface ImportMeta {\n env: Record<string, string> | undefined;\n}\n\nexport const envSatelliteId = (): string | undefined => {\n const viteEnvSatelliteId = (): string | undefined =>\n typeof import.meta !== 'undefined' &&\n typeof (import.meta as unknown as ImportMeta).env !== 'undefined'\n ? ((import.meta as unknown as ImportMeta).env?.VITE_SATELLITE_ID ??\n (import.meta as unknown as ImportMeta).env?.PUBLIC_SATELLITE_ID)\n : undefined;\n\n return typeof process !== 'undefined'\n ? (process.env?.NEXT_PUBLIC_SATELLITE_ID ?? viteEnvSatelliteId())\n : viteEnvSatelliteId();\n};\n\nexport const envOrbiterId = (): string | undefined => {\n const viteEnvOrbiterId = (): string | undefined =>\n typeof import.meta !== 'undefined' &&\n typeof (import.meta as unknown as ImportMeta).env !== 'undefined'\n ? ((import.meta as unknown as ImportMeta).env?.VITE_ORBITER_ID ??\n (import.meta as unknown as ImportMeta).env?.PUBLIC_ORBITER_ID)\n : undefined;\n\n return typeof process !== 'undefined'\n ? (process.env?.NEXT_PUBLIC_ORBITER_ID ?? viteEnvOrbiterId())\n : viteEnvOrbiterId();\n};\n\nexport const envContainer = (): string | undefined => {\n const viteEnvContainer = (): string | undefined =>\n typeof import.meta !== 'undefined' &&\n typeof (import.meta as unknown as ImportMeta).env !== 'undefined'\n ? ((import.meta as unknown as ImportMeta).env?.VITE_CONTAINER ??\n (import.meta as unknown as ImportMeta).env?.PUBLIC_CONTAINER)\n : undefined;\n\n return typeof process !== 'undefined'\n ? (process.env?.NEXT_PUBLIC_CONTAINER ?? viteEnvContainer())\n : viteEnvContainer();\n};\n"],
"mappings": "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",
"names": ["web_vitals_exports", "__export", "L", "b", "$", "N", "_", "J", "w", "S", "ee", "j", "G", "Q", "e", "n", "t", "r", "i", "o", "a", "c", "u", "f", "s", "d", "l", "p", "v", "m", "h", "g", "y", "T", "E", "C", "A", "I", "P", "M", "k", "F", "D", "x", "R", "B", "H", "q", "O", "K", "U", "V", "W", "X", "Y", "Z", "init_web_vitals", "__esmMin", "promisifyRequest", "request", "resolve", "reject", "createStore", "dbName", "storeName", "dbp", "txMode", "callback", "db", "defaultGetStore", "defaultGetStoreFunc", "set", "key", "value", "customStore", "store", "delMany", "keys", "eachCursor", "entries", "values", "i", "items", "cursor", "init_dist", "__esmMin", "idb_services_exports", "__export", "delPageViews", "delPerformanceMetrics", "delTrackEvents", "getPageViews", "getPerformanceMetrics", "getTrackEvents", "setPageView", "setPerformanceMetric", "setTrackEvent", "viewsStore", "eventsStore", "metricsStore", "init_idb_services", "__esmMin", "init_dist", "createStore", "key", "view", "set", "entries", "keys", "delMany", "track", "assertNonNullish", "assertNonNullish", "nonNullish", "toNullable", "isBrowser", "crypto", "urlAlphabet", "POOL_SIZE_MULTIPLIER", "pool", "poolOffset", "fillPool", "bytes", "crypto", "nanoid", "size", "fillPool", "id", "i", "poolOffset", "urlAlphabet", "pool", "toNullable", "nowInBigIntNanoSeconds", "timestamp", "nowInBigIntNanoSeconds", "userAgent", "toNullable", "isNullish", "WORKER_UNDEFINED_MSG", "warningWorkerNotInitialized", "value", "toNullable", "startPerformance", "sessionId", "onCLS", "onFCP", "onINP", "onLCP", "onTTFB", "setMetric", "metric", "setPerformanceMetric", "data", "mapPerformanceMetric", "nanoid", "metricName", "value", "delta", "id", "navigationType", "metric_name", "toNullable", "href", "_", "timestampRest", "timestamp", "userAgent", "initSessionId", "nanoid", "sessionId", "worker", "initWorker", "env", "path", "workerUrl", "consoleWarn", "initWorkerEnvironment", "initTrackPageViews", "trackPages", "trackPageView", "pushStateProxy", "target", "thisArg", "argArray", "SESSION_ID_UNDEFINED_MSG", "setPageView", "isBrowser", "assertNonNullish", "title", "href", "referrer", "innerWidth", "innerHeight", "timeZone", "data", "toNullable", "nonNullish", "userAgent", "timestamp", "initTrackPerformance", "options", "startPerformance", "warningWorkerNotInitial