@grafana/faro-web-sdk 1.0.0-beta2 → 1.0.0-beta4

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 (194) hide show
  1. package/README.md +15 -8
  2. package/dist/bundle/faro-web-sdk.iife.js +1 -0
  3. package/dist/cjs/config/getWebInstrumentations.js.map +1 -1
  4. package/dist/cjs/config/index.js.map +1 -1
  5. package/dist/cjs/config/makeCoreConfig.js.map +1 -1
  6. package/dist/cjs/config/types.js.map +1 -1
  7. package/dist/cjs/consts.js.map +1 -1
  8. package/dist/cjs/index.js.map +1 -1
  9. package/dist/cjs/initialize.js.map +1 -1
  10. package/dist/cjs/instrumentations/console/index.js.map +1 -1
  11. package/dist/cjs/instrumentations/console/instrumentation.js.map +1 -1
  12. package/dist/cjs/instrumentations/console/types.js.map +1 -1
  13. package/dist/cjs/instrumentations/errors/const.js.map +1 -1
  14. package/dist/cjs/instrumentations/errors/getErrorDetails.js.map +1 -1
  15. package/dist/cjs/instrumentations/errors/getValueAndTypeFromMessage.js.map +1 -1
  16. package/dist/cjs/instrumentations/errors/index.js.map +1 -1
  17. package/dist/cjs/instrumentations/errors/instrumentation.js.map +1 -1
  18. package/dist/cjs/instrumentations/errors/registerOnerror.js.map +1 -1
  19. package/dist/cjs/instrumentations/errors/registerOnunhandledrejection.js.map +1 -1
  20. package/dist/cjs/instrumentations/errors/stackFrames/buildStackFrame.js.map +1 -1
  21. package/dist/cjs/instrumentations/errors/stackFrames/const.js.map +1 -1
  22. package/dist/cjs/instrumentations/errors/stackFrames/getDataFromSafariExtensions.js.map +1 -1
  23. package/dist/cjs/instrumentations/errors/stackFrames/getStackFramesFromError.js.map +1 -1
  24. package/dist/cjs/instrumentations/errors/stackFrames/index.js.map +1 -1
  25. package/dist/cjs/instrumentations/errors/stackFrames/parseStacktrace.js.map +1 -1
  26. package/dist/cjs/instrumentations/errors/types.js.map +1 -1
  27. package/dist/cjs/instrumentations/index.js.map +1 -1
  28. package/dist/cjs/instrumentations/session/index.js.map +1 -1
  29. package/dist/cjs/instrumentations/session/instrumentation.js.map +1 -1
  30. package/dist/cjs/instrumentations/webVitals/index.js.map +1 -1
  31. package/dist/cjs/instrumentations/webVitals/instrumentation.js.map +1 -1
  32. package/dist/cjs/metas/browser/index.js.map +1 -1
  33. package/dist/cjs/metas/browser/meta.js.map +1 -1
  34. package/dist/cjs/metas/const.js.map +1 -1
  35. package/dist/cjs/metas/index.js.map +1 -1
  36. package/dist/cjs/metas/page/index.js.map +1 -1
  37. package/dist/cjs/metas/page/meta.js.map +1 -1
  38. package/dist/cjs/session.js.map +1 -1
  39. package/dist/cjs/transports/console/index.js.map +1 -1
  40. package/dist/cjs/transports/console/transport.js.map +1 -1
  41. package/dist/cjs/transports/console/types.js.map +1 -1
  42. package/dist/cjs/transports/fetch/index.js.map +1 -1
  43. package/dist/cjs/transports/fetch/transport.js +1 -1
  44. package/dist/cjs/transports/fetch/transport.js.map +1 -1
  45. package/dist/cjs/transports/fetch/types.js.map +1 -1
  46. package/dist/cjs/transports/index.js.map +1 -1
  47. package/dist/esm/config/getWebInstrumentations.js.map +1 -1
  48. package/dist/esm/config/index.js.map +1 -1
  49. package/dist/esm/config/makeCoreConfig.js.map +1 -1
  50. package/dist/esm/config/types.js.map +1 -1
  51. package/dist/esm/consts.js.map +1 -1
  52. package/dist/esm/index.js.map +1 -1
  53. package/dist/esm/initialize.js.map +1 -1
  54. package/dist/esm/instrumentations/console/index.js.map +1 -1
  55. package/dist/esm/instrumentations/console/instrumentation.js.map +1 -1
  56. package/dist/esm/instrumentations/console/types.js.map +1 -1
  57. package/dist/esm/instrumentations/errors/const.js.map +1 -1
  58. package/dist/esm/instrumentations/errors/getErrorDetails.js.map +1 -1
  59. package/dist/esm/instrumentations/errors/getValueAndTypeFromMessage.js.map +1 -1
  60. package/dist/esm/instrumentations/errors/index.js.map +1 -1
  61. package/dist/esm/instrumentations/errors/instrumentation.js.map +1 -1
  62. package/dist/esm/instrumentations/errors/registerOnerror.js.map +1 -1
  63. package/dist/esm/instrumentations/errors/registerOnunhandledrejection.js.map +1 -1
  64. package/dist/esm/instrumentations/errors/stackFrames/buildStackFrame.js.map +1 -1
  65. package/dist/esm/instrumentations/errors/stackFrames/const.js.map +1 -1
  66. package/dist/esm/instrumentations/errors/stackFrames/getDataFromSafariExtensions.js.map +1 -1
  67. package/dist/esm/instrumentations/errors/stackFrames/getStackFramesFromError.js.map +1 -1
  68. package/dist/esm/instrumentations/errors/stackFrames/index.js.map +1 -1
  69. package/dist/esm/instrumentations/errors/stackFrames/parseStacktrace.js.map +1 -1
  70. package/dist/esm/instrumentations/errors/types.js.map +1 -1
  71. package/dist/esm/instrumentations/index.js.map +1 -1
  72. package/dist/esm/instrumentations/session/index.js.map +1 -1
  73. package/dist/esm/instrumentations/session/instrumentation.js.map +1 -1
  74. package/dist/esm/instrumentations/webVitals/index.js.map +1 -1
  75. package/dist/esm/instrumentations/webVitals/instrumentation.js.map +1 -1
  76. package/dist/esm/metas/browser/index.js.map +1 -1
  77. package/dist/esm/metas/browser/meta.js.map +1 -1
  78. package/dist/esm/metas/const.js.map +1 -1
  79. package/dist/esm/metas/index.js.map +1 -1
  80. package/dist/esm/metas/page/index.js.map +1 -1
  81. package/dist/esm/metas/page/meta.js.map +1 -1
  82. package/dist/esm/session.js.map +1 -1
  83. package/dist/esm/transports/console/index.js.map +1 -1
  84. package/dist/esm/transports/console/transport.js.map +1 -1
  85. package/dist/esm/transports/console/types.js.map +1 -1
  86. package/dist/esm/transports/fetch/index.js.map +1 -1
  87. package/dist/esm/transports/fetch/transport.js.map +1 -1
  88. package/dist/esm/transports/fetch/types.js.map +1 -1
  89. package/dist/esm/transports/index.js.map +1 -1
  90. package/dist/{cjs → types}/config/getWebInstrumentations.d.ts +0 -0
  91. package/dist/{cjs → types}/config/index.d.ts +0 -0
  92. package/dist/{cjs → types}/config/makeCoreConfig.d.ts +0 -0
  93. package/dist/{cjs → types}/config/types.d.ts +0 -0
  94. package/dist/{cjs → types}/consts.d.ts +0 -0
  95. package/dist/{cjs → types}/index.d.ts +1 -1
  96. package/dist/{cjs → types}/initialize.d.ts +0 -0
  97. package/dist/{cjs → types}/instrumentations/console/index.d.ts +0 -0
  98. package/dist/{cjs → types}/instrumentations/console/instrumentation.d.ts +1 -1
  99. package/dist/{cjs → types}/instrumentations/console/types.d.ts +0 -0
  100. package/dist/{cjs → types}/instrumentations/errors/const.d.ts +0 -0
  101. package/dist/{cjs → types}/instrumentations/errors/getErrorDetails.d.ts +0 -0
  102. package/dist/{cjs → types}/instrumentations/errors/getValueAndTypeFromMessage.d.ts +0 -0
  103. package/dist/{cjs → types}/instrumentations/errors/index.d.ts +0 -0
  104. package/dist/{esm → types}/instrumentations/errors/instrumentation.d.ts +1 -1
  105. package/dist/{cjs → types}/instrumentations/errors/registerOnerror.d.ts +0 -0
  106. package/dist/{cjs → types}/instrumentations/errors/registerOnunhandledrejection.d.ts +0 -0
  107. package/dist/{cjs → types}/instrumentations/errors/stackFrames/buildStackFrame.d.ts +0 -0
  108. package/dist/{cjs → types}/instrumentations/errors/stackFrames/const.d.ts +0 -0
  109. package/dist/{cjs → types}/instrumentations/errors/stackFrames/getDataFromSafariExtensions.d.ts +0 -0
  110. package/dist/{cjs → types}/instrumentations/errors/stackFrames/getStackFramesFromError.d.ts +0 -0
  111. package/dist/{cjs → types}/instrumentations/errors/stackFrames/index.d.ts +0 -0
  112. package/dist/{cjs → types}/instrumentations/errors/stackFrames/parseStacktrace.d.ts +0 -0
  113. package/dist/{esm → types}/instrumentations/errors/types.d.ts +1 -1
  114. package/dist/{cjs → types}/instrumentations/index.d.ts +0 -0
  115. package/dist/{cjs → types}/instrumentations/session/index.d.ts +0 -0
  116. package/dist/{cjs → types}/instrumentations/session/instrumentation.d.ts +0 -0
  117. package/dist/{cjs → types}/instrumentations/webVitals/index.d.ts +0 -0
  118. package/dist/{esm → types}/instrumentations/webVitals/instrumentation.d.ts +1 -1
  119. package/dist/{cjs → types}/metas/browser/index.d.ts +0 -0
  120. package/dist/{cjs → types}/metas/browser/meta.d.ts +0 -0
  121. package/dist/{cjs → types}/metas/const.d.ts +0 -0
  122. package/dist/{cjs → types}/metas/index.d.ts +0 -0
  123. package/dist/{cjs → types}/metas/page/index.d.ts +0 -0
  124. package/dist/{cjs → types}/metas/page/meta.d.ts +0 -0
  125. package/dist/{cjs → types}/session.d.ts +0 -0
  126. package/dist/{cjs → types}/transports/console/index.d.ts +0 -0
  127. package/dist/{esm → types}/transports/console/transport.d.ts +1 -1
  128. package/dist/{cjs → types}/transports/console/types.d.ts +0 -0
  129. package/dist/{cjs → types}/transports/fetch/index.d.ts +0 -0
  130. package/dist/{cjs → types}/transports/fetch/transport.d.ts +1 -1
  131. package/dist/{cjs → types}/transports/fetch/types.d.ts +1 -1
  132. package/dist/{cjs → types}/transports/index.d.ts +0 -0
  133. package/package.json +30 -13
  134. package/dist/cjs/instrumentations/errors/instrumentation.d.ts +0 -6
  135. package/dist/cjs/instrumentations/errors/registerOnerror.test.d.ts +0 -1
  136. package/dist/cjs/instrumentations/errors/registerOnerror.test.js +0 -23
  137. package/dist/cjs/instrumentations/errors/registerOnerror.test.js.map +0 -1
  138. package/dist/cjs/instrumentations/errors/types.d.ts +0 -8
  139. package/dist/cjs/instrumentations/session/instrumentation.test.d.ts +0 -1
  140. package/dist/cjs/instrumentations/session/instrumentation.test.js +0 -47
  141. package/dist/cjs/instrumentations/session/instrumentation.test.js.map +0 -1
  142. package/dist/cjs/instrumentations/webVitals/instrumentation.d.ts +0 -14
  143. package/dist/cjs/transports/console/transport.d.ts +0 -10
  144. package/dist/cjs/transports/fetch/transport.test.d.ts +0 -1
  145. package/dist/cjs/transports/fetch/transport.test.js +0 -193
  146. package/dist/cjs/transports/fetch/transport.test.js.map +0 -1
  147. package/dist/esm/config/getWebInstrumentations.d.ts +0 -3
  148. package/dist/esm/config/index.d.ts +0 -3
  149. package/dist/esm/config/makeCoreConfig.d.ts +0 -3
  150. package/dist/esm/config/types.d.ts +0 -9
  151. package/dist/esm/consts.d.ts +0 -1
  152. package/dist/esm/index.d.ts +0 -12
  153. package/dist/esm/initialize.d.ts +0 -3
  154. package/dist/esm/instrumentations/console/index.d.ts +0 -2
  155. package/dist/esm/instrumentations/console/instrumentation.d.ts +0 -10
  156. package/dist/esm/instrumentations/console/types.d.ts +0 -4
  157. package/dist/esm/instrumentations/errors/const.d.ts +0 -7
  158. package/dist/esm/instrumentations/errors/getErrorDetails.d.ts +0 -3
  159. package/dist/esm/instrumentations/errors/getValueAndTypeFromMessage.d.ts +0 -1
  160. package/dist/esm/instrumentations/errors/index.d.ts +0 -3
  161. package/dist/esm/instrumentations/errors/registerOnerror.d.ts +0 -2
  162. package/dist/esm/instrumentations/errors/registerOnerror.test.d.ts +0 -1
  163. package/dist/esm/instrumentations/errors/registerOnerror.test.js +0 -21
  164. package/dist/esm/instrumentations/errors/registerOnerror.test.js.map +0 -1
  165. package/dist/esm/instrumentations/errors/registerOnunhandledrejection.d.ts +0 -2
  166. package/dist/esm/instrumentations/errors/stackFrames/buildStackFrame.d.ts +0 -2
  167. package/dist/esm/instrumentations/errors/stackFrames/const.d.ts +0 -15
  168. package/dist/esm/instrumentations/errors/stackFrames/getDataFromSafariExtensions.d.ts +0 -1
  169. package/dist/esm/instrumentations/errors/stackFrames/getStackFramesFromError.d.ts +0 -2
  170. package/dist/esm/instrumentations/errors/stackFrames/index.d.ts +0 -4
  171. package/dist/esm/instrumentations/errors/stackFrames/parseStacktrace.d.ts +0 -2
  172. package/dist/esm/instrumentations/index.d.ts +0 -6
  173. package/dist/esm/instrumentations/session/index.d.ts +0 -1
  174. package/dist/esm/instrumentations/session/instrumentation.d.ts +0 -8
  175. package/dist/esm/instrumentations/session/instrumentation.test.d.ts +0 -1
  176. package/dist/esm/instrumentations/session/instrumentation.test.js +0 -45
  177. package/dist/esm/instrumentations/session/instrumentation.test.js.map +0 -1
  178. package/dist/esm/instrumentations/webVitals/index.d.ts +0 -1
  179. package/dist/esm/metas/browser/index.d.ts +0 -1
  180. package/dist/esm/metas/browser/meta.d.ts +0 -2
  181. package/dist/esm/metas/const.d.ts +0 -2
  182. package/dist/esm/metas/index.d.ts +0 -3
  183. package/dist/esm/metas/page/index.d.ts +0 -1
  184. package/dist/esm/metas/page/meta.d.ts +0 -2
  185. package/dist/esm/session.d.ts +0 -2
  186. package/dist/esm/transports/console/index.d.ts +0 -2
  187. package/dist/esm/transports/console/types.d.ts +0 -4
  188. package/dist/esm/transports/fetch/index.d.ts +0 -2
  189. package/dist/esm/transports/fetch/transport.d.ts +0 -16
  190. package/dist/esm/transports/fetch/transport.test.d.ts +0 -1
  191. package/dist/esm/transports/fetch/transport.test.js +0 -119
  192. package/dist/esm/transports/fetch/transport.test.js.map +0 -1
  193. package/dist/esm/transports/fetch/types.d.ts +0 -13
  194. package/dist/esm/transports/index.d.ts +0 -4
package/README.md CHANGED
@@ -1,16 +1,17 @@
1
1
  # @grafana/faro-web-sdk
2
2
 
