@dreamhorizonorg/pulse-react-native 0.0.2 → 0.0.3
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/android/build.gradle +1 -1
- package/android/src/main/java/com/pulsereactnativeotel/Pulse.kt +2 -0
- package/android/src/main/java/com/pulsereactnativeotel/PulseReactNativeOtelModule.kt +40 -24
- package/lib/module/NativePulseReactNativeOtel.js.map +1 -1
- package/lib/module/config.js +36 -18
- package/lib/module/config.js.map +1 -1
- package/lib/module/navigation/index.js +10 -3
- package/lib/module/navigation/index.js.map +1 -1
- package/lib/module/navigation/navigation.interface.js +6 -0
- package/lib/module/navigation/navigation.interface.js.map +1 -1
- package/lib/module/navigation/screen-load.js +1 -2
- package/lib/module/navigation/screen-load.js.map +1 -1
- package/lib/module/navigation/useNavigationTracking.js +4 -3
- package/lib/module/navigation/useNavigationTracking.js.map +1 -1
- package/lib/module/network-interceptor/header-helper.js +24 -0
- package/lib/module/network-interceptor/header-helper.js.map +1 -0
- package/lib/module/network-interceptor/initialization.js +18 -1
- package/lib/module/network-interceptor/initialization.js.map +1 -1
- package/lib/module/network-interceptor/request-tracker-xhr.js +59 -3
- package/lib/module/network-interceptor/request-tracker-xhr.js.map +1 -1
- package/lib/module/network-interceptor/span-helpers.js +15 -3
- package/lib/module/network-interceptor/span-helpers.js.map +1 -1
- package/lib/module/pulse.constants.js +11 -6
- package/lib/module/pulse.constants.js.map +1 -1
- package/lib/typescript/src/NativePulseReactNativeOtel.d.ts +8 -1
- package/lib/typescript/src/NativePulseReactNativeOtel.d.ts.map +1 -1
- package/lib/typescript/src/config.d.ts +7 -7
- package/lib/typescript/src/config.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/navigation/index.d.ts +1 -0
- package/lib/typescript/src/navigation/index.d.ts.map +1 -1
- package/lib/typescript/src/navigation/navigation.interface.d.ts +1 -0
- package/lib/typescript/src/navigation/navigation.interface.d.ts.map +1 -1
- package/lib/typescript/src/navigation/screen-load.d.ts.map +1 -1
- package/lib/typescript/src/navigation/useNavigationTracking.d.ts +1 -1
- package/lib/typescript/src/navigation/useNavigationTracking.d.ts.map +1 -1
- package/lib/typescript/src/network-interceptor/header-helper.d.ts +15 -0
- package/lib/typescript/src/network-interceptor/header-helper.d.ts.map +1 -0
- package/lib/typescript/src/network-interceptor/initialization.d.ts +4 -1
- package/lib/typescript/src/network-interceptor/initialization.d.ts.map +1 -1
- package/lib/typescript/src/network-interceptor/network.interface.d.ts +3 -0
- package/lib/typescript/src/network-interceptor/network.interface.d.ts.map +1 -1
- package/lib/typescript/src/network-interceptor/request-tracker-xhr.d.ts.map +1 -1
- package/lib/typescript/src/network-interceptor/span-helpers.d.ts.map +1 -1
- package/lib/typescript/src/pulse.constants.d.ts +13 -5
- package/lib/typescript/src/pulse.constants.d.ts.map +1 -1
- package/lib/typescript/src/pulse.interface.d.ts +1 -1
- package/lib/typescript/src/pulse.interface.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/NativePulseReactNativeOtel.ts +8 -1
- package/src/config.ts +68 -26
- package/src/index.tsx +1 -1
- package/src/navigation/index.ts +36 -7
- package/src/navigation/navigation.interface.ts +7 -0
- package/src/navigation/screen-load.ts +1 -7
- package/src/navigation/useNavigationTracking.ts +13 -4
- package/src/network-interceptor/header-helper.ts +26 -0
- package/src/network-interceptor/initialization.ts +22 -1
- package/src/network-interceptor/network.interface.ts +3 -0
- package/src/network-interceptor/request-tracker-xhr.ts +90 -2
- package/src/network-interceptor/span-helpers.ts +23 -3
- package/src/pulse.constants.ts +19 -5
- package/src/pulse.interface.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","Pulse","SpanStatusCode","extractHttpAttributes","updateAttributesWithGraphQLData","ATTRIBUTE_KEYS","
|
|
1
|
+
{"version":3,"names":["Platform","Pulse","SpanStatusCode","extractHttpAttributes","updateAttributesWithGraphQLData","ATTRIBUTE_KEYS","PULSE_TYPES","normalizeHeaderName","setNetworkSpanAttributes","span","startContext","endContext","method","toUpperCase","attributes","HTTP_METHOD","HTTP_URL","url","PULSE_TYPE","NETWORK","status","HTTP_REQUEST_TYPE","type","PLATFORM","OS","urlAttributes","HTTP_STATUS_CODE","state","error","ERROR_MESSAGE","message","String","stack","ERROR_STACK","recordException","requestHeaders","headerName","headerValue","Object","entries","normalizedName","HTTP_REQUEST_HEADER","responseHeaders","HTTP_RESPONSE_HEADER","setAttributes","createNetworkSpan","interceptorType","body","spanName","baseAttributes","graphqlAttributes","startSpan","completeNetworkSpan","isError","console","log","spanId","spanAttributes","e","end","ERROR","UNSET"],"sourceRoot":"../../../src","sources":["network-interceptor/span-helpers.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,7 +14,6 @@ export let ATTRIBUTE_KEYS = /*#__PURE__*/function (ATTRIBUTE_KEYS) {
|
|
|
14
14
|
ATTRIBUTE_KEYS["PULSE_TYPE"] = "pulse.type";
|
|
15
15
|
ATTRIBUTE_KEYS["SCREEN_NAME"] = "screen.name";
|
|
16
16
|
ATTRIBUTE_KEYS["ROUTE_KEY"] = "routeKey";
|
|
17
|
-
ATTRIBUTE_KEYS["PHASE"] = "phase";
|
|
18
17
|
ATTRIBUTE_KEYS["LAST_SCREEN_NAME"] = "last.screen.name";
|
|
19
18
|
ATTRIBUTE_KEYS["ROUTE_HAS_BEEN_SEEN"] = "routeHasBeenSeen";
|
|
20
19
|
ATTRIBUTE_KEYS["PLATFORM"] = "platform";
|
|
@@ -24,6 +23,8 @@ export let ATTRIBUTE_KEYS = /*#__PURE__*/function (ATTRIBUTE_KEYS) {
|
|
|
24
23
|
ATTRIBUTE_KEYS["HTTP_URL"] = "http.url";
|
|
25
24
|
ATTRIBUTE_KEYS["HTTP_STATUS_CODE"] = "http.status_code";
|
|
26
25
|
ATTRIBUTE_KEYS["HTTP_REQUEST_TYPE"] = "http.request.type";
|
|
26
|
+
ATTRIBUTE_KEYS["HTTP_REQUEST_HEADER"] = "http.request.header";
|
|
27
|
+
ATTRIBUTE_KEYS["HTTP_RESPONSE_HEADER"] = "http.response.header";
|
|
27
28
|
ATTRIBUTE_KEYS["ERROR_MESSAGE"] = "error.message";
|
|
28
29
|
ATTRIBUTE_KEYS["ERROR_STACK"] = "error.stack";
|
|
29
30
|
return ATTRIBUTE_KEYS;
|
|
@@ -32,11 +33,15 @@ export let PULSE_TYPES = /*#__PURE__*/function (PULSE_TYPES) {
|
|
|
32
33
|
PULSE_TYPES["SCREEN_SESSION"] = "screen_session";
|
|
33
34
|
PULSE_TYPES["SCREEN_LOAD"] = "screen_load";
|
|
34
35
|
PULSE_TYPES["SCREEN_INTERACTIVE"] = "screen_interactive";
|
|
36
|
+
PULSE_TYPES["NETWORK"] = "network";
|
|
35
37
|
return PULSE_TYPES;
|
|
36
38
|
}({});
|
|
37
|
-
export
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
export const PULSE_FEATURE_NAMES = {
|
|
40
|
+
RN_SCREEN_LOAD: 'rn_screen_load',
|
|
41
|
+
SCREEN_SESSION: 'screen_session',
|
|
42
|
+
RN_SCREEN_INTERACTIVE: 'rn_screen_interactive',
|
|
43
|
+
NETWORK_INSTRUMENTATION: 'network_instrumentation',
|
|
44
|
+
CUSTOM_EVENTS: 'custom_events',
|
|
45
|
+
JS_CRASH: 'js_crash'
|
|
46
|
+
};
|
|
42
47
|
//# sourceMappingURL=pulse.constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SPAN_NAMES","ATTRIBUTE_KEYS","PULSE_TYPES","
|
|
1
|
+
{"version":3,"names":["SPAN_NAMES","ATTRIBUTE_KEYS","PULSE_TYPES","PULSE_FEATURE_NAMES","RN_SCREEN_LOAD","SCREEN_SESSION","RN_SCREEN_INTERACTIVE","NETWORK_INSTRUMENTATION","CUSTOM_EVENTS","JS_CRASH"],"sourceRoot":"../../src","sources":["pulse.constants.ts"],"mappings":";;AAAA;AACA;AACA;;AAEA,WAAYA,UAAU,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;AAMtB,WAAYC,cAAc,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;AAmB1B,WAAYC,WAAW,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAOvB,OAAO,MAAMC,mBAAmB,GAAG;EACjCC,cAAc,EAAE,gBAAgB;EAChCC,cAAc,EAAE,gBAAgB;EAChCC,qBAAqB,EAAE,uBAAuB;EAC9CC,uBAAuB,EAAE,yBAAyB;EAClDC,aAAa,EAAE,eAAe;EAC9BC,QAAQ,EAAE;AACZ,CAAU","ignoreList":[]}
|
|
@@ -30,7 +30,14 @@ export interface Spec extends TurboModule {
|
|
|
30
30
|
/** Set the current React Native screen name to sync active screen name on Android/iOS */
|
|
31
31
|
setCurrentScreenName(screenName: string): boolean;
|
|
32
32
|
/** Get all SDK Remote Config features */
|
|
33
|
-
getAllFeatures():
|
|
33
|
+
getAllFeatures(): {
|
|
34
|
+
rn_screen_load: boolean;
|
|
35
|
+
screen_session: boolean;
|
|
36
|
+
rn_screen_interactive: boolean;
|
|
37
|
+
network_instrumentation: boolean;
|
|
38
|
+
custom_events: boolean;
|
|
39
|
+
js_crash: boolean;
|
|
40
|
+
} | null;
|
|
34
41
|
}
|
|
35
42
|
declare const _default: Spec;
|
|
36
43
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativePulseReactNativeOtel.d.ts","sourceRoot":"","sources":["../../../src/NativePulseReactNativeOtel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,yCAAyC;IACzC,aAAa,IAAI,OAAO,CAAC;IAEzB,4CAA4C;IAC5C,UAAU,CACR,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IAEX,gEAAgE;IAChE,iJAAiJ;IACjJ,eAAe,CACb,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IAEX,4CAA4C;IAC5C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE9E,4CAA4C;IAC5C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEtD,8BAA8B;IAC9B,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEzE,sCAAsC;IACtC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEhE,qCAAqC;IACrC,mBAAmB,CACjB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IAEX,oDAAoD;IACpD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAErC,kEAAkE;IAClE,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAEnC,kDAAkD;IAClD,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAE1D,oDAAoD;IACpD,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5C,2DAA2D;IAC3D,UAAU,IAAI,IAAI,CAAC;IAEnB,yFAAyF;IACzF,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAElD,yCAAyC;IACzC,cAAc,IAAI,
|
|
1
|
+
{"version":3,"file":"NativePulseReactNativeOtel.d.ts","sourceRoot":"","sources":["../../../src/NativePulseReactNativeOtel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,yCAAyC;IACzC,aAAa,IAAI,OAAO,CAAC;IAEzB,4CAA4C;IAC5C,UAAU,CACR,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IAEX,gEAAgE;IAChE,iJAAiJ;IACjJ,eAAe,CACb,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IAEX,4CAA4C;IAC5C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE9E,4CAA4C;IAC5C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEtD,8BAA8B;IAC9B,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEzE,sCAAsC;IACtC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEhE,qCAAqC;IACrC,mBAAmB,CACjB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IAEX,oDAAoD;IACpD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAErC,kEAAkE;IAClE,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAEnC,kDAAkD;IAClD,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAE1D,oDAAoD;IACpD,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5C,2DAA2D;IAC3D,UAAU,IAAI,IAAI,CAAC;IAEnB,yFAAyF;IACzF,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAElD,yCAAyC;IACzC,cAAc,IAAI;QAChB,cAAc,EAAE,OAAO,CAAC;QACxB,cAAc,EAAE,OAAO,CAAC;QACxB,qBAAqB,EAAE,OAAO,CAAC;QAC/B,uBAAuB,EAAE,OAAO,CAAC;QACjC,aAAa,EAAE,OAAO,CAAC;QACvB,QAAQ,EAAE,OAAO,CAAC;KACnB,GAAG,IAAI,CAAC;CACV;;AAED,wBAA8E"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { type ReactNavigationIntegration, type NavigationIntegrationOptions } from './navigation';
|
|
2
2
|
import type { PulseFeatureConfig } from './pulse.interface';
|
|
3
|
-
export type
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
autoDetectNetwork?: boolean;
|
|
3
|
+
export type NetworkHeaderConfig = {
|
|
4
|
+
requestHeaders?: string[];
|
|
5
|
+
responseHeaders?: string[];
|
|
7
6
|
};
|
|
8
|
-
export type
|
|
7
|
+
export type PulseConfig = {
|
|
9
8
|
autoDetectExceptions?: boolean;
|
|
10
9
|
autoDetectNavigation?: boolean;
|
|
11
10
|
autoDetectNetwork?: boolean;
|
|
11
|
+
networkHeaders?: NetworkHeaderConfig;
|
|
12
12
|
};
|
|
13
13
|
/**
|
|
14
14
|
* Gets all features from the remote SDK config.
|
|
15
|
-
* @returns Record of feature names to their enabled status
|
|
15
|
+
* @returns Record of feature names to their enabled status, or null if config not available
|
|
16
16
|
*/
|
|
17
17
|
export declare function getFeaturesFromRemoteConfig(): PulseFeatureConfig;
|
|
18
|
-
export declare function start(options?:
|
|
18
|
+
export declare function start(options?: PulseConfig): void;
|
|
19
19
|
export declare function createNavigationIntegrationWithConfig(options?: NavigationIntegrationOptions): ReactNavigationIntegration;
|
|
20
20
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EAClC,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EAClC,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG5D,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC,CAAC;AAiBF;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,kBAAkB,CAOhE;AA2CD,wBAAgB,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CA0BjD;AAED,wBAAgB,qCAAqC,CACnD,OAAO,CAAC,EAAE,4BAA4B,GACrC,0BAA0B,CAsB5B"}
|
|
@@ -8,7 +8,7 @@ import { setUserId, setUserProperty, setUserProperties } from './user';
|
|
|
8
8
|
import { ErrorBoundary, withErrorBoundary } from './errorBoundary';
|
|
9
9
|
import { useNavigationTracking, markContentReady } from './navigation';
|
|
10
10
|
export type { Span } from './trace';
|
|
11
|
-
export type { PulseConfig
|
|
11
|
+
export type { PulseConfig } from './config';
|
|
12
12
|
export type { PulseAttributes, PulseAttributeValue } from './pulse.interface';
|
|
13
13
|
export type { ReactNavigationIntegration, NavigationRoute, NavigationIntegrationOptions, } from './navigation';
|
|
14
14
|
export type { ErrorBoundaryProps, FallbackRender } from './errorBoundary';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEvE,YAAY,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACpC,YAAY,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEvE,YAAY,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACpC,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,YAAY,EACV,0BAA0B,EAC1B,eAAe,EACf,4BAA4B,GAC7B,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE1E,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;CAejB,CAAC"}
|
|
@@ -2,6 +2,7 @@ import type { RefObject } from 'react';
|
|
|
2
2
|
import type { NavigationIntegrationOptions, NavigationRoute } from './navigation.interface';
|
|
3
3
|
import { markContentReady } from './screen-interactive';
|
|
4
4
|
export type { NavigationRoute, NavigationIntegrationOptions };
|
|
5
|
+
export { DEFAULT_NAVIGATION_OPTIONS } from './navigation.interface';
|
|
5
6
|
export interface ReactNavigationIntegration {
|
|
6
7
|
registerNavigationContainer: (maybeNavigationContainer: unknown) => () => void;
|
|
7
8
|
markContentReady: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/navigation/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAEV,4BAA4B,EAC5B,eAAe,EAChB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/navigation/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAEV,4BAA4B,EAC5B,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAShC,OAAO,EAEL,gBAAgB,EAIjB,MAAM,sBAAsB,CAAC;AAe9B,YAAY,EAAE,eAAe,EAAE,4BAA4B,EAAE,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAEpE,MAAM,WAAW,0BAA0B;IACzC,2BAA2B,EAAE,CAC3B,wBAAwB,EAAE,OAAO,KAC9B,MAAM,IAAI,CAAC;IAChB,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAC9B;AAYD,wBAAgB,gCAAgC,CAC9C,OAAO,CAAC,EAAE,4BAA4B,GACrC,0BAA0B,CAsQ5B;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,SAAS,CAAC,GAAG,CAAC,EAC7B,OAAO,CAAC,EAAE,4BAA4B,GACrC,MAAM,IAAI,CAOZ"}
|
|
@@ -14,4 +14,5 @@ export interface NavigationIntegrationOptions {
|
|
|
14
14
|
screenNavigationTracking?: boolean;
|
|
15
15
|
screenInteractiveTracking?: boolean;
|
|
16
16
|
}
|
|
17
|
+
export declare const DEFAULT_NAVIGATION_OPTIONS: Required<NavigationIntegrationOptions>;
|
|
17
18
|
//# sourceMappingURL=navigation.interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.interface.d.ts","sourceRoot":"","sources":["../../../../src/navigation/navigation.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,CACX,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,KAChC;QAAE,MAAM,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IACnC,eAAe,EAAE,MAAM,eAAe,GAAG,SAAS,CAAC;CACpD;AAED,MAAM,WAAW,4BAA4B;IAC3C,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC"}
|
|
1
|
+
{"version":3,"file":"navigation.interface.d.ts","sourceRoot":"","sources":["../../../../src/navigation/navigation.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,CACX,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,KAChC;QAAE,MAAM,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IACnC,eAAe,EAAE,MAAM,eAAe,GAAG,SAAS,CAAC;CACpD;AAED,MAAM,WAAW,4BAA4B;IAC3C,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,4BAA4B,CAK3E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen-load.d.ts","sourceRoot":"","sources":["../../../../src/navigation/screen-load.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,IAAI,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"screen-load.d.ts","sourceRoot":"","sources":["../../../../src/navigation/screen-load.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,IAAI,EAAE,MAAM,UAAU,CAAC;AAG5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,IAAI,GAAG,SAAS,CAAC;IACjC,WAAW,EAAE,eAAe,GAAG,SAAS,CAAC;CAC1C;AAED,eAAO,MAAM,yBAAyB,EAAE,eAGvC,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,eAAe,EACtB,kBAAkB,EAAE,MAAM,MAAM,EAAE,EAClC,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,EACzC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI;+BAEZ,IAAI;uCAenB,eAAe,kBACd,eAAe,qBACZ,OAAO,KACzB,IAAI;sCA8BkC,eAAe,KAAG,IAAI;EAyBhE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type RefObject } from 'react';
|
|
2
|
-
import type
|
|
2
|
+
import { type NavigationIntegrationOptions } from './navigation.interface';
|
|
3
3
|
import type { ReactNavigationIntegration } from './index';
|
|
4
4
|
export declare function useNavigationTracking(navigationRef: RefObject<any>, options?: NavigationIntegrationOptions, createIntegration?: (options?: NavigationIntegrationOptions) => ReactNavigationIntegration): () => void;
|
|
5
5
|
//# sourceMappingURL=useNavigationTracking.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNavigationTracking.d.ts","sourceRoot":"","sources":["../../../../src/navigation/useNavigationTracking.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAChF,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"useNavigationTracking.d.ts","sourceRoot":"","sources":["../../../../src/navigation/useNavigationTracking.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAChF,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAE1D,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,SAAS,CAAC,GAAG,CAAC,EAC7B,OAAO,CAAC,EAAE,4BAA4B,EACtC,iBAAiB,CAAC,EAAE,CAClB,OAAO,CAAC,EAAE,4BAA4B,KACnC,0BAA0B,GAC9B,MAAM,IAAI,CA6CZ"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalizes header name according to OpenTelemetry HTTP semantic conventions:
|
|
3
|
+
* - Lowercase
|
|
4
|
+
* - Dashes replaced by underscores
|
|
5
|
+
* - Reference: https://opentelemetry.io/docs/specs/semconv/registry/attributes/http/
|
|
6
|
+
* @example
|
|
7
|
+
* normalizeHeaderName('Content-Type') => 'content_type'
|
|
8
|
+
* normalizeHeaderName('X-Request-ID') => 'x_request_id'
|
|
9
|
+
*/
|
|
10
|
+
export declare function normalizeHeaderName(headerName: string): string;
|
|
11
|
+
/**
|
|
12
|
+
* Checks if a header should be captured based on configuration.
|
|
13
|
+
*/
|
|
14
|
+
export declare function shouldCaptureHeader(headerName: string, headerList: string[]): boolean;
|
|
15
|
+
//# sourceMappingURL=header-helper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header-helper.d.ts","sourceRoot":"","sources":["../../../../src/network-interceptor/header-helper.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAAE,GACnB,OAAO,CAMT"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import type { NetworkHeaderConfig } from '../config';
|
|
2
|
+
export { normalizeHeaderName, shouldCaptureHeader } from './header-helper';
|
|
3
|
+
export declare function getHeaderConfig(): NetworkHeaderConfig;
|
|
4
|
+
export declare function initializeNetworkInterceptor(config?: NetworkHeaderConfig): void;
|
|
2
5
|
export declare const isNetworkInterceptorInitialized: () => boolean;
|
|
3
6
|
//# sourceMappingURL=initialization.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialization.d.ts","sourceRoot":"","sources":["../../../../src/network-interceptor/initialization.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"initialization.d.ts","sourceRoot":"","sources":["../../../../src/network-interceptor/initialization.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAQ3E,wBAAgB,eAAe,IAAI,mBAAmB,CAErD;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,CAAC,EAAE,mBAAmB,GAC3B,IAAI,CA6BN;AAED,eAAO,MAAM,+BAA+B,QAAO,OAAwB,CAAC"}
|
|
@@ -3,15 +3,18 @@ export interface RequestStartContext {
|
|
|
3
3
|
method: string;
|
|
4
4
|
type: 'fetch' | 'xmlhttprequest';
|
|
5
5
|
baseUrl?: string;
|
|
6
|
+
requestHeaders?: Record<string, string>;
|
|
6
7
|
}
|
|
7
8
|
export interface RequestEndContextSuccess {
|
|
8
9
|
status: number;
|
|
9
10
|
state: 'success';
|
|
11
|
+
responseHeaders?: Record<string, string>;
|
|
10
12
|
}
|
|
11
13
|
export interface RequestEndContextError {
|
|
12
14
|
state: 'error';
|
|
13
15
|
status?: number;
|
|
14
16
|
error?: Error;
|
|
17
|
+
responseHeaders?: Record<string, string>;
|
|
15
18
|
}
|
|
16
19
|
export type RequestEndContext = RequestEndContextSuccess | RequestEndContextError;
|
|
17
20
|
export type RequestStartCallback = (context: RequestStartContext) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.interface.d.ts","sourceRoot":"","sources":["../../../../src/network-interceptor/network.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"network.interface.d.ts","sourceRoot":"","sources":["../../../../src/network-interceptor/network.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,MAAM,iBAAiB,GACzB,wBAAwB,GACxB,sBAAsB,CAAC;AAE3B,MAAM,MAAM,oBAAoB,GAAG,CACjC,OAAO,EAAE,mBAAmB,KACzB;IAAE,YAAY,CAAC,EAAE,kBAAkB,CAAA;CAAE,GAAG,SAAS,CAAC;AAEvD,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAEtE,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;CACf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-tracker-xhr.d.ts","sourceRoot":"","sources":["../../../../src/network-interceptor/request-tracker-xhr.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"request-tracker-xhr.d.ts","sourceRoot":"","sources":["../../../../src/network-interceptor/request-tracker-xhr.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAgBnD,iBAAS,2BAA2B,CAClC,GAAG,EAAE,OAAO,cAAc,GACzB,cAAc,CA6KhB;AAED,eAAe,2BAA2B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"span-helpers.d.ts","sourceRoot":"","sources":["../../../../src/network-interceptor/span-helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"span-helpers.d.ts","sourceRoot":"","sources":["../../../../src/network-interceptor/span-helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAM1D,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,mBAAmB,EACjC,UAAU,EAAE,iBAAiB,GAC5B,eAAe,CAmDjB;AAED,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,mBAAmB,EACjC,eAAe,EAAE,OAAO,GAAG,gBAAgB,EAC3C,IAAI,CAAC,EAAE,QAAQ,GAAG,sBAAsB,GAAG,IAAI,GAC9C,IAAI,CAmBN;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,mBAAmB,EACjC,UAAU,EAAE,iBAAiB,EAC7B,OAAO,EAAE,OAAO,GACf,IAAI,CAYN"}
|
|
@@ -10,7 +10,6 @@ export declare enum ATTRIBUTE_KEYS {
|
|
|
10
10
|
PULSE_TYPE = "pulse.type",
|
|
11
11
|
SCREEN_NAME = "screen.name",
|
|
12
12
|
ROUTE_KEY = "routeKey",
|
|
13
|
-
PHASE = "phase",
|
|
14
13
|
LAST_SCREEN_NAME = "last.screen.name",
|
|
15
14
|
ROUTE_HAS_BEEN_SEEN = "routeHasBeenSeen",
|
|
16
15
|
PLATFORM = "platform",
|
|
@@ -20,16 +19,25 @@ export declare enum ATTRIBUTE_KEYS {
|
|
|
20
19
|
HTTP_URL = "http.url",
|
|
21
20
|
HTTP_STATUS_CODE = "http.status_code",
|
|
22
21
|
HTTP_REQUEST_TYPE = "http.request.type",
|
|
22
|
+
HTTP_REQUEST_HEADER = "http.request.header",
|
|
23
|
+
HTTP_RESPONSE_HEADER = "http.response.header",
|
|
23
24
|
ERROR_MESSAGE = "error.message",
|
|
24
25
|
ERROR_STACK = "error.stack"
|
|
25
26
|
}
|
|
26
27
|
export declare enum PULSE_TYPES {
|
|
27
28
|
SCREEN_SESSION = "screen_session",
|
|
28
29
|
SCREEN_LOAD = "screen_load",
|
|
29
|
-
SCREEN_INTERACTIVE = "screen_interactive"
|
|
30
|
-
}
|
|
31
|
-
export declare enum PHASE_VALUES {
|
|
32
|
-
START = "start",
|
|
30
|
+
SCREEN_INTERACTIVE = "screen_interactive",
|
|
33
31
|
NETWORK = "network"
|
|
34
32
|
}
|
|
33
|
+
export declare const PULSE_FEATURE_NAMES: {
|
|
34
|
+
readonly RN_SCREEN_LOAD: "rn_screen_load";
|
|
35
|
+
readonly SCREEN_SESSION: "screen_session";
|
|
36
|
+
readonly RN_SCREEN_INTERACTIVE: "rn_screen_interactive";
|
|
37
|
+
readonly NETWORK_INSTRUMENTATION: "network_instrumentation";
|
|
38
|
+
readonly CUSTOM_EVENTS: "custom_events";
|
|
39
|
+
readonly JS_CRASH: "js_crash";
|
|
40
|
+
};
|
|
41
|
+
export type PulseFeatureName = (typeof PULSE_FEATURE_NAMES)[keyof typeof PULSE_FEATURE_NAMES];
|
|
42
|
+
export type NavigationFeatureName = typeof PULSE_FEATURE_NAMES.SCREEN_SESSION | typeof PULSE_FEATURE_NAMES.RN_SCREEN_LOAD | typeof PULSE_FEATURE_NAMES.RN_SCREEN_INTERACTIVE;
|
|
35
43
|
//# sourceMappingURL=pulse.constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pulse.constants.d.ts","sourceRoot":"","sources":["../../../src/pulse.constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,oBAAY,UAAU;IACpB,cAAc,kBAAkB;IAChC,SAAS,cAAc;IACvB,kBAAkB,sBAAsB;CACzC;AAED,oBAAY,cAAc;IACxB,UAAU,eAAe;IACzB,WAAW,gBAAgB;IAC3B,SAAS,aAAa;IACtB,
|
|
1
|
+
{"version":3,"file":"pulse.constants.d.ts","sourceRoot":"","sources":["../../../src/pulse.constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,oBAAY,UAAU;IACpB,cAAc,kBAAkB;IAChC,SAAS,cAAc;IACvB,kBAAkB,sBAAsB;CACzC;AAED,oBAAY,cAAc;IACxB,UAAU,eAAe;IACzB,WAAW,gBAAgB;IAC3B,SAAS,aAAa;IACtB,gBAAgB,qBAAqB;IACrC,mBAAmB,qBAAqB;IACxC,QAAQ,aAAa;IACrB,sBAAsB,2BAA2B;IACjD,sBAAsB,2BAA2B;IACjD,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;IAC3C,oBAAoB,yBAAyB;IAC7C,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;CAC5B;AAED,oBAAY,WAAW;IACrB,cAAc,mBAAmB;IACjC,WAAW,gBAAgB;IAC3B,kBAAkB,uBAAuB;IACzC,OAAO,YAAY;CACpB;AAED,eAAO,MAAM,mBAAmB;;;;;;;CAOtB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAC1B,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,OAAO,mBAAmB,CAAC,CAAC;AAEjE,MAAM,MAAM,qBAAqB,GAC7B,OAAO,mBAAmB,CAAC,cAAc,GACzC,OAAO,mBAAmB,CAAC,cAAc,GACzC,OAAO,mBAAmB,CAAC,qBAAqB,CAAC"}
|
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export type PulseAttributeValue = string | number | boolean | string[] | number[] | boolean[];
|
|
7
7
|
export type PulseAttributes = Record<string, PulseAttributeValue | undefined | null>;
|
|
8
|
-
export type PulseFeatureConfig = Record<string, boolean> | null;
|
|
8
|
+
export type PulseFeatureConfig = Record<string, boolean> | null | undefined;
|
|
9
9
|
//# sourceMappingURL=pulse.interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pulse.interface.d.ts","sourceRoot":"","sources":["../../../src/pulse.interface.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAC3B,MAAM,GACN,MAAM,GACN,OAAO,GACP,MAAM,EAAE,GACR,MAAM,EAAE,GACR,OAAO,EAAE,CAAC;AAEd,MAAM,MAAM,eAAe,GAAG,MAAM,CAClC,MAAM,EACN,mBAAmB,GAAG,SAAS,GAAG,IAAI,CACvC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC"}
|
|
1
|
+
{"version":3,"file":"pulse.interface.d.ts","sourceRoot":"","sources":["../../../src/pulse.interface.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAC3B,MAAM,GACN,MAAM,GACN,OAAO,GACP,MAAM,EAAE,GACR,MAAM,EAAE,GACR,OAAO,EAAE,CAAC;AAEd,MAAM,MAAM,eAAe,GAAG,MAAM,CAClC,MAAM,EACN,mBAAmB,GAAG,SAAS,GAAG,IAAI,CACvC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dreamhorizonorg/pulse-react-native",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "Production-grade observability SDK for React Native applications with OpenTelemetry support. Real-time monitoring, error tracking, performance insights, and distributed tracing.",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"types": "./lib/typescript/src/index.d.ts",
|
|
@@ -60,7 +60,14 @@ export interface Spec extends TurboModule {
|
|
|
60
60
|
setCurrentScreenName(screenName: string): boolean;
|
|
61
61
|
|
|
62
62
|
/** Get all SDK Remote Config features */
|
|
63
|
-
getAllFeatures():
|
|
63
|
+
getAllFeatures(): {
|
|
64
|
+
rn_screen_load: boolean;
|
|
65
|
+
screen_session: boolean;
|
|
66
|
+
rn_screen_interactive: boolean;
|
|
67
|
+
network_instrumentation: boolean;
|
|
68
|
+
custom_events: boolean;
|
|
69
|
+
js_crash: boolean;
|
|
70
|
+
} | null;
|
|
64
71
|
}
|
|
65
72
|
|
|
66
73
|
export default TurboModuleRegistry.getEnforcing<Spec>('PulseReactNativeOtel');
|
package/src/config.ts
CHANGED
|
@@ -8,41 +8,45 @@ import {
|
|
|
8
8
|
import { initializeNetworkInterceptor } from './network-interceptor/initialization';
|
|
9
9
|
import PulseReactNativeOtel from './NativePulseReactNativeOtel';
|
|
10
10
|
import type { PulseFeatureConfig } from './pulse.interface';
|
|
11
|
+
import { PULSE_FEATURE_NAMES } from './pulse.constants';
|
|
11
12
|
|
|
12
|
-
export type
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
autoDetectNetwork?: boolean;
|
|
13
|
+
export type NetworkHeaderConfig = {
|
|
14
|
+
requestHeaders?: string[];
|
|
15
|
+
responseHeaders?: string[];
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
-
export type
|
|
18
|
+
export type PulseConfig = {
|
|
19
19
|
autoDetectExceptions?: boolean;
|
|
20
20
|
autoDetectNavigation?: boolean;
|
|
21
21
|
autoDetectNetwork?: boolean;
|
|
22
|
+
networkHeaders?: NetworkHeaderConfig;
|
|
22
23
|
};
|
|
23
24
|
|
|
24
|
-
const defaultConfig: PulseConfig = {
|
|
25
|
+
const defaultConfig: Required<PulseConfig> = {
|
|
25
26
|
autoDetectExceptions: true,
|
|
26
27
|
autoDetectNavigation: true,
|
|
27
28
|
autoDetectNetwork: true,
|
|
29
|
+
networkHeaders: {
|
|
30
|
+
requestHeaders: [],
|
|
31
|
+
responseHeaders: [],
|
|
32
|
+
},
|
|
28
33
|
};
|
|
29
34
|
|
|
30
35
|
let currentConfig: PulseConfig = { ...defaultConfig };
|
|
31
36
|
|
|
32
37
|
// Cache for features from remote SDK config
|
|
33
|
-
let cachedFeatures: PulseFeatureConfig
|
|
38
|
+
let cachedFeatures: PulseFeatureConfig;
|
|
34
39
|
|
|
35
40
|
/**
|
|
36
41
|
* Gets all features from the remote SDK config.
|
|
37
|
-
* @returns Record of feature names to their enabled status
|
|
42
|
+
* @returns Record of feature names to their enabled status, or null if config not available
|
|
38
43
|
*/
|
|
39
44
|
export function getFeaturesFromRemoteConfig(): PulseFeatureConfig {
|
|
40
|
-
if (cachedFeatures !==
|
|
45
|
+
if (cachedFeatures !== undefined) {
|
|
41
46
|
return cachedFeatures;
|
|
42
47
|
}
|
|
43
48
|
|
|
44
|
-
|
|
45
|
-
cachedFeatures = features as PulseFeatureConfig;
|
|
49
|
+
cachedFeatures = PulseReactNativeOtel.getAllFeatures();
|
|
46
50
|
return cachedFeatures;
|
|
47
51
|
}
|
|
48
52
|
|
|
@@ -54,27 +58,65 @@ function configure(config: PulseConfig): void {
|
|
|
54
58
|
setupErrorHandler(currentConfig.autoDetectExceptions ?? true);
|
|
55
59
|
|
|
56
60
|
if (currentConfig.autoDetectNetwork) {
|
|
57
|
-
initializeNetworkInterceptor(
|
|
61
|
+
initializeNetworkInterceptor(
|
|
62
|
+
currentConfig.networkHeaders ?? {
|
|
63
|
+
requestHeaders: [],
|
|
64
|
+
responseHeaders: [],
|
|
65
|
+
}
|
|
66
|
+
);
|
|
58
67
|
}
|
|
59
68
|
}
|
|
60
69
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
70
|
+
function resolveFeatureState(
|
|
71
|
+
features: PulseFeatureConfig,
|
|
72
|
+
featureName: string,
|
|
73
|
+
optionValue: boolean
|
|
74
|
+
): boolean {
|
|
75
|
+
if (features !== undefined && features !== null)
|
|
76
|
+
return features[featureName] ?? optionValue;
|
|
77
|
+
return optionValue;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
function resolveNavigationState(
|
|
81
|
+
features: PulseFeatureConfig,
|
|
82
|
+
optionValue: boolean
|
|
83
|
+
): boolean {
|
|
84
|
+
if (features !== undefined && features !== null) {
|
|
85
|
+
const hasAny =
|
|
86
|
+
features[PULSE_FEATURE_NAMES.SCREEN_SESSION] === true ||
|
|
87
|
+
features[PULSE_FEATURE_NAMES.RN_SCREEN_LOAD] === true ||
|
|
88
|
+
features[PULSE_FEATURE_NAMES.RN_SCREEN_INTERACTIVE] === true;
|
|
89
|
+
return hasAny ?? optionValue;
|
|
64
90
|
}
|
|
91
|
+
return optionValue;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export function start(options?: PulseConfig): void {
|
|
95
|
+
if (!isSupportedPlatform()) return;
|
|
96
|
+
|
|
65
97
|
const features = getFeaturesFromRemoteConfig();
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
98
|
+
const config: PulseConfig = {
|
|
99
|
+
autoDetectExceptions: resolveFeatureState(
|
|
100
|
+
features,
|
|
101
|
+
PULSE_FEATURE_NAMES.JS_CRASH,
|
|
102
|
+
options?.autoDetectExceptions ?? defaultConfig.autoDetectExceptions
|
|
103
|
+
),
|
|
104
|
+
autoDetectNavigation: resolveNavigationState(
|
|
105
|
+
features,
|
|
106
|
+
options?.autoDetectNavigation ?? defaultConfig.autoDetectNavigation
|
|
107
|
+
),
|
|
108
|
+
autoDetectNetwork: resolveFeatureState(
|
|
109
|
+
features,
|
|
110
|
+
PULSE_FEATURE_NAMES.NETWORK_INSTRUMENTATION,
|
|
111
|
+
options?.autoDetectNetwork ?? defaultConfig.autoDetectNetwork
|
|
112
|
+
),
|
|
113
|
+
networkHeaders: options?.networkHeaders ?? {
|
|
114
|
+
requestHeaders: [],
|
|
115
|
+
responseHeaders: [],
|
|
116
|
+
},
|
|
117
|
+
};
|
|
72
118
|
|
|
73
|
-
configure(
|
|
74
|
-
autoDetectExceptions,
|
|
75
|
-
autoDetectNavigation,
|
|
76
|
-
autoDetectNetwork,
|
|
77
|
-
});
|
|
119
|
+
configure(config);
|
|
78
120
|
}
|
|
79
121
|
|
|
80
122
|
export function createNavigationIntegrationWithConfig(
|
package/src/index.tsx
CHANGED
|
@@ -9,7 +9,7 @@ import { ErrorBoundary, withErrorBoundary } from './errorBoundary';
|
|
|
9
9
|
import { useNavigationTracking, markContentReady } from './navigation';
|
|
10
10
|
|
|
11
11
|
export type { Span } from './trace';
|
|
12
|
-
export type { PulseConfig
|
|
12
|
+
export type { PulseConfig } from './config';
|
|
13
13
|
export type { PulseAttributes, PulseAttributeValue } from './pulse.interface';
|
|
14
14
|
export type {
|
|
15
15
|
ReactNavigationIntegration,
|
package/src/navigation/index.ts
CHANGED
|
@@ -5,6 +5,7 @@ import type {
|
|
|
5
5
|
NavigationIntegrationOptions,
|
|
6
6
|
NavigationRoute,
|
|
7
7
|
} from './navigation.interface';
|
|
8
|
+
import { DEFAULT_NAVIGATION_OPTIONS } from './navigation.interface';
|
|
8
9
|
import { pushRecentRouteKey, LOG_TAGS } from './utils';
|
|
9
10
|
import { discardSpan } from '../trace';
|
|
10
11
|
import {
|
|
@@ -28,8 +29,13 @@ import { useNavigationTracking as useNavigationTrackingBase } from './useNavigat
|
|
|
28
29
|
import { isSupportedPlatform } from '../initialization';
|
|
29
30
|
import PulseReactNativeOtel from '../NativePulseReactNativeOtel';
|
|
30
31
|
import { getFeaturesFromRemoteConfig } from '../config';
|
|
32
|
+
import {
|
|
33
|
+
PULSE_FEATURE_NAMES,
|
|
34
|
+
type NavigationFeatureName,
|
|
35
|
+
} from '../pulse.constants';
|
|
31
36
|
|
|
32
37
|
export type { NavigationRoute, NavigationIntegrationOptions };
|
|
38
|
+
export { DEFAULT_NAVIGATION_OPTIONS } from './navigation.interface';
|
|
33
39
|
|
|
34
40
|
export interface ReactNavigationIntegration {
|
|
35
41
|
registerNavigationContainer: (
|
|
@@ -38,18 +44,41 @@ export interface ReactNavigationIntegration {
|
|
|
38
44
|
markContentReady: () => void;
|
|
39
45
|
}
|
|
40
46
|
|
|
47
|
+
function resolveNavigationFeatureState(
|
|
48
|
+
features: ReturnType<typeof getFeaturesFromRemoteConfig>,
|
|
49
|
+
featureName: NavigationFeatureName,
|
|
50
|
+
optionValue: boolean
|
|
51
|
+
): boolean {
|
|
52
|
+
if (features !== undefined && features !== null)
|
|
53
|
+
return features[featureName] ?? optionValue;
|
|
54
|
+
return optionValue;
|
|
55
|
+
}
|
|
56
|
+
|
|
41
57
|
export function createReactNavigationIntegration(
|
|
42
58
|
options?: NavigationIntegrationOptions
|
|
43
59
|
): ReactNavigationIntegration {
|
|
44
60
|
const features = getFeaturesFromRemoteConfig();
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
61
|
+
|
|
62
|
+
const screenSessionTracking = resolveNavigationFeatureState(
|
|
63
|
+
features,
|
|
64
|
+
PULSE_FEATURE_NAMES.SCREEN_SESSION,
|
|
65
|
+
options?.screenSessionTracking ??
|
|
66
|
+
DEFAULT_NAVIGATION_OPTIONS.screenSessionTracking
|
|
67
|
+
);
|
|
68
|
+
|
|
69
|
+
const screenNavigationTracking = resolveNavigationFeatureState(
|
|
70
|
+
features,
|
|
71
|
+
PULSE_FEATURE_NAMES.RN_SCREEN_LOAD,
|
|
72
|
+
options?.screenNavigationTracking ??
|
|
73
|
+
DEFAULT_NAVIGATION_OPTIONS.screenNavigationTracking
|
|
74
|
+
);
|
|
75
|
+
|
|
76
|
+
const screenInteractiveTracking = resolveNavigationFeatureState(
|
|
77
|
+
features,
|
|
78
|
+
PULSE_FEATURE_NAMES.RN_SCREEN_INTERACTIVE,
|
|
51
79
|
options?.screenInteractiveTracking ??
|
|
52
|
-
|
|
80
|
+
DEFAULT_NAVIGATION_OPTIONS.screenInteractiveTracking
|
|
81
|
+
);
|
|
53
82
|
|
|
54
83
|
let navigationContainer: NavigationContainer | undefined;
|
|
55
84
|
let recentRouteKeys: string[] = [];
|
|
@@ -17,3 +17,10 @@ export interface NavigationIntegrationOptions {
|
|
|
17
17
|
screenNavigationTracking?: boolean;
|
|
18
18
|
screenInteractiveTracking?: boolean;
|
|
19
19
|
}
|
|
20
|
+
|
|
21
|
+
export const DEFAULT_NAVIGATION_OPTIONS: Required<NavigationIntegrationOptions> =
|
|
22
|
+
{
|
|
23
|
+
screenSessionTracking: true,
|
|
24
|
+
screenNavigationTracking: true,
|
|
25
|
+
screenInteractiveTracking: false,
|
|
26
|
+
};
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import { Pulse, type Span } from '../index';
|
|
2
2
|
import { Platform } from 'react-native';
|
|
3
|
-
import {
|
|
4
|
-
SPAN_NAMES,
|
|
5
|
-
ATTRIBUTE_KEYS,
|
|
6
|
-
PULSE_TYPES,
|
|
7
|
-
PHASE_VALUES,
|
|
8
|
-
} from '../pulse.constants';
|
|
3
|
+
import { SPAN_NAMES, ATTRIBUTE_KEYS, PULSE_TYPES } from '../pulse.constants';
|
|
9
4
|
import type { NavigationRoute } from './navigation.interface';
|
|
10
5
|
import { LOG_TAGS } from './utils';
|
|
11
6
|
|
|
@@ -34,7 +29,6 @@ export function createScreenLoadTracker(
|
|
|
34
29
|
state.navigationSpan = Pulse.startSpan(SPAN_NAMES.NAVIGATED, {
|
|
35
30
|
attributes: {
|
|
36
31
|
[ATTRIBUTE_KEYS.PULSE_TYPE]: PULSE_TYPES.SCREEN_LOAD,
|
|
37
|
-
[ATTRIBUTE_KEYS.PHASE]: PHASE_VALUES.START,
|
|
38
32
|
[ATTRIBUTE_KEYS.PLATFORM]: Platform.OS as 'android' | 'ios',
|
|
39
33
|
},
|
|
40
34
|
});
|