@coralogix/browser 1.6.0 → 1.7.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 (183) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/package.json +4 -4
  3. package/src/Request.js +32 -0
  4. package/src/Request.js.map +1 -0
  5. package/src/add-timing.js +9 -0
  6. package/src/add-timing.js.map +1 -0
  7. package/src/before-send.js +40 -0
  8. package/src/before-send.js.map +1 -0
  9. package/src/configuration.js +67 -0
  10. package/src/configuration.js.map +1 -0
  11. package/src/constants.js +183 -0
  12. package/src/constants.js.map +1 -0
  13. package/src/custom-spans/custom-spans.consts.js +4 -0
  14. package/src/custom-spans/custom-spans.consts.js.map +1 -0
  15. package/src/custom-spans/custom-spans.types.js +2 -0
  16. package/src/custom-spans/custom-spans.types.js.map +1 -0
  17. package/src/custom-spans/custom-spans.utils.js +40 -0
  18. package/src/custom-spans/custom-spans.utils.js.map +1 -0
  19. package/src/custom-spans/index.js +4 -0
  20. package/src/custom-spans/index.js.map +1 -0
  21. package/src/filters/filters.js +28 -0
  22. package/src/filters/filters.js.map +1 -0
  23. package/src/helpers.js +21 -0
  24. package/src/helpers.js.map +1 -0
  25. package/src/index.js +391 -0
  26. package/src/index.js.map +1 -0
  27. package/src/instrumentations/CoralogixCustomLogInstrumentation.js +35 -0
  28. package/src/instrumentations/CoralogixCustomLogInstrumentation.js.map +1 -0
  29. package/src/instrumentations/CoralogixDOMInstrumentation.js +33 -0
  30. package/src/instrumentations/CoralogixDOMInstrumentation.js.map +1 -0
  31. package/src/instrumentations/CoralogixErrorInstrumentation.js +257 -0
  32. package/src/instrumentations/CoralogixErrorInstrumentation.js.map +1 -0
  33. package/src/instrumentations/CoralogixInternalInstrumentation.js +50 -0
  34. package/src/instrumentations/CoralogixInternalInstrumentation.js.map +1 -0
  35. package/src/instrumentations/CoralogixLongTaskInstrumentation.js +47 -0
  36. package/src/instrumentations/CoralogixLongTaskInstrumentation.js.map +1 -0
  37. package/src/instrumentations/CoralogixResourcesInstrumentation.js +106 -0
  38. package/src/instrumentations/CoralogixResourcesInstrumentation.js.map +1 -0
  39. package/src/instrumentations/CoralogixWebVitalsInstrumentation.js +193 -0
  40. package/src/instrumentations/CoralogixWebVitalsInstrumentation.js.map +1 -0
  41. package/src/instrumentations/custom-measurements/CoralogixCustomMeasurementInstrumentation.js +26 -0
  42. package/src/instrumentations/custom-measurements/CoralogixCustomMeasurementInstrumentation.js.map +1 -0
  43. package/src/instrumentations/custom-measurements/custom-measurements.types.js +2 -0
  44. package/src/instrumentations/custom-measurements/custom-measurements.types.js.map +1 -0
  45. package/src/instrumentations/custom-measurements/index.js +4 -0
  46. package/src/instrumentations/custom-measurements/index.js.map +1 -0
  47. package/src/instrumentations/custom-measurements/timeMeasurementTracker.js +38 -0
  48. package/src/instrumentations/custom-measurements/timeMeasurementTracker.js.map +1 -0
  49. package/src/instrumentations/instrumentation.consts.js +61 -0
  50. package/src/instrumentations/instrumentation.consts.js.map +1 -0
  51. package/src/instrumentations/instrumentation.helper.js +4 -0
  52. package/src/instrumentations/instrumentation.helper.js.map +1 -0
  53. package/src/instrumentations/instrumentation.model.js +18 -0
  54. package/src/instrumentations/instrumentation.model.js.map +1 -0
  55. package/src/instrumentations/memory-usage/CoralogixMemoryUsageInstrumentation.js +58 -0
  56. package/src/instrumentations/memory-usage/CoralogixMemoryUsageInstrumentation.js.map +1 -0
  57. package/src/instrumentations/memory-usage/index.js +5 -0
  58. package/src/instrumentations/memory-usage/index.js.map +1 -0
  59. package/src/instrumentations/memory-usage/memory-usage-constants.js +4 -0
  60. package/src/instrumentations/memory-usage/memory-usage-constants.js.map +1 -0
  61. package/src/instrumentations/memory-usage/memory-usage.types.js +2 -0
  62. package/src/instrumentations/memory-usage/memory-usage.types.js.map +1 -0
  63. package/src/instrumentations/memory-usage/memory-usage.utils.js +33 -0
  64. package/src/instrumentations/memory-usage/memory-usage.utils.js.map +1 -0
  65. package/src/instrumentations/network/CoralogixFetchInstrumentation.js +103 -0
  66. package/src/instrumentations/network/CoralogixFetchInstrumentation.js.map +1 -0
  67. package/src/instrumentations/network/CoralogixXhrInstrumentation.js +61 -0
  68. package/src/instrumentations/network/CoralogixXhrInstrumentation.js.map +1 -0
  69. package/src/instrumentations/network/HeadersManager.js +42 -0
  70. package/src/instrumentations/network/HeadersManager.js.map +1 -0
  71. package/src/instrumentations/network/NetworkDataManager.js +87 -0
  72. package/src/instrumentations/network/NetworkDataManager.js.map +1 -0
  73. package/src/instrumentations/network/constants.js +7 -0
  74. package/src/instrumentations/network/constants.js.map +1 -0
  75. package/src/instrumentations/network/network.utils.js +11 -0
  76. package/src/instrumentations/network/network.utils.js.map +1 -0
  77. package/src/instrumentations/screenshot/CoralogixScreenshotInstrumentation.js +28 -0
  78. package/src/instrumentations/screenshot/CoralogixScreenshotInstrumentation.js.map +1 -0
  79. package/src/instrumentations/screenshot/screenshot.utils.js +3 -0
  80. package/src/instrumentations/screenshot/screenshot.utils.js.map +1 -0
  81. package/src/instrumentations/user-interaction/CoralogixUserInteractionInstrumentation.js +65 -0
  82. package/src/instrumentations/user-interaction/CoralogixUserInteractionInstrumentation.js.map +1 -0
  83. package/src/instrumentations/user-interaction/user-interaction.utils.js +73 -0
  84. package/src/instrumentations/user-interaction/user-interaction.utils.js.map +1 -0
  85. package/src/internal-event-reporter.js +7 -0
  86. package/src/internal-event-reporter.js.map +1 -0
  87. package/src/label-providers/url-based-label-provider.js +24 -0
  88. package/src/label-providers/url-based-label-provider.js.map +1 -0
  89. package/src/labels/index.js +2 -0
  90. package/src/labels/index.js.map +1 -0
  91. package/src/labels/labels.utils.js +11 -0
  92. package/src/labels/labels.utils.js.map +1 -0
  93. package/src/mfe/mfe.types.js +2 -0
  94. package/src/mfe/mfe.types.js.map +1 -0
  95. package/src/otel/CoralogixPropgator.js +9 -0
  96. package/src/otel/CoralogixPropgator.js.map +1 -0
  97. package/src/otel/CoralogixWebTracerProvider.js +4 -0
  98. package/src/otel/CoralogixWebTracerProvider.js.map +1 -0
  99. package/src/otel/custom-sampler.js +9 -0
  100. package/src/otel/custom-sampler.js.map +1 -0
  101. package/src/otel/index.js +3 -0
  102. package/src/otel/index.js.map +1 -0
  103. package/src/otel/otel.consts.js +20 -0
  104. package/src/otel/otel.consts.js.map +1 -0
  105. package/src/otel/otel.utils.js +14 -0
  106. package/src/otel/otel.utils.js.map +1 -0
  107. package/src/otel/propagators.js +67 -0
  108. package/src/otel/propagators.js.map +1 -0
  109. package/src/processors/CoralogixExporter.js +103 -0
  110. package/src/processors/CoralogixExporter.js.map +1 -0
  111. package/src/processors/CoralogixNavigationProcessor.js +25 -0
  112. package/src/processors/CoralogixNavigationProcessor.js.map +1 -0
  113. package/src/processors/CoralogixSnapshotSpanProcessor.js +83 -0
  114. package/src/processors/CoralogixSnapshotSpanProcessor.js.map +1 -0
  115. package/src/processors/CoralogixSpanAttributesProcessor.js +56 -0
  116. package/src/processors/CoralogixSpanAttributesProcessor.js.map +1 -0
  117. package/src/processors/CoralogixSpanMapProcessor.js +273 -0
  118. package/src/processors/CoralogixSpanMapProcessor.js.map +1 -0
  119. package/src/processors/processor-base.model.js +2 -0
  120. package/src/processors/processor-base.model.js.map +1 -0
  121. package/src/processors/processor.helper.js +6 -0
  122. package/src/processors/processor.helper.js.map +1 -0
  123. package/src/session/session-idle.js +41 -0
  124. package/src/session/session-idle.js.map +1 -0
  125. package/src/session/session.consts.js +24 -0
  126. package/src/session/session.consts.js.map +1 -0
  127. package/src/session/session.helper.js +77 -0
  128. package/src/session/session.helper.js.map +1 -0
  129. package/src/session/session.model.js +11 -0
  130. package/src/session/session.model.js.map +1 -0
  131. package/src/session/sessionManager.js +175 -0
  132. package/src/session/sessionManager.js.map +1 -0
  133. package/src/session/sessionRecorder.js +336 -0
  134. package/src/session/sessionRecorder.js.map +1 -0
  135. package/src/session/sessionWithError.consts.js +15 -0
  136. package/src/session/sessionWithError.consts.js.map +1 -0
  137. package/src/session/workerManager.js +45 -0
  138. package/src/session/workerManager.js.map +1 -0
  139. package/src/snapshot/snapshot.consts.js +9 -0
  140. package/src/snapshot/snapshot.consts.js.map +1 -0
  141. package/src/snapshot/snapshot.model.js +2 -0
  142. package/src/snapshot/snapshot.model.js.map +1 -0
  143. package/src/snapshot/snapshotManager.js +29 -0
  144. package/src/snapshot/snapshotManager.js.map +1 -0
  145. package/src/tools/addEventListener.js +30 -0
  146. package/src/tools/addEventListener.js.map +1 -0
  147. package/src/tools/getGlobalObject.js +36 -0
  148. package/src/tools/getGlobalObject.js.map +1 -0
  149. package/src/tools/getZoneJsOriginalDom.js +17 -0
  150. package/src/tools/getZoneJsOriginalDom.js.map +1 -0
  151. package/src/tti-polyfill/tti-polyfill.d.ts +4 -0
  152. package/src/tti-polyfill/tti-polyfill.js +267 -0
  153. package/src/tti-polyfill/tti-polyfill.js.map +1 -0
  154. package/src/types-external.js +10 -0
  155. package/src/types-external.js.map +1 -0
  156. package/src/types.d.ts +1 -1
  157. package/src/types.js +39 -0
  158. package/src/types.js.map +1 -0
  159. package/src/utils/all.js +195 -0
  160. package/src/utils/all.js.map +1 -0
  161. package/src/utils/array.js +18 -0
  162. package/src/utils/array.js.map +1 -0
  163. package/src/utils/general.js +10 -0
  164. package/src/utils/general.js.map +1 -0
  165. package/src/utils/index.js +4 -0
  166. package/src/utils/index.js.map +1 -0
  167. package/src/utils/internal-rum-data.js +12 -0
  168. package/src/utils/internal-rum-data.js.map +1 -0
  169. package/src/utils/object.js +86 -0
  170. package/src/utils/object.js.map +1 -0
  171. package/src/utils/regex.js +16 -0
  172. package/src/utils/regex.js.map +1 -0
  173. package/src/utils/string.js +33 -0
  174. package/src/utils/string.js.map +1 -0
  175. package/src/utils/time.js +7 -0
  176. package/src/utils/time.js.map +1 -0
  177. package/src/version.d.ts +1 -1
  178. package/src/version.js +2 -0
  179. package/src/version.js.map +1 -0
  180. package/src/workers/session-recording-worker.js +77 -0
  181. package/src/workers/session-recording-worker.js.map +1 -0
  182. package/coralogix-browser-sdk.esm.d.ts +0 -1
  183. package/coralogix-browser-sdk.esm.js +0 -6635