3
- Faro is a SDK that can instrument frontend JavaScript applications to collect
4
- telemetry and forward it to the [Grafana Agent](https://grafana.com/docs/agent/latest/)
5
- (with app agent receiver integration enabled).
6
- Grafana Agent can then send this data to
7
- [Loki](https://grafana.com/logs/), or [Tempo](https://grafana.com/traces/).
3
+ Faro is a SDK that can instrument frontend JavaScript applications to collect telemetry and forward it to the
4
+ [Grafana Agent][grafana-agent-docs] (with app agent receiver integration enabled).
5
+
6
+ Grafana Agent can then send this data to either [Loki][grafana-logs] or [Tempo][grafana-traces].
8
7
 
9
8
  _Warning_: currently pre-release and subject to frequent breaking changes. Use at your own risk.
10
9
 
11
10
  ## Get started
12
11
 
13
- See [quick start for web applications](https://github.com/grafana/faro-web-sdk/blob/main/docs/sources/tutorials/quick-start-browser.md).
12
+ See [quick start for web applications][quick-start].
13
+
14
+ Alternatively, you can use the CDN version of the library. See [use cdn library][use-cdn] for details on how to do so.
14
15
 
15
16
  ## Instrumentations
16
17
 
@@ -55,11 +56,11 @@ throw new Error('oh no');
55
56
  faro.api.pushError(new Error('oh no'));
56
57
  ```
57
58
 
58
- With OTEL tracing and browser console capture:
59
+ With OTel tracing and browser console capture:
59
60
 
60
61
  ```ts
62
+ import { ConsoleInstrumentation, getWebInstrumentations, initializeFaro } from '@grafana/faro-web-sdk';
61
63
  import { TracingInstrumentation } from '@grafana/faro-web-tracing';
62
- import { ConsoleInstrumentation, initializeFaro, getWebInstrumentations } from '@grafana/faro-web-sdk';
63
64
 
64
65
  const faro = initializeFaro({
65
66
  url: 'https://agent.myapp/collect',
@@ -84,3 +85,9 @@ faro.api
84
85
  // will be captured
85
86
  throw new Error('oh no');
86
87
  ```
88
+
89
+ [grafana-agent-docs]: https://grafana.com/docs/agent/latest/
90
+ [grafana-logs]: https://grafana.com/logs/
91
+ [grafana-traces]: https://grafana.com/traces/
92
+ [quick-start]: https://github.com/grafana/faro-web-sdk/blob/main/docs/sources/tutorials/quick-start-browser.md
93
+ [use-cdn]: https://github.com/grafana/faro-web-sdk/blob/main/docs/sources/tutorials/use-cdn-library.md
@@ -0,0 +1 @@
1
+ var GrafanaFaroWebSdk=function(e){"use strict";var n="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t={exports:{}};!function(e,t){!function(n,i){var r="function",o="undefined",a="object",s="string",l="model",u="name",c="type",d="vendor",p="version",f="architecture",b="console",g="mobile",m="tablet",v="smarttv",h="wearable",w="embedded",y="Amazon",E="Apple",x="ASUS",k="BlackBerry",T="Browser",L="Chrome",S="Firefox",O="Google",I="Huawei",N="LG",R="Microsoft",A="Motorola",C="Opera",j="Samsung",D="Sharp",P="Sony",z="Xiaomi",M="Zebra",F="Facebook",$=function(e){for(var n={},t=0;t<e.length;t++)n[e[t].toUpperCase()]=e[t];return n},_=function(e,n){return typeof e===s&&-1!==B(n).indexOf(B(e))},B=function(e){return e.toLowerCase()},U=function(e,n){if(typeof e===s)return e=e.replace(/^\s\s*/,"").replace(/\s\s*$/,""),typeof n===o?e:e.substring(0,350)},q=function(e,n){for(var t,o,s,l,u,c,d=0;d<n.length&&!u;){var p=n[d],f=n[d+1];for(t=o=0;t<p.length&&!u;)if(u=p[t++].exec(e))for(s=0;s<f.length;s++)c=u[++o],typeof(l=f[s])===a&&l.length>0?2===l.length?typeof l[1]==r?this[l[0]]=l[1].call(this,c):this[l[0]]=l[1]:3===l.length?typeof l[1]!==r||l[1].exec&&l[1].test?this[l[0]]=c?c.replace(l[1],l[2]):i:this[l[0]]=c?l[1].call(this,c,l[2]):i:4===l.length&&(this[l[0]]=c?l[3].call(this,c.replace(l[1],l[2])):i):this[l]=c||i;d+=2}},G=function(e,n){for(var t in n)if(typeof n[t]===a&&n[t].length>0){for(var r=0;r<n[t].length;r++)if(_(n[t][r],e))return"?"===t?i:t}else if(_(n[t],e))return"?"===t?i:t;return e},V={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},W={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[p,[u,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[p,[u,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[u,p],[/opios[\/ ]+([\w\.]+)/i],[p,[u,C+" Mini"]],[/\bopr\/([\w\.]+)/i],[p,[u,C]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,/(ba?idubrowser)[\/ ]?([\w\.]+)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i,/(weibo)__([\d\.]+)/i],[u,p],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[p,[u,"UC"+T]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i],[p,[u,"WeChat(Win) Desktop"]],[/micromessenger\/([\w\.]+)/i],[p,[u,"WeChat"]],[/konqueror\/([\w\.]+)/i],[p,[u,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[p,[u,"IE"]],[/yabrowser\/([\w\.]+)/i],[p,[u,"Yandex"]],[/(avast|avg)\/([\w\.]+)/i],[[u,/(.+)/,"$1 Secure "+T],p],[/\bfocus\/([\w\.]+)/i],[p,[u,S+" Focus"]],[/\bopt\/([\w\.]+)/i],[p,[u,C+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[p,[u,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[p,[u,"Dolphin"]],[/coast\/([\w\.]+)/i],[p,[u,C+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[p,[u,"MIUI "+T]],[/fxios\/([-\w\.]+)/i],[p,[u,S]],[/\bqihu|(qi?ho?o?|360)browser/i],[[u,"360 "+T]],[/(oculus|samsung|sailfish|huawei)browser\/([\w\.]+)/i],[[u,/(.+)/,"$1 "+T],p],[/(comodo_dragon)\/([\w\.]+)/i],[[u,/_/g," "],p],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i],[u,p],[/(metasr)[\/ ]?([\w\.]+)/i,/(lbbrowser)/i,/\[(linkedin)app\]/i],[u],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[u,F],p],[/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(chromium|instagram)[\/ ]([-\w\.]+)/i],[u,p],[/\bgsa\/([\w\.]+) .*safari\//i],[p,[u,"GSA"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[p,[u,L+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[u,L+" WebView"],p],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[p,[u,"Android "+T]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[u,p],[/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],[p,[u,"Mobile Safari"]],[/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],[p,u],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[u,[p,G,{"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"}]],[/(webkit|khtml)\/([\w\.]+)/i],[u,p],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[u,"Netscape"],p],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[p,[u,S+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i],[u,p]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[f,"amd64"]],[/(ia32(?=;))/i],[[f,B]],[/((?:i[346]|x)86)[;\)]/i],[[f,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[f,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[f,"armhf"]],[/windows (ce|mobile); ppc;/i],[[f,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[f,/ower/,"",B]],[/(sun4\w)[;\)]/i],[[f,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[f,B]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[l,[d,j],[c,m]],[/\b((?:s[cgp]h|gt|sm)-\w+|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[l,[d,j],[c,g]],[/\((ip(?:hone|od)[\w ]*);/i],[l,[d,E],[c,g]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[l,[d,E],[c,m]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[l,[d,I],[c,m]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[l,[d,I],[c,g]],[/\b(poco[\w ]+)(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[l,/_/g," "],[d,z],[c,g]],[/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[l,/_/g," "],[d,z],[c,m]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[l,[d,"OPPO"],[c,g]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[l,[d,"Vivo"],[c,g]],[/\b(rmx[12]\d{3})(?: bui|;|\))/i],[l,[d,"Realme"],[c,g]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[l,[d,A],[c,g]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[l,[d,A],[c,m]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[l,[d,N],[c,m]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[l,[d,N],[c,g]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[l,[d,"Lenovo"],[c,m]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[l,/_/g," "],[d,"Nokia"],[c,g]],[/(pixel c)\b/i],[l,[d,O],[c,m]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[l,[d,O],[c,g]],[/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[l,[d,P],[c,g]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[l,"Xperia Tablet"],[d,P],[c,m]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[l,[d,"OnePlus"],[c,g]],[/(alexa)webm/i,/(kf[a-z]{2}wi)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[l,[d,y],[c,m]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[l,/(.+)/g,"Fire Phone $1"],[d,y],[c,g]],[/(playbook);[-\w\),; ]+(rim)/i],[l,d,[c,m]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[l,[d,k],[c,g]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[l,[d,x],[c,m]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[l,[d,x],[c,g]],[/(nexus 9)/i],[l,[d,"HTC"],[c,m]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic|sony(?!-bra))[-_ ]?([-\w]*)/i],[d,[l,/_/g," "],[c,g]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[l,[d,"Acer"],[c,m]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[l,[d,"Meizu"],[c,g]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[l,[d,D],[c,g]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[d,l,[c,g]],[/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[d,l,[c,m]],[/(surface duo)/i],[l,[d,R],[c,m]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[l,[d,"Fairphone"],[c,g]],[/(u304aa)/i],[l,[d,"AT&T"],[c,g]],[/\bsie-(\w*)/i],[l,[d,"Siemens"],[c,g]],[/\b(rct\w+) b/i],[l,[d,"RCA"],[c,m]],[/\b(venue[\d ]{2,7}) b/i],[l,[d,"Dell"],[c,m]],[/\b(q(?:mv|ta)\w+) b/i],[l,[d,"Verizon"],[c,m]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[l,[d,"Barnes & Noble"],[c,m]],[/\b(tm\d{3}\w+) b/i],[l,[d,"NuVision"],[c,m]],[/\b(k88) b/i],[l,[d,"ZTE"],[c,m]],[/\b(nx\d{3}j) b/i],[l,[d,"ZTE"],[c,g]],[/\b(gen\d{3}) b.+49h/i],[l,[d,"Swiss"],[c,g]],[/\b(zur\d{3}) b/i],[l,[d,"Swiss"],[c,m]],[/\b((zeki)?tb.*\b) b/i],[l,[d,"Zeki"],[c,m]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[d,"Dragon Touch"],l,[c,m]],[/\b(ns-?\w{0,9}) b/i],[l,[d,"Insignia"],[c,m]],[/\b((nxa|next)-?\w{0,9}) b/i],[l,[d,"NextBook"],[c,m]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[d,"Voice"],l,[c,g]],[/\b(lvtel\-)?(v1[12]) b/i],[[d,"LvTel"],l,[c,g]],[/\b(ph-1) /i],[l,[d,"Essential"],[c,g]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[l,[d,"Envizen"],[c,m]],[/\b(trio[-\w\. ]+) b/i],[l,[d,"MachSpeed"],[c,m]],[/\btu_(1491) b/i],[l,[d,"Rotor"],[c,m]],[/(shield[\w ]+) b/i],[l,[d,"Nvidia"],[c,m]],[/(sprint) (\w+)/i],[d,l,[c,g]],[/(kin\.[onetw]{3})/i],[[l,/\./g," "],[d,R],[c,g]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[l,[d,M],[c,m]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[l,[d,M],[c,g]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[d,l,[c,b]],[/droid.+; (shield) bui/i],[l,[d,"Nvidia"],[c,b]],[/(playstation [345portablevi]+)/i],[l,[d,P],[c,b]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[l,[d,R],[c,b]],[/smart-tv.+(samsung)/i],[d,[c,v]],[/hbbtv.+maple;(\d+)/i],[[l,/^/,"SmartTV"],[d,j],[c,v]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[d,N],[c,v]],[/(apple) ?tv/i],[d,[l,E+" TV"],[c,v]],[/crkey/i],[[l,L+"cast"],[d,O],[c,v]],[/droid.+aft(\w)( bui|\))/i],[l,[d,y],[c,v]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[l,[d,D],[c,v]],[/(bravia[\w ]+)( bui|\))/i],[l,[d,P],[c,v]],[/(mitv-\w{5}) bui/i],[l,[d,z],[c,v]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w ]*; *(\w[^;]*);([^;]*)/i],[[d,U],[l,U],[c,v]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[c,v]],[/((pebble))app/i],[d,l,[c,h]],[/droid.+; (glass) \d/i],[l,[d,O],[c,h]],[/droid.+; (wt63?0{2,3})\)/i],[l,[d,M],[c,h]],[/(quest( 2)?)/i],[l,[d,F],[c,h]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[d,[c,w]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],[l,[c,g]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[l,[c,m]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[c,m]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[c,g]],[/(android[-\w\. ]{0,9});.+buil/i],[l,[d,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[p,[u,"EdgeHTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[p,[u,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i],[u,p],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[p,u]],os:[[/microsoft (windows) (vista|xp)/i],[u,p],[/(windows) nt 6\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,/(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i],[u,[p,G,V]],[/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[u,"Windows"],[p,G,V]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/cfnetwork\/.+darwin/i],[[p,/_/g,"."],[u,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[u,"Mac OS"],[p,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[p,u],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[u,p],[/\(bb(10);/i],[p,[u,k]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[p,[u,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[p,[u,S+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[p,[u,"webOS"]],[/crkey\/([\d\.]+)/i],[p,[u,L+"cast"]],[/(cros) [\w]+ ([\w\.]+\w)/i],[[u,"Chromium OS"],p],[/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[u,p],[/(sunos) ?([\w\.\d]*)/i],[[u,"Solaris"],p],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i,/(unix) ?([\w\.]*)/i],[u,p]]},K=function(e,t){if(typeof e===a&&(t=e,e=i),!(this instanceof K))return new K(e,t).getResult();var r=e||(typeof n!==o&&n.navigator&&n.navigator.userAgent?n.navigator.userAgent:""),b=t?function(e,n){var t={};for(var i in e)n[i]&&n[i].length%2==0?t[i]=n[i].concat(e[i]):t[i]=e[i];return t}(W,t):W;return this.getBrowser=function(){var e,n={};return n[u]=i,n[p]=i,q.call(n,r,b.browser),n.major=typeof(e=n.version)===s?e.replace(/[^\d\.]/g,"").split(".")[0]:i,n},this.getCPU=function(){var e={};return e[f]=i,q.call(e,r,b.cpu),e},this.getDevice=function(){var e={};return e[d]=i,e[l]=i,e[c]=i,q.call(e,r,b.device),e},this.getEngine=function(){var e={};return e[u]=i,e[p]=i,q.call(e,r,b.engine),e},this.getOS=function(){var e={};return e[u]=i,e[p]=i,q.call(e,r,b.os),e},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return r},this.setUA=function(e){return r=typeof e===s&&e.length>350?U(e,350):e,this},this.setUA(r),this};K.VERSION="1.0.32",K.BROWSER=$([u,p,"major"]),K.CPU=$([f]),K.DEVICE=$([l,d,c,b,g,v,m,h,w]),K.ENGINE=K.OS=$([u,p]),e.exports&&(t=e.exports=K),t.UAParser=K;var H=typeof n!==o&&(n.jQuery||n.Zepto);if(H&&!H.ua){var X=new K;H.ua=X.getResult(),H.ua.get=function(){return X.getUA()},H.ua.set=function(e){X.setUA(e);var n=X.getResult();for(var t in n)H.ua[t]=n[t]}}}("object"==typeof window?window:n)}(t,t.exports);const i="_faroInternal",r="undefined"==typeof window?global:window;function o(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(r,i,{configurable:!1,enumerable:!1,writable:!1,value:e}))}function a(){return i in r}function s(n,t){return n.debug("Initializing Faro"),e.faro=t,o(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 r)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(r,e.config.globalObjectKey,{configurable:!1,writable:!1,value:e})}}(e.faro),e.faro}e.faro={};class l{get faro(){return e.faro}logDebug(...e){var n,t;null===(t=null===(n=this.faro)||void 0===n?void 0:n.internalLogger)||void 0===t||t.debug(`${this.name}\n`,...e)}logInfo(...e){var n,t;null===(t=null===(n=this.faro)||void 0===n?void 0:n.internalLogger)||void 0===t||t.info(`${this.name}\n`,...e)}logWarn(...e){var n,t;null===(t=null===(n=this.faro)||void 0===n?void 0:n.internalLogger)||void 0===t||t.warn(`${this.name}\n`,...e)}logError(...e){var n,t;null===(t=null===(n=this.faro)||void 0===n?void 0:n.internalLogger)||void 0===t||t.error(`${this.name}\n`,...e)}}function u(e,n){return typeof e===n}function c(e,n){return Object.prototype.toString.call(e)===`[object ${n}]`}function d(e,n){try{return e instanceof n}catch(e){return!1}}const p=e=>u(e,"undefined"),f=e=>u(e,"null"),b=e=>u(e,"string"),g=e=>u(e,"number")&&!isNaN(e)||u(e,"bigint"),m=e=>!f(e)&&u(e,"object"),v=e=>u(e,"function"),h=e=>c(e,"Array"),w=e=>!m(e)&&!v(e),y=!p(Event),E=e=>y&&d(e,Event),x="undefined"!=typeof Error,k=e=>x&&d(e,Error),T=e=>c(e,"ErrorEvent"),L=e=>c(e,"DOMError"),S=e=>c(e,"DOMException"),O="undefined"!=typeof Element,I="undefined"!=typeof Map;function N(e,n){if(e===n)return!0;if(u(e,"number")&&isNaN(e))return u(n,"number")&&isNaN(n);const t=h(e),i=h(n);if(t!==i)return!1;if(t&&i){const t=e.length;if(t!==n.length)return!1;for(let i=t;0!=i--;)if(!N(e[i],n[i]))return!1;return!0}const r=m(e),o=m(n);if(r!==o)return!1;if(e&&n&&r&&o){const t=Object.keys(e),i=Object.keys(n);if(t.length!==i.length)return!1;for(let e of t)if(!i.includes(e))return!1;for(let i of t)if(!N(e[i],n[i]))return!1;return!0}return!1}function R(){return(new Date).toISOString()}var A;e.LogLevel=void 0,(A=e.LogLevel||(e.LogLevel={})).TRACE="trace",A.DEBUG="debug",A.INFO="info",A.LOG="log",A.WARN="warn",A.ERROR="error";const C=e.LogLevel.LOG,j=[e.LogLevel.TRACE,e.LogLevel.DEBUG,e.LogLevel.INFO,e.LogLevel.LOG,e.LogLevel.WARN,e.LogLevel.ERROR];function D(){}function P(e){const{size:n,concurrency:t}=e,i=[];let r=0;const o=()=>{if(r<t&&i.length){const{producer:e,resolve:n,reject:t}=i.shift();r++,e().then((e=>{r--,o(),n(e)}),(e=>{r--,o(),t(e)}))}};return{add:e=>{if(i.length+r>=n)throw new Error("Task buffer full");return new Promise(((n,t)=>{i.push({producer:e,resolve:n,reject:t}),o()}))}}}const z="abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ0123456789";function M(e=10){return Array.from(Array(e)).map((()=>z[Math.floor(Math.random()*z.length)])).join("")}var F;e.TransportItemType=void 0,(F=e.TransportItemType||(e.TransportItemType={})).EXCEPTION="exception",F.LOG="log",F.MEASUREMENT="measurement",F.TRACE="trace",F.EVENT="event";const $={[e.TransportItemType.EXCEPTION]:"exceptions",[e.TransportItemType.LOG]:"logs",[e.TransportItemType.MEASUREMENT]:"measurements",[e.TransportItemType.TRACE]:"traces",[e.TransportItemType.EVENT]:"events"};function _(n){return t=>{if(t.type===e.TransportItemType.EXCEPTION&&t.payload){const e=t.payload,i=`${e.type}: ${e.value}`;if(function(e,n){return e.some((e=>b(e)?n.includes(e):!!n.match(e)))}(n,i))return null}return t}}class B extends l{getIgnoreUrls(){return[]}}function U(n){return{[$[n.type]]:n.type===e.TransportItemType.TRACE?n.payload:[n.payload],meta:n.meta}}const q="Error";let G;function V(n,t,i,r){n.debug("Initializing API");const o=function(n,t,i,r){let o;return n.debug("Initializing traces API"),{getOTEL:()=>o,getTraceContext:()=>{const e=null==o?void 0:o.trace.getSpanContext(o.context.active());return e?{trace_id:e.traceId,span_id:e.spanId}:void 0},initOTEL:(e,t)=>{n.debug("Initializing OpenTelemetry"),o={trace:e,context:t}},isOTELInitialized:()=>!!o,pushTraces:t=>{try{const o={type:e.TransportItemType.TRACE,payload:t,meta:r.value};n.debug("Pushing trace\n",o),i.execute(o)}catch(e){n.error("Error pushing trace\n",e)}}}}(n,0,i,r);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},o),function(n,t,i,r,o){var a;n.debug("Initializing exceptions API");let s=null;G=null!==(a=t.parseStacktrace)&&void 0!==a?a:G;const l=e=>{n.debug("Changing stacktrace parser"),G=null!=e?e:G};return l(t.parseStacktrace),{changeStacktraceParser:l,getStacktraceParser:()=>G,pushError:(a,{skipDedupe:l,stackFrames:u,type:c}={})=>{c=c||a.name||q;const d={meta:r.value,payload:{type:c,value:a.message,timestamp:R(),trace:o.getTraceContext()},type:e.TransportItemType.EXCEPTION};(null==(u=null!=u?u:a.stack?null==G?void 0:G(a).frames:void 0)?void 0:u.length)&&(d.payload.stacktrace={frames:u});const p={type:d.payload.type,value:d.payload.value,stackTrace:d.payload.stacktrace};l||!t.dedupe||f(s)||!N(p,s)?(s=p,n.debug("Pushing exception\n",d),i.execute(d)):n.debug("Skipping error push because it is the same as the last one\n",d.payload)}}}(n,t,i,r,o)),function(e,n,t,i){let r,o;e.debug("Initializing meta API");const a=e=>{o&&i.remove(o),o={user:e},i.add(o)},s=e=>{r&&i.remove(r),r={session:e},i.add(r)};return{setUser:a,resetUser:a,setSession:s,resetSession:s,getSession:()=>i.value.session}}(n,0,0,r)),function(n,t,i,r,o){n.debug("Initializing logs API");let a=null;return{pushLog:(s,{context:l,level:u,skipDedupe:c}={})=>{try{const d={type:e.TransportItemType.LOG,payload:{message:s.map((e=>{try{return String(e)}catch(e){return""}})).join(" "),level:null!=u?u:C,context:null!=l?l:{},timestamp:R(),trace:o.getTraceContext()},meta:r.value},p={message:d.payload.message,level:d.payload.level,context:d.payload.context};if(!c&&t.dedupe&&!f(a)&&N(p,a))return void n.debug("Skipping log push because it is the same as the last one\n",d.payload);a=p,n.debug("Pushing log\n",d),i.execute(d)}catch(e){n.error("Error pushing log\n",e)}}}}(n,t,i,r,o)),function(n,t,i,r,o){n.debug("Initializing measurements API");let a=null;return{pushMeasurement:(s,{skipDedupe:l}={})=>{try{const u={type:e.TransportItemType.MEASUREMENT,payload:Object.assign(Object.assign({},s),{trace:o.getTraceContext()}),meta:r.value},c={type:u.payload.type,values:u.payload.values};if(!l&&t.dedupe&&!f(a)&&N(c,a))return void n.debug("Skipping measurement push because it is the same as the last one\n",u.payload);a=c,n.debug("Pushing measurement\n",u),i.execute(u)}catch(e){n.error("Error pushing measurement\n",e)}}}}(n,t,i,r,o)),function(n,t,i,r,o){let a=null;return{pushEvent:(s,l,u,{skipDedupe:c}={})=>{try{const d={meta:r.value,payload:{name:s,domain:null!=u?u:t.eventDomain,attributes:l,timestamp:R(),trace:o.getTraceContext()},type:e.TransportItemType.EVENT},p={name:d.payload.name,attributes:d.payload.attributes,domain:d.payload.domain};if(!c&&t.dedupe&&!f(a)&&N(p,a))return void n.debug("Skipping event push because it is the same as the last one\n",d.payload);a=p,n.debug("Pushing event\n",d),i.execute(d)}catch(e){n.error("Error pushing event",e)}}}}(n,t,i,r,o))}class W extends l{}function K(e,n){e.debug("Initializing instrumentations");const t=[];return{add:(...n)=>{e.debug("Adding instrumentations"),n.forEach((n=>{e.debug(`Adding "${n.name}" instrumentation`);t.some((e=>e.name===n.name))?e.warn(`Transport ${n.name} is already added`):(t.push(n),n.initialize())}))},get instrumentations(){return[...t]},remove:(...n)=>{e.debug("Removing instrumentations"),n.forEach((n=>{var i,r;e.debug(`Removing "${n.name}" instrumentation`);const o=t.reduce(((e,t,i)=>null===e&&t.name===n.name?i:null),null);o?(null===(r=(i=t[o]).destroy)||void 0===r||r.call(i),t.splice(o,1)):e.warn(`Instrumentation "${n.name}" is not added`)}))}}}var H;e.InternalLoggerLevel=void 0,(H=e.InternalLoggerLevel||(e.InternalLoggerLevel={}))[H.OFF=0]="OFF",H[H.ERROR=1]="ERROR",H[H.WARN=2]="WARN",H[H.INFO=3]="INFO",H[H.VERBOSE=4]="VERBOSE";const X={debug:D,error:D,info:D,prefix:"Faro",warn:D},Z=e.InternalLoggerLevel.ERROR,J=Object.assign({},console);let Q=J;function Y(e){var n;return Q=null!==(n=e.unpatchedConsole)&&void 0!==n?n:Q,Q}function ee(n=J,t=Z){const i=X;return t>e.InternalLoggerLevel.OFF&&(i.error=t>=e.InternalLoggerLevel.ERROR?function(...e){n.error(`${i.prefix}\n`,...e)}:D,i.warn=t>=e.InternalLoggerLevel.WARN?function(...e){n.warn(`${i.prefix}\n`,...e)}:D,i.info=t>=e.InternalLoggerLevel.INFO?function(...e){n.info(`${i.prefix}\n`,...e)}:D,i.debug=t>=e.InternalLoggerLevel.VERBOSE?function(...e){n.debug(`${i.prefix}\n`,...e)}:D),i}let ne=X;function te(e,n){return ne=ee(e,n.internalLoggerLevel),ne}const ie="1.0.0-beta4";function re(e){const n=Y(e),t=te(n,e);if(t.debug("Initializing"),a()&&!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');const i=function(e,n){var t;let i=[],r=[];const o=()=>i.reduce(((e,n)=>Object.assign(e,v(n)?n():n)),{}),a=()=>{if(r.length){const e=o();r.forEach((n=>n(e)))}},s=(...n)=>{e.debug("Adding metas\n",n),i.push(...n),a()},l={sdk:{name:"@grafana/faro-core",version:ie,integrations:n.instrumentations.map((({name:e,version:n})=>({name:e,version:n})))}};return n.app&&(l.app=n.app),n.user&&(l.user=n.user),s(l,...null!==(t=n.metas)&&void 0!==t?t:[]),{add:s,remove:(...n)=>{e.debug("Removing metas\n",n),i=i.filter((e=>!n.includes(e))),a()},addListener:e=>{r.push(e)},removeListener:e=>{r=r.filter((n=>n!==e))},get value(){return o()}}}(t,e),r=function(e,n){e.debug("Initializing transports");const t=[];let i=n.paused,r=[];const o=(...n)=>{e.debug("Adding transports"),n.forEach((n=>{e.debug(`Adding "${n.name}" transport`),t.some((e=>e===n))?e.warn(`Transport ${n.name} is already added`):t.push(n)}))},a=(...n)=>{e.debug("Adding beforeSendHooks\n",r),n.forEach((e=>{e&&r.push(e)}))},s=(...n)=>{e.debug("Adding ignoreErrorsPatterns\n",n),n.forEach((e=>{e&&r.push(_(e))}))};return o(...n.transports),a(n.beforeSend),s(n.ignoreErrors),{add:o,addBeforeSendHooks:a,addIgnoreErrorsPatterns:s,getBeforeSendHooks:()=>[...r],execute:n=>{if(!i){let i=n;for(const e of r){const n=e(i);if(null===n)return;i=n}for(const n of t)e.debug(`Transporting item using ${n.name}\n`,i),n.send(i)}},isPaused:()=>i,pause:()=>{e.debug("Pausing transports"),i=!0},remove:(...n)=>{e.debug("Removing transports"),n.forEach((n=>{e.debug(`Removing "${n.name}" transport`);const i=t.indexOf(n);-1!==i?t.splice(i,1):e.warn(`Transport "${n.name}" is not added`)}))},removeBeforeSendHooks:(...e)=>{r.filter((n=>!e.includes(n)))},get transports(){return[...t]},unpause:()=>{e.debug("Unpausing transports"),i=!1}}}(t,e),o=V(t,e,r,i);e.session&&o.setSession(e.session);const l=s(t,{api:o,config:e,internalLogger:t,metas:i,pause:r.pause,transports:r,unpatchedConsole:n,unpause:r.unpause,instrumentations:K(t)});return l.instrumentations.add(...e.instrumentations),l}const oe="faro",ae={EventNames:{CLICK:"click",NAVIGATION:"navigation",SESSION_START:"session_start"}};class se extends W{constructor(){super(...arguments),this.name="@grafana/faro-web-sdk:instrumentation-session",this.version=t.exports.VERSION}sendSessionStartEvent(e){const n=e.session;n&&n!==this.notifiedSession&&(this.notifiedSession=n,this.faro.api.pushEvent(ae.EventNames.SESSION_START,{},void 0,{skipDedupe:!0}))}initialize(){this.sendSessionStartEvent(this.faro.metas.value),this.faro.metas.addListener(this.sendSessionStartEvent.bind(this))}}class le extends W{constructor(e={}){super(),this.options=e,this.name="@grafana/faro-web-sdk:instrumentation-console",this.version=ie}initialize(){this.logDebug("Initializing\n",this.options),j.filter((e=>{var n;return!(null!==(n=this.options.disabledLevels)&&void 0!==n?n:le.defaultDisabledLevels).includes(e)})).forEach((e=>{console[e]=(...n)=>{try{this.faro.api.pushLog(n,{level:e})}catch(e){this.logError(e)}finally{this.faro.unpatchedConsole[e](...n)}}}))}}le.defaultDisabledLevels=[e.LogLevel.DEBUG,e.LogLevel.TRACE,e.LogLevel.LOG];const ue=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i,ce=/^\s*at (?:(.*\).*?|.*?) ?\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,de=/\((\S*)(?::(\d+))(?::(\d+))\)/,pe="address at ",fe=pe.length,be=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|safari-extension|safari-web-extension|capacitor)?:\/.*?|\[native code]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,ge=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,me="safari-extension",ve="safari-web-extension",he=/Minified React error #\d+;/i;function we(e,n,t,i){const r={filename:e||document.location.href,function:n||"?"};return void 0!==t&&(r.lineno=t),void 0!==i&&(r.colno=i),r}function ye(e,n){const t=null==e?void 0:e.includes(me),i=!t&&(null==e?void 0:e.includes(ve));return t||i?[(null==e?void 0:e.includes("@"))?e.split("@")[0]:e,t?`${me}:${n}`:`${ve}:${n}`]:[e,n]}function Ee(e){let n=[];e.stacktrace?n=e.stacktrace.split("\n").filter(((e,n)=>n%2==0)):e.stack&&(n=e.stack.split("\n"));const t=n.reduce(((n,t,i)=>{let r,o,a,s,l;if(r=ce.exec(t)){if(o=r[1],a=r[2],s=r[3],l=r[4],null==a?void 0:a.startsWith("eval")){const e=de.exec(a);e&&(a=e[1],s=e[2],l=e[3])}a=(null==a?void 0:a.startsWith(pe))?a.substring(fe):a,[o,a]=ye(o,a)}else if(r=be.exec(t)){if(o=r[1],a=r[3],s=r[4],l=r[5],a&&a.includes(" > eval")){const e=ge.exec(a);e&&(o=o||"eval",a=e[1],s=e[2])}else 0===i&&!l&&g(e.columnNumber)&&(l=String(e.columnNumber+1));[o,a]=ye(o,a)}return(a||o)&&n.push(we(a,o,s?Number(s):void 0,l?Number(l):void 0)),n}),[]);return he.test(e.message)?t.slice(1):t}function xe(e){return{frames:Ee(e)}}function ke(e){let n,t,i,r,o=[];if(T(e)&&e.error)n=e.error.message,t=e.error.name,o=Ee(e.error);else if((i=L(e))||S(e)){const{name:r,message:o}=e;t=null!=r?r:i?"DOMError":"DOMException",n=o?`${t}: ${o}`:t}else k(e)?(n=e.message,o=Ee(e)):(m(e)||(r=E(e)))&&(t=r?e.constructor.name:void 0,n=`Non-Error exception captured with keys: ${Object.keys(e)}`);return[n,t,o]}function Te(e){const n=window.onerror;window.onerror=(...t)=>{try{const[i,r,o,a,s]=t;let l,u,c=[];const d=b(i),p=we(r,"?",o,a);s||!d?([l,u,c]=ke(null!=s?s:i),0===c.length&&(c=[p])):d&&([l,u]=function(e){var n,t;const i=e.match(ue),r=null!==(n=null==i?void 0:i[1])&&void 0!==n?n:q;return[null!==(t=null==i?void 0:i[2])&&void 0!==t?t:e,r]}(i),c=[p]),l&&e.api.pushError(new Error(l),{type:u,stackFrames:c})}finally{null==n||n.apply(window,t)}}}class Le extends W{constructor(){super(...arguments),this.name="@grafana/faro-web-sdk:instrumentation-errors",this.version=ie}initialize(){var e;this.logDebug("Initializing"),Te(this.faro),e=this.faro,window.addEventListener("unhandledrejection",(n=>{var t,i;let r,o,a=n;a.reason?a=n.reason:(null===(t=n.detail)||void 0===t?void 0:t.reason)&&(a=null===(i=n.detail)||void 0===i?void 0:i.reason),w(a)?(r=`Non-Error promise rejection captured with value: ${String(a)}`,o="UnhandledRejection"):[r,o]=ke(a),r&&e.api.pushError(new Error(r),{type:o})}))}}var Se,Oe,Ie,Ne,Re,Ae=-1,Ce=function(e){addEventListener("pageshow",(function(n){n.persisted&&(Ae=n.timeStamp,e(n))}),!0)},je=function(){return window.performance&&performance.getEntriesByType&&performance.getEntriesByType("navigation")[0]},De=function(){var e=je();return e&&e.activationStart||0},Pe=function(e,n){var t=je(),i="navigate";return Ae>=0?i="back-forward-cache":t&&(i=document.prerendering||De()>0?"prerender":document.wasDiscarded?"restore":t.type.replace(/_/g,"-")),{name:e,value:void 0===n?-1:n,rating:"good",delta:0,entries:[],id:"v3-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:i}},ze=function(e,n,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var i=new PerformanceObserver((function(e){Promise.resolve().then((function(){n(e.getEntries())}))}));return i.observe(Object.assign({type:e,buffered:!0},t||{})),i}}catch(e){}},Me=function(e,n){var t=function t(i){"pagehide"!==i.type&&"hidden"!==document.visibilityState||(e(i),n&&(removeEventListener("visibilitychange",t,!0),removeEventListener("pagehide",t,!0)))};addEventListener("visibilitychange",t,!0),addEventListener("pagehide",t,!0)},Fe=function(e,n,t,i){var r,o;return function(a){n.value>=0&&(a||i)&&((o=n.value-(r||0))||void 0===r)&&(r=n.value,n.delta=o,n.rating=function(e,n){return e>n[1]?"poor":e>n[0]?"needs-improvement":"good"}(n.value,t),e(n))}},$e=function(e){requestAnimationFrame((function(){return requestAnimationFrame((function(){return e()}))}))},_e=function(e){document.prerendering?addEventListener("prerenderingchange",(function(){return e()}),!0):e()},Be=-1,Ue=function(){return"hidden"!==document.visibilityState||document.prerendering?1/0:0},qe=function(e){"hidden"===document.visibilityState&&Be>-1&&(Be="visibilitychange"===e.type?e.timeStamp:0,Ve())},Ge=function(){addEventListener("visibilitychange",qe,!0),addEventListener("prerenderingchange",qe,!0)},Ve=function(){removeEventListener("visibilitychange",qe,!0),removeEventListener("prerenderingchange",qe,!0)},We=function(){return Be<0&&(Be=Ue(),Ge(),Ce((function(){setTimeout((function(){Be=Ue(),Ge()}),0)}))),{get firstHiddenTime(){return Be}}},Ke=function(e,n){n=n||{},_e((function(){var t,i=[1800,3e3],r=We(),o=Pe("FCP"),a=ze("paint",(function(e){e.forEach((function(e){"first-contentful-paint"===e.name&&(a.disconnect(),e.startTime<r.firstHiddenTime&&(o.value=Math.max(e.startTime-De(),0),o.entries.push(e),t(!0)))}))}));a&&(t=Fe(e,o,i,n.reportAllChanges),Ce((function(r){o=Pe("FCP"),t=Fe(e,o,i,n.reportAllChanges),$e((function(){o.value=performance.now()-r.timeStamp,t(!0)}))})))}))},He={passive:!0,capture:!0},Xe=new Date,Ze=function(e,n){Se||(Se=n,Oe=e,Ie=new Date,Ye(removeEventListener),Je())},Je=function(){if(Oe>=0&&Oe<Ie-Xe){var e={entryType:"first-input",name:Se.type,target:Se.target,cancelable:Se.cancelable,startTime:Se.timeStamp,processingStart:Se.timeStamp+Oe};Ne.forEach((function(n){n(e)})),Ne=[]}},Qe=function(e){if(e.cancelable){var n=(e.timeStamp>1e12?new Date:performance.now())-e.timeStamp;"pointerdown"==e.type?function(e,n){var t=function(){Ze(e,n),r()},i=function(){r()},r=function(){removeEventListener("pointerup",t,He),removeEventListener("pointercancel",i,He)};addEventListener("pointerup",t,He),addEventListener("pointercancel",i,He)}(n,e):Ze(n,e)}},Ye=function(e){["mousedown","keydown","touchstart","pointerdown"].forEach((function(n){return e(n,Qe,He)}))},en=0,nn=1/0,tn=0,rn=function(e){e.forEach((function(e){e.interactionId&&(nn=Math.min(nn,e.interactionId),tn=Math.max(tn,e.interactionId),en=tn?(tn-nn)/7+1:0)}))},on=function(){return Re?en:performance.interactionCount||0},an=function(){"interactionCount"in performance||Re||(Re=ze("event",rn,{type:"event",buffered:!0,durationThreshold:0}))},sn=0,ln=function(){return on()-sn},un=[],cn={},dn=function(e){var n=un[un.length-1],t=cn[e.interactionId];if(t||un.length<10||e.duration>n.latency){if(t)t.entries.push(e),t.latency=Math.max(t.latency,e.duration);else{var i={id:e.interactionId,latency:e.duration,entries:[e]};cn[i.id]=i,un.push(i)}un.sort((function(e,n){return n.latency-e.latency})),un.splice(10).forEach((function(e){delete cn[e.id]}))}},pn={},fn=function e(n){document.prerendering?_e((function(){return e(n)})):"complete"!==document.readyState?addEventListener("load",(function(){return e(n)}),!0):setTimeout(n,0)};class bn extends W{constructor(){super(...arguments),this.name="@grafana/faro-web-sdk:instrumentation-web-vitals",this.version=ie}initialize(){this.logDebug("Initializing"),Object.entries(bn.mapping).forEach((([e,n])=>{n((n=>{this.faro.api.pushMeasurement({type:"web-vitals",values:{[e]:n.value}})}))}))}}function gn(e={}){const n=[new Le,new bn,new se];return!1!==e.captureConsole&&n.push(new le({disabledLevels:e.captureConsoleDisabledLevels})),n}bn.mapping={cls:function(e,n){n=n||{},_e((function(){var t,i=[.1,.25],r=Pe("CLS"),o=-1,a=0,s=[],l=function(n){o>-1&&e(n)},u=function(e){e.forEach((function(e){if(!e.hadRecentInput){var n=s[0],i=s[s.length-1];a&&e.startTime-i.startTime<1e3&&e.startTime-n.startTime<5e3?(a+=e.value,s.push(e)):(a=e.value,s=[e]),a>r.value&&(r.value=a,r.entries=s,t())}}))},c=ze("layout-shift",u);c&&(t=Fe(l,r,i,n.reportAllChanges),Ke((function(e){o=e.value,r.value<0&&(r.value=0,t())})),Me((function(){u(c.takeRecords()),t(!0)})),Ce((function(){a=0,o=-1,r=Pe("CLS",0),t=Fe(l,r,i,n.reportAllChanges),$e((function(){return t()}))})))}))},fcp:Ke,fid:function(e,n){n=n||{},_e((function(){var t,i=[100,300],r=We(),o=Pe("FID"),a=function(e){e.startTime<r.firstHiddenTime&&(o.value=e.processingStart-e.startTime,o.entries.push(e),t(!0))},s=function(e){e.forEach(a)},l=ze("first-input",s);t=Fe(e,o,i,n.reportAllChanges),l&&Me((function(){s(l.takeRecords()),l.disconnect()}),!0),l&&Ce((function(){var r;o=Pe("FID"),t=Fe(e,o,i,n.reportAllChanges),Ne=[],Oe=-1,Se=null,Ye(addEventListener),r=a,Ne.push(r),Je()}))}))},inp:function(e,n){n=n||{},_e((function(){var t=[200,500];an();var i,r=Pe("INP"),o=function(e){e.forEach((function(e){e.interactionId&&dn(e),"first-input"===e.entryType&&!un.some((function(n){return n.entries.some((function(n){return e.duration===n.duration&&e.startTime===n.startTime}))}))&&dn(e)}));var n,t=(n=Math.min(un.length-1,Math.floor(ln()/50)),un[n]);t&&t.latency!==r.value&&(r.value=t.latency,r.entries=t.entries,i())},a=ze("event",o,{durationThreshold:n.durationThreshold||40});i=Fe(e,r,t,n.reportAllChanges),a&&(a.observe({type:"first-input",buffered:!0}),Me((function(){o(a.takeRecords()),r.value<0&&ln()>0&&(r.value=0,r.entries=[]),i(!0)})),Ce((function(){un=[],sn=on(),r=Pe("INP"),i=Fe(e,r,t,n.reportAllChanges)})))}))},lcp:function(e,n){n=n||{},_e((function(){var t,i=[2500,4e3],r=We(),o=Pe("LCP"),a=function(e){var n=e[e.length-1];if(n){var i=Math.max(n.startTime-De(),0);i<r.firstHiddenTime&&(o.value=i,o.entries=[n],t())}},s=ze("largest-contentful-paint",a);if(s){t=Fe(e,o,i,n.reportAllChanges);var l=function(){pn[o.id]||(a(s.takeRecords()),s.disconnect(),pn[o.id]=!0,t(!0))};["keydown","click"].forEach((function(e){addEventListener(e,l,{once:!0,capture:!0})})),Me(l,!0),Ce((function(r){o=Pe("LCP"),t=Fe(e,o,i,n.reportAllChanges),$e((function(){o.value=performance.now()-r.timeStamp,pn[o.id]=!0,t(!0)}))}))}}))},ttfb:function(e,n){n=n||{};var t=[800,1800],i=Pe("TTFB"),r=Fe(e,i,t,n.reportAllChanges);fn((function(){var o=je();if(o){var a=o.responseStart;if(a<=0||a>performance.now())return;i.value=Math.max(a-De(),0),i.entries=[o],r(!0),Ce((function(){i=Pe("TTFB",0),(r=Fe(e,i,t,n.reportAllChanges))(!0)}))}}))}};const mn="browser",vn=()=>{const e=new t.exports.UAParser,{name:n,version:i}=e.getBrowser(),{name:r,version:o}=e.getOS(),a="unknown";return{browser:{name:null!=n?n:a,version:null!=i?i:a,os:`${null!=r?r:a} ${null!=o?o:a}`,mobile:navigator.userAgent.includes("Mobi")}}},hn=()=>({page:{url:location.href}}),wn=[vn,hn];function yn(e){return{id:M(),attributes:e}}function En(e,n,t,i){return new(t||(t=Promise))((function(r,o){function a(e){try{l(i.next(e))}catch(e){o(e)}}function s(e){try{l(i.throw(e))}catch(e){o(e)}}function l(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(a,s)}l((i=i.apply(e,n||[])).next())}))}class xn extends B{constructor(e){var n,t,i,r;super(),this.options=e,this.name="@grafana/faro-web-sdk:transport-fetch",this.version=ie,this.disabledUntil=new Date,this.rateLimitBackoffMs=null!==(n=e.defaultRateLimitBackoffMs)&&void 0!==n?n:5e3,this.getNow=null!==(t=e.getNow)&&void 0!==t?t:()=>Date.now(),this.promiseBuffer=P({size:null!==(i=e.bufferSize)&&void 0!==i?i:30,concurrency:null!==(r=e.concurrency)&&void 0!==r?r:5})}send(e){return En(this,void 0,void 0,(function*(){try{if(this.disabledUntil>new Date(this.getNow()))return this.logWarn(`Dropping transport item due to too many requests. Backoff until ${this.disabledUntil}`),Promise.resolve();yield this.promiseBuffer.add((()=>{const n=JSON.stringify(U(e)),{url:t,requestOptions:i,apiKey:r}=this.options,o=null!=i?i:{},{headers:a}=o,s=function(e,n){var t={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0&&(t[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)n.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(t[i[r]]=e[i[r]])}return t}(o,["headers"]);return fetch(t,Object.assign({method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},null!=a?a:{}),r?{"x-api-key":r}:{}),body:n,keepalive:!0},null!=s?s:{})).then((e=>(429===e.status&&(this.disabledUntil=this.getRetryAfterDate(e),this.logWarn(`Too many requests, backing off until ${this.disabledUntil}`)),e))).catch((e=>{this.logError("Failed sending payload to the receiver\n",JSON.parse(n),e)}))}))}catch(e){this.logError(e)}}))}getIgnoreUrls(){return[this.options.url]}getRetryAfterDate(e){const n=this.getNow(),t=e.headers.get("Retry-After");if(t){const e=Number(t);if(!isNaN(e))return new Date(1e3*e+n);const i=Date.parse(t);if(!isNaN(i))return new Date(i)}return new Date(n+this.rateLimitBackoffMs)}}function kn(e){var n,t,i,r,o,a,s,l,u,c;const d=[],p=ee(e.unpatchedConsole,e.internalLoggerLevel);return e.transports?((e.url||e.apiKey)&&p.error('if "transports" is defined, "url" and "apiKey" should not be defined'),d.push(...e.transports)):e.url?d.push(new xn({url:e.url,apiKey:e.apiKey})):p.error('either "url" or "transports" must be defined'),{app:e.app,dedupe:null===(n=e.dedupe)||void 0===n||n,globalObjectKey:e.globalObjectKey||oe,instrumentations:null!==(t=e.instrumentations)&&void 0!==t?t:gn(),internalLoggerLevel:null!==(i=e.internalLoggerLevel)&&void 0!==i?i:Z,isolate:null!==(r=e.isolate)&&void 0!==r&&r,metas:null!==(o=e.metas)&&void 0!==o?o:wn,parseStacktrace:xe,paused:null!==(a=e.paused)&&void 0!==a&&a,preventGlobalExposure:null!==(s=e.preventGlobalExposure)&&void 0!==s&&s,transports:d,unpatchedConsole:null!==(l=e.unpatchedConsole)&&void 0!==l?l:J,beforeSend:e.beforeSend,ignoreErrors:e.ignoreErrors,session:null!==(u=e.session)&&void 0!==u?u:yn(),user:e.user,eventDomain:null!==(c=e.eventDomain)&&void 0!==c?c:mn}}return e.BaseExtension=l,e.BaseInstrumentation=W,e.BaseTransport=B,e.ConsoleInstrumentation=le,e.ConsoleTransport=class extends B{constructor(e={}){super(),this.options=e,this.name="@grafana/faro-web-sdk:transport-console",this.version=ie}send(n){var t;return this.faro.unpatchedConsole[null!==(t=this.options.level)&&void 0!==t?t:e.LogLevel.DEBUG]("New event",U(n))}},e.Conventions=ae,e.ErrorsInstrumentation=Le,e.FetchTransport=xn,e.VERSION=ie,e.WebVitalsInstrumentation=bn,e.allLogLevels=j,e.browserMeta=vn,e.buildStackFrame=we,e.createInternalLogger=ee,e.createPromiseBuffer=P,e.createSession=yn,e.deepEqual=N,e.defaultEventDomain=mn,e.defaultExceptionType=q,e.defaultGlobalObjectKey=oe,e.defaultInternalLoggerLevel=Z,e.defaultLogLevel=C,e.defaultMetas=wn,e.getCurrentTimestamp=R,e.getDataFromSafariExtensions=ye,e.getInternalFaroFromGlobalObject=function(){return r[i]},e.getStackFramesFromError=Ee,e.getTransportBody=U,e.getWebInstrumentations=gn,e.globalObject=r,e.initializeFaro=function(e){const n=kn(e);if(n)return re(n)},e.internalGlobalObjectKey=i,e.isArray=h,e.isBoolean=e=>u(e,"boolean"),e.isDomError=L,e.isDomException=S,e.isElement=e=>O&&d(e,Element),e.isElementDefined=O,e.isError=k,e.isErrorDefined=x,e.isErrorEvent=T,e.isEvent=E,e.isEventDefined=y,e.isFunction=v,e.isInstanceOf=d,e.isInt=e=>g(e)&&Number.isInteger(e),e.isInternalFaroOnGlobalObject=a,e.isMap=e=>I&&d(e,Map),e.isMapDefined=I,e.isNull=f,e.isNumber=g,e.isObject=m,e.isPrimitive=w,e.isRegExp=e=>c(e,"RegExp"),e.isString=b,e.isSymbol=e=>u(e,"symbol"),e.isSyntheticEvent=e=>m(e)&&"nativeEvent"in e&&"preventDefault"in e&&"stopPropagation"in e,e.isThenable=e=>v(null==e?void 0:e.then),e.isToString=c,e.isTypeof=u,e.isUndefined=p,e.makeCoreConfig=kn,e.noop=D,e.pageMeta=hn,e.parseStacktrace=xe,e.setInternalFaroOnGlobalObject=o,e.transportItemTypeToBodyKey=$,e}({});
@@ -1 +1 @@
1
- {"version":3,"file":"getWebInstrumentations.js","sourceRoot":"","sources":["../../../src/config/getWebInstrumentations.ts"],"names":[],"mappings":";;;AAEA,wDAK6B;AAG7B,SAAgB,sBAAsB,CAAC,OAA2C;IAA3C,wBAAA,EAAA,YAA2C;IAChF,IAAM,gBAAgB,GAAsB;QAC1C,IAAI,wCAAqB,EAAE;QAC3B,IAAI,2CAAwB,EAAE;QAC9B,IAAI,yCAAsB,EAAE;KAC7B,CAAC;IAEF,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,EAAE;QACpC,gBAAgB,CAAC,IAAI,CACnB,IAAI,yCAAsB,CAAC;YACzB,cAAc,EAAE,OAAO,CAAC,4BAA4B;SACrD,CAAC,CACH,CAAC;KACH;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAhBD,wDAgBC"}
1
+ {"version":3,"file":"getWebInstrumentations.js","sourceRoot":"","sources":["../../../src/config/getWebInstrumentations.ts"],"names":[],"mappings":";;;AAEA,wDAK6B;AAG7B,SAAgB,sBAAsB,CAAC,OAA2C;IAA3C,wBAAA,EAAA,YAA2C;IAChF,IAAM,gBAAgB,GAAsB;QAC1C,IAAI,wCAAqB,EAAE;QAC3B,IAAI,2CAAwB,EAAE;QAC9B,IAAI,yCAAsB,EAAE;KAC7B,CAAC;IAEF,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,EAAE;QACpC,gBAAgB,CAAC,IAAI,CACnB,IAAI,yCAAsB,CAAC;YACzB,cAAc,EAAE,OAAO,CAAC,4BAA4B;SACrD,CAAC,CACH,CAAC;KACH;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAhBD,wDAgBC","sourcesContent":["import type { Instrumentation } from '@grafana/faro-core';\n\nimport {\n ConsoleInstrumentation,\n ErrorsInstrumentation,\n SessionInstrumentation,\n WebVitalsInstrumentation,\n} from '../instrumentations';\nimport type { GetWebInstrumentationsOptions } from './types';\n\nexport function getWebInstrumentations(options: GetWebInstrumentationsOptions = {}): Instrumentation[] {\n const instrumentations: Instrumentation[] = [\n new ErrorsInstrumentation(),\n new WebVitalsInstrumentation(),\n new SessionInstrumentation(),\n ];\n\n if (options.captureConsole !== false) {\n instrumentations.push(\n new ConsoleInstrumentation({\n disabledLevels: options.captureConsoleDisabledLevels,\n })\n );\n }\n\n return instrumentations;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":";;;AAAA,mEAAkE;AAAzD,gIAAA,sBAAsB,OAAA;AAE/B,mDAAkD;AAAzC,gHAAA,cAAc,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":";;;AAAA,mEAAkE;AAAzD,gIAAA,sBAAsB,OAAA;AAE/B,mDAAkD;AAAzC,gHAAA,cAAc,OAAA","sourcesContent":["export { getWebInstrumentations } from './getWebInstrumentations';\n\nexport { makeCoreConfig } from './makeCoreConfig';\n\nexport type { BrowserConfig, GetWebInstrumentationsOptions } from './types';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"makeCoreConfig.js","sourceRoot":"","sources":["../../../src/config/makeCoreConfig.ts"],"names":[],"mappings":";;;AAAA,gDAK4B;AAG5B,oCAA+C;AAC/C,wDAAsD;AACtD,kCAAwC;AACxC,sCAA2C;AAC3C,4CAA+C;AAC/C,mEAAkE;AAGlE,SAAgB,cAAc,CAAC,aAA4B;;IACzD,IAAM,UAAU,GAAgB,EAAE,CAAC;IAEnC,IAAM,cAAc,GAAG,IAAA,gCAAoB,EAAC,aAAa,CAAC,gBAAgB,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAE/G,IAAI,aAAa,CAAC,UAAU,EAAE;QAC5B,IAAI,aAAa,CAAC,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE;YAC7C,cAAc,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;SAC9F;QAED,UAAU,CAAC,IAAI,OAAf,UAAU,EAAS,aAAa,CAAC,UAAU,EAAE;KAC9C;SAAM,IAAI,aAAa,CAAC,GAAG,EAAE;QAC5B,UAAU,CAAC,IAAI,CACb,IAAI,2BAAc,CAAC;YACjB,GAAG,EAAE,aAAa,CAAC,GAAG;YACtB,MAAM,EAAE,aAAa,CAAC,MAAM;SAC7B,CAAC,CACH,CAAC;KACH;SAAM;QACL,cAAc,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;KACtE;IAED,OAAO;QACL,GAAG,EAAE,aAAa,CAAC,GAAG;QACtB,MAAM,EAAE,MAAA,aAAa,CAAC,MAAM,mCAAI,IAAI;QACpC,eAAe,EAAE,aAAa,CAAC,eAAe,IAAI,kCAAsB;QACxE,gBAAgB,EAAE,MAAA,aAAa,CAAC,gBAAgB,mCAAI,IAAA,+CAAsB,GAAE;QAC5E,mBAAmB,EAAE,MAAA,aAAa,CAAC,mBAAmB,mCAAI,sCAA0B;QACpF,OAAO,EAAE,MAAA,aAAa,CAAC,OAAO,mCAAI,KAAK;QACvC,KAAK,EAAE,MAAA,aAAa,CAAC,KAAK,mCAAI,oBAAY;QAC1C,eAAe,oCAAA;QACf,MAAM,EAAE,MAAA,aAAa,CAAC,MAAM,mCAAI,KAAK;QACrC,qBAAqB,EAAE,MAAA,aAAa,CAAC,qBAAqB,mCAAI,KAAK;QACnE,UAAU,YAAA;QACV,gBAAgB,EAAE,MAAA,aAAa,CAAC,gBAAgB,mCAAI,mCAAuB;QAE3E,UAAU,EAAE,aAAa,CAAC,UAAU;QACpC,YAAY,EAAE,aAAa,CAAC,YAAY;QACxC,OAAO,EAAE,MAAA,aAAa,CAAC,OAAO,mCAAI,IAAA,uBAAa,GAAE;QACjD,IAAI,EAAE,aAAa,CAAC,IAAI;QACxB,WAAW,EAAE,MAAA,aAAa,CAAC,WAAW,mCAAI,2BAAkB;KAC7D,CAAC;AACJ,CAAC;AA1CD,wCA0CC"}
1
+ {"version":3,"file":"makeCoreConfig.js","sourceRoot":"","sources":["../../../src/config/makeCoreConfig.ts"],"names":[],"mappings":";;;AAAA,gDAK4B;AAG5B,oCAA+C;AAC/C,wDAAsD;AACtD,kCAAwC;AACxC,sCAA2C;AAC3C,4CAA+C;AAC/C,mEAAkE;AAGlE,SAAgB,cAAc,CAAC,aAA4B;;IACzD,IAAM,UAAU,GAAgB,EAAE,CAAC;IAEnC,IAAM,cAAc,GAAG,IAAA,gCAAoB,EAAC,aAAa,CAAC,gBAAgB,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAE/G,IAAI,aAAa,CAAC,UAAU,EAAE;QAC5B,IAAI,aAAa,CAAC,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE;YAC7C,cAAc,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;SAC9F;QAED,UAAU,CAAC,IAAI,OAAf,UAAU,EAAS,aAAa,CAAC,UAAU,EAAE;KAC9C;SAAM,IAAI,aAAa,CAAC,GAAG,EAAE;QAC5B,UAAU,CAAC,IAAI,CACb,IAAI,2BAAc,CAAC;YACjB,GAAG,EAAE,aAAa,CAAC,GAAG;YACtB,MAAM,EAAE,aAAa,CAAC,MAAM;SAC7B,CAAC,CACH,CAAC;KACH;SAAM;QACL,cAAc,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;KACtE;IAED,OAAO;QACL,GAAG,EAAE,aAAa,CAAC,GAAG;QACtB,MAAM,EAAE,MAAA,aAAa,CAAC,MAAM,mCAAI,IAAI;QACpC,eAAe,EAAE,aAAa,CAAC,eAAe,IAAI,kCAAsB;QACxE,gBAAgB,EAAE,MAAA,aAAa,CAAC,gBAAgB,mCAAI,IAAA,+CAAsB,GAAE;QAC5E,mBAAmB,EAAE,MAAA,aAAa,CAAC,mBAAmB,mCAAI,sCAA0B;QACpF,OAAO,EAAE,MAAA,aAAa,CAAC,OAAO,mCAAI,KAAK;QACvC,KAAK,EAAE,MAAA,aAAa,CAAC,KAAK,mCAAI,oBAAY;QAC1C,eAAe,oCAAA;QACf,MAAM,EAAE,MAAA,aAAa,CAAC,MAAM,mCAAI,KAAK;QACrC,qBAAqB,EAAE,MAAA,aAAa,CAAC,qBAAqB,mCAAI,KAAK;QACnE,UAAU,YAAA;QACV,gBAAgB,EAAE,MAAA,aAAa,CAAC,gBAAgB,mCAAI,mCAAuB;QAE3E,UAAU,EAAE,aAAa,CAAC,UAAU;QACpC,YAAY,EAAE,aAAa,CAAC,YAAY;QACxC,OAAO,EAAE,MAAA,aAAa,CAAC,OAAO,mCAAI,IAAA,uBAAa,GAAE;QACjD,IAAI,EAAE,aAAa,CAAC,IAAI;QACxB,WAAW,EAAE,MAAA,aAAa,CAAC,WAAW,mCAAI,2BAAkB;KAC7D,CAAC;AACJ,CAAC;AA1CD,wCA0CC","sourcesContent":["import {\n createInternalLogger,\n defaultGlobalObjectKey,\n defaultInternalLoggerLevel,\n defaultUnpatchedConsole,\n} from '@grafana/faro-core';\nimport type { Config, Transport } from '@grafana/faro-core';\n\nimport { defaultEventDomain } from '../consts';\nimport { parseStacktrace } from '../instrumentations';\nimport { defaultMetas } from '../metas';\nimport { createSession } from '../session';\nimport { FetchTransport } from '../transports';\nimport { getWebInstrumentations } from './getWebInstrumentations';\nimport type { BrowserConfig } from './types';\n\nexport function makeCoreConfig(browserConfig: BrowserConfig): Config | undefined {\n const transports: Transport[] = [];\n\n const internalLogger = createInternalLogger(browserConfig.unpatchedConsole, browserConfig.internalLoggerLevel);\n\n if (browserConfig.transports) {\n if (browserConfig.url || browserConfig.apiKey) {\n internalLogger.error('if \"transports\" is defined, \"url\" and \"apiKey\" should not be defined');\n }\n\n transports.push(...browserConfig.transports);\n } else if (browserConfig.url) {\n transports.push(\n new FetchTransport({\n url: browserConfig.url,\n apiKey: browserConfig.apiKey,\n })\n );\n } else {\n internalLogger.error('either \"url\" or \"transports\" must be defined');\n }\n\n return {\n app: browserConfig.app,\n dedupe: browserConfig.dedupe ?? true,\n globalObjectKey: browserConfig.globalObjectKey || defaultGlobalObjectKey,\n instrumentations: browserConfig.instrumentations ?? getWebInstrumentations(),\n internalLoggerLevel: browserConfig.internalLoggerLevel ?? defaultInternalLoggerLevel,\n isolate: browserConfig.isolate ?? false,\n metas: browserConfig.metas ?? defaultMetas,\n parseStacktrace,\n paused: browserConfig.paused ?? false,\n preventGlobalExposure: browserConfig.preventGlobalExposure ?? false,\n transports,\n unpatchedConsole: browserConfig.unpatchedConsole ?? defaultUnpatchedConsole,\n\n beforeSend: browserConfig.beforeSend,\n ignoreErrors: browserConfig.ignoreErrors,\n session: browserConfig.session ?? createSession(),\n user: browserConfig.user,\n eventDomain: browserConfig.eventDomain ?? defaultEventDomain,\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Config, LogLevel } from '@grafana/faro-core';\n\nexport interface BrowserConfig extends Partial<Omit<Config, 'app' | 'parseStacktrace'>>, Pick<Config, 'app'> {\n url?: string;\n apiKey?: string;\n}\n\nexport interface GetWebInstrumentationsOptions {\n captureConsole?: boolean;\n captureConsoleDisabledLevels?: LogLevel[];\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/consts.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/consts.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG,SAAS,CAAC","sourcesContent":["export const defaultEventDomain = 'browser';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,mCAAkE;AAAzD,gHAAA,sBAAsB,OAAA;AAAE,wGAAA,cAAc,OAAA;AAG/C,mCAA8C;AAArC,4GAAA,kBAAkB,OAAA;AAE3B,2CAA8C;AAArC,4GAAA,cAAc,OAAA;AAEvB,uDAQ4B;AAP1B,mHAAA,eAAe,OAAA;AACf,0HAAA,sBAAsB,OAAA;AACtB,yHAAA,qBAAqB,OAAA;AACrB,+HAAA,2BAA2B,OAAA;AAC3B,2HAAA,uBAAuB,OAAA;AACvB,mHAAA,eAAe,OAAA;AACf,4HAAA,wBAAwB,OAAA;AAI1B,iCAA8D;AAArD,oGAAA,WAAW,OAAA;AAAE,qGAAA,YAAY,OAAA;AAAE,iGAAA,QAAQ,OAAA;AAE5C,qCAA0C;AAAjC,wGAAA,aAAa,OAAA;AAEtB,2CAAgE;AAAvD,8GAAA,gBAAgB,OAAA;AAAE,4GAAA,cAAc,OAAA;AAQzC,gDAuD4B;AAtD1B,iGAAA,IAAI,OAAA;AACJ,yGAAA,YAAY,OAAA;AACZ,0GAAA,aAAa,OAAA;AACb,gHAAA,mBAAmB,OAAA;AACnB,0GAAA,aAAa,OAAA;AACb,wGAAA,WAAW,OAAA;AACX,iHAAA,oBAAoB,OAAA;AACpB,gHAAA,mBAAmB,OAAA;AACnB,sGAAA,SAAS,OAAA;AACT,iHAAA,oBAAoB,OAAA;AACpB,mHAAA,sBAAsB,OAAA;AACtB,uHAAA,0BAA0B,OAAA;AAC1B,4GAAA,eAAe,OAAA;AACf,gHAAA,mBAAmB,OAAA;AACnB,4HAAA,+BAA+B,OAAA;AAC/B,6GAAA,gBAAgB,OAAA;AAChB,yGAAA,YAAY,OAAA;AACZ,oHAAA,uBAAuB,OAAA;AACvB,oGAAA,OAAO,OAAA;AACP,sGAAA,SAAS,OAAA;AACT,uGAAA,UAAU,OAAA;AACV,2GAAA,cAAc,OAAA;AACd,sGAAA,SAAS,OAAA;AACT,6GAAA,gBAAgB,OAAA;AAChB,oGAAA,OAAO,OAAA;AACP,2GAAA,cAAc,OAAA;AACd,yGAAA,YAAY,OAAA;AACZ,oGAAA,OAAO,OAAA;AACP,2GAAA,cAAc,OAAA;AACd,uGAAA,UAAU,OAAA;AACV,yGAAA,YAAY,OAAA;AACZ,kGAAA,KAAK,OAAA;AACL,yHAAA,4BAA4B,OAAA;AAC5B,kGAAA,KAAK,OAAA;AACL,yGAAA,YAAY,OAAA;AACZ,mGAAA,MAAM,OAAA;AACN,qGAAA,QAAQ,OAAA;AACR,qGAAA,QAAQ,OAAA;AACR,wGAAA,WAAW,OAAA;AACX,qGAAA,QAAQ,OAAA;AACR,qGAAA,QAAQ,OAAA;AACR,qGAAA,QAAQ,OAAA;AACR,6GAAA,gBAAgB,OAAA;AAChB,uGAAA,UAAU,OAAA;AACV,uGAAA,UAAU,OAAA;AACV,qGAAA,QAAQ,OAAA;AACR,wGAAA,WAAW,OAAA;AACX,gHAAA,mBAAmB,OAAA;AACnB,qGAAA,QAAQ,OAAA;AACR,iGAAA,IAAI,OAAA;AACJ,0HAAA,6BAA6B,OAAA;AAC7B,8GAAA,iBAAiB,OAAA;AACjB,uHAAA,0BAA0B,OAAA;AAC1B,oGAAA,OAAO,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,mCAAkE;AAAzD,gHAAA,sBAAsB,OAAA;AAAE,wGAAA,cAAc,OAAA;AAG/C,mCAA8C;AAArC,4GAAA,kBAAkB,OAAA;AAE3B,2CAA8C;AAArC,4GAAA,cAAc,OAAA;AAEvB,uDAQ4B;AAP1B,mHAAA,eAAe,OAAA;AACf,0HAAA,sBAAsB,OAAA;AACtB,yHAAA,qBAAqB,OAAA;AACrB,+HAAA,2BAA2B,OAAA;AAC3B,2HAAA,uBAAuB,OAAA;AACvB,mHAAA,eAAe,OAAA;AACf,4HAAA,wBAAwB,OAAA;AAI1B,iCAA8D;AAArD,oGAAA,WAAW,OAAA;AAAE,qGAAA,YAAY,OAAA;AAAE,iGAAA,QAAQ,OAAA;AAE5C,qCAA0C;AAAjC,wGAAA,aAAa,OAAA;AAEtB,2CAAgE;AAAvD,8GAAA,gBAAgB,OAAA;AAAE,4GAAA,cAAc,OAAA;AAQzC,gDAuD4B;AAtD1B,iGAAA,IAAI,OAAA;AACJ,yGAAA,YAAY,OAAA;AACZ,0GAAA,aAAa,OAAA;AACb,gHAAA,mBAAmB,OAAA;AACnB,0GAAA,aAAa,OAAA;AACb,wGAAA,WAAW,OAAA;AACX,iHAAA,oBAAoB,OAAA;AACpB,gHAAA,mBAAmB,OAAA;AACnB,sGAAA,SAAS,OAAA;AACT,iHAAA,oBAAoB,OAAA;AACpB,mHAAA,sBAAsB,OAAA;AACtB,uHAAA,0BAA0B,OAAA;AAC1B,4GAAA,eAAe,OAAA;AACf,gHAAA,mBAAmB,OAAA;AACnB,4HAAA,+BAA+B,OAAA;AAC/B,6GAAA,gBAAgB,OAAA;AAChB,yGAAA,YAAY,OAAA;AACZ,oHAAA,uBAAuB,OAAA;AACvB,oGAAA,OAAO,OAAA;AACP,sGAAA,SAAS,OAAA;AACT,uGAAA,UAAU,OAAA;AACV,2GAAA,cAAc,OAAA;AACd,sGAAA,SAAS,OAAA;AACT,6GAAA,gBAAgB,OAAA;AAChB,oGAAA,OAAO,OAAA;AACP,2GAAA,cAAc,OAAA;AACd,yGAAA,YAAY,OAAA;AACZ,oGAAA,OAAO,OAAA;AACP,2GAAA,cAAc,OAAA;AACd,uGAAA,UAAU,OAAA;AACV,yGAAA,YAAY,OAAA;AACZ,kGAAA,KAAK,OAAA;AACL,yHAAA,4BAA4B,OAAA;AAC5B,kGAAA,KAAK,OAAA;AACL,yGAAA,YAAY,OAAA;AACZ,mGAAA,MAAM,OAAA;AACN,qGAAA,QAAQ,OAAA;AACR,qGAAA,QAAQ,OAAA;AACR,wGAAA,WAAW,OAAA;AACX,qGAAA,QAAQ,OAAA;AACR,qGAAA,QAAQ,OAAA;AACR,qGAAA,QAAQ,OAAA;AACR,6GAAA,gBAAgB,OAAA;AAChB,uGAAA,UAAU,OAAA;AACV,uGAAA,UAAU,OAAA;AACV,qGAAA,QAAQ,OAAA;AACR,wGAAA,WAAW,OAAA;AACX,gHAAA,mBAAmB,OAAA;AACnB,qGAAA,QAAQ,OAAA;AACR,iGAAA,IAAI,OAAA;AACJ,0HAAA,6BAA6B,OAAA;AAC7B,8GAAA,iBAAiB,OAAA;AACjB,uHAAA,0BAA0B,OAAA;AAC1B,oGAAA,OAAO,OAAA","sourcesContent":["export { getWebInstrumentations, makeCoreConfig } from './config';\nexport type { BrowserConfig } from './config';\n\nexport { defaultEventDomain } from './consts';\n\nexport { initializeFaro } from './initialize';\n\nexport {\n buildStackFrame,\n ConsoleInstrumentation,\n ErrorsInstrumentation,\n getDataFromSafariExtensions,\n getStackFramesFromError,\n parseStacktrace,\n WebVitalsInstrumentation,\n} from './instrumentations';\nexport type { ConsoleInstrumentationOptions, ErrorEvent, ExtendedPromiseRejectionEvent } from './instrumentations';\n\nexport { browserMeta, defaultMetas, pageMeta } from './metas';\n\nexport { createSession } from './session';\n\nexport { ConsoleTransport, FetchTransport } from './transports';\nexport type {\n ClockFn,\n ConsoleTransportOptions,\n FetchTransportOptions,\n FetchTransportRequestOptions,\n} from './transports';\n\nexport {\n faro,\n allLogLevels,\n BaseExtension,\n BaseInstrumentation,\n BaseTransport,\n Conventions,\n createInternalLogger,\n createPromiseBuffer,\n deepEqual,\n defaultExceptionType,\n defaultGlobalObjectKey,\n defaultInternalLoggerLevel,\n defaultLogLevel,\n getCurrentTimestamp,\n getInternalFaroFromGlobalObject,\n getTransportBody,\n globalObject,\n internalGlobalObjectKey,\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 isInternalFaroOnGlobalObject,\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 InternalLoggerLevel,\n LogLevel,\n noop,\n setInternalFaroOnGlobalObject,\n TransportItemType,\n transportItemTypeToBodyKey,\n VERSION,\n} from '@grafana/faro-core';\n\nexport type {\n Faro,\n API,\n APIEvent,\n BaseObject,\n BaseObjectKey,\n BaseObjectPrimitiveValue,\n BaseObjectValue,\n BeforeSendHook,\n BufferItem,\n Config,\n EventAttributes,\n EventEvent,\n EventsAPI,\n ExceptionEvent,\n ExceptionStackFrame,\n ExceptionsAPI,\n ExtendedError,\n GlobalObject,\n Instrumentation,\n Instrumentations,\n InternalLogger,\n LogContext,\n LogEvent,\n LogsAPI,\n MeasurementEvent,\n MeasurementsAPI,\n Meta,\n MetaAPI,\n MetaApp,\n MetaAttributes,\n MetaBrowser,\n MetaGetter,\n MetaItem,\n MetaPage,\n Metas,\n MetaSDK,\n MetaSDKIntegration,\n MetaSession,\n MetaUser,\n OTELApi,\n Patterns,\n PromiseBuffer,\n PromiseBufferOptions,\n PromiseProducer,\n PushErrorOptions,\n PushLogOptions,\n PushMeasurementOptions,\n Stacktrace,\n StacktraceParser,\n TraceContext,\n TraceEvent,\n TracesAPI,\n Transport,\n TransportBody,\n TransportItem,\n TransportItemPayload,\n Transports,\n UnpatchedConsole,\n} from '@grafana/faro-core';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../src/initialize.ts"],"names":[],"mappings":";;;AAAA,gDAAgE;AAGhE,mCAA0C;AAG1C,SAAgB,cAAc,CAAC,MAAqB;IAClD,IAAM,UAAU,GAAG,IAAA,uBAAc,EAAC,MAAM,CAAC,CAAC;IAE1C,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,SAAU,CAAC;KACnB;IAED,OAAO,IAAA,0BAAQ,EAAC,UAAU,CAAC,CAAC;AAC9B,CAAC;AARD,wCAQC"}
1
+ {"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../src/initialize.ts"],"names":[],"mappings":";;;AAAA,gDAAgE;AAGhE,mCAA0C;AAG1C,SAAgB,cAAc,CAAC,MAAqB;IAClD,IAAM,UAAU,GAAG,IAAA,uBAAc,EAAC,MAAM,CAAC,CAAC;IAE1C,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,SAAU,CAAC;KACnB;IAED,OAAO,IAAA,0BAAQ,EAAC,UAAU,CAAC,CAAC;AAC9B,CAAC;AARD,wCAQC","sourcesContent":["import { initializeFaro as coreInit } from '@grafana/faro-core';\nimport type { Faro } from '@grafana/faro-core';\n\nimport { makeCoreConfig } from './config';\nimport type { BrowserConfig } from './config';\n\nexport function initializeFaro(config: BrowserConfig): Faro {\n const coreConfig = makeCoreConfig(config);\n\n if (!coreConfig) {\n return undefined!;\n }\n\n return coreInit(coreConfig);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/instrumentations/console/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2D;AAAlD,yHAAA,sBAAsB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/instrumentations/console/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2D;AAAlD,yHAAA,sBAAsB,OAAA","sourcesContent":["export { ConsoleInstrumentation } from './instrumentation';\n\nexport type { ConsoleInstrumentationOptions } from './types';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../../src/instrumentations/console/instrumentation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,gDAA0F;AAI1F;IAA4C,0CAAmB;IAM7D,gCAAoB,OAA2C;QAA3C,wBAAA,EAAA,YAA2C;QAA/D,YACE,iBAAO,SACR;QAFmB,aAAO,GAAP,OAAO,CAAoC;QALtD,UAAI,GAAG,+CAA+C,CAAC;QACvD,aAAO,GAAG,mBAAO,CAAC;;IAM3B,CAAC;IAED,2CAAU,GAAV;QAAA,iBAiBC;QAhBC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE9C,wBAAY;aACT,MAAM,CAAC,UAAC,KAAK,YAAK,OAAA,CAAC,CAAC,MAAA,KAAI,CAAC,OAAO,CAAC,cAAc,mCAAI,sBAAsB,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA,EAAA,CAAC;aACjH,OAAO,CAAC,UAAC,KAAK;YACb,yCAAyC;YACzC,OAAO,CAAC,KAAK,CAAC,GAAG;;gBAAC,cAAO;qBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;oBAAP,yBAAO;;gBACvB,IAAI;oBACF,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,OAAA,EAAE,CAAC,CAAC;iBACxC;gBAAC,OAAO,GAAG,EAAE;oBACZ,KAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;iBACpB;wBAAS;oBACR,CAAA,KAAA,KAAI,CAAC,IAAI,CAAC,gBAAgB,CAAA,CAAC,KAAK,CAAC,WAAI,IAAI,EAAE;iBAC5C;YACH,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAvBM,4CAAqB,GAAe,CAAC,oBAAQ,CAAC,KAAK,EAAE,oBAAQ,CAAC,KAAK,EAAE,oBAAQ,CAAC,GAAG,CAAC,CAAC;IAwB5F,6BAAC;CAAA,AA5BD,CAA4C,+BAAmB,GA4B9D;AA5BY,wDAAsB"}
1
+ {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../../src/instrumentations/console/instrumentation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,gDAA0F;AAI1F;IAA4C,0CAAmB;IAM7D,gCAAoB,OAA2C;QAA3C,wBAAA,EAAA,YAA2C;QAA/D,YACE,iBAAO,SACR;QAFmB,aAAO,GAAP,OAAO,CAAoC;QALtD,UAAI,GAAG,+CAA+C,CAAC;QACvD,aAAO,GAAG,mBAAO,CAAC;;IAM3B,CAAC;IAED,2CAAU,GAAV;QAAA,iBAiBC;QAhBC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE9C,wBAAY;aACT,MAAM,CAAC,UAAC,KAAK,YAAK,OAAA,CAAC,CAAC,MAAA,KAAI,CAAC,OAAO,CAAC,cAAc,mCAAI,sBAAsB,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA,EAAA,CAAC;aACjH,OAAO,CAAC,UAAC,KAAK;YACb,yCAAyC;YACzC,OAAO,CAAC,KAAK,CAAC,GAAG;;gBAAC,cAAO;qBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;oBAAP,yBAAO;;gBACvB,IAAI;oBACF,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,OAAA,EAAE,CAAC,CAAC;iBACxC;gBAAC,OAAO,GAAG,EAAE;oBACZ,KAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;iBACpB;wBAAS;oBACR,CAAA,KAAA,KAAI,CAAC,IAAI,CAAC,gBAAgB,CAAA,CAAC,KAAK,CAAC,WAAI,IAAI,EAAE;iBAC5C;YACH,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAvBM,4CAAqB,GAAe,CAAC,oBAAQ,CAAC,KAAK,EAAE,oBAAQ,CAAC,KAAK,EAAE,oBAAQ,CAAC,GAAG,CAAC,CAAC;IAwB5F,6BAAC;CAAA,AA5BD,CAA4C,+BAAmB,GA4B9D;AA5BY,wDAAsB","sourcesContent":["import { allLogLevels, BaseInstrumentation, LogLevel, VERSION } from '@grafana/faro-core';\n\nimport type { ConsoleInstrumentationOptions } from './types';\n\nexport class ConsoleInstrumentation extends BaseInstrumentation {\n readonly name = '@grafana/faro-web-sdk:instrumentation-console';\n readonly version = VERSION;\n\n static defaultDisabledLevels: LogLevel[] = [LogLevel.DEBUG, LogLevel.TRACE, LogLevel.LOG];\n\n constructor(private options: ConsoleInstrumentationOptions = {}) {\n super();\n }\n\n initialize() {\n this.logDebug('Initializing\\n', this.options);\n\n allLogLevels\n .filter((level) => !(this.options.disabledLevels ?? ConsoleInstrumentation.defaultDisabledLevels).includes(level))\n .forEach((level) => {\n /* eslint-disable-next-line no-console */\n console[level] = (...args) => {\n try {\n this.faro.api.pushLog(args, { level });\n } catch (err) {\n this.logError(err);\n } finally {\n this.faro.unpatchedConsole[level](...args);\n }\n };\n });\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/instrumentations/console/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/instrumentations/console/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { LogLevel } from '@grafana/faro-core';\n\nexport interface ConsoleInstrumentationOptions {\n disabledLevels?: LogLevel[];\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAAG,kDAAkD,CAAC;AAC7E,QAAA,sBAAsB,GAAG,oBAAoB,CAAC;AAE9C,QAAA,YAAY,GAAG,UAAU,CAAC;AAC1B,QAAA,gBAAgB,GAAG,cAAc,CAAC;AAElC,QAAA,gBAAgB,GAAG,yCAAyC,CAAC;AAE7D,QAAA,aAAa,GAAG,GAAG,CAAC;AAEpB,QAAA,cAAc,GACzB,0GAA0G,CAAC"}
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAAG,kDAAkD,CAAC;AAC7E,QAAA,sBAAsB,GAAG,oBAAoB,CAAC;AAE9C,QAAA,YAAY,GAAG,UAAU,CAAC;AAC1B,QAAA,gBAAgB,GAAG,cAAc,CAAC;AAElC,QAAA,gBAAgB,GAAG,yCAAyC,CAAC;AAE7D,QAAA,aAAa,GAAG,GAAG,CAAC;AAEpB,QAAA,cAAc,GACzB,0GAA0G,CAAC","sourcesContent":["export const primitiveUnhandledValue = 'Non-Error promise rejection captured with value:';\nexport const primitiveUnhandledType = 'UnhandledRejection';\n\nexport const domErrorType = 'DOMError';\nexport const domExceptionType = 'DOMException';\n\nexport const objectEventValue = 'Non-Error exception captured with keys:';\n\nexport const unknownString = '?';\n\nexport const valueTypeRegex =\n /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getErrorDetails.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/getErrorDetails.ts"],"names":[],"mappings":";;;AAAA,gDAA0G;AAG1G,iCAA2E;AAC3E,6CAAwD;AAGxD,SAAgB,eAAe,CAAC,GAAe;IAC7C,IAAI,KAAyB,CAAC;IAC9B,IAAI,IAAwB,CAAC;IAC7B,IAAI,WAAW,GAA0B,EAAE,CAAC;IAC5C,IAAI,aAAkC,CAAC;IACvC,IAAI,UAA+B,CAAC;IAEpC,IAAI,IAAA,wBAAY,EAAC,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE;QAClC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;QAC1B,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QACtB,WAAW,GAAG,IAAA,qCAAuB,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KAClD;SAAM,IAAI,CAAC,aAAa,GAAG,IAAA,sBAAU,EAAC,GAAG,CAAC,CAAC,IAAI,IAAA,0BAAc,EAAC,GAAG,CAAC,EAAE;QAC3D,IAAA,MAAI,GAAc,GAAG,KAAjB,EAAE,OAAO,GAAK,GAAG,QAAR,CAAS;QAE9B,IAAI,GAAG,MAAI,aAAJ,MAAI,cAAJ,MAAI,GAAI,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAY,CAAC,CAAC,CAAC,wBAAgB,CAAC,CAAC;QACjE,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,UAAG,IAAI,eAAK,OAAO,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;KAChD;SAAM,IAAI,IAAA,mBAAO,EAAC,GAAG,CAAC,EAAE;QACvB,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC;QACpB,WAAW,GAAG,IAAA,qCAAuB,EAAC,GAAG,CAAC,CAAC;KAC5C;SAAM,IAAI,IAAA,oBAAQ,EAAC,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,IAAA,mBAAO,EAAC,GAAG,CAAC,CAAC,EAAE;QACvD,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACrD,KAAK,GAAG,UAAG,wBAAgB,cAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;KACnD;IAED,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AACpC,CAAC;AAzBD,0CAyBC"}
1
+ {"version":3,"file":"getErrorDetails.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/getErrorDetails.ts"],"names":[],"mappings":";;;AAAA,gDAA0G;AAG1G,iCAA2E;AAC3E,6CAAwD;AAGxD,SAAgB,eAAe,CAAC,GAAe;IAC7C,IAAI,KAAyB,CAAC;IAC9B,IAAI,IAAwB,CAAC;IAC7B,IAAI,WAAW,GAA0B,EAAE,CAAC;IAC5C,IAAI,aAAkC,CAAC;IACvC,IAAI,UAA+B,CAAC;IAEpC,IAAI,IAAA,wBAAY,EAAC,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE;QAClC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;QAC1B,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QACtB,WAAW,GAAG,IAAA,qCAAuB,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KAClD;SAAM,IAAI,CAAC,aAAa,GAAG,IAAA,sBAAU,EAAC,GAAG,CAAC,CAAC,IAAI,IAAA,0BAAc,EAAC,GAAG,CAAC,EAAE;QAC3D,IAAA,MAAI,GAAc,GAAG,KAAjB,EAAE,OAAO,GAAK,GAAG,QAAR,CAAS;QAE9B,IAAI,GAAG,MAAI,aAAJ,MAAI,cAAJ,MAAI,GAAI,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAY,CAAC,CAAC,CAAC,wBAAgB,CAAC,CAAC;QACjE,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,UAAG,IAAI,eAAK,OAAO,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;KAChD;SAAM,IAAI,IAAA,mBAAO,EAAC,GAAG,CAAC,EAAE;QACvB,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC;QACpB,WAAW,GAAG,IAAA,qCAAuB,EAAC,GAAG,CAAC,CAAC;KAC5C;SAAM,IAAI,IAAA,oBAAQ,EAAC,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,IAAA,mBAAO,EAAC,GAAG,CAAC,CAAC,EAAE;QACvD,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACrD,KAAK,GAAG,UAAG,wBAAgB,cAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;KACnD;IAED,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AACpC,CAAC;AAzBD,0CAyBC","sourcesContent":["import { isDomError, isDomException, isError, isErrorEvent, isEvent, isObject } from '@grafana/faro-core';\nimport type { ExceptionStackFrame } from '@grafana/faro-core';\n\nimport { domErrorType, domExceptionType, objectEventValue } from './const';\nimport { getStackFramesFromError } from './stackFrames';\nimport type { ErrorEvent } from './types';\n\nexport function getErrorDetails(evt: ErrorEvent): [string | undefined, string | undefined, ExceptionStackFrame[]] {\n let value: string | undefined;\n let type: string | undefined;\n let stackFrames: ExceptionStackFrame[] = [];\n let isDomErrorRes: boolean | undefined;\n let isEventRes: boolean | undefined;\n\n if (isErrorEvent(evt) && evt.error) {\n value = evt.error.message;\n type = evt.error.name;\n stackFrames = getStackFramesFromError(evt.error);\n } else if ((isDomErrorRes = isDomError(evt)) || isDomException(evt)) {\n const { name, message } = evt;\n\n type = name ?? (isDomErrorRes ? domErrorType : domExceptionType);\n value = message ? `${type}: ${message}` : type;\n } else if (isError(evt)) {\n value = evt.message;\n stackFrames = getStackFramesFromError(evt);\n } else if (isObject(evt) || (isEventRes = isEvent(evt))) {\n type = isEventRes ? evt.constructor.name : undefined;\n value = `${objectEventValue} ${Object.keys(evt)}`;\n }\n\n return [value, type, stackFrames];\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getValueAndTypeFromMessage.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/getValueAndTypeFromMessage.ts"],"names":[],"mappings":";;;AAAA,gDAA0D;AAE1D,iCAAyC;AAEzC,SAAgB,0BAA0B,CAAC,OAAe;;IACxD,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAc,CAAC,CAAC;IAE7C,IAAM,IAAI,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,CAAC,mCAAI,gCAAoB,CAAC;IACjD,IAAM,KAAK,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,CAAC,mCAAI,OAAO,CAAC;IAErC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACvB,CAAC;AAPD,gEAOC"}
1
+ {"version":3,"file":"getValueAndTypeFromMessage.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/getValueAndTypeFromMessage.ts"],"names":[],"mappings":";;;AAAA,gDAA0D;AAE1D,iCAAyC;AAEzC,SAAgB,0BAA0B,CAAC,OAAe;;IACxD,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAc,CAAC,CAAC;IAE7C,IAAM,IAAI,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,CAAC,mCAAI,gCAAoB,CAAC;IACjD,IAAM,KAAK,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,CAAC,mCAAI,OAAO,CAAC;IAErC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACvB,CAAC;AAPD,gEAOC","sourcesContent":["import { defaultExceptionType } from '@grafana/faro-core';\n\nimport { valueTypeRegex } from './const';\n\nexport function getValueAndTypeFromMessage(message: string): [string, string] {\n const groups = message.match(valueTypeRegex);\n\n const type = groups?.[1] ?? defaultExceptionType;\n const value = groups?.[2] ?? message;\n\n return [value, type];\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/index.ts"],"names":[],"mappings":";;;AAAA,qDAA0D;AAAjD,wHAAA,qBAAqB,OAAA;AAE9B,6CAAuH;AAA9G,8GAAA,eAAe,OAAA;AAAE,0HAAA,2BAA2B,OAAA;AAAE,sHAAA,uBAAuB,OAAA;AAAE,8GAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/index.ts"],"names":[],"mappings":";;;AAAA,qDAA0D;AAAjD,wHAAA,qBAAqB,OAAA;AAE9B,6CAAuH;AAA9G,8GAAA,eAAe,OAAA;AAAE,0HAAA,2BAA2B,OAAA;AAAE,sHAAA,uBAAuB,OAAA;AAAE,8GAAA,eAAe,OAAA","sourcesContent":["export { ErrorsInstrumentation } from './instrumentation';\n\nexport { buildStackFrame, getDataFromSafariExtensions, getStackFramesFromError, parseStacktrace } from './stackFrames';\n\nexport type { ErrorEvent, ExtendedPromiseRejectionEvent } from './types';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/instrumentation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,gDAAkE;AAElE,qDAAoD;AACpD,+EAA8E;AAE9E;IAA2C,yCAAmB;IAA9D;QAAA,qEAWC;QAVU,UAAI,GAAG,8CAA8C,CAAC;QACtD,aAAO,GAAG,mBAAO,CAAC;;IAS7B,CAAC;IAPC,0CAAU,GAAV;QACE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAE9B,IAAA,iCAAe,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE3B,IAAA,2DAA4B,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IACH,4BAAC;AAAD,CAAC,AAXD,CAA2C,+BAAmB,GAW7D;AAXY,sDAAqB"}
1
+ {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/instrumentation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,gDAAkE;AAElE,qDAAoD;AACpD,+EAA8E;AAE9E;IAA2C,yCAAmB;IAA9D;QAAA,qEAWC;QAVU,UAAI,GAAG,8CAA8C,CAAC;QACtD,aAAO,GAAG,mBAAO,CAAC;;IAS7B,CAAC;IAPC,0CAAU,GAAV;QACE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAE9B,IAAA,iCAAe,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE3B,IAAA,2DAA4B,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IACH,4BAAC;AAAD,CAAC,AAXD,CAA2C,+BAAmB,GAW7D;AAXY,sDAAqB","sourcesContent":["import { BaseInstrumentation, VERSION } from '@grafana/faro-core';\n\nimport { registerOnerror } from './registerOnerror';\nimport { registerOnunhandledrejection } from './registerOnunhandledrejection';\n\nexport class ErrorsInstrumentation extends BaseInstrumentation {\n readonly name = '@grafana/faro-web-sdk:instrumentation-errors';\n readonly version = VERSION;\n\n initialize(): void {\n this.logDebug('Initializing');\n\n registerOnerror(this.faro);\n\n registerOnunhandledrejection(this.faro);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"registerOnerror.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/registerOnerror.ts"],"names":[],"mappings":";;;AAAA,gDAAoD;AAGpD,iCAAwC;AACxC,qDAAoD;AACpD,2EAA0E;AAC1E,6CAAgD;AAEhD,SAAgB,eAAe,CAAC,IAAU;IACxC,4FAA4F;IAC5F,0GAA0G;IAC1G,iGAAiG;IAEjG,IAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC;IAElC,MAAM,CAAC,OAAO,GAAG;;QAAC,cAAO;aAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;YAAP,yBAAO;;QACvB,IAAI;YACK,IAAA,GAAG,GAAkC,IAAI,GAAtC,EAAE,MAAM,GAA0B,IAAI,GAA9B,EAAE,MAAM,GAAkB,IAAI,GAAtB,EAAE,KAAK,GAAW,IAAI,GAAf,EAAE,KAAK,GAAI,IAAI,GAAR,CAAS;YACjD,IAAI,KAAK,SAAoB,CAAC;YAC9B,IAAI,IAAI,SAAoB,CAAC;YAC7B,IAAI,WAAW,GAA0B,EAAE,CAAC;YAC5C,IAAM,aAAa,GAAG,IAAA,oBAAQ,EAAC,GAAG,CAAC,CAAC;YACpC,IAAM,iBAAiB,GAAG,IAAA,6BAAe,EAAC,MAAM,EAAE,qBAAa,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAEhF,IAAI,KAAK,IAAI,CAAC,aAAa,EAAE;gBAC3B,KAA6B,IAAA,iCAAe,EAAC,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,GAAG,CAAkB,CAAC,EAA5E,KAAK,QAAA,EAAE,IAAI,QAAA,EAAE,WAAW,QAAA,CAAqD;gBAE9E,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC5B,WAAW,GAAG,CAAC,iBAAiB,CAAC,CAAC;iBACnC;aACF;iBAAM,IAAI,aAAa,EAAE;gBACxB,KAAgB,IAAA,uDAA0B,EAAC,GAAG,CAAC,EAA9C,KAAK,QAAA,EAAE,IAAI,QAAA,CAAoC;gBAChD,WAAW,GAAG,CAAC,iBAAiB,CAAC,CAAC;aACnC;YAED,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,MAAA,EAAE,WAAW,aAAA,EAAE,CAAC,CAAC;aAC7D;SACF;gBAAS;YACR,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACjC;IACH,CAAC,CAAC;AACJ,CAAC;AAlCD,0CAkCC"}
1
+ {"version":3,"file":"registerOnerror.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/registerOnerror.ts"],"names":[],"mappings":";;;AAAA,gDAAoD;AAGpD,iCAAwC;AACxC,qDAAoD;AACpD,2EAA0E;AAC1E,6CAAgD;AAEhD,SAAgB,eAAe,CAAC,IAAU;IACxC,4FAA4F;IAC5F,0GAA0G;IAC1G,iGAAiG;IAEjG,IAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC;IAElC,MAAM,CAAC,OAAO,GAAG;;QAAC,cAAO;aAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;YAAP,yBAAO;;QACvB,IAAI;YACK,IAAA,GAAG,GAAkC,IAAI,GAAtC,EAAE,MAAM,GAA0B,IAAI,GAA9B,EAAE,MAAM,GAAkB,IAAI,GAAtB,EAAE,KAAK,GAAW,IAAI,GAAf,EAAE,KAAK,GAAI,IAAI,GAAR,CAAS;YACjD,IAAI,KAAK,SAAoB,CAAC;YAC9B,IAAI,IAAI,SAAoB,CAAC;YAC7B,IAAI,WAAW,GAA0B,EAAE,CAAC;YAC5C,IAAM,aAAa,GAAG,IAAA,oBAAQ,EAAC,GAAG,CAAC,CAAC;YACpC,IAAM,iBAAiB,GAAG,IAAA,6BAAe,EAAC,MAAM,EAAE,qBAAa,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAEhF,IAAI,KAAK,IAAI,CAAC,aAAa,EAAE;gBAC3B,KAA6B,IAAA,iCAAe,EAAC,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,GAAG,CAAkB,CAAC,EAA5E,KAAK,QAAA,EAAE,IAAI,QAAA,EAAE,WAAW,QAAA,CAAqD;gBAE9E,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC5B,WAAW,GAAG,CAAC,iBAAiB,CAAC,CAAC;iBACnC;aACF;iBAAM,IAAI,aAAa,EAAE;gBACxB,KAAgB,IAAA,uDAA0B,EAAC,GAAG,CAAC,EAA9C,KAAK,QAAA,EAAE,IAAI,QAAA,CAAoC;gBAChD,WAAW,GAAG,CAAC,iBAAiB,CAAC,CAAC;aACnC;YAED,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,MAAA,EAAE,WAAW,aAAA,EAAE,CAAC,CAAC;aAC7D;SACF;gBAAS;YACR,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACjC;IACH,CAAC,CAAC;AACJ,CAAC;AAlCD,0CAkCC","sourcesContent":["import { Faro, isString } from '@grafana/faro-core';\nimport type { ExceptionStackFrame } from '@grafana/faro-core';\n\nimport { unknownString } from './const';\nimport { getErrorDetails } from './getErrorDetails';\nimport { getValueAndTypeFromMessage } from './getValueAndTypeFromMessage';\nimport { buildStackFrame } from './stackFrames';\n\nexport function registerOnerror(faro: Faro): void {\n // The error event is a little bit different than other events when it comes to the listener\n // window.addEventListener does not provide all parameters, hence we need to use the window.onerror syntax\n // TODO: investigate https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror\n\n const oldOnerror = window.onerror;\n\n window.onerror = (...args) => {\n try {\n const [evt, source, lineno, colno, error] = args;\n let value: string | undefined;\n let type: string | undefined;\n let stackFrames: ExceptionStackFrame[] = [];\n const eventIsString = isString(evt);\n const initialStackFrame = buildStackFrame(source, unknownString, lineno, colno);\n\n if (error || !eventIsString) {\n [value, type, stackFrames] = getErrorDetails((error ?? evt) as Error | Event);\n\n if (stackFrames.length === 0) {\n stackFrames = [initialStackFrame];\n }\n } else if (eventIsString) {\n [value, type] = getValueAndTypeFromMessage(evt);\n stackFrames = [initialStackFrame];\n }\n\n if (value) {\n faro.api.pushError(new Error(value), { type, stackFrames });\n }\n } finally {\n oldOnerror?.apply(window, args);\n }\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"registerOnunhandledrejection.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/registerOnunhandledrejection.ts"],"names":[],"mappings":";;;AAAA,gDAAuD;AAEvD,iCAA0E;AAC1E,qDAAoD;AAGpD,SAAgB,4BAA4B,CAAC,IAAU;IACrD,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,UAAC,GAAkC;;;QAC/E,IAAI,KAAK,GAAG,GAAG,CAAC;QAEhB,IAAI,KAAK,CAAC,MAAM,EAAE;YAChB,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC;SACpB;aAAM,IAAI,MAAA,GAAG,CAAC,MAAM,0CAAE,MAAM,EAAE;YAC7B,KAAK,GAAG,MAAA,GAAG,CAAC,MAAM,0CAAE,MAAM,CAAC;SAC5B;QAED,IAAI,KAAyB,CAAC;QAC9B,IAAI,IAAwB,CAAC;QAE7B,IAAI,IAAA,uBAAW,EAAC,KAAK,CAAC,EAAE;YACtB,KAAK,GAAG,UAAG,+BAAuB,cAAI,MAAM,CAAC,KAAK,CAAC,CAAE,CAAC;YACtD,IAAI,GAAG,8BAAsB,CAAC;SAC/B;aAAM;YACL,KAAgB,IAAA,iCAAe,EAAC,KAAK,CAAC,EAArC,KAAK,QAAA,EAAE,IAAI,QAAA,CAA2B;SACxC;QAED,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,MAAA,EAAE,CAAC,CAAC;SAChD;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAxBD,oEAwBC"}
1
+ {"version":3,"file":"registerOnunhandledrejection.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/registerOnunhandledrejection.ts"],"names":[],"mappings":";;;AAAA,gDAAuD;AAEvD,iCAA0E;AAC1E,qDAAoD;AAGpD,SAAgB,4BAA4B,CAAC,IAAU;IACrD,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,UAAC,GAAkC;;;QAC/E,IAAI,KAAK,GAAG,GAAG,CAAC;QAEhB,IAAI,KAAK,CAAC,MAAM,EAAE;YAChB,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC;SACpB;aAAM,IAAI,MAAA,GAAG,CAAC,MAAM,0CAAE,MAAM,EAAE;YAC7B,KAAK,GAAG,MAAA,GAAG,CAAC,MAAM,0CAAE,MAAM,CAAC;SAC5B;QAED,IAAI,KAAyB,CAAC;QAC9B,IAAI,IAAwB,CAAC;QAE7B,IAAI,IAAA,uBAAW,EAAC,KAAK,CAAC,EAAE;YACtB,KAAK,GAAG,UAAG,+BAAuB,cAAI,MAAM,CAAC,KAAK,CAAC,CAAE,CAAC;YACtD,IAAI,GAAG,8BAAsB,CAAC;SAC/B;aAAM;YACL,KAAgB,IAAA,iCAAe,EAAC,KAAK,CAAC,EAArC,KAAK,QAAA,EAAE,IAAI,QAAA,CAA2B;SACxC;QAED,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,MAAA,EAAE,CAAC,CAAC;SAChD;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAxBD,oEAwBC","sourcesContent":["import { Faro, isPrimitive } from '@grafana/faro-core';\n\nimport { primitiveUnhandledType, primitiveUnhandledValue } from './const';\nimport { getErrorDetails } from './getErrorDetails';\nimport type { ExtendedPromiseRejectionEvent } from './types';\n\nexport function registerOnunhandledrejection(faro: Faro): void {\n window.addEventListener('unhandledrejection', (evt: ExtendedPromiseRejectionEvent) => {\n let error = evt;\n\n if (error.reason) {\n error = evt.reason;\n } else if (evt.detail?.reason) {\n error = evt.detail?.reason;\n }\n\n let value: string | undefined;\n let type: string | undefined;\n\n if (isPrimitive(error)) {\n value = `${primitiveUnhandledValue} ${String(error)}`;\n type = primitiveUnhandledType;\n } else {\n [value, type] = getErrorDetails(error);\n }\n\n if (value) {\n faro.api.pushError(new Error(value), { type });\n }\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"buildStackFrame.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/buildStackFrame.ts"],"names":[],"mappings":";;;AAEA,iCAAwC;AAExC,SAAgB,eAAe,CAC7B,QAA4B,EAC5B,IAAwB,EACxB,MAA0B,EAC1B,KAAyB;IAEzB,IAAM,UAAU,GAAwB;QACtC,QAAQ,EAAE,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI;QAC5C,QAAQ,EAAE,IAAI,IAAI,qBAAa;KAChC,CAAC;IAEF,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;KAC5B;IAED,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;KAC1B;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AApBD,0CAoBC"}
1
+ {"version":3,"file":"buildStackFrame.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/buildStackFrame.ts"],"names":[],"mappings":";;;AAEA,iCAAwC;AAExC,SAAgB,eAAe,CAC7B,QAA4B,EAC5B,IAAwB,EACxB,MAA0B,EAC1B,KAAyB;IAEzB,IAAM,UAAU,GAAwB;QACtC,QAAQ,EAAE,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI;QAC5C,QAAQ,EAAE,IAAI,IAAI,qBAAa;KAChC,CAAC;IAEF,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;KAC5B;IAED,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;KAC1B;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AApBD,0CAoBC","sourcesContent":["import type { ExceptionStackFrame } from '@grafana/faro-core';\n\nimport { unknownString } from './const';\n\nexport function buildStackFrame(\n filename: string | undefined,\n func: string | undefined,\n lineno: number | undefined,\n colno: number | undefined\n): ExceptionStackFrame {\n const stackFrame: ExceptionStackFrame = {\n filename: filename || document.location.href,\n function: func || unknownString,\n };\n\n if (lineno !== undefined) {\n stackFrame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n stackFrame.colno = colno;\n }\n\n return stackFrame;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG,IAAI,CAAC;AACrB,QAAA,UAAU,GAAG,MAAM,CAAC;AACpB,QAAA,aAAa,GAAG,GAAG,CAAC;AACpB,QAAA,QAAQ,GAAG,GAAG,CAAC;AAEf,QAAA,eAAe,GAC1B,qLAAqL,CAAC;AAC3K,QAAA,eAAe,GAAG,+BAA+B,CAAC;AAClD,QAAA,gBAAgB,GAAG,MAAM,CAAC;AAC1B,QAAA,qBAAqB,GAAG,aAAa,CAAC;AACtC,QAAA,2BAA2B,GAAG,6BAAqB,CAAC,MAAM,CAAC;AAE3D,QAAA,gBAAgB,GAC3B,oOAAoO,CAAC;AAC1N,QAAA,gBAAgB,GAAG,+CAA+C,CAAC;AACnE,QAAA,iBAAiB,GAAG,SAAS,CAAC;AAE9B,QAAA,qBAAqB,GAAG,kBAAkB,CAAC;AAC3C,QAAA,wBAAwB,GAAG,sBAAsB,CAAC;AAElD,QAAA,kBAAkB,GAAG,6BAA6B,CAAC"}
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG,IAAI,CAAC;AACrB,QAAA,UAAU,GAAG,MAAM,CAAC;AACpB,QAAA,aAAa,GAAG,GAAG,CAAC;AACpB,QAAA,QAAQ,GAAG,GAAG,CAAC;AAEf,QAAA,eAAe,GAC1B,qLAAqL,CAAC;AAC3K,QAAA,eAAe,GAAG,+BAA+B,CAAC;AAClD,QAAA,gBAAgB,GAAG,MAAM,CAAC;AAC1B,QAAA,qBAAqB,GAAG,aAAa,CAAC;AACtC,QAAA,2BAA2B,GAAG,6BAAqB,CAAC,MAAM,CAAC;AAE3D,QAAA,gBAAgB,GAC3B,oOAAoO,CAAC;AAC1N,QAAA,gBAAgB,GAAG,+CAA+C,CAAC;AACnE,QAAA,iBAAiB,GAAG,SAAS,CAAC;AAE9B,QAAA,qBAAqB,GAAG,kBAAkB,CAAC;AAC3C,QAAA,wBAAwB,GAAG,sBAAsB,CAAC;AAElD,QAAA,kBAAkB,GAAG,6BAA6B,CAAC","sourcesContent":["export const newLineString = '\\n';\nexport const evalString = 'eval';\nexport const unknownString = '?';\nexport const atString = '@';\n\nexport const webkitLineRegex =\n /^\\s*at (?:(.*\\).*?|.*?) ?\\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nexport const webkitEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\nexport const webkitEvalString = 'eval';\nexport const webkitAddressAtString = 'address at ';\nexport const webkitAddressAtStringLength = webkitAddressAtString.length;\n\nexport const firefoxLineRegex =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|safari-extension|safari-web-extension|capacitor)?:\\/.*?|\\[native code]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nexport const firefoxEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nexport const firefoxEvalString = ' > eval';\n\nexport const safariExtensionString = 'safari-extension';\nexport const safariWebExtensionString = 'safari-web-extension';\n\nexport const reactMinifiedRegex = /Minified React error #\\d+;/i;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getDataFromSafariExtensions.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/getDataFromSafariExtensions.ts"],"names":[],"mappings":";;;AAAA,iCAAoF;AAEpF,SAAgB,2BAA2B,CACzC,IAAwB,EACxB,QAA4B;IAE5B,IAAM,iBAAiB,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,6BAAqB,CAAC,CAAC;IAChE,IAAM,oBAAoB,GAAG,CAAC,iBAAiB,KAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,gCAAwB,CAAC,CAAA,CAAC;IAE5F,IAAI,CAAC,iBAAiB,IAAI,CAAC,oBAAoB,EAAE;QAC/C,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KACzB;IAED,OAAO;QACL,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,gBAAQ,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QACzD,iBAAiB,CAAC,CAAC,CAAC,UAAG,6BAAqB,cAAI,QAAQ,CAAE,CAAC,CAAC,CAAC,UAAG,gCAAwB,cAAI,QAAQ,CAAE;KACvG,CAAC;AACJ,CAAC;AAfD,kEAeC"}
1
+ {"version":3,"file":"getDataFromSafariExtensions.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/getDataFromSafariExtensions.ts"],"names":[],"mappings":";;;AAAA,iCAAoF;AAEpF,SAAgB,2BAA2B,CACzC,IAAwB,EACxB,QAA4B;IAE5B,IAAM,iBAAiB,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,6BAAqB,CAAC,CAAC;IAChE,IAAM,oBAAoB,GAAG,CAAC,iBAAiB,KAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,gCAAwB,CAAC,CAAA,CAAC;IAE5F,IAAI,CAAC,iBAAiB,IAAI,CAAC,oBAAoB,EAAE;QAC/C,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KACzB;IAED,OAAO;QACL,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,gBAAQ,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QACzD,iBAAiB,CAAC,CAAC,CAAC,UAAG,6BAAqB,cAAI,QAAQ,CAAE,CAAC,CAAC,CAAC,UAAG,gCAAwB,cAAI,QAAQ,CAAE;KACvG,CAAC;AACJ,CAAC;AAfD,kEAeC","sourcesContent":["import { atString, safariExtensionString, safariWebExtensionString } from './const';\n\nexport function getDataFromSafariExtensions(\n func: string | undefined,\n filename: string | undefined\n): [string | undefined, string | undefined] {\n const isSafariExtension = func?.includes(safariExtensionString);\n const isSafariWebExtension = !isSafariExtension && func?.includes(safariWebExtensionString);\n\n if (!isSafariExtension && !isSafariWebExtension) {\n return [func, filename];\n }\n\n return [\n func?.includes(atString) ? func.split(atString)[0] : func,\n isSafariExtension ? `${safariExtensionString}:${filename}` : `${safariWebExtensionString}:${filename}`,\n ];\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getStackFramesFromError.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/getStackFramesFromError.ts"],"names":[],"mappings":";;;AAAA,gDAA8C;AAG9C,qDAAoD;AACpD,iCAYiB;AACjB,6EAA4E;AAE5E,SAAgB,uBAAuB,CAAC,KAAoB;IAC1D,IAAI,KAAK,GAAa,EAAE,CAAC;IAEzB,IAAI,KAAK,CAAC,UAAU,EAAE;QACpB,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,qBAAa,CAAC,CAAC,MAAM,CAAC,UAAC,KAAK,EAAE,GAAG,IAAK,OAAA,GAAG,GAAG,CAAC,KAAK,CAAC,EAAb,CAAa,CAAC,CAAC;KACrF;SAAM,IAAI,KAAK,CAAC,KAAK,EAAE;QACtB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAa,CAAC,CAAC;KAC1C;IAED,IAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,IAAI,EAAE,GAAG;;QAC9C,IAAI,KAA6B,CAAC;QAClC,IAAI,IAAwB,CAAC;QAC7B,IAAI,QAA4B,CAAC;QACjC,IAAI,MAA0B,CAAC;QAC/B,IAAI,KAAyB,CAAC;QAE9B,IAAI,CAAC,KAAK,GAAG,uBAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;YACxC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAChB,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAClB,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAEjB,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,CAAC,wBAAgB,CAAC,EAAE;gBAC1C,IAAM,QAAQ,GAAG,uBAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAEhD,IAAI,QAAQ,EAAE;oBACZ,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;oBACvB,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;oBACrB,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;iBACrB;aACF;YAED,QAAQ,GAAG,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,CAAC,6BAAqB,CAAC;gBACpD,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,mCAA2B,CAAC;gBACjD,CAAC,CAAC,QAAQ,CAAC;YACb,KAAmB,IAAA,yDAA2B,EAAC,IAAI,EAAE,QAAQ,CAAC,EAA7D,IAAI,QAAA,EAAE,QAAQ,QAAA,CAAgD;SAChE;aAAM,IAAI,CAAC,KAAK,GAAG,wBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;YAChD,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAChB,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAClB,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAEjB,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,yBAAiB,CAAC,EAAE;gBACtD,IAAM,QAAQ,GAAG,wBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAEjD,IAAI,QAAQ,EAAE;oBACZ,IAAI,GAAG,IAAI,IAAI,kBAAU,CAAC;oBAC1B,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;oBACvB,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;iBACtB;aACF;iBAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,IAAA,oBAAQ,EAAC,KAAK,CAAC,YAAY,CAAC,EAAE;gBAC9D,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,YAAa,GAAG,CAAC,CAAC,CAAC;aACzC;YAED,KAAmB,IAAA,yDAA2B,EAAC,IAAI,EAAE,QAAQ,CAAC,EAA7D,IAAI,QAAA,EAAE,QAAQ,QAAA,CAAgD;SAChE;QAED,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,GAAG,CAAC,IAAI,CAAC,IAAA,iCAAe,EAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;SACnH;QAED,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAA2B,CAAC,CAAC;IAEhC,IAAI,0BAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;QAC1C,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC7B;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AArED,0DAqEC"}
1
+ {"version":3,"file":"getStackFramesFromError.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/getStackFramesFromError.ts"],"names":[],"mappings":"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","sourcesContent":["import { isNumber } from '@grafana/faro-core';\nimport type { ExceptionStackFrame, ExtendedError } from '@grafana/faro-core';\n\nimport { buildStackFrame } from './buildStackFrame';\nimport {\n evalString,\n firefoxEvalRegex,\n firefoxEvalString,\n firefoxLineRegex,\n newLineString,\n reactMinifiedRegex,\n webkitAddressAtString,\n webkitAddressAtStringLength,\n webkitEvalRegex,\n webkitEvalString,\n webkitLineRegex,\n} from './const';\nimport { getDataFromSafariExtensions } from './getDataFromSafariExtensions';\n\nexport function getStackFramesFromError(error: ExtendedError): ExceptionStackFrame[] {\n let lines: string[] = [];\n\n if (error.stacktrace) {\n lines = error.stacktrace.split(newLineString).filter((_line, idx) => idx % 2 === 0);\n } else if (error.stack) {\n lines = error.stack.split(newLineString);\n }\n\n const stackFrames = lines.reduce((acc, line, idx) => {\n let parts: RegExpExecArray | null;\n let func: string | undefined;\n let filename: string | undefined;\n let lineno: string | undefined;\n let colno: string | undefined;\n\n if ((parts = webkitLineRegex.exec(line))) {\n func = parts[1];\n filename = parts[2];\n lineno = parts[3];\n colno = parts[4];\n\n if (filename?.startsWith(webkitEvalString)) {\n const submatch = webkitEvalRegex.exec(filename);\n\n if (submatch) {\n filename = submatch[1];\n lineno = submatch[2];\n colno = submatch[3];\n }\n }\n\n filename = filename?.startsWith(webkitAddressAtString)\n ? filename.substring(webkitAddressAtStringLength)\n : filename;\n [func, filename] = getDataFromSafariExtensions(func, filename);\n } else if ((parts = firefoxLineRegex.exec(line))) {\n func = parts[1];\n filename = parts[3];\n lineno = parts[4];\n colno = parts[5];\n\n if (!!filename && filename.includes(firefoxEvalString)) {\n const submatch = firefoxEvalRegex.exec(filename);\n\n if (submatch) {\n func = func || evalString;\n filename = submatch[1];\n lineno = submatch[2];\n }\n } else if (idx === 0 && !colno && isNumber(error.columnNumber)) {\n colno = String(error.columnNumber! + 1);\n }\n\n [func, filename] = getDataFromSafariExtensions(func, filename);\n }\n\n if (filename || func) {\n acc.push(buildStackFrame(filename, func, lineno ? Number(lineno) : undefined, colno ? Number(colno) : undefined));\n }\n\n return acc;\n }, [] as ExceptionStackFrame[]);\n\n if (reactMinifiedRegex.test(error.message)) {\n return stackFrames.slice(1);\n }\n\n return stackFrames;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/index.ts"],"names":[],"mappings":";;;AAAA,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AAExB,6EAA4E;AAAnE,0IAAA,2BAA2B,OAAA;AAEpC,qEAAoE;AAA3D,kIAAA,uBAAuB,OAAA;AAEhC,qDAAoD;AAA3C,kHAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/index.ts"],"names":[],"mappings":";;;AAAA,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AAExB,6EAA4E;AAAnE,0IAAA,2BAA2B,OAAA;AAEpC,qEAAoE;AAA3D,kIAAA,uBAAuB,OAAA;AAEhC,qDAAoD;AAA3C,kHAAA,eAAe,OAAA","sourcesContent":["export { buildStackFrame } from './buildStackFrame';\n\nexport { getDataFromSafariExtensions } from './getDataFromSafariExtensions';\n\nexport { getStackFramesFromError } from './getStackFramesFromError';\n\nexport { parseStacktrace } from './parseStacktrace';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"parseStacktrace.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/parseStacktrace.ts"],"names":[],"mappings":";;;AAEA,qEAAoE;AAEpE,SAAgB,eAAe,CAAC,KAAoB;IAClD,OAAO;QACL,MAAM,EAAE,IAAA,iDAAuB,EAAC,KAAK,CAAC;KACvC,CAAC;AACJ,CAAC;AAJD,0CAIC"}
1
+ {"version":3,"file":"parseStacktrace.js","sourceRoot":"","sources":["../../../../../src/instrumentations/errors/stackFrames/parseStacktrace.ts"],"names":[],"mappings":";;;AAEA,qEAAoE;AAEpE,SAAgB,eAAe,CAAC,KAAoB;IAClD,OAAO;QACL,MAAM,EAAE,IAAA,iDAAuB,EAAC,KAAK,CAAC;KACvC,CAAC;AACJ,CAAC;AAJD,0CAIC","sourcesContent":["import type { ExtendedError, Stacktrace } from '@grafana/faro-core';\n\nimport { getStackFramesFromError } from './getStackFramesFromError';\n\nexport function parseStacktrace(error: ExtendedError): Stacktrace {\n return {\n frames: getStackFramesFromError(error),\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/instrumentations/errors/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface ExtendedPromiseRejectionEvent extends PromiseRejectionEvent {\n detail?: {\n reason: PromiseRejectionEvent['reason'];\n };\n}\n\nexport type ErrorEvent = (Error | Event) & {\n error?: Error;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/instrumentations/index.ts"],"names":[],"mappings":";;;AAAA,qCAAmD;AAA1C,iHAAA,sBAAsB,OAAA;AAE/B,qCAAmD;AAA1C,iHAAA,sBAAsB,OAAA;AAG/B,mCAMkB;AALhB,yGAAA,eAAe,OAAA;AACf,+GAAA,qBAAqB,OAAA;AACrB,qHAAA,2BAA2B,OAAA;AAC3B,iHAAA,uBAAuB,OAAA;AACvB,yGAAA,eAAe,OAAA;AAIjB,yCAAuD;AAA9C,qHAAA,wBAAwB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/instrumentations/index.ts"],"names":[],"mappings":";;;AAAA,qCAAmD;AAA1C,iHAAA,sBAAsB,OAAA;AAE/B,qCAAmD;AAA1C,iHAAA,sBAAsB,OAAA;AAG/B,mCAMkB;AALhB,yGAAA,eAAe,OAAA;AACf,+GAAA,qBAAqB,OAAA;AACrB,qHAAA,2BAA2B,OAAA;AAC3B,iHAAA,uBAAuB,OAAA;AACvB,yGAAA,eAAe,OAAA;AAIjB,yCAAuD;AAA9C,qHAAA,wBAAwB,OAAA","sourcesContent":["export { SessionInstrumentation } from './session';\n\nexport { ConsoleInstrumentation } from './console';\nexport type { ConsoleInstrumentationOptions } from './console';\n\nexport {\n buildStackFrame,\n ErrorsInstrumentation,\n getDataFromSafariExtensions,\n getStackFramesFromError,\n parseStacktrace,\n} from './errors';\nexport type { ErrorEvent, ExtendedPromiseRejectionEvent } from './errors';\n\nexport { WebVitalsInstrumentation } from './webVitals';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/instrumentations/session/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2D;AAAlD,yHAAA,sBAAsB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/instrumentations/session/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2D;AAAlD,yHAAA,sBAAsB,OAAA","sourcesContent":["export { SessionInstrumentation } from './instrumentation';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../../src/instrumentations/session/instrumentation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,6CAAuC;AAEvC,gDAAyF;AAEzF,4CAA4C;AAC5C;IAA4C,0CAAmB;IAA/D;QAAA,qEAwBC;QAvBU,UAAI,GAAG,+CAA+C,CAAC;QACvD,aAAO,GAAG,sBAAO,CAAC;;IAsB7B,CAAC;IAhBS,sDAAqB,GAA7B,UAA8B,IAAU;QACtC,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAE7B,IAAI,OAAO,IAAI,OAAO,KAAK,IAAI,CAAC,eAAe,EAAE;YAC/C,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;YAC/B,8EAA8E;YAC9E,gBAAgB;YAChB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,uBAAW,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;SACpG;IACH,CAAC;IAED,2CAAU,GAAV;QACE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAElD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACrE,CAAC;IACH,6BAAC;AAAD,CAAC,AAxBD,CAA4C,+BAAmB,GAwB9D;AAxBY,wDAAsB"}
1
+ {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../../src/instrumentations/session/instrumentation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,6CAAuC;AAEvC,gDAAyF;AAEzF,4CAA4C;AAC5C;IAA4C,0CAAmB;IAA/D;QAAA,qEAwBC;QAvBU,UAAI,GAAG,+CAA+C,CAAC;QACvD,aAAO,GAAG,sBAAO,CAAC;;IAsB7B,CAAC;IAhBS,sDAAqB,GAA7B,UAA8B,IAAU;QACtC,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAE7B,IAAI,OAAO,IAAI,OAAO,KAAK,IAAI,CAAC,eAAe,EAAE;YAC/C,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;YAC/B,8EAA8E;YAC9E,gBAAgB;YAChB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,uBAAW,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;SACpG;IACH,CAAC;IAED,2CAAU,GAAV;QACE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAElD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACrE,CAAC;IACH,6BAAC;AAAD,CAAC,AAxBD,CAA4C,+BAAmB,GAwB9D;AAxBY,wDAAsB","sourcesContent":["import { VERSION } from 'ua-parser-js';\n\nimport { BaseInstrumentation, Conventions, Meta, MetaSession } from '@grafana/faro-core';\n\n// all this does is send SESSION_START event\nexport class SessionInstrumentation extends BaseInstrumentation {\n readonly name = '@grafana/faro-web-sdk:instrumentation-session';\n readonly version = VERSION;\n\n // previously notified session, to ensure we don't send session start\n // event twice for the same session\n private notifiedSession: MetaSession | undefined;\n\n private sendSessionStartEvent(meta: Meta): void {\n const session = meta.session;\n\n if (session && session !== this.notifiedSession) {\n this.notifiedSession = session;\n // no need to add attributes and session id, they are included as part of meta\n // automatically\n this.faro.api.pushEvent(Conventions.EventNames.SESSION_START, {}, undefined, { skipDedupe: true });\n }\n }\n\n initialize() {\n this.sendSessionStartEvent(this.faro.metas.value);\n\n this.faro.metas.addListener(this.sendSessionStartEvent.bind(this));\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/instrumentations/webVitals/index.ts"],"names":[],"mappings":";;;AAAA,qDAA6D;AAApD,2HAAA,wBAAwB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/instrumentations/webVitals/index.ts"],"names":[],"mappings":";;;AAAA,qDAA6D;AAApD,2HAAA,wBAAwB,OAAA","sourcesContent":["export { WebVitalsInstrumentation } from './instrumentation';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../../src/instrumentations/webVitals/instrumentation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,yCAA6E;AAE7E,gDAAkE;AAElE;IAA8C,4CAAmB;IAAjE;QAAA,qEA2BC;QA1BU,UAAI,GAAG,kDAAkD,CAAC;QAC1D,aAAO,GAAG,mBAAO,CAAC;;IAyB7B,CAAC;IAdC,6CAAU,GAAV;QAAA,iBAaC;QAZC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAE9B,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,EAAqB;gBAApB,SAAS,QAAA,EAAE,QAAQ,QAAA;YAC5E,QAAQ,CAAC,UAAC,MAAM;;gBACd,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;oBAC5B,IAAI,EAAE,YAAY;oBAClB,MAAM;wBACJ,GAAC,SAAS,IAAG,MAAM,CAAC,KAAK;2BAC1B;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAtBM,gCAAO,GAAG;QACf,GAAG,EAAE,mBAAM;QACX,GAAG,EAAE,mBAAM;QACX,GAAG,EAAE,mBAAM;QACX,GAAG,EAAE,mBAAM;QACX,GAAG,EAAE,mBAAM;QACX,IAAI,EAAE,oBAAO;KACd,CAAC;IAgBJ,+BAAC;CAAA,AA3BD,CAA8C,+BAAmB,GA2BhE;AA3BY,4DAAwB"}
1
+ {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../../src/instrumentations/webVitals/instrumentation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,yCAA6E;AAE7E,gDAAkE;AAElE;IAA8C,4CAAmB;IAAjE;QAAA,qEA2BC;QA1BU,UAAI,GAAG,kDAAkD,CAAC;QAC1D,aAAO,GAAG,mBAAO,CAAC;;IAyB7B,CAAC;IAdC,6CAAU,GAAV;QAAA,iBAaC;QAZC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAE9B,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,EAAqB;gBAApB,SAAS,QAAA,EAAE,QAAQ,QAAA;YAC5E,QAAQ,CAAC,UAAC,MAAM;;gBACd,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;oBAC5B,IAAI,EAAE,YAAY;oBAClB,MAAM;wBACJ,GAAC,SAAS,IAAG,MAAM,CAAC,KAAK;2BAC1B;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAtBM,gCAAO,GAAG;QACf,GAAG,EAAE,mBAAM;QACX,GAAG,EAAE,mBAAM;QACX,GAAG,EAAE,mBAAM;QACX,GAAG,EAAE,mBAAM;QACX,GAAG,EAAE,mBAAM;QACX,IAAI,EAAE,oBAAO;KACd,CAAC;IAgBJ,+BAAC;CAAA,AA3BD,CAA8C,+BAAmB,GA2BhE;AA3BY,4DAAwB","sourcesContent":["import { getCLS, getFCP, getFID, getINP, getLCP, getTTFB } from 'web-vitals';\n\nimport { BaseInstrumentation, VERSION } from '@grafana/faro-core';\n\nexport class WebVitalsInstrumentation extends BaseInstrumentation {\n readonly name = '@grafana/faro-web-sdk:instrumentation-web-vitals';\n readonly version = VERSION;\n\n static mapping = {\n cls: getCLS,\n fcp: getFCP,\n fid: getFID,\n inp: getINP,\n lcp: getLCP,\n ttfb: getTTFB,\n };\n\n initialize(): void {\n this.logDebug('Initializing');\n\n Object.entries(WebVitalsInstrumentation.mapping).forEach(([indicator, executor]) => {\n executor((metric) => {\n this.faro.api.pushMeasurement({\n type: 'web-vitals',\n values: {\n [indicator]: metric.value,\n },\n });\n });\n });\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/metas/browser/index.ts"],"names":[],"mappings":";;;AAAA,+BAAqC;AAA5B,mGAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/metas/browser/index.ts"],"names":[],"mappings":";;;AAAA,+BAAqC;AAA5B,mGAAA,WAAW,OAAA","sourcesContent":["export { browserMeta } from './meta';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"meta.js","sourceRoot":"","sources":["../../../../src/metas/browser/meta.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AAIjC,IAAM,WAAW,GAAoC;IAC1D,IAAM,MAAM,GAAG,IAAI,uBAAQ,EAAE,CAAC;IACxB,IAAA,KAAoB,MAAM,CAAC,UAAU,EAAE,EAArC,IAAI,UAAA,EAAE,OAAO,aAAwB,CAAC;IACxC,IAAA,KAAuC,MAAM,CAAC,KAAK,EAAE,EAA7C,MAAM,UAAA,EAAW,SAAS,aAAmB,CAAC;IAC5D,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpD,IAAM,OAAO,GAAG,SAAS,CAAC;IAE1B,OAAO;QACL,OAAO,EAAE;YACP,IAAI,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,OAAO;YACrB,OAAO,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,OAAO;YAC3B,EAAE,EAAE,UAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,OAAO,cAAI,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,OAAO,CAAE;YAClD,MAAM,QAAA;SACP;KACF,CAAC;AACJ,CAAC,CAAC;AAfW,QAAA,WAAW,eAetB"}
1
+ {"version":3,"file":"meta.js","sourceRoot":"","sources":["../../../../src/metas/browser/meta.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AAIjC,IAAM,WAAW,GAAoC;IAC1D,IAAM,MAAM,GAAG,IAAI,uBAAQ,EAAE,CAAC;IACxB,IAAA,KAAoB,MAAM,CAAC,UAAU,EAAE,EAArC,IAAI,UAAA,EAAE,OAAO,aAAwB,CAAC;IACxC,IAAA,KAAuC,MAAM,CAAC,KAAK,EAAE,EAA7C,MAAM,UAAA,EAAW,SAAS,aAAmB,CAAC;IAC5D,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpD,IAAM,OAAO,GAAG,SAAS,CAAC;IAE1B,OAAO;QACL,OAAO,EAAE;YACP,IAAI,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,OAAO;YACrB,OAAO,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,OAAO;YAC3B,EAAE,EAAE,UAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,OAAO,cAAI,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,OAAO,CAAE;YAClD,MAAM,QAAA;SACP;KACF,CAAC;AACJ,CAAC,CAAC;AAfW,QAAA,WAAW,eAetB","sourcesContent":["import { UAParser } from 'ua-parser-js';\n\nimport type { Meta, MetaItem } from '@grafana/faro-core';\n\nexport const browserMeta: MetaItem<Pick<Meta, 'browser'>> = () => {\n const parser = new UAParser();\n const { name, version } = parser.getBrowser();\n const { name: osName, version: osVersion } = parser.getOS();\n const mobile = navigator.userAgent.includes('Mobi');\n const unknown = 'unknown';\n\n return {\n browser: {\n name: name ?? unknown,\n version: version ?? unknown,\n os: `${osName ?? unknown} ${osVersion ?? unknown}`,\n mobile,\n },\n };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/metas/const.ts"],"names":[],"mappings":";;;AAEA,qCAAwC;AACxC,+BAAkC;AAErB,QAAA,YAAY,GAAe,CAAC,qBAAW,EAAE,eAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/metas/const.ts"],"names":[],"mappings":";;;AAEA,qCAAwC;AACxC,+BAAkC;AAErB,QAAA,YAAY,GAAe,CAAC,qBAAW,EAAE,eAAQ,CAAC,CAAC","sourcesContent":["import type { MetaItem } from '@grafana/faro-core';\n\nimport { browserMeta } from './browser';\nimport { pageMeta } from './page';\n\nexport const defaultMetas: MetaItem[] = [browserMeta, pageMeta];\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metas/index.ts"],"names":[],"mappings":";;;AAAA,qCAAwC;AAA/B,sGAAA,WAAW,OAAA;AAEpB,iCAAuC;AAA9B,qGAAA,YAAY,OAAA;AAErB,+BAAkC;AAAzB,gGAAA,QAAQ,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metas/index.ts"],"names":[],"mappings":";;;AAAA,qCAAwC;AAA/B,sGAAA,WAAW,OAAA;AAEpB,iCAAuC;AAA9B,qGAAA,YAAY,OAAA;AAErB,+BAAkC;AAAzB,gGAAA,QAAQ,OAAA","sourcesContent":["export { browserMeta } from './browser';\n\nexport { defaultMetas } from './const';\n\nexport { pageMeta } from './page';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/metas/page/index.ts"],"names":[],"mappings":";;;AAAA,+BAAkC;AAAzB,gGAAA,QAAQ,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/metas/page/index.ts"],"names":[],"mappings":";;;AAAA,+BAAkC;AAAzB,gGAAA,QAAQ,OAAA","sourcesContent":["export { pageMeta } from './meta';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"meta.js","sourceRoot":"","sources":["../../../../src/metas/page/meta.ts"],"names":[],"mappings":";;;AAEO,IAAM,QAAQ,GAAiC,cAAM,OAAA,CAAC;IAC3D,IAAI,EAAE;QACJ,GAAG,EAAE,QAAQ,CAAC,IAAI;KACnB;CACF,CAAC,EAJ0D,CAI1D,CAAC;AAJU,QAAA,QAAQ,YAIlB"}
1
+ {"version":3,"file":"meta.js","sourceRoot":"","sources":["../../../../src/metas/page/meta.ts"],"names":[],"mappings":";;;AAEO,IAAM,QAAQ,GAAiC,cAAM,OAAA,CAAC;IAC3D,IAAI,EAAE;QACJ,GAAG,EAAE,QAAQ,CAAC,IAAI;KACnB;CACF,CAAC,EAJ0D,CAI1D,CAAC;AAJU,QAAA,QAAQ,YAIlB","sourcesContent":["import type { Meta, MetaItem } from '@grafana/faro-core';\n\nexport const pageMeta: MetaItem<Pick<Meta, 'page'>> = () => ({\n page: {\n url: location.href,\n },\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":";;;AACA,gDAAgD;AAEhD,SAAgB,aAAa,CAAC,UAAsC;IAClE,OAAO;QACL,EAAE,EAAE,IAAA,sBAAU,GAAE;QAChB,UAAU,YAAA;KACX,CAAC;AACJ,CAAC;AALD,sCAKC"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":";;;AACA,gDAAgD;AAEhD,SAAgB,aAAa,CAAC,UAAsC;IAClE,OAAO;QACL,EAAE,EAAE,IAAA,sBAAU,GAAE;QAChB,UAAU,YAAA;KACX,CAAC;AACJ,CAAC;AALD,sCAKC","sourcesContent":["import type { MetaSession } from '@grafana/faro-core';\nimport { genShortID } from '@grafana/faro-core';\n\nexport function createSession(attributes?: MetaSession['attributes']): MetaSession {\n return {\n id: genShortID(),\n attributes,\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/transports/console/index.ts"],"names":[],"mappings":";;;AAAA,yCAA+C;AAAtC,6GAAA,gBAAgB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/transports/console/index.ts"],"names":[],"mappings":";;;AAAA,yCAA+C;AAAtC,6GAAA,gBAAgB,OAAA","sourcesContent":["export { ConsoleTransport } from './transport';\nexport type { ConsoleTransportOptions } from './types';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/transports/console/transport.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,gDAAwF;AAKxF;IAAsC,oCAAa;IAIjD,0BAAoB,OAAqC;QAArC,wBAAA,EAAA,YAAqC;QAAzD,YACE,iBAAO,SACR;QAFmB,aAAO,GAAP,OAAO,CAA8B;QAHhD,UAAI,GAAG,yCAAyC,CAAC;QACjD,aAAO,GAAG,mBAAO,CAAC;;IAI3B,CAAC;IAED,+BAAI,GAAJ,UAAK,IAAmB;;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAA,IAAI,CAAC,OAAO,CAAC,KAAK,mCAAI,oBAAQ,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,IAAA,4BAAgB,EAAC,IAAI,CAAC,CAAC,CAAC;IAC/G,CAAC;IACH,uBAAC;AAAD,CAAC,AAXD,CAAsC,yBAAa,GAWlD;AAXY,4CAAgB"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/transports/console/transport.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,gDAAwF;AAKxF;IAAsC,oCAAa;IAIjD,0BAAoB,OAAqC;QAArC,wBAAA,EAAA,YAAqC;QAAzD,YACE,iBAAO,SACR;QAFmB,aAAO,GAAP,OAAO,CAA8B;QAHhD,UAAI,GAAG,yCAAyC,CAAC;QACjD,aAAO,GAAG,mBAAO,CAAC;;IAI3B,CAAC;IAED,+BAAI,GAAJ,UAAK,IAAmB;;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAA,IAAI,CAAC,OAAO,CAAC,KAAK,mCAAI,oBAAQ,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,IAAA,4BAAgB,EAAC,IAAI,CAAC,CAAC,CAAC;IAC/G,CAAC;IACH,uBAAC;AAAD,CAAC,AAXD,CAAsC,yBAAa,GAWlD;AAXY,4CAAgB","sourcesContent":["import { BaseTransport, getTransportBody, LogLevel, VERSION } from '@grafana/faro-core';\nimport type { TransportItem } from '@grafana/faro-core';\n\nimport type { ConsoleTransportOptions } from './types';\n\nexport class ConsoleTransport extends BaseTransport {\n readonly name = '@grafana/faro-web-sdk:transport-console';\n readonly version = VERSION;\n\n constructor(private options: ConsoleTransportOptions = {}) {\n super();\n }\n\n send(item: TransportItem): void {\n return this.faro.unpatchedConsole[this.options.level ?? LogLevel.DEBUG]('New event', getTransportBody(item));\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/transports/console/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/transports/console/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { LogLevel } from '@grafana/faro-core';\n\nexport interface ConsoleTransportOptions {\n level?: LogLevel;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/transports/fetch/index.ts"],"names":[],"mappings":";;;AAAA,yCAA6C;AAApC,2GAAA,cAAc,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/transports/fetch/index.ts"],"names":[],"mappings":";;;AAAA,yCAA6C;AAApC,2GAAA,cAAc,OAAA","sourcesContent":["export { FetchTransport } from './transport';\nexport type { ClockFn, FetchTransportOptions, FetchTransportRequestOptions } from './types';\n"]}
@@ -40,7 +40,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
40
40
  function verb(n) { return function (v) { return step([n, v]); }; }
41
41
  function step(op) {
42
42
  if (f) throw new TypeError("Generator is already executing.");
43
- while (_) try {
43
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
44
44
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
45
45
  if (y = 0, t) op = [op[0] & 2, t.value];
46
46
  switch (op[0]) {
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/transports/fetch/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../../src/transports/fetch/transport.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseTransport, createPromiseBuffer, getTransportBody, PromiseBuffer, VERSION } from '@grafana/faro-core';\nimport type { TransportItem } from '@grafana/faro-core';\n\nimport type { FetchTransportOptions } from './types';\n\nconst DEFAULT_BUFFER_SIZE = 30;\nconst DEFAULT_CONCURRENCY = 5; // chrome supports 10 total, firefox 17\nconst DEFAULT_RATE_LIMIT_BACKOFF_MS = 5000;\n\nexport class FetchTransport extends BaseTransport {\n readonly name = '@grafana/faro-web-sdk:transport-fetch';\n readonly version = VERSION;\n\n promiseBuffer: PromiseBuffer<Response | void>;\n\n private rateLimitBackoffMs: number;\n private getNow: () => number;\n private disabledUntil: Date = new Date();\n\n constructor(private options: FetchTransportOptions) {\n super();\n\n this.rateLimitBackoffMs = options.defaultRateLimitBackoffMs ?? DEFAULT_RATE_LIMIT_BACKOFF_MS;\n this.getNow = options.getNow ?? (() => Date.now());\n\n this.promiseBuffer = createPromiseBuffer({\n size: options.bufferSize ?? DEFAULT_BUFFER_SIZE,\n concurrency: options.concurrency ?? DEFAULT_CONCURRENCY,\n });\n }\n\n async send(item: TransportItem): Promise<void> {\n try {\n if (this.disabledUntil > new Date(this.getNow())) {\n this.logWarn(`Dropping transport item due to too many requests. Backoff until ${this.disabledUntil}`);\n\n return Promise.resolve();\n }\n\n await this.promiseBuffer.add(() => {\n const body = JSON.stringify(getTransportBody(item));\n\n const { url, requestOptions, apiKey } = this.options;\n\n const { headers, ...restOfRequestOptions } = requestOptions ?? {};\n\n return fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n ...(headers ?? {}),\n ...(apiKey ? { 'x-api-key': apiKey } : {}),\n },\n body,\n keepalive: true,\n ...(restOfRequestOptions ?? {}),\n })\n .then((response) => {\n if (response.status === 429) {\n this.disabledUntil = this.getRetryAfterDate(response);\n this.logWarn(`Too many requests, backing off until ${this.disabledUntil}`);\n }\n\n return response;\n })\n .catch((err) => {\n this.logError('Failed sending payload to the receiver\\n', JSON.parse(body), err);\n });\n });\n } catch (err) {\n this.logError(err);\n }\n }\n\n override getIgnoreUrls(): Array<string | RegExp> {\n return [this.options.url];\n }\n\n private getRetryAfterDate(response: Response): Date {\n const now = this.getNow();\n const retryAfterHeader = response.headers.get('Retry-After');\n\n if (retryAfterHeader) {\n const delay = Number(retryAfterHeader);\n\n if (!isNaN(delay)) {\n return new Date(delay * 1000 + now);\n }\n\n const date = Date.parse(retryAfterHeader);\n\n if (!isNaN(date)) {\n return new Date(date);\n }\n }\n\n return new Date(now + this.rateLimitBackoffMs);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/transports/fetch/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/transports/fetch/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface FetchTransportRequestOptions extends Omit<RequestInit, 'body' | 'headers'> {\n headers?: Record<string, string>;\n}\n\nexport interface FetchTransportOptions {\n // url of the collector endpoint\n url: string;\n\n // will be added as `x-api-key` header\n apiKey?: string;\n // how many requests to buffer in total\n bufferSize?: number;\n // how many requests to execute concurrently\n concurrency?: number;\n // if rate limit response does not include a Retry-After header,\n // how many milliseconds to back off before attempting a request.\n // intermediate events will be dropped, not buffered\n defaultRateLimitBackoffMs?: number;\n // get current date. for mocking purposes in tests\n getNow?: ClockFn;\n // addition options for global.Fetch\n requestOptions?: FetchTransportRequestOptions;\n}\n\nexport type ClockFn = () => number;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transports/index.ts"],"names":[],"mappings":";;;AAAA,qCAA6C;AAApC,2GAAA,gBAAgB,OAAA;AAGzB,iCAAyC;AAAhC,uGAAA,cAAc,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transports/index.ts"],"names":[],"mappings":";;;AAAA,qCAA6C;AAApC,2GAAA,gBAAgB,OAAA;AAGzB,iCAAyC;AAAhC,uGAAA,cAAc,OAAA","sourcesContent":["export { ConsoleTransport } from './console';\nexport type { ConsoleTransportOptions } from './console';\n\nexport { FetchTransport } from './fetch';\nexport type { ClockFn, FetchTransportOptions, FetchTransportRequestOptions } from './fetch';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getWebInstrumentations.js","sourceRoot":"","sources":["../../../src/config/getWebInstrumentations.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAG7B,MAAM,UAAU,sBAAsB,CAAC,UAAyC,EAAE;IAChF,MAAM,gBAAgB,GAAsB;QAC1C,IAAI,qBAAqB,EAAE;QAC3B,IAAI,wBAAwB,EAAE;QAC9B,IAAI,sBAAsB,EAAE;KAC7B,CAAC;IAEF,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,EAAE;QACpC,gBAAgB,CAAC,IAAI,CACnB,IAAI,sBAAsB,CAAC;YACzB,cAAc,EAAE,OAAO,CAAC,4BAA4B;SACrD,CAAC,CACH,CAAC;KACH;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"getWebInstrumentations.js","sourceRoot":"","sources":["../../../src/config/getWebInstrumentations.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAG7B,MAAM,UAAU,sBAAsB,CAAC,UAAyC,EAAE;IAChF,MAAM,gBAAgB,GAAsB;QAC1C,IAAI,qBAAqB,EAAE;QAC3B,IAAI,wBAAwB,EAAE;QAC9B,IAAI,sBAAsB,EAAE;KAC7B,CAAC;IAEF,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,EAAE;QACpC,gBAAgB,CAAC,IAAI,CACnB,IAAI,sBAAsB,CAAC;YACzB,cAAc,EAAE,OAAO,CAAC,4BAA4B;SACrD,CAAC,CACH,CAAC;KACH;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC","sourcesContent":["import type { Instrumentation } from '@grafana/faro-core';\n\nimport {\n ConsoleInstrumentation,\n ErrorsInstrumentation,\n SessionInstrumentation,\n WebVitalsInstrumentation,\n} from '../instrumentations';\nimport type { GetWebInstrumentationsOptions } from './types';\n\nexport function getWebInstrumentations(options: GetWebInstrumentationsOptions = {}): Instrumentation[] {\n const instrumentations: Instrumentation[] = [\n new ErrorsInstrumentation(),\n new WebVitalsInstrumentation(),\n new SessionInstrumentation(),\n ];\n\n if (options.captureConsole !== false) {\n instrumentations.push(\n new ConsoleInstrumentation({\n disabledLevels: options.captureConsoleDisabledLevels,\n })\n );\n }\n\n return instrumentations;\n}\n"]}