@grafana/faro-core 1.0.5 → 1.1.1

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.
Files changed (136) hide show
  1. package/.browserslistrc +1 -0
  2. package/README.md +43 -0
  3. package/dist/bundle/faro-core.iife.js +1 -1
  4. package/dist/cjs/api/exceptions/initialize.js +3 -1
  5. package/dist/cjs/api/exceptions/initialize.js.map +1 -1
  6. package/dist/cjs/api/exceptions/types.js.map +1 -1
  7. package/dist/cjs/api/logs/types.js.map +1 -1
  8. package/dist/cjs/config/const.js +6 -1
  9. package/dist/cjs/config/const.js.map +1 -1
  10. package/dist/cjs/config/index.js +2 -1
  11. package/dist/cjs/config/index.js.map +1 -1
  12. package/dist/cjs/config/types.js.map +1 -1
  13. package/dist/cjs/globalObject/globalObject.js +7 -1
  14. package/dist/cjs/globalObject/globalObject.js.map +1 -1
  15. package/dist/cjs/index.js +3 -2
  16. package/dist/cjs/index.js.map +1 -1
  17. package/dist/cjs/testUtils/mockConfig.js +2 -0
  18. package/dist/cjs/testUtils/mockConfig.js.map +1 -1
  19. package/dist/cjs/testUtils/mockTransport.js +4 -3
  20. package/dist/cjs/testUtils/mockTransport.js.map +1 -1
  21. package/dist/cjs/transports/base.js +3 -0
  22. package/dist/cjs/transports/base.js.map +1 -1
  23. package/dist/cjs/transports/batchExecutor.js +83 -0
  24. package/dist/cjs/transports/batchExecutor.js.map +1 -0
  25. package/dist/cjs/transports/const.js.map +1 -1
  26. package/dist/cjs/transports/index.js.map +1 -1
  27. package/dist/cjs/transports/initialize.js +69 -14
  28. package/dist/cjs/transports/initialize.js.map +1 -1
  29. package/dist/cjs/transports/types.js.map +1 -1
  30. package/dist/cjs/transports/utils.js +65 -6
  31. package/dist/cjs/transports/utils.js.map +1 -1
  32. package/dist/cjs/version.js +1 -1
  33. package/dist/cjs/version.js.map +1 -1
  34. package/dist/esm/api/exceptions/initialize.js +3 -1
  35. package/dist/esm/api/exceptions/initialize.js.map +1 -1
  36. package/dist/esm/api/exceptions/types.js.map +1 -1
  37. package/dist/esm/api/logs/types.js.map +1 -1
  38. package/dist/esm/config/const.js +5 -0
  39. package/dist/esm/config/const.js.map +1 -1
  40. package/dist/esm/config/index.js +1 -1
  41. package/dist/esm/config/index.js.map +1 -1
  42. package/dist/esm/config/types.js.map +1 -1
  43. package/dist/esm/globalObject/globalObject.js +7 -1
  44. package/dist/esm/globalObject/globalObject.js.map +1 -1
  45. package/dist/esm/index.js +1 -1
  46. package/dist/esm/index.js.map +1 -1
  47. package/dist/esm/testUtils/mockConfig.js +2 -0
  48. package/dist/esm/testUtils/mockConfig.js.map +1 -1
  49. package/dist/esm/testUtils/mockTransport.js +4 -3
  50. package/dist/esm/testUtils/mockTransport.js.map +1 -1
  51. package/dist/esm/transports/base.js +3 -0
  52. package/dist/esm/transports/base.js.map +1 -1
  53. package/dist/esm/transports/batchExecutor.js +67 -0
  54. package/dist/esm/transports/batchExecutor.js.map +1 -0
  55. package/dist/esm/transports/const.js.map +1 -1
  56. package/dist/esm/transports/index.js.map +1 -1
  57. package/dist/esm/transports/initialize.js +66 -12
  58. package/dist/esm/transports/initialize.js.map +1 -1
  59. package/dist/esm/transports/types.js.map +1 -1
  60. package/dist/esm/transports/utils.js +41 -3
  61. package/dist/esm/transports/utils.js.map +1 -1
  62. package/dist/esm/version.js +1 -1
  63. package/dist/esm/version.js.map +1 -1
  64. package/dist/spec/core/src/api/exceptions/initialize.js +3 -1
  65. package/dist/spec/core/src/api/exceptions/initialize.js.map +1 -1
  66. package/dist/spec/core/src/api/exceptions/initialize.test.js +13 -0
  67. package/dist/spec/core/src/api/exceptions/initialize.test.js.map +1 -1
  68. package/dist/spec/core/src/api/exceptions/types.js.map +1 -1
  69. package/dist/spec/core/src/api/logs/initialize.test.js +1 -1
  70. package/dist/spec/core/src/api/logs/initialize.test.js.map +1 -1
  71. package/dist/spec/core/src/api/logs/types.js.map +1 -1
  72. package/dist/spec/core/src/config/const.js +6 -1
  73. package/dist/spec/core/src/config/const.js.map +1 -1
  74. package/dist/spec/core/src/config/index.js +2 -1
  75. package/dist/spec/core/src/config/index.js.map +1 -1
  76. package/dist/spec/core/src/config/types.js.map +1 -1
  77. package/dist/spec/core/src/globalObject/globalObject.js +7 -1
  78. package/dist/spec/core/src/globalObject/globalObject.js.map +1 -1
  79. package/dist/spec/core/src/index.js +3 -2
  80. package/dist/spec/core/src/index.js.map +1 -1
  81. package/dist/spec/core/src/testUtils/mockConfig.js +2 -0
  82. package/dist/spec/core/src/testUtils/mockConfig.js.map +1 -1
  83. package/dist/spec/core/src/testUtils/mockTransport.js +4 -3
  84. package/dist/spec/core/src/testUtils/mockTransport.js.map +1 -1
  85. package/dist/spec/core/src/transports/base.js +3 -0
  86. package/dist/spec/core/src/transports/base.js.map +1 -1
  87. package/dist/spec/core/src/transports/batchExecutor.js +83 -0
  88. package/dist/spec/core/src/transports/batchExecutor.js.map +1 -0
  89. package/dist/spec/core/src/transports/batchExecutor.test.js +179 -0
  90. package/dist/spec/core/src/transports/batchExecutor.test.js.map +1 -0
  91. package/dist/spec/core/src/transports/const.js.map +1 -1
  92. package/dist/spec/core/src/transports/index.js.map +1 -1
  93. package/dist/spec/core/src/transports/initialize.js +69 -14
  94. package/dist/spec/core/src/transports/initialize.js.map +1 -1
  95. package/dist/spec/core/src/transports/transports.test.js +68 -3
  96. package/dist/spec/core/src/transports/transports.test.js.map +1 -1
  97. package/dist/spec/core/src/transports/types.js.map +1 -1
  98. package/dist/spec/core/src/transports/utils.js +65 -6
  99. package/dist/spec/core/src/transports/utils.js.map +1 -1
  100. package/dist/spec/core/src/transports/utils.test.js +216 -0
  101. package/dist/spec/core/src/transports/utils.test.js.map +1 -0
  102. package/dist/spec/core/src/version.js +1 -1
  103. package/dist/spec/core/src/version.js.map +1 -1
  104. package/dist/types/api/exceptions/types.d.ts +3 -0
  105. package/dist/types/api/logs/types.d.ts +2 -2
  106. package/dist/types/config/const.d.ts +5 -0
  107. package/dist/types/config/index.d.ts +1 -1
  108. package/dist/types/config/types.d.ts +3 -2
  109. package/dist/types/core/src/api/exceptions/types.d.ts +3 -0
  110. package/dist/types/core/src/api/logs/types.d.ts +2 -2
  111. package/dist/types/core/src/config/const.d.ts +5 -0
  112. package/dist/types/core/src/config/index.d.ts +1 -1
  113. package/dist/types/core/src/config/types.d.ts +3 -2
  114. package/dist/types/core/src/globalObject/globalObject.d.ts +1 -1
  115. package/dist/types/core/src/index.d.ts +2 -2
  116. package/dist/types/core/src/testUtils/mockTransport.d.ts +3 -2
  117. package/dist/types/core/src/transports/base.d.ts +2 -1
  118. package/dist/types/core/src/transports/batchExecutor.d.ts +16 -0
  119. package/dist/types/core/src/transports/batchExecutor.test.d.ts +1 -0
  120. package/dist/types/core/src/transports/const.d.ts +2 -1
  121. package/dist/types/core/src/transports/index.d.ts +1 -1
  122. package/dist/types/core/src/transports/types.d.ts +9 -0
  123. package/dist/types/core/src/transports/utils.d.ts +4 -1
  124. package/dist/types/core/src/transports/utils.test.d.ts +1 -0
  125. package/dist/types/core/src/version.d.ts +1 -1
  126. package/dist/types/globalObject/globalObject.d.ts +1 -1
  127. package/dist/types/index.d.ts +2 -2
  128. package/dist/types/testUtils/mockTransport.d.ts +3 -2
  129. package/dist/types/transports/base.d.ts +2 -1
  130. package/dist/types/transports/batchExecutor.d.ts +16 -0
  131. package/dist/types/transports/const.d.ts +2 -1
  132. package/dist/types/transports/index.d.ts +1 -1
  133. package/dist/types/transports/types.d.ts +9 -0
  134. package/dist/types/transports/utils.d.ts +4 -1
  135. package/dist/types/version.d.ts +1 -1
  136. package/package.json +8 -3
@@ -0,0 +1 @@
1
+ supports es6-module
package/README.md CHANGED
@@ -34,6 +34,9 @@ Faro Web SDK requires a configuration object parameter with the following proper
34
34
  | `paused` | Flag for initializing the Faro instance as paused | `boolean` | |
35
35
  | `preventGlobalExposure` | Flag for toggling the definition on the global object | `boolean` | |
36
36
  | `transports` | Array of transports that should be used | `Transport[]` | |
37
+ | `batching.enabled` | Enable batch sending of events | `boolean` | `true` |
38
+ | `batching.sendTimeout` | The interval in which to send event batches | `number` | 250 |
39
+ | `batching.itemLimit` | The size of the signal buffer before the batch is sent (overrides interval) | `number` | 50 |
37
40
 
38
41
  Besides the mandatory properties, Faro configuration also supports the following optional properties:
39
42
 
@@ -94,6 +97,13 @@ The `api` property on the Faro instance contains all the necessary methods to pu
94
97
  },
95
98
  ],
96
99
  });
100
+
101
+ faro.api.pushError(new Error('This is a log with context'), {
102
+ context: {
103
+ message: 'React error boundary',
104
+ componentStackTrace: {...}
105
+ },
106
+ });
97
107
  ```
98
108
 
99
109
  ## Events
@@ -282,6 +292,39 @@ initializeFaro({
282
292
  });
283
293
  ```
284
294
 
295
+ The transports also support batch processing wiht the `batchEnabled` flag set to true
296
+ and a positive, non zero `batchSendTimeout`. The batch executor will group items that share the same `metas` together
297
+ and call the `send` function for each group of signals.
298
+
299
+ ### Batched transports
300
+
301
+ Currently the Transport interface supports implementations of the `send` function that accept either a `TransportItem`
302
+ or an array of them. The latter is useful when you want to batch process signals with your custom transport. In order
303
+ to achieve this, you should override the `isBatched` method of the BaseTransport.
304
+
305
+ ```ts
306
+ export class MyTransport extends BaseTransport {
307
+ async send(item: TransportItem): Promise<void> {
308
+ // do something with the item
309
+ }
310
+ }
311
+
312
+ /* should be */
313
+
314
+ export class MyBatchedTransport extends BaseTransport {
315
+ async send(items: TransportItem[]): Promise<void> {
316
+ // do something with the array of items
317
+ // all of them share the same metas
318
+ }
319
+
320
+ // This is required for the transports layer to differentiate
321
+ // between the two types of Transport implementations
322
+ override isBatched(): boolean {
323
+ return true;
324
+ }
325
+ }
326
+ ```
327
+
285
328
  ## Unpatched console
