@dreamhorizonorg/pulse-react-native 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/PulseReactNativeOtel.podspec +1 -1
  2. package/README.md +34 -879
  3. package/android/build.gradle +10 -15
  4. package/android/proguard-rules.pro +3 -99
  5. package/android/src/main/java/com/pulsereactnativeotel/Pulse.kt +87 -0
  6. package/android/src/main/java/com/pulsereactnativeotel/PulseOtelConstants.kt +1 -1
  7. package/android/src/main/java/com/pulsereactnativeotel/PulseReactNativeOtelLogger.kt +3 -1
  8. package/android/src/main/java/com/pulsereactnativeotel/PulseReactNativeOtelModule.kt +53 -3
  9. package/android/src/main/java/com/pulsereactnativeotel/PulseReactNativeOtelPackage.kt +1 -1
  10. package/android/src/main/java/com/pulsereactnativeotel/PulseReactNativeOtelTracer.kt +24 -8
  11. package/android/src/main/java/com/pulsereactnativeotel/ReactNativeScreenAttributesLogRecordProcessor.kt +21 -0
  12. package/android/src/main/java/com/pulsereactnativeotel/ReactNativeScreenAttributesSpanProcessor.kt +30 -0
  13. package/android/src/main/java/com/pulsereactnativeotel/ReactNativeScreenNameTracker.kt +17 -0
  14. package/app.plugin.js +1 -0
  15. package/ios/PulseReactNativeOtel.mm +7 -1
  16. package/lib/module/NativePulseReactNativeOtel.js.map +1 -1
  17. package/lib/module/config.js +29 -9
  18. package/lib/module/config.js.map +1 -1
  19. package/lib/module/errorBoundary.js.map +1 -1
  20. package/lib/module/events.js +6 -0
  21. package/lib/module/events.js.map +1 -1
  22. package/lib/module/index.js +4 -2
  23. package/lib/module/index.js.map +1 -1
  24. package/lib/module/navigation/index.js +172 -0
  25. package/lib/module/navigation/index.js.map +1 -0
  26. package/lib/module/navigation/navigation.interface.js +2 -0
  27. package/lib/module/navigation/navigation.interface.js.map +1 -0
  28. package/lib/module/navigation/screen-interactive.js +101 -0
  29. package/lib/module/navigation/screen-interactive.js.map +1 -0
  30. package/lib/module/navigation/screen-load.js +68 -0
  31. package/lib/module/navigation/screen-load.js.map +1 -0
  32. package/lib/module/navigation/screen-session.js +60 -0
  33. package/lib/module/navigation/screen-session.js.map +1 -0
  34. package/lib/module/navigation/useNavigationTracking.js +33 -0
  35. package/lib/module/navigation/useNavigationTracking.js.map +1 -0
  36. package/lib/module/navigation/utils.js +17 -0
  37. package/lib/module/navigation/utils.js.map +1 -0
  38. package/lib/module/network-interceptor/graphql-helper.js +92 -0
  39. package/lib/module/network-interceptor/graphql-helper.js.map +1 -0
  40. package/lib/module/network-interceptor/request-tracker-xhr.js +2 -1
  41. package/lib/module/network-interceptor/request-tracker-xhr.js.map +1 -1
  42. package/lib/module/network-interceptor/span-helpers.js +24 -16
  43. package/lib/module/network-interceptor/span-helpers.js.map +1 -1
  44. package/lib/module/network-interceptor/url-helper.js +58 -2
  45. package/lib/module/network-interceptor/url-helper.js.map +1 -1
  46. package/lib/module/pulse.constants.js +42 -0
  47. package/lib/module/pulse.constants.js.map +1 -0
  48. package/lib/module/trace.js +17 -2
  49. package/lib/module/trace.js.map +1 -1
  50. package/lib/typescript/plugin/src/index.d.ts +5 -0
  51. package/lib/typescript/plugin/src/index.d.ts.map +1 -0
  52. package/lib/typescript/plugin/src/types.d.ts +27 -0
  53. package/lib/typescript/plugin/src/types.d.ts.map +1 -0
  54. package/lib/typescript/plugin/src/utils.d.ts +10 -0
  55. package/lib/typescript/plugin/src/utils.d.ts.map +1 -0
  56. package/lib/typescript/plugin/src/withAndroidPulse.d.ts +4 -0
  57. package/lib/typescript/plugin/src/withAndroidPulse.d.ts.map +1 -0
  58. package/lib/typescript/src/NativePulseReactNativeOtel.d.ts +8 -2
  59. package/lib/typescript/src/NativePulseReactNativeOtel.d.ts.map +1 -1
  60. package/lib/typescript/src/config.d.ts +8 -2
  61. package/lib/typescript/src/config.d.ts.map +1 -1
  62. package/lib/typescript/src/errorBoundary.d.ts.map +1 -1
  63. package/lib/typescript/src/events.d.ts.map +1 -1
  64. package/lib/typescript/src/index.d.ts +5 -3
  65. package/lib/typescript/src/index.d.ts.map +1 -1
  66. package/lib/typescript/src/navigation/index.d.ts +12 -0
  67. package/lib/typescript/src/navigation/index.d.ts.map +1 -0
  68. package/lib/typescript/src/navigation/navigation.interface.d.ts +17 -0
  69. package/lib/typescript/src/navigation/navigation.interface.d.ts.map +1 -0
  70. package/lib/typescript/src/navigation/screen-interactive.d.ts +16 -0
  71. package/lib/typescript/src/navigation/screen-interactive.d.ts.map +1 -0
  72. package/lib/typescript/src/navigation/screen-load.d.ts +13 -0
  73. package/lib/typescript/src/navigation/screen-load.d.ts.map +1 -0
  74. package/lib/typescript/src/navigation/screen-session.d.ts +15 -0
  75. package/lib/typescript/src/navigation/screen-session.d.ts.map +1 -0
  76. package/lib/typescript/src/navigation/useNavigationTracking.d.ts +5 -0
  77. package/lib/typescript/src/navigation/useNavigationTracking.d.ts.map +1 -0
  78. package/lib/typescript/src/navigation/utils.d.ts +8 -0
  79. package/lib/typescript/src/navigation/utils.d.ts.map +1 -0
  80. package/lib/typescript/src/network-interceptor/graphql-helper.d.ts +8 -0
  81. package/lib/typescript/src/network-interceptor/graphql-helper.d.ts.map +1 -0
  82. package/lib/typescript/src/network-interceptor/request-tracker-xhr.d.ts.map +1 -1
  83. package/lib/typescript/src/network-interceptor/span-helpers.d.ts +1 -1
  84. package/lib/typescript/src/network-interceptor/span-helpers.d.ts.map +1 -1
  85. package/lib/typescript/src/network-interceptor/url-helper.d.ts +9 -0
  86. package/lib/typescript/src/network-interceptor/url-helper.d.ts.map +1 -1
  87. package/lib/typescript/src/pulse.constants.d.ts +35 -0
  88. package/lib/typescript/src/pulse.constants.d.ts.map +1 -0
  89. package/lib/typescript/src/pulse.interface.d.ts +2 -1
  90. package/lib/typescript/src/pulse.interface.d.ts.map +1 -1
  91. package/lib/typescript/src/trace.d.ts +7 -0
  92. package/lib/typescript/src/trace.d.ts.map +1 -1
  93. package/package.json +29 -9
  94. package/plugin/build/index.d.ts +4 -0
  95. package/plugin/build/index.js +10 -0
  96. package/plugin/build/types.d.ts +26 -0
  97. package/plugin/build/types.js +2 -0
  98. package/plugin/build/utils.d.ts +9 -0
  99. package/plugin/build/utils.js +102 -0
  100. package/plugin/build/withAndroidPulse.d.ts +3 -0
  101. package/plugin/build/withAndroidPulse.js +53 -0
  102. package/scripts/pulse-cli.js +82 -0
  103. package/scripts/uploadService.js +122 -0
  104. package/scripts/utils.js +125 -0
  105. package/src/NativePulseReactNativeOtel.ts +11 -2
  106. package/src/config.ts +37 -8
  107. package/src/errorBoundary.tsx +11 -5
  108. package/src/events.ts +7 -0
  109. package/src/global.d.ts +0 -1
  110. package/src/index.tsx +6 -3
  111. package/src/navigation/index.ts +306 -0
  112. package/src/navigation/navigation.interface.ts +19 -0
  113. package/src/navigation/screen-interactive.ts +149 -0
  114. package/src/navigation/screen-load.ts +103 -0
  115. package/src/navigation/screen-session.ts +87 -0
  116. package/src/navigation/useNavigationTracking.ts +50 -0
  117. package/src/navigation/utils.ts +19 -0
  118. package/src/network-interceptor/graphql-helper.ts +110 -0
  119. package/src/network-interceptor/request-tracker-xhr.ts +3 -1
  120. package/src/network-interceptor/span-helpers.ts +27 -18
  121. package/src/network-interceptor/url-helper.ts +67 -1
  122. package/src/pulse.constants.ts +38 -0
  123. package/src/pulse.interface.ts +6 -1
  124. package/src/trace.ts +25 -2
  125. package/LICENSE +0 -20
  126. package/lib/module/network-interceptor/request-tracker-fetch.js +0 -72
  127. package/lib/module/network-interceptor/request-tracker-fetch.js.map +0 -1
  128. package/lib/module/reactNavigation.js +0 -100
  129. package/lib/module/reactNavigation.js.map +0 -1
  130. package/lib/typescript/src/network-interceptor/request-tracker-fetch.d.ts +0 -7
  131. package/lib/typescript/src/network-interceptor/request-tracker-fetch.d.ts.map +0 -1
  132. package/lib/typescript/src/reactNavigation.d.ts +0 -10
  133. package/lib/typescript/src/reactNavigation.d.ts.map +0 -1
  134. package/src/network-interceptor/request-tracker-fetch.ts +0 -96
  135. package/src/reactNavigation.tsx +0 -146
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ import { parseUrl } from "./url-helper.js";
4
+ import { ATTRIBUTE_KEYS } from "../pulse.constants.js";
5
+ export function isGraphQLRequest(url) {
6
+ if (!url || typeof url !== 'string') {
7
+ return false;
8
+ }
9
+ return url.toLowerCase().includes('graphql');
10
+ }
11
+ function parseGraphQLQuery(query) {
12
+ if (!query || typeof query !== 'string') {
13
+ return {};
14
+ }
15
+
16
+ // Named query: "query MyQuery { ... }" or "mutation CreateUser { ... }"
17
+ const namedQueryRe = /^(?:\s*)(query|mutation|subscription)(?:\s+)(\w+)(?:\s*)[{(]/;
18
+ const namedMatch = query.match(namedQueryRe);
19
+ if (namedMatch && namedMatch.length >= 3) {
20
+ return {
21
+ operationType: namedMatch[1],
22
+ operationName: namedMatch[2]
23
+ };
24
+ }
25
+
26
+ // Unnamed query: "query { ... }" or "mutation { ... }"
27
+ const unnamedQueryRe = /^(?:\s*)(query|mutation|subscription)(?:\s*)[{(]/;
28
+ const unnamedMatch = query.match(unnamedQueryRe);
29
+ if (unnamedMatch && unnamedMatch.length >= 2) {
30
+ return {
31
+ operationType: unnamedMatch[1],
32
+ operationName: undefined
33
+ };
34
+ }
35
+ return {};
36
+ }
37
+ function extractFromBody(body) {
38
+ try {
39
+ const payload = JSON.parse(body);
40
+ let data = {
41
+ operationName: payload?.operationName,
42
+ operationType: payload?.operation
43
+ };
44
+
45
+ // Fallback: If operationName/operation not in payload, parse from query string
46
+ if ((!data.operationName || !data.operationType) && payload?.query) {
47
+ const parsedQuery = parseGraphQLQuery(payload.query);
48
+ data = {
49
+ operationName: data.operationName || parsedQuery.operationName,
50
+ operationType: data.operationType || parsedQuery.operationType
51
+ };
52
+ }
53
+ return data;
54
+ } catch {
55
+ return {};
56
+ }
57
+ }
58
+ function extractFromQueryParams(url) {
59
+ try {
60
+ const parsedUrl = parseUrl(url);
61
+ if (!parsedUrl) {
62
+ return {};
63
+ }
64
+ return {
65
+ operationName: parsedUrl.searchParams.get('operationName') || undefined,
66
+ operationType: parsedUrl.searchParams.get('operation') || undefined
67
+ };
68
+ } catch {
69
+ return {};
70
+ }
71
+ }
72
+ export function updateAttributesWithGraphQLData(url, body) {
73
+ if (!isGraphQLRequest(url)) {
74
+ return {};
75
+ }
76
+ let data = {};
77
+ if (body && typeof body === 'string') {
78
+ data = extractFromBody(body);
79
+ }
80
+ if (!data.operationName && !data.operationType) {
81
+ data = extractFromQueryParams(url);
82
+ }
83
+ const attributes = {};
84
+ if (data.operationName) {
85
+ attributes[ATTRIBUTE_KEYS.GRAPHQL_OPERATION_NAME] = data.operationName;
86
+ }
87
+ if (data.operationType) {
88
+ attributes[ATTRIBUTE_KEYS.GRAPHQL_OPERATION_TYPE] = data.operationType;
89
+ }
90
+ return attributes;
91
+ }
92
+ //# sourceMappingURL=graphql-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["parseUrl","ATTRIBUTE_KEYS","isGraphQLRequest","url","toLowerCase","includes","parseGraphQLQuery","query","namedQueryRe","namedMatch","match","length","operationType","operationName","unnamedQueryRe","unnamedMatch","undefined","extractFromBody","body","payload","JSON","parse","data","operation","parsedQuery","extractFromQueryParams","parsedUrl","searchParams","get","updateAttributesWithGraphQLData","attributes","GRAPHQL_OPERATION_NAME","GRAPHQL_OPERATION_TYPE"],"sourceRoot":"../../../src","sources":["network-interceptor/graphql-helper.ts"],"mappings":"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","ignoreList":[]}
@@ -35,7 +35,8 @@ function createXmlHttpRequestTracker(xhr) {
35
35
  method: requestData.method,
36
36
  url: requestData.url
37
37
  };
38
- const span = createNetworkSpan(startContext, 'xmlhttprequest');
38
+ this.setRequestHeader('X-Pulse-RN-Tracked', 'true');
39
+ const span = createNetworkSpan(startContext, 'xmlhttprequest', body);
39
40
  trackedSpans.set(this, span);
40
41
  const {
41
42
  onRequestEnd
@@ -1 +1 @@
1
- {"version":3,"names":["RequestTracker","getAbsoluteUrl","createNetworkSpan","completeNetworkSpan","isXHRIntercepted","createXmlHttpRequestTracker","xhr","console","warn","requestTracker","trackedRequests","WeakMap","trackedSpans","requestHandlers","originalOpen","prototype","open","method","url","rest","set","String","call","originalSend","send","body","requestData","get","existingHandler","removeEventListener","startContext","type","span","onRequestEnd","start","onReadyStateChange","readyState","DONE","activeSpan","endContext","status","state","delete","addEventListener"],"sourceRoot":"../../../src","sources":["network-interceptor/request-tracker-xhr.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["RequestTracker","getAbsoluteUrl","createNetworkSpan","completeNetworkSpan","isXHRIntercepted","createXmlHttpRequestTracker","xhr","console","warn","requestTracker","trackedRequests","WeakMap","trackedSpans","requestHandlers","originalOpen","prototype","open","method","url","rest","set","String","call","originalSend","send","body","requestData","get","existingHandler","removeEventListener","startContext","type","setRequestHeader","span","onRequestEnd","start","onReadyStateChange","readyState","DONE","activeSpan","endContext","status","state","delete","addEventListener"],"sourceRoot":"../../../src","sources":["network-interceptor/request-tracker-xhr.ts"],"mappings":"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","ignoreList":[]}
@@ -3,17 +3,19 @@
3
3
  import { Platform } from 'react-native';
4
4
  import { Pulse, SpanStatusCode } from "../index.js";
5
5
  import { extractHttpAttributes } from "./url-helper.js";
6
+ import { updateAttributesWithGraphQLData } from "./graphql-helper.js";
7
+ import { ATTRIBUTE_KEYS, PHASE_VALUES } from "../pulse.constants.js";
6
8
  export function setNetworkSpanAttributes(span, startContext, endContext) {
7
9
  const method = startContext.method.toUpperCase();
8
10
  let attributes = {
9
- 'http.method': method,
10
- 'http.url': startContext.url,
11
- 'pulse.type': `network.${endContext.status ?? 0}`,
12
- 'http.request.type': startContext.type,
13
- 'platform': Platform.OS
11
+ [ATTRIBUTE_KEYS.HTTP_METHOD]: method,
12
+ [ATTRIBUTE_KEYS.HTTP_URL]: startContext.url,
13
+ [ATTRIBUTE_KEYS.PULSE_TYPE]: `network.${endContext.status ?? 0}`,
14
+ [ATTRIBUTE_KEYS.HTTP_REQUEST_TYPE]: startContext.type,
15
+ [ATTRIBUTE_KEYS.PLATFORM]: Platform.OS
14
16
  };
15
17
 
16
- // We had implemented our own URL parsing helper to avoid errors on RN < 0.80. Since this is not supported by React Native.
18
+ // We had implemented our own URL parsing helper to avoid errors on RN < 0.80. Since this is not supported by React Native.
17
19
  // Check here: https://github.com/facebook/react-native/blob/v0.79.0/packages/react-native/Libraries/Blob/URL.js
18
20
  const urlAttributes = extractHttpAttributes(startContext.url);
19
21
  attributes = {
@@ -21,29 +23,35 @@ export function setNetworkSpanAttributes(span, startContext, endContext) {
21
23
  ...urlAttributes
22
24
  };
23
25
  if (endContext.status) {
24
- attributes['http.status_code'] = endContext.status;
26
+ attributes[ATTRIBUTE_KEYS.HTTP_STATUS_CODE] = endContext.status;
25
27
  }
26
28
  if (endContext.state === 'error' && endContext.error) {
27
29
  attributes.error = true;
28
- attributes['error.message'] = endContext.error.message || String(endContext.error);
30
+ attributes[ATTRIBUTE_KEYS.ERROR_MESSAGE] = endContext.error.message || String(endContext.error);
29
31
  if (endContext.error.stack) {
30
- attributes['error.stack'] = endContext.error.stack;
32
+ attributes[ATTRIBUTE_KEYS.ERROR_STACK] = endContext.error.stack;
31
33
  }
32
34
  span.recordException(endContext.error, attributes);
33
35
  }
34
36
  span.setAttributes(attributes);
35
37
  return attributes;
36
38
  }
37
- export function createNetworkSpan(startContext, interceptorType) {
39
+ export function createNetworkSpan(startContext, interceptorType, body) {
38
40
  const method = startContext.method.toUpperCase();
39
41
  const spanName = `HTTP ${method}`;
42
+ let baseAttributes = {
43
+ [ATTRIBUTE_KEYS.HTTP_METHOD]: method,
44
+ [ATTRIBUTE_KEYS.HTTP_URL]: startContext.url,
45
+ [ATTRIBUTE_KEYS.PULSE_TYPE]: PHASE_VALUES.NETWORK,
46
+ [ATTRIBUTE_KEYS.HTTP_REQUEST_TYPE]: interceptorType
47
+ };
48
+ const graphqlAttributes = updateAttributesWithGraphQLData(startContext.url, body);
49
+ const attributes = {
50
+ ...baseAttributes,
51
+ ...graphqlAttributes
52
+ };
40
53
  const span = Pulse.startSpan(spanName, {
41
- attributes: {
42
- 'http.method': method,
43
- 'http.url': startContext.url,
44
- 'pulse.type': 'network',
45
- 'http.request.type': interceptorType
46
- }
54
+ attributes
47
55
  });
48
56
  return span;
49
57
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","Pulse","SpanStatusCode","extractHttpAttributes","setNetworkSpanAttributes","span","startContext","endContext","method","toUpperCase","attributes","url","status","type","OS","urlAttributes","state","error","message","String","stack","recordException","setAttributes","createNetworkSpan","interceptorType","spanName","startSpan","completeNetworkSpan","isError","console","log","spanId","spanAttributes","e","end","ERROR","UNSET"],"sourceRoot":"../../../src","sources":["network-interceptor/span-helpers.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AAMvC,SAASC,KAAK,EAAEC,cAAc,QAAQ,aAAU;AAEhD,SAASC,qBAAqB,QAAQ,iBAAc;AAEpD,OAAO,SAASC,wBAAwBA,CACtCC,IAAU,EACVC,YAAiC,EACjCC,UAA6B,EACZ;EACjB,MAAMC,MAAM,GAAGF,YAAY,CAACE,MAAM,CAACC,WAAW,CAAC,CAAC;EAChD,IAAIC,UAA2B,GAAG;IAChC,aAAa,EAAEF,MAAM;IACrB,UAAU,EAAEF,YAAY,CAACK,GAAG;IAC5B,YAAY,EAAE,WAAWJ,UAAU,CAACK,MAAM,IAAI,CAAC,EAAE;IACjD,mBAAmB,EAAEN,YAAY,CAACO,IAAI;IACtC,UAAU,EAAEb,QAAQ,CAACc;EACvB,CAAC;;EAED;EACA;EACA,MAAMC,aAAa,GAAGZ,qBAAqB,CAACG,YAAY,CAACK,GAAG,CAAC;EAC7DD,UAAU,GAAG;IAAE,GAAGA,UAAU;IAAE,GAAGK;EAAc,CAAC;EAEhD,IAAIR,UAAU,CAACK,MAAM,EAAE;IACrBF,UAAU,CAAC,kBAAkB,CAAC,GAAGH,UAAU,CAACK,MAAM;EACpD;EAEA,IAAIL,UAAU,CAACS,KAAK,KAAK,OAAO,IAAIT,UAAU,CAACU,KAAK,EAAE;IACpDP,UAAU,CAACO,KAAK,GAAG,IAAI;IACvBP,UAAU,CAAC,eAAe,CAAC,GACzBH,UAAU,CAACU,KAAK,CAACC,OAAO,IAAIC,MAAM,CAACZ,UAAU,CAACU,KAAK,CAAC;IACtD,IAAIV,UAAU,CAACU,KAAK,CAACG,KAAK,EAAE;MAC1BV,UAAU,CAAC,aAAa,CAAC,GAAGH,UAAU,CAACU,KAAK,CAACG,KAAK;IACpD;IACAf,IAAI,CAACgB,eAAe,CAACd,UAAU,CAACU,KAAK,EAAEP,UAAU,CAAC;EACpD;EAEAL,IAAI,CAACiB,aAAa,CAACZ,UAAU,CAAC;EAC9B,OAAOA,UAAU;AACnB;AAEA,OAAO,SAASa,iBAAiBA,CAC/BjB,YAAiC,EACjCkB,eAA2C,EACrC;EACN,MAAMhB,MAAM,GAAGF,YAAY,CAACE,MAAM,CAACC,WAAW,CAAC,CAAC;EAChD,MAAMgB,QAAQ,GAAG,QAAQjB,MAAM,EAAE;EAEjC,MAAMH,IAAI,GAAGJ,KAAK,CAACyB,SAAS,CAACD,QAAQ,EAAE;IACrCf,UAAU,EAAE;MACV,aAAa,EAAEF,MAAM;MACrB,UAAU,EAAEF,YAAY,CAACK,GAAG;MAC5B,YAAY,EAAE,SAAS;MACvB,mBAAmB,EAAEa;IACvB;EACF,CAAC,CAAC;EAEF,OAAOnB,IAAI;AACb;AAEA,OAAO,SAASsB,mBAAmBA,CACjCtB,IAAU,EACVC,YAAiC,EACjCC,UAA6B,EAC7BqB,OAAgB,EACV;EACN,IAAI;IACF,MAAMlB,UAAU,GAAGN,wBAAwB,CAACC,IAAI,EAAEC,YAAY,EAAEC,UAAU,CAAC;IAC3EsB,OAAO,CAACC,GAAG,CAAC,gCAAgC,EAAE;MAC5CC,MAAM,EAAE1B,IAAI,CAAC0B,MAAM;MACnBC,cAAc,EAAEtB;IAClB,CAAC,CAAC;EACJ,CAAC,CAAC,OAAOuB,CAAC,EAAE;IACVJ,OAAO,CAACZ,KAAK,CAAC,wCAAwC,EAAEgB,CAAC,CAAC;EAC5D;EAEA5B,IAAI,CAAC6B,GAAG,CAACN,OAAO,GAAG1B,cAAc,CAACiC,KAAK,GAAGjC,cAAc,CAACkC,KAAK,CAAC;AACjE","ignoreList":[]}
1
+ {"version":3,"names":["Platform","Pulse","SpanStatusCode","extractHttpAttributes","updateAttributesWithGraphQLData","ATTRIBUTE_KEYS","PHASE_VALUES","setNetworkSpanAttributes","span","startContext","endContext","method","toUpperCase","attributes","HTTP_METHOD","HTTP_URL","url","PULSE_TYPE","status","HTTP_REQUEST_TYPE","type","PLATFORM","OS","urlAttributes","HTTP_STATUS_CODE","state","error","ERROR_MESSAGE","message","String","stack","ERROR_STACK","recordException","setAttributes","createNetworkSpan","interceptorType","body","spanName","baseAttributes","NETWORK","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":[]}
@@ -10,6 +10,58 @@
10
10
  * Based on: https://github.com/facebook/react-native/blob/v0.80.0/packages/react-native/Libraries/Blob/URL.js
11
11
  */
12
12
 
13
+ export class SearchParams {
14
+ params = new Map();
15
+ constructor(search) {
16
+ if (!search || typeof search !== 'string') {
17
+ return;
18
+ }
19
+
20
+ // Remove leading '?' if present
21
+ const queryString = search.startsWith('?') ? search.slice(1) : search;
22
+ if (!queryString) {
23
+ return;
24
+ }
25
+ try {
26
+ // Split by '&' to get individual parameters
27
+ const pairs = queryString.split('&');
28
+ for (const pair of pairs) {
29
+ if (!pair) continue;
30
+
31
+ // Split by '=' to get key and value
32
+ const equalIndex = pair.indexOf('=');
33
+ if (equalIndex === -1) {
34
+ // Parameter without value
35
+ const key = decodeURIComponent(pair);
36
+ if (key) {
37
+ this.params.set(key, '');
38
+ }
39
+ } else {
40
+ const key = decodeURIComponent(pair.substring(0, equalIndex));
41
+ const value = decodeURIComponent(pair.substring(equalIndex + 1));
42
+ if (key) {
43
+ this.params.set(key, value);
44
+ }
45
+ }
46
+ }
47
+ } catch (e) {
48
+ // If decoding fails, params remain empty
49
+ console.warn('[Pulse] Query parameter parsing failed:', e);
50
+ }
51
+ }
52
+ get(name) {
53
+ return this.params.has(name) ? this.params.get(name) : null;
54
+ }
55
+ has(name) {
56
+ return this.params.has(name);
57
+ }
58
+ keys() {
59
+ return Array.from(this.params.keys());
60
+ }
61
+ values() {
62
+ return Array.from(this.params.values());
63
+ }
64
+ }
13
65
  /**
14
66
  * Safely extract a regex match group
15
67
  * Returns empty string if match fails or group is undefined
@@ -18,7 +70,7 @@ function safeMatch(text, regex, groupIndex = 1) {
18
70
  try {
19
71
  const match = text.match(regex);
20
72
  return match && match[groupIndex] ? match[groupIndex] : '';
21
- } catch (e) {
73
+ } catch {
22
74
  return '';
23
75
  }
24
76
  }
@@ -66,6 +118,9 @@ export function parseUrl(url) {
66
118
  // Hash - e.g., "#section"
67
119
  const hashContent = safeMatch(url, /#([^/]*)/);
68
120
  const hash = hashContent ? `#${hashContent}` : '';
121
+
122
+ // Create SearchParams instance for query parameters
123
+ const searchParams = new SearchParams(search);
69
124
  return {
70
125
  protocol: protocolWithColon,
71
126
  hostname: hostname,
@@ -74,7 +129,8 @@ export function parseUrl(url) {
74
129
  pathname: pathname,
75
130
  search: search,
76
131
  hash: hash,
77
- href: url
132
+ href: url,
133
+ searchParams: searchParams
78
134
  };
79
135
  } catch (e) {
80
136
  // Any unexpected error during parsing - return null
@@ -1 +1 @@
1
- {"version":3,"names":["safeMatch","text","regex","groupIndex","match","e","parseUrl","url","trim","length","protocol","protocolWithColon","hostname","port","host","pathMatch","pathname","searchContent","search","hashContent","hash","href","console","warn","extractHttpAttributes","parsed","attributes","replace","portNum","parseInt","isNaN"],"sourceRoot":"../../../src","sources":["network-interceptor/url-helper.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["SearchParams","params","Map","constructor","search","queryString","startsWith","slice","pairs","split","pair","equalIndex","indexOf","key","decodeURIComponent","set","substring","value","e","console","warn","get","name","has","keys","Array","from","values","safeMatch","text","regex","groupIndex","match","parseUrl","url","trim","length","protocol","protocolWithColon","hostname","port","host","pathMatch","pathname","searchContent","hashContent","hash","searchParams","href","extractHttpAttributes","parsed","attributes","replace","portNum","parseInt","isNaN"],"sourceRoot":"../../../src","sources":["network-interceptor/url-helper.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Constants for Pulse React Native OpenTelemetry integration
5
+ */
6
+
7
+ export let SPAN_NAMES = /*#__PURE__*/function (SPAN_NAMES) {
8
+ SPAN_NAMES["SCREEN_SESSION"] = "ScreenSession";
9
+ SPAN_NAMES["NAVIGATED"] = "Navigated";
10
+ SPAN_NAMES["SCREEN_INTERACTIVE"] = "ScreenInteractive";
11
+ return SPAN_NAMES;
12
+ }({});
13
+ export let ATTRIBUTE_KEYS = /*#__PURE__*/function (ATTRIBUTE_KEYS) {
14
+ ATTRIBUTE_KEYS["PULSE_TYPE"] = "pulse.type";
15
+ ATTRIBUTE_KEYS["SCREEN_NAME"] = "screen.name";
16
+ ATTRIBUTE_KEYS["ROUTE_KEY"] = "routeKey";
17
+ ATTRIBUTE_KEYS["PHASE"] = "phase";
18
+ ATTRIBUTE_KEYS["LAST_SCREEN_NAME"] = "last.screen.name";
19
+ ATTRIBUTE_KEYS["ROUTE_HAS_BEEN_SEEN"] = "routeHasBeenSeen";
20
+ ATTRIBUTE_KEYS["PLATFORM"] = "platform";
21
+ ATTRIBUTE_KEYS["GRAPHQL_OPERATION_NAME"] = "graphql.operation.name";
22
+ ATTRIBUTE_KEYS["GRAPHQL_OPERATION_TYPE"] = "graphql.operation.type";
23
+ ATTRIBUTE_KEYS["HTTP_METHOD"] = "http.method";
24
+ ATTRIBUTE_KEYS["HTTP_URL"] = "http.url";
25
+ ATTRIBUTE_KEYS["HTTP_STATUS_CODE"] = "http.status_code";
26
+ ATTRIBUTE_KEYS["HTTP_REQUEST_TYPE"] = "http.request.type";
27
+ ATTRIBUTE_KEYS["ERROR_MESSAGE"] = "error.message";
28
+ ATTRIBUTE_KEYS["ERROR_STACK"] = "error.stack";
29
+ return ATTRIBUTE_KEYS;
30
+ }({});
31
+ export let PULSE_TYPES = /*#__PURE__*/function (PULSE_TYPES) {
32
+ PULSE_TYPES["SCREEN_SESSION"] = "screen_session";
33
+ PULSE_TYPES["SCREEN_LOAD"] = "screen_load";
34
+ PULSE_TYPES["SCREEN_INTERACTIVE"] = "screen_interactive";
35
+ return PULSE_TYPES;
36
+ }({});
37
+ export let PHASE_VALUES = /*#__PURE__*/function (PHASE_VALUES) {
38
+ PHASE_VALUES["START"] = "start";
39
+ PHASE_VALUES["NETWORK"] = "network";
40
+ return PHASE_VALUES;
41
+ }({});
42
+ //# sourceMappingURL=pulse.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SPAN_NAMES","ATTRIBUTE_KEYS","PULSE_TYPES","PHASE_VALUES"],"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;EAAA,OAAdA,cAAc;AAAA;AAkB1B,WAAYC,WAAW,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAMvB,WAAYC,YAAY,0BAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA","ignoreList":[]}
@@ -4,6 +4,13 @@ import PulseReactNativeOtel from "./NativePulseReactNativeOtel.js";
4
4
  import { isSupportedPlatform } from "./initialization.js";
5
5
  import { mergeWithGlobalAttributes } from "./globalAttributes.js";
6
6
  import { extractErrorDetails } from "./utility.js";
7
+
8
+ /**
9
+ * Options for starting a span.
10
+ * @param attributes - Attributes to set on the span.
11
+ * @param inheritContext - Controls whether or not the new span will be parented in the existing (current) context. If false, a new context is created.
12
+ */
13
+
7
14
  export let SpanStatusCode = /*#__PURE__*/function (SpanStatusCode) {
8
15
  SpanStatusCode["OK"] = "OK";
9
16
  SpanStatusCode["ERROR"] = "ERROR";
@@ -21,7 +28,8 @@ export function startSpan(name, options) {
21
28
  };
22
29
  }
23
30
  const mergedAttributes = mergeWithGlobalAttributes(options?.attributes || {});
24
- const spanId = PulseReactNativeOtel.startSpan(name, mergedAttributes);
31
+ const inheritContext = options?.inheritContext ?? true;
32
+ const spanId = PulseReactNativeOtel.startSpan(name, inheritContext, mergedAttributes);
25
33
  return {
26
34
  end: statusCode => {
27
35
  return endSpan(spanId, statusCode);
@@ -43,7 +51,8 @@ export function trackSpan(name, options, fn) {
43
51
  return fn();
44
52
  }
45
53
  const mergedAttributes = mergeWithGlobalAttributes(options?.attributes || {});
46
- const spanId = PulseReactNativeOtel.startSpan(name, mergedAttributes);
54
+ const inheritContext = options?.inheritContext ?? true;
55
+ const spanId = PulseReactNativeOtel.startSpan(name, inheritContext, mergedAttributes);
47
56
  const result = fn();
48
57
  if (result && typeof result.then === 'function') {
49
58
  return result.finally(() => {
@@ -56,6 +65,12 @@ export function trackSpan(name, options, fn) {
56
65
  function endSpan(spanId, statusCode) {
57
66
  PulseReactNativeOtel.endSpan(spanId, statusCode);
58
67
  }
68
+ export function discardSpan(spanId) {
69
+ if (!isSupportedPlatform()) {
70
+ return;
71
+ }
72
+ PulseReactNativeOtel.discardSpan(spanId);
73
+ }
59
74
  function addSpanEvent(spanId, name, attributes) {
60
75
  PulseReactNativeOtel.addSpanEvent(spanId, name, attributes || undefined);
61
76
  }
@@ -1 +1 @@
1
- {"version":3,"names":["PulseReactNativeOtel","isSupportedPlatform","mergeWithGlobalAttributes","extractErrorDetails","SpanStatusCode","startSpan","name","options","end","_statusCode","addEvent","_eventName","_eventAttributes","setAttributes","_attributes","recordException","_error","spanId","undefined","mergedAttributes","attributes","statusCode","endSpan","eventName","eventAttributes","addSpanEvent","spanAttributes","setSpanAttributes","error","recordSpanException","trackSpan","fn","result","then","finally","UNSET","message","stackTrace","errorType","observedTimeMs","Date","now","reportException"],"sourceRoot":"../../src","sources":["trace.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["PulseReactNativeOtel","isSupportedPlatform","mergeWithGlobalAttributes","extractErrorDetails","SpanStatusCode","startSpan","name","options","end","_statusCode","addEvent","_eventName","_eventAttributes","setAttributes","_attributes","recordException","_error","spanId","undefined","mergedAttributes","attributes","inheritContext","statusCode","endSpan","eventName","eventAttributes","addSpanEvent","spanAttributes","setSpanAttributes","error","recordSpanException","trackSpan","fn","result","then","finally","UNSET","discardSpan","message","stackTrace","errorType","observedTimeMs","Date","now","reportException"],"sourceRoot":"../../src","sources":["trace.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import { type ConfigPlugin } from '@expo/config-plugins';
2
+ import type { PulsePluginProps } from './types';
3
+ declare const _default: ConfigPlugin<PulsePluginProps>;
4
+ export default _default;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../plugin/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;;AAchD,wBAA2E"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * OpenTelemetry attribute value types.
3
+ * Based on OpenTelemetry JavaScript SDK attribute types.
4
+ * @see https://github.com/open-telemetry/opentelemetry-js/blob/main/api/src/common/Attributes.ts
5
+ */
6
+ export type PulseAttributeValue = string | number | boolean | string[] | number[] | boolean[];
7
+ export type PulseAttributes = Record<string, PulseAttributeValue | undefined | null>;
8
+ interface IInteractionConfig {
9
+ enabled: boolean;
10
+ url?: string;
11
+ }
12
+ export interface PulsePluginProps {
13
+ endpointBaseUrl: string;
14
+ endpointHeaders?: Record<string, string>;
15
+ globalAttributes?: PulseAttributes;
16
+ instrumentation?: {
17
+ interaction?: IInteractionConfig;
18
+ activity?: boolean;
19
+ network?: boolean;
20
+ anr?: boolean;
21
+ crash?: boolean;
22
+ slowRendering?: boolean;
23
+ fragment?: boolean;
24
+ };
25
+ }
26
+ export {};
27
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../plugin/src/types.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,UAAU,kBAAkB;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,gBAAgB,CAAC,EAAE,eAAe,CAAC;IACnC,eAAe,CAAC,EAAE;QAChB,WAAW,CAAC,EAAE,kBAAkB,CAAC;QACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACH"}
@@ -0,0 +1,10 @@
1
+ export declare const PULSE_IMPORT = "import com.pulsereactnativeotel.Pulse\n";
2
+ export declare const ATTRIBUTES_IMPORT = "import io.opentelemetry.api.common.Attributes\nimport io.opentelemetry.api.common.AttributeKey\n";
3
+ import type { PulsePluginProps } from './types';
4
+ export declare function buildPulseInitializationCode(options: {
5
+ endpointBaseUrl: string;
6
+ endpointHeaders?: Record<string, string>;
7
+ globalAttributes?: PulsePluginProps['globalAttributes'];
8
+ instrumentation?: PulsePluginProps['instrumentation'];
9
+ }): string;
10
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../plugin/src/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,4CAA4C,CAAC;AAEtE,eAAO,MAAM,iBAAiB,qGACsE,CAAC;AAErG,OAAO,KAAK,EAAE,gBAAgB,EAAmB,MAAM,SAAS,CAAC;AA6DjE,wBAAgB,4BAA4B,CAAC,OAAO,EAAE;IACpD,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IACxD,eAAe,CAAC,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;CACvD,GAAG,MAAM,CA2DT"}
@@ -0,0 +1,4 @@
1
+ import type { ConfigPlugin } from '@expo/config-plugins';
2
+ import type { PulsePluginProps } from './types';
3
+ export declare const withAndroidPulse: ConfigPlugin<PulsePluginProps>;
4
+ //# sourceMappingURL=withAndroidPulse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withAndroidPulse.d.ts","sourceRoot":"","sources":["../../../../plugin/src/withAndroidPulse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AASzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,gBAAgB,EAAE,YAAY,CAAC,gBAAgB,CAyD3D,CAAC"}
@@ -7,8 +7,8 @@ export interface Spec extends TurboModule {
7
7
  /** Report a JS exception (message + stack, with fatal flag). */
8
8
  /** This function was made synchronous to attach current span context to the error event. Since span is created synchronously on mqt_js thread.*/
9
9
  reportException(errorMessage: string, observedTimeMs: number, stackTrace: string, isFatal: boolean, errorType: string, attributes?: Object): boolean;
10
- /** Start an active span; returns spanId (simplified). */
11
- startSpan(name: string, attributes?: Object): string;
10
+ /** Start an active span; returns spanId. */
11
+ startSpan(name: string, inheritContext: boolean, attributes?: Object): string;
12
12
  /** End a span with optional status code. */
13
13
  endSpan(spanId: string, statusCode?: string): boolean;
14
14
  /** Add an event to a span. */
@@ -17,6 +17,8 @@ export interface Spec extends TurboModule {
17
17
  setSpanAttributes(spanId: string, attributes?: Object): boolean;
18
18
  /** Record an exception on a span. */
19
19
  recordSpanException(spanId: string, errorMessage: string, stackTrace?: string): boolean;
20
+ /** Discard a span without sending it to backend. */
21
+ discardSpan(spanId: string): boolean;
20
22
  /** Set user id for the session. Setting null will reset the id */
21
23
  setUserId(id: string | null): void;
22
24
  /** Set a single user property for this session */
@@ -25,6 +27,10 @@ export interface Spec extends TurboModule {
25
27
  setUserProperties(properties: Object): void;
26
28
  /** Trigger ANR test (freezes main thread for 6 seconds) */
27
29
  triggerAnr(): void;
30
+ /** Set the current React Native screen name to sync active screen name on Android/iOS */
31
+ setCurrentScreenName(screenName: string): boolean;
32
+ /** Get all SDK Remote Config features */
33
+ getAllFeatures(): Object;
28
34
  }
29
35
  declare const _default: Spec;
30
36
  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,yDAAyD;IACzD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAErD,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,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;CACpB;;AAED,wBAA8E"}
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,MAAM,CAAC;CAC1B;;AAED,wBAA8E"}
@@ -1,4 +1,5 @@
1
- import { type ReactNavigationIntegration } from './reactNavigation';
1
+ import { type ReactNavigationIntegration, type NavigationIntegrationOptions } from './navigation';
2
+ import type { PulseFeatureConfig } from './pulse.interface';
2
3
  export type PulseConfig = {
3
4
  autoDetectExceptions?: boolean;
4
5
  autoDetectNavigation?: boolean;
@@ -9,6 +10,11 @@ export type PulseStartOptions = {
9
10
  autoDetectNavigation?: boolean;
10
11
  autoDetectNetwork?: boolean;
11
12
  };
13
+ /**
14
+ * Gets all features from the remote SDK config.
15
+ * @returns Record of feature names to their enabled status
16
+ */
17
+ export declare function getFeaturesFromRemoteConfig(): PulseFeatureConfig;
12
18
  export declare function start(options?: PulseStartOptions): void;
13
- export declare function createNavigationIntegrationWithConfig(): ReactNavigationIntegration;
19
+ export declare function createNavigationIntegrationWithConfig(options?: NavigationIntegrationOptions): ReactNavigationIntegration;
14
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,EAChC,MAAM,mBAAmB,CAAC;AAG3B,MAAM,MAAM,WAAW,GAAG;IACxB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAsBF,wBAAgB,KAAK,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAYvD;AAED,wBAAgB,qCAAqC,IAAI,0BAA0B,CAoBlF"}
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;AAE5D,MAAM,MAAM,WAAW,GAAG;IACxB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAaF;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,kBAAkB,CAQhE;AAcD,wBAAgB,KAAK,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAiBvD;AAED,wBAAgB,qCAAqC,CACnD,OAAO,CAAC,EAAE,4BAA4B,GACrC,0BAA0B,CAsB5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"errorBoundary.d.ts","sourceRoot":"","sources":["../../../src/errorBoundary.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAG3C,MAAM,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE;IACvC,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACxB,KAAK,KAAK,CAAC,YAAY,CAAC;AAEzB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;IACrD,QAAQ,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,cAAc,GAAG,SAAS,CAAC;IAC3D,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC1E,CAAC;AAEF,KAAK,kBAAkB,GACnB;IACE,cAAc,EAAE,IAAI,CAAC;IACrB,KAAK,EAAE,IAAI,CAAC;CACb,GACD;IACE,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAON,qBAAa,aAAc,SAAQ,KAAK,CAAC,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IACjF,KAAK,EAAE,kBAAkB,CAAiB;IAE1C,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI;IAiBnE,MAAM,IAAI,KAAK,CAAC,SAAS;CAsBjC;AAED,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7D,gBAAgB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EACxC,oBAAoB,EAAE,kBAAkB,GACvC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAYb"}
1
+ {"version":3,"file":"errorBoundary.d.ts","sourceRoot":"","sources":["../../../src/errorBoundary.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAG3C,MAAM,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE;IACvC,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACxB,KAAK,KAAK,CAAC,YAAY,CAAC;AAEzB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;IACrD,QAAQ,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,cAAc,GAAG,SAAS,CAAC;IAC3D,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC1E,CAAC;AAEF,KAAK,kBAAkB,GACnB;IACE,cAAc,EAAE,IAAI,CAAC;IACrB,KAAK,EAAE,IAAI,CAAC;CACb,GACD;IACE,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAON,qBAAa,aAAc,SAAQ,KAAK,CAAC,SAAS,CAChD,kBAAkB,EAClB,kBAAkB,CACnB;IACQ,KAAK,EAAE,kBAAkB,CAAiB;IAE1C,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI;IAmBnE,MAAM,IAAI,KAAK,CAAC,SAAS;CAsBjC;AAED,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7D,gBAAgB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EACxC,oBAAoB,EAAE,kBAAkB,GACvC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAab"}
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/events.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,eAAe,GAAG,IAAI,CAS5E"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/events.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,eAAe,GAAG,IAAI,CAe5E"}