@dynatrace/react-native-plugin 2.295.1 → 2.297.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.
package/README.md CHANGED
@@ -31,8 +31,8 @@ If you want to start using this plugin and are not a Dynatrace customer yet, hea
31
31
  ## Agent Versions
32
32
  This agent versions are configured in this plugin:
33
33
 
34
- * Android Agent: 8.295.1.1006
35
- * iOS Agent: 8.295.1.1020
34
+ * Android Agent: 8.297.1.1003
35
+ * iOS Agent: 8.297.1.1004
36
36
 
37
37
  ## Quick Setup
38
38
 
@@ -81,6 +81,7 @@ This agent versions are configured in this plugin:
81
81
  * [Upgrading project to Gradle 6](#updating-to-gradle-6)
82
82
  * [Maven Central in top-level gradle file](#maven-central-in-top-level-gradle-file)
83
83
  * [Configuration of standalone React Native project](#configuration-of-standalone-react-native-project)
84
+ * [Instrumentation Overhead](#instrumentation-overhead)
84
85
 
85
86
  ## Troubleshooting
86
87
  * [Documentation](#dynatrace-documentation)
@@ -1389,6 +1390,15 @@ The OneAgent for Android and iOS documentation is available at the following loc
1389
1390
  **Note:**
1390
1391
  The Dynatrace Android Gradle plugin is hosted on [Maven Central](https://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22com.dynatrace.tools.android%22%20AND%20a%3A%22gradle-plugin%22). JCenter has noted it's [sunset](https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/) on May 1st so Maven Central is the primary source of the Dynatrace Android Gradle plugin.
1391
1392
 
1393
+ ## Instrumentation Overhead
1394
+
1395
+ When using auto-instrumenation through our plugin, here are some examples of the size differences before and after instrumentation for release builds:
1396
+
1397
+ | Operating System | App template | Version | Size Before | Size After | Difference |
1398
+ |----------------------|-------------------------|----------------|-----------------|----------------|----------------|
1399
+ | Android | Default new app | 0.74.3 | 50.7 MB | 50.9 MB | 0.2 MB |
1400
+ | iOS | Default new app | 0.74.3 | 28.1 MB | 36.5 MB | 8.4 MB |
1401
+
1392
1402
  ## Troubleshooting and applicable restrictions
1393
1403
 
1394
1404
  >**Attention:** If you think something is not working the way it should, ALWAYS try to reset the cache of metro first before starting a support case. You can do this via the CLI *react-native start --reset-cache*. If it still does not work feel free to open a support case.
@@ -1428,6 +1438,11 @@ If you are struggling with a problem, submit a support ticket to Dynatrace (supp
1428
1438
  <br/><br/>
1429
1439
  ## Changelog
1430
1440
 
1441
+ 2.297.2
1442
+ * Update Android (8.297.1.1004) & iOS Agent (8.297.1.1003)
1443
+ * Added information about [Instrumentation Overhead](#instrumentation-overhead) to README
1444
+ * Fixed manual webrequest timing missing stopWebRequestTimingWithSize in iOS
1445
+
1431
1446
  2.295.1
1432
1447
  * Update Android (8.295.1.1006) & iOS Agent (8.295.1.1020)
1433
1448
  * Add list of supported/unsupported libraries to README
@@ -70,7 +70,7 @@ repositories {
70
70
  }
71
71
 
72
72
  dependencies {
73
- implementation 'com.dynatrace.agent:agent-android:8.295.1.1006'
73
+ implementation 'com.dynatrace.agent:agent-android:8.297.1.1003'
74
74
  implementation "com.facebook.react:react-native:${safeExtGet('reactNative', '+')}"
75
75
  }
76
76
 
@@ -1,3 +1,3 @@
1
1
  dependencies {
2
- classpath 'com.dynatrace.tools.android:gradle-plugin:8.295.1.1006'
2
+ classpath 'com.dynatrace.tools.android:gradle-plugin:8.297.1.1003'
3
3
  }
@@ -264,17 +264,27 @@ RCT_EXPORT_METHOD(startWebRequestTiming:(NSString*) requestTag url:(NSString*) u
264
264
 
265
265
  }
266
266
 
267
- RCT_EXPORT_METHOD(stopWebRequestTiming:(NSString*) requestTag url:(NSString*)url responseCode:(nonnull NSNumber*) responseCode responseMessage:(NSString*)responseMessage)
267
+ - (void)stopWebRequestTimingHelper:(NSString*) requestTag url:(NSString*)url responseCode:(nonnull NSNumber*) responseCode responseMessage:(NSString*)responseMessage bytesSent:(nonnull NSNumber*)bytesSent bytesReceived:(nonnull NSNumber*)bytesReceived
268
268
  {
269
269
  if(requestTag != NULL){
270
270
  DTXWebRequestTiming* timing = [webTimingsDict objectForKey:requestTag];
271
271
  if(timing){
272
- [timing stopWebRequestTiming:[responseCode stringValue]];
272
+ [timing stopWebRequestTiming:[responseCode stringValue] bytesSent:[bytesSent longLongValue] bytesReceived:[bytesReceived longLongValue]];
273
273
  [webTimingsDict removeObjectForKey:requestTag];
274
274
  }
275
275
  }
276
276
  }
277
277
 
278
+ RCT_EXPORT_METHOD(stopWebRequestTiming:(NSString*) requestTag url:(NSString*)url responseCode:(nonnull NSNumber*) responseCode responseMessage:(NSString*)responseMessage)
279
+ {
280
+ [self stopWebRequestTimingHelper:requestTag url:url responseCode:responseCode responseMessage:responseMessage bytesSent:0 bytesReceived:0];
281
+ }
282
+
283
+ RCT_EXPORT_METHOD(stopWebRequestTimingWithSize:(NSString*) requestTag url:(NSString*)url responseCode:(nonnull NSNumber*) responseCode responseMessage:(NSString*)responseMessage requestSize:(nonnull NSNumber*)requestSize responseSize:(nonnull NSNumber*)responseSize)
284
+ {
285
+ [self stopWebRequestTimingHelper:requestTag url:url responseCode:responseCode responseMessage:responseMessage bytesSent:requestSize bytesReceived:responseSize];
286
+ }
287
+
278
288
  RCT_EXPORT_METHOD(identifyUser:(NSString *)user platform: (NSString *) platform)
279
289
  {
280
290
  if ([self shouldWorkOnIosWithPlatform: platform])
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsxDevRuntime = require("./lib/jsx-dev-runtime");
4
+ module.exports = Object.assign({}, jsxDevRuntime);
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const ElementHelper_1 = require("./instrumentor/base/ElementHelper");
4
+ const Types_1 = require("./instrumentor/model/Types");
5
+ const Component_1 = require("./react/Component");
6
+ try {
7
+ let _jsxDevRuntime;
8
+ try {
9
+ _jsxDevRuntime = require('react/jsx-dev-runtime.js');
10
+ }
11
+ catch (error) {
12
+ try {
13
+ _jsxDevRuntime = require('../../../react/jsx-dev-runtime');
14
+ }
15
+ catch (error) {
16
+ _jsxDevRuntime = null;
17
+ }
18
+ }
19
+ if (_jsxDevRuntime != null) {
20
+ const jsxDEV = (...args) => {
21
+ if (args[0] !== undefined && args[0]._dtInfo !== undefined && !(0, ElementHelper_1.isDtActionIgnore)(args[1])) {
22
+ if (args[0]._dtInfo.type === Types_1.Types.FunctionalComponent) {
23
+ const wrapperProps = { children: [] };
24
+ wrapperProps.dtActionName = (args[1] !== undefined &&
25
+ args[1].dtActionName !== undefined) ? args[1].dtActionName : args[0]._dtInfo.name;
26
+ wrapperProps.children.push(_jsxDevRuntime.jsxDEV(args[0], args[1], ...args));
27
+ return _jsxDevRuntime.jsxDEV(Component_1.DynatraceFnWrapper, wrapperProps);
28
+ }
29
+ else if (args[0]._dtInfo.type === Types_1.Types.ClassComponent &&
30
+ args[0].prototype !== undefined && args[0].prototype.isReactComponent !== undefined) {
31
+ const wrapperProps = { children: [] };
32
+ wrapperProps.children.push(_jsxDevRuntime.jsxDEV(args[0], args[1], ...args));
33
+ return _jsxDevRuntime.jsxDEV(Component_1.DynatraceClassWrapper, wrapperProps);
34
+ }
35
+ if (Array.isArray(args[1].children)) {
36
+ (0, ElementHelper_1.modifyElement)(args[0], args[1], ...args[1].children);
37
+ }
38
+ else {
39
+ (0, ElementHelper_1.modifyElement)(args[0], args[1], args[1].children);
40
+ }
41
+ }
42
+ return _jsxDevRuntime.jsxDEV(...args);
43
+ };
44
+ module.exports = Object.assign(Object.assign({}, _jsxDevRuntime), { jsxDEV });
45
+ }
46
+ else {
47
+ module.exports = {};
48
+ }
49
+ }
50
+ catch (error) {
51
+ module.exports = {};
52
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynatrace/react-native-plugin",
3
- "version": "2.295.1",
3
+ "version": "2.297.2",
4
4
  "description": "This plugin gives you the ability to use the Dynatrace Mobile agent in your react native application.",
5
5
  "main": "index.js",
6
6
  "types": "typings/react-native-dynatrace.d.ts",
@@ -71,11 +71,11 @@
71
71
  "author": "Dynatrace",
72
72
  "license": "SEE LICENSE IN LICENSE.md",
73
73
  "dependencies": {
74
- "@babel/runtime": "^7.24.8",
75
- "jscodeshift": "^0.16.1",
74
+ "@babel/runtime": "^7.25.0",
75
+ "jscodeshift": "^17.0.0",
76
76
  "plist": "^3.1.0",
77
77
  "proxy-polyfill": "^0.3.2",
78
- "semver": "^7.6.2"
78
+ "semver": "^7.6.3"
79
79
  },
80
80
  "homepage": "https://www.dynatrace.com/",
81
81
  "peerDependencies": {
@@ -163,6 +163,7 @@
163
163
  "typings/*",
164
164
  "package.json",
165
165
  "jsx-runtime.js",
166
+ "jsx-dev-runtime.js",
166
167
  "src/lib/instrumentor/base/interface/NativeDynatraceBridge.ts"
167
168
  ],
168
169
  "codegenConfig": {
@@ -111,7 +111,7 @@ Pod::Spec.new do |s|
111
111
  #
112
112
 
113
113
  s.dependency "React"
114
- s.dependency 'Dynatrace', '~> 8.295.1.1020'
114
+ s.dependency 'Dynatrace', '~> 8.297.1.1004'
115
115
 
116
116
  # Allows for better compatibility for older and newer versions
117
117
  if defined?(install_modules_dependencies)