@grafana/faro-core 1.2.0 → 1.2.2
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/bundle/faro-core.iife.js +1 -1
- package/dist/bundle/types/api/events/index.d.ts +2 -0
- package/dist/bundle/types/api/events/initialize.d.ts +8 -0
- package/dist/bundle/types/api/events/types.d.ts +15 -0
- package/dist/bundle/types/api/exceptions/const.d.ts +1 -0
- package/dist/bundle/types/api/exceptions/index.d.ts +3 -0
- package/dist/bundle/types/api/exceptions/initialize.d.ts +8 -0
- package/dist/bundle/types/api/exceptions/types.d.ts +35 -0
- package/dist/bundle/types/api/index.d.ts +9 -0
- package/dist/bundle/types/api/initialize.d.ts +7 -0
- package/dist/bundle/types/api/logs/index.d.ts +2 -0
- package/dist/bundle/types/api/logs/initialize.d.ts +8 -0
- package/dist/bundle/types/api/logs/types.d.ts +18 -0
- package/dist/bundle/types/api/measurements/index.d.ts +2 -0
- package/dist/bundle/types/api/measurements/initialize.d.ts +8 -0
- package/dist/bundle/types/api/measurements/types.d.ts +20 -0
- package/dist/bundle/types/api/meta/index.d.ts +2 -0
- package/dist/bundle/types/api/meta/initialize.d.ts +7 -0
- package/dist/bundle/types/api/meta/types.d.ts +10 -0
- package/dist/bundle/types/api/traces/index.d.ts +2 -0
- package/dist/bundle/types/api/traces/initialize.d.ts +7 -0
- package/dist/bundle/types/api/traces/types.d.ts +20 -0
- package/dist/bundle/types/api/types.d.ts +8 -0
- package/dist/bundle/types/config/const.d.ts +6 -0
- package/dist/bundle/types/config/index.d.ts +2 -0
- package/dist/bundle/types/config/types.d.ts +34 -0
- package/dist/bundle/types/extensions/baseExtension.d.ts +15 -0
- package/dist/bundle/types/extensions/index.d.ts +2 -0
- package/dist/bundle/types/extensions/types.d.ts +16 -0
- package/dist/bundle/types/globalObject/globalObject.d.ts +7 -0
- package/dist/bundle/types/globalObject/index.d.ts +2 -0
- package/dist/bundle/types/index.d.ts +24 -0
- package/dist/bundle/types/initialize.d.ts +3 -0
- package/dist/bundle/types/instrumentations/base.d.ts +9 -0
- package/dist/bundle/types/instrumentations/index.d.ts +4 -0
- package/dist/bundle/types/instrumentations/initialize.d.ts +8 -0
- package/dist/bundle/types/instrumentations/registerInitial.d.ts +2 -0
- package/dist/bundle/types/instrumentations/types.d.ts +14 -0
- package/dist/bundle/types/internalLogger/const.d.ts +11 -0
- package/dist/bundle/types/internalLogger/createInternalLogger.d.ts +4 -0
- package/dist/bundle/types/internalLogger/index.d.ts +4 -0
- package/dist/bundle/types/internalLogger/initialize.d.ts +5 -0
- package/dist/bundle/types/internalLogger/types.d.ts +7 -0
- package/dist/bundle/types/metas/index.d.ts +3 -0
- package/dist/bundle/types/metas/initialize.d.ts +5 -0
- package/dist/bundle/types/metas/registerInitial.d.ts +2 -0
- package/dist/bundle/types/metas/types.d.ts +71 -0
- package/dist/bundle/types/sdk/const.d.ts +1 -0
- package/dist/bundle/types/sdk/faroGlobalObject.d.ts +2 -0
- package/dist/bundle/types/sdk/index.d.ts +4 -0
- package/dist/bundle/types/sdk/internalFaroGlobalObject.d.ts +4 -0
- package/dist/bundle/types/sdk/registerFaro.d.ts +10 -0
- package/dist/bundle/types/sdk/types.d.ts +18 -0
- package/dist/bundle/types/semantic.d.ts +8 -0
- package/dist/bundle/types/testUtils/index.d.ts +6 -0
- package/dist/bundle/types/testUtils/mockConfig.d.ts +2 -0
- package/dist/bundle/types/testUtils/mockInternalLogger.d.ts +2 -0
- package/dist/bundle/types/testUtils/mockStacktraceParser.d.ts +2 -0
- package/dist/bundle/types/testUtils/mockTransport.d.ts +13 -0
- package/dist/bundle/types/testUtils/testPromise.d.ts +7 -0
- package/dist/bundle/types/transports/base.d.ts +7 -0
- package/dist/bundle/types/transports/batchExecutor.d.ts +16 -0
- package/dist/bundle/types/transports/const.d.ts +9 -0
- package/dist/bundle/types/transports/index.d.ts +6 -0
- package/dist/bundle/types/transports/initialize.d.ts +8 -0
- package/dist/bundle/types/transports/registerInitial.d.ts +2 -0
- package/dist/bundle/types/transports/types.d.ts +46 -0
- package/dist/bundle/types/transports/utils.d.ts +5 -0
- package/dist/bundle/types/unpatchedConsole/const.d.ts +2 -0
- package/dist/bundle/types/unpatchedConsole/index.d.ts +3 -0
- package/dist/bundle/types/unpatchedConsole/initialize.d.ts +4 -0
- package/dist/bundle/types/unpatchedConsole/types.d.ts +1 -0
- package/dist/bundle/types/utils/baseObject.d.ts +6 -0
- package/dist/bundle/types/utils/date.d.ts +1 -0
- package/dist/bundle/types/utils/deepEqual.d.ts +1 -0
- package/dist/bundle/types/utils/getCurrentTimestamp.d.ts +1 -0
- package/dist/bundle/types/utils/index.d.ts +11 -0
- package/dist/bundle/types/utils/is.d.ts +31 -0
- package/dist/bundle/types/utils/logLevels.d.ts +10 -0
- package/dist/bundle/types/utils/noop.d.ts +1 -0
- package/dist/bundle/types/utils/promiseBuffer.d.ts +14 -0
- package/dist/bundle/types/utils/shortId.d.ts +1 -0
- package/dist/bundle/types/version.d.ts +1 -0
- package/dist/cjs/config/types.js.map +1 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/metas/index.js.map +1 -1
- package/dist/cjs/metas/registerInitial.js +5 -4
- package/dist/cjs/metas/registerInitial.js.map +1 -1
- package/dist/cjs/metas/types.js.map +1 -1
- package/dist/cjs/utils/date.js +8 -0
- package/dist/cjs/utils/date.js.map +1 -0
- package/dist/cjs/utils/index.js +3 -1
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/esm/config/types.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/metas/index.js.map +1 -1
- package/dist/esm/metas/registerInitial.js +5 -4
- package/dist/esm/metas/registerInitial.js.map +1 -1
- package/dist/esm/metas/types.js.map +1 -1
- package/dist/esm/utils/date.js +4 -0
- package/dist/esm/utils/date.js.map +1 -0
- package/dist/esm/utils/index.js +1 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/spec/core/src/config/types.js.map +1 -1
- package/dist/spec/core/src/index.js +2 -1
- package/dist/spec/core/src/index.js.map +1 -1
- package/dist/spec/core/src/metas/index.js.map +1 -1
- package/dist/spec/core/src/metas/registerInitial.js +5 -4
- package/dist/spec/core/src/metas/registerInitial.js.map +1 -1
- package/dist/spec/core/src/metas/types.js.map +1 -1
- package/dist/spec/core/src/utils/date.js +8 -0
- package/dist/spec/core/src/utils/date.js.map +1 -0
- package/dist/spec/core/src/utils/index.js +3 -1
- package/dist/spec/core/src/utils/index.js.map +1 -1
- package/dist/spec/core/src/version.js +1 -1
- package/dist/spec/core/src/version.js.map +1 -1
- package/dist/types/config/types.d.ts +6 -0
- package/dist/types/core/src/config/types.d.ts +6 -0
- package/dist/types/core/src/index.d.ts +1 -1
- package/dist/types/core/src/metas/index.d.ts +1 -1
- package/dist/types/core/src/metas/types.d.ts +4 -0
- package/dist/types/core/src/testUtils/mockTransport.d.ts +1 -1
- package/dist/types/core/src/utils/date.d.ts +1 -0
- package/dist/types/core/src/utils/index.d.ts +1 -0
- package/dist/types/core/src/version.d.ts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/metas/index.d.ts +1 -1
- package/dist/types/metas/types.d.ts +4 -0
- package/dist/types/testUtils/mockTransport.d.ts +1 -1
- package/dist/types/utils/date.d.ts +1 -0
- package/dist/types/utils/index.d.ts +1 -0
- package/dist/types/version.d.ts +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
var GrafanaFaroCore=function(e){"use strict";function t(e,t){return typeof e===t}function n(e,t){return Object.prototype.toString.call(e)===`[object ${t}]`}function r(e,t){try{return e instanceof t}catch(e){return!1}}const a=e=>t(e,"undefined"),o=e=>t(e,"null"),i=e=>t(e,"string"),s=e=>t(e,"number")&&!isNaN(e)||t(e,"bigint"),u=e=>!o(e)&&t(e,"object"),l=e=>t(e,"function"),c=e=>n(e,"Array"),g=!a(Event),d="undefined"!=typeof Error,p="undefined"!=typeof Element,f="undefined"!=typeof Map;function m(e,n){if(e===n)return!0;if(t(e,"number")&&isNaN(e))return t(n,"number")&&isNaN(n);const r=c(e),a=c(n);if(r!==a)return!1;if(r&&a){const t=e.length;if(t!==n.length)return!1;for(let r=t;0!=r--;)if(!m(e[r],n[r]))return!1;return!0}const o=u(e),i=u(n);if(o!==i)return!1;if(e&&n&&o&&i){const t=Object.keys(e),r=Object.keys(n);if(t.length!==r.length)return!1;for(let e of t)if(!r.includes(e))return!1;for(let r of t)if(!m(e[r],n[r]))return!1;return!0}return!1}function h(){return(new Date).toISOString()}var v;e.LogLevel=void 0,(v=e.LogLevel||(e.LogLevel={})).TRACE="trace",v.DEBUG="debug",v.INFO="info",v.LOG="log",v.WARN="warn",v.ERROR="error";const b=e.LogLevel.LOG,y=[e.LogLevel.TRACE,e.LogLevel.DEBUG,e.LogLevel.INFO,e.LogLevel.LOG,e.LogLevel.WARN,e.LogLevel.ERROR];function E(){}const T="abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ0123456789";var I={},L={get exports(){return I},set exports(e){I=e}},O={};({get exports(){return O},set exports(e){O=e}}).exports=function(e,t){var n,r,a,o,i,s,u,l;for(n=3&e.length,r=e.length-n,a=t,i=3432918353,s=461845907,l=0;l<r;)u=255&e.charCodeAt(l)|(255&e.charCodeAt(++l))<<8|(255&e.charCodeAt(++l))<<16|(255&e.charCodeAt(++l))<<24,++l,a=27492+(65535&(o=5*(65535&(a=(a^=u=(65535&(u=(u=(65535&u)*i+(((u>>>16)*i&65535)<<16)&4294967295)<<15|u>>>17))*s+(((u>>>16)*s&65535)<<16)&4294967295)<<13|a>>>19))+((5*(a>>>16)&65535)<<16)&4294967295))+((58964+(o>>>16)&65535)<<16);switch(u=0,n){case 3:u^=(255&e.charCodeAt(l+2))<<16;case 2:u^=(255&e.charCodeAt(l+1))<<8;case 1:a^=u=(65535&(u=(u=(65535&(u^=255&e.charCodeAt(l)))*i+(((u>>>16)*i&65535)<<16)&4294967295)<<15|u>>>17))*s+(((u>>>16)*s&65535)<<16)&4294967295}return a^=e.length,a=2246822507*(65535&(a^=a>>>16))+((2246822507*(a>>>16)&65535)<<16)&4294967295,a=3266489909*(65535&(a^=a>>>13))+((3266489909*(a>>>16)&65535)<<16)&4294967295,(a^=a>>>16)>>>0};var x={};!function(e){e.exports=function(e,t){for(var n,r=e.length,a=t^r,o=0;r>=4;)n=1540483477*(65535&(n=255&e.charCodeAt(o)|(255&e.charCodeAt(++o))<<8|(255&e.charCodeAt(++o))<<16|(255&e.charCodeAt(++o))<<24))+((1540483477*(n>>>16)&65535)<<16),a=1540483477*(65535&a)+((1540483477*(a>>>16)&65535)<<16)^(n=1540483477*(65535&(n^=n>>>24))+((1540483477*(n>>>16)&65535)<<16)),r-=4,++o;switch(r){case 3:a^=(255&e.charCodeAt(o+2))<<16;case 2:a^=(255&e.charCodeAt(o+1))<<8;case 1:a=1540483477*(65535&(a^=255&e.charCodeAt(o)))+((1540483477*(a>>>16)&65535)<<16)}return a=1540483477*(65535&(a^=a>>>13))+((1540483477*(a>>>16)&65535)<<16),(a^=a>>>15)>>>0}}({get exports(){return x},set exports(e){x=e}});var A=O,S=x;L.exports=A;var R=I.murmur3=A;I.murmur2=S;class C{constructor(e,t){var n,r;this.signalBuffer=[],this.itemLimit=null!==(n=null==t?void 0:t.itemLimit)&&void 0!==n?n:50,this.sendTimeout=null!==(r=null==t?void 0:t.sendTimeout)&&void 0!==r?r:250,this.paused=(null==t?void 0:t.paused)||!1,this.sendFn=e,this.flushInterval=-1,this.paused||this.start(),document.addEventListener("visibilitychange",(()=>{"hidden"===document.visibilityState&&this.flush()}))}addItem(e){this.paused||(this.signalBuffer.push(e),this.signalBuffer.length>=this.itemLimit&&this.flush())}start(){this.paused=!1,this.sendTimeout>0&&(this.flushInterval=window.setInterval((()=>this.flush()),this.sendTimeout))}pause(){this.paused=!0,clearInterval(this.flushInterval)}groupItems(e){const t=new Map;return e.forEach((e=>{const n=R(JSON.stringify(e.meta));let r=t.get(n);r=void 0===r?[e]:[...r,e],t.set(n,r)})),Array.from(t.values())}flush(){if(this.paused||0===this.signalBuffer.length)return;this.groupItems(this.signalBuffer).forEach(this.sendFn),this.signalBuffer=[]}}var j;e.TransportItemType=void 0,(j=e.TransportItemType||(e.TransportItemType={})).EXCEPTION="exception",j.LOG="log",j.MEASUREMENT="measurement",j.TRACE="trace",j.EVENT="event";const N={[e.TransportItemType.EXCEPTION]:"exceptions",[e.TransportItemType.LOG]:"logs",[e.TransportItemType.MEASUREMENT]:"measurements",[e.TransportItemType.TRACE]:"traces",[e.TransportItemType.EVENT]:"events"};function k(t){return n=>{if(n.type===e.TransportItemType.EXCEPTION&&n.payload){const e=n.payload,r=`${e.type}: ${e.value}`;if(function(e,t){return e.some((e=>i(e)?t.includes(e):!!t.match(e)))}(t,r))return null}return n}}var w;e.InternalLoggerLevel=void 0,(w=e.InternalLoggerLevel||(e.InternalLoggerLevel={}))[w.OFF=0]="OFF",w[w.ERROR=1]="ERROR",w[w.WARN=2]="WARN",w[w.INFO=3]="INFO",w[w.VERBOSE=4]="VERBOSE";const P={debug:E,error:E,info:E,prefix:"Faro",warn:E},B=e.InternalLoggerLevel.ERROR,F=Object.assign({},console);let $=F;function D(e){var t;return $=null!==(t=e.unpatchedConsole)&&void 0!==t?t:$,$}function G(t=F,n=B){const r=P;return n>e.InternalLoggerLevel.OFF&&(r.error=n>=e.InternalLoggerLevel.ERROR?function(...e){t.error(`${r.prefix}\n`,...e)}:E,r.warn=n>=e.InternalLoggerLevel.WARN?function(...e){t.warn(`${r.prefix}\n`,...e)}:E,r.info=n>=e.InternalLoggerLevel.INFO?function(...e){t.info(`${r.prefix}\n`,...e)}:E,r.debug=n>=e.InternalLoggerLevel.VERBOSE?function(...e){t.debug(`${r.prefix}\n`,...e)}:E),r}let M=P;function z(e,t){return M=G(e,t.internalLoggerLevel),M}class U{constructor(){this.unpatchedConsole=F,this.internalLogger=P,this.config={},this.metas={}}logDebug(...e){this.internalLogger.debug(`${this.name}\n`,...e)}logInfo(...e){this.internalLogger.info(`${this.name}\n`,...e)}logWarn(...e){this.internalLogger.warn(`${this.name}\n`,...e)}logError(...e){this.internalLogger.error(`${this.name}\n`,...e)}}function V(e,t){var n,r;if(void 0===t)return e;if(void 0===e)return{resourceSpans:t};const a=null===(n=e.resourceSpans)||void 0===n?void 0:n[0];if(void 0===a)return e;const o=(null==a?void 0:a.scopeSpans)||[],i=(null===(r=null==t?void 0:t[0])||void 0===r?void 0:r.scopeSpans)||[];return Object.assign(Object.assign({},e),{resourceSpans:[Object.assign(Object.assign({},a),{scopeSpans:[...o,...i]})]})}const K="Error";let W;function H(t,n,r,a,i){n.debug("Initializing API");const s=function(t,n,r,a,o){let i;return n.debug("Initializing traces API"),{getOTEL:()=>i,getTraceContext:()=>{const e=null==i?void 0:i.trace.getSpanContext(i.context.active());return e?{trace_id:e.traceId,span_id:e.spanId}:void 0},initOTEL:(e,t)=>{n.debug("Initializing OpenTelemetry"),i={trace:e,context:t}},isOTELInitialized:()=>!!i,pushTraces:t=>{try{const r={type:e.TransportItemType.TRACE,payload:t,meta:a.value};n.debug("Pushing trace\n",r),o.execute(r)}catch(e){n.error("Error pushing trace\n",e)}}}}(0,n,0,a,i);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},s),function(t,n,r,a,i,s){var u;n.debug("Initializing exceptions API");let l=null;W=null!==(u=r.parseStacktrace)&&void 0!==u?u:W;const c=e=>{n.debug("Changing stacktrace parser"),W=null!=e?e:W};return c(r.parseStacktrace),{changeStacktraceParser:c,getStacktraceParser:()=>W,pushError:(t,{skipDedupe:u,stackFrames:c,type:g,context:d}={})=>{g=g||t.name||K;const p={meta:a.value,payload:{type:g,value:t.message,timestamp:h(),trace:s.getTraceContext(),context:null!=d?d:{}},type:e.TransportItemType.EXCEPTION};(null==(c=null!=c?c:t.stack?null==W?void 0:W(t).frames:void 0)?void 0:c.length)&&(p.payload.stacktrace={frames:c});const f={type:p.payload.type,value:p.payload.value,stackTrace:p.payload.stacktrace,context:p.payload.context};u||!r.dedupe||o(l)||!m(f,l)?(l=f,n.debug("Pushing exception\n",p),i.execute(p)):n.debug("Skipping error push because it is the same as the last one\n",p.payload)}}}(0,n,r,a,i,s)),function(e,t,n,r,a){let o,i,s;t.debug("Initializing meta API");const u=e=>{i&&r.remove(i),i={user:e},r.add(i)},l=e=>{o&&r.remove(o),o={session:e},r.add(o)};return{setUser:u,resetUser:u,setSession:l,resetSession:l,getSession:()=>r.value.session,setView:e=>{s&&r.remove(s),s={view:e},r.add(s)},getView:()=>r.value.view}}(0,n,0,a)),function(t,n,r,a,i,s){n.debug("Initializing logs API");let u=null;return{pushLog:(t,{context:l,level:c,skipDedupe:g}={})=>{try{const d={type:e.TransportItemType.LOG,payload:{message:t.map((e=>{try{return String(e)}catch(e){return""}})).join(" "),level:null!=c?c:b,context:null!=l?l:{},timestamp:h(),trace:s.getTraceContext()},meta:a.value},p={message:d.payload.message,level:d.payload.level,context:d.payload.context};if(!g&&r.dedupe&&!o(u)&&m(p,u))return void n.debug("Skipping log push because it is the same as the last one\n",d.payload);u=p,n.debug("Pushing log\n",d),i.execute(d)}catch(e){n.error("Error pushing log\n",e)}}}}(0,n,r,a,i,s)),function(t,n,r,a,i,s){n.debug("Initializing measurements API");let u=null;return{pushMeasurement:(t,{skipDedupe:l,context:c}={})=>{var g;try{const d={type:e.TransportItemType.MEASUREMENT,payload:Object.assign(Object.assign({},t),{trace:s.getTraceContext(),timestamp:null!==(g=t.timestamp)&&void 0!==g?g:h(),context:null!=c?c:{}}),meta:a.value},p={type:d.payload.type,values:d.payload.values,context:d.payload.context};if(!l&&r.dedupe&&!o(u)&&m(p,u))return void n.debug("Skipping measurement push because it is the same as the last one\n",d.payload);u=p,n.debug("Pushing measurement\n",d),i.execute(d)}catch(e){n.error("Error pushing measurement\n",e)}}}}(0,n,r,a,i,s)),function(t,n,r,a,i,s){let u=null;return{pushEvent:(t,l,c,{skipDedupe:g}={})=>{try{const d={meta:a.value,payload:{name:t,domain:null!=c?c:r.eventDomain,attributes:l,timestamp:h(),trace:s.getTraceContext()},type:e.TransportItemType.EVENT},p={name:d.payload.name,attributes:d.payload.attributes,domain:d.payload.domain};if(!g&&r.dedupe&&!o(u)&&m(p,u))return void n.debug("Skipping event push because it is the same as the last one\n",d.payload);u=p,n.debug("Pushing event\n",d),i.execute(d)}catch(e){n.error("Error pushing event",e)}}}}(0,n,r,a,i,s))}const _="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof self?self:void 0;const X="1.2.0";const q="_faroInternal";function J(e){e.config.isolate?e.internalLogger.debug("Skipping registering internal Faro instance on global object"):(e.internalLogger.debug("Registering internal Faro instance on global object"),Object.defineProperty(_,q,{configurable:!1,enumerable:!1,writable:!1,value:e}))}function Q(){return q in _}function Y(t,n,r,a,o,i,s){return n.debug("Initializing Faro"),e.faro={api:i,config:r,instrumentations:s,internalLogger:n,metas:a,pause:o.pause,transports:o,unpatchedConsole:t,unpause:o.unpause},J(e.faro),function(e){if(e.config.preventGlobalExposure)e.internalLogger.debug("Skipping registering public Faro instance in the global scope");else{if(e.internalLogger.debug(`Registering public faro reference in the global scope using "${e.config.globalObjectKey}" key`),e.config.globalObjectKey in _)return void e.internalLogger.warn(`Skipping global registration due to key "${e.config.globalObjectKey}" being used already. Please set "globalObjectKey" to something else or set "preventGlobalExposure" to "true"`);Object.defineProperty(_,e.config.globalObjectKey,{configurable:!1,writable:!1,value:e})}}(e.faro),e.faro}e.faro={};return e.BaseExtension=U,e.BaseInstrumentation=class extends U{constructor(){super(...arguments),this.api={},this.transports={}}},e.BaseTransport=class extends U{isBatched(){return!1}getIgnoreUrls(){return[]}},e.Conventions={EventNames:{CLICK:"click",NAVIGATION:"navigation",SESSION_START:"session_start",VIEW_CHANGED:"view_changed"}},e.VERSION=X,e.allLogLevels=y,e.createInternalLogger=G,e.createPromiseBuffer=function(e){const{size:t,concurrency:n}=e,r=[];let a=0;const o=()=>{if(a<n&&r.length){const{producer:e,resolve:t,reject:n}=r.shift();a++,e().then((e=>{a--,o(),t(e)}),(e=>{a--,o(),n(e)}))}};return{add:e=>{if(r.length+a>=t)throw new Error("Task buffer full");return new Promise(((t,n)=>{r.push({producer:e,resolve:t,reject:n}),o()}))}}},e.deepEqual=m,e.defaultBatchingConfig={enabled:!0,sendTimeout:250,itemLimit:50},e.defaultExceptionType=K,e.defaultGlobalObjectKey="faro",e.defaultInternalLoggerLevel=B,e.defaultLogLevel=b,e.defaultUnpatchedConsole=F,e.genShortID=function(e=10){return Array.from(Array(e)).map((()=>T[Math.floor(Math.random()*T.length)])).join("")},e.getCurrentTimestamp=h,e.getInternalFaroFromGlobalObject=function(){return _[q]},e.getTransportBody=function(t){let n={meta:{}};return void 0!==t[0]&&(n.meta=t[0].meta),t.forEach((t=>{switch(t.type){case e.TransportItemType.LOG:case e.TransportItemType.EVENT:case e.TransportItemType.EXCEPTION:case e.TransportItemType.MEASUREMENT:const r=N[t.type],a=n[r];n=Object.assign(Object.assign({},n),{[r]:void 0===a?[t.payload]:[...a,t.payload]});break;case e.TransportItemType.TRACE:n=Object.assign(Object.assign({},n),{traces:V(n.traces,t.payload.resourceSpans)})}})),n},e.globalObject=_,e.initializeFaro=function(e){const t=D(e),n=z(t,e);if(Q()&&!e.isolate)return void n.error('Faro is already registered. Either add instrumentations, transports etc. to the global faro instance or use the "isolate" property');n.debug("Initializing");const r=function(e,t,n){let r=[],a=[];const o=()=>r.reduce(((e,t)=>Object.assign(e,l(t)?t():t)),{}),i=()=>{if(a.length){const e=o();a.forEach((t=>t(e)))}};return{add:(...e)=>{t.debug("Adding metas\n",e),r.push(...e),i()},remove:(...e)=>{t.debug("Removing metas\n",e),r=r.filter((t=>!e.includes(t))),i()},addListener:e=>{t.debug("Adding metas listener\n",e),a.push(e)},removeListener:e=>{t.debug("Removing metas listener\n",e),a=a.filter((t=>t!==e))},get value(){return o()}}}(0,n),a=function(e,t,n,r){var a;t.debug("Initializing transports");const o=[];let i=n.paused,s=[];const u=e=>{let t=e;for(const e of s){const n=t.map(e).filter(Boolean);if(0===n.length)return[];t=n}return t},l=e=>{const n=u(e);if(0!==n.length)for(const e of o)t.debug(`Transporting item using ${e.name}\n`,n),e.isBatched()&&e.send(n)},c=e=>{var r;const[a]=u([e]);if(void 0!==a)for(const e of o)t.debug(`Transporting item using ${e.name}\n`,a),e.isBatched()?(null===(r=n.batching)||void 0===r?void 0:r.enabled)||e.send([a]):e.send(a)};let g;return(null===(a=n.batching)||void 0===a?void 0:a.enabled)&&(g=new C(l,{sendTimeout:n.batching.sendTimeout,itemLimit:n.batching.itemLimit,paused:i})),{add:(...a)=>{t.debug("Adding transports"),a.forEach((a=>{t.debug(`Adding "${a.name}" transport`),o.some((e=>e===a))?t.warn(`Transport ${a.name} is already added`):(a.unpatchedConsole=e,a.internalLogger=t,a.config=n,a.metas=r,o.push(a))}))},addBeforeSendHooks:(...e)=>{t.debug("Adding beforeSendHooks\n",s),e.forEach((e=>{e&&s.push(e)}))},addIgnoreErrorsPatterns:(...e)=>{t.debug("Adding ignoreErrorsPatterns\n",e),e.forEach((e=>{e&&s.push(k(e))}))},getBeforeSendHooks:()=>[...s],execute:e=>{var t;i||((null===(t=n.batching)||void 0===t?void 0:t.enabled)?(null==g||g.addItem(e),c(e)):c(e))},isPaused:()=>i,pause:()=>{t.debug("Pausing transports"),null==g||g.pause(),i=!0},remove:(...e)=>{t.debug("Removing transports"),e.forEach((e=>{t.debug(`Removing "${e.name}" transport`);const n=o.indexOf(e);-1!==n?o.splice(n,1):t.warn(`Transport "${e.name}" is not added`)}))},removeBeforeSendHooks:(...e)=>{s.filter((t=>!e.includes(t)))},get transports(){return[...o]},unpause:()=>{t.debug("Unpausing transports"),null==g||g.start(),i=!1}}}(t,n,e,r),o=H(0,n,e,r,a),i=function(e,t,n,r,a,o){t.debug("Initializing instrumentations");const i=[];return{add:(...s)=>{t.debug("Adding instrumentations"),s.forEach((s=>{t.debug(`Adding "${s.name}" instrumentation`),i.some((e=>e.name===s.name))?t.warn(`Instrumentation ${s.name} is already added`):(s.unpatchedConsole=e,s.internalLogger=t,s.config=n,s.metas=r,s.transports=a,s.api=o,i.push(s),s.initialize())}))},get instrumentations(){return[...i]},remove:(...e)=>{t.debug("Removing instrumentations"),e.forEach((e=>{var n,r;t.debug(`Removing "${e.name}" instrumentation`);const a=i.reduce(((t,n,r)=>null===t&&n.name===e.name?r:null),null);a?(null===(r=(n=i[a]).destroy)||void 0===r||r.call(n),i.splice(a,1)):t.warn(`Instrumentation "${e.name}" is not added`)}))}}}(t,n,e,r,a,o),s=Y(t,n,e,r,a,o,i);return function(e){var t;const n={sdk:{name:"@grafana/faro-core",version:X,integrations:e.config.instrumentations.map((({name:e,version:t})=>({name:e,version:t})))}};e.config.session&&e.api.setSession(e.config.session),e.config.app&&(n.app=e.config.app),e.config.user&&(n.user=e.config.user),e.config.view&&(n.view=e.config.view),e.metas.add(n,...null!==(t=e.config.metas)&&void 0!==t?t:[])}(s),function(e){e.transports.add(...e.config.transports),e.transports.addBeforeSendHooks(e.config.beforeSend),e.transports.addIgnoreErrorsPatterns(e.config.ignoreErrors)}(s),function(e){e.instrumentations.add(...e.config.instrumentations)}(s),s},e.internalGlobalObjectKey=q,e.isArray=c,e.isBoolean=e=>t(e,"boolean"),e.isDomError=e=>n(e,"DOMError"),e.isDomException=e=>n(e,"DOMException"),e.isElement=e=>p&&r(e,Element),e.isElementDefined=p,e.isError=e=>d&&r(e,Error),e.isErrorDefined=d,e.isErrorEvent=e=>n(e,"ErrorEvent"),e.isEvent=e=>g&&r(e,Event),e.isEventDefined=g,e.isFunction=l,e.isInstanceOf=r,e.isInt=e=>s(e)&&Number.isInteger(e),e.isInternalFaroOnGlobalObject=Q,e.isMap=e=>f&&r(e,Map),e.isMapDefined=f,e.isNull=o,e.isNumber=s,e.isObject=u,e.isPrimitive=e=>!u(e)&&!l(e),e.isRegExp=e=>n(e,"RegExp"),e.isString=i,e.isSymbol=e=>t(e,"symbol"),e.isSyntheticEvent=e=>u(e)&&"nativeEvent"in e&&"preventDefault"in e&&"stopPropagation"in e,e.isThenable=e=>l(null==e?void 0:e.then),e.isToString=n,e.isTypeof=t,e.isUndefined=a,e.noop=E,e.setInternalFaroOnGlobalObject=J,e.transportItemTypeToBodyKey=N,e}({});
|
|
1
|
+
var GrafanaFaroCore=function(e){"use strict";function t(e,t){return typeof e===t}function n(e,t){return Object.prototype.toString.call(e)===`[object ${t}]`}function r(e,t){try{return e instanceof t}catch(e){return!1}}const o=e=>t(e,"undefined"),a=e=>t(e,"null"),i=e=>t(e,"string"),s=e=>t(e,"number")&&!isNaN(e)||t(e,"bigint"),u=e=>!a(e)&&t(e,"object"),l=e=>t(e,"function"),c=e=>n(e,"Array"),g=!o(Event),d="undefined"!=typeof Error,p="undefined"!=typeof Element,f="undefined"!=typeof Map;function m(e,n){if(e===n)return!0;if(t(e,"number")&&isNaN(e))return t(n,"number")&&isNaN(n);const r=c(e),o=c(n);if(r!==o)return!1;if(r&&o){const t=e.length;if(t!==n.length)return!1;for(let r=t;0!=r--;)if(!m(e[r],n[r]))return!1;return!0}const a=u(e),i=u(n);if(a!==i)return!1;if(e&&n&&a&&i){const t=Object.keys(e),r=Object.keys(n);if(t.length!==r.length)return!1;for(let e of t)if(!r.includes(e))return!1;for(let r of t)if(!m(e[r],n[r]))return!1;return!0}return!1}function h(){return(new Date).toISOString()}var v;e.LogLevel=void 0,(v=e.LogLevel||(e.LogLevel={})).TRACE="trace",v.DEBUG="debug",v.INFO="info",v.LOG="log",v.WARN="warn",v.ERROR="error";const b=e.LogLevel.LOG,y=[e.LogLevel.TRACE,e.LogLevel.DEBUG,e.LogLevel.INFO,e.LogLevel.LOG,e.LogLevel.WARN,e.LogLevel.ERROR];function E(){}const T="abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ0123456789";var I={exports:{}},L={exports:{}};L.exports=function(e,t){var n,r,o,a,i,s,u,l;for(n=3&e.length,r=e.length-n,o=t,i=3432918353,s=461845907,l=0;l<r;)u=255&e.charCodeAt(l)|(255&e.charCodeAt(++l))<<8|(255&e.charCodeAt(++l))<<16|(255&e.charCodeAt(++l))<<24,++l,o=27492+(65535&(a=5*(65535&(o=(o^=u=(65535&(u=(u=(65535&u)*i+(((u>>>16)*i&65535)<<16)&4294967295)<<15|u>>>17))*s+(((u>>>16)*s&65535)<<16)&4294967295)<<13|o>>>19))+((5*(o>>>16)&65535)<<16)&4294967295))+((58964+(a>>>16)&65535)<<16);switch(u=0,n){case 3:u^=(255&e.charCodeAt(l+2))<<16;case 2:u^=(255&e.charCodeAt(l+1))<<8;case 1:o^=u=(65535&(u=(u=(65535&(u^=255&e.charCodeAt(l)))*i+(((u>>>16)*i&65535)<<16)&4294967295)<<15|u>>>17))*s+(((u>>>16)*s&65535)<<16)&4294967295}return o^=e.length,o=2246822507*(65535&(o^=o>>>16))+((2246822507*(o>>>16)&65535)<<16)&4294967295,o=3266489909*(65535&(o^=o>>>13))+((3266489909*(o>>>16)&65535)<<16)&4294967295,(o^=o>>>16)>>>0};var O=L.exports,x={exports:{}};!function(e){e.exports=function(e,t){for(var n,r=e.length,o=t^r,a=0;r>=4;)n=1540483477*(65535&(n=255&e.charCodeAt(a)|(255&e.charCodeAt(++a))<<8|(255&e.charCodeAt(++a))<<16|(255&e.charCodeAt(++a))<<24))+((1540483477*(n>>>16)&65535)<<16),o=1540483477*(65535&o)+((1540483477*(o>>>16)&65535)<<16)^(n=1540483477*(65535&(n^=n>>>24))+((1540483477*(n>>>16)&65535)<<16)),r-=4,++a;switch(r){case 3:o^=(255&e.charCodeAt(a+2))<<16;case 2:o^=(255&e.charCodeAt(a+1))<<8;case 1:o=1540483477*(65535&(o^=255&e.charCodeAt(a)))+((1540483477*(o>>>16)&65535)<<16)}return o=1540483477*(65535&(o^=o>>>13))+((1540483477*(o>>>16)&65535)<<16),(o^=o>>>15)>>>0}}(x);var S=O,A=x.exports;I.exports=S;var R=I.exports.murmur3=S;I.exports.murmur2=A;class C{constructor(e,t){var n,r;this.signalBuffer=[],this.itemLimit=null!==(n=null==t?void 0:t.itemLimit)&&void 0!==n?n:50,this.sendTimeout=null!==(r=null==t?void 0:t.sendTimeout)&&void 0!==r?r:250,this.paused=(null==t?void 0:t.paused)||!1,this.sendFn=e,this.flushInterval=-1,this.paused||this.start(),document.addEventListener("visibilitychange",(()=>{"hidden"===document.visibilityState&&this.flush()}))}addItem(e){this.paused||(this.signalBuffer.push(e),this.signalBuffer.length>=this.itemLimit&&this.flush())}start(){this.paused=!1,this.sendTimeout>0&&(this.flushInterval=window.setInterval((()=>this.flush()),this.sendTimeout))}pause(){this.paused=!0,clearInterval(this.flushInterval)}groupItems(e){const t=new Map;return e.forEach((e=>{const n=R(JSON.stringify(e.meta));let r=t.get(n);r=void 0===r?[e]:[...r,e],t.set(n,r)})),Array.from(t.values())}flush(){if(this.paused||0===this.signalBuffer.length)return;this.groupItems(this.signalBuffer).forEach(this.sendFn),this.signalBuffer=[]}}var j;e.TransportItemType=void 0,(j=e.TransportItemType||(e.TransportItemType={})).EXCEPTION="exception",j.LOG="log",j.MEASUREMENT="measurement",j.TRACE="trace",j.EVENT="event";const N={[e.TransportItemType.EXCEPTION]:"exceptions",[e.TransportItemType.LOG]:"logs",[e.TransportItemType.MEASUREMENT]:"measurements",[e.TransportItemType.TRACE]:"traces",[e.TransportItemType.EVENT]:"events"};function k(t){return n=>{if(n.type===e.TransportItemType.EXCEPTION&&n.payload){const e=n.payload,r=`${e.type}: ${e.value}`;if(function(e,t){return e.some((e=>i(e)?t.includes(e):!!t.match(e)))}(t,r))return null}return n}}var w;e.InternalLoggerLevel=void 0,(w=e.InternalLoggerLevel||(e.InternalLoggerLevel={}))[w.OFF=0]="OFF",w[w.ERROR=1]="ERROR",w[w.WARN=2]="WARN",w[w.INFO=3]="INFO",w[w.VERBOSE=4]="VERBOSE";const P={debug:E,error:E,info:E,prefix:"Faro",warn:E},B=e.InternalLoggerLevel.ERROR,F=Object.assign({},console);let $=F;function D(e){var t;return $=null!==(t=e.unpatchedConsole)&&void 0!==t?t:$,$}function G(t=F,n=B){const r=P;return n>e.InternalLoggerLevel.OFF&&(r.error=n>=e.InternalLoggerLevel.ERROR?function(...e){t.error(`${r.prefix}\n`,...e)}:E,r.warn=n>=e.InternalLoggerLevel.WARN?function(...e){t.warn(`${r.prefix}\n`,...e)}:E,r.info=n>=e.InternalLoggerLevel.INFO?function(...e){t.info(`${r.prefix}\n`,...e)}:E,r.debug=n>=e.InternalLoggerLevel.VERBOSE?function(...e){t.debug(`${r.prefix}\n`,...e)}:E),r}let M=P;function z(e,t){return M=G(e,t.internalLoggerLevel),M}class U{constructor(){this.unpatchedConsole=F,this.internalLogger=P,this.config={},this.metas={}}logDebug(...e){this.internalLogger.debug(`${this.name}\n`,...e)}logInfo(...e){this.internalLogger.info(`${this.name}\n`,...e)}logWarn(...e){this.internalLogger.warn(`${this.name}\n`,...e)}logError(...e){this.internalLogger.error(`${this.name}\n`,...e)}}function V(e,t){var n,r;if(void 0===t)return e;if(void 0===e)return{resourceSpans:t};const o=null===(n=e.resourceSpans)||void 0===n?void 0:n[0];if(void 0===o)return e;const a=(null==o?void 0:o.scopeSpans)||[],i=(null===(r=null==t?void 0:t[0])||void 0===r?void 0:r.scopeSpans)||[];return Object.assign(Object.assign({},e),{resourceSpans:[Object.assign(Object.assign({},o),{scopeSpans:[...a,...i]})]})}const K="Error";let W;function H(t,n,r,o,i){n.debug("Initializing API");const s=function(t,n,r,o,a){let i;return n.debug("Initializing traces API"),{getOTEL:()=>i,getTraceContext:()=>{const e=null==i?void 0:i.trace.getSpanContext(i.context.active());return e?{trace_id:e.traceId,span_id:e.spanId}:void 0},initOTEL:(e,t)=>{n.debug("Initializing OpenTelemetry"),i={trace:e,context:t}},isOTELInitialized:()=>!!i,pushTraces:t=>{try{const r={type:e.TransportItemType.TRACE,payload:t,meta:o.value};n.debug("Pushing trace\n",r),a.execute(r)}catch(e){n.error("Error pushing trace\n",e)}}}}(0,n,0,o,i);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},s),function(t,n,r,o,i,s){var u;n.debug("Initializing exceptions API");let l=null;W=null!==(u=r.parseStacktrace)&&void 0!==u?u:W;const c=e=>{n.debug("Changing stacktrace parser"),W=null!=e?e:W};return c(r.parseStacktrace),{changeStacktraceParser:c,getStacktraceParser:()=>W,pushError:(t,{skipDedupe:u,stackFrames:c,type:g,context:d}={})=>{g=g||t.name||K;const p={meta:o.value,payload:{type:g,value:t.message,timestamp:h(),trace:s.getTraceContext(),context:null!=d?d:{}},type:e.TransportItemType.EXCEPTION};(null==(c=null!=c?c:t.stack?null==W?void 0:W(t).frames:void 0)?void 0:c.length)&&(p.payload.stacktrace={frames:c});const f={type:p.payload.type,value:p.payload.value,stackTrace:p.payload.stacktrace,context:p.payload.context};u||!r.dedupe||a(l)||!m(f,l)?(l=f,n.debug("Pushing exception\n",p),i.execute(p)):n.debug("Skipping error push because it is the same as the last one\n",p.payload)}}}(0,n,r,o,i,s)),function(e,t,n,r,o){let a,i,s;t.debug("Initializing meta API");const u=e=>{i&&r.remove(i),i={user:e},r.add(i)},l=e=>{a&&r.remove(a),a={session:e},r.add(a)};return{setUser:u,resetUser:u,setSession:l,resetSession:l,getSession:()=>r.value.session,setView:e=>{s&&r.remove(s),s={view:e},r.add(s)},getView:()=>r.value.view}}(0,n,0,o)),function(t,n,r,o,i,s){n.debug("Initializing logs API");let u=null;return{pushLog:(t,{context:l,level:c,skipDedupe:g}={})=>{try{const d={type:e.TransportItemType.LOG,payload:{message:t.map((e=>{try{return String(e)}catch(e){return""}})).join(" "),level:null!=c?c:b,context:null!=l?l:{},timestamp:h(),trace:s.getTraceContext()},meta:o.value},p={message:d.payload.message,level:d.payload.level,context:d.payload.context};if(!g&&r.dedupe&&!a(u)&&m(p,u))return void n.debug("Skipping log push because it is the same as the last one\n",d.payload);u=p,n.debug("Pushing log\n",d),i.execute(d)}catch(e){n.error("Error pushing log\n",e)}}}}(0,n,r,o,i,s)),function(t,n,r,o,i,s){n.debug("Initializing measurements API");let u=null;return{pushMeasurement:(t,{skipDedupe:l,context:c}={})=>{var g;try{const d={type:e.TransportItemType.MEASUREMENT,payload:Object.assign(Object.assign({},t),{trace:s.getTraceContext(),timestamp:null!==(g=t.timestamp)&&void 0!==g?g:h(),context:null!=c?c:{}}),meta:o.value},p={type:d.payload.type,values:d.payload.values,context:d.payload.context};if(!l&&r.dedupe&&!a(u)&&m(p,u))return void n.debug("Skipping measurement push because it is the same as the last one\n",d.payload);u=p,n.debug("Pushing measurement\n",d),i.execute(d)}catch(e){n.error("Error pushing measurement\n",e)}}}}(0,n,r,o,i,s)),function(t,n,r,o,i,s){let u=null;return{pushEvent:(t,l,c,{skipDedupe:g}={})=>{try{const d={meta:o.value,payload:{name:t,domain:null!=c?c:r.eventDomain,attributes:l,timestamp:h(),trace:s.getTraceContext()},type:e.TransportItemType.EVENT},p={name:d.payload.name,attributes:d.payload.attributes,domain:d.payload.domain};if(!g&&r.dedupe&&!a(u)&&m(p,u))return void n.debug("Skipping event push because it is the same as the last one\n",d.payload);u=p,n.debug("Pushing event\n",d),i.execute(d)}catch(e){n.error("Error pushing event",e)}}}}(0,n,r,o,i,s))}const _="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof self?self:void 0;const X="1.2.2";const q="_faroInternal";function J(e){e.config.isolate?e.internalLogger.debug("Skipping registering internal Faro instance on global object"):(e.internalLogger.debug("Registering internal Faro instance on global object"),Object.defineProperty(_,q,{configurable:!1,enumerable:!1,writable:!1,value:e}))}function Q(){return q in _}function Y(t,n,r,o,a,i,s){return n.debug("Initializing Faro"),e.faro={api:i,config:r,instrumentations:s,internalLogger:n,metas:o,pause:a.pause,transports:a,unpatchedConsole:t,unpause:a.unpause},J(e.faro),function(e){if(e.config.preventGlobalExposure)e.internalLogger.debug("Skipping registering public Faro instance in the global scope");else{if(e.internalLogger.debug(`Registering public faro reference in the global scope using "${e.config.globalObjectKey}" key`),e.config.globalObjectKey in _)return void e.internalLogger.warn(`Skipping global registration due to key "${e.config.globalObjectKey}" being used already. Please set "globalObjectKey" to something else or set "preventGlobalExposure" to "true"`);Object.defineProperty(_,e.config.globalObjectKey,{configurable:!1,writable:!1,value:e})}}(e.faro),e.faro}e.faro={};return e.BaseExtension=U,e.BaseInstrumentation=class extends U{constructor(){super(...arguments),this.api={},this.transports={}}},e.BaseTransport=class extends U{isBatched(){return!1}getIgnoreUrls(){return[]}},e.Conventions={EventNames:{CLICK:"click",NAVIGATION:"navigation",SESSION_START:"session_start",VIEW_CHANGED:"view_changed"}},e.VERSION=X,e.allLogLevels=y,e.createInternalLogger=G,e.createPromiseBuffer=function(e){const{size:t,concurrency:n}=e,r=[];let o=0;const a=()=>{if(o<n&&r.length){const{producer:e,resolve:t,reject:n}=r.shift();o++,e().then((e=>{o--,a(),t(e)}),(e=>{o--,a(),n(e)}))}};return{add:e=>{if(r.length+o>=t)throw new Error("Task buffer full");return new Promise(((t,n)=>{r.push({producer:e,resolve:t,reject:n}),a()}))}}},e.dateNow=function(){return Date.now()},e.deepEqual=m,e.defaultBatchingConfig={enabled:!0,sendTimeout:250,itemLimit:50},e.defaultExceptionType=K,e.defaultGlobalObjectKey="faro",e.defaultInternalLoggerLevel=B,e.defaultLogLevel=b,e.defaultUnpatchedConsole=F,e.genShortID=function(e=10){return Array.from(Array(e)).map((()=>T[Math.floor(Math.random()*T.length)])).join("")},e.getCurrentTimestamp=h,e.getInternalFaroFromGlobalObject=function(){return _[q]},e.getTransportBody=function(t){let n={meta:{}};return void 0!==t[0]&&(n.meta=t[0].meta),t.forEach((t=>{switch(t.type){case e.TransportItemType.LOG:case e.TransportItemType.EVENT:case e.TransportItemType.EXCEPTION:case e.TransportItemType.MEASUREMENT:const r=N[t.type],o=n[r];n=Object.assign(Object.assign({},n),{[r]:void 0===o?[t.payload]:[...o,t.payload]});break;case e.TransportItemType.TRACE:n=Object.assign(Object.assign({},n),{traces:V(n.traces,t.payload.resourceSpans)})}})),n},e.globalObject=_,e.initializeFaro=function(e){const t=D(e),n=z(t,e);if(Q()&&!e.isolate)return void n.error('Faro is already registered. Either add instrumentations, transports etc. to the global faro instance or use the "isolate" property');n.debug("Initializing");const r=function(e,t,n){let r=[],o=[];const a=()=>r.reduce(((e,t)=>Object.assign(e,l(t)?t():t)),{}),i=()=>{if(o.length){const e=a();o.forEach((t=>t(e)))}};return{add:(...e)=>{t.debug("Adding metas\n",e),r.push(...e),i()},remove:(...e)=>{t.debug("Removing metas\n",e),r=r.filter((t=>!e.includes(t))),i()},addListener:e=>{t.debug("Adding metas listener\n",e),o.push(e)},removeListener:e=>{t.debug("Removing metas listener\n",e),o=o.filter((t=>t!==e))},get value(){return a()}}}(0,n),o=function(e,t,n,r){var o;t.debug("Initializing transports");const a=[];let i=n.paused,s=[];const u=e=>{let t=e;for(const e of s){const n=t.map(e).filter(Boolean);if(0===n.length)return[];t=n}return t},l=e=>{const n=u(e);if(0!==n.length)for(const e of a)t.debug(`Transporting item using ${e.name}\n`,n),e.isBatched()&&e.send(n)},c=e=>{var r;const[o]=u([e]);if(void 0!==o)for(const e of a)t.debug(`Transporting item using ${e.name}\n`,o),e.isBatched()?(null===(r=n.batching)||void 0===r?void 0:r.enabled)||e.send([o]):e.send(o)};let g;return(null===(o=n.batching)||void 0===o?void 0:o.enabled)&&(g=new C(l,{sendTimeout:n.batching.sendTimeout,itemLimit:n.batching.itemLimit,paused:i})),{add:(...o)=>{t.debug("Adding transports"),o.forEach((o=>{t.debug(`Adding "${o.name}" transport`),a.some((e=>e===o))?t.warn(`Transport ${o.name} is already added`):(o.unpatchedConsole=e,o.internalLogger=t,o.config=n,o.metas=r,a.push(o))}))},addBeforeSendHooks:(...e)=>{t.debug("Adding beforeSendHooks\n",s),e.forEach((e=>{e&&s.push(e)}))},addIgnoreErrorsPatterns:(...e)=>{t.debug("Adding ignoreErrorsPatterns\n",e),e.forEach((e=>{e&&s.push(k(e))}))},getBeforeSendHooks:()=>[...s],execute:e=>{var t;i||((null===(t=n.batching)||void 0===t?void 0:t.enabled)?(null==g||g.addItem(e),c(e)):c(e))},isPaused:()=>i,pause:()=>{t.debug("Pausing transports"),null==g||g.pause(),i=!0},remove:(...e)=>{t.debug("Removing transports"),e.forEach((e=>{t.debug(`Removing "${e.name}" transport`);const n=a.indexOf(e);-1!==n?a.splice(n,1):t.warn(`Transport "${e.name}" is not added`)}))},removeBeforeSendHooks:(...e)=>{s.filter((t=>!e.includes(t)))},get transports(){return[...a]},unpause:()=>{t.debug("Unpausing transports"),null==g||g.start(),i=!1}}}(t,n,e,r),a=H(0,n,e,r,o),i=function(e,t,n,r,o,a){t.debug("Initializing instrumentations");const i=[];return{add:(...s)=>{t.debug("Adding instrumentations"),s.forEach((s=>{t.debug(`Adding "${s.name}" instrumentation`),i.some((e=>e.name===s.name))?t.warn(`Instrumentation ${s.name} is already added`):(s.unpatchedConsole=e,s.internalLogger=t,s.config=n,s.metas=r,s.transports=o,s.api=a,i.push(s),s.initialize())}))},get instrumentations(){return[...i]},remove:(...e)=>{t.debug("Removing instrumentations"),e.forEach((e=>{var n,r;t.debug(`Removing "${e.name}" instrumentation`);const o=i.reduce(((t,n,r)=>null===t&&n.name===e.name?r:null),null);o?(null===(r=(n=i[o]).destroy)||void 0===r||r.call(n),i.splice(o,1)):t.warn(`Instrumentation "${e.name}" is not added`)}))}}}(t,n,e,r,o,a),s=Y(t,n,e,r,o,a,i);return function(e){var t,n,r;const o={sdk:{name:"@grafana/faro-core",version:X,integrations:e.config.instrumentations.map((({name:e,version:t})=>({name:e,version:t})))}},a=null!==(n=null===(t=e.config.experimentalSessions)||void 0===t?void 0:t.session)&&void 0!==n?n:e.config.session;a&&e.api.setSession(a),e.config.app&&(o.app=e.config.app),e.config.user&&(o.user=e.config.user),e.config.view&&(o.view=e.config.view),e.metas.add(o,...null!==(r=e.config.metas)&&void 0!==r?r:[])}(s),function(e){e.transports.add(...e.config.transports),e.transports.addBeforeSendHooks(e.config.beforeSend),e.transports.addIgnoreErrorsPatterns(e.config.ignoreErrors)}(s),function(e){e.instrumentations.add(...e.config.instrumentations)}(s),s},e.internalGlobalObjectKey=q,e.isArray=c,e.isBoolean=e=>t(e,"boolean"),e.isDomError=e=>n(e,"DOMError"),e.isDomException=e=>n(e,"DOMException"),e.isElement=e=>p&&r(e,Element),e.isElementDefined=p,e.isError=e=>d&&r(e,Error),e.isErrorDefined=d,e.isErrorEvent=e=>n(e,"ErrorEvent"),e.isEvent=e=>g&&r(e,Event),e.isEventDefined=g,e.isFunction=l,e.isInstanceOf=r,e.isInt=e=>s(e)&&Number.isInteger(e),e.isInternalFaroOnGlobalObject=Q,e.isMap=e=>f&&r(e,Map),e.isMapDefined=f,e.isNull=a,e.isNumber=s,e.isObject=u,e.isPrimitive=e=>!u(e)&&!l(e),e.isRegExp=e=>n(e,"RegExp"),e.isString=i,e.isSymbol=e=>t(e,"symbol"),e.isSyntheticEvent=e=>u(e)&&"nativeEvent"in e&&"preventDefault"in e&&"stopPropagation"in e,e.isThenable=e=>l(null==e?void 0:e.then),e.isToString=n,e.isTypeof=t,e.isUndefined=o,e.noop=E,e.setInternalFaroOnGlobalObject=J,e.transportItemTypeToBodyKey=N,e}({});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Config } from '../../config';
|
|
2
|
+
import type { InternalLogger } from '../../internalLogger';
|
|
3
|
+
import type { Metas } from '../../metas';
|
|
4
|
+
import { Transports } from '../../transports';
|
|
5
|
+
import type { UnpatchedConsole } from '../../unpatchedConsole';
|
|
6
|
+
import type { TracesAPI } from '../traces';
|
|
7
|
+
import type { EventsAPI } from './types';
|
|
8
|
+
export declare function initializeEventsAPI(_unpatchedConsole: UnpatchedConsole, internalLogger: InternalLogger, config: Config, metas: Metas, transports: Transports, tracesApi: TracesAPI): EventsAPI;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { TraceContext } from '../traces';
|
|
2
|
+
export type EventAttributes = Record<string, string>;
|
|
3
|
+
export interface EventEvent {
|
|
4
|
+
name: string;
|
|
5
|
+
timestamp: string;
|
|
6
|
+
domain?: string;
|
|
7
|
+
attributes?: EventAttributes;
|
|
8
|
+
trace?: TraceContext;
|
|
9
|
+
}
|
|
10
|
+
export interface PushEventOptions {
|
|
11
|
+
skipDedupe?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface EventsAPI {
|
|
14
|
+
pushEvent: (name: string, attributes?: EventAttributes, domain?: string, options?: PushEventOptions) => void;
|
|
15
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const defaultExceptionType = "Error";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Config } from '../../config';
|
|
2
|
+
import type { InternalLogger } from '../../internalLogger';
|
|
3
|
+
import type { Metas } from '../../metas';
|
|
4
|
+
import type { Transports } from '../../transports';
|
|
5
|
+
import type { UnpatchedConsole } from '../../unpatchedConsole';
|
|
6
|
+
import type { TracesAPI } from '../traces';
|
|
7
|
+
import type { ExceptionsAPI } from './types';
|
|
8
|
+
export declare function initializeExceptionsAPI(_unpatchedConsole: UnpatchedConsole, internalLogger: InternalLogger, config: Config, metas: Metas, transports: Transports, tracesApi: TracesAPI): ExceptionsAPI;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { TraceContext } from '../traces';
|
|
2
|
+
export type StacktraceParser = (err: ExtendedError) => Stacktrace;
|
|
3
|
+
export interface ExceptionStackFrame {
|
|
4
|
+
filename: string;
|
|
5
|
+
function: string;
|
|
6
|
+
colno?: number;
|
|
7
|
+
lineno?: number;
|
|
8
|
+
}
|
|
9
|
+
export interface ExtendedError extends Error {
|
|
10
|
+
columnNumber?: number;
|
|
11
|
+
stacktrace?: Error['stack'];
|
|
12
|
+
}
|
|
13
|
+
export interface Stacktrace {
|
|
14
|
+
frames: ExceptionStackFrame[];
|
|
15
|
+
}
|
|
16
|
+
export type ExceptionContext = Record<string, string>;
|
|
17
|
+
export interface ExceptionEvent {
|
|
18
|
+
timestamp: string;
|
|
19
|
+
type: string;
|
|
20
|
+
value: string;
|
|
21
|
+
stacktrace?: Stacktrace;
|
|
22
|
+
trace?: TraceContext;
|
|
23
|
+
context?: ExceptionContext;
|
|
24
|
+
}
|
|
25
|
+
export interface PushErrorOptions {
|
|
26
|
+
skipDedupe?: boolean;
|
|
27
|
+
stackFrames?: ExceptionStackFrame[];
|
|
28
|
+
type?: string;
|
|
29
|
+
context?: ExceptionContext;
|
|
30
|
+
}
|
|
31
|
+
export interface ExceptionsAPI {
|
|
32
|
+
changeStacktraceParser: (stacktraceParser: StacktraceParser) => void;
|
|
33
|
+
getStacktraceParser: () => StacktraceParser | undefined;
|
|
34
|
+
pushError: (value: Error, options?: PushErrorOptions) => void;
|
|
35
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { initializeAPI } from './initialize';
|
|
2
|
+
export type { API, APIEvent } from './types';
|
|
3
|
+
export type { EventAttributes, EventEvent, EventsAPI } from './events';
|
|
4
|
+
export { defaultExceptionType } from './exceptions';
|
|
5
|
+
export type { ExceptionEvent, ExceptionStackFrame, ExceptionsAPI, ExtendedError, PushErrorOptions, Stacktrace, StacktraceParser, } from './exceptions';
|
|
6
|
+
export type { LogContext, LogEvent, LogsAPI, PushLogOptions } from './logs';
|
|
7
|
+
export type { MeasurementEvent, MeasurementsAPI, PushMeasurementOptions } from './measurements';
|
|
8
|
+
export type { MetaAPI } from './meta';
|
|
9
|
+
export type { OTELApi, TraceContext, TraceEvent, TracesAPI } from './traces';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Config } from '../config';
|
|
2
|
+
import type { InternalLogger } from '../internalLogger';
|
|
3
|
+
import type { Metas } from '../metas';
|
|
4
|
+
import type { Transports } from '../transports';
|
|
5
|
+
import type { UnpatchedConsole } from '../unpatchedConsole';
|
|
6
|
+
import type { API } from './types';
|
|
7
|
+
export declare function initializeAPI(unpatchedConsole: UnpatchedConsole, internalLogger: InternalLogger, config: Config, metas: Metas, transports: Transports): API;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Config } from '../../config';
|
|
2
|
+
import type { InternalLogger } from '../../internalLogger';
|
|
3
|
+
import type { Metas } from '../../metas';
|
|
4
|
+
import type { Transports } from '../../transports';
|
|
5
|
+
import type { UnpatchedConsole } from '../../unpatchedConsole';
|
|
6
|
+
import type { TracesAPI } from '../traces';
|
|
7
|
+
import type { LogsAPI } from './types';
|
|
8
|
+
export declare function initializeLogsAPI(_unpatchedConsole: UnpatchedConsole, internalLogger: InternalLogger, config: Config, metas: Metas, transports: Transports, tracesApi: TracesAPI): LogsAPI;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { LogLevel } from '../../utils';
|
|
2
|
+
import type { TraceContext } from '../traces';
|
|
3
|
+
export type LogContext = Record<string, string>;
|
|
4
|
+
export interface LogEvent {
|
|
5
|
+
context: LogContext;
|
|
6
|
+
level: LogLevel;
|
|
7
|
+
message: string;
|
|
8
|
+
timestamp: string;
|
|
9
|
+
trace?: TraceContext;
|
|
10
|
+
}
|
|
11
|
+
export interface PushLogOptions {
|
|
12
|
+
context?: LogContext;
|
|
13
|
+
level?: LogLevel;
|
|
14
|
+
skipDedupe?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface LogsAPI {
|
|
17
|
+
pushLog: (args: unknown[], options?: PushLogOptions) => void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Config } from '../../config';
|
|
2
|
+
import type { InternalLogger } from '../../internalLogger';
|
|
3
|
+
import type { Metas } from '../../metas';
|
|
4
|
+
import type { Transports } from '../../transports';
|
|
5
|
+
import type { UnpatchedConsole } from '../../unpatchedConsole';
|
|
6
|
+
import type { TracesAPI } from '../traces';
|
|
7
|
+
import type { MeasurementsAPI } from './types';
|
|
8
|
+
export declare function initializeMeasurementsAPI(_unpatchedConsole: UnpatchedConsole, internalLogger: InternalLogger, config: Config, metas: Metas, transports: Transports, tracesApi: TracesAPI): MeasurementsAPI;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { TraceContext } from '../traces';
|
|
2
|
+
export type MeasurementContext = Record<string, string>;
|
|
3
|
+
export interface MeasurementEvent<V extends {
|
|
4
|
+
[label: string]: number;
|
|
5
|
+
} = {
|
|
6
|
+
[label: string]: number;
|
|
7
|
+
}> {
|
|
8
|
+
type: string;
|
|
9
|
+
values: V;
|
|
10
|
+
timestamp: string;
|
|
11
|
+
trace?: TraceContext;
|
|
12
|
+
context?: MeasurementContext;
|
|
13
|
+
}
|
|
14
|
+
export interface PushMeasurementOptions {
|
|
15
|
+
skipDedupe?: boolean;
|
|
16
|
+
context?: MeasurementContext;
|
|
17
|
+
}
|
|
18
|
+
export interface MeasurementsAPI {
|
|
19
|
+
pushMeasurement: (payload: Omit<MeasurementEvent, 'timestamp'> & Partial<Pick<MeasurementEvent, 'timestamp'>>, options?: PushMeasurementOptions) => void;
|
|
20
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Config } from '../../config';
|
|
2
|
+
import type { InternalLogger } from '../../internalLogger';
|
|
3
|
+
import type { Metas } from '../../metas';
|
|
4
|
+
import type { Transports } from '../../transports';
|
|
5
|
+
import type { UnpatchedConsole } from '../../unpatchedConsole';
|
|
6
|
+
import type { MetaAPI } from './types';
|
|
7
|
+
export declare function initializeMetaAPI(_unpatchedConsole: UnpatchedConsole, internalLogger: InternalLogger, _config: Config, metas: Metas, _transports: Transports): MetaAPI;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { MetaSession, MetaUser, MetaView } from '../../metas';
|
|
2
|
+
export interface MetaAPI {
|
|
3
|
+
setUser: (user?: MetaUser | undefined) => void;
|
|
4
|
+
resetUser: () => void;
|
|
5
|
+
setSession: (session?: MetaSession | undefined) => void;
|
|
6
|
+
resetSession: () => void;
|
|
7
|
+
getSession: () => MetaSession | undefined;
|
|
8
|
+
setView: (view?: MetaView | undefined) => void;
|
|
9
|
+
getView: () => MetaView | undefined;
|
|
10
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Config } from '../../config';
|
|
2
|
+
import type { InternalLogger } from '../../internalLogger';
|
|
3
|
+
import type { Metas } from '../../metas';
|
|
4
|
+
import { Transports } from '../../transports';
|
|
5
|
+
import type { UnpatchedConsole } from '../../unpatchedConsole';
|
|
6
|
+
import type { TracesAPI } from './types';
|
|
7
|
+
export declare function initializeTracesAPI(_unpatchedConsole: UnpatchedConsole, internalLogger: InternalLogger, _config: Config, metas: Metas, transports: Transports): TracesAPI;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ContextAPI as OTELContextAPI, TraceAPI as OTELTraceAPI } from '@opentelemetry/api';
|
|
2
|
+
import type { IResourceSpans } from '@opentelemetry/otlp-transformer';
|
|
3
|
+
export interface TraceEvent {
|
|
4
|
+
resourceSpans?: IResourceSpans[];
|
|
5
|
+
}
|
|
6
|
+
export interface OTELApi {
|
|
7
|
+
trace: OTELTraceAPI;
|
|
8
|
+
context: OTELContextAPI;
|
|
9
|
+
}
|
|
10
|
+
export interface TracesAPI {
|
|
11
|
+
getOTEL: () => OTELApi | undefined;
|
|
12
|
+
getTraceContext: () => TraceContext | undefined;
|
|
13
|
+
initOTEL: (trace: OTELTraceAPI, context: OTELContextAPI) => void;
|
|
14
|
+
isOTELInitialized: () => boolean;
|
|
15
|
+
pushTraces: (traces: TraceEvent) => void;
|
|
16
|
+
}
|
|
17
|
+
export interface TraceContext {
|
|
18
|
+
trace_id: string;
|
|
19
|
+
span_id: string;
|
|
20
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { EventEvent, EventsAPI } from './events';
|
|
2
|
+
import type { ExceptionEvent, ExceptionsAPI } from './exceptions';
|
|
3
|
+
import type { LogEvent, LogsAPI } from './logs';
|
|
4
|
+
import type { MeasurementEvent, MeasurementsAPI } from './measurements';
|
|
5
|
+
import type { MetaAPI } from './meta';
|
|
6
|
+
import type { TraceEvent, TracesAPI } from './traces';
|
|
7
|
+
export type APIEvent = LogEvent | ExceptionEvent | MeasurementEvent | TraceEvent | EventEvent;
|
|
8
|
+
export type API = LogsAPI & ExceptionsAPI & MeasurementsAPI & TracesAPI & MetaAPI & EventsAPI;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { APIEvent, StacktraceParser } from '../api';
|
|
2
|
+
import type { Instrumentation } from '../instrumentations';
|
|
3
|
+
import type { InternalLoggerLevel } from '../internalLogger';
|
|
4
|
+
import type { MetaApp, MetaItem, MetaSession, MetaUser, MetaView } from '../metas';
|
|
5
|
+
import type { BatchExecutorOptions, BeforeSendHook, Transport } from '../transports';
|
|
6
|
+
import type { UnpatchedConsole } from '../unpatchedConsole';
|
|
7
|
+
export interface Config<P = APIEvent> {
|
|
8
|
+
app: MetaApp;
|
|
9
|
+
batching?: BatchExecutorOptions;
|
|
10
|
+
dedupe: boolean;
|
|
11
|
+
globalObjectKey: string;
|
|
12
|
+
instrumentations: Instrumentation[];
|
|
13
|
+
internalLoggerLevel: InternalLoggerLevel;
|
|
14
|
+
isolate: boolean;
|
|
15
|
+
metas: MetaItem[];
|
|
16
|
+
parseStacktrace: StacktraceParser;
|
|
17
|
+
paused: boolean;
|
|
18
|
+
preventGlobalExposure: boolean;
|
|
19
|
+
transports: Transport[];
|
|
20
|
+
unpatchedConsole: UnpatchedConsole;
|
|
21
|
+
beforeSend?: BeforeSendHook<P>;
|
|
22
|
+
ignoreErrors?: Patterns;
|
|
23
|
+
session?: MetaSession;
|
|
24
|
+
experimentalSessions?: {
|
|
25
|
+
enabled?: boolean;
|
|
26
|
+
persistent?: boolean;
|
|
27
|
+
session?: MetaSession;
|
|
28
|
+
onSessionChange?: (oldSession: MetaSession | null, newSession: MetaSession) => void;
|
|
29
|
+
};
|
|
30
|
+
user?: MetaUser;
|
|
31
|
+
view?: MetaView;
|
|
32
|
+
eventDomain?: string;
|
|
33
|
+
}
|
|
34
|
+
export type Patterns = Array<string | RegExp>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Config } from '../config';
|
|
2
|
+
import type { Metas } from '../metas';
|
|
3
|
+
import type { Extension } from './types';
|
|
4
|
+
export declare abstract class BaseExtension implements Extension {
|
|
5
|
+
abstract readonly name: string;
|
|
6
|
+
abstract readonly version: string;
|
|
7
|
+
unpatchedConsole: Console;
|
|
8
|
+
internalLogger: import("../internalLogger").InternalLogger;
|
|
9
|
+
config: Config<import("..").APIEvent>;
|
|
10
|
+
metas: Metas;
|
|
11
|
+
logDebug(...args: unknown[]): void;
|
|
12
|
+
logInfo(...args: unknown[]): void;
|
|
13
|
+
logWarn(...args: unknown[]): void;
|
|
14
|
+
logError(...args: unknown[]): void;
|
|
15
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Config } from '../config';
|
|
2
|
+
import type { InternalLogger } from '../internalLogger';
|
|
3
|
+
import type { Metas } from '../metas';
|
|
4
|
+
import type { UnpatchedConsole } from '../unpatchedConsole';
|
|
5
|
+
export interface Extension {
|
|
6
|
+
readonly name: string;
|
|
7
|
+
readonly version: string;
|
|
8
|
+
internalLogger: InternalLogger;
|
|
9
|
+
unpatchedConsole: UnpatchedConsole;
|
|
10
|
+
config: Config;
|
|
11
|
+
metas: Metas;
|
|
12
|
+
logDebug(...args: unknown[]): void;
|
|
13
|
+
logInfo(...args: unknown[]): void;
|
|
14
|
+
logWarn(...args: unknown[]): void;
|
|
15
|
+
logError(...args: unknown[]): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { Faro, internalGlobalObjectKey } from '../sdk';
|
|
3
|
+
export type GlobalObject<T = typeof globalThis | typeof global | typeof self> = T & {
|
|
4
|
+
[label: string]: Faro;
|
|
5
|
+
[internalGlobalObjectKey]: Faro;
|
|
6
|
+
};
|
|
7
|
+
export declare const globalObject: GlobalObject<typeof globalThis | (Window & typeof globalThis)>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export { defaultExceptionType } from './api';
|
|
2
|
+
export type { API, APIEvent, EventAttributes, EventEvent, EventsAPI, ExceptionEvent, ExceptionStackFrame, ExceptionsAPI, ExtendedError, LogContext, LogEvent, LogsAPI, MeasurementEvent, MeasurementsAPI, MetaAPI, OTELApi, PushErrorOptions, PushLogOptions, PushMeasurementOptions, Stacktrace, StacktraceParser, TraceContext, TraceEvent, TracesAPI, } from './api';
|
|
3
|
+
export { BaseExtension } from './extensions';
|
|
4
|
+
export type { Extension } from './extensions';
|
|
5
|
+
export { globalObject } from './globalObject';
|
|
6
|
+
export type { GlobalObject } from './globalObject';
|
|
7
|
+
export { initializeFaro } from './initialize';
|
|
8
|
+
export { defaultBatchingConfig, defaultGlobalObjectKey } from './config';
|
|
9
|
+
export type { Config, Patterns } from './config';
|
|
10
|
+
export { BaseInstrumentation } from './instrumentations';
|
|
11
|
+
export type { Instrumentation, Instrumentations } from './instrumentations';
|
|
12
|
+
export { createInternalLogger, defaultInternalLoggerLevel, InternalLoggerLevel } from './internalLogger';
|
|
13
|
+
export type { InternalLogger } from './internalLogger';
|
|
14
|
+
export type { Meta, MetaApp, MetaAttributes, MetaBrowser, MetaGetter, MetaItem, MetaPage, Metas, MetaSDK, MetaSDKIntegration, MetaSession, MetaUser, MetaView, } from './metas';
|
|
15
|
+
export { faro, getInternalFaroFromGlobalObject, internalGlobalObjectKey, isInternalFaroOnGlobalObject, setInternalFaroOnGlobalObject, } from './sdk';
|
|
16
|
+
export type { Faro } from './sdk';
|
|
17
|
+
export { Conventions } from './semantic';
|
|
18
|
+
export { BaseTransport, getTransportBody, TransportItemType, transportItemTypeToBodyKey } from './transports';
|
|
19
|
+
export type { BeforeSendHook, SendFn, Transport, TransportBody, TransportItem, TransportItemPayload, Transports, } from './transports';
|
|
20
|
+
export { defaultUnpatchedConsole } from './unpatchedConsole';
|
|
21
|
+
export type { UnpatchedConsole } from './unpatchedConsole';
|
|
22
|
+
export { allLogLevels, createPromiseBuffer, deepEqual, defaultLogLevel, genShortID, getCurrentTimestamp, isArray, isBoolean, isDomError, isDomException, isElement, isElementDefined, isError, isErrorDefined, isErrorEvent, isEvent, isEventDefined, isFunction, isInstanceOf, isInt, isMap, isMapDefined, isNull, isNumber, isObject, isPrimitive, isRegExp, isString, isSymbol, isSyntheticEvent, isThenable, isToString, isTypeof, isUndefined, LogLevel, noop, dateNow, } from './utils';
|
|
23
|
+
export type { BaseObject, BaseObjectKey, BaseObjectPrimitiveValue, BaseObjectValue, BufferItem, PromiseBuffer, PromiseBufferOptions, PromiseProducer, } from './utils';
|
|
24
|
+
export { VERSION } from './version';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { API } from '../api';
|
|
2
|
+
import { BaseExtension } from '../extensions';
|
|
3
|
+
import type { Transports } from '../transports';
|
|
4
|
+
import type { Instrumentation } from './types';
|
|
5
|
+
export declare abstract class BaseInstrumentation extends BaseExtension implements Instrumentation {
|
|
6
|
+
api: API;
|
|
7
|
+
transports: Transports;
|
|
8
|
+
abstract initialize(): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { API } from '../api';
|
|
2
|
+
import type { Config } from '../config';
|
|
3
|
+
import type { InternalLogger } from '../internalLogger';
|
|
4
|
+
import type { Metas } from '../metas';
|
|
5
|
+
import type { Transports } from '../transports';
|
|
6
|
+
import type { UnpatchedConsole } from '../unpatchedConsole';
|
|
7
|
+
import type { Instrumentations } from './types';
|
|
8
|
+
export declare function initializeInstrumentations(unpatchedConsole: UnpatchedConsole, internalLogger: InternalLogger, config: Config, metas: Metas, transports: Transports, api: API): Instrumentations;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { API } from '../api';
|
|
2
|
+
import type { Extension } from '../extensions';
|
|
3
|
+
import type { Transports } from '../transports';
|
|
4
|
+
export interface Instrumentation extends Extension {
|
|
5
|
+
api: API;
|
|
6
|
+
transports: Transports;
|
|
7
|
+
initialize: VoidFunction;
|
|
8
|
+
destroy?: VoidFunction;
|
|
9
|
+
}
|
|
10
|
+
export interface Instrumentations {
|
|
11
|
+
add: (...instrumentations: Instrumentation[]) => void;
|
|
12
|
+
instrumentations: Instrumentation[];
|
|
13
|
+
remove: (...instrumentations: Instrumentation[]) => void;
|
|
14
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { InternalLogger } from './types';
|
|
2
|
+
export declare enum InternalLoggerLevel {
|
|
3
|
+
OFF = 0,
|
|
4
|
+
ERROR = 1,
|
|
5
|
+
WARN = 2,
|
|
6
|
+
INFO = 3,
|
|
7
|
+
VERBOSE = 4
|
|
8
|
+
}
|
|
9
|
+
export declare const defaultInternalLoggerPrefix = "Faro";
|
|
10
|
+
export declare const defaultInternalLogger: InternalLogger;
|
|
11
|
+
export declare const defaultInternalLoggerLevel = InternalLoggerLevel.ERROR;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { UnpatchedConsole } from '../unpatchedConsole';
|
|
2
|
+
import { InternalLoggerLevel } from './const';
|
|
3
|
+
import type { InternalLogger } from './types';
|
|
4
|
+
export declare function createInternalLogger(unpatchedConsole?: UnpatchedConsole, internalLoggerLevel?: InternalLoggerLevel): InternalLogger;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { defaultInternalLogger, defaultInternalLoggerLevel, InternalLoggerLevel } from './const';
|
|
2
|
+
export { createInternalLogger } from './createInternalLogger';
|
|
3
|
+
export { initializeInternalLogger, internalLogger } from './initialize';
|
|
4
|
+
export type { InternalLogger } from './types';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Config } from '../config';
|
|
2
|
+
import type { UnpatchedConsole } from '../unpatchedConsole';
|
|
3
|
+
import type { InternalLogger } from './types';
|
|
4
|
+
export declare let internalLogger: InternalLogger;
|
|
5
|
+
export declare function initializeInternalLogger(unpatchedConsole: UnpatchedConsole, config: Config): InternalLogger;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { initializeMetas } from './initialize';
|
|
2
|
+
export { registerInitialMetas } from './registerInitial';
|
|
3
|
+
export type { Meta, MetaApp, MetaAttributes, MetaBrowser, MetaGetter, MetaItem, MetaK6, MetaPage, MetaSDK, MetaSDKIntegration, MetaSession, MetaUser, MetaView, Metas, } from './types';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Config } from '../config';
|
|
2
|
+
import type { InternalLogger } from '../internalLogger';
|
|
3
|
+
import type { UnpatchedConsole } from '../unpatchedConsole';
|
|
4
|
+
import type { Metas } from './types';
|
|
5
|
+
export declare function initializeMetas(_unpatchedConsole: UnpatchedConsole, internalLogger: InternalLogger, _config: Config): Metas;
|