@coralogix/browser 1.0.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 (50) hide show
  1. package/README.md +3 -0
  2. package/browser-sdk-version.d.ts +1 -0
  3. package/browser-sdk-version.js +2 -0
  4. package/browser-sdk-version.js.map +1 -0
  5. package/package.json +21 -0
  6. package/src/CoralogixCustomLogInstrumentation.d.ts +12 -0
  7. package/src/CoralogixCustomLogInstrumentation.js +32 -0
  8. package/src/CoralogixCustomLogInstrumentation.js.map +1 -0
  9. package/src/CoralogixErrorInstrumentation.d.ts +30 -0
  10. package/src/CoralogixErrorInstrumentation.js +193 -0
  11. package/src/CoralogixErrorInstrumentation.js.map +1 -0
  12. package/src/CoralogixExporter.d.ts +14 -0
  13. package/src/CoralogixExporter.js +149 -0
  14. package/src/CoralogixExporter.js.map +1 -0
  15. package/src/CoralogixFetchInstrumentation.d.ts +8 -0
  16. package/src/CoralogixFetchInstrumentation.js +28 -0
  17. package/src/CoralogixFetchInstrumentation.js.map +1 -0
  18. package/src/CoralogixPropgator.d.ts +3 -0
  19. package/src/CoralogixPropgator.js +9 -0
  20. package/src/CoralogixPropgator.js.map +1 -0
  21. package/src/CoralogixSpanAttributesProcessor.d.ts +18 -0
  22. package/src/CoralogixSpanAttributesProcessor.js +57 -0
  23. package/src/CoralogixSpanAttributesProcessor.js.map +1 -0
  24. package/src/CoralogixWebTracerProvider.d.ts +3 -0
  25. package/src/CoralogixWebTracerProvider.js +4 -0
  26. package/src/CoralogixWebTracerProvider.js.map +1 -0
  27. package/src/CoralogixXhrInstrumentation.d.ts +7 -0
  28. package/src/CoralogixXhrInstrumentation.js +25 -0
  29. package/src/CoralogixXhrInstrumentation.js.map +1 -0
  30. package/src/constants.d.ts +54 -0
  31. package/src/constants.js +67 -0
  32. package/src/constants.js.map +1 -0
  33. package/src/index.d.ts +2 -0
  34. package/src/index.js +170 -0
  35. package/src/index.js.map +1 -0
  36. package/src/types-external.d.ts +8 -0
  37. package/src/types-external.js +10 -0
  38. package/src/types-external.js.map +1 -0
  39. package/src/types.d.ts +202 -0
  40. package/src/types.js +17 -0
  41. package/src/types.js.map +1 -0
  42. package/src/utils..d.ts +11 -0
  43. package/src/utils..js +67 -0
  44. package/src/utils..js.map +1 -0
  45. package/tests/integration/utils.d.ts +7 -0
  46. package/tests/integration/utils.js +39 -0
  47. package/tests/integration/utils.js.map +1 -0
  48. package/tests/unit/test-utils.d.ts +2 -0
  49. package/tests/unit/test-utils.js +14 -0
  50. package/tests/unit/test-utils.js.map +1 -0
