@safaricom-mxl/web-sdk 0.0.15 → 0.0.16
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.
- package/dist/constants/attributes.cjs +2 -0
- package/dist/constants/attributes.cjs.map +1 -1
- package/dist/constants/attributes.d.cts +2 -1
- package/dist/constants/attributes.d.cts.map +1 -1
- package/dist/constants/attributes.d.ts +2 -1
- package/dist/constants/attributes.d.ts.map +1 -1
- package/dist/constants/attributes.js +2 -1
- package/dist/constants/attributes.js.map +1 -1
- package/dist/constants/index.cjs +1 -0
- package/dist/constants/index.d.cts +2 -2
- package/dist/constants/index.d.ts +2 -2
- package/dist/constants/index.js +2 -2
- package/dist/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.cjs +1 -1
- package/dist/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.cjs.map +1 -1
- package/dist/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.d.cts.map +1 -1
- package/dist/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.d.ts.map +1 -1
- package/dist/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.js +2 -2
- package/dist/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.js.map +1 -1
- package/dist/managers/MXLLogManager/MXLLogManager.cjs +3 -1
- package/dist/managers/MXLLogManager/MXLLogManager.cjs.map +1 -1
- package/dist/managers/MXLLogManager/MXLLogManager.d.cts.map +1 -1
- package/dist/managers/MXLLogManager/MXLLogManager.d.ts.map +1 -1
- package/dist/managers/MXLLogManager/MXLLogManager.js +4 -2
- package/dist/managers/MXLLogManager/MXLLogManager.js.map +1 -1
- package/dist/mxl-web-sdk.js +3 -38
- package/dist/mxl-web-sdk.js.map +1 -1
- package/dist/resources/constants/index.cjs +1 -1
- package/dist/resources/constants/index.cjs.map +1 -1
- package/dist/resources/constants/index.d.cts +1 -1
- package/dist/resources/constants/index.d.ts +1 -1
- package/dist/resources/constants/index.js +1 -1
- package/dist/resources/constants/index.js.map +1 -1
- package/dist/sdk/initSDK.cjs +14 -12
- package/dist/sdk/initSDK.cjs.map +1 -1
- package/dist/sdk/initSDK.d.cts.map +1 -1
- package/dist/sdk/initSDK.d.ts.map +1 -1
- package/dist/sdk/initSDK.js +14 -12
- package/dist/sdk/initSDK.js.map +1 -1
- package/dist/sdk/noopSessionRecording.cjs +10 -0
- package/dist/sdk/noopSessionRecording.cjs.map +1 -0
- package/dist/sdk/noopSessionRecording.d.cts +7 -0
- package/dist/sdk/noopSessionRecording.d.cts.map +1 -0
- package/dist/sdk/noopSessionRecording.d.ts +7 -0
- package/dist/sdk/noopSessionRecording.d.ts.map +1 -0
- package/dist/sdk/noopSessionRecording.js +9 -0
- package/dist/sdk/noopSessionRecording.js.map +1 -0
- package/dist/sdk/setupSessionRecorder.cjs +64 -22
- package/dist/sdk/setupSessionRecorder.cjs.map +1 -1
- package/dist/sdk/setupSessionRecorder.d.cts +16 -7
- package/dist/sdk/setupSessionRecorder.d.cts.map +1 -1
- package/dist/sdk/setupSessionRecorder.d.ts +16 -7
- package/dist/sdk/setupSessionRecorder.d.ts.map +1 -1
- package/dist/sdk/setupSessionRecorder.js +62 -21
- package/dist/sdk/setupSessionRecorder.js.map +1 -1
- package/package.json +2 -2
|
@@ -10,6 +10,7 @@ const KEY_PREFIX_MXL_PROPERTIES = "mxl.properties.";
|
|
|
10
10
|
const KEY_MXL_SESSION_REASON_ENDED = "mxl.session_end_type";
|
|
11
11
|
const KEY_MXL_SESSION_REASON_STARTED = "mxl.session_start_type";
|
|
12
12
|
const KEY_MXL_JS_EXCEPTION_STACKTRACE = "mxl.stacktrace.js";
|
|
13
|
+
const KEY_REACT_COMPONENT_STACK = "react.component_stack";
|
|
13
14
|
const KEY_MXL_EXCEPTION_HANDLING = "mxl.exception_handling";
|
|
14
15
|
const KEY_MXL_EXCEPTION_CAUSE = "mxl.exception_cause";
|
|
15
16
|
const KEY_MXL_ERROR_CODE = "mxl.error_code";
|
|
@@ -97,6 +98,7 @@ exports.KEY_MXL_TYPE = KEY_MXL_TYPE;
|
|
|
97
98
|
exports.KEY_MXL_UNHANDLED_EXCEPTIONS_COUNT = KEY_MXL_UNHANDLED_EXCEPTIONS_COUNT;
|
|
98
99
|
exports.KEY_MXL_W3C_TRACEPARENT = KEY_MXL_W3C_TRACEPARENT;
|
|
99
100
|
exports.KEY_PREFIX_MXL_PROPERTIES = KEY_PREFIX_MXL_PROPERTIES;
|
|
101
|
+
exports.KEY_REACT_COMPONENT_STACK = KEY_REACT_COMPONENT_STACK;
|
|
100
102
|
exports.MXL_ERROR_INSTRUMENTATIONS = MXL_ERROR_INSTRUMENTATIONS;
|
|
101
103
|
exports.MXL_NAVIGATION_INSTRUMENTATIONS = MXL_NAVIGATION_INSTRUMENTATIONS;
|
|
102
104
|
exports.MXL_PERFORMANCE_INSTRUMENTATIONS = MXL_PERFORMANCE_INSTRUMENTATIONS;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributes.cjs","names":[],"sources":["../../src/constants/attributes.ts"],"sourcesContent":["export const KEY_MXL_TYPE = 'mxl.type';\nexport const KEY_MXL_STATE = 'mxl.state';\nexport const KEY_MXL_COLD_START = 'mxl.cold_start';\nexport const KEY_MXL_SESSION_NUMBER = 'mxl.session_number';\nexport const KEY_MXL_EXCEPTION_NUMBER = 'mxl.exception_number';\nexport const KEY_MXL_SDK_STARTUP_DURATION = 'mxl.sdk_startup_duration';\nexport const KEY_PREFIX_MXL_PROPERTIES = 'mxl.properties.';\nexport const KEY_MXL_SESSION_REASON_ENDED = 'mxl.session_end_type';\nexport const KEY_MXL_SESSION_REASON_STARTED = 'mxl.session_start_type';\nexport const KEY_MXL_JS_EXCEPTION_STACKTRACE = 'mxl.stacktrace.js';\nexport const KEY_MXL_EXCEPTION_HANDLING = 'mxl.exception_handling';\nexport const KEY_MXL_EXCEPTION_CAUSE = 'mxl.exception_cause';\nexport const KEY_MXL_ERROR_CODE = 'mxl.error_code';\nexport const KEY_MXL_APP_INSTANCE_ID = 'mxl.app_instance_id';\nexport const KEY_MXL_TAB_ID = 'mxl.tab_id';\nexport const KEY_MXL_SOURCE_TAB_ID = 'mxl.source_tab_id';\nexport const KEY_MXL_EXPERIENCE_ID = 'mxl.experience_id';\nexport const KEY_MXL_ERROR_LOG_COUNT = 'mxl.error_log_count';\nexport const KEY_MXL_INSTRUMENTATION = 'mxl.instrumentation';\nexport const KEY_MXL_UNHANDLED_EXCEPTIONS_COUNT =\n 'mxl.unhandled_exceptions_count';\nexport const KEY_MXL_FROM_STORAGE = 'mxl.from_storage';\nexport const KEY_MXL_JS_FILE_BUNDLE_IDS = 'mxl.js_file_bundle_ids';\nexport const KEY_MXL_W3C_TRACEPARENT = 'mxl.w3c_traceparent';\nexport const KEY_MXL_NAVIGATION_SOURCE = 'mxl.navigation_source';\nexport const KEY_MXL_REFERRER_URL = 'mxl.referrer_url';\nexport const KEY_BROWSER_URL_FULL = 'browser.url.full';\nexport const KEY_MXL_MAX_PENDING_SPANS_REACHED =\n 'mxl.max_pending_spans_reached';\n// In the backend we use 'app.surface.name' and 'app.surface.id' for the page name and id\n// to be consistent with mobile where we use 'app.surface.*' for screen names and ids\nexport const KEY_MXL_PAGE_PATH = 'app.surface.name';\nexport const KEY_MXL_PAGE_ID = 'app.surface.id';\nexport const KEY_APP_SURFACE_LABEL = 'app.surface.label';\n\nexport enum MXL_TYPES {\n Session = 'ux.session',\n Network = 'perf.network_request',\n Perf = 'perf',\n SystemLog = 'sys.log', // SystemLog is a log mxl type that tells the MXL BE to treat this as an MXL Log to be shown in the dashboard.\n SystemException = 'sys.exception',\n WebVital = 'ux.web_vital',\n LoafScripts = 'ux.loaf_scripts',\n ResourceFetch = 'ux.resource_fetch',\n DocumentLoad = 'ux.document_load',\n Surface = 'ux.surface',\n UserTiming = 'ux.user_timing',\n ElementTiming = 'ux.element_timing',\n ServerTiming = 'ux.server_timing',\n}\n\nexport enum MXL_STATES {\n Foreground = 'foreground',\n Background = 'background',\n}\n\nexport enum MXL_NAVIGATION_INSTRUMENTATIONS {\n DeclarativeLegacy = 'react_router_declarative_legacy',\n Declarative = 'react_router_declarative',\n Data = 'react_router_data',\n Manual = 'manual',\n}\n\nexport enum MXL_ERROR_INSTRUMENTATIONS {\n ReactErrorBoundary = 'react_error_boundary',\n}\n\nexport enum MXL_PERFORMANCE_INSTRUMENTATIONS {\n UserTiming = 'user_timing',\n}\n\nexport type MXL_INSTRUMENTATIONS =\n | MXL_NAVIGATION_INSTRUMENTATIONS\n | MXL_ERROR_INSTRUMENTATIONS\n | MXL_PERFORMANCE_INSTRUMENTATIONS;\n"],"mappings":";;AAAA,MAAa,eAAe;AAC5B,MAAa,gBAAgB;AAC7B,MAAa,qBAAqB;AAClC,MAAa,yBAAyB;AACtC,MAAa,2BAA2B;AACxC,MAAa,+BAA+B;AAC5C,MAAa,4BAA4B;AACzC,MAAa,+BAA+B;AAC5C,MAAa,iCAAiC;AAC9C,MAAa,kCAAkC;AAC/C,MAAa,6BAA6B;AAC1C,MAAa,0BAA0B;AACvC,MAAa,qBAAqB;AAClC,MAAa,0BAA0B;AACvC,MAAa,iBAAiB;AAC9B,MAAa,wBAAwB;AACrC,MAAa,wBAAwB;AACrC,MAAa,0BAA0B;AACvC,MAAa,0BAA0B;AACvC,MAAa,qCACX;AACF,MAAa,uBAAuB;AACpC,MAAa,6BAA6B;AAC1C,MAAa,0BAA0B;AACvC,MAAa,4BAA4B;AACzC,MAAa,uBAAuB;AACpC,MAAa,uBAAuB;AACpC,MAAa,oCACX;AAGF,MAAa,oBAAoB;AACjC,MAAa,kBAAkB;AAC/B,MAAa,wBAAwB;AAErC,IAAY,YAAL,yBAAA,WAAA;AACL,WAAA,aAAA;AACA,WAAA,aAAA;AACA,WAAA,UAAA;AACA,WAAA,eAAA;AACA,WAAA,qBAAA;AACA,WAAA,cAAA;AACA,WAAA,iBAAA;AACA,WAAA,mBAAA;AACA,WAAA,kBAAA;AACA,WAAA,aAAA;AACA,WAAA,gBAAA;AACA,WAAA,mBAAA;AACA,WAAA,kBAAA;;KACD;AAED,IAAY,aAAL,yBAAA,YAAA;AACL,YAAA,gBAAA;AACA,YAAA,gBAAA;;KACD;AAED,IAAY,kCAAL,yBAAA,iCAAA;AACL,iCAAA,uBAAA;AACA,iCAAA,iBAAA;AACA,iCAAA,UAAA;AACA,iCAAA,YAAA;;KACD;AAED,IAAY,6BAAL,yBAAA,4BAAA;AACL,4BAAA,wBAAA;;KACD;AAED,IAAY,mCAAL,yBAAA,kCAAA;AACL,kCAAA,gBAAA;;KACD"}
|
|
1
|
+
{"version":3,"file":"attributes.cjs","names":[],"sources":["../../src/constants/attributes.ts"],"sourcesContent":["export const KEY_MXL_TYPE = 'mxl.type';\nexport const KEY_MXL_STATE = 'mxl.state';\nexport const KEY_MXL_COLD_START = 'mxl.cold_start';\nexport const KEY_MXL_SESSION_NUMBER = 'mxl.session_number';\nexport const KEY_MXL_EXCEPTION_NUMBER = 'mxl.exception_number';\nexport const KEY_MXL_SDK_STARTUP_DURATION = 'mxl.sdk_startup_duration';\nexport const KEY_PREFIX_MXL_PROPERTIES = 'mxl.properties.';\nexport const KEY_MXL_SESSION_REASON_ENDED = 'mxl.session_end_type';\nexport const KEY_MXL_SESSION_REASON_STARTED = 'mxl.session_start_type';\nexport const KEY_MXL_JS_EXCEPTION_STACKTRACE = 'mxl.stacktrace.js';\nexport const KEY_REACT_COMPONENT_STACK = 'react.component_stack';\nexport const KEY_MXL_EXCEPTION_HANDLING = 'mxl.exception_handling';\nexport const KEY_MXL_EXCEPTION_CAUSE = 'mxl.exception_cause';\nexport const KEY_MXL_ERROR_CODE = 'mxl.error_code';\nexport const KEY_MXL_APP_INSTANCE_ID = 'mxl.app_instance_id';\nexport const KEY_MXL_TAB_ID = 'mxl.tab_id';\nexport const KEY_MXL_SOURCE_TAB_ID = 'mxl.source_tab_id';\nexport const KEY_MXL_EXPERIENCE_ID = 'mxl.experience_id';\nexport const KEY_MXL_ERROR_LOG_COUNT = 'mxl.error_log_count';\nexport const KEY_MXL_INSTRUMENTATION = 'mxl.instrumentation';\nexport const KEY_MXL_UNHANDLED_EXCEPTIONS_COUNT =\n 'mxl.unhandled_exceptions_count';\nexport const KEY_MXL_FROM_STORAGE = 'mxl.from_storage';\nexport const KEY_MXL_JS_FILE_BUNDLE_IDS = 'mxl.js_file_bundle_ids';\nexport const KEY_MXL_W3C_TRACEPARENT = 'mxl.w3c_traceparent';\nexport const KEY_MXL_NAVIGATION_SOURCE = 'mxl.navigation_source';\nexport const KEY_MXL_REFERRER_URL = 'mxl.referrer_url';\nexport const KEY_BROWSER_URL_FULL = 'browser.url.full';\nexport const KEY_MXL_MAX_PENDING_SPANS_REACHED =\n 'mxl.max_pending_spans_reached';\n// In the backend we use 'app.surface.name' and 'app.surface.id' for the page name and id\n// to be consistent with mobile where we use 'app.surface.*' for screen names and ids\nexport const KEY_MXL_PAGE_PATH = 'app.surface.name';\nexport const KEY_MXL_PAGE_ID = 'app.surface.id';\nexport const KEY_APP_SURFACE_LABEL = 'app.surface.label';\n\nexport enum MXL_TYPES {\n Session = 'ux.session',\n Network = 'perf.network_request',\n Perf = 'perf',\n SystemLog = 'sys.log', // SystemLog is a log mxl type that tells the MXL BE to treat this as an MXL Log to be shown in the dashboard.\n SystemException = 'sys.exception',\n WebVital = 'ux.web_vital',\n LoafScripts = 'ux.loaf_scripts',\n ResourceFetch = 'ux.resource_fetch',\n DocumentLoad = 'ux.document_load',\n Surface = 'ux.surface',\n UserTiming = 'ux.user_timing',\n ElementTiming = 'ux.element_timing',\n ServerTiming = 'ux.server_timing',\n}\n\nexport enum MXL_STATES {\n Foreground = 'foreground',\n Background = 'background',\n}\n\nexport enum MXL_NAVIGATION_INSTRUMENTATIONS {\n DeclarativeLegacy = 'react_router_declarative_legacy',\n Declarative = 'react_router_declarative',\n Data = 'react_router_data',\n Manual = 'manual',\n}\n\nexport enum MXL_ERROR_INSTRUMENTATIONS {\n ReactErrorBoundary = 'react_error_boundary',\n}\n\nexport enum MXL_PERFORMANCE_INSTRUMENTATIONS {\n UserTiming = 'user_timing',\n}\n\nexport type MXL_INSTRUMENTATIONS =\n | MXL_NAVIGATION_INSTRUMENTATIONS\n | MXL_ERROR_INSTRUMENTATIONS\n | MXL_PERFORMANCE_INSTRUMENTATIONS;\n"],"mappings":";;AAAA,MAAa,eAAe;AAC5B,MAAa,gBAAgB;AAC7B,MAAa,qBAAqB;AAClC,MAAa,yBAAyB;AACtC,MAAa,2BAA2B;AACxC,MAAa,+BAA+B;AAC5C,MAAa,4BAA4B;AACzC,MAAa,+BAA+B;AAC5C,MAAa,iCAAiC;AAC9C,MAAa,kCAAkC;AAC/C,MAAa,4BAA4B;AACzC,MAAa,6BAA6B;AAC1C,MAAa,0BAA0B;AACvC,MAAa,qBAAqB;AAClC,MAAa,0BAA0B;AACvC,MAAa,iBAAiB;AAC9B,MAAa,wBAAwB;AACrC,MAAa,wBAAwB;AACrC,MAAa,0BAA0B;AACvC,MAAa,0BAA0B;AACvC,MAAa,qCACX;AACF,MAAa,uBAAuB;AACpC,MAAa,6BAA6B;AAC1C,MAAa,0BAA0B;AACvC,MAAa,4BAA4B;AACzC,MAAa,uBAAuB;AACpC,MAAa,uBAAuB;AACpC,MAAa,oCACX;AAGF,MAAa,oBAAoB;AACjC,MAAa,kBAAkB;AAC/B,MAAa,wBAAwB;AAErC,IAAY,YAAL,yBAAA,WAAA;AACL,WAAA,aAAA;AACA,WAAA,aAAA;AACA,WAAA,UAAA;AACA,WAAA,eAAA;AACA,WAAA,qBAAA;AACA,WAAA,cAAA;AACA,WAAA,iBAAA;AACA,WAAA,mBAAA;AACA,WAAA,kBAAA;AACA,WAAA,aAAA;AACA,WAAA,gBAAA;AACA,WAAA,mBAAA;AACA,WAAA,kBAAA;;KACD;AAED,IAAY,aAAL,yBAAA,YAAA;AACL,YAAA,gBAAA;AACA,YAAA,gBAAA;;KACD;AAED,IAAY,kCAAL,yBAAA,iCAAA;AACL,iCAAA,uBAAA;AACA,iCAAA,iBAAA;AACA,iCAAA,UAAA;AACA,iCAAA,YAAA;;KACD;AAED,IAAY,6BAAL,yBAAA,4BAAA;AACL,4BAAA,wBAAA;;KACD;AAED,IAAY,mCAAL,yBAAA,kCAAA;AACL,kCAAA,gBAAA;;KACD"}
|
|
@@ -9,6 +9,7 @@ declare const KEY_PREFIX_MXL_PROPERTIES = "mxl.properties.";
|
|
|
9
9
|
declare const KEY_MXL_SESSION_REASON_ENDED = "mxl.session_end_type";
|
|
10
10
|
declare const KEY_MXL_SESSION_REASON_STARTED = "mxl.session_start_type";
|
|
11
11
|
declare const KEY_MXL_JS_EXCEPTION_STACKTRACE = "mxl.stacktrace.js";
|
|
12
|
+
declare const KEY_REACT_COMPONENT_STACK = "react.component_stack";
|
|
12
13
|
declare const KEY_MXL_EXCEPTION_HANDLING = "mxl.exception_handling";
|
|
13
14
|
declare const KEY_MXL_EXCEPTION_CAUSE = "mxl.exception_cause";
|
|
14
15
|
declare const KEY_MXL_ERROR_CODE = "mxl.error_code";
|
|
@@ -63,5 +64,5 @@ declare enum MXL_PERFORMANCE_INSTRUMENTATIONS {
|
|
|
63
64
|
}
|
|
64
65
|
type MXL_INSTRUMENTATIONS = MXL_NAVIGATION_INSTRUMENTATIONS | MXL_ERROR_INSTRUMENTATIONS | MXL_PERFORMANCE_INSTRUMENTATIONS;
|
|
65
66
|
//#endregion
|
|
66
|
-
export { KEY_APP_SURFACE_LABEL, KEY_BROWSER_URL_FULL, KEY_MXL_APP_INSTANCE_ID, KEY_MXL_COLD_START, KEY_MXL_ERROR_CODE, KEY_MXL_ERROR_LOG_COUNT, KEY_MXL_EXCEPTION_CAUSE, KEY_MXL_EXCEPTION_HANDLING, KEY_MXL_EXCEPTION_NUMBER, KEY_MXL_EXPERIENCE_ID, KEY_MXL_FROM_STORAGE, KEY_MXL_INSTRUMENTATION, KEY_MXL_JS_EXCEPTION_STACKTRACE, KEY_MXL_JS_FILE_BUNDLE_IDS, KEY_MXL_MAX_PENDING_SPANS_REACHED, KEY_MXL_NAVIGATION_SOURCE, KEY_MXL_PAGE_ID, KEY_MXL_PAGE_PATH, KEY_MXL_REFERRER_URL, KEY_MXL_SDK_STARTUP_DURATION, KEY_MXL_SESSION_NUMBER, KEY_MXL_SESSION_REASON_ENDED, KEY_MXL_SESSION_REASON_STARTED, KEY_MXL_SOURCE_TAB_ID, KEY_MXL_STATE, KEY_MXL_TAB_ID, KEY_MXL_TYPE, KEY_MXL_UNHANDLED_EXCEPTIONS_COUNT, KEY_MXL_W3C_TRACEPARENT, KEY_PREFIX_MXL_PROPERTIES, MXL_ERROR_INSTRUMENTATIONS, MXL_INSTRUMENTATIONS, MXL_NAVIGATION_INSTRUMENTATIONS, MXL_PERFORMANCE_INSTRUMENTATIONS, MXL_STATES, MXL_TYPES };
|
|
67
|
+
export { KEY_APP_SURFACE_LABEL, KEY_BROWSER_URL_FULL, KEY_MXL_APP_INSTANCE_ID, KEY_MXL_COLD_START, KEY_MXL_ERROR_CODE, KEY_MXL_ERROR_LOG_COUNT, KEY_MXL_EXCEPTION_CAUSE, KEY_MXL_EXCEPTION_HANDLING, KEY_MXL_EXCEPTION_NUMBER, KEY_MXL_EXPERIENCE_ID, KEY_MXL_FROM_STORAGE, KEY_MXL_INSTRUMENTATION, KEY_MXL_JS_EXCEPTION_STACKTRACE, KEY_MXL_JS_FILE_BUNDLE_IDS, KEY_MXL_MAX_PENDING_SPANS_REACHED, KEY_MXL_NAVIGATION_SOURCE, KEY_MXL_PAGE_ID, KEY_MXL_PAGE_PATH, KEY_MXL_REFERRER_URL, KEY_MXL_SDK_STARTUP_DURATION, KEY_MXL_SESSION_NUMBER, KEY_MXL_SESSION_REASON_ENDED, KEY_MXL_SESSION_REASON_STARTED, KEY_MXL_SOURCE_TAB_ID, KEY_MXL_STATE, KEY_MXL_TAB_ID, KEY_MXL_TYPE, KEY_MXL_UNHANDLED_EXCEPTIONS_COUNT, KEY_MXL_W3C_TRACEPARENT, KEY_PREFIX_MXL_PROPERTIES, KEY_REACT_COMPONENT_STACK, MXL_ERROR_INSTRUMENTATIONS, MXL_INSTRUMENTATIONS, MXL_NAVIGATION_INSTRUMENTATIONS, MXL_PERFORMANCE_INSTRUMENTATIONS, MXL_STATES, MXL_TYPES };
|
|
67
68
|
//# sourceMappingURL=attributes.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributes.d.cts","names":[],"sources":["../../src/constants/attributes.ts"],"mappings":";cAAa,YAAA;AAAA,cACA,aAAA;AAAA,cACA,kBAAA;AAAA,cACA,sBAAA;AAAA,cACA,wBAAA;AAAA,cACA,4BAAA;AAAA,cACA,yBAAA;AAAA,cACA,4BAAA;AAAA,cACA,8BAAA;AAAA,cACA,+BAAA;AAAA,cACA,0BAAA;AAAA,cACA,uBAAA;AAAA,cACA,kBAAA;AAAA,cACA,uBAAA;AAAA,cACA,cAAA;AAAA,cACA,qBAAA;AAAA,cACA,qBAAA;AAAA,cACA,uBAAA;AAAA,cACA,uBAAA;AAAA,cACA,kCAAA;AAAA,cAEA,oBAAA;AAAA,cACA,0BAAA;AAAA,cACA,uBAAA;AAAA,cACA,yBAAA;AAAA,cACA,oBAAA;AAAA,cACA,oBAAA;AAAA,cACA,iCAAA;AAAA,cAIA,iBAAA;AAAA,cACA,eAAA;AAAA,cACA,qBAAA;AAAA,aAED,SAAA;EACV,OAAA;EACA,OAAA;EACA,IAAA;EACA,SAAA;EAAA;EACA,eAAA;EACA,QAAA;EACA,WAAA;EACA,aAAA;EACA,YAAA;EACA,OAAA;EACA,UAAA;EACA,aAAA;EACA,YAAA;AAAA;AAAA,aAGU,UAAA;EACV,UAAA;EACA,UAAA;AAAA;AAAA,aAGU,+BAAA;EACV,iBAAA;EACA,WAAA;EACA,IAAA;EACA,MAAA;AAAA;AAAA,aAGU,0BAAA;EACV,kBAAA;AAAA;AAAA,aAGU,gCAAA;EACV,UAAA;AAAA;AAAA,KAGU,oBAAA,GACR,+BAAA,GACA,0BAAA,GACA,gCAAA"}
|
|
1
|
+
{"version":3,"file":"attributes.d.cts","names":[],"sources":["../../src/constants/attributes.ts"],"mappings":";cAAa,YAAA;AAAA,cACA,aAAA;AAAA,cACA,kBAAA;AAAA,cACA,sBAAA;AAAA,cACA,wBAAA;AAAA,cACA,4BAAA;AAAA,cACA,yBAAA;AAAA,cACA,4BAAA;AAAA,cACA,8BAAA;AAAA,cACA,+BAAA;AAAA,cACA,yBAAA;AAAA,cACA,0BAAA;AAAA,cACA,uBAAA;AAAA,cACA,kBAAA;AAAA,cACA,uBAAA;AAAA,cACA,cAAA;AAAA,cACA,qBAAA;AAAA,cACA,qBAAA;AAAA,cACA,uBAAA;AAAA,cACA,uBAAA;AAAA,cACA,kCAAA;AAAA,cAEA,oBAAA;AAAA,cACA,0BAAA;AAAA,cACA,uBAAA;AAAA,cACA,yBAAA;AAAA,cACA,oBAAA;AAAA,cACA,oBAAA;AAAA,cACA,iCAAA;AAAA,cAIA,iBAAA;AAAA,cACA,eAAA;AAAA,cACA,qBAAA;AAAA,aAED,SAAA;EACV,OAAA;EACA,OAAA;EACA,IAAA;EACA,SAAA;EAAA;EACA,eAAA;EACA,QAAA;EACA,WAAA;EACA,aAAA;EACA,YAAA;EACA,OAAA;EACA,UAAA;EACA,aAAA;EACA,YAAA;AAAA;AAAA,aAGU,UAAA;EACV,UAAA;EACA,UAAA;AAAA;AAAA,aAGU,+BAAA;EACV,iBAAA;EACA,WAAA;EACA,IAAA;EACA,MAAA;AAAA;AAAA,aAGU,0BAAA;EACV,kBAAA;AAAA;AAAA,aAGU,gCAAA;EACV,UAAA;AAAA;AAAA,KAGU,oBAAA,GACR,+BAAA,GACA,0BAAA,GACA,gCAAA"}
|
|
@@ -9,6 +9,7 @@ declare const KEY_PREFIX_MXL_PROPERTIES = "mxl.properties.";
|
|
|
9
9
|
declare const KEY_MXL_SESSION_REASON_ENDED = "mxl.session_end_type";
|
|
10
10
|
declare const KEY_MXL_SESSION_REASON_STARTED = "mxl.session_start_type";
|
|
11
11
|
declare const KEY_MXL_JS_EXCEPTION_STACKTRACE = "mxl.stacktrace.js";
|
|
12
|
+
declare const KEY_REACT_COMPONENT_STACK = "react.component_stack";
|
|
12
13
|
declare const KEY_MXL_EXCEPTION_HANDLING = "mxl.exception_handling";
|
|
13
14
|
declare const KEY_MXL_EXCEPTION_CAUSE = "mxl.exception_cause";
|
|
14
15
|
declare const KEY_MXL_ERROR_CODE = "mxl.error_code";
|
|
@@ -63,5 +64,5 @@ declare enum MXL_PERFORMANCE_INSTRUMENTATIONS {
|
|
|
63
64
|
}
|
|
64
65
|
type MXL_INSTRUMENTATIONS = MXL_NAVIGATION_INSTRUMENTATIONS | MXL_ERROR_INSTRUMENTATIONS | MXL_PERFORMANCE_INSTRUMENTATIONS;
|
|
65
66
|
//#endregion
|
|
66
|
-
export { KEY_APP_SURFACE_LABEL, KEY_BROWSER_URL_FULL, KEY_MXL_APP_INSTANCE_ID, KEY_MXL_COLD_START, KEY_MXL_ERROR_CODE, KEY_MXL_ERROR_LOG_COUNT, KEY_MXL_EXCEPTION_CAUSE, KEY_MXL_EXCEPTION_HANDLING, KEY_MXL_EXCEPTION_NUMBER, KEY_MXL_EXPERIENCE_ID, KEY_MXL_FROM_STORAGE, KEY_MXL_INSTRUMENTATION, KEY_MXL_JS_EXCEPTION_STACKTRACE, KEY_MXL_JS_FILE_BUNDLE_IDS, KEY_MXL_MAX_PENDING_SPANS_REACHED, KEY_MXL_NAVIGATION_SOURCE, KEY_MXL_PAGE_ID, KEY_MXL_PAGE_PATH, KEY_MXL_REFERRER_URL, KEY_MXL_SDK_STARTUP_DURATION, KEY_MXL_SESSION_NUMBER, KEY_MXL_SESSION_REASON_ENDED, KEY_MXL_SESSION_REASON_STARTED, KEY_MXL_SOURCE_TAB_ID, KEY_MXL_STATE, KEY_MXL_TAB_ID, KEY_MXL_TYPE, KEY_MXL_UNHANDLED_EXCEPTIONS_COUNT, KEY_MXL_W3C_TRACEPARENT, KEY_PREFIX_MXL_PROPERTIES, MXL_ERROR_INSTRUMENTATIONS, MXL_INSTRUMENTATIONS, MXL_NAVIGATION_INSTRUMENTATIONS, MXL_PERFORMANCE_INSTRUMENTATIONS, MXL_STATES, MXL_TYPES };
|
|
67
|
+
export { KEY_APP_SURFACE_LABEL, KEY_BROWSER_URL_FULL, KEY_MXL_APP_INSTANCE_ID, KEY_MXL_COLD_START, KEY_MXL_ERROR_CODE, KEY_MXL_ERROR_LOG_COUNT, KEY_MXL_EXCEPTION_CAUSE, KEY_MXL_EXCEPTION_HANDLING, KEY_MXL_EXCEPTION_NUMBER, KEY_MXL_EXPERIENCE_ID, KEY_MXL_FROM_STORAGE, KEY_MXL_INSTRUMENTATION, KEY_MXL_JS_EXCEPTION_STACKTRACE, KEY_MXL_JS_FILE_BUNDLE_IDS, KEY_MXL_MAX_PENDING_SPANS_REACHED, KEY_MXL_NAVIGATION_SOURCE, KEY_MXL_PAGE_ID, KEY_MXL_PAGE_PATH, KEY_MXL_REFERRER_URL, KEY_MXL_SDK_STARTUP_DURATION, KEY_MXL_SESSION_NUMBER, KEY_MXL_SESSION_REASON_ENDED, KEY_MXL_SESSION_REASON_STARTED, KEY_MXL_SOURCE_TAB_ID, KEY_MXL_STATE, KEY_MXL_TAB_ID, KEY_MXL_TYPE, KEY_MXL_UNHANDLED_EXCEPTIONS_COUNT, KEY_MXL_W3C_TRACEPARENT, KEY_PREFIX_MXL_PROPERTIES, KEY_REACT_COMPONENT_STACK, MXL_ERROR_INSTRUMENTATIONS, MXL_INSTRUMENTATIONS, MXL_NAVIGATION_INSTRUMENTATIONS, MXL_PERFORMANCE_INSTRUMENTATIONS, MXL_STATES, MXL_TYPES };
|
|
67
68
|
//# sourceMappingURL=attributes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributes.d.ts","names":[],"sources":["../../src/constants/attributes.ts"],"mappings":";cAAa,YAAA;AAAA,cACA,aAAA;AAAA,cACA,kBAAA;AAAA,cACA,sBAAA;AAAA,cACA,wBAAA;AAAA,cACA,4BAAA;AAAA,cACA,yBAAA;AAAA,cACA,4BAAA;AAAA,cACA,8BAAA;AAAA,cACA,+BAAA;AAAA,cACA,0BAAA;AAAA,cACA,uBAAA;AAAA,cACA,kBAAA;AAAA,cACA,uBAAA;AAAA,cACA,cAAA;AAAA,cACA,qBAAA;AAAA,cACA,qBAAA;AAAA,cACA,uBAAA;AAAA,cACA,uBAAA;AAAA,cACA,kCAAA;AAAA,cAEA,oBAAA;AAAA,cACA,0BAAA;AAAA,cACA,uBAAA;AAAA,cACA,yBAAA;AAAA,cACA,oBAAA;AAAA,cACA,oBAAA;AAAA,cACA,iCAAA;AAAA,cAIA,iBAAA;AAAA,cACA,eAAA;AAAA,cACA,qBAAA;AAAA,aAED,SAAA;EACV,OAAA;EACA,OAAA;EACA,IAAA;EACA,SAAA;EAAA;EACA,eAAA;EACA,QAAA;EACA,WAAA;EACA,aAAA;EACA,YAAA;EACA,OAAA;EACA,UAAA;EACA,aAAA;EACA,YAAA;AAAA;AAAA,aAGU,UAAA;EACV,UAAA;EACA,UAAA;AAAA;AAAA,aAGU,+BAAA;EACV,iBAAA;EACA,WAAA;EACA,IAAA;EACA,MAAA;AAAA;AAAA,aAGU,0BAAA;EACV,kBAAA;AAAA;AAAA,aAGU,gCAAA;EACV,UAAA;AAAA;AAAA,KAGU,oBAAA,GACR,+BAAA,GACA,0BAAA,GACA,gCAAA"}
|
|
1
|
+
{"version":3,"file":"attributes.d.ts","names":[],"sources":["../../src/constants/attributes.ts"],"mappings":";cAAa,YAAA;AAAA,cACA,aAAA;AAAA,cACA,kBAAA;AAAA,cACA,sBAAA;AAAA,cACA,wBAAA;AAAA,cACA,4BAAA;AAAA,cACA,yBAAA;AAAA,cACA,4BAAA;AAAA,cACA,8BAAA;AAAA,cACA,+BAAA;AAAA,cACA,yBAAA;AAAA,cACA,0BAAA;AAAA,cACA,uBAAA;AAAA,cACA,kBAAA;AAAA,cACA,uBAAA;AAAA,cACA,cAAA;AAAA,cACA,qBAAA;AAAA,cACA,qBAAA;AAAA,cACA,uBAAA;AAAA,cACA,uBAAA;AAAA,cACA,kCAAA;AAAA,cAEA,oBAAA;AAAA,cACA,0BAAA;AAAA,cACA,uBAAA;AAAA,cACA,yBAAA;AAAA,cACA,oBAAA;AAAA,cACA,oBAAA;AAAA,cACA,iCAAA;AAAA,cAIA,iBAAA;AAAA,cACA,eAAA;AAAA,cACA,qBAAA;AAAA,aAED,SAAA;EACV,OAAA;EACA,OAAA;EACA,IAAA;EACA,SAAA;EAAA;EACA,eAAA;EACA,QAAA;EACA,WAAA;EACA,aAAA;EACA,YAAA;EACA,OAAA;EACA,UAAA;EACA,aAAA;EACA,YAAA;AAAA;AAAA,aAGU,UAAA;EACV,UAAA;EACA,UAAA;AAAA;AAAA,aAGU,+BAAA;EACV,iBAAA;EACA,WAAA;EACA,IAAA;EACA,MAAA;AAAA;AAAA,aAGU,0BAAA;EACV,kBAAA;AAAA;AAAA,aAGU,gCAAA;EACV,UAAA;AAAA;AAAA,KAGU,oBAAA,GACR,+BAAA,GACA,0BAAA,GACA,gCAAA"}
|
|
@@ -9,6 +9,7 @@ const KEY_PREFIX_MXL_PROPERTIES = "mxl.properties.";
|
|
|
9
9
|
const KEY_MXL_SESSION_REASON_ENDED = "mxl.session_end_type";
|
|
10
10
|
const KEY_MXL_SESSION_REASON_STARTED = "mxl.session_start_type";
|
|
11
11
|
const KEY_MXL_JS_EXCEPTION_STACKTRACE = "mxl.stacktrace.js";
|
|
12
|
+
const KEY_REACT_COMPONENT_STACK = "react.component_stack";
|
|
12
13
|
const KEY_MXL_EXCEPTION_HANDLING = "mxl.exception_handling";
|
|
13
14
|
const KEY_MXL_EXCEPTION_CAUSE = "mxl.exception_cause";
|
|
14
15
|
const KEY_MXL_ERROR_CODE = "mxl.error_code";
|
|
@@ -66,6 +67,6 @@ let MXL_PERFORMANCE_INSTRUMENTATIONS = /* @__PURE__ */ function(MXL_PERFORMANCE_
|
|
|
66
67
|
return MXL_PERFORMANCE_INSTRUMENTATIONS;
|
|
67
68
|
}({});
|
|
68
69
|
//#endregion
|
|
69
|
-
export { KEY_APP_SURFACE_LABEL, KEY_BROWSER_URL_FULL, KEY_MXL_APP_INSTANCE_ID, KEY_MXL_COLD_START, KEY_MXL_ERROR_CODE, KEY_MXL_ERROR_LOG_COUNT, KEY_MXL_EXCEPTION_CAUSE, KEY_MXL_EXCEPTION_HANDLING, KEY_MXL_EXCEPTION_NUMBER, KEY_MXL_EXPERIENCE_ID, KEY_MXL_FROM_STORAGE, KEY_MXL_INSTRUMENTATION, KEY_MXL_JS_EXCEPTION_STACKTRACE, KEY_MXL_JS_FILE_BUNDLE_IDS, KEY_MXL_MAX_PENDING_SPANS_REACHED, KEY_MXL_NAVIGATION_SOURCE, KEY_MXL_PAGE_ID, KEY_MXL_PAGE_PATH, KEY_MXL_REFERRER_URL, KEY_MXL_SDK_STARTUP_DURATION, KEY_MXL_SESSION_NUMBER, KEY_MXL_SESSION_REASON_ENDED, KEY_MXL_SESSION_REASON_STARTED, KEY_MXL_SOURCE_TAB_ID, KEY_MXL_STATE, KEY_MXL_TAB_ID, KEY_MXL_TYPE, KEY_MXL_UNHANDLED_EXCEPTIONS_COUNT, KEY_MXL_W3C_TRACEPARENT, KEY_PREFIX_MXL_PROPERTIES, MXL_ERROR_INSTRUMENTATIONS, MXL_NAVIGATION_INSTRUMENTATIONS, MXL_PERFORMANCE_INSTRUMENTATIONS, MXL_STATES, MXL_TYPES };
|
|
70
|
+
export { KEY_APP_SURFACE_LABEL, KEY_BROWSER_URL_FULL, KEY_MXL_APP_INSTANCE_ID, KEY_MXL_COLD_START, KEY_MXL_ERROR_CODE, KEY_MXL_ERROR_LOG_COUNT, KEY_MXL_EXCEPTION_CAUSE, KEY_MXL_EXCEPTION_HANDLING, KEY_MXL_EXCEPTION_NUMBER, KEY_MXL_EXPERIENCE_ID, KEY_MXL_FROM_STORAGE, KEY_MXL_INSTRUMENTATION, KEY_MXL_JS_EXCEPTION_STACKTRACE, KEY_MXL_JS_FILE_BUNDLE_IDS, KEY_MXL_MAX_PENDING_SPANS_REACHED, KEY_MXL_NAVIGATION_SOURCE, KEY_MXL_PAGE_ID, KEY_MXL_PAGE_PATH, KEY_MXL_REFERRER_URL, KEY_MXL_SDK_STARTUP_DURATION, KEY_MXL_SESSION_NUMBER, KEY_MXL_SESSION_REASON_ENDED, KEY_MXL_SESSION_REASON_STARTED, KEY_MXL_SOURCE_TAB_ID, KEY_MXL_STATE, KEY_MXL_TAB_ID, KEY_MXL_TYPE, KEY_MXL_UNHANDLED_EXCEPTIONS_COUNT, KEY_MXL_W3C_TRACEPARENT, KEY_PREFIX_MXL_PROPERTIES, KEY_REACT_COMPONENT_STACK, MXL_ERROR_INSTRUMENTATIONS, MXL_NAVIGATION_INSTRUMENTATIONS, MXL_PERFORMANCE_INSTRUMENTATIONS, MXL_STATES, MXL_TYPES };
|
|
70
71
|
|
|
71
72
|
//# sourceMappingURL=attributes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributes.js","names":[],"sources":["../../src/constants/attributes.ts"],"sourcesContent":["export const KEY_MXL_TYPE = 'mxl.type';\nexport const KEY_MXL_STATE = 'mxl.state';\nexport const KEY_MXL_COLD_START = 'mxl.cold_start';\nexport const KEY_MXL_SESSION_NUMBER = 'mxl.session_number';\nexport const KEY_MXL_EXCEPTION_NUMBER = 'mxl.exception_number';\nexport const KEY_MXL_SDK_STARTUP_DURATION = 'mxl.sdk_startup_duration';\nexport const KEY_PREFIX_MXL_PROPERTIES = 'mxl.properties.';\nexport const KEY_MXL_SESSION_REASON_ENDED = 'mxl.session_end_type';\nexport const KEY_MXL_SESSION_REASON_STARTED = 'mxl.session_start_type';\nexport const KEY_MXL_JS_EXCEPTION_STACKTRACE = 'mxl.stacktrace.js';\nexport const KEY_MXL_EXCEPTION_HANDLING = 'mxl.exception_handling';\nexport const KEY_MXL_EXCEPTION_CAUSE = 'mxl.exception_cause';\nexport const KEY_MXL_ERROR_CODE = 'mxl.error_code';\nexport const KEY_MXL_APP_INSTANCE_ID = 'mxl.app_instance_id';\nexport const KEY_MXL_TAB_ID = 'mxl.tab_id';\nexport const KEY_MXL_SOURCE_TAB_ID = 'mxl.source_tab_id';\nexport const KEY_MXL_EXPERIENCE_ID = 'mxl.experience_id';\nexport const KEY_MXL_ERROR_LOG_COUNT = 'mxl.error_log_count';\nexport const KEY_MXL_INSTRUMENTATION = 'mxl.instrumentation';\nexport const KEY_MXL_UNHANDLED_EXCEPTIONS_COUNT =\n 'mxl.unhandled_exceptions_count';\nexport const KEY_MXL_FROM_STORAGE = 'mxl.from_storage';\nexport const KEY_MXL_JS_FILE_BUNDLE_IDS = 'mxl.js_file_bundle_ids';\nexport const KEY_MXL_W3C_TRACEPARENT = 'mxl.w3c_traceparent';\nexport const KEY_MXL_NAVIGATION_SOURCE = 'mxl.navigation_source';\nexport const KEY_MXL_REFERRER_URL = 'mxl.referrer_url';\nexport const KEY_BROWSER_URL_FULL = 'browser.url.full';\nexport const KEY_MXL_MAX_PENDING_SPANS_REACHED =\n 'mxl.max_pending_spans_reached';\n// In the backend we use 'app.surface.name' and 'app.surface.id' for the page name and id\n// to be consistent with mobile where we use 'app.surface.*' for screen names and ids\nexport const KEY_MXL_PAGE_PATH = 'app.surface.name';\nexport const KEY_MXL_PAGE_ID = 'app.surface.id';\nexport const KEY_APP_SURFACE_LABEL = 'app.surface.label';\n\nexport enum MXL_TYPES {\n Session = 'ux.session',\n Network = 'perf.network_request',\n Perf = 'perf',\n SystemLog = 'sys.log', // SystemLog is a log mxl type that tells the MXL BE to treat this as an MXL Log to be shown in the dashboard.\n SystemException = 'sys.exception',\n WebVital = 'ux.web_vital',\n LoafScripts = 'ux.loaf_scripts',\n ResourceFetch = 'ux.resource_fetch',\n DocumentLoad = 'ux.document_load',\n Surface = 'ux.surface',\n UserTiming = 'ux.user_timing',\n ElementTiming = 'ux.element_timing',\n ServerTiming = 'ux.server_timing',\n}\n\nexport enum MXL_STATES {\n Foreground = 'foreground',\n Background = 'background',\n}\n\nexport enum MXL_NAVIGATION_INSTRUMENTATIONS {\n DeclarativeLegacy = 'react_router_declarative_legacy',\n Declarative = 'react_router_declarative',\n Data = 'react_router_data',\n Manual = 'manual',\n}\n\nexport enum MXL_ERROR_INSTRUMENTATIONS {\n ReactErrorBoundary = 'react_error_boundary',\n}\n\nexport enum MXL_PERFORMANCE_INSTRUMENTATIONS {\n UserTiming = 'user_timing',\n}\n\nexport type MXL_INSTRUMENTATIONS =\n | MXL_NAVIGATION_INSTRUMENTATIONS\n | MXL_ERROR_INSTRUMENTATIONS\n | MXL_PERFORMANCE_INSTRUMENTATIONS;\n"],"mappings":";AAAA,MAAa,eAAe;AAC5B,MAAa,gBAAgB;AAC7B,MAAa,qBAAqB;AAClC,MAAa,yBAAyB;AACtC,MAAa,2BAA2B;AACxC,MAAa,+BAA+B;AAC5C,MAAa,4BAA4B;AACzC,MAAa,+BAA+B;AAC5C,MAAa,iCAAiC;AAC9C,MAAa,kCAAkC;AAC/C,MAAa,6BAA6B;AAC1C,MAAa,0BAA0B;AACvC,MAAa,qBAAqB;AAClC,MAAa,0BAA0B;AACvC,MAAa,iBAAiB;AAC9B,MAAa,wBAAwB;AACrC,MAAa,wBAAwB;AACrC,MAAa,0BAA0B;AACvC,MAAa,0BAA0B;AACvC,MAAa,qCACX;AACF,MAAa,uBAAuB;AACpC,MAAa,6BAA6B;AAC1C,MAAa,0BAA0B;AACvC,MAAa,4BAA4B;AACzC,MAAa,uBAAuB;AACpC,MAAa,uBAAuB;AACpC,MAAa,oCACX;AAGF,MAAa,oBAAoB;AACjC,MAAa,kBAAkB;AAC/B,MAAa,wBAAwB;AAErC,IAAY,YAAL,yBAAA,WAAA;AACL,WAAA,aAAA;AACA,WAAA,aAAA;AACA,WAAA,UAAA;AACA,WAAA,eAAA;AACA,WAAA,qBAAA;AACA,WAAA,cAAA;AACA,WAAA,iBAAA;AACA,WAAA,mBAAA;AACA,WAAA,kBAAA;AACA,WAAA,aAAA;AACA,WAAA,gBAAA;AACA,WAAA,mBAAA;AACA,WAAA,kBAAA;;KACD;AAED,IAAY,aAAL,yBAAA,YAAA;AACL,YAAA,gBAAA;AACA,YAAA,gBAAA;;KACD;AAED,IAAY,kCAAL,yBAAA,iCAAA;AACL,iCAAA,uBAAA;AACA,iCAAA,iBAAA;AACA,iCAAA,UAAA;AACA,iCAAA,YAAA;;KACD;AAED,IAAY,6BAAL,yBAAA,4BAAA;AACL,4BAAA,wBAAA;;KACD;AAED,IAAY,mCAAL,yBAAA,kCAAA;AACL,kCAAA,gBAAA;;KACD"}
|
|
1
|
+
{"version":3,"file":"attributes.js","names":[],"sources":["../../src/constants/attributes.ts"],"sourcesContent":["export const KEY_MXL_TYPE = 'mxl.type';\nexport const KEY_MXL_STATE = 'mxl.state';\nexport const KEY_MXL_COLD_START = 'mxl.cold_start';\nexport const KEY_MXL_SESSION_NUMBER = 'mxl.session_number';\nexport const KEY_MXL_EXCEPTION_NUMBER = 'mxl.exception_number';\nexport const KEY_MXL_SDK_STARTUP_DURATION = 'mxl.sdk_startup_duration';\nexport const KEY_PREFIX_MXL_PROPERTIES = 'mxl.properties.';\nexport const KEY_MXL_SESSION_REASON_ENDED = 'mxl.session_end_type';\nexport const KEY_MXL_SESSION_REASON_STARTED = 'mxl.session_start_type';\nexport const KEY_MXL_JS_EXCEPTION_STACKTRACE = 'mxl.stacktrace.js';\nexport const KEY_REACT_COMPONENT_STACK = 'react.component_stack';\nexport const KEY_MXL_EXCEPTION_HANDLING = 'mxl.exception_handling';\nexport const KEY_MXL_EXCEPTION_CAUSE = 'mxl.exception_cause';\nexport const KEY_MXL_ERROR_CODE = 'mxl.error_code';\nexport const KEY_MXL_APP_INSTANCE_ID = 'mxl.app_instance_id';\nexport const KEY_MXL_TAB_ID = 'mxl.tab_id';\nexport const KEY_MXL_SOURCE_TAB_ID = 'mxl.source_tab_id';\nexport const KEY_MXL_EXPERIENCE_ID = 'mxl.experience_id';\nexport const KEY_MXL_ERROR_LOG_COUNT = 'mxl.error_log_count';\nexport const KEY_MXL_INSTRUMENTATION = 'mxl.instrumentation';\nexport const KEY_MXL_UNHANDLED_EXCEPTIONS_COUNT =\n 'mxl.unhandled_exceptions_count';\nexport const KEY_MXL_FROM_STORAGE = 'mxl.from_storage';\nexport const KEY_MXL_JS_FILE_BUNDLE_IDS = 'mxl.js_file_bundle_ids';\nexport const KEY_MXL_W3C_TRACEPARENT = 'mxl.w3c_traceparent';\nexport const KEY_MXL_NAVIGATION_SOURCE = 'mxl.navigation_source';\nexport const KEY_MXL_REFERRER_URL = 'mxl.referrer_url';\nexport const KEY_BROWSER_URL_FULL = 'browser.url.full';\nexport const KEY_MXL_MAX_PENDING_SPANS_REACHED =\n 'mxl.max_pending_spans_reached';\n// In the backend we use 'app.surface.name' and 'app.surface.id' for the page name and id\n// to be consistent with mobile where we use 'app.surface.*' for screen names and ids\nexport const KEY_MXL_PAGE_PATH = 'app.surface.name';\nexport const KEY_MXL_PAGE_ID = 'app.surface.id';\nexport const KEY_APP_SURFACE_LABEL = 'app.surface.label';\n\nexport enum MXL_TYPES {\n Session = 'ux.session',\n Network = 'perf.network_request',\n Perf = 'perf',\n SystemLog = 'sys.log', // SystemLog is a log mxl type that tells the MXL BE to treat this as an MXL Log to be shown in the dashboard.\n SystemException = 'sys.exception',\n WebVital = 'ux.web_vital',\n LoafScripts = 'ux.loaf_scripts',\n ResourceFetch = 'ux.resource_fetch',\n DocumentLoad = 'ux.document_load',\n Surface = 'ux.surface',\n UserTiming = 'ux.user_timing',\n ElementTiming = 'ux.element_timing',\n ServerTiming = 'ux.server_timing',\n}\n\nexport enum MXL_STATES {\n Foreground = 'foreground',\n Background = 'background',\n}\n\nexport enum MXL_NAVIGATION_INSTRUMENTATIONS {\n DeclarativeLegacy = 'react_router_declarative_legacy',\n Declarative = 'react_router_declarative',\n Data = 'react_router_data',\n Manual = 'manual',\n}\n\nexport enum MXL_ERROR_INSTRUMENTATIONS {\n ReactErrorBoundary = 'react_error_boundary',\n}\n\nexport enum MXL_PERFORMANCE_INSTRUMENTATIONS {\n UserTiming = 'user_timing',\n}\n\nexport type MXL_INSTRUMENTATIONS =\n | MXL_NAVIGATION_INSTRUMENTATIONS\n | MXL_ERROR_INSTRUMENTATIONS\n | MXL_PERFORMANCE_INSTRUMENTATIONS;\n"],"mappings":";AAAA,MAAa,eAAe;AAC5B,MAAa,gBAAgB;AAC7B,MAAa,qBAAqB;AAClC,MAAa,yBAAyB;AACtC,MAAa,2BAA2B;AACxC,MAAa,+BAA+B;AAC5C,MAAa,4BAA4B;AACzC,MAAa,+BAA+B;AAC5C,MAAa,iCAAiC;AAC9C,MAAa,kCAAkC;AAC/C,MAAa,4BAA4B;AACzC,MAAa,6BAA6B;AAC1C,MAAa,0BAA0B;AACvC,MAAa,qBAAqB;AAClC,MAAa,0BAA0B;AACvC,MAAa,iBAAiB;AAC9B,MAAa,wBAAwB;AACrC,MAAa,wBAAwB;AACrC,MAAa,0BAA0B;AACvC,MAAa,0BAA0B;AACvC,MAAa,qCACX;AACF,MAAa,uBAAuB;AACpC,MAAa,6BAA6B;AAC1C,MAAa,0BAA0B;AACvC,MAAa,4BAA4B;AACzC,MAAa,uBAAuB;AACpC,MAAa,uBAAuB;AACpC,MAAa,oCACX;AAGF,MAAa,oBAAoB;AACjC,MAAa,kBAAkB;AAC/B,MAAa,wBAAwB;AAErC,IAAY,YAAL,yBAAA,WAAA;AACL,WAAA,aAAA;AACA,WAAA,aAAA;AACA,WAAA,UAAA;AACA,WAAA,eAAA;AACA,WAAA,qBAAA;AACA,WAAA,cAAA;AACA,WAAA,iBAAA;AACA,WAAA,mBAAA;AACA,WAAA,kBAAA;AACA,WAAA,aAAA;AACA,WAAA,gBAAA;AACA,WAAA,mBAAA;AACA,WAAA,kBAAA;;KACD;AAED,IAAY,aAAL,yBAAA,YAAA;AACL,YAAA,gBAAA;AACA,YAAA,gBAAA;;KACD;AAED,IAAY,kCAAL,yBAAA,iCAAA;AACL,iCAAA,uBAAA;AACA,iCAAA,iBAAA;AACA,iCAAA,UAAA;AACA,iCAAA,YAAA;;KACD;AAED,IAAY,6BAAL,yBAAA,4BAAA;AACL,4BAAA,wBAAA;;KACD;AAED,IAAY,mCAAL,yBAAA,kCAAA;AACL,kCAAA,gBAAA;;KACD"}
|
package/dist/constants/index.cjs
CHANGED
|
@@ -26,6 +26,7 @@ exports.KEY_MXL_TAB_ID = require_constants_attributes.KEY_MXL_TAB_ID;
|
|
|
26
26
|
exports.KEY_MXL_TYPE = require_constants_attributes.KEY_MXL_TYPE;
|
|
27
27
|
exports.KEY_MXL_W3C_TRACEPARENT = require_constants_attributes.KEY_MXL_W3C_TRACEPARENT;
|
|
28
28
|
exports.KEY_PREFIX_MXL_PROPERTIES = require_constants_attributes.KEY_PREFIX_MXL_PROPERTIES;
|
|
29
|
+
exports.KEY_REACT_COMPONENT_STACK = require_constants_attributes.KEY_REACT_COMPONENT_STACK;
|
|
29
30
|
exports.MXL_ERROR_INSTRUMENTATIONS = require_constants_attributes.MXL_ERROR_INSTRUMENTATIONS;
|
|
30
31
|
exports.MXL_NAVIGATION_INSTRUMENTATIONS = require_constants_attributes.MXL_NAVIGATION_INSTRUMENTATIONS;
|
|
31
32
|
exports.MXL_PERFORMANCE_INSTRUMENTATIONS = require_constants_attributes.MXL_PERFORMANCE_INSTRUMENTATIONS;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { KEY_APP_SURFACE_LABEL, KEY_BROWSER_URL_FULL, KEY_MXL_APP_INSTANCE_ID, KEY_MXL_COLD_START, KEY_MXL_ERROR_CODE, KEY_MXL_EXCEPTION_HANDLING, KEY_MXL_EXCEPTION_NUMBER, KEY_MXL_EXPERIENCE_ID, KEY_MXL_FROM_STORAGE, KEY_MXL_INSTRUMENTATION, KEY_MXL_JS_EXCEPTION_STACKTRACE, KEY_MXL_MAX_PENDING_SPANS_REACHED, KEY_MXL_NAVIGATION_SOURCE, KEY_MXL_PAGE_ID, KEY_MXL_PAGE_PATH, KEY_MXL_REFERRER_URL, KEY_MXL_SDK_STARTUP_DURATION, KEY_MXL_SESSION_NUMBER, KEY_MXL_SESSION_REASON_ENDED, KEY_MXL_SESSION_REASON_STARTED, KEY_MXL_SOURCE_TAB_ID, KEY_MXL_STATE, KEY_MXL_TAB_ID, KEY_MXL_TYPE, KEY_MXL_W3C_TRACEPARENT, KEY_PREFIX_MXL_PROPERTIES, MXL_ERROR_INSTRUMENTATIONS, MXL_INSTRUMENTATIONS, MXL_NAVIGATION_INSTRUMENTATIONS, MXL_PERFORMANCE_INSTRUMENTATIONS, MXL_STATES, MXL_TYPES } from "./attributes.cjs";
|
|
2
|
-
export { KEY_APP_SURFACE_LABEL, KEY_BROWSER_URL_FULL, KEY_MXL_APP_INSTANCE_ID, KEY_MXL_COLD_START, KEY_MXL_ERROR_CODE, KEY_MXL_EXCEPTION_HANDLING, KEY_MXL_EXCEPTION_NUMBER, KEY_MXL_EXPERIENCE_ID, KEY_MXL_FROM_STORAGE, KEY_MXL_INSTRUMENTATION, KEY_MXL_JS_EXCEPTION_STACKTRACE, KEY_MXL_MAX_PENDING_SPANS_REACHED, KEY_MXL_NAVIGATION_SOURCE, KEY_MXL_PAGE_ID, KEY_MXL_PAGE_PATH, KEY_MXL_REFERRER_URL, KEY_MXL_SDK_STARTUP_DURATION, KEY_MXL_SESSION_NUMBER, KEY_MXL_SESSION_REASON_ENDED, KEY_MXL_SESSION_REASON_STARTED, KEY_MXL_SOURCE_TAB_ID, KEY_MXL_STATE, KEY_MXL_TAB_ID, KEY_MXL_TYPE, KEY_MXL_W3C_TRACEPARENT, KEY_PREFIX_MXL_PROPERTIES, MXL_ERROR_INSTRUMENTATIONS, type MXL_INSTRUMENTATIONS, MXL_NAVIGATION_INSTRUMENTATIONS, MXL_PERFORMANCE_INSTRUMENTATIONS, MXL_STATES, MXL_TYPES };
|
|
1
|
+
import { KEY_APP_SURFACE_LABEL, KEY_BROWSER_URL_FULL, KEY_MXL_APP_INSTANCE_ID, KEY_MXL_COLD_START, KEY_MXL_ERROR_CODE, KEY_MXL_EXCEPTION_HANDLING, KEY_MXL_EXCEPTION_NUMBER, KEY_MXL_EXPERIENCE_ID, KEY_MXL_FROM_STORAGE, KEY_MXL_INSTRUMENTATION, KEY_MXL_JS_EXCEPTION_STACKTRACE, KEY_MXL_MAX_PENDING_SPANS_REACHED, KEY_MXL_NAVIGATION_SOURCE, KEY_MXL_PAGE_ID, KEY_MXL_PAGE_PATH, KEY_MXL_REFERRER_URL, KEY_MXL_SDK_STARTUP_DURATION, KEY_MXL_SESSION_NUMBER, KEY_MXL_SESSION_REASON_ENDED, KEY_MXL_SESSION_REASON_STARTED, KEY_MXL_SOURCE_TAB_ID, KEY_MXL_STATE, KEY_MXL_TAB_ID, KEY_MXL_TYPE, KEY_MXL_W3C_TRACEPARENT, KEY_PREFIX_MXL_PROPERTIES, KEY_REACT_COMPONENT_STACK, MXL_ERROR_INSTRUMENTATIONS, MXL_INSTRUMENTATIONS, MXL_NAVIGATION_INSTRUMENTATIONS, MXL_PERFORMANCE_INSTRUMENTATIONS, MXL_STATES, MXL_TYPES } from "./attributes.cjs";
|
|
2
|
+
export { KEY_APP_SURFACE_LABEL, KEY_BROWSER_URL_FULL, KEY_MXL_APP_INSTANCE_ID, KEY_MXL_COLD_START, KEY_MXL_ERROR_CODE, KEY_MXL_EXCEPTION_HANDLING, KEY_MXL_EXCEPTION_NUMBER, KEY_MXL_EXPERIENCE_ID, KEY_MXL_FROM_STORAGE, KEY_MXL_INSTRUMENTATION, KEY_MXL_JS_EXCEPTION_STACKTRACE, KEY_MXL_MAX_PENDING_SPANS_REACHED, KEY_MXL_NAVIGATION_SOURCE, KEY_MXL_PAGE_ID, KEY_MXL_PAGE_PATH, KEY_MXL_REFERRER_URL, KEY_MXL_SDK_STARTUP_DURATION, KEY_MXL_SESSION_NUMBER, KEY_MXL_SESSION_REASON_ENDED, KEY_MXL_SESSION_REASON_STARTED, KEY_MXL_SOURCE_TAB_ID, KEY_MXL_STATE, KEY_MXL_TAB_ID, KEY_MXL_TYPE, KEY_MXL_W3C_TRACEPARENT, KEY_PREFIX_MXL_PROPERTIES, KEY_REACT_COMPONENT_STACK, MXL_ERROR_INSTRUMENTATIONS, type MXL_INSTRUMENTATIONS, MXL_NAVIGATION_INSTRUMENTATIONS, MXL_PERFORMANCE_INSTRUMENTATIONS, MXL_STATES, MXL_TYPES };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { KEY_APP_SURFACE_LABEL, KEY_BROWSER_URL_FULL, KEY_MXL_APP_INSTANCE_ID, KEY_MXL_COLD_START, KEY_MXL_ERROR_CODE, KEY_MXL_EXCEPTION_HANDLING, KEY_MXL_EXCEPTION_NUMBER, KEY_MXL_EXPERIENCE_ID, KEY_MXL_FROM_STORAGE, KEY_MXL_INSTRUMENTATION, KEY_MXL_JS_EXCEPTION_STACKTRACE, KEY_MXL_MAX_PENDING_SPANS_REACHED, KEY_MXL_NAVIGATION_SOURCE, KEY_MXL_PAGE_ID, KEY_MXL_PAGE_PATH, KEY_MXL_REFERRER_URL, KEY_MXL_SDK_STARTUP_DURATION, KEY_MXL_SESSION_NUMBER, KEY_MXL_SESSION_REASON_ENDED, KEY_MXL_SESSION_REASON_STARTED, KEY_MXL_SOURCE_TAB_ID, KEY_MXL_STATE, KEY_MXL_TAB_ID, KEY_MXL_TYPE, KEY_MXL_W3C_TRACEPARENT, KEY_PREFIX_MXL_PROPERTIES, MXL_ERROR_INSTRUMENTATIONS, MXL_INSTRUMENTATIONS, MXL_NAVIGATION_INSTRUMENTATIONS, MXL_PERFORMANCE_INSTRUMENTATIONS, MXL_STATES, MXL_TYPES } from "./attributes.js";
|
|
2
|
-
export { KEY_APP_SURFACE_LABEL, KEY_BROWSER_URL_FULL, KEY_MXL_APP_INSTANCE_ID, KEY_MXL_COLD_START, KEY_MXL_ERROR_CODE, KEY_MXL_EXCEPTION_HANDLING, KEY_MXL_EXCEPTION_NUMBER, KEY_MXL_EXPERIENCE_ID, KEY_MXL_FROM_STORAGE, KEY_MXL_INSTRUMENTATION, KEY_MXL_JS_EXCEPTION_STACKTRACE, KEY_MXL_MAX_PENDING_SPANS_REACHED, KEY_MXL_NAVIGATION_SOURCE, KEY_MXL_PAGE_ID, KEY_MXL_PAGE_PATH, KEY_MXL_REFERRER_URL, KEY_MXL_SDK_STARTUP_DURATION, KEY_MXL_SESSION_NUMBER, KEY_MXL_SESSION_REASON_ENDED, KEY_MXL_SESSION_REASON_STARTED, KEY_MXL_SOURCE_TAB_ID, KEY_MXL_STATE, KEY_MXL_TAB_ID, KEY_MXL_TYPE, KEY_MXL_W3C_TRACEPARENT, KEY_PREFIX_MXL_PROPERTIES, MXL_ERROR_INSTRUMENTATIONS, type MXL_INSTRUMENTATIONS, MXL_NAVIGATION_INSTRUMENTATIONS, MXL_PERFORMANCE_INSTRUMENTATIONS, MXL_STATES, MXL_TYPES };
|
|
1
|
+
import { KEY_APP_SURFACE_LABEL, KEY_BROWSER_URL_FULL, KEY_MXL_APP_INSTANCE_ID, KEY_MXL_COLD_START, KEY_MXL_ERROR_CODE, KEY_MXL_EXCEPTION_HANDLING, KEY_MXL_EXCEPTION_NUMBER, KEY_MXL_EXPERIENCE_ID, KEY_MXL_FROM_STORAGE, KEY_MXL_INSTRUMENTATION, KEY_MXL_JS_EXCEPTION_STACKTRACE, KEY_MXL_MAX_PENDING_SPANS_REACHED, KEY_MXL_NAVIGATION_SOURCE, KEY_MXL_PAGE_ID, KEY_MXL_PAGE_PATH, KEY_MXL_REFERRER_URL, KEY_MXL_SDK_STARTUP_DURATION, KEY_MXL_SESSION_NUMBER, KEY_MXL_SESSION_REASON_ENDED, KEY_MXL_SESSION_REASON_STARTED, KEY_MXL_SOURCE_TAB_ID, KEY_MXL_STATE, KEY_MXL_TAB_ID, KEY_MXL_TYPE, KEY_MXL_W3C_TRACEPARENT, KEY_PREFIX_MXL_PROPERTIES, KEY_REACT_COMPONENT_STACK, MXL_ERROR_INSTRUMENTATIONS, MXL_INSTRUMENTATIONS, MXL_NAVIGATION_INSTRUMENTATIONS, MXL_PERFORMANCE_INSTRUMENTATIONS, MXL_STATES, MXL_TYPES } from "./attributes.js";
|
|
2
|
+
export { KEY_APP_SURFACE_LABEL, KEY_BROWSER_URL_FULL, KEY_MXL_APP_INSTANCE_ID, KEY_MXL_COLD_START, KEY_MXL_ERROR_CODE, KEY_MXL_EXCEPTION_HANDLING, KEY_MXL_EXCEPTION_NUMBER, KEY_MXL_EXPERIENCE_ID, KEY_MXL_FROM_STORAGE, KEY_MXL_INSTRUMENTATION, KEY_MXL_JS_EXCEPTION_STACKTRACE, KEY_MXL_MAX_PENDING_SPANS_REACHED, KEY_MXL_NAVIGATION_SOURCE, KEY_MXL_PAGE_ID, KEY_MXL_PAGE_PATH, KEY_MXL_REFERRER_URL, KEY_MXL_SDK_STARTUP_DURATION, KEY_MXL_SESSION_NUMBER, KEY_MXL_SESSION_REASON_ENDED, KEY_MXL_SESSION_REASON_STARTED, KEY_MXL_SOURCE_TAB_ID, KEY_MXL_STATE, KEY_MXL_TAB_ID, KEY_MXL_TYPE, KEY_MXL_W3C_TRACEPARENT, KEY_PREFIX_MXL_PROPERTIES, KEY_REACT_COMPONENT_STACK, MXL_ERROR_INSTRUMENTATIONS, type MXL_INSTRUMENTATIONS, MXL_NAVIGATION_INSTRUMENTATIONS, MXL_PERFORMANCE_INSTRUMENTATIONS, MXL_STATES, MXL_TYPES };
|
package/dist/constants/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { KEY_APP_SURFACE_LABEL, KEY_BROWSER_URL_FULL, KEY_MXL_APP_INSTANCE_ID, KEY_MXL_COLD_START, KEY_MXL_ERROR_CODE, KEY_MXL_EXCEPTION_HANDLING, KEY_MXL_EXCEPTION_NUMBER, KEY_MXL_EXPERIENCE_ID, KEY_MXL_FROM_STORAGE, KEY_MXL_INSTRUMENTATION, KEY_MXL_JS_EXCEPTION_STACKTRACE, KEY_MXL_MAX_PENDING_SPANS_REACHED, KEY_MXL_NAVIGATION_SOURCE, KEY_MXL_PAGE_ID, KEY_MXL_PAGE_PATH, KEY_MXL_REFERRER_URL, KEY_MXL_SDK_STARTUP_DURATION, KEY_MXL_SESSION_NUMBER, KEY_MXL_SESSION_REASON_ENDED, KEY_MXL_SESSION_REASON_STARTED, KEY_MXL_SOURCE_TAB_ID, KEY_MXL_STATE, KEY_MXL_TAB_ID, KEY_MXL_TYPE, KEY_MXL_W3C_TRACEPARENT, KEY_PREFIX_MXL_PROPERTIES, MXL_ERROR_INSTRUMENTATIONS, MXL_NAVIGATION_INSTRUMENTATIONS, MXL_PERFORMANCE_INSTRUMENTATIONS, MXL_STATES, MXL_TYPES } from "./attributes.js";
|
|
2
|
-
export { KEY_APP_SURFACE_LABEL, KEY_BROWSER_URL_FULL, KEY_MXL_APP_INSTANCE_ID, KEY_MXL_COLD_START, KEY_MXL_ERROR_CODE, KEY_MXL_EXCEPTION_HANDLING, KEY_MXL_EXCEPTION_NUMBER, KEY_MXL_EXPERIENCE_ID, KEY_MXL_FROM_STORAGE, KEY_MXL_INSTRUMENTATION, KEY_MXL_JS_EXCEPTION_STACKTRACE, KEY_MXL_MAX_PENDING_SPANS_REACHED, KEY_MXL_NAVIGATION_SOURCE, KEY_MXL_PAGE_ID, KEY_MXL_PAGE_PATH, KEY_MXL_REFERRER_URL, KEY_MXL_SDK_STARTUP_DURATION, KEY_MXL_SESSION_NUMBER, KEY_MXL_SESSION_REASON_ENDED, KEY_MXL_SESSION_REASON_STARTED, KEY_MXL_SOURCE_TAB_ID, KEY_MXL_STATE, KEY_MXL_TAB_ID, KEY_MXL_TYPE, KEY_MXL_W3C_TRACEPARENT, KEY_PREFIX_MXL_PROPERTIES, MXL_ERROR_INSTRUMENTATIONS, MXL_NAVIGATION_INSTRUMENTATIONS, MXL_PERFORMANCE_INSTRUMENTATIONS, MXL_STATES, MXL_TYPES };
|
|
1
|
+
import { KEY_APP_SURFACE_LABEL, KEY_BROWSER_URL_FULL, KEY_MXL_APP_INSTANCE_ID, KEY_MXL_COLD_START, KEY_MXL_ERROR_CODE, KEY_MXL_EXCEPTION_HANDLING, KEY_MXL_EXCEPTION_NUMBER, KEY_MXL_EXPERIENCE_ID, KEY_MXL_FROM_STORAGE, KEY_MXL_INSTRUMENTATION, KEY_MXL_JS_EXCEPTION_STACKTRACE, KEY_MXL_MAX_PENDING_SPANS_REACHED, KEY_MXL_NAVIGATION_SOURCE, KEY_MXL_PAGE_ID, KEY_MXL_PAGE_PATH, KEY_MXL_REFERRER_URL, KEY_MXL_SDK_STARTUP_DURATION, KEY_MXL_SESSION_NUMBER, KEY_MXL_SESSION_REASON_ENDED, KEY_MXL_SESSION_REASON_STARTED, KEY_MXL_SOURCE_TAB_ID, KEY_MXL_STATE, KEY_MXL_TAB_ID, KEY_MXL_TYPE, KEY_MXL_W3C_TRACEPARENT, KEY_PREFIX_MXL_PROPERTIES, KEY_REACT_COMPONENT_STACK, MXL_ERROR_INSTRUMENTATIONS, MXL_NAVIGATION_INSTRUMENTATIONS, MXL_PERFORMANCE_INSTRUMENTATIONS, MXL_STATES, MXL_TYPES } from "./attributes.js";
|
|
2
|
+
export { KEY_APP_SURFACE_LABEL, KEY_BROWSER_URL_FULL, KEY_MXL_APP_INSTANCE_ID, KEY_MXL_COLD_START, KEY_MXL_ERROR_CODE, KEY_MXL_EXCEPTION_HANDLING, KEY_MXL_EXCEPTION_NUMBER, KEY_MXL_EXPERIENCE_ID, KEY_MXL_FROM_STORAGE, KEY_MXL_INSTRUMENTATION, KEY_MXL_JS_EXCEPTION_STACKTRACE, KEY_MXL_MAX_PENDING_SPANS_REACHED, KEY_MXL_NAVIGATION_SOURCE, KEY_MXL_PAGE_ID, KEY_MXL_PAGE_PATH, KEY_MXL_REFERRER_URL, KEY_MXL_SDK_STARTUP_DURATION, KEY_MXL_SESSION_NUMBER, KEY_MXL_SESSION_REASON_ENDED, KEY_MXL_SESSION_REASON_STARTED, KEY_MXL_SOURCE_TAB_ID, KEY_MXL_STATE, KEY_MXL_TAB_ID, KEY_MXL_TYPE, KEY_MXL_W3C_TRACEPARENT, KEY_PREFIX_MXL_PROPERTIES, KEY_REACT_COMPONENT_STACK, MXL_ERROR_INSTRUMENTATIONS, MXL_NAVIGATION_INSTRUMENTATIONS, MXL_PERFORMANCE_INSTRUMENTATIONS, MXL_STATES, MXL_TYPES };
|
|
@@ -19,7 +19,7 @@ var MXLErrorBoundary = class extends react.Component {
|
|
|
19
19
|
this._logManager.logException(error, {
|
|
20
20
|
handled: false,
|
|
21
21
|
attributes: {
|
|
22
|
-
|
|
22
|
+
[require_constants_attributes.KEY_REACT_COMPONENT_STACK]: errorInfo.componentStack ?? void 0,
|
|
23
23
|
[require_constants_attributes.KEY_MXL_INSTRUMENTATION]: "react_error_boundary"
|
|
24
24
|
}
|
|
25
25
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MXLErrorBoundary.cjs","names":["React","log","KEY_MXL_INSTRUMENTATION"],"sources":["../../../../../src/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.ts"],"sourcesContent":["import type { PropsWithChildren } from 'react';\nimport * as React from 'react';\nimport type { LogManager } from '../../../../api-logs';\nimport { log } from '../../../../api-logs';\nimport {\n KEY_MXL_INSTRUMENTATION,\n MXL_ERROR_INSTRUMENTATIONS,\n} from '../../../../constants';\n\ntype MXLErrorBoundaryProps = {\n fallback: () => React.ReactNode;\n};\n\ntype MXLErrorBoundaryState = {\n hasError: boolean;\n};\n\nexport class MXLErrorBoundary<\n P extends PropsWithChildren<MXLErrorBoundaryProps>,\n> extends React.Component<P, MXLErrorBoundaryState> {\n private readonly _logManager: LogManager;\n\n public constructor(props: P) {\n super(props);\n\n this._logManager = log.getLogManager();\n this.state = {\n hasError: false,\n };\n }\n\n public static getDerivedStateFromError() {\n return { hasError: true };\n }\n\n public override componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {\n this._logManager.logException(error, {\n handled: false,\n attributes: {\n
|
|
1
|
+
{"version":3,"file":"MXLErrorBoundary.cjs","names":["React","log","KEY_REACT_COMPONENT_STACK","KEY_MXL_INSTRUMENTATION"],"sources":["../../../../../src/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.ts"],"sourcesContent":["import type { PropsWithChildren } from 'react';\nimport * as React from 'react';\nimport type { LogManager } from '../../../../api-logs';\nimport { log } from '../../../../api-logs';\nimport {\n KEY_MXL_INSTRUMENTATION,\n KEY_REACT_COMPONENT_STACK,\n MXL_ERROR_INSTRUMENTATIONS,\n} from '../../../../constants';\n\ntype MXLErrorBoundaryProps = {\n fallback: () => React.ReactNode;\n};\n\ntype MXLErrorBoundaryState = {\n hasError: boolean;\n};\n\nexport class MXLErrorBoundary<\n P extends PropsWithChildren<MXLErrorBoundaryProps>,\n> extends React.Component<P, MXLErrorBoundaryState> {\n private readonly _logManager: LogManager;\n\n public constructor(props: P) {\n super(props);\n\n this._logManager = log.getLogManager();\n this.state = {\n hasError: false,\n };\n }\n\n public static getDerivedStateFromError() {\n return { hasError: true };\n }\n\n public override componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {\n this._logManager.logException(error, {\n handled: false,\n attributes: {\n [KEY_REACT_COMPONENT_STACK]: errorInfo.componentStack ?? undefined,\n [KEY_MXL_INSTRUMENTATION]:\n MXL_ERROR_INSTRUMENTATIONS.ReactErrorBoundary,\n },\n });\n }\n\n public override render() {\n if (this.state.hasError) {\n return this.props.fallback();\n }\n\n return this.props.children;\n }\n}\n"],"mappings":";;;;;;;AAkBA,IAAa,mBAAb,cAEUA,MAAM,UAAoC;CAClD;CAEA,YAAmB,OAAU;AAC3B,QAAM,MAAM;AAEZ,OAAK,cAAcC,wBAAAA,IAAI,eAAe;AACtC,OAAK,QAAQ,EACX,UAAU,OACX;;CAGH,OAAc,2BAA2B;AACvC,SAAO,EAAE,UAAU,MAAM;;CAG3B,kBAAkC,OAAc,WAA4B;AAC1E,OAAK,YAAY,aAAa,OAAO;GACnC,SAAS;GACT,YAAY;KACTC,6BAAAA,4BAA4B,UAAU,kBAAkB,KAAA;KACxDC,6BAAAA,0BAAAA;IAEF;GACF,CAAC;;CAGJ,SAAyB;AACvB,MAAI,KAAK,MAAM,SACb,QAAO,KAAK,MAAM,UAAU;AAG9B,SAAO,KAAK,MAAM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MXLErrorBoundary.d.cts","names":[],"sources":["../../../../../src/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"MXLErrorBoundary.d.cts","names":[],"sources":["../../../../../src/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.ts"],"mappings":";;;;KAUK,qBAAA;EACH,QAAA,QAAgB,OAAA,CAAM,SAAA;AAAA;AAAA,KAGnB,qBAAA;EACH,QAAA;AAAA;AAAA,cAGW,gBAAA,WACD,iBAAA,CAAkB,qBAAA,WACpB,OAAA,CAAM,SAAA,CAAU,CAAA,EAAG,qBAAA;EAAA,iBACV,WAAA;cAEE,KAAA,EAAO,CAAA;EAAA,OASZ,wBAAA,CAAA;;;EAIE,iBAAA,CAAkB,KAAA,EAAO,KAAA,EAAO,SAAA,EAAW,OAAA,CAAM,SAAA;EAWjD,MAAA,CAAA,wCAAM,OAAA,CAAA,YAAA,mBAAA,OAAA,CAAA,qBAAA,SAAA,QAAA,CAAA,OAAA,CAAA,SAAA,IAAA,OAAA,sCAAA,OAAA,CAAA,WAAA,GAAA,OAAA,CAAA,YAAA,mBAAA,OAAA,CAAA,qBAAA,SAAA,QAAA,CAAA,OAAA,CAAA,SAAA,wBAAA,CAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MXLErrorBoundary.d.ts","names":[],"sources":["../../../../../src/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"MXLErrorBoundary.d.ts","names":[],"sources":["../../../../../src/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.ts"],"mappings":";;;;KAUK,qBAAA;EACH,QAAA,QAAgB,OAAA,CAAM,SAAA;AAAA;AAAA,KAGnB,qBAAA;EACH,QAAA;AAAA;AAAA,cAGW,gBAAA,WACD,iBAAA,CAAkB,qBAAA,WACpB,OAAA,CAAM,SAAA,CAAU,CAAA,EAAG,qBAAA;EAAA,iBACV,WAAA;cAEE,KAAA,EAAO,CAAA;EAAA,OASZ,wBAAA,CAAA;;;EAIE,iBAAA,CAAkB,KAAA,EAAO,KAAA,EAAO,SAAA,EAAW,OAAA,CAAM,SAAA;EAWjD,MAAA,CAAA,wCAAM,OAAA,CAAA,YAAA,mBAAA,OAAA,CAAA,qBAAA,SAAA,QAAA,CAAA,OAAA,CAAA,SAAA,IAAA,OAAA,sCAAA,OAAA,CAAA,WAAA,GAAA,OAAA,CAAA,YAAA,mBAAA,OAAA,CAAA,qBAAA,SAAA,QAAA,CAAA,OAAA,CAAA,SAAA,wBAAA,CAAA;AAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { KEY_MXL_INSTRUMENTATION } from "../../../../constants/attributes.js";
|
|
1
|
+
import { KEY_MXL_INSTRUMENTATION, KEY_REACT_COMPONENT_STACK } from "../../../../constants/attributes.js";
|
|
2
2
|
import { log } from "../../../../api-logs/logAPI.js";
|
|
3
3
|
import * as React$1 from "react";
|
|
4
4
|
//#region src/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.ts
|
|
@@ -16,7 +16,7 @@ var MXLErrorBoundary = class extends React$1.Component {
|
|
|
16
16
|
this._logManager.logException(error, {
|
|
17
17
|
handled: false,
|
|
18
18
|
attributes: {
|
|
19
|
-
|
|
19
|
+
[KEY_REACT_COMPONENT_STACK]: errorInfo.componentStack ?? void 0,
|
|
20
20
|
[KEY_MXL_INSTRUMENTATION]: "react_error_boundary"
|
|
21
21
|
}
|
|
22
22
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MXLErrorBoundary.js","names":["React"],"sources":["../../../../../src/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.ts"],"sourcesContent":["import type { PropsWithChildren } from 'react';\nimport * as React from 'react';\nimport type { LogManager } from '../../../../api-logs';\nimport { log } from '../../../../api-logs';\nimport {\n KEY_MXL_INSTRUMENTATION,\n MXL_ERROR_INSTRUMENTATIONS,\n} from '../../../../constants';\n\ntype MXLErrorBoundaryProps = {\n fallback: () => React.ReactNode;\n};\n\ntype MXLErrorBoundaryState = {\n hasError: boolean;\n};\n\nexport class MXLErrorBoundary<\n P extends PropsWithChildren<MXLErrorBoundaryProps>,\n> extends React.Component<P, MXLErrorBoundaryState> {\n private readonly _logManager: LogManager;\n\n public constructor(props: P) {\n super(props);\n\n this._logManager = log.getLogManager();\n this.state = {\n hasError: false,\n };\n }\n\n public static getDerivedStateFromError() {\n return { hasError: true };\n }\n\n public override componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {\n this._logManager.logException(error, {\n handled: false,\n attributes: {\n
|
|
1
|
+
{"version":3,"file":"MXLErrorBoundary.js","names":["React"],"sources":["../../../../../src/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.ts"],"sourcesContent":["import type { PropsWithChildren } from 'react';\nimport * as React from 'react';\nimport type { LogManager } from '../../../../api-logs';\nimport { log } from '../../../../api-logs';\nimport {\n KEY_MXL_INSTRUMENTATION,\n KEY_REACT_COMPONENT_STACK,\n MXL_ERROR_INSTRUMENTATIONS,\n} from '../../../../constants';\n\ntype MXLErrorBoundaryProps = {\n fallback: () => React.ReactNode;\n};\n\ntype MXLErrorBoundaryState = {\n hasError: boolean;\n};\n\nexport class MXLErrorBoundary<\n P extends PropsWithChildren<MXLErrorBoundaryProps>,\n> extends React.Component<P, MXLErrorBoundaryState> {\n private readonly _logManager: LogManager;\n\n public constructor(props: P) {\n super(props);\n\n this._logManager = log.getLogManager();\n this.state = {\n hasError: false,\n };\n }\n\n public static getDerivedStateFromError() {\n return { hasError: true };\n }\n\n public override componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {\n this._logManager.logException(error, {\n handled: false,\n attributes: {\n [KEY_REACT_COMPONENT_STACK]: errorInfo.componentStack ?? undefined,\n [KEY_MXL_INSTRUMENTATION]:\n MXL_ERROR_INSTRUMENTATIONS.ReactErrorBoundary,\n },\n });\n }\n\n public override render() {\n if (this.state.hasError) {\n return this.props.fallback();\n }\n\n return this.props.children;\n }\n}\n"],"mappings":";;;;AAkBA,IAAa,mBAAb,cAEUA,QAAM,UAAoC;CAClD;CAEA,YAAmB,OAAU;AAC3B,QAAM,MAAM;AAEZ,OAAK,cAAc,IAAI,eAAe;AACtC,OAAK,QAAQ,EACX,UAAU,OACX;;CAGH,OAAc,2BAA2B;AACvC,SAAO,EAAE,UAAU,MAAM;;CAG3B,kBAAkC,OAAc,WAA4B;AAC1E,OAAK,YAAY,aAAa,OAAO;GACnC,SAAS;GACT,YAAY;KACT,4BAA4B,UAAU,kBAAkB,KAAA;KACxD,0BAAA;IAEF;GACF,CAAC;;CAGJ,SAAyB;AACvB,MAAI,KAAK,MAAM,SACb,QAAO,KAAK,MAAM,UAAU;AAG9B,SAAO,KAAK,MAAM"}
|
|
@@ -66,7 +66,8 @@ var MXLLogManager = class MXLLogManager {
|
|
|
66
66
|
errMessage = String(error).trim();
|
|
67
67
|
}
|
|
68
68
|
else errMessage = String(error).trim();
|
|
69
|
-
const
|
|
69
|
+
const { [require_constants_attributes.KEY_REACT_COMPONENT_STACK]: reactComponentStack, ...attrsForLimiting } = validAttrs;
|
|
70
|
+
const limited = this._limitManager.limitException(errMessage, attrsForLimiting);
|
|
70
71
|
if (limited === "dropped") return;
|
|
71
72
|
this._logger.emit({
|
|
72
73
|
timestamp,
|
|
@@ -75,6 +76,7 @@ var MXLLogManager = class MXLLogManager {
|
|
|
75
76
|
body: limited.message,
|
|
76
77
|
attributes: {
|
|
77
78
|
...limited.attributes,
|
|
79
|
+
...reactComponentStack !== void 0 ? { [require_constants_attributes.KEY_REACT_COMPONENT_STACK]: String(reactComponentStack) } : {},
|
|
78
80
|
[require_constants_attributes.KEY_MXL_TYPE]: "sys.exception",
|
|
79
81
|
[require_constants_attributes.KEY_MXL_EXCEPTION_HANDLING]: MXLLogManager._exceptionHandlingType(handled, handler),
|
|
80
82
|
[require_constants_attributes.KEY_MXL_EXCEPTION_CAUSE]: errCause,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MXLLogManager.cjs","names":["GLOBAL_CONFIG","logs","diag","OTelPerformanceManager","SeverityNumber","KEY_MXL_UNHANDLED_EXCEPTIONS_COUNT","KEY_MXL_TYPE","KEY_MXL_EXCEPTION_HANDLING","KEY_MXL_EXCEPTION_CAUSE","ATTR_EXCEPTION_TYPE","ATTR_EXCEPTION_MESSAGE","ATTR_EXCEPTION_STACKTRACE","KEY_MXL_JS_FILE_BUNDLE_IDS","KEY_MXL_STATE","getVisibilityState","KEY_MXL_EXCEPTION_NUMBER","getIncrementedCount","KEY_MXL_ERROR_LOG_COUNT","KEY_MXL_JS_EXCEPTION_STACKTRACE"],"sources":["../../../src/managers/MXLLogManager/MXLLogManager.ts"],"sourcesContent":["import type { Attributes, DiagLogger } from '@opentelemetry/api';\nimport { diag } from '@opentelemetry/api';\nimport type { Logger } from '@opentelemetry/api-logs';\nimport { logs, SeverityNumber } from '@opentelemetry/api-logs';\nimport {\n ATTR_EXCEPTION_MESSAGE,\n ATTR_EXCEPTION_STACKTRACE,\n ATTR_EXCEPTION_TYPE,\n} from '@opentelemetry/semantic-conventions';\nimport type { LogManager, LogSeverity } from '../../api-logs';\nimport type {\n LogExceptionOptions,\n LogMessageOptions,\n} from '../../api-logs/manager';\nimport type { ExceptionHandlerType } from '../../api-logs/manager/types';\nimport type { VisibilityStateDocument } from '../../common';\nimport {\n KEY_MXL_EXCEPTION_HANDLING,\n KEY_MXL_EXCEPTION_NUMBER,\n KEY_MXL_JS_EXCEPTION_STACKTRACE,\n KEY_MXL_STATE,\n KEY_MXL_TYPE,\n MXL_TYPES,\n} from '../../constants';\nimport {\n KEY_MXL_ERROR_LOG_COUNT,\n KEY_MXL_EXCEPTION_CAUSE,\n KEY_MXL_JS_FILE_BUNDLE_IDS,\n KEY_MXL_UNHANDLED_EXCEPTIONS_COUNT,\n} from '../../constants/attributes';\nimport type { PerformanceManager } from '../../utils';\nimport {\n GLOBAL_CONFIG,\n getIncrementedCount,\n getVisibilityState,\n OTelPerformanceManager,\n} from '../../utils';\nimport type { LimitManagerInternal } from '../MXLLimitManager';\nimport type { SpanSessionManagerInternal } from '../MXLSpanSessionManager';\nimport type { MXLLogManagerArgs } from './types';\n\nconst MXL_EXCEPTION_NUMBER_STORAGE_KEY = 'mxl_exception_number';\n/**\n * GLOBAL_CONFIG._MXLFileBundleIDs is populated at runtime when each file is loaded,\n * based on the contents injected by the mxl-web-cli.\n */\nconst getJSFileBundleIDs = () =>\n JSON.stringify(\n GLOBAL_CONFIG._MXLFileBundleIDs || GLOBAL_CONFIG._MXLFileBundleIDs || {},\n );\n\nexport class MXLLogManager implements LogManager {\n private readonly _diag: DiagLogger;\n private readonly _perf: PerformanceManager;\n private readonly _logger: Logger;\n private readonly _spanSessionManager: SpanSessionManagerInternal;\n private readonly _limitManager: LimitManagerInternal;\n private readonly _visibilityDoc: VisibilityStateDocument;\n private readonly _storage: Storage;\n\n public constructor({\n diag: diagParam,\n perf,\n spanSessionManager,\n limitManager,\n loggerProvider: globalLoggerProviderOverride,\n visibilityDoc = window.document,\n storage = window.localStorage,\n }: MXLLogManagerArgs) {\n const loggerProvider = globalLoggerProviderOverride ?? logs;\n\n this._diag =\n diagParam ??\n diag.createComponentLogger({\n namespace: 'MXLLogManager',\n });\n this._perf = perf ?? new OTelPerformanceManager();\n this._logger = loggerProvider.getLogger('mxl-web-sdk-logs');\n this._spanSessionManager = spanSessionManager;\n this._limitManager = limitManager;\n this._visibilityDoc = visibilityDoc;\n this._storage = storage;\n }\n\n private _validateAttributes(attributes: unknown): Attributes {\n if (Object.prototype.toString.call(attributes) !== '[object Object]') {\n this._diag.warn('attributes must be a plain object', attributes);\n return {};\n }\n return attributes as Attributes;\n }\n\n private static _logSeverityToSeverityNumber(\n severity: LogSeverity,\n ): SeverityNumber {\n switch (severity) {\n case 'info':\n return SeverityNumber.INFO;\n case 'warning':\n return SeverityNumber.WARN;\n default:\n return SeverityNumber.ERROR;\n }\n }\n\n public logException(\n error: unknown,\n {\n handled = true,\n attributes = {},\n timestamp = this._perf.getNowMillis(),\n handler = 'manual',\n }: LogExceptionOptions = {},\n ) {\n const validAttrs = this._validateAttributes(attributes);\n\n if (!handled) {\n this._spanSessionManager.incrSessionCountForKey(\n KEY_MXL_UNHANDLED_EXCEPTIONS_COUNT,\n );\n }\n\n const type = error?.constructor?.name || typeof error;\n let errMessage = '';\n let errName = type;\n let errStack = '';\n let errCause = '';\n\n if (error instanceof Error) {\n errMessage = String(error.message || '').trim();\n errName = error.name || '';\n errStack = error.stack || '';\n errCause = error.cause ? 'present' : '';\n } else if (error && typeof error === 'object') {\n try {\n errMessage = JSON.stringify(error);\n } catch {\n errMessage = String(error).trim();\n }\n } else {\n errMessage = String(error).trim();\n }\n\n const limited = this._limitManager.limitException(errMessage, validAttrs);\n if (limited === 'dropped') {\n return;\n }\n\n this._logger.emit({\n timestamp,\n severityNumber: SeverityNumber.ERROR,\n severityText: 'ERROR',\n body: limited.message,\n attributes: {\n ...limited.attributes,\n [KEY_MXL_TYPE]: MXL_TYPES.SystemException,\n [KEY_MXL_EXCEPTION_HANDLING]: MXLLogManager._exceptionHandlingType(\n handled,\n handler,\n ),\n [KEY_MXL_EXCEPTION_CAUSE]: errCause,\n [ATTR_EXCEPTION_TYPE]: type,\n ['exception.name']: errName,\n [ATTR_EXCEPTION_MESSAGE]: limited.message,\n [ATTR_EXCEPTION_STACKTRACE]: errStack,\n [KEY_MXL_JS_FILE_BUNDLE_IDS]: getJSFileBundleIDs(),\n [KEY_MXL_STATE]: getVisibilityState(this._visibilityDoc),\n [KEY_MXL_EXCEPTION_NUMBER]: getIncrementedCount(\n this._storage,\n MXL_EXCEPTION_NUMBER_STORAGE_KEY,\n this._diag,\n ),\n },\n });\n }\n\n public message(\n message: string,\n severity: LogSeverity,\n {\n attributes = {},\n includeStacktrace = true,\n stacktrace,\n }: LogMessageOptions = {},\n ) {\n if (typeof message !== 'string' || !message.trim()) {\n this._diag.warn('Message must be a non-empty string');\n return;\n }\n\n if (!['info', 'warning', 'error'].includes(severity)) {\n this._diag.warn('Severity must be info, warning, or error');\n return;\n }\n\n const validAttrs = this._validateAttributes(attributes);\n\n if (severity === 'error') {\n this._spanSessionManager.incrSessionCountForKey(KEY_MXL_ERROR_LOG_COUNT);\n }\n\n let stack = '';\n if (severity !== 'info') {\n if (typeof stacktrace === 'string') {\n stack = stacktrace;\n } else if (includeStacktrace) {\n stack = new Error().stack || '';\n }\n }\n\n this._logMessage({\n message: message.trim(),\n severity,\n timestamp: this._perf.getNowMillis(),\n attributes: validAttrs,\n stack,\n });\n }\n\n private _logMessage({\n message,\n severity,\n timestamp,\n attributes = {},\n stack,\n }: {\n message: string;\n severity: LogSeverity;\n timestamp: number;\n attributes?: Attributes;\n stack?: string;\n }) {\n const limitedLog = this._limitManager.limitLog(\n message,\n severity,\n attributes,\n );\n\n if (limitedLog === 'dropped') {\n return;\n }\n\n this._logger.emit({\n timestamp,\n severityNumber: MXLLogManager._logSeverityToSeverityNumber(severity),\n severityText: severity.toUpperCase(),\n body: limitedLog.message,\n attributes: {\n ...limitedLog.attributes,\n [KEY_MXL_TYPE]: MXL_TYPES.SystemLog,\n ...(stack\n ? {\n [KEY_MXL_JS_EXCEPTION_STACKTRACE]: stack,\n [KEY_MXL_JS_FILE_BUNDLE_IDS]: getJSFileBundleIDs(),\n }\n : {}),\n [KEY_MXL_STATE]: getVisibilityState(this._visibilityDoc),\n },\n });\n }\n\n private static _exceptionHandlingType(\n handled: boolean,\n handler: ExceptionHandlerType,\n ): string {\n if (handled) {\n return 'handled';\n }\n\n if (handler === 'global_exception') {\n return 'unhandled_error';\n }\n\n if (handler === 'promise_rejection') {\n return 'unhandled_rejection';\n }\n\n return 'unhandled';\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MXLLogManager.cjs","names":["GLOBAL_CONFIG","logs","diag","OTelPerformanceManager","SeverityNumber","KEY_MXL_UNHANDLED_EXCEPTIONS_COUNT","KEY_REACT_COMPONENT_STACK","KEY_MXL_TYPE","KEY_MXL_EXCEPTION_HANDLING","KEY_MXL_EXCEPTION_CAUSE","ATTR_EXCEPTION_TYPE","ATTR_EXCEPTION_MESSAGE","ATTR_EXCEPTION_STACKTRACE","KEY_MXL_JS_FILE_BUNDLE_IDS","KEY_MXL_STATE","getVisibilityState","KEY_MXL_EXCEPTION_NUMBER","getIncrementedCount","KEY_MXL_ERROR_LOG_COUNT","KEY_MXL_JS_EXCEPTION_STACKTRACE"],"sources":["../../../src/managers/MXLLogManager/MXLLogManager.ts"],"sourcesContent":["import type { Attributes, DiagLogger } from '@opentelemetry/api';\nimport { diag } from '@opentelemetry/api';\nimport type { Logger } from '@opentelemetry/api-logs';\nimport { logs, SeverityNumber } from '@opentelemetry/api-logs';\nimport {\n ATTR_EXCEPTION_MESSAGE,\n ATTR_EXCEPTION_STACKTRACE,\n ATTR_EXCEPTION_TYPE,\n} from '@opentelemetry/semantic-conventions';\nimport type { LogManager, LogSeverity } from '../../api-logs';\nimport type {\n LogExceptionOptions,\n LogMessageOptions,\n} from '../../api-logs/manager';\nimport type { ExceptionHandlerType } from '../../api-logs/manager/types';\nimport type { VisibilityStateDocument } from '../../common';\nimport {\n KEY_MXL_EXCEPTION_HANDLING,\n KEY_MXL_EXCEPTION_NUMBER,\n KEY_MXL_JS_EXCEPTION_STACKTRACE,\n KEY_MXL_STATE,\n KEY_MXL_TYPE,\n MXL_TYPES,\n} from '../../constants';\nimport {\n KEY_MXL_ERROR_LOG_COUNT,\n KEY_MXL_EXCEPTION_CAUSE,\n KEY_MXL_JS_FILE_BUNDLE_IDS,\n KEY_MXL_UNHANDLED_EXCEPTIONS_COUNT,\n KEY_REACT_COMPONENT_STACK,\n} from '../../constants/attributes';\nimport type { PerformanceManager } from '../../utils';\nimport {\n GLOBAL_CONFIG,\n getIncrementedCount,\n getVisibilityState,\n OTelPerformanceManager,\n} from '../../utils';\nimport type { LimitManagerInternal } from '../MXLLimitManager';\nimport type { SpanSessionManagerInternal } from '../MXLSpanSessionManager';\nimport type { MXLLogManagerArgs } from './types';\n\nconst MXL_EXCEPTION_NUMBER_STORAGE_KEY = 'mxl_exception_number';\n/**\n * GLOBAL_CONFIG._MXLFileBundleIDs is populated at runtime when each file is loaded,\n * based on the contents injected by the mxl-web-cli.\n */\nconst getJSFileBundleIDs = () =>\n JSON.stringify(\n GLOBAL_CONFIG._MXLFileBundleIDs || GLOBAL_CONFIG._MXLFileBundleIDs || {},\n );\n\nexport class MXLLogManager implements LogManager {\n private readonly _diag: DiagLogger;\n private readonly _perf: PerformanceManager;\n private readonly _logger: Logger;\n private readonly _spanSessionManager: SpanSessionManagerInternal;\n private readonly _limitManager: LimitManagerInternal;\n private readonly _visibilityDoc: VisibilityStateDocument;\n private readonly _storage: Storage;\n\n public constructor({\n diag: diagParam,\n perf,\n spanSessionManager,\n limitManager,\n loggerProvider: globalLoggerProviderOverride,\n visibilityDoc = window.document,\n storage = window.localStorage,\n }: MXLLogManagerArgs) {\n const loggerProvider = globalLoggerProviderOverride ?? logs;\n\n this._diag =\n diagParam ??\n diag.createComponentLogger({\n namespace: 'MXLLogManager',\n });\n this._perf = perf ?? new OTelPerformanceManager();\n this._logger = loggerProvider.getLogger('mxl-web-sdk-logs');\n this._spanSessionManager = spanSessionManager;\n this._limitManager = limitManager;\n this._visibilityDoc = visibilityDoc;\n this._storage = storage;\n }\n\n private _validateAttributes(attributes: unknown): Attributes {\n if (Object.prototype.toString.call(attributes) !== '[object Object]') {\n this._diag.warn('attributes must be a plain object', attributes);\n return {};\n }\n return attributes as Attributes;\n }\n\n private static _logSeverityToSeverityNumber(\n severity: LogSeverity,\n ): SeverityNumber {\n switch (severity) {\n case 'info':\n return SeverityNumber.INFO;\n case 'warning':\n return SeverityNumber.WARN;\n default:\n return SeverityNumber.ERROR;\n }\n }\n\n public logException(\n error: unknown,\n {\n handled = true,\n attributes = {},\n timestamp = this._perf.getNowMillis(),\n handler = 'manual',\n }: LogExceptionOptions = {},\n ) {\n const validAttrs = this._validateAttributes(attributes);\n\n if (!handled) {\n this._spanSessionManager.incrSessionCountForKey(\n KEY_MXL_UNHANDLED_EXCEPTIONS_COUNT,\n );\n }\n\n const type = error?.constructor?.name || typeof error;\n let errMessage = '';\n let errName = type;\n let errStack = '';\n let errCause = '';\n\n if (error instanceof Error) {\n errMessage = String(error.message || '').trim();\n errName = error.name || '';\n errStack = error.stack || '';\n errCause = error.cause ? 'present' : '';\n } else if (error && typeof error === 'object') {\n try {\n errMessage = JSON.stringify(error);\n } catch {\n errMessage = String(error).trim();\n }\n } else {\n errMessage = String(error).trim();\n }\n\n const {\n [KEY_REACT_COMPONENT_STACK]: reactComponentStack,\n ...attrsForLimiting\n } = validAttrs;\n\n const limited = this._limitManager.limitException(\n errMessage,\n attrsForLimiting,\n );\n if (limited === 'dropped') {\n return;\n }\n\n this._logger.emit({\n timestamp,\n severityNumber: SeverityNumber.ERROR,\n severityText: 'ERROR',\n body: limited.message,\n attributes: {\n ...limited.attributes,\n ...(reactComponentStack !== undefined\n ? { [KEY_REACT_COMPONENT_STACK]: String(reactComponentStack) }\n : {}),\n [KEY_MXL_TYPE]: MXL_TYPES.SystemException,\n [KEY_MXL_EXCEPTION_HANDLING]: MXLLogManager._exceptionHandlingType(\n handled,\n handler,\n ),\n [KEY_MXL_EXCEPTION_CAUSE]: errCause,\n [ATTR_EXCEPTION_TYPE]: type,\n ['exception.name']: errName,\n [ATTR_EXCEPTION_MESSAGE]: limited.message,\n [ATTR_EXCEPTION_STACKTRACE]: errStack,\n [KEY_MXL_JS_FILE_BUNDLE_IDS]: getJSFileBundleIDs(),\n [KEY_MXL_STATE]: getVisibilityState(this._visibilityDoc),\n [KEY_MXL_EXCEPTION_NUMBER]: getIncrementedCount(\n this._storage,\n MXL_EXCEPTION_NUMBER_STORAGE_KEY,\n this._diag,\n ),\n },\n });\n }\n\n public message(\n message: string,\n severity: LogSeverity,\n {\n attributes = {},\n includeStacktrace = true,\n stacktrace,\n }: LogMessageOptions = {},\n ) {\n if (typeof message !== 'string' || !message.trim()) {\n this._diag.warn('Message must be a non-empty string');\n return;\n }\n\n if (!['info', 'warning', 'error'].includes(severity)) {\n this._diag.warn('Severity must be info, warning, or error');\n return;\n }\n\n const validAttrs = this._validateAttributes(attributes);\n\n if (severity === 'error') {\n this._spanSessionManager.incrSessionCountForKey(KEY_MXL_ERROR_LOG_COUNT);\n }\n\n let stack = '';\n if (severity !== 'info') {\n if (typeof stacktrace === 'string') {\n stack = stacktrace;\n } else if (includeStacktrace) {\n stack = new Error().stack || '';\n }\n }\n\n this._logMessage({\n message: message.trim(),\n severity,\n timestamp: this._perf.getNowMillis(),\n attributes: validAttrs,\n stack,\n });\n }\n\n private _logMessage({\n message,\n severity,\n timestamp,\n attributes = {},\n stack,\n }: {\n message: string;\n severity: LogSeverity;\n timestamp: number;\n attributes?: Attributes;\n stack?: string;\n }) {\n const limitedLog = this._limitManager.limitLog(\n message,\n severity,\n attributes,\n );\n\n if (limitedLog === 'dropped') {\n return;\n }\n\n this._logger.emit({\n timestamp,\n severityNumber: MXLLogManager._logSeverityToSeverityNumber(severity),\n severityText: severity.toUpperCase(),\n body: limitedLog.message,\n attributes: {\n ...limitedLog.attributes,\n [KEY_MXL_TYPE]: MXL_TYPES.SystemLog,\n ...(stack\n ? {\n [KEY_MXL_JS_EXCEPTION_STACKTRACE]: stack,\n [KEY_MXL_JS_FILE_BUNDLE_IDS]: getJSFileBundleIDs(),\n }\n : {}),\n [KEY_MXL_STATE]: getVisibilityState(this._visibilityDoc),\n },\n });\n }\n\n private static _exceptionHandlingType(\n handled: boolean,\n handler: ExceptionHandlerType,\n ): string {\n if (handled) {\n return 'handled';\n }\n\n if (handler === 'global_exception') {\n return 'unhandled_error';\n }\n\n if (handler === 'promise_rejection') {\n return 'unhandled_rejection';\n }\n\n return 'unhandled';\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MXLLogManager.d.cts","names":[],"sources":["../../../src/managers/MXLLogManager/MXLLogManager.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"MXLLogManager.d.cts","names":[],"sources":["../../../src/managers/MXLLogManager/MXLLogManager.ts"],"mappings":";;;;cAoDa,aAAA,YAAyB,UAAA;EAAA,iBACnB,KAAA;EAAA,iBACA,KAAA;EAAA,iBACA,OAAA;EAAA,iBACA,mBAAA;EAAA,iBACA,aAAA;EAAA,iBACA,cAAA;EAAA,iBACA,QAAA;;IAGf,IAAA,EAAM,SAAA;IACN,IAAA;IACA,kBAAA;IACA,YAAA;IACA,cAAA,EAAgB,4BAAA;IAChB,aAAA;IACA;EAAA,GACC,iBAAA;EAAA,QAgBK,mBAAA;EAAA,eAQO,4BAAA;EAaR,YAAA,CACL,KAAA;IAEE,OAAA;IACA,UAAA;IACA,SAAA;IACA;EAAA,IACC,mBAAA;EA2EE,OAAA,CACL,OAAA,UACA,QAAA,EAAU,WAAA;IAER,UAAA;IACA,iBAAA;IACA;EAAA,IACC,iBAAA;EAAA,QAoCG,WAAA;EAAA,eA0CO,sBAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MXLLogManager.d.ts","names":[],"sources":["../../../src/managers/MXLLogManager/MXLLogManager.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"MXLLogManager.d.ts","names":[],"sources":["../../../src/managers/MXLLogManager/MXLLogManager.ts"],"mappings":";;;;cAoDa,aAAA,YAAyB,UAAA;EAAA,iBACnB,KAAA;EAAA,iBACA,KAAA;EAAA,iBACA,OAAA;EAAA,iBACA,mBAAA;EAAA,iBACA,aAAA;EAAA,iBACA,cAAA;EAAA,iBACA,QAAA;;IAGf,IAAA,EAAM,SAAA;IACN,IAAA;IACA,kBAAA;IACA,YAAA;IACA,cAAA,EAAgB,4BAAA;IAChB,aAAA;IACA;EAAA,GACC,iBAAA;EAAA,QAgBK,mBAAA;EAAA,eAQO,4BAAA;EAaR,YAAA,CACL,KAAA;IAEE,OAAA;IACA,UAAA;IACA,SAAA;IACA;EAAA,IACC,mBAAA;EA2EE,OAAA,CACL,OAAA,UACA,QAAA,EAAU,WAAA;IAER,UAAA;IACA,iBAAA;IACA;EAAA,IACC,iBAAA;EAAA,QAoCG,WAAA;EAAA,eA0CO,sBAAA;AAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getIncrementedCount } from "../../utils/getIncrementedCount.js";
|
|
2
|
-
import { KEY_MXL_ERROR_LOG_COUNT, KEY_MXL_EXCEPTION_CAUSE, KEY_MXL_EXCEPTION_HANDLING, KEY_MXL_EXCEPTION_NUMBER, KEY_MXL_JS_EXCEPTION_STACKTRACE, KEY_MXL_JS_FILE_BUNDLE_IDS, KEY_MXL_STATE, KEY_MXL_TYPE, KEY_MXL_UNHANDLED_EXCEPTIONS_COUNT } from "../../constants/attributes.js";
|
|
2
|
+
import { KEY_MXL_ERROR_LOG_COUNT, KEY_MXL_EXCEPTION_CAUSE, KEY_MXL_EXCEPTION_HANDLING, KEY_MXL_EXCEPTION_NUMBER, KEY_MXL_JS_EXCEPTION_STACKTRACE, KEY_MXL_JS_FILE_BUNDLE_IDS, KEY_MXL_STATE, KEY_MXL_TYPE, KEY_MXL_UNHANDLED_EXCEPTIONS_COUNT, KEY_REACT_COMPONENT_STACK } from "../../constants/attributes.js";
|
|
3
3
|
import { getVisibilityState } from "../../utils/getVisibilityState.js";
|
|
4
4
|
import { GLOBAL_CONFIG } from "../../utils/globalConfig.js";
|
|
5
5
|
import { OTelPerformanceManager } from "../../utils/PerformanceManager/OTelPerformanceManager.js";
|
|
@@ -64,7 +64,8 @@ var MXLLogManager = class MXLLogManager {
|
|
|
64
64
|
errMessage = String(error).trim();
|
|
65
65
|
}
|
|
66
66
|
else errMessage = String(error).trim();
|
|
67
|
-
const
|
|
67
|
+
const { [KEY_REACT_COMPONENT_STACK]: reactComponentStack, ...attrsForLimiting } = validAttrs;
|
|
68
|
+
const limited = this._limitManager.limitException(errMessage, attrsForLimiting);
|
|
68
69
|
if (limited === "dropped") return;
|
|
69
70
|
this._logger.emit({
|
|
70
71
|
timestamp,
|
|
@@ -73,6 +74,7 @@ var MXLLogManager = class MXLLogManager {
|
|
|
73
74
|
body: limited.message,
|
|
74
75
|
attributes: {
|
|
75
76
|
...limited.attributes,
|
|
77
|
+
...reactComponentStack !== void 0 ? { [KEY_REACT_COMPONENT_STACK]: String(reactComponentStack) } : {},
|
|
76
78
|
[KEY_MXL_TYPE]: "sys.exception",
|
|
77
79
|
[KEY_MXL_EXCEPTION_HANDLING]: MXLLogManager._exceptionHandlingType(handled, handler),
|
|
78
80
|
[KEY_MXL_EXCEPTION_CAUSE]: errCause,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MXLLogManager.js","names":[],"sources":["../../../src/managers/MXLLogManager/MXLLogManager.ts"],"sourcesContent":["import type { Attributes, DiagLogger } from '@opentelemetry/api';\nimport { diag } from '@opentelemetry/api';\nimport type { Logger } from '@opentelemetry/api-logs';\nimport { logs, SeverityNumber } from '@opentelemetry/api-logs';\nimport {\n ATTR_EXCEPTION_MESSAGE,\n ATTR_EXCEPTION_STACKTRACE,\n ATTR_EXCEPTION_TYPE,\n} from '@opentelemetry/semantic-conventions';\nimport type { LogManager, LogSeverity } from '../../api-logs';\nimport type {\n LogExceptionOptions,\n LogMessageOptions,\n} from '../../api-logs/manager';\nimport type { ExceptionHandlerType } from '../../api-logs/manager/types';\nimport type { VisibilityStateDocument } from '../../common';\nimport {\n KEY_MXL_EXCEPTION_HANDLING,\n KEY_MXL_EXCEPTION_NUMBER,\n KEY_MXL_JS_EXCEPTION_STACKTRACE,\n KEY_MXL_STATE,\n KEY_MXL_TYPE,\n MXL_TYPES,\n} from '../../constants';\nimport {\n KEY_MXL_ERROR_LOG_COUNT,\n KEY_MXL_EXCEPTION_CAUSE,\n KEY_MXL_JS_FILE_BUNDLE_IDS,\n KEY_MXL_UNHANDLED_EXCEPTIONS_COUNT,\n} from '../../constants/attributes';\nimport type { PerformanceManager } from '../../utils';\nimport {\n GLOBAL_CONFIG,\n getIncrementedCount,\n getVisibilityState,\n OTelPerformanceManager,\n} from '../../utils';\nimport type { LimitManagerInternal } from '../MXLLimitManager';\nimport type { SpanSessionManagerInternal } from '../MXLSpanSessionManager';\nimport type { MXLLogManagerArgs } from './types';\n\nconst MXL_EXCEPTION_NUMBER_STORAGE_KEY = 'mxl_exception_number';\n/**\n * GLOBAL_CONFIG._MXLFileBundleIDs is populated at runtime when each file is loaded,\n * based on the contents injected by the mxl-web-cli.\n */\nconst getJSFileBundleIDs = () =>\n JSON.stringify(\n GLOBAL_CONFIG._MXLFileBundleIDs || GLOBAL_CONFIG._MXLFileBundleIDs || {},\n );\n\nexport class MXLLogManager implements LogManager {\n private readonly _diag: DiagLogger;\n private readonly _perf: PerformanceManager;\n private readonly _logger: Logger;\n private readonly _spanSessionManager: SpanSessionManagerInternal;\n private readonly _limitManager: LimitManagerInternal;\n private readonly _visibilityDoc: VisibilityStateDocument;\n private readonly _storage: Storage;\n\n public constructor({\n diag: diagParam,\n perf,\n spanSessionManager,\n limitManager,\n loggerProvider: globalLoggerProviderOverride,\n visibilityDoc = window.document,\n storage = window.localStorage,\n }: MXLLogManagerArgs) {\n const loggerProvider = globalLoggerProviderOverride ?? logs;\n\n this._diag =\n diagParam ??\n diag.createComponentLogger({\n namespace: 'MXLLogManager',\n });\n this._perf = perf ?? new OTelPerformanceManager();\n this._logger = loggerProvider.getLogger('mxl-web-sdk-logs');\n this._spanSessionManager = spanSessionManager;\n this._limitManager = limitManager;\n this._visibilityDoc = visibilityDoc;\n this._storage = storage;\n }\n\n private _validateAttributes(attributes: unknown): Attributes {\n if (Object.prototype.toString.call(attributes) !== '[object Object]') {\n this._diag.warn('attributes must be a plain object', attributes);\n return {};\n }\n return attributes as Attributes;\n }\n\n private static _logSeverityToSeverityNumber(\n severity: LogSeverity,\n ): SeverityNumber {\n switch (severity) {\n case 'info':\n return SeverityNumber.INFO;\n case 'warning':\n return SeverityNumber.WARN;\n default:\n return SeverityNumber.ERROR;\n }\n }\n\n public logException(\n error: unknown,\n {\n handled = true,\n attributes = {},\n timestamp = this._perf.getNowMillis(),\n handler = 'manual',\n }: LogExceptionOptions = {},\n ) {\n const validAttrs = this._validateAttributes(attributes);\n\n if (!handled) {\n this._spanSessionManager.incrSessionCountForKey(\n KEY_MXL_UNHANDLED_EXCEPTIONS_COUNT,\n );\n }\n\n const type = error?.constructor?.name || typeof error;\n let errMessage = '';\n let errName = type;\n let errStack = '';\n let errCause = '';\n\n if (error instanceof Error) {\n errMessage = String(error.message || '').trim();\n errName = error.name || '';\n errStack = error.stack || '';\n errCause = error.cause ? 'present' : '';\n } else if (error && typeof error === 'object') {\n try {\n errMessage = JSON.stringify(error);\n } catch {\n errMessage = String(error).trim();\n }\n } else {\n errMessage = String(error).trim();\n }\n\n const limited = this._limitManager.limitException(errMessage, validAttrs);\n if (limited === 'dropped') {\n return;\n }\n\n this._logger.emit({\n timestamp,\n severityNumber: SeverityNumber.ERROR,\n severityText: 'ERROR',\n body: limited.message,\n attributes: {\n ...limited.attributes,\n [KEY_MXL_TYPE]: MXL_TYPES.SystemException,\n [KEY_MXL_EXCEPTION_HANDLING]: MXLLogManager._exceptionHandlingType(\n handled,\n handler,\n ),\n [KEY_MXL_EXCEPTION_CAUSE]: errCause,\n [ATTR_EXCEPTION_TYPE]: type,\n ['exception.name']: errName,\n [ATTR_EXCEPTION_MESSAGE]: limited.message,\n [ATTR_EXCEPTION_STACKTRACE]: errStack,\n [KEY_MXL_JS_FILE_BUNDLE_IDS]: getJSFileBundleIDs(),\n [KEY_MXL_STATE]: getVisibilityState(this._visibilityDoc),\n [KEY_MXL_EXCEPTION_NUMBER]: getIncrementedCount(\n this._storage,\n MXL_EXCEPTION_NUMBER_STORAGE_KEY,\n this._diag,\n ),\n },\n });\n }\n\n public message(\n message: string,\n severity: LogSeverity,\n {\n attributes = {},\n includeStacktrace = true,\n stacktrace,\n }: LogMessageOptions = {},\n ) {\n if (typeof message !== 'string' || !message.trim()) {\n this._diag.warn('Message must be a non-empty string');\n return;\n }\n\n if (!['info', 'warning', 'error'].includes(severity)) {\n this._diag.warn('Severity must be info, warning, or error');\n return;\n }\n\n const validAttrs = this._validateAttributes(attributes);\n\n if (severity === 'error') {\n this._spanSessionManager.incrSessionCountForKey(KEY_MXL_ERROR_LOG_COUNT);\n }\n\n let stack = '';\n if (severity !== 'info') {\n if (typeof stacktrace === 'string') {\n stack = stacktrace;\n } else if (includeStacktrace) {\n stack = new Error().stack || '';\n }\n }\n\n this._logMessage({\n message: message.trim(),\n severity,\n timestamp: this._perf.getNowMillis(),\n attributes: validAttrs,\n stack,\n });\n }\n\n private _logMessage({\n message,\n severity,\n timestamp,\n attributes = {},\n stack,\n }: {\n message: string;\n severity: LogSeverity;\n timestamp: number;\n attributes?: Attributes;\n stack?: string;\n }) {\n const limitedLog = this._limitManager.limitLog(\n message,\n severity,\n attributes,\n );\n\n if (limitedLog === 'dropped') {\n return;\n }\n\n this._logger.emit({\n timestamp,\n severityNumber: MXLLogManager._logSeverityToSeverityNumber(severity),\n severityText: severity.toUpperCase(),\n body: limitedLog.message,\n attributes: {\n ...limitedLog.attributes,\n [KEY_MXL_TYPE]: MXL_TYPES.SystemLog,\n ...(stack\n ? {\n [KEY_MXL_JS_EXCEPTION_STACKTRACE]: stack,\n [KEY_MXL_JS_FILE_BUNDLE_IDS]: getJSFileBundleIDs(),\n }\n : {}),\n [KEY_MXL_STATE]: getVisibilityState(this._visibilityDoc),\n },\n });\n }\n\n private static _exceptionHandlingType(\n handled: boolean,\n handler: ExceptionHandlerType,\n ): string {\n if (handled) {\n return 'handled';\n }\n\n if (handler === 'global_exception') {\n return 'unhandled_error';\n }\n\n if (handler === 'promise_rejection') {\n return 'unhandled_rejection';\n }\n\n return 'unhandled';\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MXLLogManager.js","names":[],"sources":["../../../src/managers/MXLLogManager/MXLLogManager.ts"],"sourcesContent":["import type { Attributes, DiagLogger } from '@opentelemetry/api';\nimport { diag } from '@opentelemetry/api';\nimport type { Logger } from '@opentelemetry/api-logs';\nimport { logs, SeverityNumber } from '@opentelemetry/api-logs';\nimport {\n ATTR_EXCEPTION_MESSAGE,\n ATTR_EXCEPTION_STACKTRACE,\n ATTR_EXCEPTION_TYPE,\n} from '@opentelemetry/semantic-conventions';\nimport type { LogManager, LogSeverity } from '../../api-logs';\nimport type {\n LogExceptionOptions,\n LogMessageOptions,\n} from '../../api-logs/manager';\nimport type { ExceptionHandlerType } from '../../api-logs/manager/types';\nimport type { VisibilityStateDocument } from '../../common';\nimport {\n KEY_MXL_EXCEPTION_HANDLING,\n KEY_MXL_EXCEPTION_NUMBER,\n KEY_MXL_JS_EXCEPTION_STACKTRACE,\n KEY_MXL_STATE,\n KEY_MXL_TYPE,\n MXL_TYPES,\n} from '../../constants';\nimport {\n KEY_MXL_ERROR_LOG_COUNT,\n KEY_MXL_EXCEPTION_CAUSE,\n KEY_MXL_JS_FILE_BUNDLE_IDS,\n KEY_MXL_UNHANDLED_EXCEPTIONS_COUNT,\n KEY_REACT_COMPONENT_STACK,\n} from '../../constants/attributes';\nimport type { PerformanceManager } from '../../utils';\nimport {\n GLOBAL_CONFIG,\n getIncrementedCount,\n getVisibilityState,\n OTelPerformanceManager,\n} from '../../utils';\nimport type { LimitManagerInternal } from '../MXLLimitManager';\nimport type { SpanSessionManagerInternal } from '../MXLSpanSessionManager';\nimport type { MXLLogManagerArgs } from './types';\n\nconst MXL_EXCEPTION_NUMBER_STORAGE_KEY = 'mxl_exception_number';\n/**\n * GLOBAL_CONFIG._MXLFileBundleIDs is populated at runtime when each file is loaded,\n * based on the contents injected by the mxl-web-cli.\n */\nconst getJSFileBundleIDs = () =>\n JSON.stringify(\n GLOBAL_CONFIG._MXLFileBundleIDs || GLOBAL_CONFIG._MXLFileBundleIDs || {},\n );\n\nexport class MXLLogManager implements LogManager {\n private readonly _diag: DiagLogger;\n private readonly _perf: PerformanceManager;\n private readonly _logger: Logger;\n private readonly _spanSessionManager: SpanSessionManagerInternal;\n private readonly _limitManager: LimitManagerInternal;\n private readonly _visibilityDoc: VisibilityStateDocument;\n private readonly _storage: Storage;\n\n public constructor({\n diag: diagParam,\n perf,\n spanSessionManager,\n limitManager,\n loggerProvider: globalLoggerProviderOverride,\n visibilityDoc = window.document,\n storage = window.localStorage,\n }: MXLLogManagerArgs) {\n const loggerProvider = globalLoggerProviderOverride ?? logs;\n\n this._diag =\n diagParam ??\n diag.createComponentLogger({\n namespace: 'MXLLogManager',\n });\n this._perf = perf ?? new OTelPerformanceManager();\n this._logger = loggerProvider.getLogger('mxl-web-sdk-logs');\n this._spanSessionManager = spanSessionManager;\n this._limitManager = limitManager;\n this._visibilityDoc = visibilityDoc;\n this._storage = storage;\n }\n\n private _validateAttributes(attributes: unknown): Attributes {\n if (Object.prototype.toString.call(attributes) !== '[object Object]') {\n this._diag.warn('attributes must be a plain object', attributes);\n return {};\n }\n return attributes as Attributes;\n }\n\n private static _logSeverityToSeverityNumber(\n severity: LogSeverity,\n ): SeverityNumber {\n switch (severity) {\n case 'info':\n return SeverityNumber.INFO;\n case 'warning':\n return SeverityNumber.WARN;\n default:\n return SeverityNumber.ERROR;\n }\n }\n\n public logException(\n error: unknown,\n {\n handled = true,\n attributes = {},\n timestamp = this._perf.getNowMillis(),\n handler = 'manual',\n }: LogExceptionOptions = {},\n ) {\n const validAttrs = this._validateAttributes(attributes);\n\n if (!handled) {\n this._spanSessionManager.incrSessionCountForKey(\n KEY_MXL_UNHANDLED_EXCEPTIONS_COUNT,\n );\n }\n\n const type = error?.constructor?.name || typeof error;\n let errMessage = '';\n let errName = type;\n let errStack = '';\n let errCause = '';\n\n if (error instanceof Error) {\n errMessage = String(error.message || '').trim();\n errName = error.name || '';\n errStack = error.stack || '';\n errCause = error.cause ? 'present' : '';\n } else if (error && typeof error === 'object') {\n try {\n errMessage = JSON.stringify(error);\n } catch {\n errMessage = String(error).trim();\n }\n } else {\n errMessage = String(error).trim();\n }\n\n const {\n [KEY_REACT_COMPONENT_STACK]: reactComponentStack,\n ...attrsForLimiting\n } = validAttrs;\n\n const limited = this._limitManager.limitException(\n errMessage,\n attrsForLimiting,\n );\n if (limited === 'dropped') {\n return;\n }\n\n this._logger.emit({\n timestamp,\n severityNumber: SeverityNumber.ERROR,\n severityText: 'ERROR',\n body: limited.message,\n attributes: {\n ...limited.attributes,\n ...(reactComponentStack !== undefined\n ? { [KEY_REACT_COMPONENT_STACK]: String(reactComponentStack) }\n : {}),\n [KEY_MXL_TYPE]: MXL_TYPES.SystemException,\n [KEY_MXL_EXCEPTION_HANDLING]: MXLLogManager._exceptionHandlingType(\n handled,\n handler,\n ),\n [KEY_MXL_EXCEPTION_CAUSE]: errCause,\n [ATTR_EXCEPTION_TYPE]: type,\n ['exception.name']: errName,\n [ATTR_EXCEPTION_MESSAGE]: limited.message,\n [ATTR_EXCEPTION_STACKTRACE]: errStack,\n [KEY_MXL_JS_FILE_BUNDLE_IDS]: getJSFileBundleIDs(),\n [KEY_MXL_STATE]: getVisibilityState(this._visibilityDoc),\n [KEY_MXL_EXCEPTION_NUMBER]: getIncrementedCount(\n this._storage,\n MXL_EXCEPTION_NUMBER_STORAGE_KEY,\n this._diag,\n ),\n },\n });\n }\n\n public message(\n message: string,\n severity: LogSeverity,\n {\n attributes = {},\n includeStacktrace = true,\n stacktrace,\n }: LogMessageOptions = {},\n ) {\n if (typeof message !== 'string' || !message.trim()) {\n this._diag.warn('Message must be a non-empty string');\n return;\n }\n\n if (!['info', 'warning', 'error'].includes(severity)) {\n this._diag.warn('Severity must be info, warning, or error');\n return;\n }\n\n const validAttrs = this._validateAttributes(attributes);\n\n if (severity === 'error') {\n this._spanSessionManager.incrSessionCountForKey(KEY_MXL_ERROR_LOG_COUNT);\n }\n\n let stack = '';\n if (severity !== 'info') {\n if (typeof stacktrace === 'string') {\n stack = stacktrace;\n } else if (includeStacktrace) {\n stack = new Error().stack || '';\n }\n }\n\n this._logMessage({\n message: message.trim(),\n severity,\n timestamp: this._perf.getNowMillis(),\n attributes: validAttrs,\n stack,\n });\n }\n\n private _logMessage({\n message,\n severity,\n timestamp,\n attributes = {},\n stack,\n }: {\n message: string;\n severity: LogSeverity;\n timestamp: number;\n attributes?: Attributes;\n stack?: string;\n }) {\n const limitedLog = this._limitManager.limitLog(\n message,\n severity,\n attributes,\n );\n\n if (limitedLog === 'dropped') {\n return;\n }\n\n this._logger.emit({\n timestamp,\n severityNumber: MXLLogManager._logSeverityToSeverityNumber(severity),\n severityText: severity.toUpperCase(),\n body: limitedLog.message,\n attributes: {\n ...limitedLog.attributes,\n [KEY_MXL_TYPE]: MXL_TYPES.SystemLog,\n ...(stack\n ? {\n [KEY_MXL_JS_EXCEPTION_STACKTRACE]: stack,\n [KEY_MXL_JS_FILE_BUNDLE_IDS]: getJSFileBundleIDs(),\n }\n : {}),\n [KEY_MXL_STATE]: getVisibilityState(this._visibilityDoc),\n },\n });\n }\n\n private static _exceptionHandlingType(\n handled: boolean,\n handler: ExceptionHandlerType,\n ): string {\n if (handled) {\n return 'handled';\n }\n\n if (handler === 'global_exception') {\n return 'unhandled_error';\n }\n\n if (handler === 'promise_rejection') {\n return 'unhandled_rejection';\n }\n\n return 'unhandled';\n }\n}\n"],"mappings":"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"}
|