@@ -0,0 +1,267 @@
1
+ /** Original source: https://www.npmjs.com/package/tti-polyfill?activeTab=code
2
+ * @license Apache-2.0
3
+ * @version 0.2.2
4
+ * @description A polyfill for the Time to Interactive metric -
5
+ * We decide to fork this package instead of installing it from npm
6
+ * because it's not maintained anymore, and we want to have control over the codebase.
7
+ * Also, we don't want to have a dependency on a package that is not maintained.
8
+ */
9
+ var h = 'undefined' != typeof window ? window : {}, k = 'function' == typeof Object.defineProperties
10
+ ? Object.defineProperty
11
+ : function (a, b, c) {
12
+ a != Array.prototype && a != Object.prototype && (a[b] = c.value);
13
+ };
14
+ function l() {
15
+ l = function () { };
16
+ h.Symbol || (h.Symbol = m);
17
+ }
18
+ var n = 0;
19
+ function m(a) {
20
+ return 'jscomp_symbol_' + (a || '') + n++;
21
+ }
22
+ function p() {
23
+ l();
24
+ var a = h.Symbol.iterator;
25
+ a || (a = h.Symbol.iterator = h.Symbol('iterator'));
26
+ 'function' != typeof Array.prototype[a] &&
27
+ k(Array.prototype, a, {
28
+ configurable: !0,
29
+ writable: !0,
30
+ value: function () {
31
+ return q(this);
32
+ },
33
+ });
34
+ p = function () { };
35
+ }
36
+ function q(a) {
37
+ var b = 0;
38
+ return r(function () {
39
+ return b < a.length ? { done: !1, value: a[b++] } : { done: !0 };
40
+ });
41
+ }
42
+ function r(a) {
43
+ p();
44
+ a = { next: a };
45
+ a[h.Symbol.iterator] = function () {
46
+ return this;
47
+ };
48
+ return a;
49
+ }
50
+ function t(a) {
51
+ p();
52
+ var b = a[Symbol.iterator];
53
+ return b ? b.call(a) : q(a);
54
+ }
55
+ function u(a) {
56
+ if (!(a instanceof Array)) {
57
+ a = t(a);
58
+ for (var b, c = []; !(b = a.next()).done;)
59
+ c.push(b.value);
60
+ a = c;
61
+ }
62
+ return a;
63
+ }
64
+ var v = 0;
65
+ function w(a, b) {
66
+ var c = XMLHttpRequest.prototype.send, d = v++;
67
+ XMLHttpRequest.prototype.send = function (f) {
68
+ for (var e = [], g = 0; g < arguments.length; ++g)
69
+ e[g - 0] = arguments[g];
70
+ var E = this;
71
+ a(d);
72
+ this.addEventListener('readystatechange', function () {
73
+ 4 === E.readyState && b(d);
74
+ });
75
+ return c.apply(this, e);
76
+ };
77
+ }
78
+ function x(a, b) {
79
+ var c = fetch;
80
+ fetch = function (d) {
81
+ for (var f = [], e = 0; e < arguments.length; ++e)
82
+ f[e - 0] = arguments[e];
83
+ return new Promise(function (d, e) {
84
+ var g = v++;
85
+ a(g);
86
+ c.apply(null, [].concat(u(f))).then(function (a) {
87
+ b(g);
88
+ d(a);
89
+ }, function (a) {
90
+ b(a);
91
+ e(a);
92
+ });
93
+ });
94
+ };
95
+ }
96
+ var y = 'img script iframe link audio video source'.split(' ');
97
+ function z(a, b) {
98
+ a = t(a);
99
+ for (var c = a.next(); !c.done; c = a.next())
100
+ if (((c = c.value), b.includes(c.nodeName.toLowerCase()) || z(c.children, b)))
101
+ return !0;
102
+ return !1;
103
+ }
104
+ function A(a) {
105
+ var b = new MutationObserver(function (c) {
106
+ c = t(c);
107
+ for (var b = c.next(); !b.done; b = c.next())
108
+ (b = b.value),
109
+ 'childList' == b.type && z(b.addedNodes, y)
110
+ ? a(b)
111
+ : 'attributes' == b.type &&
112
+ y.includes(b.target.tagName.toLowerCase()) &&
113
+ a(b);
114
+ });
115
+ b.observe(document, {
116
+ attributes: !0,
117
+ childList: !0,
118
+ subtree: !0,
119
+ attributeFilter: ['href', 'src'],
120
+ });
121
+ return b;
122
+ }
123
+ function B(a, b) {
124
+ if (2 < a.length)
125
+ return performance.now();
126
+ var c = [];
127
+ b = t(b);
128
+ for (var d = b.next(); !d.done; d = b.next())
129
+ (d = d.value),
130
+ c.push({ timestamp: d.start, type: 'requestStart' }),
131
+ c.push({ timestamp: d.end, type: 'requestEnd' });
132
+ b = t(a);
133
+ for (d = b.next(); !d.done; d = b.next())
134
+ c.push({ timestamp: d.value, type: 'requestStart' });
135
+ c.sort(function (a, b) {
136
+ return a.timestamp - b.timestamp;
137
+ });
138
+ a = a.length;
139
+ for (b = c.length - 1; 0 <= b; b--)
140
+ switch (((d = c[b]), d.type)) {
141
+ case 'requestStart':
142
+ a--;
143
+ break;
144
+ case 'requestEnd':
145
+ a++;
146
+ if (2 < a)
147
+ return d.timestamp;
148
+ break;
149
+ default:
150
+ throw Error('Internal Error: This should never happen');
151
+ }
152
+ return 0;
153
+ }
154
+ function C(a) {
155
+ a = a ? a : {};
156
+ this.w = !!a.useMutationObserver;
157
+ this.u = a.minValue || null;
158
+ a = window.__tti && window.__tti.e;
159
+ var b = window.__tti && window.__tti.o;
160
+ this.a = a
161
+ ? a.map(function (a) {
162
+ return { start: a.startTime, end: a.startTime + a.duration };
163
+ })
164
+ : [];
165
+ b && b.disconnect();
166
+ this.b = [];
167
+ this.f = new Map();
168
+ this.j = null;
169
+ this.v = -Infinity;
170
+ this.i = !1;
171
+ this.h = this.c = this.s = null;
172
+ w(this.m.bind(this), this.l.bind(this));
173
+ x(this.m.bind(this), this.l.bind(this));
174
+ D(this);
175
+ this.w && (this.h = A(this.B.bind(this)));
176
+ }
177
+ C.prototype.getFirstConsistentlyInteractive = function () {
178
+ var a = this;
179
+ return new Promise(function (b) {
180
+ a.s = b;
181
+ 'complete' == document.readyState
182
+ ? F(a)
183
+ : window.addEventListener('load', function () {
184
+ F(a);
185
+ });
186
+ });
187
+ };
188
+ function F(a) {
189
+ a.i = !0;
190
+ var b = 0 < a.a.length ? a.a[a.a.length - 1].end : 0, c = B(a.g, a.b);
191
+ G(a, Math.max(c + 5e3, b));
192
+ }
193
+ function G(a, b) {
194
+ !a.i ||
195
+ a.v > b ||
196
+ (clearTimeout(a.j),
197
+ (a.j = setTimeout(function () {
198
+ var b = performance.timing.navigationStart, d = B(a.g, a.b), b = (window.a && window.a.A ? 1e3 * window.a.A().C - b : 0) ||
199
+ performance.timing.domContentLoadedEventEnd - b;
200
+ if (a.u)
201
+ var f = a.u;
202
+ else
203
+ performance.timing.domContentLoadedEventEnd
204
+ ? ((f = performance.timing),
205
+ (f = f.domContentLoadedEventEnd - f.navigationStart))
206
+ : (f = null);
207
+ var e = performance.now();
208
+ null === f && G(a, Math.max(d + 5e3, e + 1e3));
209
+ var g = a.a;
210
+ 5e3 > e - d
211
+ ? (d = null)
212
+ : ((d = g.length ? g[g.length - 1].end : b),
213
+ (d = 5e3 > e - d ? null : Math.max(d, f)));
214
+ d &&
215
+ (a.s(d),
216
+ clearTimeout(a.j),
217
+ (a.i = !1),
218
+ a.c && a.c.disconnect(),
219
+ a.h && a.h.disconnect());
220
+ G(a, performance.now() + 1e3);
221
+ }, b - performance.now())),
222
+ (a.v = b));
223
+ }
224
+ function D(a) {
225
+ a.c = new PerformanceObserver(function (b) {
226
+ b = t(b.getEntries());
227
+ for (var c = b.next(); !c.done; c = b.next())
228
+ if (((c = c.value),
229
+ 'resource' === c.entryType &&
230
+ (a.b.push({ start: c.fetchStart, end: c.responseEnd }),
231
+ G(a, B(a.g, a.b) + 5e3)),
232
+ 'longtask' === c.entryType)) {
233
+ var d = c.startTime + c.duration;
234
+ a.a.push({ start: c.startTime, end: d });
235
+ G(a, d + 5e3);
236
+ }
237
+ });
238
+ a.c.observe({ entryTypes: ['longtask', 'resource'] });
239
+ }
240
+ C.prototype.m = function (a) {
241
+ this.f.set(a, performance.now());
242
+ };
243
+ C.prototype.l = function (a) {
244
+ this.f.delete(a);
245
+ };
246
+ C.prototype.B = function () {
247
+ G(this, performance.now() + 5e3);
248
+ };
249
+ h.Object.defineProperties(C.prototype, {
250
+ g: {
251
+ configurable: !0,
252
+ enumerable: !0,
253
+ get: function () {
254
+ return [].concat(u(this.f.values()));
255
+ },
256
+ },
257
+ });
258
+ var H = {
259
+ getFirstConsistentlyInteractive: function (a) {
260
+ a = a ? a : {};
261
+ return 'PerformanceLongTaskTiming' in window
262
+ ? new C(a).getFirstConsistentlyInteractive()
263
+ : Promise.resolve(null);
264
+ },
265
+ };
266
+ export default H;
267
+ //# sourceMappingURL=tti-polyfill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tti-polyfill.js","sourceRoot":"","sources":["../../../../../libs/browser/src/tti-polyfill/tti-polyfill.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export var CoralogixLogSeverity;
2
+ (function (CoralogixLogSeverity) {
3
+ CoralogixLogSeverity[CoralogixLogSeverity["Debug"] = 1] = "Debug";
4
+ CoralogixLogSeverity[CoralogixLogSeverity["Verbose"] = 2] = "Verbose";
5
+ CoralogixLogSeverity[CoralogixLogSeverity["Info"] = 3] = "Info";
6
+ CoralogixLogSeverity[CoralogixLogSeverity["Warn"] = 4] = "Warn";
7
+ CoralogixLogSeverity[CoralogixLogSeverity["Error"] = 5] = "Error";
8
+ CoralogixLogSeverity[CoralogixLogSeverity["Critical"] = 6] = "Critical";
9
+ })(CoralogixLogSeverity || (CoralogixLogSeverity = {}));
10
+ //# sourceMappingURL=types-external.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-external.js","sourceRoot":"","sources":["../../../../libs/browser/src/types-external.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,oBAOX;AAPD,WAAY,oBAAoB;IAC9B,iEAAS,CAAA;IACT,qEAAW,CAAA;IACX,+DAAQ,CAAA;IACR,+DAAQ,CAAA;IACR,iEAAS,CAAA;IACT,uEAAY,CAAA;AACd,CAAC,EAPW,oBAAoB,KAApB,oBAAoB,QAO/B"}
package/src/types.d.ts CHANGED
@@ -12,7 +12,7 @@ import { CoralogixWebVitalsInstrumentationConfig } from './instrumentations/inst
12
12
  import { SessionConfig, SessionRecordingConfig } from './session/session.model';
