@grafana/faro-core 1.14.3 → 1.15.0

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 (284) hide show
  1. package/dist/bundle/faro-core.iife.js +1 -1
  2. package/dist/bundle/types/api/const.d.ts +4 -3
  3. package/dist/bundle/types/api/index.d.ts +2 -2
  4. package/dist/bundle/types/api/logs/initialize.d.ts +1 -1
  5. package/dist/bundle/types/api/measurements/initialize.d.ts +1 -2
  6. package/dist/bundle/types/api/traces/initialize.d.ts +1 -1
  7. package/dist/bundle/types/api/types.d.ts +16 -6
  8. package/dist/bundle/types/extensions/baseExtension.d.ts +1 -1
  9. package/dist/bundle/types/globalObject/globalObject.d.ts +1 -2
  10. package/dist/bundle/types/index.d.ts +3 -3
  11. package/dist/bundle/types/testUtils/mockTransport.d.ts +1 -1
  12. package/dist/bundle/types/utils/index.d.ts +1 -1
  13. package/dist/bundle/types/utils/reactive.d.ts +12 -41
  14. package/dist/bundle/types/version.d.ts +1 -1
  15. package/dist/cjs/api/ItemBuffer.js.map +1 -1
  16. package/dist/cjs/api/const.js +5 -4
  17. package/dist/cjs/api/const.js.map +1 -1
  18. package/dist/cjs/api/events/initialize.js +2 -3
  19. package/dist/cjs/api/events/initialize.js.map +1 -1
  20. package/dist/cjs/api/exceptions/const.js.map +1 -1
  21. package/dist/cjs/api/exceptions/initialize.js +2 -3
  22. package/dist/cjs/api/exceptions/initialize.js.map +1 -1
  23. package/dist/cjs/api/index.js +5 -4
  24. package/dist/cjs/api/index.js.map +1 -1
  25. package/dist/cjs/api/initialize.js +2 -2
  26. package/dist/cjs/api/initialize.js.map +1 -1
  27. package/dist/cjs/api/logs/const.js.map +1 -1
  28. package/dist/cjs/api/logs/initialize.js +2 -3
  29. package/dist/cjs/api/logs/initialize.js.map +1 -1
  30. package/dist/cjs/api/measurements/initialize.js +2 -3
  31. package/dist/cjs/api/measurements/initialize.js.map +1 -1
  32. package/dist/cjs/api/meta/initialize.js +1 -2
  33. package/dist/cjs/api/meta/initialize.js.map +1 -1
  34. package/dist/cjs/api/traces/initialize.js +1 -2
  35. package/dist/cjs/api/traces/initialize.js.map +1 -1
  36. package/dist/cjs/api/types.js.map +1 -1
  37. package/dist/cjs/api/userActionLifecycleHandler.js +4 -5
  38. package/dist/cjs/api/userActionLifecycleHandler.js.map +1 -1
  39. package/dist/cjs/api/utils.js +1 -2
  40. package/dist/cjs/api/utils.js.map +1 -1
  41. package/dist/cjs/index.js +6 -6
  42. package/dist/cjs/index.js.map +1 -1
  43. package/dist/cjs/initialize.js +1 -2
  44. package/dist/cjs/initialize.js.map +1 -1
  45. package/dist/cjs/instrumentations/base.js.map +1 -1
  46. package/dist/cjs/instrumentations/initialize.js +1 -2
  47. package/dist/cjs/instrumentations/initialize.js.map +1 -1
  48. package/dist/cjs/instrumentations/registerInitial.js +1 -2
  49. package/dist/cjs/instrumentations/registerInitial.js.map +1 -1
  50. package/dist/cjs/internalLogger/const.js +1 -1
  51. package/dist/cjs/internalLogger/const.js.map +1 -1
  52. package/dist/cjs/internalLogger/createInternalLogger.js +1 -2
  53. package/dist/cjs/internalLogger/createInternalLogger.js.map +1 -1
  54. package/dist/cjs/internalLogger/initialize.js +2 -2
  55. package/dist/cjs/internalLogger/initialize.js.map +1 -1
  56. package/dist/cjs/metas/initialize.js +1 -2
  57. package/dist/cjs/metas/initialize.js.map +1 -1
  58. package/dist/cjs/metas/registerInitial.js +1 -2
  59. package/dist/cjs/metas/registerInitial.js.map +1 -1
  60. package/dist/cjs/sdk/faroGlobalObject.js +1 -2
  61. package/dist/cjs/sdk/faroGlobalObject.js.map +1 -1
  62. package/dist/cjs/sdk/internalFaroGlobalObject.js +3 -4
  63. package/dist/cjs/sdk/internalFaroGlobalObject.js.map +1 -1
  64. package/dist/cjs/sdk/registerFaro.js +2 -2
  65. package/dist/cjs/sdk/registerFaro.js.map +1 -1
  66. package/dist/cjs/testUtils/mockConfig.js +1 -2
  67. package/dist/cjs/testUtils/mockConfig.js.map +1 -1
  68. package/dist/cjs/testUtils/mockStacktraceParser.js.map +1 -1
  69. package/dist/cjs/testUtils/mockTransport.js.map +1 -1
  70. package/dist/cjs/testUtils/testPromise.js +1 -2
  71. package/dist/cjs/testUtils/testPromise.js.map +1 -1
  72. package/dist/cjs/transports/batchExecutor.js.map +1 -1
  73. package/dist/cjs/transports/const.js +1 -1
  74. package/dist/cjs/transports/const.js.map +1 -1
  75. package/dist/cjs/transports/initialize.js +1 -2
  76. package/dist/cjs/transports/initialize.js.map +1 -1
  77. package/dist/cjs/transports/registerInitial.js +1 -2
  78. package/dist/cjs/transports/registerInitial.js.map +1 -1
  79. package/dist/cjs/transports/utils.js +2 -3
  80. package/dist/cjs/transports/utils.js.map +1 -1
  81. package/dist/cjs/unpatchedConsole/initialize.js +2 -2
  82. package/dist/cjs/unpatchedConsole/initialize.js.map +1 -1
  83. package/dist/cjs/utils/date.js +3 -4
  84. package/dist/cjs/utils/date.js.map +1 -1
  85. package/dist/cjs/utils/deepEqual.js +1 -2
  86. package/dist/cjs/utils/deepEqual.js.map +1 -1
  87. package/dist/cjs/utils/index.js +1 -2
  88. package/dist/cjs/utils/index.js.map +1 -1
  89. package/dist/cjs/utils/is.js +5 -5
  90. package/dist/cjs/utils/is.js.map +1 -1
  91. package/dist/cjs/utils/json.js +3 -4
  92. package/dist/cjs/utils/json.js.map +1 -1
  93. package/dist/cjs/utils/logLevels.js +1 -1
  94. package/dist/cjs/utils/logLevels.js.map +1 -1
  95. package/dist/cjs/utils/noop.js +1 -2
  96. package/dist/cjs/utils/noop.js.map +1 -1
  97. package/dist/cjs/utils/promiseBuffer.js +1 -2
  98. package/dist/cjs/utils/promiseBuffer.js.map +1 -1
  99. package/dist/cjs/utils/reactive.js +61 -75
  100. package/dist/cjs/utils/reactive.js.map +1 -1
  101. package/dist/cjs/utils/shortId.js +1 -2
  102. package/dist/cjs/utils/shortId.js.map +1 -1
  103. package/dist/cjs/utils/sourceMaps.js +1 -2
  104. package/dist/cjs/utils/sourceMaps.js.map +1 -1
  105. package/dist/cjs/version.js +1 -1
  106. package/dist/cjs/version.js.map +1 -1
  107. package/dist/esm/api/ItemBuffer.js.map +1 -1
  108. package/dist/esm/api/const.js +4 -3
  109. package/dist/esm/api/const.js.map +1 -1
  110. package/dist/esm/api/events/initialize.js +2 -2
  111. package/dist/esm/api/events/initialize.js.map +1 -1
  112. package/dist/esm/api/exceptions/const.js.map +1 -1
  113. package/dist/esm/api/exceptions/initialize.js +2 -2
  114. package/dist/esm/api/exceptions/initialize.js.map +1 -1
  115. package/dist/esm/api/index.js +1 -1
  116. package/dist/esm/api/index.js.map +1 -1
  117. package/dist/esm/api/logs/const.js.map +1 -1
  118. package/dist/esm/api/logs/initialize.js +2 -2
  119. package/dist/esm/api/logs/initialize.js.map +1 -1
  120. package/dist/esm/api/measurements/initialize.js +2 -2
  121. package/dist/esm/api/measurements/initialize.js.map +1 -1
  122. package/dist/esm/api/meta/initialize.js.map +1 -1
  123. package/dist/esm/api/traces/initialize.js.map +1 -1
  124. package/dist/esm/api/types.js.map +1 -1
  125. package/dist/esm/api/userActionLifecycleHandler.js +4 -4
  126. package/dist/esm/api/userActionLifecycleHandler.js.map +1 -1
  127. package/dist/esm/index.js +2 -2
  128. package/dist/esm/index.js.map +1 -1
  129. package/dist/esm/initialize.js.map +1 -1
  130. package/dist/esm/instrumentations/initialize.js.map +1 -1
  131. package/dist/esm/internalLogger/createInternalLogger.js.map +1 -1
  132. package/dist/esm/metas/initialize.js.map +1 -1
  133. package/dist/esm/metas/registerInitial.js.map +1 -1
  134. package/dist/esm/sdk/faroGlobalObject.js.map +1 -1
  135. package/dist/esm/sdk/internalFaroGlobalObject.js.map +1 -1
  136. package/dist/esm/testUtils/mockStacktraceParser.js.map +1 -1
  137. package/dist/esm/transports/batchExecutor.js.map +1 -1
  138. package/dist/esm/transports/initialize.js.map +1 -1
  139. package/dist/esm/transports/utils.js.map +1 -1
  140. package/dist/esm/utils/deepEqual.js.map +1 -1
  141. package/dist/esm/utils/index.js +1 -1
  142. package/dist/esm/utils/index.js.map +1 -1
  143. package/dist/esm/utils/is.js.map +1 -1
  144. package/dist/esm/utils/json.js.map +1 -1
  145. package/dist/esm/utils/promiseBuffer.js.map +1 -1
  146. package/dist/esm/utils/reactive.js +55 -69
  147. package/dist/esm/utils/reactive.js.map +1 -1
  148. package/dist/esm/version.js +1 -1
  149. package/dist/esm/version.js.map +1 -1
  150. package/dist/spec/core/src/api/ItemBuffer.js.map +1 -1
  151. package/dist/spec/core/src/api/const.js +5 -4
  152. package/dist/spec/core/src/api/const.js.map +1 -1
  153. package/dist/spec/core/src/api/events/initialize.js +2 -3
  154. package/dist/spec/core/src/api/events/initialize.js.map +1 -1
  155. package/dist/spec/core/src/api/events/initialize.test.js +3 -3
  156. package/dist/spec/core/src/api/events/initialize.test.js.map +1 -1
  157. package/dist/spec/core/src/api/exceptions/const.js.map +1 -1
  158. package/dist/spec/core/src/api/exceptions/initialize.js +2 -3
  159. package/dist/spec/core/src/api/exceptions/initialize.js.map +1 -1
  160. package/dist/spec/core/src/api/exceptions/initialize.test.js +3 -3
  161. package/dist/spec/core/src/api/exceptions/initialize.test.js.map +1 -1
  162. package/dist/spec/core/src/api/index.js +5 -4
  163. package/dist/spec/core/src/api/index.js.map +1 -1
  164. package/dist/spec/core/src/api/initialize.js +2 -2
  165. package/dist/spec/core/src/api/initialize.js.map +1 -1
  166. package/dist/spec/core/src/api/initialize.test.js +17 -7
  167. package/dist/spec/core/src/api/initialize.test.js.map +1 -1
  168. package/dist/spec/core/src/api/logs/const.js.map +1 -1
  169. package/dist/spec/core/src/api/logs/initialize.js +2 -3
  170. package/dist/spec/core/src/api/logs/initialize.js.map +1 -1
  171. package/dist/spec/core/src/api/logs/initialize.test.js +3 -3
  172. package/dist/spec/core/src/api/logs/initialize.test.js.map +1 -1
  173. package/dist/spec/core/src/api/measurements/initialize.js +2 -3
  174. package/dist/spec/core/src/api/measurements/initialize.js.map +1 -1
  175. package/dist/spec/core/src/api/measurements/initialize.test.js +3 -3
  176. package/dist/spec/core/src/api/measurements/initialize.test.js.map +1 -1
  177. package/dist/spec/core/src/api/meta/initialize.js +1 -2
  178. package/dist/spec/core/src/api/meta/initialize.js.map +1 -1
  179. package/dist/spec/core/src/api/traces/initialize.js +1 -2
  180. package/dist/spec/core/src/api/traces/initialize.js.map +1 -1
  181. package/dist/spec/core/src/api/types.js.map +1 -1
  182. package/dist/spec/core/src/api/userActionLifecycleHandler.js +4 -5
  183. package/dist/spec/core/src/api/userActionLifecycleHandler.js.map +1 -1
  184. package/dist/spec/core/src/api/userActionLifecycleHandler.test.js +26 -9
  185. package/dist/spec/core/src/api/userActionLifecycleHandler.test.js.map +1 -1
  186. package/dist/spec/core/src/api/utils.js +1 -2
  187. package/dist/spec/core/src/api/utils.js.map +1 -1
  188. package/dist/spec/core/src/index.js +6 -6
  189. package/dist/spec/core/src/index.js.map +1 -1
  190. package/dist/spec/core/src/initialize.js +1 -2
  191. package/dist/spec/core/src/initialize.js.map +1 -1
  192. package/dist/spec/core/src/instrumentations/base.js.map +1 -1
  193. package/dist/spec/core/src/instrumentations/initialize.js +1 -2
  194. package/dist/spec/core/src/instrumentations/initialize.js.map +1 -1
  195. package/dist/spec/core/src/instrumentations/registerInitial.js +1 -2
  196. package/dist/spec/core/src/instrumentations/registerInitial.js.map +1 -1
  197. package/dist/spec/core/src/internalLogger/const.js +1 -1
  198. package/dist/spec/core/src/internalLogger/const.js.map +1 -1
  199. package/dist/spec/core/src/internalLogger/createInternalLogger.js +1 -2
  200. package/dist/spec/core/src/internalLogger/createInternalLogger.js.map +1 -1
  201. package/dist/spec/core/src/internalLogger/initialize.js +2 -2
  202. package/dist/spec/core/src/internalLogger/initialize.js.map +1 -1
  203. package/dist/spec/core/src/metas/initialize.js +1 -2
  204. package/dist/spec/core/src/metas/initialize.js.map +1 -1
  205. package/dist/spec/core/src/metas/registerInitial.js +1 -2
  206. package/dist/spec/core/src/metas/registerInitial.js.map +1 -1
  207. package/dist/spec/core/src/sdk/faroGlobalObject.js +1 -2
  208. package/dist/spec/core/src/sdk/faroGlobalObject.js.map +1 -1
  209. package/dist/spec/core/src/sdk/internalFaroGlobalObject.js +3 -4
  210. package/dist/spec/core/src/sdk/internalFaroGlobalObject.js.map +1 -1
  211. package/dist/spec/core/src/sdk/registerFaro.js +2 -2
  212. package/dist/spec/core/src/sdk/registerFaro.js.map +1 -1
  213. package/dist/spec/core/src/testUtils/mockConfig.js +1 -2
  214. package/dist/spec/core/src/testUtils/mockConfig.js.map +1 -1
  215. package/dist/spec/core/src/testUtils/mockStacktraceParser.js.map +1 -1
  216. package/dist/spec/core/src/testUtils/mockTransport.js.map +1 -1
  217. package/dist/spec/core/src/testUtils/testPromise.js +1 -2
  218. package/dist/spec/core/src/testUtils/testPromise.js.map +1 -1
  219. package/dist/spec/core/src/transports/batchExecutor.js.map +1 -1
  220. package/dist/spec/core/src/transports/const.js +1 -1
  221. package/dist/spec/core/src/transports/const.js.map +1 -1
  222. package/dist/spec/core/src/transports/initialize.js +1 -2
  223. package/dist/spec/core/src/transports/initialize.js.map +1 -1
  224. package/dist/spec/core/src/transports/registerInitial.js +1 -2
  225. package/dist/spec/core/src/transports/registerInitial.js.map +1 -1
  226. package/dist/spec/core/src/transports/transports.test.js.map +1 -1
  227. package/dist/spec/core/src/transports/utils.js +2 -3
  228. package/dist/spec/core/src/transports/utils.js.map +1 -1
  229. package/dist/spec/core/src/unpatchedConsole/initialize.js +2 -2
  230. package/dist/spec/core/src/unpatchedConsole/initialize.js.map +1 -1
  231. package/dist/spec/core/src/utils/date.js +3 -4
  232. package/dist/spec/core/src/utils/date.js.map +1 -1
  233. package/dist/spec/core/src/utils/deepEqual.js +1 -2
  234. package/dist/spec/core/src/utils/deepEqual.js.map +1 -1
  235. package/dist/spec/core/src/utils/index.js +1 -2
  236. package/dist/spec/core/src/utils/index.js.map +1 -1
  237. package/dist/spec/core/src/utils/is.js +5 -5
  238. package/dist/spec/core/src/utils/is.js.map +1 -1
  239. package/dist/spec/core/src/utils/json.js +3 -4
  240. package/dist/spec/core/src/utils/json.js.map +1 -1
  241. package/dist/spec/core/src/utils/logLevels.js +1 -1
  242. package/dist/spec/core/src/utils/logLevels.js.map +1 -1
  243. package/dist/spec/core/src/utils/noop.js +1 -2
  244. package/dist/spec/core/src/utils/noop.js.map +1 -1
  245. package/dist/spec/core/src/utils/promiseBuffer.js +1 -2
  246. package/dist/spec/core/src/utils/promiseBuffer.js.map +1 -1
  247. package/dist/spec/core/src/utils/promiseBuffer.test.js +2 -2
  248. package/dist/spec/core/src/utils/reactive.js +61 -75
  249. package/dist/spec/core/src/utils/reactive.js.map +1 -1
  250. package/dist/spec/core/src/utils/reactive.test.js +32 -19
  251. package/dist/spec/core/src/utils/reactive.test.js.map +1 -1
  252. package/dist/spec/core/src/utils/shortId.js +1 -2
  253. package/dist/spec/core/src/utils/shortId.js.map +1 -1
  254. package/dist/spec/core/src/utils/sourceMaps.js +1 -2
  255. package/dist/spec/core/src/utils/sourceMaps.js.map +1 -1
  256. package/dist/spec/core/src/version.js +1 -1
  257. package/dist/spec/core/src/version.js.map +1 -1
  258. package/dist/types/api/const.d.ts +4 -3
  259. package/dist/types/api/index.d.ts +2 -2
  260. package/dist/types/api/logs/initialize.d.ts +1 -1
  261. package/dist/types/api/measurements/initialize.d.ts +1 -2
  262. package/dist/types/api/traces/initialize.d.ts +1 -1
  263. package/dist/types/api/types.d.ts +16 -6
  264. package/dist/types/core/src/api/const.d.ts +4 -3
  265. package/dist/types/core/src/api/index.d.ts +2 -2
  266. package/dist/types/core/src/api/logs/initialize.d.ts +1 -1
  267. package/dist/types/core/src/api/measurements/initialize.d.ts +1 -2
  268. package/dist/types/core/src/api/traces/initialize.d.ts +1 -1
  269. package/dist/types/core/src/api/types.d.ts +16 -6
  270. package/dist/types/core/src/extensions/baseExtension.d.ts +1 -1
  271. package/dist/types/core/src/globalObject/globalObject.d.ts +1 -2
  272. package/dist/types/core/src/index.d.ts +3 -3
  273. package/dist/types/core/src/testUtils/mockTransport.d.ts +1 -1
  274. package/dist/types/core/src/utils/index.d.ts +1 -1
  275. package/dist/types/core/src/utils/reactive.d.ts +12 -41
  276. package/dist/types/core/src/version.d.ts +1 -1
  277. package/dist/types/extensions/baseExtension.d.ts +1 -1
  278. package/dist/types/globalObject/globalObject.d.ts +1 -2
  279. package/dist/types/index.d.ts +3 -3
  280. package/dist/types/testUtils/mockTransport.d.ts +1 -1
  281. package/dist/types/utils/index.d.ts +1 -1
  282. package/dist/types/utils/reactive.d.ts +12 -41
  283. package/dist/types/version.d.ts +1 -1
  284. package/package.json +2 -2