package/src/utils..js ADDED
@@ -0,0 +1,67 @@
1
+ import { OPTIONS_DEFAULTS } from './constants';
2
+ export function getInstrumentationConfig(value, defaults, defaultDisable, resolvedOptions) {
3
+ if (value === false || (value === undefined && defaultDisable)) {
4
+ return undefined;
5
+ }
6
+ return Object.assign(Object.assign({ enabled: true }, defaults), resolvedOptions);
7
+ }
8
+ export function resolveCoralogixOtelWebConfig(config) {
9
+ const { ignoreUrls } = config;
10
+ const resolvedIgnoreUrls = [];
11
+ ignoreUrls && resolvedIgnoreUrls.push(...ignoreUrls);
12
+ OPTIONS_DEFAULTS.ignoreUrls &&
13
+ resolvedIgnoreUrls.push(...OPTIONS_DEFAULTS.ignoreUrls);
14
+ return Object.assign(Object.assign(Object.assign({}, OPTIONS_DEFAULTS), config), { ignoreUrls: resolvedIgnoreUrls });
15
+ }
16
+ export const isNetworkError = (status) => !status || status >= 400;
17
+ export function parseUserAgent(userAgent) {
18
+ const browsers = {
19
+ Chrome: /Chrome\/([\d.]+)/,
20
+ Firefox: /Firefox\/([\d.]+)/,
21
+ Safari: /Version\/([\d.]+).*Safari/,
22
+ Edge: /Edge\/([\d.]+)/,
23
+ Opera: /Opera\/([\d.]+)/,
24
+ IE: /Trident.*rv:([\d.]+)/,
25
+ };
26
+ const operatingSystems = {
27
+ Windows: /Windows NT ([\d.]+)/,
28
+ MacOS: /Mac OS X ([\d._]+)/,
29
+ Linux: /Linux/,
30
+ iOS: /CPU(?: iPhone)? OS (\d+([._]\d+)*)/,
31
+ Android: /Android (\d+([._]\d+)*)/,
32
+ };
33
+ const devices = {
34
+ Mobile: /Mobile|Android|iPhone|iPod|BlackBerry|IEMobile|Windows Phone|webOS|Opera Mini/,
35
+ Tablet: /Tablet|iPad/,
36
+ };
37
+ let browser = 'Unknown';
38
+ let browserVersion = 'Unknown';
39
+ let os = 'Unknown';
40
+ let osVersion = 'Unknown';
41
+ let device = 'Desktop';
42
+ for (const [name, regex] of Object.entries(browsers)) {
43
+ const match = userAgent.match(regex);
44
+ if (match) {
45
+ browser = name;
46
+ browserVersion = match[1] || 'Unknown';
47
+ break;
48
+ }
49
+ }
50
+ for (const [name, regex] of Object.entries(operatingSystems)) {
51
+ const match = userAgent.match(regex);
52
+ if (match) {
53
+ os = name;
54
+ osVersion = match[1].replaceAll('_', '.') || 'Unknown';
55
+ break;
56
+ }
57
+ }
58
+ for (const [name, regex] of Object.entries(devices)) {
59
+ const match = userAgent.match(regex);
60
+ if (match) {
61
+ device = name;
62
+ break;
63
+ }
64
+ }
65
+ return { browser, browserVersion, os, osVersion, device };
66
+ }
67
+ //# sourceMappingURL=utils..js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils..js","sourceRoot":"","sources":["../../../../libs/browser/src/utils..ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { CoralogixOtelWebConfig } from '../../src/types';
2
+ export declare const demoAppRumConfig: CoralogixOtelWebConfig;
3
+ export declare const consoleErrorText = "This is console error!";
4
+ export declare const eventErrorText = "This is event error!";
5
+ export declare const unhandledRejectionErrorText = "This is an unhandled rejection error.";
6
+ export declare const xhrUrl = "https://webapi.coralogix.com/api/v1/company";
7
+ export declare const fetchUrl = "https://webapi.coralogix.fetch/test";
@@ -0,0 +1,39 @@
1
+ export const demoAppRumConfig = {
2
+ environment: 'test-env',
3
+ instrumentations: {
4
+ errors: true,
5
+ fetch: true,
6
+ xhr: true,
7
+ },
8
+ application: 'rum-test',
9
+ debug: true,
10
+ version: '2',
11
+ public_key: '84bd3129-0363-4035-82b2-1874ee1de2cf',
12
+ coralogixdDomain: 'EU2',
13
+ ignoreUrls: [/.*\.svg/],
14
+ labels: {
15
+ employee: {
16
+ name: 'name',
17
+ age: 27,
18
+ },
19
+ },
20
+ user_context: {
21
+ user_id: 'user-id',
22
+ user_name: 'user-name',
23
+ },
24
+ traceParentInHeader: {
25
+ enabled: true,
26
+ options: {
27
+ propagateTraceHeaderCorsUrls: [
28
+ new RegExp('google.com'),
29
+ new RegExp('https://webapi.eu2.coralogix.com'),
30
+ ],
31
+ },
32
+ },
33
+ };
34
+ export const consoleErrorText = 'This is console error!';
35
+ export const eventErrorText = 'This is event error!';
36
+ export const unhandledRejectionErrorText = 'This is an unhandled rejection error.';
37
+ export const xhrUrl = 'https://webapi.coralogix.com/api/v1/company';
38
+ export const fetchUrl = 'https://webapi.coralogix.fetch/test';
39
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../libs/browser/tests/integration/utils.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAA2B;IACtD,WAAW,EAAE,UAAU;IACvB,gBAAgB,EAAE;QAChB,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,IAAI;QACX,GAAG,EAAE,IAAI;KACV;IACD,WAAW,EAAE,UAAU;IACvB,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,GAAG;IACZ,UAAU,EAAE,sCAAsC;IAClD,gBAAgB,EAAE,KAAK;IACvB,UAAU,EAAE,CAAC,SAAS,CAAC;IACvB,MAAM,EAAE;QACN,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,EAAE;SACR;KACF;IACD,YAAY,EAAE;QACZ,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,WAAW;KACvB;IACD,mBAAmB,EAAE;QACnB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE;YACP,4BAA4B,EAAE;gBAC5B,IAAI,MAAM,CAAC,YAAY,CAAC;gBACxB,IAAI,MAAM,CAAC,kCAAkC,CAAC;aAC/C;SACF;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AACzD,MAAM,CAAC,MAAM,cAAc,GAAG,sBAAsB,CAAC;AACrD,MAAM,CAAC,MAAM,2BAA2B,GACtC,uCAAuC,CAAC;AAC1C,MAAM,CAAC,MAAM,MAAM,GAAG,6CAA6C,CAAC;AACpE,MAAM,CAAC,MAAM,QAAQ,GAAG,qCAAqC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { CoralogixOtelWebConfig } from '../../src/types';
2
+ export declare function getConfigMock(override?: Partial<CoralogixOtelWebConfig>): CoralogixOtelWebConfig;
@@ -0,0 +1,14 @@
1
+ export function getConfigMock(override) {
2
+ return Object.assign({ application: 'app-name', coralogixdDomain: 'EU1', public_key: 'some-public-key', debug: true, version: '2', ignoreUrls: [/.*\.svg/], labels: {
3
+ employee: {
4
+ name: 'name',
5
+ age: 27,
6
+ },
7
+ }, traceParentInHeader: {
8
+ enabled: true,
9
+ options: {
10
+ propagateTraceHeaderCorsUrls: [new RegExp('google.com')],
11
+ },
12
+ } }, override);
13
+ }
14
+ //# sourceMappingURL=test-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../../../../../libs/browser/tests/unit/test-utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAC3B,QAA0C;IAE1C,uBACE,WAAW,EAAE,UAAU,EACvB,gBAAgB,EAAE,KAAK,EACvB,UAAU,EAAE,iBAAiB,EAC7B,KAAK,EAAE,IAAI,EACX,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,CAAC,SAAS,CAAC,EACvB,MAAM,EAAE;YACN,QAAQ,EAAE;gBACR,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,EAAE;aACR;SACF,EACD,mBAAmB,EAAE;YACnB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE;gBACP,4BAA4B,EAAE,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;aACzD;SACF,IACE,QAAQ,EACX;AACJ,CAAC"}