@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,257 @@
1
+ import { __awaiter } from "tslib";
2
+ import { getElementXPath } from '@opentelemetry/sdk-trace-web';
3
+ import { InstrumentationBase, } from '@opentelemetry/instrumentation';
4
+ import { unwrap, wrap } from 'shimmer';
5
+ import { CoralogixAttributes } from '../constants';
6
+ import { CoralogixEventType } from '../types';
7
+ import { CoralogixLogSeverity } from '../types-external';
8
+ import { getCircularReplacer } from '../utils';
9
+ import ErrorStackParser from 'error-stack-parser';
10
+ import { getSdkConfig } from '../helpers';
11
+ import { attachChildSpanToGlobalSpan, shouldAttachSpanToGlobalSpan, } from '../custom-spans';
12
+ import { setCustomLabelsForSpan } from '../labels';
13
+ const CACHED_METADATA_KEY = '__cx_metadata__';
14
+ const ERROR_INSTRUMENTATION_VERSION = '1';
15
+ const STACK_LIMIT = 4096;
16
+ const MESSAGE_LIMIT = 1024;
17
+ export const ERROR_INSTRUMENTATION_NAME = 'errors';
18
+ export const ErrorAttributes = {
19
+ TYPE: 'error_type',
20
+ STACK: 'error_stack',
21
+ MESSAGE: 'error_message',
22
+ DATA: 'error_custom_data',
23
+ };
24
+ export var ErrorSource;
25
+ (function (ErrorSource) {
26
+ ErrorSource["CONSOLE"] = "console";
27
+ ErrorSource["WINDOW"] = "window";
28
+ ErrorSource["UNHANDLED_REJECTION"] = "unhandledrejection";
29
+ ErrorSource["DOCUMENT"] = "document";
30
+ ErrorSource["CAPTURED"] = "captured";
31
+ })(ErrorSource || (ErrorSource = {}));
32
+ function buildStacktrace(span, err) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ const { stack, message, name } = err;
35
+ const hasStack = !!(stack === null || stack === void 0 ? void 0 : stack.includes('at '));
36
+ if (err && hasStack) {
37
+ const { supportMfe } = getSdkConfig();
38
+ const stackFrames = ErrorStackParser.parse({
39
+ stack: stack.substring(0, STACK_LIMIT),
40
+ message,
41
+ name,
42
+ }).map(({ fileName, columnNumber, lineNumber, functionName }) => ({
43
+ fileName,
44
+ columnNumber,
45
+ lineNumber,
46
+ functionName,
47
+ }));
48
+ if (supportMfe) {
49
+ yield handleMFE(stackFrames, span);
50
+ }
51
+ span[ErrorAttributes.STACK] = stackFrames;
52
+ }
53
+ });
54
+ }
55
+ function handleMFE(stackFrames, span) {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ // Only regular for loop support async await and wait for each iteration
58
+ for (let i = 0; i < stackFrames.length; i++) {
59
+ const metadata = yield extractMetadataFromMfeStacktrace(stackFrames[i].fileName);
60
+ stackFrames[i] = Object.assign(Object.assign({}, stackFrames[i]), (metadata || { isShell: true }));
61
+ }
62
+ const [lastFrame] = stackFrames;
63
+ addLabelForMFE(span, lastFrame);
64
+ });
65
+ }
66
+ function addLabelForMFE(span, lastFrame) {
67
+ const { app, version, isShell } = lastFrame;
68
+ // Do not add label if its shell
69
+ if (!isShell) {
70
+ setCustomLabelsForSpan(span, { mfeApp: app, mfeVersion: version });
71
+ }
72
+ }
73
+ function extractMetadataFromMfeStacktrace() {
74
+ return __awaiter(this, arguments, void 0, function* (fileName = '') {
75
+ let metadata;
76
+ const cachedMetadata = window[CACHED_METADATA_KEY];
77
+ const MFE_METADATA_KEY = 'cx-metadata.json';
78
+ const [mfePath] = fileName.match(/https?:\/\/.*\//);
79
+ if (mfePath) {
80
+ let response;
81
+ if (!(cachedMetadata === null || cachedMetadata === void 0 ? void 0 : cachedMetadata.has(mfePath))) {
82
+ try {
83
+ response = yield fetch(`${mfePath}${MFE_METADATA_KEY}`, {
84
+ //this is a browser cache control
85
+ cache: 'no-cache',
86
+ });
87
+ metadata = Object.assign(Object.assign({}, (yield response.json())), { mfePath });
88
+ }
89
+ catch (e) {
90
+ if (getSdkConfig().debug) {
91
+ console.warn('Coralogix Browser SDK - Error fetching metadata', e);
92
+ }
93
+ }
94
+ window[CACHED_METADATA_KEY] = cachedMetadata.set(mfePath, metadata);
95
+ }
96
+ else {
97
+ metadata = cachedMetadata === null || cachedMetadata === void 0 ? void 0 : cachedMetadata.get(mfePath);
98
+ }
99
+ }
100
+ return metadata;
101
+ });
102
+ }
103
+ const _consoleErrorHandler = (that) => {
104
+ return (original) => (...args) => {
105
+ that.report(ErrorSource.CONSOLE, args);
106
+ return original.apply(that, args);
107
+ };
108
+ };
109
+ const _errorListener = (that) => {
110
+ return (event) => {
111
+ that.report(ErrorSource.WINDOW, event);
112
+ };
113
+ };
114
+ const _unhandledRejectionListener = (that) => {
115
+ return (event) => {
116
+ that.report(ErrorSource.UNHANDLED_REJECTION, event.reason);
117
+ };
118
+ };
119
+ const _documentErrorListener = (that) => {
120
+ return (event) => {
121
+ that.report(ErrorSource.DOCUMENT, event);
122
+ };
123
+ };
124
+ function addErrorDefaultAttributes(span) {
125
+ span.setAttribute(CoralogixAttributes.EVENT_TYPE, CoralogixEventType.ERROR);
126
+ span.setAttribute(CoralogixAttributes.SEVERITY, CoralogixLogSeverity.Error);
127
+ }
128
+ export class CoralogixErrorInstrumentation extends InstrumentationBase {
129
+ constructor(config) {
130
+ super(ERROR_INSTRUMENTATION_NAME, ERROR_INSTRUMENTATION_VERSION, config);
131
+ this.parseErrorObject = (obj) => {
132
+ var _a;
133
+ return (_a = obj === null || obj === void 0 ? void 0 : obj.message) !== null && _a !== void 0 ? _a : JSON.stringify(obj, getCircularReplacer());
134
+ };
135
+ if (getSdkConfig().supportMfe) {
136
+ window[CACHED_METADATA_KEY] = new Map();
137
+ }
138
+ }
139
+ init() { }
140
+ enable() {
141
+ wrap(console, 'error', _consoleErrorHandler(this));
142
+ window.addEventListener('error', _errorListener(this));
143
+ window.addEventListener('unhandledrejection', _unhandledRejectionListener(this));
144
+ document.documentElement.addEventListener('error', _documentErrorListener(this), {
145
+ capture: true,
146
+ });
147
+ }
148
+ disable() {
149
+ unwrap(console, 'error');
150
+ window.removeEventListener('error', _errorListener(this));
151
+ window.removeEventListener('unhandledrejection', _unhandledRejectionListener(this));
152
+ document.documentElement.removeEventListener('error', _documentErrorListener(this), { capture: true });
153
+ }
154
+ report(source, arg) {
155
+ if (arg instanceof Array) {
156
+ if (arg.length === 0) {
157
+ return;
158
+ }
159
+ }
160
+ switch (true) {
161
+ case arg instanceof Error:
162
+ this.reportError(source, arg);
163
+ break;
164
+ case arg instanceof ErrorEvent:
165
+ this.reportErrorEvent(source, arg);
166
+ break;
167
+ case arg instanceof Event:
168
+ this.reportEvent(source, arg);
169
+ break;
170
+ case typeof arg === 'string':
171
+ this.reportString(source, arg);
172
+ break;
173
+ case arg instanceof Array: {
174
+ // if any arguments are Errors then add the stack trace even though the message is handled differently
175
+ const firstError = arg.find((x) => x instanceof Error);
176
+ const message = arg
177
+ .map((msg) => typeof msg === 'string' ? msg : this.parseErrorObject(msg))
178
+ .join(' ');
179
+ this.reportString(source, message, firstError);
180
+ break;
181
+ }
182
+ default:
183
+ this.reportString(source, typeof arg === 'string' ? arg : this.getPossibleEventMessage(arg));
184
+ }
185
+ }
186
+ reportError(source, err, customData, labels) {
187
+ return __awaiter(this, void 0, void 0, function* () {
188
+ const { message, name } = err;
189
+ const span = this.createSpan('error');
190
+ const cleanMessage = message.split('\n')[0];
191
+ addErrorDefaultAttributes(span);
192
+ span.setAttribute(CoralogixAttributes.SOURCE, source);
193
+ span.setAttribute(ErrorAttributes.TYPE, name);
194
+ span.setAttribute(ErrorAttributes.MESSAGE, cleanMessage);
195
+ if (customData) {
196
+ span[ErrorAttributes.DATA] = JSON.stringify(customData, getCircularReplacer());
197
+ }
198
+ if (labels) {
199
+ setCustomLabelsForSpan(span, labels);
200
+ }
201
+ yield buildStacktrace(span, err);
202
+ span.end();
203
+ });
204
+ }
205
+ reportString(source, message, firstError) {
206
+ return __awaiter(this, void 0, void 0, function* () {
207
+ const span = this.createSpan(source);
208
+ addErrorDefaultAttributes(span);
209
+ span.setAttribute(CoralogixAttributes.SOURCE, source);
210
+ span.setAttribute(ErrorAttributes.MESSAGE, message === null || message === void 0 ? void 0 : message.substring(0, MESSAGE_LIMIT));
211
+ if (firstError) {
212
+ yield buildStacktrace(span, firstError);
213
+ }
214
+ span.end();
215
+ });
216
+ }
217
+ reportErrorEvent(source, { error, message }) {
218
+ const event = error !== null && error !== void 0 ? error : message;
219
+ this.report(source, event);
220
+ }
221
+ reportEvent(source, ev) {
222
+ if (!ev.target) {
223
+ return;
224
+ }
225
+ const span = this.createSpan(source);
226
+ addErrorDefaultAttributes(span);
227
+ span.setAttribute(CoralogixAttributes.SOURCE, source);
228
+ if (ev.target) {
229
+ span.setAttribute('target_element', ev.target.tagName);
230
+ span.setAttribute('target_xpath', getElementXPath(ev.target, true));
231
+ span.setAttribute('target_src', ev.target.src);
232
+ }
233
+ span.end();
234
+ }
235
+ createSpan(name) {
236
+ let span;
237
+ if (shouldAttachSpanToGlobalSpan(CoralogixEventType.ERROR)) {
238
+ span = attachChildSpanToGlobalSpan(name);
239
+ }
240
+ else {
241
+ span = this.tracer.startSpan(name);
242
+ }
243
+ return span;
244
+ }
245
+ getPossibleEventMessage(event) {
246
+ const { message, statusMessage } = event || {};
247
+ if (message && typeof message === 'string') {
248
+ return message;
249
+ }
250
+ // GrpcStatusEvent
251
+ if (statusMessage && typeof statusMessage === 'string') {
252
+ return statusMessage;
253
+ }
254
+ return JSON.stringify(event);
255
+ }
256
+ }
257
+ //# sourceMappingURL=CoralogixErrorInstrumentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoralogixErrorInstrumentation.js","sourceRoot":"","sources":["../../../../../libs/browser/src/instrumentations/CoralogixErrorInstrumentation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { InstrumentationBase, } from '@opentelemetry/instrumentation';
2
+ import { CoralogixAttributes } from '../constants';
3
+ import { CoralogixLogSeverity } from '../types-external';
4
+ import { CoralogixEventType } from '../types';
5
+ import { getSdkConfig } from '../helpers';
6
+ import { omit } from '../utils/object';
7
+ export const INTERNAL_INSTRUMENTATION_VERSION = '1';
8
+ export class CoralogixInternalInstrumentation extends InstrumentationBase {
9
+ constructor(config) {
10
+ super(CoralogixEventType.INTERNAL, INTERNAL_INSTRUMENTATION_VERSION, config);
11
+ }
12
+ init() { }
13
+ disable() { }
14
+ enable() { }
15
+ reportInternalEvent(event, message = '') {
16
+ const span = this.tracer.startSpan(CoralogixEventType.INTERNAL);
17
+ let data;
18
+ span.setAttribute(CoralogixAttributes.EVENT_TYPE, CoralogixEventType.INTERNAL);
19
+ span.setAttribute(CoralogixAttributes.SEVERITY, CoralogixLogSeverity.Info);
20
+ switch (event) {
21
+ case 'init': {
22
+ const config = omit(getSdkConfig(), 'public_key', 'coralogixDomain');
23
+ data = this.stringifyConfig(config);
24
+ break;
25
+ }
26
+ case 'recording-start':
27
+ break;
28
+ case 'recording-stop':
29
+ data = message;
30
+ break;
31
+ default:
32
+ break;
33
+ }
34
+ span.setAttribute(CoralogixAttributes.INTERNAL, JSON.stringify({
35
+ event,
36
+ data,
37
+ }));
38
+ span.end();
39
+ }
40
+ stringifyConfig(config) {
41
+ const replacer = (key, value) => {
42
+ if (value instanceof RegExp) {
43
+ return value.toString();
44
+ }
45
+ return value;
46
+ };
47
+ return JSON.stringify(config, replacer);
48
+ }
49
+ }
50
+ //# sourceMappingURL=CoralogixInternalInstrumentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoralogixInternalInstrumentation.js","sourceRoot":"","sources":["../../../../../libs/browser/src/instrumentations/CoralogixInternalInstrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,GAEpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAA6B,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAGvC,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,CAAC;AASpD,MAAM,OAAO,gCAAiC,SAAQ,mBAAmB;IACvE,YAAY,MAA6B;QACvC,KAAK,CACH,kBAAkB,CAAC,QAAQ,EAC3B,gCAAgC,EAChC,MAAM,CACP,CAAC;IACJ,CAAC;IAES,IAAI,KAAU,CAAC;IAEhB,OAAO,KAAI,CAAC;IAEZ,MAAM,KAAI,CAAC;IAEpB,mBAAmB,CACjB,KAA6B,EAC7B,UAAkB,EAAE;QAEpB,MAAM,IAAI,GAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACtE,IAAI,IAAS,CAAC;QAEd,IAAI,CAAC,YAAY,CACf,mBAAmB,CAAC,UAAU,EAC9B,kBAAkB,CAAC,QAAQ,CAC5B,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAE3E,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;gBAErE,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBACpC,MAAM;YACR,CAAC;YACD,KAAK,iBAAiB;gBACpB,MAAM;YACR,KAAK,gBAAgB;gBACnB,IAAI,GAAG,OAAO,CAAC;gBACf,MAAM;YACR;gBACE,MAAM;QACV,CAAC;QAED,IAAI,CAAC,YAAY,CACf,mBAAmB,CAAC,QAAQ,EAC5B,IAAI,CAAC,SAAS,CAAC;YACb,KAAK;YACL,IAAI;SACL,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,GAAG,EAAE,CAAC;IACb,CAAC;IAEO,eAAe,CAAC,MAA0C;QAChE,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,EAAE;YAC3C,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;gBAC5B,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC1B,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;CACF"}
@@ -0,0 +1,47 @@
1
+ import { InstrumentationBase, } from '@opentelemetry/instrumentation';
2
+ import { LONG_TASK_INSTRUMENTATION_VERSION, LONG_TASKS_INSTRUMENTATION_NAME, } from './instrumentation.consts';
3
+ import { CoralogixEventType, PerformanceTypes, } from '../types';
4
+ import { CoralogixAttributes } from '../constants';
5
+ import { deepClone, generateUUID, supportedPerformanceTypes } from '../utils';
6
+ export class CoralogixLongTaskInstrumentation extends InstrumentationBase {
7
+ constructor(config) {
8
+ super(LONG_TASKS_INSTRUMENTATION_NAME, LONG_TASK_INSTRUMENTATION_VERSION, config);
9
+ if (supportedPerformanceTypes.has(PerformanceTypes.LongTask)) {
10
+ this.registerToLongTasks();
11
+ }
12
+ else {
13
+ console.warn('Coralogix Browser SDK - browser doesnt support longtask events');
14
+ }
15
+ }
16
+ registerToLongTasks() {
17
+ this.longTaskObserver = new PerformanceObserver((list) => {
18
+ list
19
+ .getEntries()
20
+ .forEach((entry) => this.createSpanFromLongTask(entry));
21
+ });
22
+ this.longTaskObserver.observe({
23
+ type: PerformanceTypes.LongTask,
24
+ buffered: true,
25
+ });
26
+ }
27
+ createSpanFromLongTask(entry) {
28
+ const longTaskSpan = this.tracer.startSpan(CoralogixEventType.LONG_TASK);
29
+ const longTaskContext = Object.assign(Object.assign({}, deepClone(entry)), { id: generateUUID() });
30
+ if (entry['toJSON']) {
31
+ delete longTaskContext['toJSON'];
32
+ }
33
+ if (entry['attribution']) {
34
+ delete longTaskContext['attribution'];
35
+ }
36
+ longTaskSpan.setAttribute(CoralogixAttributes.EVENT_TYPE, CoralogixEventType.LONG_TASK);
37
+ longTaskSpan.setAttribute(CoralogixEventType.LONG_TASK, JSON.stringify(longTaskContext));
38
+ longTaskSpan.end();
39
+ }
40
+ enable() { }
41
+ disable() {
42
+ var _a;
43
+ (_a = this.longTaskObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
44
+ }
45
+ init() { }
46
+ }
47
+ //# sourceMappingURL=CoralogixLongTaskInstrumentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoralogixLongTaskInstrumentation.js","sourceRoot":"","sources":["../../../../../libs/browser/src/instrumentations/CoralogixLongTaskInstrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,GAEpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,iCAAiC,EACjC,+BAA+B,GAChC,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,kBAAkB,EAElB,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAE9E,MAAM,OAAO,gCAAiC,SAAQ,mBAAmB;IAGvE,YAAY,MAA6B;QACvC,KAAK,CACH,+BAA+B,EAC/B,iCAAiC,EACjC,MAAM,CACP,CAAC;QAEF,IAAI,yBAAyB,CAAC,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CACV,gEAAgE,CACjE,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,gBAAgB,GAAG,IAAI,mBAAmB,CAC7C,CAAC,IAAkC,EAAE,EAAE;YACrC,IAAI;iBACD,UAAU,EAAE;iBACZ,OAAO,CAAC,CAAC,KAAuB,EAAE,EAAE,CACnC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CACnC,CAAC;QACN,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;YAC5B,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;IAEO,sBAAsB,CAAC,KAAuB;QACpD,MAAM,YAAY,GAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAC9C,kBAAkB,CAAC,SAAS,CAC7B,CAAC;QAEF,MAAM,eAAe,mCAChB,SAAS,CAAC,KAAK,CAAC,KACnB,EAAE,EAAE,YAAY,EAAE,GACnB,CAAC;QAEF,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpB,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;YACzB,OAAO,eAAe,CAAC,aAAa,CAAC,CAAC;QACxC,CAAC;QAED,YAAY,CAAC,YAAY,CACvB,mBAAmB,CAAC,UAAU,EAC9B,kBAAkB,CAAC,SAAS,CAC7B,CAAC;QAEF,YAAY,CAAC,YAAY,CACvB,kBAAkB,CAAC,SAAS,EAC5B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAChC,CAAC;QAEF,YAAY,CAAC,GAAG,EAAE,CAAC;IACrB,CAAC;IAEQ,MAAM,KAAI,CAAC;IAEX,OAAO;;QACd,MAAA,IAAI,CAAC,gBAAgB,0CAAE,UAAU,EAAE,CAAC;IACtC,CAAC;IAES,IAAI,KAAU,CAAC;CAC1B"}
@@ -0,0 +1,106 @@
1
+ import { InstrumentationBase, } from '@opentelemetry/instrumentation';
2
+ import { CSS_EXTENSIONS, DOC_EXTENSIONS, FONT_EXTENSIONS, FONTS_URL, IMG_EXTENSIONS, MEDIA_EXTENSIONS, OTHER_EXTENSIONS, RESOURCES_INSTRUMENTATION_NAME, RESOURCES_INSTRUMENTATION_VERSION, SCRIPT_EXTENSIONS, } from './instrumentation.consts';
3
+ import { CoralogixEventType, PerformanceTypes } from '../types';
4
+ import { CoralogixAttributes, MAX_CHARACTERS } from '../constants';
5
+ import { deepClone, supportedPerformanceTypes, valueEndWithOrInclude, } from '../utils';
6
+ import { resourceInitiatorTypeIs } from './instrumentation.helper';
7
+ import { ResourceInitiatorTypes } from './instrumentation.model';
8
+ import { getSdkConfig } from '../helpers';
9
+ import { isPatternMatch } from '../utils/regex';
10
+ export class CoralogixResourcesInstrumentation extends InstrumentationBase {
11
+ constructor(config) {
12
+ var _a;
13
+ super(RESOURCES_INSTRUMENTATION_NAME, RESOURCES_INSTRUMENTATION_VERSION, config);
14
+ this.ignoreUrls = (_a = getSdkConfig()) === null || _a === void 0 ? void 0 : _a.ignoreUrls;
15
+ if (supportedPerformanceTypes.has(PerformanceTypes.Resource)) {
16
+ this.registerToResources();
17
+ }
18
+ else {
19
+ console.warn('Coralogix Browser SDK - browser doesnt support resource events');
20
+ }
21
+ }
22
+ registerToResources() {
23
+ this.resourcesObserver = new PerformanceObserver((list) => {
24
+ list.getEntries().forEach((entry) => {
25
+ if (this.isProcessableResourceEntry(entry)) {
26
+ const mappedEntry = this.mapResource(entry);
27
+ this.createSpanFromResource(mappedEntry);
28
+ }
29
+ });
30
+ });
31
+ this.resourcesObserver.observe({
32
+ type: PerformanceTypes.Resource,
33
+ buffered: true,
34
+ });
35
+ }
36
+ isProcessableResourceEntry(entry) {
37
+ const isAcceptedResourceType = ![
38
+ ResourceInitiatorTypes.Xhr,
39
+ ResourceInitiatorTypes.Fetch,
40
+ ].includes(entry
41
+ .initiatorType);
42
+ const isNotIgnoredResource = !this.isResourceIgnored(entry.name);
43
+ return isAcceptedResourceType && isNotIgnoredResource;
44
+ }
45
+ isResourceIgnored(resourceName) {
46
+ var _a;
47
+ if (!resourceName || !((_a = this.ignoreUrls) === null || _a === void 0 ? void 0 : _a.length)) {
48
+ return false;
49
+ }
50
+ return isPatternMatch(resourceName, this.ignoreUrls, 'ignoreUrls');
51
+ }
52
+ mapResource(resource) {
53
+ const resourceName = resource.name;
54
+ let initiatorType = resource.initiatorType;
55
+ switch (true) {
56
+ case resourceInitiatorTypeIs(initiatorType, [
57
+ ResourceInitiatorTypes.Beacon,
58
+ ]) || valueEndWithOrInclude(resourceName, OTHER_EXTENSIONS):
59
+ initiatorType = ResourceInitiatorTypes.Other;
60
+ break;
61
+ case initiatorType !== ResourceInitiatorTypes.Css &&
62
+ valueEndWithOrInclude(resourceName, CSS_EXTENSIONS):
63
+ initiatorType = ResourceInitiatorTypes.Css;
64
+ break;
65
+ case initiatorType !== ResourceInitiatorTypes.Script &&
66
+ valueEndWithOrInclude(resourceName, SCRIPT_EXTENSIONS):
67
+ initiatorType = ResourceInitiatorTypes.Script;
68
+ break;
69
+ case initiatorType !== ResourceInitiatorTypes.Img &&
70
+ valueEndWithOrInclude(resourceName, IMG_EXTENSIONS):
71
+ initiatorType = ResourceInitiatorTypes.Img;
72
+ break;
73
+ case resourceName.includes(FONTS_URL) ||
74
+ valueEndWithOrInclude(resourceName, FONT_EXTENSIONS):
75
+ initiatorType = ResourceInitiatorTypes.Font;
76
+ break;
77
+ case initiatorType !== ResourceInitiatorTypes.Iframe &&
78
+ valueEndWithOrInclude(resourceName, DOC_EXTENSIONS):
79
+ initiatorType = ResourceInitiatorTypes.Doc;
80
+ break;
81
+ case resourceInitiatorTypeIs(initiatorType, [
82
+ ResourceInitiatorTypes.Video,
83
+ ResourceInitiatorTypes.Audio,
84
+ ResourceInitiatorTypes.Track,
85
+ ]) || valueEndWithOrInclude(resourceName, MEDIA_EXTENSIONS):
86
+ initiatorType = ResourceInitiatorTypes.Media;
87
+ break;
88
+ }
89
+ return Object.assign(Object.assign({}, deepClone(resource)), { initiatorType });
90
+ }
91
+ createSpanFromResource(entry) {
92
+ var _a;
93
+ const resourceSpan = this.tracer.startSpan(RESOURCES_INSTRUMENTATION_NAME);
94
+ resourceSpan.setAttribute(CoralogixAttributes.EVENT_TYPE, CoralogixEventType.RESOURCES);
95
+ const newEntry = Object.assign(Object.assign({}, deepClone(entry)), { name: (_a = entry.name) === null || _a === void 0 ? void 0 : _a.slice(0, MAX_CHARACTERS) });
96
+ resourceSpan.setAttribute(RESOURCES_INSTRUMENTATION_NAME, JSON.stringify(newEntry));
97
+ resourceSpan.end();
98
+ }
99
+ enable() { }
100
+ disable() {
101
+ var _a;
102
+ (_a = this.resourcesObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
103
+ }
104
+ init() { }
105
+ }
106
+ //# sourceMappingURL=CoralogixResourcesInstrumentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoralogixResourcesInstrumentation.js","sourceRoot":"","sources":["../../../../../libs/browser/src/instrumentations/CoralogixResourcesInstrumentation.ts"],"names":[],"mappings":"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"}