@grafana/faro-core 1.0.2 → 1.0.4

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 (288) hide show
  1. package/dist/bundle/faro-core.iife.js +1 -1
  2. package/dist/cjs/metas/types.js.map +1 -1
  3. package/dist/cjs/testUtils/mockTransport.js +4 -1
  4. package/dist/cjs/testUtils/mockTransport.js.map +1 -1
  5. package/dist/cjs/transports/base.js.map +1 -1
  6. package/dist/cjs/transports/types.js.map +1 -1
  7. package/dist/cjs/version.js +1 -1
  8. package/dist/cjs/version.js.map +1 -1
  9. package/dist/esm/metas/types.js.map +1 -1
  10. package/dist/esm/testUtils/mockTransport.js +3 -1
  11. package/dist/esm/testUtils/mockTransport.js.map +1 -1
  12. package/dist/esm/transports/base.js.map +1 -1
  13. package/dist/esm/transports/types.js.map +1 -1
  14. package/dist/esm/version.js +1 -1
  15. package/dist/esm/version.js.map +1 -1
  16. package/dist/spec/core/src/api/events/index.js +6 -0
  17. package/dist/spec/core/src/api/events/index.js.map +1 -0
  18. package/dist/spec/core/src/api/events/initialize.js +44 -0
  19. package/dist/spec/core/src/api/events/initialize.js.map +1 -0
  20. package/dist/spec/core/src/api/events/initialize.test.js +86 -0
  21. package/dist/spec/core/src/api/events/initialize.test.js.map +1 -0
  22. package/dist/spec/core/src/api/events/types.js +3 -0
  23. package/dist/spec/core/src/api/events/types.js.map +1 -0
  24. package/dist/spec/core/src/api/exceptions/const.js +5 -0
  25. package/dist/spec/core/src/api/exceptions/const.js.map +1 -0
  26. package/dist/spec/core/src/api/exceptions/index.js +8 -0
  27. package/dist/spec/core/src/api/exceptions/index.js.map +1 -0
  28. package/dist/spec/core/src/api/exceptions/initialize.js +58 -0
  29. package/dist/spec/core/src/api/exceptions/initialize.js.map +1 -0
  30. package/dist/spec/core/src/api/exceptions/initialize.test.js +133 -0
  31. package/dist/spec/core/src/api/exceptions/initialize.test.js.map +1 -0
  32. package/dist/spec/core/src/api/exceptions/types.js +3 -0
  33. package/dist/spec/core/src/api/exceptions/types.js.map +1 -0
  34. package/dist/spec/core/src/api/index.js +8 -0
  35. package/dist/spec/core/src/api/index.js.map +1 -0
  36. package/dist/spec/core/src/api/initialize.js +27 -0
  37. package/dist/spec/core/src/api/initialize.js.map +1 -0
  38. package/dist/spec/core/src/api/logs/index.js +6 -0
  39. package/dist/spec/core/src/api/logs/index.js.map +1 -0
  40. package/dist/spec/core/src/api/logs/initialize.js +54 -0
  41. package/dist/spec/core/src/api/logs/initialize.js.map +1 -0
  42. package/dist/spec/core/src/api/logs/initialize.test.js +82 -0
  43. package/dist/spec/core/src/api/logs/initialize.test.js.map +1 -0
  44. package/dist/spec/core/src/api/logs/types.js +3 -0
  45. package/dist/spec/core/src/api/logs/types.js.map +1 -0
  46. package/dist/spec/core/src/api/measurements/index.js +6 -0
  47. package/dist/spec/core/src/api/measurements/index.js.map +1 -0
  48. package/dist/spec/core/src/api/measurements/initialize.js +50 -0
  49. package/dist/spec/core/src/api/measurements/initialize.js.map +1 -0
  50. package/dist/spec/core/src/api/measurements/initialize.test.js +117 -0
  51. package/dist/spec/core/src/api/measurements/initialize.test.js.map +1 -0
  52. package/dist/spec/core/src/api/measurements/types.js +3 -0
  53. package/dist/spec/core/src/api/measurements/types.js.map +1 -0
  54. package/dist/spec/core/src/api/meta/index.js +6 -0
  55. package/dist/spec/core/src/api/meta/index.js.map +1 -0
  56. package/dist/spec/core/src/api/meta/initialize.js +49 -0
  57. package/dist/spec/core/src/api/meta/initialize.js.map +1 -0
  58. package/dist/spec/core/src/api/meta/types.js +3 -0
  59. package/dist/spec/core/src/api/meta/types.js.map +1 -0
  60. package/dist/spec/core/src/api/traces/index.js +6 -0
  61. package/dist/spec/core/src/api/traces/index.js.map +1 -0
  62. package/dist/spec/core/src/api/traces/initialize.js +49 -0
  63. package/dist/spec/core/src/api/traces/initialize.js.map +1 -0
  64. package/dist/spec/core/src/api/traces/types.js +3 -0
  65. package/dist/spec/core/src/api/traces/types.js.map +1 -0
  66. package/dist/spec/core/src/api/types.js +3 -0
  67. package/dist/spec/core/src/api/types.js.map +1 -0
  68. package/dist/spec/core/src/config/const.js +5 -0
  69. package/dist/spec/core/src/config/const.js.map +1 -0
  70. package/dist/spec/core/src/config/index.js +6 -0
  71. package/dist/spec/core/src/config/index.js.map +1 -0
  72. package/dist/spec/core/src/config/types.js +3 -0
  73. package/dist/spec/core/src/config/types.js.map +1 -0
  74. package/dist/spec/core/src/extensions/baseExtension.js +57 -0
  75. package/dist/spec/core/src/extensions/baseExtension.js.map +1 -0
  76. package/dist/spec/core/src/extensions/index.js +6 -0
  77. package/dist/spec/core/src/extensions/index.js.map +1 -0
  78. package/dist/spec/core/src/extensions/types.js +3 -0
  79. package/dist/spec/core/src/extensions/types.js.map +1 -0
  80. package/dist/spec/core/src/faro.test.js +40 -0
  81. package/dist/spec/core/src/faro.test.js.map +1 -0
  82. package/dist/spec/core/src/globalObject/globalObject.js +6 -0
  83. package/dist/spec/core/src/globalObject/globalObject.js.map +1 -0
  84. package/dist/spec/core/src/globalObject/index.js +6 -0
  85. package/dist/spec/core/src/globalObject/index.js.map +1 -0
  86. package/dist/spec/core/src/index.js +75 -0
  87. package/dist/spec/core/src/index.js.map +1 -0
  88. package/dist/spec/core/src/initialize.js +32 -0
  89. package/dist/spec/core/src/initialize.js.map +1 -0
  90. package/dist/spec/core/src/instrumentations/base.js +31 -0
  91. package/dist/spec/core/src/instrumentations/base.js.map +1 -0
  92. package/dist/spec/core/src/instrumentations/index.js +10 -0
  93. package/dist/spec/core/src/instrumentations/index.js.map +1 -0
  94. package/dist/spec/core/src/instrumentations/initialize.js +71 -0
  95. package/dist/spec/core/src/instrumentations/initialize.js.map +1 -0
  96. package/dist/spec/core/src/instrumentations/registerInitial.js +9 -0
  97. package/dist/spec/core/src/instrumentations/registerInitial.js.map +1 -0
  98. package/dist/spec/core/src/instrumentations/types.js +3 -0
  99. package/dist/spec/core/src/instrumentations/types.js.map +1 -0
  100. package/dist/spec/core/src/internalLogger/const.js +22 -0
  101. package/dist/spec/core/src/internalLogger/const.js.map +1 -0
  102. package/dist/spec/core/src/internalLogger/createInternalLogger.js +65 -0
  103. package/dist/spec/core/src/internalLogger/createInternalLogger.js.map +1 -0
  104. package/dist/spec/core/src/internalLogger/index.js +13 -0
  105. package/dist/spec/core/src/internalLogger/index.js.map +1 -0
  106. package/dist/spec/core/src/internalLogger/initialize.js +12 -0
  107. package/dist/spec/core/src/internalLogger/initialize.js.map +1 -0
  108. package/dist/spec/core/src/internalLogger/types.js +3 -0
  109. package/dist/spec/core/src/internalLogger/types.js.map +1 -0
  110. package/dist/spec/core/src/metas/index.js +8 -0
  111. package/dist/spec/core/src/metas/index.js.map +1 -0
  112. package/dist/spec/core/src/metas/initialize.js +52 -0
  113. package/dist/spec/core/src/metas/initialize.js.map +1 -0
  114. package/dist/spec/core/src/metas/initialize.test.js +20 -0
  115. package/dist/spec/core/src/metas/initialize.test.js.map +1 -0
  116. package/dist/spec/core/src/metas/registerInitial.js +42 -0
  117. package/dist/spec/core/src/metas/registerInitial.js.map +1 -0
  118. package/dist/spec/core/src/metas/types.js +3 -0
  119. package/dist/spec/core/src/metas/types.js.map +1 -0
  120. package/dist/spec/core/src/sdk/const.js +5 -0
  121. package/dist/spec/core/src/sdk/const.js.map +1 -0
  122. package/dist/spec/core/src/sdk/faroGlobalObject.js +23 -0
  123. package/dist/spec/core/src/sdk/faroGlobalObject.js.map +1 -0
  124. package/dist/spec/core/src/sdk/index.js +13 -0
  125. package/dist/spec/core/src/sdk/index.js.map +1 -0
  126. package/dist/spec/core/src/sdk/internalFaroGlobalObject.js +29 -0
  127. package/dist/spec/core/src/sdk/internalFaroGlobalObject.js.map +1 -0
  128. package/dist/spec/core/src/sdk/registerFaro.js +25 -0
  129. package/dist/spec/core/src/sdk/registerFaro.js.map +1 -0
  130. package/dist/spec/core/src/sdk/types.js +3 -0
  131. package/dist/spec/core/src/sdk/types.js.map +1 -0
  132. package/dist/spec/core/src/semantic.js +12 -0
  133. package/dist/spec/core/src/semantic.js.map +1 -0
  134. package/dist/spec/core/src/testUtils/index.js +14 -0
  135. package/dist/spec/core/src/testUtils/index.js.map +1 -0
  136. package/dist/spec/core/src/testUtils/mockConfig.js +25 -0
  137. package/dist/spec/core/src/testUtils/mockConfig.js.map +1 -0
  138. package/dist/spec/core/src/testUtils/mockInternalLogger.js +12 -0
  139. package/dist/spec/core/src/testUtils/mockInternalLogger.js.map +1 -0
  140. package/dist/spec/core/src/testUtils/mockStacktraceParser.js +21 -0
  141. package/dist/spec/core/src/testUtils/mockStacktraceParser.js.map +1 -0
  142. package/dist/spec/core/src/testUtils/mockTransport.js +44 -0
  143. package/dist/spec/core/src/testUtils/mockTransport.js.map +1 -0
  144. package/dist/spec/core/src/testUtils/testPromise.js +15 -0
  145. package/dist/spec/core/src/testUtils/testPromise.js.map +1 -0
  146. package/dist/spec/core/src/transports/base.js +31 -0
  147. package/dist/spec/core/src/transports/base.js.map +1 -0
  148. package/dist/spec/core/src/transports/const.js +20 -0
  149. package/dist/spec/core/src/transports/const.js.map +1 -0
  150. package/dist/spec/core/src/transports/index.js +15 -0
  151. package/dist/spec/core/src/transports/index.js.map +1 -0
  152. package/dist/spec/core/src/transports/initialize.js +151 -0
  153. package/dist/spec/core/src/transports/initialize.js.map +1 -0
  154. package/dist/spec/core/src/transports/registerInitial.js +11 -0
  155. package/dist/spec/core/src/transports/registerInitial.js.map +1 -0
  156. package/dist/spec/core/src/transports/transports.test.js +139 -0
  157. package/dist/spec/core/src/transports/transports.test.js.map +1 -0
  158. package/dist/spec/core/src/transports/types.js +3 -0
  159. package/dist/spec/core/src/transports/types.js.map +1 -0
  160. package/dist/spec/core/src/transports/utils.js +13 -0
  161. package/dist/spec/core/src/transports/utils.js.map +1 -0
  162. package/dist/spec/core/src/unpatchedConsole/const.js +16 -0
  163. package/dist/spec/core/src/unpatchedConsole/const.js.map +1 -0
  164. package/dist/spec/core/src/unpatchedConsole/index.js +9 -0
  165. package/dist/spec/core/src/unpatchedConsole/index.js.map +1 -0
  166. package/dist/spec/core/src/unpatchedConsole/initialize.js +12 -0
  167. package/dist/spec/core/src/unpatchedConsole/initialize.js.map +1 -0
  168. package/dist/spec/core/src/unpatchedConsole/types.js +3 -0
  169. package/dist/spec/core/src/unpatchedConsole/types.js.map +1 -0
  170. package/dist/spec/core/src/utils/baseObject.js +3 -0
  171. package/dist/spec/core/src/utils/baseObject.js.map +1 -0
  172. package/dist/spec/core/src/utils/deepEqual.js +62 -0
  173. package/dist/spec/core/src/utils/deepEqual.js.map +1 -0
  174. package/dist/spec/core/src/utils/deepEqual.test.js +103 -0
  175. package/dist/spec/core/src/utils/deepEqual.test.js.map +1 -0
  176. package/dist/spec/core/src/utils/getCurrentTimestamp.js +8 -0
  177. package/dist/spec/core/src/utils/getCurrentTimestamp.js.map +1 -0
  178. package/dist/spec/core/src/utils/index.js +47 -0
  179. package/dist/spec/core/src/utils/index.js.map +1 -0
  180. package/dist/spec/core/src/utils/is.js +53 -0
  181. package/dist/spec/core/src/utils/is.js.map +1 -0
  182. package/dist/spec/core/src/utils/logLevels.js +22 -0
  183. package/dist/spec/core/src/utils/logLevels.js.map +1 -0
  184. package/dist/spec/core/src/utils/noop.js +6 -0
  185. package/dist/spec/core/src/utils/noop.js.map +1 -0
  186. package/dist/spec/core/src/utils/promiseBuffer.js +43 -0
  187. package/dist/spec/core/src/utils/promiseBuffer.js.map +1 -0
  188. package/dist/spec/core/src/utils/promiseBuffer.test.js +146 -0
  189. package/dist/spec/core/src/utils/promiseBuffer.test.js.map +1 -0
  190. package/dist/spec/core/src/utils/shortId.js +12 -0
  191. package/dist/spec/core/src/utils/shortId.js.map +1 -0
  192. package/dist/spec/core/src/version.js +6 -0
  193. package/dist/spec/core/src/version.js.map +1 -0
  194. package/dist/types/core/src/api/events/index.d.ts +2 -0
  195. package/dist/types/core/src/api/events/initialize.d.ts +8 -0
  196. package/dist/types/core/src/api/events/initialize.test.d.ts +1 -0
  197. package/dist/types/core/src/api/events/types.d.ts +15 -0
  198. package/dist/types/core/src/api/exceptions/const.d.ts +1 -0
  199. package/dist/types/core/src/api/exceptions/index.d.ts +3 -0
  200. package/dist/types/core/src/api/exceptions/initialize.d.ts +8 -0
  201. package/dist/types/core/src/api/exceptions/initialize.test.d.ts +1 -0
  202. package/dist/types/core/src/api/exceptions/types.d.ts +32 -0
  203. package/dist/types/core/src/api/index.d.ts +9 -0
  204. package/dist/types/core/src/api/initialize.d.ts +7 -0
  205. package/dist/types/core/src/api/logs/index.d.ts +2 -0
  206. package/dist/types/core/src/api/logs/initialize.d.ts +8 -0
  207. package/dist/types/core/src/api/logs/initialize.test.d.ts +1 -0
  208. package/dist/types/core/src/api/logs/types.d.ts +18 -0
  209. package/dist/types/core/src/api/measurements/index.d.ts +2 -0
  210. package/dist/types/core/src/api/measurements/initialize.d.ts +8 -0
  211. package/dist/types/core/src/api/measurements/initialize.test.d.ts +1 -0
  212. package/dist/types/core/src/api/measurements/types.d.ts +17 -0
  213. package/dist/types/core/src/api/meta/index.d.ts +2 -0
  214. package/dist/types/core/src/api/meta/initialize.d.ts +7 -0
  215. package/dist/types/core/src/api/meta/types.d.ts +10 -0
  216. package/dist/types/core/src/api/traces/index.d.ts +2 -0
  217. package/dist/types/core/src/api/traces/initialize.d.ts +7 -0
  218. package/dist/types/core/src/api/traces/types.d.ts +20 -0
  219. package/dist/types/core/src/api/types.d.ts +8 -0
  220. package/dist/types/core/src/config/const.d.ts +1 -0
  221. package/dist/types/core/src/config/index.d.ts +2 -0
  222. package/dist/types/core/src/config/types.d.ts +27 -0
  223. package/dist/types/core/src/extensions/baseExtension.d.ts +15 -0
  224. package/dist/types/core/src/extensions/index.d.ts +2 -0
  225. package/dist/types/core/src/extensions/types.d.ts +16 -0
  226. package/dist/types/core/src/faro.test.d.ts +1 -0
  227. package/dist/types/core/src/globalObject/globalObject.d.ts +7 -0
  228. package/dist/types/core/src/globalObject/index.d.ts +2 -0
  229. package/dist/types/core/src/index.d.ts +24 -0
  230. package/dist/types/core/src/initialize.d.ts +3 -0
  231. package/dist/types/core/src/instrumentations/base.d.ts +9 -0
  232. package/dist/types/core/src/instrumentations/index.d.ts +4 -0
  233. package/dist/types/core/src/instrumentations/initialize.d.ts +8 -0
  234. package/dist/types/core/src/instrumentations/registerInitial.d.ts +2 -0
  235. package/dist/types/core/src/instrumentations/types.d.ts +14 -0
  236. package/dist/types/core/src/internalLogger/const.d.ts +11 -0
  237. package/dist/types/core/src/internalLogger/createInternalLogger.d.ts +4 -0
  238. package/dist/types/core/src/internalLogger/index.d.ts +4 -0
  239. package/dist/types/core/src/internalLogger/initialize.d.ts +5 -0
  240. package/dist/types/core/src/internalLogger/types.d.ts +7 -0
  241. package/dist/types/core/src/metas/index.d.ts +3 -0
  242. package/dist/types/core/src/metas/initialize.d.ts +5 -0
  243. package/dist/types/core/src/metas/initialize.test.d.ts +1 -0
  244. package/dist/types/core/src/metas/registerInitial.d.ts +2 -0
  245. package/dist/types/core/src/metas/types.d.ts +67 -0
  246. package/dist/types/core/src/sdk/const.d.ts +1 -0
  247. package/dist/types/core/src/sdk/faroGlobalObject.d.ts +2 -0
  248. package/dist/types/core/src/sdk/index.d.ts +4 -0
  249. package/dist/types/core/src/sdk/internalFaroGlobalObject.d.ts +4 -0
  250. package/dist/types/core/src/sdk/registerFaro.d.ts +10 -0
  251. package/dist/types/core/src/sdk/types.d.ts +18 -0
  252. package/dist/types/core/src/semantic.d.ts +8 -0
  253. package/dist/types/core/src/testUtils/index.d.ts +6 -0
  254. package/dist/types/core/src/testUtils/mockConfig.d.ts +2 -0
  255. package/dist/types/core/src/testUtils/mockInternalLogger.d.ts +2 -0
  256. package/dist/types/core/src/testUtils/mockStacktraceParser.d.ts +2 -0
  257. package/dist/types/core/src/testUtils/mockTransport.d.ts +12 -0
  258. package/dist/types/core/src/testUtils/testPromise.d.ts +7 -0
  259. package/dist/types/core/src/transports/base.d.ts +6 -0
  260. package/dist/types/core/src/transports/const.d.ts +8 -0
  261. package/dist/types/core/src/transports/index.d.ts +6 -0
  262. package/dist/types/core/src/transports/initialize.d.ts +8 -0
  263. package/dist/types/core/src/transports/registerInitial.d.ts +2 -0
  264. package/dist/types/core/src/transports/transports.test.d.ts +1 -0
  265. package/dist/types/core/src/transports/types.d.ts +37 -0
  266. package/dist/types/core/src/transports/utils.d.ts +2 -0
  267. package/dist/types/core/src/unpatchedConsole/const.d.ts +2 -0
  268. package/dist/types/core/src/unpatchedConsole/index.d.ts +3 -0
  269. package/dist/types/core/src/unpatchedConsole/initialize.d.ts +4 -0
  270. package/dist/types/core/src/unpatchedConsole/types.d.ts +1 -0
  271. package/dist/types/core/src/utils/baseObject.d.ts +6 -0
  272. package/dist/types/core/src/utils/deepEqual.d.ts +1 -0
  273. package/dist/types/core/src/utils/deepEqual.test.d.ts +1 -0
  274. package/dist/types/core/src/utils/getCurrentTimestamp.d.ts +1 -0
  275. package/dist/types/core/src/utils/index.d.ts +10 -0
  276. package/dist/types/core/src/utils/is.d.ts +31 -0
  277. package/dist/types/core/src/utils/logLevels.d.ts +10 -0
  278. package/dist/types/core/src/utils/noop.d.ts +1 -0
  279. package/dist/types/core/src/utils/promiseBuffer.d.ts +14 -0
  280. package/dist/types/core/src/utils/promiseBuffer.test.d.ts +1 -0
  281. package/dist/types/core/src/utils/shortId.d.ts +1 -0
  282. package/dist/types/core/src/version.d.ts +1 -0
  283. package/dist/types/metas/types.d.ts +6 -0
  284. package/dist/types/testUtils/mockTransport.d.ts +2 -2
  285. package/dist/types/transports/base.d.ts +1 -1
  286. package/dist/types/transports/types.d.ts +1 -1
  287. package/dist/types/version.d.ts +1 -1
  288. package/package.json +4 -4
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.mockConfig = void 0;
15
+ var internalLogger_1 = require("../internalLogger");
16
+ var mockStacktraceParser_1 = require("./mockStacktraceParser");
17
+ function mockConfig(overrides) {
18
+ if (overrides === void 0) { overrides = {}; }
19
+ return __assign({ app: {
20
+ name: 'test',
21
+ version: '1.0.0',
22
+ }, dedupe: true, globalObjectKey: 'faro', internalLoggerLevel: internalLogger_1.defaultInternalLoggerLevel, instrumentations: [], isolate: true, metas: [], parseStacktrace: mockStacktraceParser_1.mockStacktraceParser, paused: false, preventGlobalExposure: true, transports: [], unpatchedConsole: console }, overrides);
23
+ }
24
+ exports.mockConfig = mockConfig;
25
+ //# sourceMappingURL=mockConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockConfig.js","sourceRoot":"","sources":["../../../../../src/testUtils/mockConfig.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,oDAA+D;AAE/D,+DAA8D;AAE9D,SAAgB,UAAU,CAAC,SAA+B;IAA/B,0BAAA,EAAA,cAA+B;IACxD,kBACE,GAAG,EAAE;YACH,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,OAAO;SACjB,EACD,MAAM,EAAE,IAAI,EACZ,eAAe,EAAE,MAAM,EACvB,mBAAmB,EAAE,2CAA0B,EAC/C,gBAAgB,EAAE,EAAE,EACpB,OAAO,EAAE,IAAI,EACb,KAAK,EAAE,EAAE,EACT,eAAe,EAAE,2CAAoB,EACrC,MAAM,EAAE,KAAK,EACb,qBAAqB,EAAE,IAAI,EAC3B,UAAU,EAAE,EAAE,EACd,gBAAgB,EAAE,OAAO,IACtB,SAAS,EACZ;AACJ,CAAC;AAnBD,gCAmBC","sourcesContent":["import type { Config } from '../config';\nimport { defaultInternalLoggerLevel } from '../internalLogger';\n\nimport { mockStacktraceParser } from './mockStacktraceParser';\n\nexport function mockConfig(overrides: Partial<Config> = {}): Config {\n return {\n app: {\n name: 'test',\n version: '1.0.0',\n },\n dedupe: true,\n globalObjectKey: 'faro',\n internalLoggerLevel: defaultInternalLoggerLevel,\n instrumentations: [],\n isolate: true,\n metas: [],\n parseStacktrace: mockStacktraceParser,\n paused: false,\n preventGlobalExposure: true,\n transports: [],\n unpatchedConsole: console,\n ...overrides,\n };\n}\n"]}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mockInternalLogger = void 0;
4
+ var utils_1 = require("../utils");
5
+ exports.mockInternalLogger = {
6
+ prefix: 'Faro',
7
+ debug: utils_1.noop,
8
+ info: utils_1.noop,
9
+ warn: utils_1.noop,
10
+ error: utils_1.noop,
11
+ };
12
+ //# sourceMappingURL=mockInternalLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockInternalLogger.js","sourceRoot":"","sources":["../../../../../src/testUtils/mockInternalLogger.ts"],"names":[],"mappings":";;;AACA,kCAAgC;AAEnB,QAAA,kBAAkB,GAAmB;IAChD,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,YAAI;IACX,IAAI,EAAE,YAAI;IACV,IAAI,EAAE,YAAI;IACV,KAAK,EAAE,YAAI;CACZ,CAAC","sourcesContent":["import type { InternalLogger } from '../internalLogger';\nimport { noop } from '../utils';\n\nexport const mockInternalLogger: InternalLogger = {\n prefix: 'Faro',\n debug: noop,\n info: noop,\n warn: noop,\n error: noop,\n};\n"]}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mockStacktraceParser = void 0;
4
+ var mockStacktraceParser = function (err) {
5
+ var _a;
6
+ var frames = [];
7
+ var stack = (_a = err.stack) !== null && _a !== void 0 ? _a : err.stacktrace;
8
+ if (stack) {
9
+ stack.split('\n').forEach(function (line) {
10
+ frames.push({
11
+ filename: line,
12
+ function: '',
13
+ });
14
+ });
15
+ }
16
+ return {
17
+ frames: frames,
18
+ };
19
+ };
20
+ exports.mockStacktraceParser = mockStacktraceParser;
21
+ //# sourceMappingURL=mockStacktraceParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockStacktraceParser.js","sourceRoot":"","sources":["../../../../../src/testUtils/mockStacktraceParser.ts"],"names":[],"mappings":";;;AAEO,IAAM,oBAAoB,GAAqB,UAAC,GAAG;;IACxD,IAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,IAAM,KAAK,GAAG,MAAA,GAAG,CAAC,KAAK,mCAAI,GAAG,CAAC,UAAU,CAAC;IAE1C,IAAI,KAAK,EAAE;QACT,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAC,IAAI;YAC7B,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,EAAE;aACb,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;KACJ;IAED,OAAO;QACL,MAAM,QAAA;KACP,CAAC;AACJ,CAAC,CAAC;AAhBW,QAAA,oBAAoB,wBAgB/B","sourcesContent":["import type { ExceptionStackFrame, StacktraceParser } from '../api';\n\nexport const mockStacktraceParser: StacktraceParser = (err) => {\n const frames: ExceptionStackFrame[] = [];\n const stack = err.stack ?? err.stacktrace;\n\n if (stack) {\n stack.split('\\n').forEach((line) => {\n frames.push({\n filename: line,\n function: '',\n });\n });\n }\n\n return {\n frames,\n };\n};\n"]}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.MockTransport = void 0;
19
+ var transports_1 = require("../transports");
20
+ var utils_1 = require("../utils");
21
+ var version_1 = require("../version");
22
+ var MockTransport = /** @class */ (function (_super) {
23
+ __extends(MockTransport, _super);
24
+ function MockTransport(ignoreURLs) {
25
+ if (ignoreURLs === void 0) { ignoreURLs = []; }
26
+ var _this = _super.call(this) || this;
27
+ _this.ignoreURLs = ignoreURLs;
28
+ _this.name = '@grafana/transport-mock';
29
+ _this.version = version_1.VERSION;
30
+ _this.items = [];
31
+ return _this;
32
+ }
33
+ MockTransport.prototype.send = function (item) {
34
+ var _a;
35
+ var items = (0, utils_1.isArray)(item) ? item : [item];
36
+ (_a = this.items).push.apply(_a, items);
37
+ };
38
+ MockTransport.prototype.getIgnoreUrls = function () {
39
+ return this.ignoreURLs;
40
+ };
41
+ return MockTransport;
42
+ }(transports_1.BaseTransport));
43
+ exports.MockTransport = MockTransport;
44
+ //# sourceMappingURL=mockTransport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockTransport.js","sourceRoot":"","sources":["../../../../../src/testUtils/mockTransport.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,4CAA8C;AAE9C,kCAAmC;AACnC,sCAAqC;AAErC;IAAmC,iCAAa;IAM9C,uBAAoB,UAAyB;QAAzB,2BAAA,EAAA,eAAyB;QAA7C,YACE,iBAAO,SACR;QAFmB,gBAAU,GAAV,UAAU,CAAe;QALpC,UAAI,GAAG,yBAAyB,CAAC;QACjC,aAAO,GAAG,iBAAO,CAAC;QAE3B,WAAK,GAAoB,EAAE,CAAC;;IAI5B,CAAC;IAED,4BAAI,GAAJ,UAAK,IAAqC;;QACxC,IAAM,KAAK,GAAG,IAAA,eAAO,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAA,KAAA,IAAI,CAAC,KAAK,CAAA,CAAC,IAAI,WAAI,KAAK,EAAE;IAC5B,CAAC;IAEQ,qCAAa,GAAtB;QACE,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACH,oBAAC;AAAD,CAAC,AAlBD,CAAmC,0BAAa,GAkB/C;AAlBY,sCAAa","sourcesContent":["import type { Patterns } from '../config';\nimport { BaseTransport } from '../transports';\nimport type { Transport, TransportItem } from '../transports';\nimport { isArray } from '../utils';\nimport { VERSION } from '../version';\n\nexport class MockTransport extends BaseTransport implements Transport {\n readonly name = '@grafana/transport-mock';\n readonly version = VERSION;\n\n items: TransportItem[] = [];\n\n constructor(private ignoreURLs: Patterns = []) {\n super();\n }\n\n send(item: TransportItem | TransportItem[]): void | Promise<void> {\n const items = isArray(item) ? item : [item];\n this.items.push(...items);\n }\n\n override getIgnoreUrls(): Patterns {\n return this.ignoreURLs;\n }\n}\n"]}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTestPromise = void 0;
4
+ function createTestPromise(id) {
5
+ var obj = {
6
+ id: id,
7
+ };
8
+ obj.promise = new Promise(function (resolve, reject) {
9
+ obj.resolve = resolve;
10
+ obj.reject = reject;
11
+ });
12
+ return obj;
13
+ }
14
+ exports.createTestPromise = createTestPromise;
15
+ //# sourceMappingURL=testPromise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testPromise.js","sourceRoot":"","sources":["../../../../../src/testUtils/testPromise.ts"],"names":[],"mappings":";;;AAUA,SAAgB,iBAAiB,CAAI,EAAW;IAC9C,IAAM,GAAG,GAAmB;QAC1B,EAAE,IAAA;KACe,CAAC;IAEpB,GAAG,CAAC,OAAO,GAAG,IAAI,OAAO,CAAI,UAAC,OAAO,EAAE,MAAM;QAC3C,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;QACtB,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC;AAXD,8CAWC","sourcesContent":["// exposes resolve, reject methods and\n// adds id\nexport interface TestPromise<T> {\n promise: Promise<T>;\n reject: (reason: any) => void;\n resolve: (value: T | PromiseLike<T>) => void;\n\n id?: number;\n}\n\nexport function createTestPromise<T>(id?: number) {\n const obj: TestPromise<T> = {\n id,\n } as TestPromise<T>;\n\n obj.promise = new Promise<T>((resolve, reject) => {\n obj.resolve = resolve;\n obj.reject = reject;\n });\n\n return obj;\n}\n"]}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.BaseTransport = void 0;
19
+ var extensions_1 = require("../extensions");
20
+ var BaseTransport = /** @class */ (function (_super) {
21
+ __extends(BaseTransport, _super);
22
+ function BaseTransport() {
23
+ return _super !== null && _super.apply(this, arguments) || this;
24
+ }
25
+ BaseTransport.prototype.getIgnoreUrls = function () {
26
+ return [];
27
+ };
28
+ return BaseTransport;
29
+ }(extensions_1.BaseExtension));
30
+ exports.BaseTransport = BaseTransport;
31
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../src/transports/base.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,4CAA8C;AAI9C;IAA4C,iCAAa;IAAzD;;IAMA,CAAC;IAHC,qCAAa,GAAb;QACE,OAAO,EAAE,CAAC;IACZ,CAAC;IACH,oBAAC;AAAD,CAAC,AAND,CAA4C,0BAAa,GAMxD;AANqB,sCAAa","sourcesContent":["import { BaseExtension } from '../extensions';\n\nimport type { Transport, TransportItem } from './types';\n\nexport abstract class BaseTransport extends BaseExtension implements Transport {\n abstract send(item: TransportItem | TransportItem[]): void | Promise<void>;\n\n getIgnoreUrls(): Array<string | RegExp> {\n return [];\n }\n}\n"]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.transportItemTypeToBodyKey = exports.TransportItemType = void 0;
5
+ var TransportItemType;
6
+ (function (TransportItemType) {
7
+ TransportItemType["EXCEPTION"] = "exception";
8
+ TransportItemType["LOG"] = "log";
9
+ TransportItemType["MEASUREMENT"] = "measurement";
10
+ TransportItemType["TRACE"] = "trace";
11
+ TransportItemType["EVENT"] = "event";
12
+ })(TransportItemType = exports.TransportItemType || (exports.TransportItemType = {}));
13
+ exports.transportItemTypeToBodyKey = (_a = {},
14
+ _a[TransportItemType.EXCEPTION] = 'exceptions',
15
+ _a[TransportItemType.LOG] = 'logs',
16
+ _a[TransportItemType.MEASUREMENT] = 'measurements',
17
+ _a[TransportItemType.TRACE] = 'traces',
18
+ _a[TransportItemType.EVENT] = 'events',
19
+ _a);
20
+ //# sourceMappingURL=const.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../../src/transports/const.ts"],"names":[],"mappings":";;;;AAAA,IAAY,iBAMX;AAND,WAAY,iBAAiB;IAC3B,4CAAuB,CAAA;IACvB,gCAAW,CAAA;IACX,gDAA2B,CAAA;IAC3B,oCAAe,CAAA;IACf,oCAAe,CAAA;AACjB,CAAC,EANW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAM5B;AAEY,QAAA,0BAA0B,GAAsC,CAAA;IAC3E,GAAC,iBAAiB,CAAC,SAAS,IAAG,YAAY;IAC3C,GAAC,iBAAiB,CAAC,GAAG,IAAG,MAAM;IAC/B,GAAC,iBAAiB,CAAC,WAAW,IAAG,cAAc;IAC/C,GAAC,iBAAiB,CAAC,KAAK,IAAG,QAAQ;IACnC,GAAC,iBAAiB,CAAC,KAAK,IAAG,QAAQ;MAC3B,CAAA,CAAC","sourcesContent":["export enum TransportItemType {\n EXCEPTION = 'exception',\n LOG = 'log',\n MEASUREMENT = 'measurement',\n TRACE = 'trace',\n EVENT = 'event',\n}\n\nexport const transportItemTypeToBodyKey: Record<TransportItemType, string> = {\n [TransportItemType.EXCEPTION]: 'exceptions',\n [TransportItemType.LOG]: 'logs',\n [TransportItemType.MEASUREMENT]: 'measurements',\n [TransportItemType.TRACE]: 'traces',\n [TransportItemType.EVENT]: 'events',\n} as const;\n"]}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTransportBody = exports.registerInitialTransports = exports.transportItemTypeToBodyKey = exports.TransportItemType = exports.BaseTransport = exports.initializeTransports = void 0;
4
+ var initialize_1 = require("./initialize");
5
+ Object.defineProperty(exports, "initializeTransports", { enumerable: true, get: function () { return initialize_1.initializeTransports; } });
6
+ var base_1 = require("./base");
7
+ Object.defineProperty(exports, "BaseTransport", { enumerable: true, get: function () { return base_1.BaseTransport; } });
8
+ var const_1 = require("./const");
9
+ Object.defineProperty(exports, "TransportItemType", { enumerable: true, get: function () { return const_1.TransportItemType; } });
10
+ Object.defineProperty(exports, "transportItemTypeToBodyKey", { enumerable: true, get: function () { return const_1.transportItemTypeToBodyKey; } });
11
+ var registerInitial_1 = require("./registerInitial");
12
+ Object.defineProperty(exports, "registerInitialTransports", { enumerable: true, get: function () { return registerInitial_1.registerInitialTransports; } });
13
+ var utils_1 = require("./utils");
14
+ Object.defineProperty(exports, "getTransportBody", { enumerable: true, get: function () { return utils_1.getTransportBody; } });
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/transports/index.ts"],"names":[],"mappings":";;;AAAA,2CAAoD;AAA3C,kHAAA,oBAAoB,OAAA;AAE7B,+BAAuC;AAA9B,qGAAA,aAAa,OAAA;AAEtB,iCAAwE;AAA/D,0GAAA,iBAAiB,OAAA;AAAE,mHAAA,0BAA0B,OAAA;AAEtD,qDAA8D;AAArD,4HAAA,yBAAyB,OAAA;AAWlC,iCAA2C;AAAlC,yGAAA,gBAAgB,OAAA","sourcesContent":["export { initializeTransports } from './initialize';\n\nexport { BaseTransport } from './base';\n\nexport { TransportItemType, transportItemTypeToBodyKey } from './const';\n\nexport { registerInitialTransports } from './registerInitial';\n\nexport type {\n BeforeSendHook,\n Transport,\n TransportBody,\n TransportItem,\n TransportItemPayload,\n Transports,\n} from './types';\n\nexport { getTransportBody } from './utils';\n"]}
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
+ if (ar || !(i in from)) {
5
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
+ ar[i] = from[i];
7
+ }
8
+ }
9
+ return to.concat(ar || Array.prototype.slice.call(from));
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.initializeTransports = exports.createBeforeSendHookFromIgnorePatterns = exports.shouldIgnoreEvent = void 0;
13
+ var utils_1 = require("../utils");
14
+ var const_1 = require("./const");
15
+ function shouldIgnoreEvent(patterns, msg) {
16
+ return patterns.some(function (pattern) {
17
+ return (0, utils_1.isString)(pattern) ? msg.includes(pattern) : !!msg.match(pattern);
18
+ });
19
+ }
20
+ exports.shouldIgnoreEvent = shouldIgnoreEvent;
21
+ function createBeforeSendHookFromIgnorePatterns(patterns) {
22
+ return function (item) {
23
+ if (item.type === const_1.TransportItemType.EXCEPTION && item.payload) {
24
+ var evt = item.payload;
25
+ var msg = "".concat(evt.type, ": ").concat(evt.value);
26
+ if (shouldIgnoreEvent(patterns, msg)) {
27
+ return null;
28
+ }
29
+ }
30
+ return item;
31
+ };
32
+ }
33
+ exports.createBeforeSendHookFromIgnorePatterns = createBeforeSendHookFromIgnorePatterns;
34
+ function initializeTransports(unpatchedConsole, internalLogger, config, metas) {
35
+ internalLogger.debug('Initializing transports');
36
+ var transports = [];
37
+ var paused = config.paused;
38
+ var beforeSendHooks = [];
39
+ var add = function () {
40
+ var newTransports = [];
41
+ for (var _i = 0; _i < arguments.length; _i++) {
42
+ newTransports[_i] = arguments[_i];
43
+ }
44
+ internalLogger.debug('Adding transports');
45
+ newTransports.forEach(function (newTransport) {
46
+ internalLogger.debug("Adding \"".concat(newTransport.name, "\" transport"));
47
+ var exists = transports.some(function (existingTransport) { return existingTransport === newTransport; });
48
+ if (exists) {
49
+ internalLogger.warn("Transport ".concat(newTransport.name, " is already added"));
50
+ return;
51
+ }
52
+ newTransport.unpatchedConsole = unpatchedConsole;
53
+ newTransport.internalLogger = internalLogger;
54
+ newTransport.config = config;
55
+ newTransport.metas = metas;
56
+ transports.push(newTransport);
57
+ });
58
+ };
59
+ var addBeforeSendHooks = function () {
60
+ var newBeforeSendHooks = [];
61
+ for (var _i = 0; _i < arguments.length; _i++) {
62
+ newBeforeSendHooks[_i] = arguments[_i];
63
+ }
64
+ internalLogger.debug('Adding beforeSendHooks\n', beforeSendHooks);
65
+ newBeforeSendHooks.forEach(function (beforeSendHook) {
66
+ if (beforeSendHook) {
67
+ beforeSendHooks.push(beforeSendHook);
68
+ }
69
+ });
70
+ };
71
+ var addIgnoreErrorsPatterns = function () {
72
+ var ignoreErrorsPatterns = [];
73
+ for (var _i = 0; _i < arguments.length; _i++) {
74
+ ignoreErrorsPatterns[_i] = arguments[_i];
75
+ }
76
+ internalLogger.debug('Adding ignoreErrorsPatterns\n', ignoreErrorsPatterns);
77
+ ignoreErrorsPatterns.forEach(function (ignoreErrorsPattern) {
78
+ if (ignoreErrorsPattern) {
79
+ beforeSendHooks.push(createBeforeSendHookFromIgnorePatterns(ignoreErrorsPattern));
80
+ }
81
+ });
82
+ };
83
+ var execute = function (item) {
84
+ if (!paused) {
85
+ var actualItem = item;
86
+ for (var _i = 0, beforeSendHooks_1 = beforeSendHooks; _i < beforeSendHooks_1.length; _i++) {
87
+ var hook = beforeSendHooks_1[_i];
88
+ var modified = hook(actualItem);
89
+ if (modified === null) {
90
+ return;
91
+ }
92
+ actualItem = modified;
93
+ }
94
+ for (var _a = 0, transports_1 = transports; _a < transports_1.length; _a++) {
95
+ var transport = transports_1[_a];
96
+ internalLogger.debug("Transporting item using ".concat(transport.name, "\n"), actualItem);
97
+ transport.send(actualItem);
98
+ }
99
+ }
100
+ };
101
+ var getBeforeSendHooks = function () { return __spreadArray([], beforeSendHooks, true); };
102
+ var isPaused = function () { return paused; };
103
+ var pause = function () {
104
+ internalLogger.debug('Pausing transports');
105
+ paused = true;
106
+ };
107
+ var remove = function () {
108
+ var transportsToRemove = [];
109
+ for (var _i = 0; _i < arguments.length; _i++) {
110
+ transportsToRemove[_i] = arguments[_i];
111
+ }
112
+ internalLogger.debug('Removing transports');
113
+ transportsToRemove.forEach(function (transportToRemove) {
114
+ internalLogger.debug("Removing \"".concat(transportToRemove.name, "\" transport"));
115
+ var existingTransportIndex = transports.indexOf(transportToRemove);
116
+ if (existingTransportIndex === -1) {
117
+ internalLogger.warn("Transport \"".concat(transportToRemove.name, "\" is not added"));
118
+ return;
119
+ }
120
+ transports.splice(existingTransportIndex, 1);
121
+ });
122
+ };
123
+ var removeBeforeSendHooks = function () {
124
+ var beforeSendHooksToRemove = [];
125
+ for (var _i = 0; _i < arguments.length; _i++) {
126
+ beforeSendHooksToRemove[_i] = arguments[_i];
127
+ }
128
+ beforeSendHooks.filter(function (beforeSendHook) { return !beforeSendHooksToRemove.includes(beforeSendHook); });
129
+ };
130
+ var unpause = function () {
131
+ internalLogger.debug('Unpausing transports');
132
+ paused = false;
133
+ };
134
+ return {
135
+ add: add,
136
+ addBeforeSendHooks: addBeforeSendHooks,
137
+ addIgnoreErrorsPatterns: addIgnoreErrorsPatterns,
138
+ getBeforeSendHooks: getBeforeSendHooks,
139
+ execute: execute,
140
+ isPaused: isPaused,
141
+ pause: pause,
142
+ remove: remove,
143
+ removeBeforeSendHooks: removeBeforeSendHooks,
144
+ get transports() {
145
+ return __spreadArray([], transports, true);
146
+ },
147
+ unpause: unpause,
148
+ };
149
+ }
150
+ exports.initializeTransports = initializeTransports;
151
+ //# sourceMappingURL=initialize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../../../../src/transports/initialize.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ExceptionEvent } from '../api';\nimport type { Config, Patterns } from '../config';\nimport type { InternalLogger } from '../internalLogger';\nimport type { Metas } from '../metas';\nimport type { UnpatchedConsole } from '../unpatchedConsole';\nimport { isString } from '../utils';\n\nimport { TransportItemType } from './const';\nimport type { BeforeSendHook, Transport, Transports } from './types';\n\nexport function shouldIgnoreEvent(patterns: Patterns, msg: string): boolean {\n return patterns.some((pattern) => {\n return isString(pattern) ? msg.includes(pattern) : !!msg.match(pattern);\n });\n}\n\nexport function createBeforeSendHookFromIgnorePatterns(patterns: Patterns): BeforeSendHook {\n return (item) => {\n if (item.type === TransportItemType.EXCEPTION && item.payload) {\n const evt = item.payload as ExceptionEvent;\n const msg = `${evt.type}: ${evt.value}`;\n\n if (shouldIgnoreEvent(patterns, msg)) {\n return null;\n }\n }\n\n return item;\n };\n}\n\nexport function initializeTransports(\n unpatchedConsole: UnpatchedConsole,\n internalLogger: InternalLogger,\n config: Config,\n metas: Metas\n): Transports {\n internalLogger.debug('Initializing transports');\n\n const transports: Transport[] = [];\n\n let paused = config.paused;\n\n let beforeSendHooks: BeforeSendHook[] = [];\n\n const add: Transports['add'] = (...newTransports) => {\n internalLogger.debug('Adding transports');\n\n newTransports.forEach((newTransport) => {\n internalLogger.debug(`Adding \"${newTransport.name}\" transport`);\n\n const exists = transports.some((existingTransport) => existingTransport === newTransport);\n\n if (exists) {\n internalLogger.warn(`Transport ${newTransport.name} is already added`);\n\n return;\n }\n\n newTransport.unpatchedConsole = unpatchedConsole;\n newTransport.internalLogger = internalLogger;\n newTransport.config = config;\n newTransport.metas = metas;\n\n transports.push(newTransport);\n });\n };\n\n const addBeforeSendHooks: Transports['addBeforeSendHooks'] = (...newBeforeSendHooks) => {\n internalLogger.debug('Adding beforeSendHooks\\n', beforeSendHooks);\n\n newBeforeSendHooks.forEach((beforeSendHook) => {\n if (beforeSendHook) {\n beforeSendHooks.push(beforeSendHook);\n }\n });\n };\n\n const addIgnoreErrorsPatterns: Transports['addIgnoreErrorsPatterns'] = (...ignoreErrorsPatterns) => {\n internalLogger.debug('Adding ignoreErrorsPatterns\\n', ignoreErrorsPatterns);\n\n ignoreErrorsPatterns.forEach((ignoreErrorsPattern) => {\n if (ignoreErrorsPattern) {\n beforeSendHooks.push(createBeforeSendHookFromIgnorePatterns(ignoreErrorsPattern));\n }\n });\n };\n\n const execute: Transports['execute'] = (item) => {\n if (!paused) {\n let actualItem = item;\n\n for (const hook of beforeSendHooks) {\n const modified = hook(actualItem);\n\n if (modified === null) {\n return;\n }\n\n actualItem = modified;\n }\n\n for (const transport of transports) {\n internalLogger.debug(`Transporting item using ${transport.name}\\n`, actualItem);\n\n transport.send(actualItem);\n }\n }\n };\n\n const getBeforeSendHooks: Transports['getBeforeSendHooks'] = () => [...beforeSendHooks];\n\n const isPaused: Transports['isPaused'] = () => paused;\n\n const pause: Transports['pause'] = () => {\n internalLogger.debug('Pausing transports');\n\n paused = true;\n };\n\n const remove: Transports['remove'] = (...transportsToRemove) => {\n internalLogger.debug('Removing transports');\n\n transportsToRemove.forEach((transportToRemove) => {\n internalLogger.debug(`Removing \"${transportToRemove.name}\" transport`);\n\n const existingTransportIndex = transports.indexOf(transportToRemove);\n\n if (existingTransportIndex === -1) {\n internalLogger.warn(`Transport \"${transportToRemove.name}\" is not added`);\n\n return;\n }\n\n transports.splice(existingTransportIndex, 1);\n });\n };\n\n const removeBeforeSendHooks: Transports['removeBeforeSendHooks'] = (...beforeSendHooksToRemove) => {\n beforeSendHooks.filter((beforeSendHook) => !beforeSendHooksToRemove.includes(beforeSendHook));\n };\n\n const unpause: Transports['unpause'] = () => {\n internalLogger.debug('Unpausing transports');\n\n paused = false;\n };\n\n return {\n add,\n addBeforeSendHooks,\n addIgnoreErrorsPatterns,\n getBeforeSendHooks,\n execute,\n isPaused,\n pause,\n remove,\n removeBeforeSendHooks,\n get transports() {\n return [...transports];\n },\n unpause,\n };\n}\n"]}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerInitialTransports = void 0;
4
+ function registerInitialTransports(faro) {
5
+ var _a;
6
+ (_a = faro.transports).add.apply(_a, faro.config.transports);
7
+ faro.transports.addBeforeSendHooks(faro.config.beforeSend);
8
+ faro.transports.addIgnoreErrorsPatterns(faro.config.ignoreErrors);
9
+ }
10
+ exports.registerInitialTransports = registerInitialTransports;
11
+ //# sourceMappingURL=registerInitial.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerInitial.js","sourceRoot":"","sources":["../../../../../src/transports/registerInitial.ts"],"names":[],"mappings":";;;AAEA,SAAgB,yBAAyB,CAAC,IAAU;;IAClD,CAAA,KAAA,IAAI,CAAC,UAAU,CAAA,CAAC,GAAG,WAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;IAC/C,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3D,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACpE,CAAC;AAJD,8DAIC","sourcesContent":["import type { Faro } from '../sdk';\n\nexport function registerInitialTransports(faro: Faro): void {\n faro.transports.add(...faro.config.transports);\n faro.transports.addBeforeSendHooks(faro.config.beforeSend);\n faro.transports.addIgnoreErrorsPatterns(faro.config.ignoreErrors);\n}\n"]}
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __assign = (this && this.__assign) || function () {
18
+ __assign = Object.assign || function(t) {
19
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
20
+ s = arguments[i];
21
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
+ t[p] = s[p];
23
+ }
24
+ return t;
25
+ };
26
+ return __assign.apply(this, arguments);
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ var initialize_1 = require("../initialize");
30
+ var testUtils_1 = require("../testUtils");
31
+ var utils_1 = require("../utils");
32
+ var version_1 = require("../version");
33
+ var base_1 = require("./base");
34
+ var const_1 = require("./const");
35
+ var MockTransport = /** @class */ (function (_super) {
36
+ __extends(MockTransport, _super);
37
+ function MockTransport() {
38
+ var _this = _super !== null && _super.apply(this, arguments) || this;
39
+ _this.name = '@grafana/transport-mock';
40
+ _this.version = version_1.VERSION;
41
+ _this.sentItems = [];
42
+ return _this;
43
+ }
44
+ MockTransport.prototype.send = function (item) {
45
+ this.sentItems.push(item);
46
+ };
47
+ return MockTransport;
48
+ }(base_1.BaseTransport));
49
+ describe('transports', function () {
50
+ describe('config.ignoreErrors', function () {
51
+ it('will filter out errors by string or regex', function () {
52
+ var _a;
53
+ var transport = new MockTransport();
54
+ var transports = (0, initialize_1.initializeFaro)((0, testUtils_1.mockConfig)({
55
+ transports: [transport],
56
+ ignoreErrors: ['Error: ResizeObserver', /FetchError[:\s\w\/]*pwc/],
57
+ })).transports;
58
+ transports.execute(makeExceptionTransportItem('Error', 'ResizeObserver loop limit exceeded'));
59
+ transports.execute(makeExceptionTransportItem('TypeError', '_.viz is undefined'));
60
+ transports.execute(makeExceptionTransportItem('FetchError', '404 \n Instantiating https://pwc.grafana.net/public/react-router-dom'));
61
+ transports.execute(makeExceptionTransportItem('FetchError', '404 \n Instantiating https://pwc.grafana.net/public/@emotion/css'));
62
+ expect(transport.sentItems).toHaveLength(1);
63
+ expect(((_a = transport.sentItems[0]) === null || _a === void 0 ? void 0 : _a.payload).type).toEqual('TypeError');
64
+ });
65
+ });
66
+ describe('config.beforeSend', function () {
67
+ it('will not send events that are rejected by beforeSend hook', function () {
68
+ var _a;
69
+ var transport = new MockTransport();
70
+ var hookedItems = [];
71
+ var transports = (0, initialize_1.initializeFaro)((0, testUtils_1.mockConfig)({
72
+ transports: [transport],
73
+ beforeSend: function (item) {
74
+ hookedItems.push(item);
75
+ if (item.type === const_1.TransportItemType.EXCEPTION && item.payload.type === 'TypeError') {
76
+ return null;
77
+ }
78
+ return item;
79
+ },
80
+ })).transports;
81
+ transports.execute(makeExceptionTransportItem('Error', 'ResizeObserver loop limit exceeded'));
82
+ transports.execute(makeExceptionTransportItem('TypeError', '_.viz is undefined'));
83
+ expect(transport.sentItems).toHaveLength(1);
84
+ expect(hookedItems).toHaveLength(2);
85
+ expect(((_a = transport.sentItems[0]) === null || _a === void 0 ? void 0 : _a.payload).type).toEqual('Error');
86
+ });
87
+ it('events can be modified by beforeSend hook', function () {
88
+ var _a;
89
+ var transport = new MockTransport();
90
+ var transports = (0, initialize_1.initializeFaro)((0, testUtils_1.mockConfig)({
91
+ transports: [transport],
92
+ beforeSend: function (item) {
93
+ if (item.type === const_1.TransportItemType.EXCEPTION) {
94
+ return __assign(__assign({}, item), { payload: __assign(__assign({}, item.payload), { type: 'NewType' }) });
95
+ }
96
+ return item;
97
+ },
98
+ })).transports;
99
+ transports.execute(makeExceptionTransportItem('Error', 'ResizeObserver loop limit exceeded'));
100
+ expect(transport.sentItems).toHaveLength(1);
101
+ expect(((_a = transport.sentItems[0]) === null || _a === void 0 ? void 0 : _a.payload).type).toEqual('NewType');
102
+ });
103
+ });
104
+ describe('multiple transports of the same type', function () {
105
+ var transport1 = new MockTransport();
106
+ var transport2 = new MockTransport();
107
+ var transports = (0, initialize_1.initializeFaro)((0, testUtils_1.mockConfig)({
108
+ isolate: true,
109
+ instrumentations: [],
110
+ transports: [transport1, transport2],
111
+ })).transports;
112
+ it('will all be added and receive events', function () {
113
+ transports.execute(makeExceptionTransportItem('Error', 'ResizeObserver loop limit exceeded'));
114
+ expect(transport1.sentItems).toHaveLength(1);
115
+ expect(transport2.sentItems).toHaveLength(1);
116
+ });
117
+ it('one of them can be removed by instance', function () {
118
+ transports.remove(transport1);
119
+ transports.execute(makeExceptionTransportItem('Error', 'Kaboom'));
120
+ expect(transport1.sentItems).toHaveLength(1);
121
+ expect(transport2.sentItems).toHaveLength(2);
122
+ });
123
+ });
124
+ });
125
+ function makeExceptionTransportItem(type, value) {
126
+ return {
127
+ type: const_1.TransportItemType.EXCEPTION,
128
+ payload: {
129
+ type: type,
130
+ value: value,
131
+ timestamp: (0, utils_1.getCurrentTimestamp)(),
132
+ stacktrace: {
133
+ frames: [],
134
+ },
135
+ },
136
+ meta: {},
137
+ };
138
+ }
139
+ //# sourceMappingURL=transports.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transports.test.js","sourceRoot":"","sources":["../../../../../src/transports/transports.test.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ExceptionEvent } from '../api';\nimport { initializeFaro } from '../initialize';\nimport { mockConfig } from '../testUtils';\nimport { getCurrentTimestamp } from '../utils';\nimport { VERSION } from '../version';\n\nimport { BaseTransport } from './base';\nimport { TransportItemType } from './const';\nimport type { Transport, TransportItem } from './types';\n\nclass MockTransport extends BaseTransport implements Transport {\n readonly name = '@grafana/transport-mock';\n readonly version = VERSION;\n\n sentItems: TransportItem[] = [];\n\n send(item: TransportItem): void | Promise<void> {\n this.sentItems.push(item);\n }\n}\n\ndescribe('transports', () => {\n describe('config.ignoreErrors', () => {\n it('will filter out errors by string or regex', () => {\n const transport = new MockTransport();\n\n const { transports } = initializeFaro(\n mockConfig({\n transports: [transport],\n ignoreErrors: ['Error: ResizeObserver', /FetchError[:\\s\\w\\/]*pwc/],\n })\n );\n\n transports.execute(makeExceptionTransportItem('Error', 'ResizeObserver loop limit exceeded'));\n transports.execute(makeExceptionTransportItem('TypeError', '_.viz is undefined'));\n transports.execute(\n makeExceptionTransportItem(\n 'FetchError',\n '404 \\n Instantiating https://pwc.grafana.net/public/react-router-dom'\n )\n );\n transports.execute(\n makeExceptionTransportItem('FetchError', '404 \\n Instantiating https://pwc.grafana.net/public/@emotion/css')\n );\n expect(transport.sentItems).toHaveLength(1);\n expect((transport.sentItems[0]?.payload as ErrorEvent).type).toEqual('TypeError');\n });\n });\n\n describe('config.beforeSend', () => {\n it('will not send events that are rejected by beforeSend hook', () => {\n const transport = new MockTransport();\n const hookedItems: TransportItem[] = [];\n\n const { transports } = initializeFaro(\n mockConfig({\n transports: [transport],\n beforeSend: (item: TransportItem) => {\n hookedItems.push(item);\n\n if (item.type === TransportItemType.EXCEPTION && (item.payload as ErrorEvent).type === 'TypeError') {\n return null;\n }\n\n return item;\n },\n })\n );\n\n transports.execute(makeExceptionTransportItem('Error', 'ResizeObserver loop limit exceeded'));\n transports.execute(makeExceptionTransportItem('TypeError', '_.viz is undefined'));\n\n expect(transport.sentItems).toHaveLength(1);\n expect(hookedItems).toHaveLength(2);\n expect((transport.sentItems[0]?.payload as ErrorEvent).type).toEqual('Error');\n });\n\n it('events can be modified by beforeSend hook', () => {\n const transport = new MockTransport();\n\n const { transports } = initializeFaro(\n mockConfig({\n transports: [transport],\n beforeSend: (item: TransportItem) => {\n if (item.type === TransportItemType.EXCEPTION) {\n return {\n ...item,\n payload: {\n ...item.payload,\n type: 'NewType',\n },\n };\n }\n return item;\n },\n })\n );\n\n transports.execute(makeExceptionTransportItem('Error', 'ResizeObserver loop limit exceeded'));\n expect(transport.sentItems).toHaveLength(1);\n expect((transport.sentItems[0]?.payload as ErrorEvent).type).toEqual('NewType');\n });\n });\n\n describe('multiple transports of the same type', () => {\n const transport1 = new MockTransport();\n const transport2 = new MockTransport();\n\n const { transports } = initializeFaro(\n mockConfig({\n isolate: true,\n instrumentations: [],\n transports: [transport1, transport2],\n })\n );\n\n it('will all be added and receive events', () => {\n transports.execute(makeExceptionTransportItem('Error', 'ResizeObserver loop limit exceeded'));\n expect(transport1.sentItems).toHaveLength(1);\n expect(transport2.sentItems).toHaveLength(1);\n });\n\n it('one of them can be removed by instance', () => {\n transports.remove(transport1);\n transports.execute(makeExceptionTransportItem('Error', 'Kaboom'));\n expect(transport1.sentItems).toHaveLength(1);\n expect(transport2.sentItems).toHaveLength(2);\n });\n });\n});\n\nfunction makeExceptionTransportItem(type: string, value: string): TransportItem<ExceptionEvent> {\n return {\n type: TransportItemType.EXCEPTION,\n payload: {\n type,\n value,\n timestamp: getCurrentTimestamp(),\n stacktrace: {\n frames: [],\n },\n },\n meta: {},\n };\n}\n"]}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/transports/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { APIEvent, EventEvent, ExceptionEvent, LogEvent, MeasurementEvent, TraceEvent } from '../api';\nimport type { Patterns } from '../config';\nimport type { Extension } from '../extensions';\nimport type { Meta } from '../metas';\n\nimport type { TransportItemType } from './const';\n\nexport type TransportItemPayload<P = APIEvent> = P;\n\nexport type BeforeSendHook<P = APIEvent> = (item: TransportItem<P>) => TransportItem<P> | null;\n\nexport interface TransportItem<P = APIEvent> {\n type: TransportItemType;\n payload: TransportItemPayload<P>;\n meta: Meta;\n}\n\nexport interface Transport extends Extension {\n send(items: TransportItem | TransportItem[]): void | Promise<void>;\n\n // returns URLs to be ignored by tracing, to not cause a feedback loop\n getIgnoreUrls(): Patterns;\n}\n\nexport interface TransportBody {\n meta: Meta;\n\n exceptions?: ExceptionEvent[];\n logs?: LogEvent[];\n measurements?: MeasurementEvent[];\n traces?: TraceEvent;\n events?: EventEvent[];\n}\n\nexport interface Transports {\n add: (...transports: Transport[]) => void;\n addBeforeSendHooks: (...hooks: Array<BeforeSendHook | undefined>) => void;\n addIgnoreErrorsPatterns: (...ignoreErrorsPatterns: Array<Patterns | undefined>) => void;\n execute: (transportItem: TransportItem) => void;\n getBeforeSendHooks: () => BeforeSendHook[];\n isPaused: () => boolean;\n remove: (...transports: Transport[]) => void;\n removeBeforeSendHooks: (...hooks: Array<BeforeSendHook | undefined>) => void;\n transports: Transport[];\n pause: () => void;\n unpause: () => void;\n}\n"]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTransportBody = void 0;
4
+ var const_1 = require("./const");
5
+ function getTransportBody(item) {
6
+ var _a;
7
+ return _a = {},
8
+ _a[const_1.transportItemTypeToBodyKey[item.type]] = item.type === const_1.TransportItemType.TRACE ? item.payload : [item.payload],
9
+ _a.meta = item.meta,
10
+ _a;
11
+ }
12
+ exports.getTransportBody = getTransportBody;
13
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/transports/utils.ts"],"names":[],"mappings":";;;AAAA,iCAAwE;AAGxE,SAAgB,gBAAgB,CAAC,IAAmB;;IAClD;QACE,GAAC,kCAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAG,IAAI,CAAC,IAAI,KAAK,yBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QAC9G,OAAI,GAAE,IAAI,CAAC,IAAI;WACf;AACJ,CAAC;AALD,4CAKC","sourcesContent":["import { TransportItemType, transportItemTypeToBodyKey } from './const';\nimport type { TransportBody, TransportItem } from './types';\n\nexport function getTransportBody(item: TransportItem): TransportBody {\n return {\n [transportItemTypeToBodyKey[item.type]]: item.type === TransportItemType.TRACE ? item.payload : [item.payload],\n meta: item.meta,\n };\n}\n"]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.defaultUnpatchedConsole = void 0;
15
+ exports.defaultUnpatchedConsole = __assign({}, console);
16
+ //# sourceMappingURL=const.js.map