13
13
  import { CoralogixInternalEvent } from './instrumentations/CoralogixInternalInstrumentation';
14
14
  import { SnapshotContext } from './snapshot/snapshot.model';
15
- import { MetricWithAttribution } from 'web-vitals';
15
+ import { MetricWithAttribution } from 'web-vitals/src/types/base';
16
16
  import { MemoryUsageContext } from './instrumentations/memory-usage';
17
17
  import { MFEMetadata } from './mfe/mfe.types';
18
18
  import { UrlBasedLabelProvider } from './label-providers/url-based-label-provider';
package/src/types.js ADDED
@@ -0,0 +1,39 @@
1
+ export var CoralogixEventType;
2
+ (function (CoralogixEventType) {
3
+ CoralogixEventType["ERROR"] = "error";
4
+ CoralogixEventType["NETWORK_REQUEST"] = "network-request";
5
+ CoralogixEventType["LOG"] = "log";
6
+ CoralogixEventType["USER_INTERACTION"] = "user-interaction";
7
+ CoralogixEventType["WEB_VITALS"] = "web-vitals";
8
+ CoralogixEventType["LONG_TASK"] = "longtask";
9
+ CoralogixEventType["RESOURCES"] = "resources";
10
+ CoralogixEventType["INTERNAL"] = "internal";
11
+ CoralogixEventType["DOM"] = "dom";
12
+ CoralogixEventType["CUSTOM_MEASUREMENT"] = "custom-measurement";
13
+ CoralogixEventType["MEMORY_USAGE"] = "memory-usage";
14
+ CoralogixEventType["SCREENSHOT"] = "screenshot";
15
+ CoralogixEventType["CUSTOM_SPAN"] = "custom-span";
16
+ })(CoralogixEventType || (CoralogixEventType = {}));
17
+ export var PerformanceTypes;
18
+ (function (PerformanceTypes) {
19
+ PerformanceTypes["Resource"] = "resource";
20
+ PerformanceTypes["LongTask"] = "longtask";
21
+ PerformanceTypes["Navigation"] = "navigation";
22
+ PerformanceTypes["SoftNavigation"] = "soft-navigation";
23
+ })(PerformanceTypes || (PerformanceTypes = {}));
24
+ export var OtelNetworkAttrs;
25
+ (function (OtelNetworkAttrs) {
26
+ OtelNetworkAttrs["METHOD"] = "http.method";
27
+ OtelNetworkAttrs["URL"] = "http.url";
28
+ OtelNetworkAttrs["STATUS_CODE"] = "http.status_code";
29
+ OtelNetworkAttrs["HOST"] = "http.host";
30
+ OtelNetworkAttrs["SCHEME"] = "http.scheme";
31
+ OtelNetworkAttrs["STATUS_TEXT"] = "http.status_text";
32
+ OtelNetworkAttrs["RESPONSE_CONTENT_LENGTH"] = "http.response_content_length";
33
+ })(OtelNetworkAttrs || (OtelNetworkAttrs = {}));
34
+ export var UrlType;
35
+ (function (UrlType) {
36
+ UrlType["PAGE"] = "page";
37
+ UrlType["NETWORK_REQUEST"] = "network_request";
38
+ })(UrlType || (UrlType = {}));
39
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../libs/browser/src/types.ts"],"names":[],"mappings":"AAwCA,MAAM,CAAN,IAAY,kBAcX;AAdD,WAAY,kBAAkB;IAC5B,qCAAe,CAAA;IACf,yDAAmC,CAAA;IACnC,iCAAW,CAAA;IACX,2DAAqC,CAAA;IACrC,+CAAyB,CAAA;IACzB,4CAAsB,CAAA;IACtB,6CAAuB,CAAA;IACvB,2CAAqB,CAAA;IACrB,iCAAW,CAAA;IACX,+DAAyC,CAAA;IACzC,mDAA6B,CAAA;IAC7B,+CAAyB,CAAA;IACzB,iDAA2B,CAAA;AAC7B,CAAC,EAdW,kBAAkB,KAAlB,kBAAkB,QAc7B;AAED,MAAM,CAAN,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,yCAAqB,CAAA;IACrB,yCAAqB,CAAA;IACrB,6CAAyB,CAAA;IACzB,sDAAkC,CAAA;AACpC,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,QAK3B;AAodD,MAAM,CAAN,IAAY,gBAQX;AARD,WAAY,gBAAgB;IAC1B,0CAAsB,CAAA;IACtB,oCAAgB,CAAA;IAChB,oDAAgC,CAAA;IAChC,sCAAkB,CAAA;IAClB,0CAAsB,CAAA;IACtB,oDAAgC,CAAA;IAChC,4EAAwD,CAAA;AAC1D,CAAC,EARW,gBAAgB,KAAhB,gBAAgB,QAQ3B;AAsBD,MAAM,CAAN,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,wBAAa,CAAA;IACb,8CAAmC,CAAA;AACrC,CAAC,EAHW,OAAO,KAAP,OAAO,QAGlB"}
@@ -0,0 +1,195 @@
1
+ var _a;
2
+ import { BASE_PATH, CoralogixAttributes, HASH_SEPARATOR, MAX_CHARACTERS, PARAMS_SEPARATOR, PROTOCOL_SEPARATOR, } from '../constants';
3
+ import { LONGTASK_DURATION } from '../instrumentations/instrumentation.consts';
4
+ import { getSdkConfig } from '../helpers';
5
+ import { omit } from './object';
6
+ import { getNowTime } from './time';
7
+ export const supportedPerformanceTypes = !((_a = window === null || window === void 0 ? void 0 : window.PerformanceObserver) === null || _a === void 0 ? void 0 : _a.supportedEntryTypes)
8
+ ? new Set()
9
+ : new Set(window.PerformanceObserver.supportedEntryTypes);
10
+ export function valueEndWithOrInclude(value, extensions) {
11
+ return extensions.some((ex) => value.endsWith(ex) || value.includes(ex));
12
+ }
13
+ export function getInstrumentationConfig(value, defaults, defaultDisable) {
14
+ if (value === false) {
15
+ return value;
16
+ }
17
+ if (value === undefined && defaultDisable) {
18
+ return false;
19
+ }
20
+ if ((value === null || value === void 0 ? void 0 : value.enabled) === false) {
21
+ return false;
22
+ }
23
+ return Object.assign({}, defaults, value);
24
+ }
25
+ export const hrTimeToMilliseconds = ([seconds, nanoseconds]) => seconds * 1000 + Math.round(nanoseconds / 1e6);
26
+ export const isNetworkError = (status) => {
27
+ if (!status) {
28
+ return false;
29
+ }
30
+ return status >= 400;
31
+ };
32
+ export const getUrlFragments = (url) => {
33
+ var _a, _b;
34
+ if (!url) {
35
+ return '';
36
+ }
37
+ const withoutProtocol = ((_a = url.split(PROTOCOL_SEPARATOR)) === null || _a === void 0 ? void 0 : _a[1]) || url;
38
+ const startPath = (_b = withoutProtocol.split(BASE_PATH)) === null || _b === void 0 ? void 0 : _b[1];
39
+ if (startPath === null || startPath === void 0 ? void 0 : startPath.startsWith(HASH_SEPARATOR)) {
40
+ const fragments = withoutProtocol.split(HASH_SEPARATOR)[1];
41
+ const cleanedFragments = fragments.split(PARAMS_SEPARATOR)[0];
42
+ const pathFragments = cleanedFragments.split(BASE_PATH);
43
+ if (pathFragments.length) {
44
+ pathFragments.shift();
45
+ }
46
+ return pathFragments.join(BASE_PATH) || BASE_PATH;
47
+ }
48
+ else {
49
+ try {
50
+ if (url.startsWith('blob:')) {
51
+ return url;
52
+ }
53
+ return new URL(url).pathname.substring(1) || BASE_PATH;
54
+ }
55
+ catch (err) {
56
+ console.warn('Coralogix Browser SDK - Error parsing URL', err);
57
+ return url;
58
+ }
59
+ }
60
+ };
61
+ export function parseUserAgent(userAgent) {
62
+ var _a, _b;
63
+ const browsers = {
64
+ Chrome: /Chrome\/([\d.]+)/,
65
+ Firefox: /Firefox\/([\d.]+)/,
66
+ Safari: /Version\/([\d.]+).*Safari/,
67
+ Edge: /Edge\/([\d.]+)/,
68
+ Opera: /Opera\/([\d.]+)/,
69
+ IE: /Trident.*rv:([\d.]+)/,
70
+ };
71
+ const operatingSystems = {
72
+ Windows: /Windows NT ([\d.]+)/,
73
+ MacOS: /Mac OS X ([\d._]+)/,
74
+ Linux: /Linux(?: ([\d.]+))?/,
75
+ iOS: /CPU(?: iPhone)? OS (\d+([._]\d+)*)/,
76
+ Android: /Android (\d+([._]\d+)*)/,
77
+ };
78
+ const devices = {
79
+ Mobile: /Mobile|Android|iPhone|iPod|BlackBerry|IEMobile|Windows Phone|webOS|Opera Mini/,
80
+ Tablet: /Tablet|iPad/,
81
+ };
82
+ let browser = 'Unknown';
83
+ let browserVersion = 'Unknown';
84
+ let os = 'Unknown';
85
+ let osVersion = 'Unknown';
86
+ let device = 'Desktop';
87
+ for (const [name, regex] of Object.entries(browsers)) {
88
+ const match = userAgent.match(regex);
89
+ if (match) {
90
+ browser = name;
91
+ browserVersion = match[1] || 'Unknown';
92
+ break;
93
+ }
94
+ }
95
+ for (const [name, regex] of Object.entries(operatingSystems)) {
96
+ const match = userAgent.match(regex);
97
+ if (match) {
98
+ os = name;
99
+ osVersion = ((_b = (_a = match[1]) === null || _a === void 0 ? void 0 : _a.split('_')) === null || _b === void 0 ? void 0 : _b.join('.')) || 'Unknown';
100
+ break;
101
+ }
102
+ }
103
+ for (const [name, regex] of Object.entries(devices)) {
104
+ const match = userAgent.match(regex);
105
+ if (match) {
106
+ device = name;
107
+ break;
108
+ }
109
+ }
110
+ return { browser, browserVersion, os, osVersion, device };
111
+ }
112
+ export function calculateTotalBlockingTime(list) {
113
+ return list.reduce((total, entry) => {
114
+ total += entry.duration - LONGTASK_DURATION;
115
+ return total;
116
+ }, 0);
117
+ }
118
+ export function generateWebVitalUniqueID() {
119
+ return `v3-${getNowTime()}-${Math.floor(Math.random() * (9e12 - 1)) + 1e12}`;
120
+ }
121
+ export function rateForTBTMetricValue(value // ms
122
+ ) {
123
+ switch (true) {
124
+ case value > 600:
125
+ return 'poor';
126
+ case value > 200 && value <= 600:
127
+ return 'needs-improvement';
128
+ default:
129
+ return 'good';
130
+ }
131
+ }
132
+ export function flattenAttributes(attributes) {
133
+ const customLabels = JSON.parse(attributes[CoralogixAttributes.CUSTOM_LABELS]);
134
+ const flatAttributes = omit(attributes, CoralogixAttributes.CUSTOM_LABELS);
135
+ for (const [key, value] of Object.entries(customLabels)) {
136
+ flatAttributes[key] =
137
+ typeof value !== 'string' ? JSON.stringify(value) : value;
138
+ }
139
+ return flatAttributes;
140
+ }
141
+ export const getCircularReplacer = () => {
142
+ const seen = new WeakSet();
143
+ return (key, value) => {
144
+ if (typeof value === 'object' && value !== null) {
145
+ if (seen.has(value)) {
146
+ return;
147
+ }
148
+ seen.add(value);
149
+ }
150
+ return value;
151
+ };
152
+ };
153
+ export function replacePatternsInUrl({ patterns, url, }) {
154
+ let modifiedUrl = url;
155
+ for (const { pattern, replacement } of patterns) {
156
+ modifiedUrl = modifiedUrl.replace(pattern, replacement);
157
+ }
158
+ return modifiedUrl;
159
+ }
160
+ export function applyUrlBluePrinters({ url, blueprinters, }) {
161
+ let blueprintedUrl = url;
162
+ blueprinters === null || blueprinters === void 0 ? void 0 : blueprinters.forEach((urlBlueprinter) => (blueprintedUrl = urlBlueprinter(blueprintedUrl)));
163
+ return blueprintedUrl;
164
+ }
165
+ export function resolvePageContext(url) {
166
+ var _a;
167
+ const page_url_blueprint = applyUrlBluePrinters({
168
+ url,
169
+ blueprinters: (_a = getSdkConfig().urlBlueprinters) === null || _a === void 0 ? void 0 : _a.pageUrlBlueprinters,
170
+ });
171
+ const page_fragments = getUrlFragments(page_url_blueprint);
172
+ return {
173
+ page_url: url.slice(0, MAX_CHARACTERS),
174
+ page_url_blueprint,
175
+ page_fragments,
176
+ referrer: document.referrer,
177
+ };
178
+ }
179
+ export function deepClone(obj) {
180
+ return JSON.parse(JSON.stringify(obj));
181
+ }
182
+ export function partition(array, predicate) {
183
+ const truthyValues = [];
184
+ const falsyValues = [];
185
+ for (const element of array) {
186
+ if (predicate(element)) {
187
+ truthyValues.push(element);
188
+ }
189
+ else {
190
+ falsyValues.push(element);
191
+ }
192
+ }
193
+ return [truthyValues, falsyValues];
194
+ }
195
+ //# sourceMappingURL=all.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"all.js","sourceRoot":"","sources":["../../../../../libs/browser/src/utils/all.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { isNil } from './general';
2
+ /**
3
+ * Ensures a given value is converted into an array of elements.
4
+ *
5
+ * @template T - The type of the input value and the elements in the resulting array.
6
+ *
7
+ * @param value - The input value, which can be a single instance of type `T`, an array of instances of type `T`, or a Set of instances of type `T`.
8
+ *
9
+ * @returns An array of elements of type `T`. If the input is `null` or `undefined`, returns an empty array.
10
+ */
11
+ export function coerceArray(value) {
12
+ if (isNil(value))
13
+ return [];
14
+ if (value instanceof Set)
15
+ return [...value];
16
+ return Array.isArray(value) ? value : [value];
17
+ }
18
+ //# sourceMappingURL=array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../../../../libs/browser/src/utils/array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAElC;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAI,KAAc;IAC3C,IAAI,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE5B,IAAI,KAAK,YAAY,GAAG;QAAE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;IAE5C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Checks if value is null or undefined.
3
+ *
4
+ * @param value The value to check.
5
+ * @returns Returns true if value is null or undefined, else false.
6
+ */
7
+ export function isNil(value) {
8
+ return value == null;
9
+ }
10
+ //# sourceMappingURL=general.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"general.js","sourceRoot":"","sources":["../../../../../libs/browser/src/utils/general.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CAAC,KAAU;IAC9B,OAAO,KAAK,IAAI,IAAI,CAAC;AACvB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './string';
2
+ export * from './internal-rum-data';
3
+ export * from './all';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/browser/src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,OAAO,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { RUM_INTERNAL_DATA_KEY } from '../constants';
2
+ export function saveInternalRumData(key, value) {
3
+ if (!window[RUM_INTERNAL_DATA_KEY]) {
4
+ window[RUM_INTERNAL_DATA_KEY] = {};
5
+ }
6
+ window[RUM_INTERNAL_DATA_KEY][key] = value;
7
+ }
8
+ export function getInternalRumData(key) {
9
+ var _a;
10
+ return (_a = window[RUM_INTERNAL_DATA_KEY]) === null || _a === void 0 ? void 0 : _a[key];
11
+ }
12
+ //# sourceMappingURL=internal-rum-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-rum-data.js","sourceRoot":"","sources":["../../../../../libs/browser/src/utils/internal-rum-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,UAAU,mBAAmB,CAAC,GAAW,EAAE,KAAU;IACzD,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAC;IACrC,CAAC;IACD,MAAM,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAI,GAAW;;IAC/C,OAAO,MAAA,MAAM,CAAC,qBAAqB,CAAC,0CAAG,GAAG,CAAC,CAAC;AAC9C,CAAC"}