@@ -2,92 +2,78 @@ export class Observable {
2
2
  constructor() {
3
3
  this.subscribers = [];
4
4
  }
5
- /**
6
- * Subscribes a callback function to the observable.
7
- * @param callback - The function to call when the observable emits a value.
8
- * @returns A subscription object with an unsubscribe method to cancel the subscription.
9
- */
10
- subscribe(callback) {
11
- this.subscribers.push(callback);
5
+ subscribe(subscriber) {
6
+ this.subscribers.push(subscriber);
12
7
  return {
13
- unsubscribe: () => this.unsubscribe(callback),
8
+ unsubscribe: () => this.unsubscribe(subscriber),
14
9
  };
15
10
  }
16
- /**
17
- * Notifies all subscribers with the given data.
18
- * @param data - The data to emit to all subscribers.
19
- */
20
- notify(data) {
21
- this.subscribers.forEach((callback) => callback(data));
11
+ unsubscribe(subscriber) {
12
+ this.subscribers = this.subscribers.filter((sub) => sub !== subscriber);
22
13
  }
23
- /**
24
- * Subscribes a callback function to the observable and automatically unsubscribes after the first emission.
25
- * @param callback - The function to call when the observable emits a value.
26
- * @returns A subscription object with an unsubscribe method to cancel the subscription.
27
- */
28
- first(callback) {
29
- const subscription = this.subscribe((data) => {
30
- callback(data);
14
+ notify(value) {
15
+ this.subscribers.forEach((subscriber) => subscriber(value));
16
+ }
17
+ first() {
18
+ const result = new Observable();
19
+ const internalSubscriber = (data) => {
20
+ result.notify(data);
31
21
  subscription.unsubscribe();
32
- });
33
- return subscription;
22
+ };
23
+ const subscription = this.subscribe(internalSubscriber);
24
+ const resultUnsubscribeFn = result.unsubscribe.bind(result);
25
+ return this.withUnsubscribeOverride(result, resultUnsubscribeFn, internalSubscriber);
34
26
  }
35
- /**
36
- * Emits values from the source observable until the provided predicate function returns false.
37
- * @param predicate - A function that evaluates each value emitted by the source observable.
38
- * @returns A new observable that emits values from the source observable while the predicate returns true.
39
- */
40
27
  takeWhile(predicate) {
41
28
  const result = new Observable();
42
- const subscription = this.subscribe((value) => {
29
+ const internalSubscriber = (value) => {
43
30
  if (predicate(value)) {
44
31
  result.notify(value);
45
32
  }
46
33
  else {
47
- subscription.unsubscribe();
34
+ result.unsubscribe(internalSubscriber);
35
+ }
36
+ };
37
+ this.subscribe(internalSubscriber);
38
+ const resultUnsubscribeFn = result.unsubscribe.bind(result);
39
+ return this.withUnsubscribeOverride(result, resultUnsubscribeFn, internalSubscriber);
40
+ }
41
+ filter(predicate) {
42
+ const result = new Observable();
43
+ const internalSubscriber = (value) => {
44
+ if (predicate(value)) {
45
+ result.notify(value);
48
46
  }
47
+ };
48
+ this.subscribe(internalSubscriber);
49
+ const resultUnsubscribeFn = result.unsubscribe.bind(result);
50
+ return this.withUnsubscribeOverride(result, resultUnsubscribeFn, internalSubscriber);
51
+ }
52
+ merge(...observables) {
53
+ const mergerObservable = new Observable();
54
+ const subscriptions = [];
55
+ observables.forEach((observable) => {
56
+ const subscription = observable.subscribe((value) => {
57
+ mergerObservable.notify(value);
58
+ });
59
+ subscriptions.push(subscription);
49
60
  });
50
- return result;
61
+ const originalUnsubscribeAll = mergerObservable.unsubscribeAll.bind(mergerObservable);
62
+ mergerObservable.unsubscribe = () => {
63
+ subscriptions.forEach((subscription) => subscription.unsubscribe());
64
+ originalUnsubscribeAll();
65
+ };
66
+ return mergerObservable;
67
+ }
68
+ withUnsubscribeOverride(observable, resultUnsubscribeFn, internalSubscriber) {
69
+ observable.unsubscribe = (subscriber) => {
70
+ resultUnsubscribeFn(subscriber);
71
+ this.unsubscribe(internalSubscriber);
72
+ };
73
+ return observable;
51
74
  }
52
- /**
53
- * Unsubscribes all subscribers by clearing the subscribers array.
54
- *
55
- * @remarks
56
- * This method sets the `subscribers` array to an empty array, effectively removing all current subscribers.
57
- */
58
75
  unsubscribeAll() {
59
76
  this.subscribers = [];
60
77
  }
61
- unsubscribe(callback) {
62
- this.subscribers = this.subscribers.filter((sub) => sub !== callback);
63
- }
64
- }
65
- /**
66
- * Merges multiple observables into a single observable.
67
- *
68
- * @template T - The type of the values emitted by the observables.
69
- * @param {...Observable[]} observables - The observables to merge.
70
- * @returns {Observable} A new observable that emits values from all input observables.
71
- */
72
- export function merge(...observables) {
73
- const mainObservable = new Observable();
74
- const subscriptions = [];
75
- observables.forEach((observable) => {
76
- const subscription = observable.subscribe((value) => {
77
- mainObservable.notify(value);
78
- });
79
- subscriptions.push(subscription);
80
- });
81
- return {
82
- subscribe: mainObservable.subscribe.bind(mainObservable),
83
- takeWhile: mainObservable.takeWhile.bind(mainObservable),
84
- first: mainObservable.first.bind(mainObservable),
85
- notify: mainObservable.notify.bind(mainObservable),
86
- unsubscribeAll: () => {
87
- observables.forEach((observable) => {
88
- observable.unsubscribeAll();
89
- });
90
- },
91
- };
92
78
  }
93
79
  //# sourceMappingURL=reactive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reactive.js","sourceRoot":"","sources":["../../../src/utils/reactive.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,UAAU;IAGrB;QACE,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,QAA2B;QACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEhC,OAAO;YACL,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;SAC9C,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,IAAO;QACZ,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAA2B;QAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3C,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,YAAY,CAAC,WAAW,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,SAAgC;QACxC,MAAM,MAAM,GAAG,IAAI,UAAU,EAAK,CAAC;QACnC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,KAAQ,EAAE,EAAE;YAC/C,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;gBACpB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACtB;iBAAM;gBACL,YAAY,CAAC,WAAW,EAAE,CAAC;aAC5B;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,cAAc;QACZ,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAEO,WAAW,CAAC,QAA6B;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;IACxE,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,UAAU,KAAK,CAAI,GAAG,WAAiC;IAC3D,MAAM,cAAc,GAAG,IAAI,UAAU,EAAK,CAAC;IAC3C,MAAM,aAAa,GAAmB,EAAE,CAAC;IAEzC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QACjC,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,KAAQ,EAAE,EAAE;YACrD,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,SAAS,EAAE,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;QACxD,SAAS,EAAE,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;QACxD,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;QAChD,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QAClD,cAAc,EAAE,GAAG,EAAE;YACnB,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;gBACjC,UAAU,CAAC,cAAc,EAAE,CAAC;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC;KACe,CAAC;AACrB,CAAC","sourcesContent":["export interface Subscription {\n unsubscribe: () => void;\n}\n\nexport class Observable<T = any> {\n private subscribers: Array<(data: T) => void>;\n\n constructor() {\n this.subscribers = [];\n }\n\n /**\n * Subscribes a callback function to the observable.\n * @param callback - The function to call when the observable emits a value.\n * @returns A subscription object with an unsubscribe method to cancel the subscription.\n */\n subscribe(callback: (data: T) => void): Subscription {\n this.subscribers.push(callback);\n\n return {\n unsubscribe: () => this.unsubscribe(callback),\n };\n }\n\n /**\n * Notifies all subscribers with the given data.\n * @param data - The data to emit to all subscribers.\n */\n notify(data: T): void {\n this.subscribers.forEach((callback) => callback(data));\n }\n\n /**\n * Subscribes a callback function to the observable and automatically unsubscribes after the first emission.\n * @param callback - The function to call when the observable emits a value.\n * @returns A subscription object with an unsubscribe method to cancel the subscription.\n */\n first(callback: (data: T) => void): Subscription {\n const subscription = this.subscribe((data) => {\n callback(data);\n subscription.unsubscribe();\n });\n\n return subscription;\n }\n\n /**\n * Emits values from the source observable until the provided predicate function returns false.\n * @param predicate - A function that evaluates each value emitted by the source observable.\n * @returns A new observable that emits values from the source observable while the predicate returns true.\n */\n takeWhile(predicate: (value: T) => boolean): Observable<T> {\n const result = new Observable<T>();\n const subscription = this.subscribe((value: T) => {\n if (predicate(value)) {\n result.notify(value);\n } else {\n subscription.unsubscribe();\n }\n });\n\n return result;\n }\n\n /**\n * Unsubscribes all subscribers by clearing the subscribers array.\n *\n * @remarks\n * This method sets the `subscribers` array to an empty array, effectively removing all current subscribers.\n */\n unsubscribeAll(): void {\n this.subscribers = [];\n }\n\n private unsubscribe(callback: (data: any) => void): void {\n this.subscribers = this.subscribers.filter((sub) => sub !== callback);\n }\n}\n\n/**\n * Merges multiple observables into a single observable.\n *\n * @template T - The type of the values emitted by the observables.\n * @param {...Observable[]} observables - The observables to merge.\n * @returns {Observable} A new observable that emits values from all input observables.\n */\nexport function merge<T>(...observables: Array<Observable<T>>): Observable<T> {\n const mainObservable = new Observable<T>();\n const subscriptions: Subscription[] = [];\n\n observables.forEach((observable) => {\n const subscription = observable.subscribe((value: T) => {\n mainObservable.notify(value);\n });\n subscriptions.push(subscription);\n });\n\n return {\n subscribe: mainObservable.subscribe.bind(mainObservable),\n takeWhile: mainObservable.takeWhile.bind(mainObservable),\n first: mainObservable.first.bind(mainObservable),\n notify: mainObservable.notify.bind(mainObservable),\n unsubscribeAll: () => {\n observables.forEach((observable) => {\n observable.unsubscribeAll();\n });\n },\n } as Observable<T>;\n}\n"]}
1
+ {"version":3,"file":"reactive.js","sourceRoot":"","sources":["../../../src/utils/reactive.ts"],"names":[],"mappings":"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","sourcesContent":["export type Subscription = {\n unsubscribe: () => void;\n};\n\ntype Subscriber<T> = (value: T) => void;\n\nexport class Observable<T = any> {\n private subscribers: Array<Subscriber<T>> = [];\n\n subscribe(subscriber: Subscriber<T>): Subscription {\n this.subscribers.push(subscriber);\n return {\n unsubscribe: () => this.unsubscribe(subscriber),\n };\n }\n\n unsubscribe(subscriber: Subscriber<T>): void {\n this.subscribers = this.subscribers.filter((sub) => sub !== subscriber);\n }\n\n notify(value: T): void {\n this.subscribers.forEach((subscriber) => subscriber(value));\n }\n\n first(): Observable<T> {\n const result = new Observable<T>();\n\n const internalSubscriber = (data: T): void => {\n result.notify(data);\n subscription.unsubscribe();\n };\n const subscription = this.subscribe(internalSubscriber);\n const resultUnsubscribeFn = result.unsubscribe.bind(result);\n return this.withUnsubscribeOverride(result, resultUnsubscribeFn, internalSubscriber);\n }\n\n takeWhile(predicate: (value: T) => boolean): Observable<T> {\n const result = new Observable<T>();\n const internalSubscriber = (value: T): void => {\n if (predicate(value)) {\n result.notify(value);\n } else {\n result.unsubscribe(internalSubscriber);\n }\n };\n this.subscribe(internalSubscriber);\n const resultUnsubscribeFn = result.unsubscribe.bind(result);\n return this.withUnsubscribeOverride(result, resultUnsubscribeFn, internalSubscriber);\n }\n\n filter(predicate: (value: T) => boolean): Observable<T> {\n const result = new Observable<T>();\n\n const internalSubscriber = (value: T): void => {\n if (predicate(value)) {\n result.notify(value);\n }\n };\n this.subscribe(internalSubscriber);\n\n const resultUnsubscribeFn = result.unsubscribe.bind(result);\n return this.withUnsubscribeOverride(result, resultUnsubscribeFn, internalSubscriber);\n }\n\n merge(...observables: Array<Observable<T>>): Observable<T> {\n const mergerObservable = new Observable<T>();\n const subscriptions: Subscription[] = [];\n\n observables.forEach((observable) => {\n const subscription = observable.subscribe((value: T) => {\n mergerObservable.notify(value);\n });\n\n subscriptions.push(subscription);\n });\n\n const originalUnsubscribeAll = mergerObservable.unsubscribeAll.bind(mergerObservable);\n\n mergerObservable.unsubscribe = () => {\n subscriptions.forEach((subscription) => subscription.unsubscribe());\n originalUnsubscribeAll();\n };\n\n return mergerObservable;\n }\n\n private withUnsubscribeOverride(\n observable: Observable<T>,\n resultUnsubscribeFn: (subscriber: Subscriber<T>) => void,\n internalSubscriber: Subscriber<T>\n ) {\n observable.unsubscribe = (subscriber: Subscriber<T>) => {\n resultUnsubscribeFn(subscriber);\n this.unsubscribe(internalSubscriber);\n };\n\n return observable;\n }\n\n private unsubscribeAll(): void {\n this.subscribers = [];\n }\n}\n"]}
@@ -1,3 +1,3 @@
1
1
  // auto-generated by bin/genVersion.ts
2
- export const VERSION = '1.14.3';
2
+ export const VERSION = '1.15.0';
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC","sourcesContent":["// auto-generated by bin/genVersion.ts\nexport const VERSION = '1.14.3';\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC","sourcesContent":["// auto-generated by bin/genVersion.ts\nexport const VERSION = '1.15.0';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ItemBuffer.js","sourceRoot":"","sources":["../../../../../src/api/ItemBuffer.ts"],"names":[],"mappings":";;;AAAA,kCAAyC;AAEzC;IAGE;QACE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,4BAAO,GAAP,UAAQ,IAAO;QACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,gCAAW,GAAX,UAAY,EAAsB;QAChC,IAAI,IAAA,eAAU,EAAC,EAAE,CAAC,EAAE;YAClB,KAAmB,UAAW,EAAX,KAAA,IAAI,CAAC,MAAM,EAAX,cAAW,EAAX,IAAW,EAAE;gBAA3B,IAAM,IAAI,SAAA;gBACb,EAAE,CAAC,IAAI,CAAC,CAAC;aACV;SACF;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,yBAAI,GAAJ;QACE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IACH,iBAAC;AAAD,CAAC,AAxBD,IAwBC;AAxBY,gCAAU","sourcesContent":["import { isFunction } from '../utils/is';\n\nexport class ItemBuffer<T> {\n private buffer: T[];\n\n constructor() {\n this.buffer = [];\n }\n\n addItem(item: T) {\n this.buffer.push(item);\n }\n\n flushBuffer(cb?: (item: T) => void) {\n if (isFunction(cb)) {\n for (const item of this.buffer) {\n cb(item);\n }\n }\n\n this.buffer.length = 0;\n }\n\n size() {\n return this.buffer.length;\n }\n}\n"]}
1
+ {"version":3,"file":"ItemBuffer.js","sourceRoot":"","sources":["../../../../../src/api/ItemBuffer.ts"],"names":[],"mappings":";;;AAAA,kCAAyC;AAEzC;IAGE;QACE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,4BAAO,GAAP,UAAQ,IAAO;QACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,gCAAW,GAAX,UAAY,EAAsB;QAChC,IAAI,IAAA,eAAU,EAAC,EAAE,CAAC,EAAE,CAAC;YACnB,KAAmB,UAAW,EAAX,KAAA,IAAI,CAAC,MAAM,EAAX,cAAW,EAAX,IAAW,EAAE,CAAC;gBAA5B,IAAM,IAAI,SAAA;gBACb,EAAE,CAAC,IAAI,CAAC,CAAC;YACX,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,yBAAI,GAAJ;QACE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IACH,iBAAC;AAAD,CAAC,AAxBD,IAwBC;AAxBY,gCAAU","sourcesContent":["import { isFunction } from '../utils/is';\n\nexport class ItemBuffer<T> {\n private buffer: T[];\n\n constructor() {\n this.buffer = [];\n }\n\n addItem(item: T) {\n this.buffer.push(item);\n }\n\n flushBuffer(cb?: (item: T) => void) {\n if (isFunction(cb)) {\n for (const item of this.buffer) {\n cb(item);\n }\n }\n\n this.buffer.length = 0;\n }\n\n size() {\n return this.buffer.length;\n }\n}\n"]}
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.USER_ACTION_CANCEL_MESSAGE_TYPE = exports.USER_ACTION_END_MESSAGE_TYPE = exports.USER_ACTION_START_MESSAGE_TYPE = void 0;
4
- exports.USER_ACTION_START_MESSAGE_TYPE = 'user-action-start';
5
- exports.USER_ACTION_END_MESSAGE_TYPE = 'user-action-end';
6
- exports.USER_ACTION_CANCEL_MESSAGE_TYPE = 'user-action-cancel';
3
+ exports.USER_ACTION_HALT = exports.USER_ACTION_CANCEL = exports.USER_ACTION_END = exports.USER_ACTION_START = void 0;
4
+ exports.USER_ACTION_START = 'user-action-start';
5
+ exports.USER_ACTION_END = 'user-action-end';
6
+ exports.USER_ACTION_CANCEL = 'user-action-cancel';
7
+ exports.USER_ACTION_HALT = 'user-action-halt';
7
8
  //# sourceMappingURL=const.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../../src/api/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,8BAA8B,GAAG,mBAAmB,CAAC;AACrD,QAAA,4BAA4B,GAAG,iBAAiB,CAAC;AACjD,QAAA,+BAA+B,GAAG,oBAAoB,CAAC","sourcesContent":["export const USER_ACTION_START_MESSAGE_TYPE = 'user-action-start';\nexport const USER_ACTION_END_MESSAGE_TYPE = 'user-action-end';\nexport const USER_ACTION_CANCEL_MESSAGE_TYPE = 'user-action-cancel';\n"]}
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../../src/api/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AACxC,QAAA,eAAe,GAAG,iBAAiB,CAAC;AACpC,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;AAC1C,QAAA,gBAAgB,GAAG,kBAAkB,CAAC","sourcesContent":["export const USER_ACTION_START = 'user-action-start';\nexport const USER_ACTION_END = 'user-action-end';\nexport const USER_ACTION_CANCEL = 'user-action-cancel';\nexport const USER_ACTION_HALT = 'user-action-halt';\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.initializeEventsAPI = void 0;
3
+ exports.initializeEventsAPI = initializeEventsAPI;
4
4
  var transports_1 = require("../../transports");
5
5
  var utils_1 = require("../../utils");
6
6
  var date_1 = require("../../utils/date");
@@ -40,7 +40,7 @@ function initializeEventsAPI(_a) {
40
40
  lastPayload = testingPayload;
41
41
  internalLogger.debug('Pushing event\n', item);
42
42
  var msg = getMessage();
43
- if (msg && msg.type === const_1.USER_ACTION_START_MESSAGE_TYPE) {
43
+ if (msg && msg.type === const_1.USER_ACTION_START) {
44
44
  actionBuffer.addItem(item);
45
45
  }
46
46
  else {
@@ -55,5 +55,4 @@ function initializeEventsAPI(_a) {
55
55
  pushEvent: pushEvent,
56
56
  };
57
57
  }
58
- exports.initializeEventsAPI = initializeEventsAPI;
59
58
  //# sourceMappingURL=initialize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../../../../../src/api/events/initialize.ts"],"names":[],"mappings":";;;AAGA,+CAAqD;AAGrD,qCAAqG;AACrG,yCAAwD;AACxD,kCAA0D;AAO1D,SAAgB,mBAAmB,CAAC,EAiBnC;QAhBC,cAAc,oBAAA,EACd,MAAM,YAAA,EACN,KAAK,WAAA,EACL,UAAU,gBAAA,EACV,SAAS,eAAA,EACT,YAAY,kBAAA,EACZ,UAAU,gBAAA;IAWV,IAAI,WAAW,GAA8D,IAAI,CAAC;IAElF,IAAM,SAAS,GAA2B,UACxC,IAAI,EACJ,UAAU,EACV,MAAM,EACN,EAAmH;YAAnH,qBAAiH,EAAE,KAAA,EAAjH,UAAU,gBAAA,EAAE,WAAW,iBAAA,EAAE,oBAAoB,0BAAA,EAAE,gCAA2D,EAA3D,wBAAwB,mBAAG,UAAC,OAAmB,IAAK,OAAA,OAAO,EAAP,CAAO,KAAA;QAE5G,IAAI;YACF,IAAM,KAAK,GAAG,IAAA,6BAAqB,EAAC,UAAU,CAAC,CAAC;YAEhD,IAAM,IAAI,GAA8B;gBACtC,IAAI,EAAE,KAAK,CAAC,KAAK;gBACjB,OAAO,EAAE,wBAAwB,CAAC;oBAChC,IAAI,MAAA;oBACJ,MAAM,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,MAAM,CAAC,WAAW;oBACpC,UAAU,EAAE,IAAA,eAAO,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;oBAC9C,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC,IAAA,2BAAoB,EAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAA,2BAAmB,GAAE;oBACpG,KAAK,EAAE,WAAW;wBAChB,CAAC,CAAC;4BACE,QAAQ,EAAE,WAAW,CAAC,OAAO;4BAC7B,OAAO,EAAE,WAAW,CAAC,MAAM;yBAC5B;wBACH,CAAC,CAAC,SAAS,CAAC,eAAe,EAAE;iBAChC,CAAC;gBACF,IAAI,EAAE,8BAAiB,CAAC,KAAK;aAC9B,CAAC;YAEF,IAAM,cAAc,GAAG;gBACrB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;gBACvB,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;gBACnC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;aAC5B,CAAC;YAEF,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAA,cAAM,EAAC,WAAW,CAAC,IAAI,IAAA,iBAAS,EAAC,cAAc,EAAE,WAAW,CAAC,EAAE;gBAClG,cAAc,CAAC,KAAK,CAAC,8DAA8D,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAEnG,OAAO;aACR;YAED,WAAW,GAAG,cAAc,CAAC;YAE7B,cAAc,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;YAE9C,IAAM,GAAG,GAAG,UAAU,EAAE,CAAC;YACzB,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,sCAA8B,EAAE;gBACtD,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aAC5B;iBAAM;gBACL,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aAC1B;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,cAAc,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;SAClD;IACH,CAAC,CAAC;IAEF,OAAO;QACL,SAAS,WAAA;KACV,CAAC;AACJ,CAAC;AA5ED,kDA4EC","sourcesContent":["import type { Config } from '../../config';\nimport type { InternalLogger } from '../../internalLogger';\nimport type { Metas } from '../../metas';\nimport { TransportItemType } from '../../transports';\nimport type { TransportItem, Transports } from '../../transports';\nimport type { UnpatchedConsole } from '../../unpatchedConsole';\nimport { deepEqual, getCurrentTimestamp, isEmpty, isNull, stringifyObjectValues } from '../../utils';\nimport { timestampToIsoString } from '../../utils/date';\nimport { USER_ACTION_START_MESSAGE_TYPE } from '../const';\nimport type { ItemBuffer } from '../ItemBuffer';\nimport type { TracesAPI } from '../traces';\nimport type { ApiMessageBusMessages } from '../types';\n\nimport type { EventEvent, EventsAPI } from './types';\n\nexport function initializeEventsAPI({\n internalLogger,\n config,\n metas,\n transports,\n tracesApi,\n actionBuffer,\n getMessage,\n}: {\n unpatchedConsole: UnpatchedConsole;\n internalLogger: InternalLogger;\n config: Config;\n metas: Metas;\n transports: Transports;\n tracesApi: TracesAPI;\n actionBuffer: ItemBuffer<TransportItem>;\n getMessage: () => ApiMessageBusMessages | undefined;\n}): EventsAPI {\n let lastPayload: Pick<EventEvent, 'name' | 'domain' | 'attributes'> | null = null;\n\n const pushEvent: EventsAPI['pushEvent'] = (\n name,\n attributes,\n domain,\n { skipDedupe, spanContext, timestampOverwriteMs, customPayloadTransformer = (payload: EventEvent) => payload } = {}\n ) => {\n try {\n const attrs = stringifyObjectValues(attributes);\n\n const item: TransportItem<EventEvent> = {\n meta: metas.value,\n payload: customPayloadTransformer({\n name,\n domain: domain ?? config.eventDomain,\n attributes: isEmpty(attrs) ? undefined : attrs,\n timestamp: timestampOverwriteMs ? timestampToIsoString(timestampOverwriteMs) : getCurrentTimestamp(),\n trace: spanContext\n ? {\n trace_id: spanContext.traceId,\n span_id: spanContext.spanId,\n }\n : tracesApi.getTraceContext(),\n }),\n type: TransportItemType.EVENT,\n };\n\n const testingPayload = {\n name: item.payload.name,\n attributes: item.payload.attributes,\n domain: item.payload.domain,\n };\n\n if (!skipDedupe && config.dedupe && !isNull(lastPayload) && deepEqual(testingPayload, lastPayload)) {\n internalLogger.debug('Skipping event push because it is the same as the last one\\n', item.payload);\n\n return;\n }\n\n lastPayload = testingPayload;\n\n internalLogger.debug('Pushing event\\n', item);\n\n const msg = getMessage();\n if (msg && msg.type === USER_ACTION_START_MESSAGE_TYPE) {\n actionBuffer.addItem(item);\n } else {\n transports.execute(item);\n }\n } catch (err) {\n internalLogger.error('Error pushing event', err);\n }\n };\n\n return {\n pushEvent,\n };\n}\n"]}
1
+ {"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../../../../../src/api/events/initialize.ts"],"names":[],"mappings":";;AAeA,kDA4EC;AAxFD,+CAAqD;AAGrD,qCAAqG;AACrG,yCAAwD;AACxD,kCAA6C;AAO7C,SAAgB,mBAAmB,CAAC,EAiBnC;QAhBC,cAAc,oBAAA,EACd,MAAM,YAAA,EACN,KAAK,WAAA,EACL,UAAU,gBAAA,EACV,SAAS,eAAA,EACT,YAAY,kBAAA,EACZ,UAAU,gBAAA;IAWV,IAAI,WAAW,GAA8D,IAAI,CAAC;IAElF,IAAM,SAAS,GAA2B,UACxC,IAAI,EACJ,UAAU,EACV,MAAM,EACN,EAAmH;YAAnH,qBAAiH,EAAE,KAAA,EAAjH,UAAU,gBAAA,EAAE,WAAW,iBAAA,EAAE,oBAAoB,0BAAA,EAAE,gCAA2D,EAA3D,wBAAwB,mBAAG,UAAC,OAAmB,IAAK,OAAA,OAAO,EAAP,CAAO,KAAA;QAE5G,IAAI,CAAC;YACH,IAAM,KAAK,GAAG,IAAA,6BAAqB,EAAC,UAAU,CAAC,CAAC;YAEhD,IAAM,IAAI,GAA8B;gBACtC,IAAI,EAAE,KAAK,CAAC,KAAK;gBACjB,OAAO,EAAE,wBAAwB,CAAC;oBAChC,IAAI,MAAA;oBACJ,MAAM,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,MAAM,CAAC,WAAW;oBACpC,UAAU,EAAE,IAAA,eAAO,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;oBAC9C,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC,IAAA,2BAAoB,EAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAA,2BAAmB,GAAE;oBACpG,KAAK,EAAE,WAAW;wBAChB,CAAC,CAAC;4BACE,QAAQ,EAAE,WAAW,CAAC,OAAO;4BAC7B,OAAO,EAAE,WAAW,CAAC,MAAM;yBAC5B;wBACH,CAAC,CAAC,SAAS,CAAC,eAAe,EAAE;iBAChC,CAAC;gBACF,IAAI,EAAE,8BAAiB,CAAC,KAAK;aAC9B,CAAC;YAEF,IAAM,cAAc,GAAG;gBACrB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;gBACvB,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;gBACnC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;aAC5B,CAAC;YAEF,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAA,cAAM,EAAC,WAAW,CAAC,IAAI,IAAA,iBAAS,EAAC,cAAc,EAAE,WAAW,CAAC,EAAE,CAAC;gBACnG,cAAc,CAAC,KAAK,CAAC,8DAA8D,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAEnG,OAAO;YACT,CAAC;YAED,WAAW,GAAG,cAAc,CAAC;YAE7B,cAAc,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;YAE9C,IAAM,GAAG,GAAG,UAAU,EAAE,CAAC;YACzB,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,yBAAiB,EAAE,CAAC;gBAC1C,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,cAAc,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,SAAS,WAAA;KACV,CAAC;AACJ,CAAC","sourcesContent":["import type { Config } from '../../config';\nimport type { InternalLogger } from '../../internalLogger';\nimport type { Metas } from '../../metas';\nimport { TransportItemType } from '../../transports';\nimport type { TransportItem, Transports } from '../../transports';\nimport type { UnpatchedConsole } from '../../unpatchedConsole';\nimport { deepEqual, getCurrentTimestamp, isEmpty, isNull, stringifyObjectValues } from '../../utils';\nimport { timestampToIsoString } from '../../utils/date';\nimport { USER_ACTION_START } from '../const';\nimport type { ItemBuffer } from '../ItemBuffer';\nimport type { TracesAPI } from '../traces';\nimport type { ApiMessageBusMessages } from '../types';\n\nimport type { EventEvent, EventsAPI } from './types';\n\nexport function initializeEventsAPI({\n internalLogger,\n config,\n metas,\n transports,\n tracesApi,\n actionBuffer,\n getMessage,\n}: {\n unpatchedConsole: UnpatchedConsole;\n internalLogger: InternalLogger;\n config: Config;\n metas: Metas;\n transports: Transports;\n tracesApi: TracesAPI;\n actionBuffer: ItemBuffer<TransportItem>;\n getMessage: () => ApiMessageBusMessages | undefined;\n}): EventsAPI {\n let lastPayload: Pick<EventEvent, 'name' | 'domain' | 'attributes'> | null = null;\n\n const pushEvent: EventsAPI['pushEvent'] = (\n name,\n attributes,\n domain,\n { skipDedupe, spanContext, timestampOverwriteMs, customPayloadTransformer = (payload: EventEvent) => payload } = {}\n ) => {\n try {\n const attrs = stringifyObjectValues(attributes);\n\n const item: TransportItem<EventEvent> = {\n meta: metas.value,\n payload: customPayloadTransformer({\n name,\n domain: domain ?? config.eventDomain,\n attributes: isEmpty(attrs) ? undefined : attrs,\n timestamp: timestampOverwriteMs ? timestampToIsoString(timestampOverwriteMs) : getCurrentTimestamp(),\n trace: spanContext\n ? {\n trace_id: spanContext.traceId,\n span_id: spanContext.spanId,\n }\n : tracesApi.getTraceContext(),\n }),\n type: TransportItemType.EVENT,\n };\n\n const testingPayload = {\n name: item.payload.name,\n attributes: item.payload.attributes,\n domain: item.payload.domain,\n };\n\n if (!skipDedupe && config.dedupe && !isNull(lastPayload) && deepEqual(testingPayload, lastPayload)) {\n internalLogger.debug('Skipping event push because it is the same as the last one\\n', item.payload);\n\n return;\n }\n\n lastPayload = testingPayload;\n\n internalLogger.debug('Pushing event\\n', item);\n\n const msg = getMessage();\n if (msg && msg.type === USER_ACTION_START) {\n actionBuffer.addItem(item);\n } else {\n transports.execute(item);\n }\n } catch (err) {\n internalLogger.error('Error pushing event', err);\n }\n };\n\n return {\n pushEvent,\n };\n}\n"]}
@@ -151,7 +151,7 @@ describe('api.events', function () {
151
151
  var message;
152
152
  var getMessage = function () { return message; };
153
153
  message = {
154
- type: const_1.USER_ACTION_START_MESSAGE_TYPE,
154
+ type: const_1.USER_ACTION_START,
155
155
  name: 'testAction',
156
156
  startTime: Date.now(),
157
157
  parentId: 'parent-id',
@@ -169,7 +169,7 @@ describe('api.events', function () {
169
169
  api.pushEvent('test');
170
170
  expect(actionBuffer.size()).toBe(1);
171
171
  message = {
172
- type: const_1.USER_ACTION_END_MESSAGE_TYPE,
172
+ type: const_1.USER_ACTION_END,
173
173
  name: 'testAction',
174
174
  id: 'parent-id',
175
175
  startTime: (0, utils_1.dateNow)(),
@@ -180,7 +180,7 @@ describe('api.events', function () {
180
180
  api.pushEvent('test-2');
181
181
  expect(actionBuffer.size()).toBe(1);
182
182
  message = {
183
- type: const_1.USER_ACTION_CANCEL_MESSAGE_TYPE,
183
+ type: const_1.USER_ACTION_CANCEL,
184
184
  name: 'testAction',
185
185
  parentId: 'parent-id',
186
186
  };
@@ -1 +1 @@
1
- {"version":3,"file":"initialize.test.js","sourceRoot":"","sources":["../../../../../../src/api/events/initialize.test.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TransportItem } from '../..';\nimport { initializeFaro } from '../../initialize';\nimport { mockConfig, mockInternalLogger, MockTransport } from '../../testUtils';\nimport { dateNow } from '../../utils';\nimport { mockMetas, mockTracesApi, mockTransports } from '../apiTestHelpers';\nimport {\n USER_ACTION_CANCEL_MESSAGE_TYPE,\n USER_ACTION_END_MESSAGE_TYPE,\n USER_ACTION_START_MESSAGE_TYPE,\n} from '../const';\nimport { ItemBuffer } from '../ItemBuffer';\nimport type { API, APIEvent, ApiMessageBusMessages } from '../types';\n\nimport { initializeEventsAPI } from './initialize';\nimport type { EventEvent, PushEventOptions } from './types';\n\ndescribe('api.events', () => {\n function createAPI({ dedupe }: { dedupe: boolean } = { dedupe: true }): [API, MockTransport] {\n const transport = new MockTransport();\n const config = mockConfig({\n dedupe,\n transports: [transport],\n });\n\n const { api } = initializeFaro(config);\n\n return [api, transport];\n }\n\n describe('pushEvent', () => {\n let api: API;\n let transport: MockTransport;\n\n beforeEach(() => {\n [api, transport] = createAPI();\n });\n\n describe('Filtering', () => {\n it('filters the same event', () => {\n api.pushEvent('test', {\n a: '1',\n });\n expect(transport.items).toHaveLength(1);\n\n api.pushEvent('test', {\n a: '1',\n });\n expect(transport.items).toHaveLength(1);\n });\n\n it(\"doesn't filter events with same name and partially same values\", () => {\n api.pushEvent('test', {\n a: '1',\n });\n expect(transport.items).toHaveLength(1);\n\n api.pushEvent('test', {\n a: '1',\n b: '2',\n });\n expect(transport.items).toHaveLength(2);\n });\n\n it(\"doesn't filter events with different name and same values\", () => {\n api.pushEvent('test1', {\n a: '1',\n });\n expect(transport.items).toHaveLength(1);\n\n api.pushEvent('test2', {\n a: '1',\n });\n expect(transport.items).toHaveLength(2);\n });\n\n it(\"filters an event and doesn't filter the next different one\", () => {\n api.pushEvent('test1', {\n a: '1',\n });\n expect(transport.items).toHaveLength(1);\n\n api.pushEvent('test1', {\n a: '1',\n });\n expect(transport.items).toHaveLength(1);\n\n api.pushEvent('test2', {\n b: '1',\n });\n expect(transport.items).toHaveLength(2);\n });\n\n it(\"doesn't filter when dedupe is false\", () => {\n [api, transport] = createAPI({ dedupe: false });\n\n api.pushEvent('test');\n expect(transport.items).toHaveLength(1);\n\n api.pushEvent('test');\n expect(transport.items).toHaveLength(2);\n });\n\n it(\"doesn't filter when skipDedupe is true\", () => {\n api.pushEvent('test');\n expect(transport.items).toHaveLength(1);\n\n api.pushEvent('test', {}, undefined, { skipDedupe: true });\n expect(transport.items).toHaveLength(2);\n });\n\n it('uses traceId and spanId from custom context', () => {\n const spanContext: PushEventOptions['spanContext'] = {\n traceId: 'my-trace-id',\n spanId: 'my-span-id',\n };\n\n const mockGetTraceContext = jest.fn();\n jest.spyOn(api, 'getTraceContext').mockImplementationOnce(mockGetTraceContext);\n\n api.pushEvent('test', undefined, undefined, { spanContext });\n\n expect(mockGetTraceContext).not.toHaveBeenCalled();\n expect((transport.items[0]?.payload as EventEvent).trace).toStrictEqual({\n trace_id: 'my-trace-id',\n span_id: 'my-span-id',\n });\n });\n\n it('Sets the timestamp to the provided custom timestamp', () => {\n api.pushEvent('test', undefined, undefined, { timestampOverwriteMs: 123 });\n expect(transport.items).toHaveLength(1);\n expect((transport.items[0]?.payload as EventEvent).timestamp).toBe('1970-01-01T00:00:00.123Z');\n });\n\n it('stringifies all values in the attributes object', () => {\n api.pushEvent('test', {\n // @ts-expect-error\n a: 1,\n b: 'foo',\n // @ts-expect-error\n c: true,\n // @ts-expect-error\n d: { e: 'bar' },\n // @ts-expect-error\n g: null,\n // @ts-expect-error\n h: undefined,\n // @ts-expect-error\n i: [1, 2, 3],\n });\n\n // @ts-expect-error\n expect(transport.items[0]?.payload.attributes).toStrictEqual({\n a: '1',\n b: 'foo',\n c: 'true',\n d: '{\"e\":\"bar\"}',\n g: 'null',\n h: 'undefined',\n i: '[1,2,3]',\n });\n });\n\n it('does not stringify empty attributes', () => {\n api.pushEvent('test');\n api.pushEvent('test2', {});\n expect(transport.items).toHaveLength(2);\n expect((transport.items[0] as TransportItem<EventEvent>).payload.attributes).toBeUndefined();\n expect((transport.items[0] as TransportItem<EventEvent>).payload.attributes).toBeUndefined();\n });\n });\n });\n\n describe('User action', () => {\n it('buffers the error if a user action is in progress', () => {\n const internalLogger = mockInternalLogger;\n const config = mockConfig();\n\n const actionBuffer = new ItemBuffer<TransportItem<APIEvent>>();\n\n let message: ApiMessageBusMessages | undefined;\n\n const getMessage = () => message;\n\n message = {\n type: USER_ACTION_START_MESSAGE_TYPE,\n name: 'testAction',\n startTime: Date.now(),\n parentId: 'parent-id',\n };\n const api = initializeEventsAPI({\n unpatchedConsole: console,\n internalLogger,\n config,\n metas: mockMetas,\n transports: mockTransports,\n tracesApi: mockTracesApi,\n actionBuffer,\n getMessage,\n });\n\n api.pushEvent('test');\n expect(actionBuffer.size()).toBe(1);\n\n message = {\n type: USER_ACTION_END_MESSAGE_TYPE,\n name: 'testAction',\n id: 'parent-id',\n startTime: dateNow(),\n endTime: dateNow(),\n duration: 0,\n eventType: 'click',\n };\n\n api.pushEvent('test-2');\n expect(actionBuffer.size()).toBe(1);\n\n message = {\n type: USER_ACTION_CANCEL_MESSAGE_TYPE,\n name: 'testAction',\n parentId: 'parent-id',\n };\n\n api.pushEvent('test-3');\n expect(actionBuffer.size()).toBe(1);\n });\n });\n});\n"]}
1
+ {"version":3,"file":"initialize.test.js","sourceRoot":"","sources":["../../../../../../src/api/events/initialize.test.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TransportItem } from '../..';\nimport { initializeFaro } from '../../initialize';\nimport { mockConfig, mockInternalLogger, MockTransport } from '../../testUtils';\nimport { dateNow } from '../../utils';\nimport { mockMetas, mockTracesApi, mockTransports } from '../apiTestHelpers';\nimport { USER_ACTION_CANCEL, USER_ACTION_END, USER_ACTION_START } from '../const';\nimport { ItemBuffer } from '../ItemBuffer';\nimport type { API, APIEvent, ApiMessageBusMessages } from '../types';\n\nimport { initializeEventsAPI } from './initialize';\nimport type { EventEvent, PushEventOptions } from './types';\n\ndescribe('api.events', () => {\n function createAPI({ dedupe }: { dedupe: boolean } = { dedupe: true }): [API, MockTransport] {\n const transport = new MockTransport();\n const config = mockConfig({\n dedupe,\n transports: [transport],\n });\n\n const { api } = initializeFaro(config);\n\n return [api, transport];\n }\n\n describe('pushEvent', () => {\n let api: API;\n let transport: MockTransport;\n\n beforeEach(() => {\n [api, transport] = createAPI();\n });\n\n describe('Filtering', () => {\n it('filters the same event', () => {\n api.pushEvent('test', {\n a: '1',\n });\n expect(transport.items).toHaveLength(1);\n\n api.pushEvent('test', {\n a: '1',\n });\n expect(transport.items).toHaveLength(1);\n });\n\n it(\"doesn't filter events with same name and partially same values\", () => {\n api.pushEvent('test', {\n a: '1',\n });\n expect(transport.items).toHaveLength(1);\n\n api.pushEvent('test', {\n a: '1',\n b: '2',\n });\n expect(transport.items).toHaveLength(2);\n });\n\n it(\"doesn't filter events with different name and same values\", () => {\n api.pushEvent('test1', {\n a: '1',\n });\n expect(transport.items).toHaveLength(1);\n\n api.pushEvent('test2', {\n a: '1',\n });\n expect(transport.items).toHaveLength(2);\n });\n\n it(\"filters an event and doesn't filter the next different one\", () => {\n api.pushEvent('test1', {\n a: '1',\n });\n expect(transport.items).toHaveLength(1);\n\n api.pushEvent('test1', {\n a: '1',\n });\n expect(transport.items).toHaveLength(1);\n\n api.pushEvent('test2', {\n b: '1',\n });\n expect(transport.items).toHaveLength(2);\n });\n\n it(\"doesn't filter when dedupe is false\", () => {\n [api, transport] = createAPI({ dedupe: false });\n\n api.pushEvent('test');\n expect(transport.items).toHaveLength(1);\n\n api.pushEvent('test');\n expect(transport.items).toHaveLength(2);\n });\n\n it(\"doesn't filter when skipDedupe is true\", () => {\n api.pushEvent('test');\n expect(transport.items).toHaveLength(1);\n\n api.pushEvent('test', {}, undefined, { skipDedupe: true });\n expect(transport.items).toHaveLength(2);\n });\n\n it('uses traceId and spanId from custom context', () => {\n const spanContext: PushEventOptions['spanContext'] = {\n traceId: 'my-trace-id',\n spanId: 'my-span-id',\n };\n\n const mockGetTraceContext = jest.fn();\n jest.spyOn(api, 'getTraceContext').mockImplementationOnce(mockGetTraceContext);\n\n api.pushEvent('test', undefined, undefined, { spanContext });\n\n expect(mockGetTraceContext).not.toHaveBeenCalled();\n expect((transport.items[0]?.payload as EventEvent).trace).toStrictEqual({\n trace_id: 'my-trace-id',\n span_id: 'my-span-id',\n });\n });\n\n it('Sets the timestamp to the provided custom timestamp', () => {\n api.pushEvent('test', undefined, undefined, { timestampOverwriteMs: 123 });\n expect(transport.items).toHaveLength(1);\n expect((transport.items[0]?.payload as EventEvent).timestamp).toBe('1970-01-01T00:00:00.123Z');\n });\n\n it('stringifies all values in the attributes object', () => {\n api.pushEvent('test', {\n // @ts-expect-error\n a: 1,\n b: 'foo',\n // @ts-expect-error\n c: true,\n // @ts-expect-error\n d: { e: 'bar' },\n // @ts-expect-error\n g: null,\n // @ts-expect-error\n h: undefined,\n // @ts-expect-error\n i: [1, 2, 3],\n });\n\n // @ts-expect-error\n expect(transport.items[0]?.payload.attributes).toStrictEqual({\n a: '1',\n b: 'foo',\n c: 'true',\n d: '{\"e\":\"bar\"}',\n g: 'null',\n h: 'undefined',\n i: '[1,2,3]',\n });\n });\n\n it('does not stringify empty attributes', () => {\n api.pushEvent('test');\n api.pushEvent('test2', {});\n expect(transport.items).toHaveLength(2);\n expect((transport.items[0] as TransportItem<EventEvent>).payload.attributes).toBeUndefined();\n expect((transport.items[0] as TransportItem<EventEvent>).payload.attributes).toBeUndefined();\n });\n });\n });\n\n describe('User action', () => {\n it('buffers the error if a user action is in progress', () => {\n const internalLogger = mockInternalLogger;\n const config = mockConfig();\n\n const actionBuffer = new ItemBuffer<TransportItem<APIEvent>>();\n\n let message: ApiMessageBusMessages | undefined;\n\n const getMessage = () => message;\n\n message = {\n type: USER_ACTION_START,\n name: 'testAction',\n startTime: Date.now(),\n parentId: 'parent-id',\n };\n const api = initializeEventsAPI({\n unpatchedConsole: console,\n internalLogger,\n config,\n metas: mockMetas,\n transports: mockTransports,\n tracesApi: mockTracesApi,\n actionBuffer,\n getMessage,\n });\n\n api.pushEvent('test');\n expect(actionBuffer.size()).toBe(1);\n\n message = {\n type: USER_ACTION_END,\n name: 'testAction',\n id: 'parent-id',\n startTime: dateNow(),\n endTime: dateNow(),\n duration: 0,\n eventType: 'click',\n };\n\n api.pushEvent('test-2');\n expect(actionBuffer.size()).toBe(1);\n\n message = {\n type: USER_ACTION_CANCEL,\n name: 'testAction',\n parentId: 'parent-id',\n };\n\n api.pushEvent('test-3');\n expect(actionBuffer.size()).toBe(1);\n });\n });\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../../../src/api/exceptions/const.ts"],"names":[],"mappings":";;;AAAA,qCAA8D;AAEjD,QAAA,oBAAoB,GAAG,OAAO,CAAC;AAErC,IAAM,0BAA0B,GAAG,UAAC,IAAsB;IAC/D,OAAO,IAAI;SACR,GAAG,CAAC,UAAC,GAAG;QACP,IAAI,IAAA,gBAAQ,EAAC,GAAG,CAAC,EAAE;YACjB,OAAO,IAAA,6BAAqB,EAAC,GAAG,CAAC,CAAC;SACnC;QAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC,CAAC;AAVW,QAAA,0BAA0B,8BAUrC","sourcesContent":["import { isObject, stringifyExternalJson } from '../../utils';\n\nexport const defaultExceptionType = 'Error';\n\nexport const defaultErrorArgsSerializer = (args: [any?, ...any[]]) => {\n return args\n .map((arg) => {\n if (isObject(arg)) {\n return stringifyExternalJson(arg);\n }\n\n return String(arg);\n })\n .join(' ');\n};\n"]}
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../../../src/api/exceptions/const.ts"],"names":[],"mappings":";;;AAAA,qCAA8D;AAEjD,QAAA,oBAAoB,GAAG,OAAO,CAAC;AAErC,IAAM,0BAA0B,GAAG,UAAC,IAAsB;IAC/D,OAAO,IAAI;SACR,GAAG,CAAC,UAAC,GAAG;QACP,IAAI,IAAA,gBAAQ,EAAC,GAAG,CAAC,EAAE,CAAC;YAClB,OAAO,IAAA,6BAAqB,EAAC,GAAG,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC,CAAC;AAVW,QAAA,0BAA0B,8BAUrC","sourcesContent":["import { isObject, stringifyExternalJson } from '../../utils';\n\nexport const defaultExceptionType = 'Error';\n\nexport const defaultErrorArgsSerializer = (args: [any?, ...any[]]) => {\n return args\n .map((arg) => {\n if (isObject(arg)) {\n return stringifyExternalJson(arg);\n }\n\n return String(arg);\n })\n .join(' ');\n};\n"]}
@@ -11,7 +11,7 @@ var __assign = (this && this.__assign) || function () {
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.initializeExceptionsAPI = void 0;
14
+ exports.initializeExceptionsAPI = initializeExceptionsAPI;
15
15
  var transports_1 = require("../../transports");
16
16
  var utils_1 = require("../../utils");
17
17
  var date_1 = require("../../utils/date");
@@ -73,7 +73,7 @@ function initializeExceptionsAPI(_a) {
73
73
  lastPayload = testingPayload;
74
74
  internalLogger.debug('Pushing exception\n', item);
75
75
  var msg = getMessage();
76
- if (msg && msg.type === const_1.USER_ACTION_START_MESSAGE_TYPE) {
76
+ if (msg && msg.type === const_1.USER_ACTION_START) {
77
77
  actionBuffer.addItem(item);
78
78
  }
79
79
  else {
@@ -91,7 +91,6 @@ function initializeExceptionsAPI(_a) {
91
91
  pushError: pushError,
92
92
  };
93
93
  }
94
- exports.initializeExceptionsAPI = initializeExceptionsAPI;
95
94
  function parseCause(error) {
96
95
  var cause = error.cause;
97
96
  if ((0, utils_1.isError)(cause)) {
@@ -1 +1 @@
1
- {"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../../../../../src/api/exceptions/initialize.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Config, Patterns } from '../../config';\nimport type { InternalLogger } from '../../internalLogger';\nimport type { Metas } from '../../metas';\nimport { TransportItemType } from '../../transports';\nimport type { TransportItem, Transports } from '../../transports';\nimport type { UnpatchedConsole } from '../../unpatchedConsole';\nimport {\n deepEqual,\n getCurrentTimestamp,\n isArray,\n isEmpty,\n isError,\n isNull,\n isObject,\n stringifyExternalJson,\n stringifyObjectValues,\n} from '../../utils';\nimport { timestampToIsoString } from '../../utils/date';\nimport { USER_ACTION_START_MESSAGE_TYPE } from '../const';\nimport type { ItemBuffer } from '../ItemBuffer';\nimport type { TracesAPI } from '../traces';\nimport type { ApiMessageBusMessages } from '../types';\nimport { shouldIgnoreEvent } from '../utils';\n\nimport { defaultExceptionType } from './const';\nimport type { ErrorWithIndexProperties, ExceptionEvent, ExceptionsAPI, StacktraceParser } from './types';\n\nlet stacktraceParser: StacktraceParser | undefined;\n\nexport function initializeExceptionsAPI({\n internalLogger,\n config,\n metas,\n transports,\n tracesApi,\n actionBuffer,\n getMessage,\n}: {\n unpatchedConsole: UnpatchedConsole;\n internalLogger: InternalLogger;\n config: Config;\n metas: Metas;\n transports: Transports;\n tracesApi: TracesAPI;\n actionBuffer: ItemBuffer<TransportItem>;\n getMessage: () => ApiMessageBusMessages | undefined;\n}): ExceptionsAPI {\n internalLogger.debug('Initializing exceptions API');\n\n let lastPayload: Pick<ExceptionEvent, 'type' | 'value' | 'stacktrace' | 'context'> | null = null;\n\n stacktraceParser = config.parseStacktrace ?? stacktraceParser;\n\n const changeStacktraceParser: ExceptionsAPI['changeStacktraceParser'] = (newStacktraceParser) => {\n internalLogger.debug('Changing stacktrace parser');\n\n stacktraceParser = newStacktraceParser ?? stacktraceParser;\n };\n\n const getStacktraceParser: ExceptionsAPI['getStacktraceParser'] = () => stacktraceParser;\n\n const { ignoreErrors = [] } = config;\n\n const pushError: ExceptionsAPI['pushError'] = (\n error,\n { skipDedupe, stackFrames, type, context, spanContext, timestampOverwriteMs } = {}\n ) => {\n if (isErrorIgnored(ignoreErrors, error)) {\n return;\n }\n try {\n const ctx = stringifyObjectValues({\n ...parseCause(error),\n ...(context ?? {}),\n });\n\n const item: TransportItem<ExceptionEvent> = {\n meta: metas.value,\n payload: {\n type: type || error.name || defaultExceptionType,\n value: error.message,\n timestamp: timestampOverwriteMs ? timestampToIsoString(timestampOverwriteMs) : getCurrentTimestamp(),\n trace: spanContext\n ? {\n trace_id: spanContext.traceId,\n span_id: spanContext.spanId,\n }\n : tracesApi.getTraceContext(),\n context: isEmpty(ctx) ? undefined : ctx,\n },\n type: TransportItemType.EXCEPTION,\n };\n\n stackFrames = stackFrames ?? (error.stack ? stacktraceParser?.(error).frames : undefined);\n\n if (stackFrames?.length) {\n item.payload.stacktrace = {\n frames: stackFrames,\n };\n }\n\n const testingPayload = {\n type: item.payload.type,\n value: item.payload.value,\n stackTrace: item.payload.stacktrace,\n context: item.payload.context,\n };\n\n if (!skipDedupe && config.dedupe && !isNull(lastPayload) && deepEqual(testingPayload, lastPayload)) {\n internalLogger.debug('Skipping error push because it is the same as the last one\\n', item.payload);\n\n return;\n }\n\n lastPayload = testingPayload;\n\n internalLogger.debug('Pushing exception\\n', item);\n\n const msg = getMessage();\n if (msg && msg.type === USER_ACTION_START_MESSAGE_TYPE) {\n actionBuffer.addItem(item);\n } else {\n transports.execute(item);\n }\n } catch (err) {\n internalLogger.error('Error pushing event', err);\n }\n };\n\n changeStacktraceParser(config.parseStacktrace);\n\n return {\n changeStacktraceParser,\n getStacktraceParser,\n pushError,\n };\n}\n\nfunction parseCause(error: ErrorWithIndexProperties): {} | { cause: string } {\n let cause = error.cause;\n\n if (isError(cause)) {\n cause = error.cause.toString();\n // typeof operator on null returns \"object\". This is a well-known quirk in JavaScript and is considered a bug that cannot be fixed due to backward compatibility issues.\n // MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof#typeof_null\n } else if (cause !== null && (isObject(error.cause) || isArray(error.cause))) {\n cause = stringifyExternalJson(error.cause);\n } else if (cause != null) {\n cause = error.cause.toString();\n }\n\n return cause == null ? {} : { cause };\n}\n\nfunction isErrorIgnored(ignoreErrors: Patterns, error: ErrorWithIndexProperties): boolean {\n const { message, name, stack } = error;\n return shouldIgnoreEvent(ignoreErrors, message + ' ' + name + ' ' + stack);\n}\n"]}
1
+ {"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../../../../../src/api/exceptions/initialize.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Config, Patterns } from '../../config';\nimport type { InternalLogger } from '../../internalLogger';\nimport type { Metas } from '../../metas';\nimport { TransportItemType } from '../../transports';\nimport type { TransportItem, Transports } from '../../transports';\nimport type { UnpatchedConsole } from '../../unpatchedConsole';\nimport {\n deepEqual,\n getCurrentTimestamp,\n isArray,\n isEmpty,\n isError,\n isNull,\n isObject,\n stringifyExternalJson,\n stringifyObjectValues,\n} from '../../utils';\nimport { timestampToIsoString } from '../../utils/date';\nimport { USER_ACTION_START } from '../const';\nimport type { ItemBuffer } from '../ItemBuffer';\nimport type { TracesAPI } from '../traces';\nimport type { ApiMessageBusMessages } from '../types';\nimport { shouldIgnoreEvent } from '../utils';\n\nimport { defaultExceptionType } from './const';\nimport type { ErrorWithIndexProperties, ExceptionEvent, ExceptionsAPI, StacktraceParser } from './types';\n\nlet stacktraceParser: StacktraceParser | undefined;\n\nexport function initializeExceptionsAPI({\n internalLogger,\n config,\n metas,\n transports,\n tracesApi,\n actionBuffer,\n getMessage,\n}: {\n unpatchedConsole: UnpatchedConsole;\n internalLogger: InternalLogger;\n config: Config;\n metas: Metas;\n transports: Transports;\n tracesApi: TracesAPI;\n actionBuffer: ItemBuffer<TransportItem>;\n getMessage: () => ApiMessageBusMessages | undefined;\n}): ExceptionsAPI {\n internalLogger.debug('Initializing exceptions API');\n\n let lastPayload: Pick<ExceptionEvent, 'type' | 'value' | 'stacktrace' | 'context'> | null = null;\n\n stacktraceParser = config.parseStacktrace ?? stacktraceParser;\n\n const changeStacktraceParser: ExceptionsAPI['changeStacktraceParser'] = (newStacktraceParser) => {\n internalLogger.debug('Changing stacktrace parser');\n\n stacktraceParser = newStacktraceParser ?? stacktraceParser;\n };\n\n const getStacktraceParser: ExceptionsAPI['getStacktraceParser'] = () => stacktraceParser;\n\n const { ignoreErrors = [] } = config;\n\n const pushError: ExceptionsAPI['pushError'] = (\n error,\n { skipDedupe, stackFrames, type, context, spanContext, timestampOverwriteMs } = {}\n ) => {\n if (isErrorIgnored(ignoreErrors, error)) {\n return;\n }\n try {\n const ctx = stringifyObjectValues({\n ...parseCause(error),\n ...(context ?? {}),\n });\n\n const item: TransportItem<ExceptionEvent> = {\n meta: metas.value,\n payload: {\n type: type || error.name || defaultExceptionType,\n value: error.message,\n timestamp: timestampOverwriteMs ? timestampToIsoString(timestampOverwriteMs) : getCurrentTimestamp(),\n trace: spanContext\n ? {\n trace_id: spanContext.traceId,\n span_id: spanContext.spanId,\n }\n : tracesApi.getTraceContext(),\n context: isEmpty(ctx) ? undefined : ctx,\n },\n type: TransportItemType.EXCEPTION,\n };\n\n stackFrames = stackFrames ?? (error.stack ? stacktraceParser?.(error).frames : undefined);\n\n if (stackFrames?.length) {\n item.payload.stacktrace = {\n frames: stackFrames,\n };\n }\n\n const testingPayload = {\n type: item.payload.type,\n value: item.payload.value,\n stackTrace: item.payload.stacktrace,\n context: item.payload.context,\n };\n\n if (!skipDedupe && config.dedupe && !isNull(lastPayload) && deepEqual(testingPayload, lastPayload)) {\n internalLogger.debug('Skipping error push because it is the same as the last one\\n', item.payload);\n\n return;\n }\n\n lastPayload = testingPayload;\n\n internalLogger.debug('Pushing exception\\n', item);\n\n const msg = getMessage();\n if (msg && msg.type === USER_ACTION_START) {\n actionBuffer.addItem(item);\n } else {\n transports.execute(item);\n }\n } catch (err) {\n internalLogger.error('Error pushing event', err);\n }\n };\n\n changeStacktraceParser(config.parseStacktrace);\n\n return {\n changeStacktraceParser,\n getStacktraceParser,\n pushError,\n };\n}\n\nfunction parseCause(error: ErrorWithIndexProperties): {} | { cause: string } {\n let cause = error.cause;\n\n if (isError(cause)) {\n cause = error.cause.toString();\n // typeof operator on null returns \"object\". This is a well-known quirk in JavaScript and is considered a bug that cannot be fixed due to backward compatibility issues.\n // MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof#typeof_null\n } else if (cause !== null && (isObject(error.cause) || isArray(error.cause))) {\n cause = stringifyExternalJson(error.cause);\n } else if (cause != null) {\n cause = error.cause.toString();\n }\n\n return cause == null ? {} : { cause };\n}\n\nfunction isErrorIgnored(ignoreErrors: Patterns, error: ErrorWithIndexProperties): boolean {\n const { message, name, stack } = error;\n return shouldIgnoreEvent(ignoreErrors, message + ' ' + name + ' ' + stack);\n}\n"]}
@@ -268,7 +268,7 @@ describe('api.exceptions', function () {
268
268
  var message;
269
269
  var getMessage = function () { return message; };
270
270
  message = {
271
- type: const_1.USER_ACTION_START_MESSAGE_TYPE,
271
+ type: const_1.USER_ACTION_START,
272
272
  name: 'testAction',
273
273
  startTime: Date.now(),
274
274
  parentId: 'parent-id',
@@ -286,7 +286,7 @@ describe('api.exceptions', function () {
286
286
  api.pushError(new Error('test error'));
287
287
  expect(actionBuffer.size()).toBe(1);
288
288
  message = {
289
- type: const_1.USER_ACTION_END_MESSAGE_TYPE,
289
+ type: const_1.USER_ACTION_END,
290
290
  name: 'testAction',
291
291
  id: 'parent-id',
292
292
  startTime: (0, utils_1.dateNow)(),
@@ -297,7 +297,7 @@ describe('api.exceptions', function () {
297
297
  api.pushError(new Error('test error 2'));
298
298
  expect(actionBuffer.size()).toBe(1);
299
299
  message = {
300
- type: const_1.USER_ACTION_CANCEL_MESSAGE_TYPE,
300
+ type: const_1.USER_ACTION_CANCEL,
301
301
  name: 'testAction',
302
302
  parentId: 'parent-id',
303
303
  };