286
329
 
287
330
  Some instrumentations might override the default console methods but Faro instance provides a way to access the
@@ -1 +1 @@
1
- var GrafanaFaroCore=function(e){"use strict";function n(e,n){return typeof e===n}function t(e,n){return Object.prototype.toString.call(e)===`[object ${n}]`}function r(e,n){try{return e instanceof n}catch(e){return!1}}const o=e=>n(e,"undefined"),a=e=>n(e,"null"),i=e=>n(e,"string"),s=e=>n(e,"number")&&!isNaN(e)||n(e,"bigint"),u=e=>!a(e)&&n(e,"object"),l=e=>n(e,"function"),g=e=>t(e,"Array"),c=!o(Event),d="undefined"!=typeof Error,p="undefined"!=typeof Element,f="undefined"!=typeof Map;function m(e,t){if(e===t)return!0;if(n(e,"number")&&isNaN(e))return n(t,"number")&&isNaN(t);const r=g(e),o=g(t);if(r!==o)return!1;if(r&&o){const n=e.length;if(n!==t.length)return!1;for(let r=n;0!=r--;)if(!m(e[r],t[r]))return!1;return!0}const a=u(e),i=u(t);if(a!==i)return!1;if(e&&t&&a&&i){const n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let e of n)if(!r.includes(e))return!1;for(let r of n)if(!m(e[r],t[r]))return!1;return!0}return!1}function b(){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 y=e.LogLevel.LOG,E=[e.LogLevel.TRACE,e.LogLevel.DEBUG,e.LogLevel.INFO,e.LogLevel.LOG,e.LogLevel.WARN,e.LogLevel.ERROR];function h(){}const I="abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ0123456789";var L;e.TransportItemType=void 0,(L=e.TransportItemType||(e.TransportItemType={})).EXCEPTION="exception",L.LOG="log",L.MEASUREMENT="measurement",L.TRACE="trace",L.EVENT="event";const T={[e.TransportItemType.EXCEPTION]:"exceptions",[e.TransportItemType.LOG]:"logs",[e.TransportItemType.MEASUREMENT]:"measurements",[e.TransportItemType.TRACE]:"traces",[e.TransportItemType.EVENT]:"events"};function O(n){return t=>{if(t.type===e.TransportItemType.EXCEPTION&&t.payload){const e=t.payload,r=`${e.type}: ${e.value}`;if(function(e,n){return e.some((e=>i(e)?n.includes(e):!!n.match(e)))}(n,r))return null}return t}}var R;e.InternalLoggerLevel=void 0,(R=e.InternalLoggerLevel||(e.InternalLoggerLevel={}))[R.OFF=0]="OFF",R[R.ERROR=1]="ERROR",R[R.WARN=2]="WARN",R[R.INFO=3]="INFO",R[R.VERBOSE=4]="VERBOSE";const S={debug:h,error:h,info:h,prefix:"Faro",warn:h},x=e.InternalLoggerLevel.ERROR,A=Object.assign({},console);let j=A;function N(e){var n;return j=null!==(n=e.unpatchedConsole)&&void 0!==n?n:j,j}function k(n=A,t=x){const r=S;return t>e.InternalLoggerLevel.OFF&&(r.error=t>=e.InternalLoggerLevel.ERROR?function(...e){n.error(`${r.prefix}\n`,...e)}:h,r.warn=t>=e.InternalLoggerLevel.WARN?function(...e){n.warn(`${r.prefix}\n`,...e)}:h,r.info=t>=e.InternalLoggerLevel.INFO?function(...e){n.info(`${r.prefix}\n`,...e)}:h,r.debug=t>=e.InternalLoggerLevel.VERBOSE?function(...e){n.debug(`${r.prefix}\n`,...e)}:h),r}let C=S;function P(e,n){return C=k(e,n.internalLoggerLevel),C}class w{constructor(){this.unpatchedConsole=A,this.internalLogger=S,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)}}const F="Error";let $;function D(n,t,r,o,i){t.debug("Initializing API");const s=function(n,t,r,o,a){let i;return t.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,n)=>{t.debug("Initializing OpenTelemetry"),i={trace:e,context:n}},isOTELInitialized:()=>!!i,pushTraces:n=>{try{const r={type:e.TransportItemType.TRACE,payload:n,meta:o.value};t.debug("Pushing trace\n",r),a.execute(r)}catch(e){t.error("Error pushing trace\n",e)}}}}(0,t,0,o,i);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},s),function(n,t,r,o,i,s){var u;t.debug("Initializing exceptions API");let l=null;$=null!==(u=r.parseStacktrace)&&void 0!==u?u:$;const g=e=>{t.debug("Changing stacktrace parser"),$=null!=e?e:$};return g(r.parseStacktrace),{changeStacktraceParser:g,getStacktraceParser:()=>$,pushError:(n,{skipDedupe:u,stackFrames:g,type:c}={})=>{c=c||n.name||F;const d={meta:o.value,payload:{type:c,value:n.message,timestamp:b(),trace:s.getTraceContext()},type:e.TransportItemType.EXCEPTION};(null==(g=null!=g?g:n.stack?null==$?void 0:$(n).frames:void 0)?void 0:g.length)&&(d.payload.stacktrace={frames:g});const p={type:d.payload.type,value:d.payload.value,stackTrace:d.payload.stacktrace};u||!r.dedupe||a(l)||!m(p,l)?(l=p,t.debug("Pushing exception\n",d),i.execute(d)):t.debug("Skipping error push because it is the same as the last one\n",d.payload)}}}(0,t,r,o,i,s)),function(e,n,t,r,o){let a,i,s;n.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,t,0,o)),function(n,t,r,o,i,s){t.debug("Initializing logs API");let u=null;return{pushLog:(n,{context:l,level:g,skipDedupe:c}={})=>{try{const d={type:e.TransportItemType.LOG,payload:{message:n.map((e=>{try{return String(e)}catch(e){return""}})).join(" "),level:null!=g?g:y,context:null!=l?l:{},timestamp:b(),trace:s.getTraceContext()},meta:o.value},p={message:d.payload.message,level:d.payload.level,context:d.payload.context};if(!c&&r.dedupe&&!a(u)&&m(p,u))return void t.debug("Skipping log push because it is the same as the last one\n",d.payload);u=p,t.debug("Pushing log\n",d),i.execute(d)}catch(e){t.error("Error pushing log\n",e)}}}}(0,t,r,o,i,s)),function(n,t,r,o,i,s){t.debug("Initializing measurements API");let u=null;return{pushMeasurement:(n,{skipDedupe:l}={})=>{var g;try{const c={type:e.TransportItemType.MEASUREMENT,payload:Object.assign(Object.assign({},n),{trace:s.getTraceContext(),timestamp:null!==(g=n.timestamp)&&void 0!==g?g:b()}),meta:o.value},d={type:c.payload.type,values:c.payload.values};if(!l&&r.dedupe&&!a(u)&&m(d,u))return void t.debug("Skipping measurement push because it is the same as the last one\n",c.payload);u=d,t.debug("Pushing measurement\n",c),i.execute(c)}catch(e){t.error("Error pushing measurement\n",e)}}}}(0,t,r,o,i,s)),function(n,t,r,o,i,s){let u=null;return{pushEvent:(n,l,g,{skipDedupe:c}={})=>{try{const d={meta:o.value,payload:{name:n,domain:null!=g?g:r.eventDomain,attributes:l,timestamp:b(),trace:s.getTraceContext()},type:e.TransportItemType.EVENT},p={name:d.payload.name,attributes:d.payload.attributes,domain:d.payload.domain};if(!c&&r.dedupe&&!a(u)&&m(p,u))return void t.debug("Skipping event push because it is the same as the last one\n",d.payload);u=p,t.debug("Pushing event\n",d),i.execute(d)}catch(e){t.error("Error pushing event",e)}}}}(0,t,r,o,i,s))}const G="undefined"==typeof window?global:window;const B="1.0.5";const z="_faroInternal";function M(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(G,z,{configurable:!1,enumerable:!1,writable:!1,value:e}))}function U(){return z in G}function V(n,t,r,o,a,i,s){return t.debug("Initializing Faro"),e.faro={api:i,config:r,instrumentations:s,internalLogger:t,metas:o,pause:a.pause,transports:a,unpatchedConsole:n,unpause:a.unpause},M(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 G)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(G,e.config.globalObjectKey,{configurable:!1,writable:!1,value:e})}}(e.faro),e.faro}e.faro={};return e.BaseExtension=w,e.BaseInstrumentation=class extends w{constructor(){super(...arguments),this.api={},this.transports={}}},e.BaseTransport=class extends w{getIgnoreUrls(){return[]}},e.Conventions={EventNames:{CLICK:"click",NAVIGATION:"navigation",SESSION_START:"session_start",VIEW_CHANGED:"view_changed"}},e.VERSION=B,e.allLogLevels=E,e.createInternalLogger=k,e.createPromiseBuffer=function(e){const{size:n,concurrency:t}=e,r=[];let o=0;const a=()=>{if(o<t&&r.length){const{producer:e,resolve:n,reject:t}=r.shift();o++,e().then((e=>{o--,a(),n(e)}),(e=>{o--,a(),t(e)}))}};return{add:e=>{if(r.length+o>=n)throw new Error("Task buffer full");return new Promise(((n,t)=>{r.push({producer:e,resolve:n,reject:t}),a()}))}}},e.deepEqual=m,e.defaultExceptionType=F,e.defaultGlobalObjectKey="faro",e.defaultInternalLoggerLevel=x,e.defaultLogLevel=y,e.defaultUnpatchedConsole=A,e.genShortID=function(e=10){return Array.from(Array(e)).map((()=>I[Math.floor(Math.random()*I.length)])).join("")},e.getCurrentTimestamp=b,e.getInternalFaroFromGlobalObject=function(){return G[z]},e.getTransportBody=function(n){return{[T[n.type]]:n.type===e.TransportItemType.TRACE?n.payload:[n.payload],meta:n.meta}},e.globalObject=G,e.initializeFaro=function(e){const n=N(e),t=P(n,e);if(U()&&!e.isolate)return void t.error('Faro is already registered. Either add instrumentations, transports etc. to the global faro instance or use the "isolate" property');t.debug("Initializing");const r=function(e,n,t){let r=[],o=[];const a=()=>r.reduce(((e,n)=>Object.assign(e,l(n)?n():n)),{}),i=()=>{if(o.length){const e=a();o.forEach((n=>n(e)))}};return{add:(...e)=>{n.debug("Adding metas\n",e),r.push(...e),i()},remove:(...e)=>{n.debug("Removing metas\n",e),r=r.filter((n=>!e.includes(n))),i()},addListener:e=>{n.debug("Adding metas listener\n",e),o.push(e)},removeListener:e=>{n.debug("Removing metas listener\n",e),o=o.filter((n=>n!==e))},get value(){return a()}}}(0,t),o=function(e,n,t,r){n.debug("Initializing transports");const o=[];let a=t.paused,i=[];return{add:(...a)=>{n.debug("Adding transports"),a.forEach((a=>{n.debug(`Adding "${a.name}" transport`),o.some((e=>e===a))?n.warn(`Transport ${a.name} is already added`):(a.unpatchedConsole=e,a.internalLogger=n,a.config=t,a.metas=r,o.push(a))}))},addBeforeSendHooks:(...e)=>{n.debug("Adding beforeSendHooks\n",i),e.forEach((e=>{e&&i.push(e)}))},addIgnoreErrorsPatterns:(...e)=>{n.debug("Adding ignoreErrorsPatterns\n",e),e.forEach((e=>{e&&i.push(O(e))}))},getBeforeSendHooks:()=>[...i],execute:e=>{if(!a){let t=e;for(const e of i){const n=e(t);if(null===n)return;t=n}for(const e of o)n.debug(`Transporting item using ${e.name}\n`,t),e.send(t)}},isPaused:()=>a,pause:()=>{n.debug("Pausing transports"),a=!0},remove:(...e)=>{n.debug("Removing transports"),e.forEach((e=>{n.debug(`Removing "${e.name}" transport`);const t=o.indexOf(e);-1!==t?o.splice(t,1):n.warn(`Transport "${e.name}" is not added`)}))},removeBeforeSendHooks:(...e)=>{i.filter((n=>!e.includes(n)))},get transports(){return[...o]},unpause:()=>{n.debug("Unpausing transports"),a=!1}}}(n,t,e,r),a=D(0,t,e,r,o),i=function(e,n,t,r,o,a){n.debug("Initializing instrumentations");const i=[];return{add:(...s)=>{n.debug("Adding instrumentations"),s.forEach((s=>{n.debug(`Adding "${s.name}" instrumentation`),i.some((e=>e.name===s.name))?n.warn(`Instrumentation ${s.name} is already added`):(s.unpatchedConsole=e,s.internalLogger=n,s.config=t,s.metas=r,s.transports=o,s.api=a,i.push(s),s.initialize())}))},get instrumentations(){return[...i]},remove:(...e)=>{n.debug("Removing instrumentations"),e.forEach((e=>{var t,r;n.debug(`Removing "${e.name}" instrumentation`);const o=i.reduce(((n,t,r)=>null===n&&t.name===e.name?r:null),null);o?(null===(r=(t=i[o]).destroy)||void 0===r||r.call(t),i.splice(o,1)):n.warn(`Instrumentation "${e.name}" is not added`)}))}}}(n,t,e,r,o,a),s=V(n,t,e,r,o,a,i);return function(e){var n;const t={sdk:{name:"@grafana/faro-core",version:B,integrations:e.config.instrumentations.map((({name:e,version:n})=>({name:e,version:n})))}};e.config.session&&e.api.setSession(e.config.session),e.config.app&&(t.app=e.config.app),e.config.user&&(t.user=e.config.user),e.config.view&&(t.view=e.config.view),e.metas.add(t,...null!==(n=e.config.metas)&&void 0!==n?n:[])}(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=z,e.isArray=g,e.isBoolean=e=>n(e,"boolean"),e.isDomError=e=>t(e,"DOMError"),e.isDomException=e=>t(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=>t(e,"ErrorEvent"),e.isEvent=e=>c&&r(e,Event),e.isEventDefined=c,e.isFunction=l,e.isInstanceOf=r,e.isInt=e=>s(e)&&Number.isInteger(e),e.isInternalFaroOnGlobalObject=U,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=>t(e,"RegExp"),e.isString=i,e.isSymbol=e=>n(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=t,e.isTypeof=n,e.isUndefined=o,e.noop=h,e.setInternalFaroOnGlobalObject=M,e.transportItemTypeToBodyKey=T,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 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 A={};!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 A},set exports(e){A=e}});var S=O,x=A;L.exports=S;var R=I.murmur3=S;I.murmur2=x;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}={})=>{var c;try{const g={type:e.TransportItemType.MEASUREMENT,payload:Object.assign(Object.assign({},t),{trace:s.getTraceContext(),timestamp:null!==(c=t.timestamp)&&void 0!==c?c:h()}),meta:a.value},d={type:g.payload.type,values:g.payload.values};if(!l&&r.dedupe&&!o(u)&&m(d,u))return void n.debug("Skipping measurement push because it is the same as the last one\n",g.payload);u=d,n.debug("Pushing measurement\n",g),i.execute(g)}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.1.1";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}({});
@@ -16,7 +16,7 @@ function initializeExceptionsAPI(_unpatchedConsole, internalLogger, config, meta
16
16
  };
17
17
  var getStacktraceParser = function () { return stacktraceParser; };
18
18
  var pushError = function (error, _a) {
19
- var _b = _a === void 0 ? {} : _a, skipDedupe = _b.skipDedupe, stackFrames = _b.stackFrames, type = _b.type;
19
+ var _b = _a === void 0 ? {} : _a, skipDedupe = _b.skipDedupe, stackFrames = _b.stackFrames, type = _b.type, context = _b.context;
20
20
  type = type || error.name || const_1.defaultExceptionType;
21
21
  var item = {
22
22
  meta: metas.value,
@@ -25,6 +25,7 @@ function initializeExceptionsAPI(_unpatchedConsole, internalLogger, config, meta
25
25
  value: error.message,
26
26
  timestamp: (0, utils_1.getCurrentTimestamp)(),
27
27
  trace: tracesApi.getTraceContext(),
28
+ context: context !== null && context !== void 0 ? context : {},
28
29
  },
29
30
  type: transports_1.TransportItemType.EXCEPTION,
30
31
  };
@@ -38,6 +39,7 @@ function initializeExceptionsAPI(_unpatchedConsole, internalLogger, config, meta
38
39
  type: item.payload.type,
39
40
  value: item.payload.value,
40
41
  stackTrace: item.payload.stacktrace,
42
+ context: item.payload.context,
41
43
  };
42
44
  if (!skipDedupe && config.dedupe && !(0, utils_1.isNull)(lastPayload) && (0, utils_1.deepEqual)(testingPayload, lastPayload)) {
43
45
  internalLogger.debug('Skipping error push because it is the same as the last one\n', item.payload);
@@ -1 +1 @@
1
- {"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../../../src/api/exceptions/initialize.ts"],"names":[],"mappings":";;;AAGA,+CAAqD;AAGrD,qCAAqE;AAGrE,iCAA+C;AAG/C,IAAI,gBAA8C,CAAC;AAEnD,SAAgB,uBAAuB,CACrC,iBAAmC,EACnC,cAA8B,EAC9B,MAAc,EACd,KAAY,EACZ,UAAsB,EACtB,SAAoB;;IAEpB,cAAc,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAEpD,IAAI,WAAW,GAAiE,IAAI,CAAC;IAErF,gBAAgB,GAAG,MAAA,MAAM,CAAC,eAAe,mCAAI,gBAAgB,CAAC;IAE9D,IAAM,sBAAsB,GAA4C,UAAC,mBAAmB;QAC1F,cAAc,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAEnD,gBAAgB,GAAG,mBAAmB,aAAnB,mBAAmB,cAAnB,mBAAmB,GAAI,gBAAgB,CAAC;IAC7D,CAAC,CAAC;IAEF,IAAM,mBAAmB,GAAyC,cAAM,OAAA,gBAAgB,EAAhB,CAAgB,CAAC;IAEzF,IAAM,SAAS,GAA+B,UAAC,KAAK,EAAE,EAAsC;YAAtC,qBAAoC,EAAE,KAAA,EAApC,UAAU,gBAAA,EAAE,WAAW,iBAAA,EAAE,IAAI,UAAA;QACnF,IAAI,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,4BAAoB,CAAC;QAElD,IAAM,IAAI,GAAkC;YAC1C,IAAI,EAAE,KAAK,CAAC,KAAK;YACjB,OAAO,EAAE;gBACP,IAAI,MAAA;gBACJ,KAAK,EAAE,KAAK,CAAC,OAAO;gBACpB,SAAS,EAAE,IAAA,2BAAmB,GAAE;gBAChC,KAAK,EAAE,SAAS,CAAC,eAAe,EAAE;aACnC;YACD,IAAI,EAAE,8BAAiB,CAAC,SAAS;SAClC,CAAC;QAEF,WAAW,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAG,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAE1F,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG;gBACxB,MAAM,EAAE,WAAW;aACpB,CAAC;SACH;QAED,IAAM,cAAc,GAAG;YACrB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YACvB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACzB,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;SACpC,CAAC;QAEF,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAA,cAAM,EAAC,WAAW,CAAC,IAAI,IAAA,iBAAS,EAAC,cAAc,EAAE,WAAW,CAAC,EAAE;YAClG,cAAc,CAAC,KAAK,CAAC,8DAA8D,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAEnG,OAAO;SACR;QAED,WAAW,GAAG,cAAc,CAAC;QAE7B,cAAc,CAAC,KAAK,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;QAElD,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,sBAAsB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAE/C,OAAO;QACL,sBAAsB,wBAAA;QACtB,mBAAmB,qBAAA;QACnB,SAAS,WAAA;KACV,CAAC;AACJ,CAAC;AAtED,0DAsEC","sourcesContent":["import type { Config } from '../../config';\nimport type { InternalLogger } from '../../internalLogger';\nimport type { Metas } from '../../metas';\nimport { TransportItemType } from '../../transports';\nimport type { TransportItem, Transports } from '../../transports';\nimport type { UnpatchedConsole } from '../../unpatchedConsole';\nimport { deepEqual, getCurrentTimestamp, isNull } from '../../utils';\nimport type { TracesAPI } from '../traces';\n\nimport { defaultExceptionType } from './const';\nimport type { ExceptionEvent, ExceptionsAPI, StacktraceParser } from './types';\n\nlet stacktraceParser: StacktraceParser | undefined;\n\nexport function initializeExceptionsAPI(\n _unpatchedConsole: UnpatchedConsole,\n internalLogger: InternalLogger,\n config: Config,\n metas: Metas,\n transports: Transports,\n tracesApi: TracesAPI\n): ExceptionsAPI {\n internalLogger.debug('Initializing exceptions API');\n\n let lastPayload: Pick<ExceptionEvent, 'type' | 'value' | 'stacktrace'> | null = null;\n\n stacktraceParser = config.parseStacktrace ?? stacktraceParser;\n\n const changeStacktraceParser: ExceptionsAPI['changeStacktraceParser'] = (newStacktraceParser) => {\n internalLogger.debug('Changing stacktrace parser');\n\n stacktraceParser = newStacktraceParser ?? stacktraceParser;\n };\n\n const getStacktraceParser: ExceptionsAPI['getStacktraceParser'] = () => stacktraceParser;\n\n const pushError: ExceptionsAPI['pushError'] = (error, { skipDedupe, stackFrames, type } = {}) => {\n type = type || error.name || defaultExceptionType;\n\n const item: TransportItem<ExceptionEvent> = {\n meta: metas.value,\n payload: {\n type,\n value: error.message,\n timestamp: getCurrentTimestamp(),\n trace: tracesApi.getTraceContext(),\n },\n type: TransportItemType.EXCEPTION,\n };\n\n stackFrames = stackFrames ?? (error.stack ? stacktraceParser?.(error).frames : undefined);\n\n if (stackFrames?.length) {\n item.payload.stacktrace = {\n frames: stackFrames,\n };\n }\n\n const testingPayload = {\n type: item.payload.type,\n value: item.payload.value,\n stackTrace: item.payload.stacktrace,\n };\n\n if (!skipDedupe && config.dedupe && !isNull(lastPayload) && deepEqual(testingPayload, lastPayload)) {\n internalLogger.debug('Skipping error push because it is the same as the last one\\n', item.payload);\n\n return;\n }\n\n lastPayload = testingPayload;\n\n internalLogger.debug('Pushing exception\\n', item);\n\n transports.execute(item);\n };\n\n changeStacktraceParser(config.parseStacktrace);\n\n return {\n changeStacktraceParser,\n getStacktraceParser,\n pushError,\n };\n}\n"]}
1
+ {"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../../../src/api/exceptions/initialize.ts"],"names":[],"mappings":";;;AAGA,+CAAqD;AAGrD,qCAAqE;AAGrE,iCAA+C;AAG/C,IAAI,gBAA8C,CAAC;AAEnD,SAAgB,uBAAuB,CACrC,iBAAmC,EACnC,cAA8B,EAC9B,MAAc,EACd,KAAY,EACZ,UAAsB,EACtB,SAAoB;;IAEpB,cAAc,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAEpD,IAAI,WAAW,GAAiE,IAAI,CAAC;IAErF,gBAAgB,GAAG,MAAA,MAAM,CAAC,eAAe,mCAAI,gBAAgB,CAAC;IAE9D,IAAM,sBAAsB,GAA4C,UAAC,mBAAmB;QAC1F,cAAc,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAEnD,gBAAgB,GAAG,mBAAmB,aAAnB,mBAAmB,cAAnB,mBAAmB,GAAI,gBAAgB,CAAC;IAC7D,CAAC,CAAC;IAEF,IAAM,mBAAmB,GAAyC,cAAM,OAAA,gBAAgB,EAAhB,CAAgB,CAAC;IAEzF,IAAM,SAAS,GAA+B,UAAC,KAAK,EAAE,EAA+C;YAA/C,qBAA6C,EAAE,KAAA,EAA7C,UAAU,gBAAA,EAAE,WAAW,iBAAA,EAAE,IAAI,UAAA,EAAE,OAAO,aAAA;QAC5F,IAAI,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,4BAAoB,CAAC;QAElD,IAAM,IAAI,GAAkC;YAC1C,IAAI,EAAE,KAAK,CAAC,KAAK;YACjB,OAAO,EAAE;gBACP,IAAI,MAAA;gBACJ,KAAK,EAAE,KAAK,CAAC,OAAO;gBACpB,SAAS,EAAE,IAAA,2BAAmB,GAAE;gBAChC,KAAK,EAAE,SAAS,CAAC,eAAe,EAAE;gBAClC,OAAO,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE;aACvB;YACD,IAAI,EAAE,8BAAiB,CAAC,SAAS;SAClC,CAAC;QAEF,WAAW,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAG,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAE1F,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG;gBACxB,MAAM,EAAE,WAAW;aACpB,CAAC;SACH;QAED,IAAM,cAAc,GAAG;YACrB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YACvB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACzB,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;YACnC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;SAC9B,CAAC;QAEF,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAA,cAAM,EAAC,WAAW,CAAC,IAAI,IAAA,iBAAS,EAAC,cAAc,EAAE,WAAW,CAAC,EAAE;YAClG,cAAc,CAAC,KAAK,CAAC,8DAA8D,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAEnG,OAAO;SACR;QAED,WAAW,GAAG,cAAc,CAAC;QAE7B,cAAc,CAAC,KAAK,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;QAElD,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,sBAAsB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAE/C,OAAO;QACL,sBAAsB,wBAAA;QACtB,mBAAmB,qBAAA;QACnB,SAAS,WAAA;KACV,CAAC;AACJ,CAAC;AAxED,0DAwEC","sourcesContent":["import type { Config } from '../../config';\nimport type { InternalLogger } from '../../internalLogger';\nimport type { Metas } from '../../metas';\nimport { TransportItemType } from '../../transports';\nimport type { TransportItem, Transports } from '../../transports';\nimport type { UnpatchedConsole } from '../../unpatchedConsole';\nimport { deepEqual, getCurrentTimestamp, isNull } from '../../utils';\nimport type { TracesAPI } from '../traces';\n\nimport { defaultExceptionType } from './const';\nimport type { ExceptionEvent, ExceptionsAPI, StacktraceParser } from './types';\n\nlet stacktraceParser: StacktraceParser | undefined;\n\nexport function initializeExceptionsAPI(\n _unpatchedConsole: UnpatchedConsole,\n internalLogger: InternalLogger,\n config: Config,\n metas: Metas,\n transports: Transports,\n tracesApi: TracesAPI\n): ExceptionsAPI {\n internalLogger.debug('Initializing exceptions API');\n\n let lastPayload: Pick<ExceptionEvent, 'type' | 'value' | 'stacktrace'> | null = null;\n\n stacktraceParser = config.parseStacktrace ?? stacktraceParser;\n\n const changeStacktraceParser: ExceptionsAPI['changeStacktraceParser'] = (newStacktraceParser) => {\n internalLogger.debug('Changing stacktrace parser');\n\n stacktraceParser = newStacktraceParser ?? stacktraceParser;\n };\n\n const getStacktraceParser: ExceptionsAPI['getStacktraceParser'] = () => stacktraceParser;\n\n const pushError: ExceptionsAPI['pushError'] = (error, { skipDedupe, stackFrames, type, context } = {}) => {\n type = type || error.name || defaultExceptionType;\n\n const item: TransportItem<ExceptionEvent> = {\n meta: metas.value,\n payload: {\n type,\n value: error.message,\n timestamp: getCurrentTimestamp(),\n trace: tracesApi.getTraceContext(),\n context: context ?? {},\n },\n type: TransportItemType.EXCEPTION,\n };\n\n stackFrames = stackFrames ?? (error.stack ? stacktraceParser?.(error).frames : undefined);\n\n if (stackFrames?.length) {\n item.payload.stacktrace = {\n frames: stackFrames,\n };\n }\n\n const testingPayload = {\n type: item.payload.type,\n value: item.payload.value,\n stackTrace: item.payload.stacktrace,\n context: item.payload.context,\n };\n\n if (!skipDedupe && config.dedupe && !isNull(lastPayload) && deepEqual(testingPayload, lastPayload)) {\n internalLogger.debug('Skipping error push because it is the same as the last one\\n', item.payload);\n\n return;\n }\n\n lastPayload = testingPayload;\n\n internalLogger.debug('Pushing exception\\n', item);\n\n transports.execute(item);\n };\n\n changeStacktraceParser(config.parseStacktrace);\n\n return {\n changeStacktraceParser,\n getStacktraceParser,\n pushError,\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/api/exceptions/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { TraceContext } from '../traces';\n\nexport type StacktraceParser = (err: ExtendedError) => Stacktrace;\n\nexport interface ExceptionStackFrame {\n filename: string;\n function: string;\n\n colno?: number;\n lineno?: number;\n}\n\nexport interface ExtendedError extends Error {\n columnNumber?: number;\n stacktrace?: Error['stack'];\n}\n\nexport interface Stacktrace {\n frames: ExceptionStackFrame[];\n}\n\nexport interface ExceptionEvent {\n timestamp: string;\n type: string;\n value: string;\n\n stacktrace?: Stacktrace;\n trace?: TraceContext;\n}\n\nexport interface PushErrorOptions {\n skipDedupe?: boolean;\n stackFrames?: ExceptionStackFrame[];\n type?: string;\n}\n\nexport interface ExceptionsAPI {\n changeStacktraceParser: (stacktraceParser: StacktraceParser) => void;\n getStacktraceParser: () => StacktraceParser | undefined;\n pushError: (value: Error, options?: PushErrorOptions) => void;\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/api/exceptions/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { TraceContext } from '../traces';\n\nexport type StacktraceParser = (err: ExtendedError) => Stacktrace;\n\nexport interface ExceptionStackFrame {\n filename: string;\n function: string;\n\n colno?: number;\n lineno?: number;\n}\n\nexport interface ExtendedError extends Error {\n columnNumber?: number;\n stacktrace?: Error['stack'];\n}\n\nexport interface Stacktrace {\n frames: ExceptionStackFrame[];\n}\n\nexport type ExceptionContext = Record<string, string>;\n\nexport interface ExceptionEvent {\n timestamp: string;\n type: string;\n value: string;\n\n stacktrace?: Stacktrace;\n trace?: TraceContext;\n context?: ExceptionContext;\n}\n\nexport interface PushErrorOptions {\n skipDedupe?: boolean;\n stackFrames?: ExceptionStackFrame[];\n type?: string;\n context?: ExceptionContext;\n}\n\nexport interface ExceptionsAPI {\n changeStacktraceParser: (stacktraceParser: StacktraceParser) => void;\n getStacktraceParser: () => StacktraceParser | undefined;\n pushError: (value: Error, options?: PushErrorOptions) => void;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/api/logs/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { BaseObject, LogLevel } from '../../utils';\nimport type { TraceContext } from '../traces';\n\nexport type LogContext = BaseObject;\n\nexport interface LogEvent {\n context: LogContext;\n level: LogLevel;\n message: string;\n timestamp: string;\n\n trace?: TraceContext;\n}\n\nexport interface PushLogOptions {\n context?: LogContext;\n level?: LogLevel;\n skipDedupe?: boolean;\n}\n\nexport interface LogsAPI {\n pushLog: (args: unknown[], options?: PushLogOptions) => void;\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/api/logs/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { LogLevel } from '../../utils';\nimport type { TraceContext } from '../traces';\n\nexport type LogContext = Record<string, string>;\n\nexport interface LogEvent {\n context: LogContext;\n level: LogLevel;\n message: string;\n timestamp: string;\n\n trace?: TraceContext;\n}\n\nexport interface PushLogOptions {\n context?: LogContext;\n level?: LogLevel;\n skipDedupe?: boolean;\n}\n\nexport interface LogsAPI {\n pushLog: (args: unknown[], options?: PushLogOptions) => void;\n}\n"]}
@@ -1,5 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defaultGlobalObjectKey = void 0;
3
+ exports.defaultBatchingConfig = exports.defaultGlobalObjectKey = void 0;
4
4
  exports.defaultGlobalObjectKey = 'faro';
5
+ exports.defaultBatchingConfig = {
6
+ enabled: true,
7
+ sendTimeout: 250,
8
+ itemLimit: 50,
9
+ };
5
10
  //# sourceMappingURL=const.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/config/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,sBAAsB,GAAG,MAAM,CAAC","sourcesContent":["export const defaultGlobalObjectKey = 'faro';\n"]}
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/config/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,sBAAsB,GAAG,MAAM,CAAC;AAEhC,QAAA,qBAAqB,GAAG;IACnC,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,GAAG;IAChB,SAAS,EAAE,EAAE;CACd,CAAC","sourcesContent":["export const defaultGlobalObjectKey = 'faro';\n\nexport const defaultBatchingConfig = {\n enabled: true,\n sendTimeout: 250,\n itemLimit: 50,\n};\n"]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defaultGlobalObjectKey = void 0;
3
+ exports.defaultGlobalObjectKey = exports.defaultBatchingConfig = void 0;
4
4
  var const_1 = require("./const");
5
+ Object.defineProperty(exports, "defaultBatchingConfig", { enumerable: true, get: function () { return const_1.defaultBatchingConfig; } });
5
6
  Object.defineProperty(exports, "defaultGlobalObjectKey", { enumerable: true, get: function () { return const_1.defaultGlobalObjectKey; } });
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":";;;AAAA,iCAAiD;AAAxC,+GAAA,sBAAsB,OAAA","sourcesContent":["export { defaultGlobalObjectKey } from './const';\n\nexport type { Config, Patterns } from './types';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":";;;AAAA,iCAAwE;AAA/D,8GAAA,qBAAqB,OAAA;AAAE,+GAAA,sBAAsB,OAAA","sourcesContent":["export { defaultBatchingConfig, defaultGlobalObjectKey } from './const';\n\nexport type { Config, Patterns } from './types';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { APIEvent, StacktraceParser } from '../api';\nimport type { Instrumentation } from '../instrumentations';\nimport type { InternalLoggerLevel } from '../internalLogger';\nimport type { MetaApp, MetaItem, MetaSession, MetaUser, MetaView } from '../metas';\nimport type { BeforeSendHook, Transport } from '../transports';\nimport type { UnpatchedConsole } from '../unpatchedConsole';\n\nexport interface Config<P = APIEvent> {\n app: MetaApp;\n dedupe: boolean;\n globalObjectKey: string;\n isolate: boolean;\n instrumentations: Instrumentation[];\n internalLoggerLevel: InternalLoggerLevel;\n metas: MetaItem[];\n parseStacktrace: StacktraceParser;\n paused: boolean;\n preventGlobalExposure: boolean;\n transports: Transport[];\n unpatchedConsole: UnpatchedConsole;\n\n beforeSend?: BeforeSendHook<P>;\n ignoreErrors?: Patterns;\n session?: MetaSession;\n user?: MetaUser;\n view?: MetaView;\n eventDomain?: string;\n}\n\nexport type Patterns = Array<string | RegExp>;\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { APIEvent, StacktraceParser } from '../api';\nimport type { Instrumentation } from '../instrumentations';\nimport type { InternalLoggerLevel } from '../internalLogger';\nimport type { MetaApp, MetaItem, MetaSession, MetaUser, MetaView } from '../metas';\nimport type { BatchExecutorOptions, BeforeSendHook, Transport } from '../transports';\nimport type { UnpatchedConsole } from '../unpatchedConsole';\n\nexport interface Config<P = APIEvent> {\n app: MetaApp;\n batching?: BatchExecutorOptions;\n dedupe: boolean;\n globalObjectKey: string;\n instrumentations: Instrumentation[];\n internalLoggerLevel: InternalLoggerLevel;\n isolate: boolean;\n metas: MetaItem[];\n parseStacktrace: StacktraceParser;\n paused: boolean;\n preventGlobalExposure: boolean;\n transports: Transport[];\n unpatchedConsole: UnpatchedConsole;\n\n beforeSend?: BeforeSendHook<P>;\n ignoreErrors?: Patterns;\n session?: MetaSession;\n user?: MetaUser;\n view?: MetaView;\n eventDomain?: string;\n}\n\nexport type Patterns = Array<string | RegExp>;\n"]}
@@ -2,5 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.globalObject = void 0;
4
4
  // This does not uses isUndefined method because it will throw an error in non-browser environments
5
- exports.globalObject = (typeof window === 'undefined' ? global : window);
5
+ exports.globalObject = (typeof globalThis !== 'undefined'
6
+ ? globalThis
7
+ : typeof global !== 'undefined'
8
+ ? global
9
+ : typeof self !== 'undefined'
10
+ ? self
11
+ : undefined);
6
12
  //# sourceMappingURL=globalObject.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"globalObject.js","sourceRoot":"","sources":["../../../src/globalObject/globalObject.ts"],"names":[],"mappings":";;;AAQA,mGAAmG;AACtF,QAAA,YAAY,GAAG,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAiB,CAAC","sourcesContent":["import type { Faro, internalGlobalObjectKey } from '../sdk';\n\nexport type GlobalObject<T = typeof window | typeof global> = T & {\n [label: string]: Faro;\n\n [internalGlobalObjectKey]: Faro;\n};\n\n// This does not uses isUndefined method because it will throw an error in non-browser environments\nexport const globalObject = (typeof window === 'undefined' ? global : window) as GlobalObject;\n"]}
1
+ {"version":3,"file":"globalObject.js","sourceRoot":"","sources":["../../../src/globalObject/globalObject.ts"],"names":[],"mappings":";;;AAQA,mGAAmG;AACtF,QAAA,YAAY,GAAG,CAAC,OAAO,UAAU,KAAK,WAAW;IAC5D,CAAC,CAAC,UAAU;IACZ,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW;QAC/B,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,OAAO,IAAI,KAAK,WAAW;YAC7B,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,SAAS,CAA4B,CAAC","sourcesContent":["import type { Faro, internalGlobalObjectKey } from '../sdk';\n\nexport type GlobalObject<T = typeof globalThis | typeof global | typeof self> = T & {\n [label: string]: Faro;\n\n [internalGlobalObjectKey]: Faro;\n};\n\n// This does not uses isUndefined method because it will throw an error in non-browser environments\nexport const globalObject = (typeof globalThis !== 'undefined'\n ? globalThis\n : typeof global !== 'undefined'\n ? global\n : typeof self !== 'undefined'\n ? self\n : undefined) as unknown as GlobalObject;\n"]}
package/dist/cjs/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isSyntheticEvent = exports.isSymbol = exports.isString = exports.isRegExp = exports.isPrimitive = exports.isObject = exports.isNumber = exports.isNull = exports.isMapDefined = exports.isMap = exports.isInt = exports.isInstanceOf = exports.isFunction = exports.isEventDefined = exports.isEvent = exports.isErrorEvent = exports.isErrorDefined = exports.isError = exports.isElementDefined = exports.isElement = exports.isDomException = exports.isDomError = exports.isBoolean = exports.isArray = exports.getCurrentTimestamp = exports.genShortID = exports.defaultLogLevel = exports.deepEqual = exports.createPromiseBuffer = exports.allLogLevels = exports.defaultUnpatchedConsole = exports.transportItemTypeToBodyKey = exports.TransportItemType = exports.getTransportBody = exports.BaseTransport = exports.Conventions = exports.setInternalFaroOnGlobalObject = exports.isInternalFaroOnGlobalObject = exports.internalGlobalObjectKey = exports.getInternalFaroFromGlobalObject = exports.faro = exports.InternalLoggerLevel = exports.defaultInternalLoggerLevel = exports.createInternalLogger = exports.BaseInstrumentation = exports.defaultGlobalObjectKey = exports.initializeFaro = exports.globalObject = exports.BaseExtension = exports.defaultExceptionType = void 0;
4
- exports.VERSION = exports.noop = exports.LogLevel = exports.isUndefined = exports.isTypeof = exports.isToString = exports.isThenable = void 0;
3
+ exports.isSymbol = exports.isString = exports.isRegExp = exports.isPrimitive = exports.isObject = exports.isNumber = exports.isNull = exports.isMapDefined = exports.isMap = exports.isInt = exports.isInstanceOf = exports.isFunction = exports.isEventDefined = exports.isEvent = exports.isErrorEvent = exports.isErrorDefined = exports.isError = exports.isElementDefined = exports.isElement = exports.isDomException = exports.isDomError = exports.isBoolean = exports.isArray = exports.getCurrentTimestamp = exports.genShortID = exports.defaultLogLevel = exports.deepEqual = exports.createPromiseBuffer = exports.allLogLevels = exports.defaultUnpatchedConsole = exports.transportItemTypeToBodyKey = exports.TransportItemType = exports.getTransportBody = exports.BaseTransport = exports.Conventions = exports.setInternalFaroOnGlobalObject = exports.isInternalFaroOnGlobalObject = exports.internalGlobalObjectKey = exports.getInternalFaroFromGlobalObject = exports.faro = exports.InternalLoggerLevel = exports.defaultInternalLoggerLevel = exports.createInternalLogger = exports.BaseInstrumentation = exports.defaultGlobalObjectKey = exports.defaultBatchingConfig = exports.initializeFaro = exports.globalObject = exports.BaseExtension = exports.defaultExceptionType = void 0;
4
+ exports.VERSION = exports.noop = exports.LogLevel = exports.isUndefined = exports.isTypeof = exports.isToString = exports.isThenable = exports.isSyntheticEvent = void 0;
5
5
  var api_1 = require("./api");
6
6
  Object.defineProperty(exports, "defaultExceptionType", { enumerable: true, get: function () { return api_1.defaultExceptionType; } });
7
7
  var extensions_1 = require("./extensions");
@@ -11,6 +11,7 @@ Object.defineProperty(exports, "globalObject", { enumerable: true, get: function
11
11
  var initialize_1 = require("./initialize");
12
12
  Object.defineProperty(exports, "initializeFaro", { enumerable: true, get: function () { return initialize_1.initializeFaro; } });
13
13
  var config_1 = require("./config");
14
+ Object.defineProperty(exports, "defaultBatchingConfig", { enumerable: true, get: function () { return config_1.defaultBatchingConfig; } });
14
15
  Object.defineProperty(exports, "defaultGlobalObjectKey", { enumerable: true, get: function () { return config_1.defaultGlobalObjectKey; } });
15
16
  var instrumentations_1 = require("./instrumentations");
16
17
  Object.defineProperty(exports, "BaseInstrumentation", { enumerable: true, get: function () { return instrumentations_1.BaseInstrumentation; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,6BAA6C;AAApC,2GAAA,oBAAoB,OAAA;AA4B7B,2CAA6C;AAApC,2GAAA,aAAa,OAAA;AAGtB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAGrB,2CAA8C;AAArC,4GAAA,cAAc,OAAA;AAEvB,mCAAkD;AAAzC,gHAAA,sBAAsB,OAAA;AAG/B,uDAAyD;AAAhD,uHAAA,mBAAmB,OAAA;AAG5B,mDAAyG;AAAhG,sHAAA,oBAAoB,OAAA;AAAE,4HAAA,0BAA0B,OAAA;AAAE,qHAAA,mBAAmB,OAAA;AAmB9E,6BAMe;AALb,2FAAA,IAAI,OAAA;AACJ,sHAAA,+BAA+B,OAAA;AAC/B,8GAAA,uBAAuB,OAAA;AACvB,mHAAA,4BAA4B,OAAA;AAC5B,oHAAA,6BAA6B,OAAA;AAI/B,uCAAyC;AAAhC,uGAAA,WAAW,OAAA;AAEpB,2CAA8G;AAArG,2GAAA,aAAa,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AAAE,+GAAA,iBAAiB,OAAA;AAAE,wHAAA,0BAA0B,OAAA;AAUvF,uDAA6D;AAApD,2HAAA,uBAAuB,OAAA;AAGhC,iCAqCiB;AApCf,qGAAA,YAAY,OAAA;AACZ,4GAAA,mBAAmB,OAAA;AACnB,kGAAA,SAAS,OAAA;AACT,wGAAA,eAAe,OAAA;AACf,mGAAA,UAAU,OAAA;AACV,4GAAA,mBAAmB,OAAA;AACnB,gGAAA,OAAO,OAAA;AACP,kGAAA,SAAS,OAAA;AACT,mGAAA,UAAU,OAAA;AACV,uGAAA,cAAc,OAAA;AACd,kGAAA,SAAS,OAAA;AACT,yGAAA,gBAAgB,OAAA;AAChB,gGAAA,OAAO,OAAA;AACP,uGAAA,cAAc,OAAA;AACd,qGAAA,YAAY,OAAA;AACZ,gGAAA,OAAO,OAAA;AACP,uGAAA,cAAc,OAAA;AACd,mGAAA,UAAU,OAAA;AACV,qGAAA,YAAY,OAAA;AACZ,8FAAA,KAAK,OAAA;AACL,8FAAA,KAAK,OAAA;AACL,qGAAA,YAAY,OAAA;AACZ,+FAAA,MAAM,OAAA;AACN,iGAAA,QAAQ,OAAA;AACR,iGAAA,QAAQ,OAAA;AACR,oGAAA,WAAW,OAAA;AACX,iGAAA,QAAQ,OAAA;AACR,iGAAA,QAAQ,OAAA;AACR,iGAAA,QAAQ,OAAA;AACR,yGAAA,gBAAgB,OAAA;AAChB,mGAAA,UAAU,OAAA;AACV,mGAAA,UAAU,OAAA;AACV,iGAAA,QAAQ,OAAA;AACR,oGAAA,WAAW,OAAA;AACX,iGAAA,QAAQ,OAAA;AACR,6FAAA,IAAI,OAAA;AAaN,qCAAoC;AAA3B,kGAAA,OAAO,OAAA","sourcesContent":["export { defaultExceptionType } from './api';\nexport type {\n API,\n APIEvent,\n EventAttributes,\n EventEvent,\n EventsAPI,\n ExceptionEvent,\n ExceptionStackFrame,\n ExceptionsAPI,\n ExtendedError,\n LogContext,\n LogEvent,\n LogsAPI,\n MeasurementEvent,\n MeasurementsAPI,\n MetaAPI,\n OTELApi,\n PushErrorOptions,\n PushLogOptions,\n PushMeasurementOptions,\n Stacktrace,\n StacktraceParser,\n TraceContext,\n TraceEvent,\n TracesAPI,\n} from './api';\n\nexport { BaseExtension } from './extensions';\nexport type { Extension } from './extensions';\n\nexport { globalObject } from './globalObject';\nexport type { GlobalObject } from './globalObject';\n\nexport { initializeFaro } from './initialize';\n\nexport { defaultGlobalObjectKey } from './config';\nexport type { Config, Patterns } from './config';\n\nexport { BaseInstrumentation } from './instrumentations';\nexport type { Instrumentation, Instrumentations } from './instrumentations';\n\nexport { createInternalLogger, defaultInternalLoggerLevel, InternalLoggerLevel } from './internalLogger';\nexport type { InternalLogger } from './internalLogger';\n\nexport type {\n Meta,\n MetaApp,\n MetaAttributes,\n MetaBrowser,\n MetaGetter,\n MetaItem,\n MetaPage,\n Metas,\n MetaSDK,\n MetaSDKIntegration,\n MetaSession,\n MetaUser,\n MetaView,\n} from './metas';\n\nexport {\n faro,\n getInternalFaroFromGlobalObject,\n internalGlobalObjectKey,\n isInternalFaroOnGlobalObject,\n setInternalFaroOnGlobalObject,\n} from './sdk';\nexport type { Faro } from './sdk';\n\nexport { Conventions } from './semantic';\n\nexport { BaseTransport, getTransportBody, TransportItemType, transportItemTypeToBodyKey } from './transports';\nexport type {\n BeforeSendHook,\n Transport,\n TransportBody,\n TransportItem,\n TransportItemPayload,\n Transports,\n} from './transports';\n\nexport { defaultUnpatchedConsole } from './unpatchedConsole';\nexport type { UnpatchedConsole } from './unpatchedConsole';\n\nexport {\n allLogLevels,\n createPromiseBuffer,\n deepEqual,\n defaultLogLevel,\n genShortID,\n getCurrentTimestamp,\n isArray,\n isBoolean,\n isDomError,\n isDomException,\n isElement,\n isElementDefined,\n isError,\n isErrorDefined,\n isErrorEvent,\n isEvent,\n isEventDefined,\n isFunction,\n isInstanceOf,\n isInt,\n isMap,\n isMapDefined,\n isNull,\n isNumber,\n isObject,\n isPrimitive,\n isRegExp,\n isString,\n isSymbol,\n isSyntheticEvent,\n isThenable,\n isToString,\n isTypeof,\n isUndefined,\n LogLevel,\n noop,\n} from './utils';\nexport type {\n BaseObject,\n BaseObjectKey,\n BaseObjectPrimitiveValue,\n BaseObjectValue,\n BufferItem,\n PromiseBuffer,\n PromiseBufferOptions,\n PromiseProducer,\n} from './utils';\n\nexport { VERSION } from './version';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,6BAA6C;AAApC,2GAAA,oBAAoB,OAAA;AA4B7B,2CAA6C;AAApC,2GAAA,aAAa,OAAA;AAGtB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAGrB,2CAA8C;AAArC,4GAAA,cAAc,OAAA;AAEvB,mCAAyE;AAAhE,+GAAA,qBAAqB,OAAA;AAAE,gHAAA,sBAAsB,OAAA;AAGtD,uDAAyD;AAAhD,uHAAA,mBAAmB,OAAA;AAG5B,mDAAyG;AAAhG,sHAAA,oBAAoB,OAAA;AAAE,4HAAA,0BAA0B,OAAA;AAAE,qHAAA,mBAAmB,OAAA;AAmB9E,6BAMe;AALb,2FAAA,IAAI,OAAA;AACJ,sHAAA,+BAA+B,OAAA;AAC/B,8GAAA,uBAAuB,OAAA;AACvB,mHAAA,4BAA4B,OAAA;AAC5B,oHAAA,6BAA6B,OAAA;AAI/B,uCAAyC;AAAhC,uGAAA,WAAW,OAAA;AAEpB,2CAA8G;AAArG,2GAAA,aAAa,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AAAE,+GAAA,iBAAiB,OAAA;AAAE,wHAAA,0BAA0B,OAAA;AAWvF,uDAA6D;AAApD,2HAAA,uBAAuB,OAAA;AAGhC,iCAqCiB;AApCf,qGAAA,YAAY,OAAA;AACZ,4GAAA,mBAAmB,OAAA;AACnB,kGAAA,SAAS,OAAA;AACT,wGAAA,eAAe,OAAA;AACf,mGAAA,UAAU,OAAA;AACV,4GAAA,mBAAmB,OAAA;AACnB,gGAAA,OAAO,OAAA;AACP,kGAAA,SAAS,OAAA;AACT,mGAAA,UAAU,OAAA;AACV,uGAAA,cAAc,OAAA;AACd,kGAAA,SAAS,OAAA;AACT,yGAAA,gBAAgB,OAAA;AAChB,gGAAA,OAAO,OAAA;AACP,uGAAA,cAAc,OAAA;AACd,qGAAA,YAAY,OAAA;AACZ,gGAAA,OAAO,OAAA;AACP,uGAAA,cAAc,OAAA;AACd,mGAAA,UAAU,OAAA;AACV,qGAAA,YAAY,OAAA;AACZ,8FAAA,KAAK,OAAA;AACL,8FAAA,KAAK,OAAA;AACL,qGAAA,YAAY,OAAA;AACZ,+FAAA,MAAM,OAAA;AACN,iGAAA,QAAQ,OAAA;AACR,iGAAA,QAAQ,OAAA;AACR,oGAAA,WAAW,OAAA;AACX,iGAAA,QAAQ,OAAA;AACR,iGAAA,QAAQ,OAAA;AACR,iGAAA,QAAQ,OAAA;AACR,yGAAA,gBAAgB,OAAA;AAChB,mGAAA,UAAU,OAAA;AACV,mGAAA,UAAU,OAAA;AACV,iGAAA,QAAQ,OAAA;AACR,oGAAA,WAAW,OAAA;AACX,iGAAA,QAAQ,OAAA;AACR,6FAAA,IAAI,OAAA;AAaN,qCAAoC;AAA3B,kGAAA,OAAO,OAAA","sourcesContent":["export { defaultExceptionType } from './api';\nexport type {\n API,\n APIEvent,\n EventAttributes,\n EventEvent,\n EventsAPI,\n ExceptionEvent,\n ExceptionStackFrame,\n ExceptionsAPI,\n ExtendedError,\n LogContext,\n LogEvent,\n LogsAPI,\n MeasurementEvent,\n MeasurementsAPI,\n MetaAPI,\n OTELApi,\n PushErrorOptions,\n PushLogOptions,\n PushMeasurementOptions,\n Stacktrace,\n StacktraceParser,\n TraceContext,\n TraceEvent,\n TracesAPI,\n} from './api';\n\nexport { BaseExtension } from './extensions';\nexport type { Extension } from './extensions';\n\nexport { globalObject } from './globalObject';\nexport type { GlobalObject } from './globalObject';\n\nexport { initializeFaro } from './initialize';\n\nexport { defaultBatchingConfig, defaultGlobalObjectKey } from './config';\nexport type { Config, Patterns } from './config';\n\nexport { BaseInstrumentation } from './instrumentations';\nexport type { Instrumentation, Instrumentations } from './instrumentations';\n\nexport { createInternalLogger, defaultInternalLoggerLevel, InternalLoggerLevel } from './internalLogger';\nexport type { InternalLogger } from './internalLogger';\n\nexport type {\n Meta,\n MetaApp,\n MetaAttributes,\n MetaBrowser,\n MetaGetter,\n MetaItem,\n MetaPage,\n Metas,\n MetaSDK,\n MetaSDKIntegration,\n MetaSession,\n MetaUser,\n MetaView,\n} from './metas';\n\nexport {\n faro,\n getInternalFaroFromGlobalObject,\n internalGlobalObjectKey,\n isInternalFaroOnGlobalObject,\n setInternalFaroOnGlobalObject,\n} from './sdk';\nexport type { Faro } from './sdk';\n\nexport { Conventions } from './semantic';\n\nexport { BaseTransport, getTransportBody, TransportItemType, transportItemTypeToBodyKey } from './transports';\nexport type {\n BeforeSendHook,\n SendFn,\n Transport,\n TransportBody,\n TransportItem,\n TransportItemPayload,\n Transports,\n} from './transports';\n\nexport { defaultUnpatchedConsole } from './unpatchedConsole';\nexport type { UnpatchedConsole } from './unpatchedConsole';\n\nexport {\n allLogLevels,\n createPromiseBuffer,\n deepEqual,\n defaultLogLevel,\n genShortID,\n getCurrentTimestamp,\n isArray,\n isBoolean,\n isDomError,\n isDomException,\n isElement,\n isElementDefined,\n isError,\n isErrorDefined,\n isErrorEvent,\n isEvent,\n isEventDefined,\n isFunction,\n isInstanceOf,\n isInt,\n isMap,\n isMapDefined,\n isNull,\n isNumber,\n isObject,\n isPrimitive,\n isRegExp,\n isString,\n isSymbol,\n isSyntheticEvent,\n isThenable,\n isToString,\n isTypeof,\n isUndefined,\n LogLevel,\n noop,\n} from './utils';\nexport type {\n BaseObject,\n BaseObjectKey,\n BaseObjectPrimitiveValue,\n BaseObjectValue,\n BufferItem,\n PromiseBuffer,\n PromiseBufferOptions,\n PromiseProducer,\n} from './utils';\n\nexport { VERSION } from './version';\n"]}
@@ -19,6 +19,8 @@ function mockConfig(overrides) {
19
19
  return __assign({ app: {
20
20
  name: 'test',
21
21
  version: '1.0.0',
22
+ }, batching: {
23
+ enabled: false,
22
24
  }, dedupe: true, globalObjectKey: 'faro', internalLoggerLevel: internalLogger_1.defaultInternalLoggerLevel, instrumentations: [], isolate: true, metas: [], parseStacktrace: mockStacktraceParser_1.mockStacktraceParser, paused: false, preventGlobalExposure: true, transports: [], unpatchedConsole: console }, overrides);
23
25
  }
24
26
  exports.mockConfig = mockConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"mockConfig.js","sourceRoot":"","sources":["../../../src/testUtils/mockConfig.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,oDAA+D;AAE/D,+DAA8D;AAE9D,SAAgB,UAAU,CAAC,SAA+B;IAA/B,0BAAA,EAAA,cAA+B;IACxD,kBACE,GAAG,EAAE;YACH,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,OAAO;SACjB,EACD,MAAM,EAAE,IAAI,EACZ,eAAe,EAAE,MAAM,EACvB,mBAAmB,EAAE,2CAA0B,EAC/C,gBAAgB,EAAE,EAAE,EACpB,OAAO,EAAE,IAAI,EACb,KAAK,EAAE,EAAE,EACT,eAAe,EAAE,2CAAoB,EACrC,MAAM,EAAE,KAAK,EACb,qBAAqB,EAAE,IAAI,EAC3B,UAAU,EAAE,EAAE,EACd,gBAAgB,EAAE,OAAO,IACtB,SAAS,EACZ;AACJ,CAAC;AAnBD,gCAmBC","sourcesContent":["import type { Config } from '../config';\nimport { defaultInternalLoggerLevel } from '../internalLogger';\n\nimport { mockStacktraceParser } from './mockStacktraceParser';\n\nexport function mockConfig(overrides: Partial<Config> = {}): Config {\n return {\n app: {\n name: 'test',\n version: '1.0.0',\n },\n dedupe: true,\n globalObjectKey: 'faro',\n internalLoggerLevel: defaultInternalLoggerLevel,\n instrumentations: [],\n isolate: true,\n metas: [],\n parseStacktrace: mockStacktraceParser,\n paused: false,\n preventGlobalExposure: true,\n transports: [],\n unpatchedConsole: console,\n ...overrides,\n };\n}\n"]}
1
+ {"version":3,"file":"mockConfig.js","sourceRoot":"","sources":["../../../src/testUtils/mockConfig.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,oDAA+D;AAE/D,+DAA8D;AAE9D,SAAgB,UAAU,CAAC,SAA+B;IAA/B,0BAAA,EAAA,cAA+B;IACxD,kBACE,GAAG,EAAE;YACH,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,OAAO;SACjB,EACD,QAAQ,EAAE;YACR,OAAO,EAAE,KAAK;SACf,EACD,MAAM,EAAE,IAAI,EACZ,eAAe,EAAE,MAAM,EACvB,mBAAmB,EAAE,2CAA0B,EAC/C,gBAAgB,EAAE,EAAE,EACpB,OAAO,EAAE,IAAI,EACb,KAAK,EAAE,EAAE,EACT,eAAe,EAAE,2CAAoB,EACrC,MAAM,EAAE,KAAK,EACb,qBAAqB,EAAE,IAAI,EAC3B,UAAU,EAAE,EAAE,EACd,gBAAgB,EAAE,OAAO,IACtB,SAAS,EACZ;AACJ,CAAC;AAtBD,gCAsBC","sourcesContent":["import type { Config } from '../config';\nimport { defaultInternalLoggerLevel } from '../internalLogger';\n\nimport { mockStacktraceParser } from './mockStacktraceParser';\n\nexport function mockConfig(overrides: Partial<Config> = {}): Config {\n return {\n app: {\n name: 'test',\n version: '1.0.0',\n },\n batching: {\n enabled: false,\n },\n dedupe: true,\n globalObjectKey: 'faro',\n internalLoggerLevel: defaultInternalLoggerLevel,\n instrumentations: [],\n isolate: true,\n metas: [],\n parseStacktrace: mockStacktraceParser,\n paused: false,\n preventGlobalExposure: true,\n transports: [],\n unpatchedConsole: console,\n ...overrides,\n };\n}\n"]}
@@ -17,7 +17,6 @@ var __extends = (this && this.__extends) || (function () {
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.MockTransport = void 0;
19
19
  var transports_1 = require("../transports");
20
- var utils_1 = require("../utils");
21
20
  var version_1 = require("../version");
22
21
  var MockTransport = /** @class */ (function (_super) {
23
22
  __extends(MockTransport, _super);
@@ -30,11 +29,13 @@ var MockTransport = /** @class */ (function (_super) {
30
29
  _this.items = [];
31
30
  return _this;
32
31
  }
33
- MockTransport.prototype.send = function (item) {
32
+ MockTransport.prototype.send = function (items) {
34
33
  var _a;
35
- var items = (0, utils_1.isArray)(item) ? item : [item];
36
34
  (_a = this.items).push.apply(_a, items);
37
35
  };
36
+ MockTransport.prototype.isBatched = function () {
37
+ return true;
38
+ };
38
39
  MockTransport.prototype.getIgnoreUrls = function () {
39
40
  return this.ignoreURLs;
40
41
  };
@@ -1 +1 @@
1
- {"version":3,"file":"mockTransport.js","sourceRoot":"","sources":["../../../src/testUtils/mockTransport.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,4CAA8C;AAE9C,kCAAmC;AACnC,sCAAqC;AAErC;IAAmC,iCAAa;IAM9C,uBAAoB,UAAyB;QAAzB,2BAAA,EAAA,eAAyB;QAA7C,YACE,iBAAO,SACR;QAFmB,gBAAU,GAAV,UAAU,CAAe;QALpC,UAAI,GAAG,yBAAyB,CAAC;QACjC,aAAO,GAAG,iBAAO,CAAC;QAE3B,WAAK,GAAoB,EAAE,CAAC;;IAI5B,CAAC;IAED,4BAAI,GAAJ,UAAK,IAAqC;;QACxC,IAAM,KAAK,GAAG,IAAA,eAAO,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAA,KAAA,IAAI,CAAC,KAAK,CAAA,CAAC,IAAI,WAAI,KAAK,EAAE;IAC5B,CAAC;IAEQ,qCAAa,GAAtB;QACE,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACH,oBAAC;AAAD,CAAC,AAlBD,CAAmC,0BAAa,GAkB/C;AAlBY,sCAAa","sourcesContent":["import type { Patterns } from '../config';\nimport { BaseTransport } from '../transports';\nimport type { Transport, TransportItem } from '../transports';\nimport { isArray } from '../utils';\nimport { VERSION } from '../version';\n\nexport class MockTransport extends BaseTransport implements Transport {\n readonly name = '@grafana/transport-mock';\n readonly version = VERSION;\n\n items: TransportItem[] = [];\n\n constructor(private ignoreURLs: Patterns = []) {\n super();\n }\n\n send(item: TransportItem | TransportItem[]): void | Promise<void> {\n const items = isArray(item) ? item : [item];\n this.items.push(...items);\n }\n\n override getIgnoreUrls(): Patterns {\n return this.ignoreURLs;\n }\n}\n"]}
1
+ {"version":3,"file":"mockTransport.js","sourceRoot":"","sources":["../../../src/testUtils/mockTransport.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,4CAA8C;AAE9C,sCAAqC;AAErC;IAAmC,iCAAa;IAM9C,uBAAoB,UAAyB;QAAzB,2BAAA,EAAA,eAAyB;QAA7C,YACE,iBAAO,SACR;QAFmB,gBAAU,GAAV,UAAU,CAAe;QALpC,UAAI,GAAG,yBAAyB,CAAC;QACjC,aAAO,GAAG,iBAAO,CAAC;QAE3B,WAAK,GAAoB,EAAE,CAAC;;IAI5B,CAAC;IAED,4BAAI,GAAJ,UAAK,KAAsB;;QACzB,CAAA,KAAA,IAAI,CAAC,KAAK,CAAA,CAAC,IAAI,WAAI,KAAK,EAAE;IAC5B,CAAC;IAEQ,iCAAS,GAAlB;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IAEQ,qCAAa,GAAtB;QACE,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACH,oBAAC;AAAD,CAAC,AArBD,CAAmC,0BAAa,GAqB/C;AArBY,sCAAa","sourcesContent":["import type { Patterns } from '../config';\nimport { BaseTransport } from '../transports';\nimport type { Transport, TransportItem } from '../transports';\nimport { VERSION } from '../version';\n\nexport class MockTransport extends BaseTransport implements Transport {\n readonly name = '@grafana/transport-mock';\n readonly version = VERSION;\n\n items: TransportItem[] = [];\n\n constructor(private ignoreURLs: Patterns = []) {\n super();\n }\n\n send(items: TransportItem[]): void | Promise<void> {\n this.items.push(...items);\n }\n\n override isBatched(): boolean {\n return true;\n }\n\n override getIgnoreUrls(): Patterns {\n return this.ignoreURLs;\n }\n}\n"]}
@@ -22,6 +22,9 @@ var BaseTransport = /** @class */ (function (_super) {
22
22
  function BaseTransport() {
23
23
  return _super !== null && _super.apply(this, arguments) || this;
24
24
  }
25
+ BaseTransport.prototype.isBatched = function () {
26
+ return false;
27
+ };
25
28
  BaseTransport.prototype.getIgnoreUrls = function () {
26
29
  return [];
27
30
  };
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/transports/base.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,4CAA8C;AAI9C;IAA4C,iCAAa;IAAzD;;IAMA,CAAC;IAHC,qCAAa,GAAb;QACE,OAAO,EAAE,CAAC;IACZ,CAAC;IACH,oBAAC;AAAD,CAAC,AAND,CAA4C,0BAAa,GAMxD;AANqB,sCAAa","sourcesContent":["import { BaseExtension } from '../extensions';\n\nimport type { Transport, TransportItem } from './types';\n\nexport abstract class BaseTransport extends BaseExtension implements Transport {\n abstract send(item: TransportItem | TransportItem[]): void | Promise<void>;\n\n getIgnoreUrls(): Array<string | RegExp> {\n return [];\n }\n}\n"]}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/transports/base.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,4CAA8C;AAI9C;IAA4C,iCAAa;IAAzD;;IAUA,CAAC;IAPC,iCAAS,GAAT;QACE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qCAAa,GAAb;QACE,OAAO,EAAE,CAAC;IACZ,CAAC;IACH,oBAAC;AAAD,CAAC,AAVD,CAA4C,0BAAa,GAUxD;AAVqB,sCAAa","sourcesContent":["import { BaseExtension } from '../extensions';\n\nimport type { Transport, TransportItem } from './types';\n\nexport abstract class BaseTransport extends BaseExtension implements Transport {\n abstract send(items: TransportItem | TransportItem[]): void | Promise<void>;\n\n isBatched(): boolean {\n return false;\n }\n\n getIgnoreUrls(): Array<string | RegExp> {\n return [];\n }\n}\n"]}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
+ if (ar || !(i in from)) {
5
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
+ ar[i] = from[i];
7
+ }
8
+ }
9
+ return to.concat(ar || Array.prototype.slice.call(from));
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.BatchExecutor = void 0;
13
+ var murmurhash_js_1 = require("murmurhash-js");
14
+ var DEFAULT_SEND_TIMEOUT_MS = 250;
15
+ var DEFAULT_BATCH_ITEM_LIMIT = 50;
16
+ var BatchExecutor = /** @class */ (function () {
17
+ function BatchExecutor(sendFn, options) {
18
+ var _this = this;
19
+ var _a, _b;
20
+ this.signalBuffer = [];
21
+ this.itemLimit = (_a = options === null || options === void 0 ? void 0 : options.itemLimit) !== null && _a !== void 0 ? _a : DEFAULT_BATCH_ITEM_LIMIT;
22
+ this.sendTimeout = (_b = options === null || options === void 0 ? void 0 : options.sendTimeout) !== null && _b !== void 0 ? _b : DEFAULT_SEND_TIMEOUT_MS;
23
+ this.paused = (options === null || options === void 0 ? void 0 : options.paused) || false;
24
+ this.sendFn = sendFn;
25
+ this.flushInterval = -1;
26
+ if (!this.paused) {
27
+ this.start();
28
+ }
29
+ // Send batched/buffered data when user navigates to new page, switches or closes the tab, minimizes or closes the browser.
30
+ // If on mobile, it also sends data if user switches from the browser to a different app.
31
+ document.addEventListener('visibilitychange', function () {
32
+ if (document.visibilityState === 'hidden') {
33
+ _this.flush();
34
+ }
35
+ });
36
+ }
37
+ BatchExecutor.prototype.addItem = function (item) {
38
+ if (this.paused) {
39
+ return;
40
+ }
41
+ this.signalBuffer.push(item);
42
+ if (this.signalBuffer.length >= this.itemLimit) {
43
+ this.flush();
44
+ }
45
+ };
46
+ BatchExecutor.prototype.start = function () {
47
+ var _this = this;
48
+ this.paused = false;
49
+ if (this.sendTimeout > 0) {
50
+ this.flushInterval = window.setInterval(function () { return _this.flush(); }, this.sendTimeout);
51
+ }
52
+ };
53
+ BatchExecutor.prototype.pause = function () {
54
+ this.paused = true;
55
+ clearInterval(this.flushInterval);
56
+ };
57
+ BatchExecutor.prototype.groupItems = function (items) {
58
+ var itemMap = new Map();
59
+ items.forEach(function (item) {
60
+ var metaKey = (0, murmurhash_js_1.murmur3)(JSON.stringify(item.meta));
61
+ var currentItems = itemMap.get(metaKey);
62
+ if (currentItems === undefined) {
63
+ currentItems = [item];
64
+ }
65
+ else {
66
+ currentItems = __spreadArray(__spreadArray([], currentItems, true), [item], false);
67
+ }
68
+ itemMap.set(metaKey, currentItems);
69
+ });
70
+ return Array.from(itemMap.values());
71
+ };
72
+ BatchExecutor.prototype.flush = function () {
73
+ if (this.paused || this.signalBuffer.length === 0) {
74
+ return;
75
+ }
76
+ var itemGroups = this.groupItems(this.signalBuffer);
77
+ itemGroups.forEach(this.sendFn);
78
+ this.signalBuffer = [];
79
+ };
80
+ return BatchExecutor;
81
+ }());
82
+ exports.BatchExecutor = BatchExecutor;
83
+ //# sourceMappingURL=batchExecutor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batchExecutor.js","sourceRoot":"","sources":["../../../src/transports/batchExecutor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAwC;AAMxC,IAAM,uBAAuB,GAAG,GAAG,CAAC;AACpC,IAAM,wBAAwB,GAAG,EAAE,CAAC;AAEpC;IASE,uBAAY,MAAc,EAAE,OAA8B;QAA1D,iBAkBC;;QAvBO,iBAAY,GAAoB,EAAE,CAAC;QAMzC,IAAI,CAAC,SAAS,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,mCAAI,wBAAwB,CAAC;QAChE,IAAI,CAAC,WAAW,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,mCAAI,uBAAuB,CAAC;QACnE,IAAI,CAAC,MAAM,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,KAAI,KAAK,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;QAExB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;QAED,2HAA2H;QAC3H,yFAAyF;QACzF,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE;YAC5C,IAAI,QAAQ,CAAC,eAAe,KAAK,QAAQ,EAAE;gBACzC,KAAI,CAAC,KAAK,EAAE,CAAC;aACd;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,+BAAO,GAAP,UAAQ,IAAmB;QACzB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO;SACR;QAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;YAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;IACH,CAAC;IAED,6BAAK,GAAL;QAAA,iBAKC;QAJC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;YACxB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,cAAM,OAAA,KAAI,CAAC,KAAK,EAAE,EAAZ,CAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SAC/E;IACH,CAAC;IAED,6BAAK,GAAL;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC;IAED,kCAAU,GAAV,UAAW,KAAsB;QAC/B,IAAM,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAC;QACnD,KAAK,CAAC,OAAO,CAAC,UAAC,IAAI;YACjB,IAAM,OAAO,GAAG,IAAA,uBAAO,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAEnD,IAAI,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,YAAY,KAAK,SAAS,EAAE;gBAC9B,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC;aACvB;iBAAM;gBACL,YAAY,mCAAO,YAAY,UAAE,IAAI,SAAC,CAAC;aACxC;YAED,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACtC,CAAC;IAEO,6BAAK,GAAb;QACE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YACjD,OAAO;SACR;QAED,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtD,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACzB,CAAC;IACH,oBAAC;AAAD,CAAC,AA/ED,IA+EC;AA/EY,sCAAa","sourcesContent":["import { murmur3 } from 'murmurhash-js';\n\nimport type { TransportItem } from '../';\n\nimport type { BatchExecutorOptions, SendFn } from './types';\n\nconst DEFAULT_SEND_TIMEOUT_MS = 250;\nconst DEFAULT_BATCH_ITEM_LIMIT = 50;\n\nexport class BatchExecutor {\n private readonly itemLimit: number;\n private readonly sendTimeout: number;\n\n private signalBuffer: TransportItem[] = [];\n private sendFn: SendFn;\n private paused: boolean;\n private flushInterval: number;\n\n constructor(sendFn: SendFn, options?: BatchExecutorOptions) {\n this.itemLimit = options?.itemLimit ?? DEFAULT_BATCH_ITEM_LIMIT;\n this.sendTimeout = options?.sendTimeout ?? DEFAULT_SEND_TIMEOUT_MS;\n this.paused = options?.paused || false;\n this.sendFn = sendFn;\n this.flushInterval = -1;\n\n if (!this.paused) {\n this.start();\n }\n\n // Send batched/buffered data when user navigates to new page, switches or closes the tab, minimizes or closes the browser.\n // If on mobile, it also sends data if user switches from the browser to a different app.\n document.addEventListener('visibilitychange', () => {\n if (document.visibilityState === 'hidden') {\n this.flush();\n }\n });\n }\n\n addItem(item: TransportItem): void {\n if (this.paused) {\n return;\n }\n\n this.signalBuffer.push(item);\n\n if (this.signalBuffer.length >= this.itemLimit) {\n this.flush();\n }\n }\n\n start(): void {\n this.paused = false;\n if (this.sendTimeout > 0) {\n this.flushInterval = window.setInterval(() => this.flush(), this.sendTimeout);\n }\n }\n\n pause(): void {\n this.paused = true;\n clearInterval(this.flushInterval);\n }\n\n groupItems(items: TransportItem[]): TransportItem[][] {\n const itemMap = new Map<number, TransportItem[]>();\n items.forEach((item) => {\n const metaKey = murmur3(JSON.stringify(item.meta));\n\n let currentItems = itemMap.get(metaKey);\n if (currentItems === undefined) {\n currentItems = [item];\n } else {\n currentItems = [...currentItems, item];\n }\n\n itemMap.set(metaKey, currentItems);\n });\n return Array.from(itemMap.values());\n }\n\n private flush() {\n if (this.paused || this.signalBuffer.length === 0) {\n return;\n }\n\n const itemGroups = this.groupItems(this.signalBuffer);\n itemGroups.forEach(this.sendFn);\n this.signalBuffer = [];\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/transports/const.ts"],"names":[],"mappings":";;;;AAAA,IAAY,iBAMX;AAND,WAAY,iBAAiB;IAC3B,4CAAuB,CAAA;IACvB,gCAAW,CAAA;IACX,gDAA2B,CAAA;IAC3B,oCAAe,CAAA;IACf,oCAAe,CAAA;AACjB,CAAC,EANW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAM5B;AAEY,QAAA,0BAA0B,GAAsC,CAAA;IAC3E,GAAC,iBAAiB,CAAC,SAAS,IAAG,YAAY;IAC3C,GAAC,iBAAiB,CAAC,GAAG,IAAG,MAAM;IAC/B,GAAC,iBAAiB,CAAC,WAAW,IAAG,cAAc;IAC/C,GAAC,iBAAiB,CAAC,KAAK,IAAG,QAAQ;IACnC,GAAC,iBAAiB,CAAC,KAAK,IAAG,QAAQ;MAC3B,CAAA,CAAC","sourcesContent":["export enum TransportItemType {\n EXCEPTION = 'exception',\n LOG = 'log',\n MEASUREMENT = 'measurement',\n TRACE = 'trace',\n EVENT = 'event',\n}\n\nexport const transportItemTypeToBodyKey: Record<TransportItemType, string> = {\n [TransportItemType.EXCEPTION]: 'exceptions',\n [TransportItemType.LOG]: 'logs',\n [TransportItemType.MEASUREMENT]: 'measurements',\n [TransportItemType.TRACE]: 'traces',\n [TransportItemType.EVENT]: 'events',\n} as const;\n"]}
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/transports/const.ts"],"names":[],"mappings":";;;;AAEA,IAAY,iBAMX;AAND,WAAY,iBAAiB;IAC3B,4CAAuB,CAAA;IACvB,gCAAW,CAAA;IACX,gDAA2B,CAAA;IAC3B,oCAAe,CAAA;IACf,oCAAe,CAAA;AACjB,CAAC,EANW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAM5B;AAEY,QAAA,0BAA0B,GAAuC,CAAA;IAC5E,GAAC,iBAAiB,CAAC,SAAS,IAAG,YAAY;IAC3C,GAAC,iBAAiB,CAAC,GAAG,IAAG,MAAM;IAC/B,GAAC,iBAAiB,CAAC,WAAW,IAAG,cAAc;IAC/C,GAAC,iBAAiB,CAAC,KAAK,IAAG,QAAQ;IACnC,GAAC,iBAAiB,CAAC,KAAK,IAAG,QAAQ;MAC3B,CAAA,CAAC","sourcesContent":["import type { BodyKey } from './types';\n\nexport enum TransportItemType {\n EXCEPTION = 'exception',\n LOG = 'log',\n MEASUREMENT = 'measurement',\n TRACE = 'trace',\n EVENT = 'event',\n}\n\nexport const transportItemTypeToBodyKey: Record<TransportItemType, BodyKey> = {\n [TransportItemType.EXCEPTION]: 'exceptions',\n [TransportItemType.LOG]: 'logs',\n [TransportItemType.MEASUREMENT]: 'measurements',\n [TransportItemType.TRACE]: 'traces',\n [TransportItemType.EVENT]: 'events',\n} as const;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transports/index.ts"],"names":[],"mappings":";;;AAAA,2CAAoD;AAA3C,kHAAA,oBAAoB,OAAA;AAE7B,+BAAuC;AAA9B,qGAAA,aAAa,OAAA;AAEtB,iCAAwE;AAA/D,0GAAA,iBAAiB,OAAA;AAAE,mHAAA,0BAA0B,OAAA;AAEtD,qDAA8D;AAArD,4HAAA,yBAAyB,OAAA;AAWlC,iCAA2C;AAAlC,yGAAA,gBAAgB,OAAA","sourcesContent":["export { initializeTransports } from './initialize';\n\nexport { BaseTransport } from './base';\n\nexport { TransportItemType, transportItemTypeToBodyKey } from './const';\n\nexport { registerInitialTransports } from './registerInitial';\n\nexport type {\n BeforeSendHook,\n Transport,\n TransportBody,\n TransportItem,\n TransportItemPayload,\n Transports,\n} from './types';\n\nexport { getTransportBody } from './utils';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transports/index.ts"],"names":[],"mappings":";;;AAAA,2CAAoD;AAA3C,kHAAA,oBAAoB,OAAA;AAE7B,+BAAuC;AAA9B,qGAAA,aAAa,OAAA;AAEtB,iCAAwE;AAA/D,0GAAA,iBAAiB,OAAA;AAAE,mHAAA,0BAA0B,OAAA;AAEtD,qDAA8D;AAArD,4HAAA,yBAAyB,OAAA;AAalC,iCAA2C;AAAlC,yGAAA,gBAAgB,OAAA","sourcesContent":["export { initializeTransports } from './initialize';\n\nexport { BaseTransport } from './base';\n\nexport { TransportItemType, transportItemTypeToBodyKey } from './const';\n\nexport { registerInitialTransports } from './registerInitial';\n\nexport type {\n BatchExecutorOptions,\n BeforeSendHook,\n SendFn,\n Transport,\n TransportBody,\n TransportItem,\n TransportItemPayload,\n Transports,\n} from './types';\n\nexport { getTransportBody } from './utils';\n"]}