@dynatrace/cordova-plugin 2.329.1 → 2.333.1
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/Package.swift +32 -0
- package/README.md +60 -19
- package/files/iOS/Dynatrace.xcframework/Info.plist +7 -7
- package/files/iOS/Dynatrace.xcframework/_CodeSignature/CodeDirectory +0 -0
- package/files/iOS/Dynatrace.xcframework/_CodeSignature/CodeRequirements-1 +0 -0
- package/files/iOS/Dynatrace.xcframework/_CodeSignature/CodeResources +69 -69
- package/files/iOS/Dynatrace.xcframework/_CodeSignature/CodeSignature +0 -0
- package/files/iOS/Dynatrace.xcframework/ios-arm64/Dynatrace.framework/Dynatrace +0 -0
- package/files/iOS/Dynatrace.xcframework/ios-arm64/Dynatrace.framework/Headers/Dynatrace.h +85 -41
- package/files/iOS/Dynatrace.xcframework/ios-arm64/Dynatrace.framework/Info.plist +0 -0
- package/files/iOS/Dynatrace.xcframework/ios-arm64/Dynatrace.framework/Modules/Dynatrace.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
- package/files/iOS/Dynatrace.xcframework/ios-arm64/Dynatrace.framework/Modules/Dynatrace.swiftmodule/arm64-apple-ios.abi.json +2 -2
- package/files/iOS/Dynatrace.xcframework/ios-arm64_x86_64-simulator/Dynatrace.framework/Dynatrace +0 -0
- package/files/iOS/Dynatrace.xcframework/ios-arm64_x86_64-simulator/Dynatrace.framework/Headers/Dynatrace.h +85 -41
- package/files/iOS/Dynatrace.xcframework/ios-arm64_x86_64-simulator/Dynatrace.framework/Info.plist +0 -0
- package/files/iOS/Dynatrace.xcframework/ios-arm64_x86_64-simulator/Dynatrace.framework/Modules/Dynatrace.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
- package/files/iOS/Dynatrace.xcframework/ios-arm64_x86_64-simulator/Dynatrace.framework/Modules/Dynatrace.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
- package/files/iOS/Dynatrace.xcframework/ios-arm64_x86_64-simulator/Dynatrace.framework/Modules/Dynatrace.swiftmodule/arm64-apple-ios-simulator.abi.json +2 -2
- package/files/iOS/Dynatrace.xcframework/ios-arm64_x86_64-simulator/Dynatrace.framework/Modules/Dynatrace.swiftmodule/x86_64-apple-ios-simulator.abi.json +2 -2
- package/files/iOS/Dynatrace.xcframework/ios-arm64_x86_64-simulator/Dynatrace.framework/_CodeSignature/CodeResources +15 -15
- package/files/iOS/Dynatrace.xcframework/tvos-arm64/Dynatrace.framework/Dynatrace +0 -0
- package/files/iOS/Dynatrace.xcframework/tvos-arm64/Dynatrace.framework/Headers/Dynatrace.h +85 -41
- package/files/iOS/Dynatrace.xcframework/tvos-arm64/Dynatrace.framework/Info.plist +0 -0
- package/files/iOS/Dynatrace.xcframework/tvos-arm64/Dynatrace.framework/Modules/Dynatrace.swiftmodule/Project/arm64-apple-tvos.swiftsourceinfo +0 -0
- package/files/iOS/Dynatrace.xcframework/tvos-arm64_x86_64-simulator/Dynatrace.framework/Dynatrace +0 -0
- package/files/iOS/Dynatrace.xcframework/tvos-arm64_x86_64-simulator/Dynatrace.framework/Headers/Dynatrace.h +85 -41
- package/files/iOS/Dynatrace.xcframework/tvos-arm64_x86_64-simulator/Dynatrace.framework/Info.plist +0 -0
- package/files/iOS/Dynatrace.xcframework/tvos-arm64_x86_64-simulator/Dynatrace.framework/Modules/Dynatrace.swiftmodule/Project/arm64-apple-tvos-simulator.swiftsourceinfo +0 -0
- package/files/iOS/Dynatrace.xcframework/tvos-arm64_x86_64-simulator/Dynatrace.framework/Modules/Dynatrace.swiftmodule/Project/x86_64-apple-tvos-simulator.swiftsourceinfo +0 -0
- package/files/iOS/Dynatrace.xcframework/tvos-arm64_x86_64-simulator/Dynatrace.framework/_CodeSignature/CodeResources +11 -11
- package/files/plugin.gradle +1 -1
- package/package.json +13 -8
- package/plugin.xml +2 -2
- package/scripts/InstrumentCap.js +6 -1
- package/scripts/helpers/InstallHelper.js +70 -14
- package/scripts/helpers/PathHelper.js +16 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Dynatrace.h
|
|
2
|
-
// Version: 8.
|
|
2
|
+
// Version: 8.333.1.1005
|
|
3
3
|
//
|
|
4
4
|
// These materials contain confidential information and
|
|
5
5
|
// trade secrets of Dynatrace Corporation. You shall
|
|
@@ -528,42 +528,6 @@ typedef NS_ENUM(int, DTX_StatusCode) {
|
|
|
528
528
|
|
|
529
529
|
@end
|
|
530
530
|
|
|
531
|
-
/*************************************************************************************************/
|
|
532
|
-
|
|
533
|
-
/*!
|
|
534
|
-
@brief Encapsulates contextual data for a single captured web request.
|
|
535
|
-
@property request The request associated with the web request event.
|
|
536
|
-
@property response The response returned by the server. Nil if no response was obtained.
|
|
537
|
-
@property responseBody Raw response body data (may be nil or truncated based on configuration).
|
|
538
|
-
@property error Transport or protocol error if the request failed. Nil on success.
|
|
539
|
-
*/
|
|
540
|
-
|
|
541
|
-
@interface DTXHttpRequestEventContext : NSObject
|
|
542
|
-
|
|
543
|
-
@property (nonatomic, strong, readonly, nonnull) NSURLRequest *request;
|
|
544
|
-
@property (nonatomic, strong, readonly, nullable) NSURLResponse *response;
|
|
545
|
-
@property (nonatomic, strong, readonly, nullable) NSData *responseBody;
|
|
546
|
-
@property (nonatomic, strong, readonly, nullable) NSError *error;
|
|
547
|
-
|
|
548
|
-
/**
|
|
549
|
-
@brief Designated initializer.
|
|
550
|
-
|
|
551
|
-
@param request The NSURLRequest associated with the event.
|
|
552
|
-
@param response The NSURLResponse (if available) or nil.
|
|
553
|
-
@param responseBody The raw body payload (if available) or nil.
|
|
554
|
-
@param error The error encountered (nil for successful responses).
|
|
555
|
-
*/
|
|
556
|
-
- (instancetype _Nonnull)initWithRequest:(NSURLRequest *_Nonnull)request
|
|
557
|
-
response:(NSURLResponse * _Nullable)response
|
|
558
|
-
responseBody:(NSData * _Nullable)responseBody
|
|
559
|
-
error:(NSError * _Nullable)error;
|
|
560
|
-
|
|
561
|
-
/// Unavailable. Use the designated initializer.
|
|
562
|
-
- (instancetype _Nonnull)init NS_UNAVAILABLE;
|
|
563
|
-
|
|
564
|
-
@end
|
|
565
|
-
|
|
566
|
-
/*************************************************************************************************/
|
|
567
531
|
/*!
|
|
568
532
|
@brief Provides the ability to manually create custom events.
|
|
569
533
|
|
|
@@ -638,6 +602,59 @@ typedef NS_ENUM(int, DTX_StatusCode) {
|
|
|
638
602
|
- (DTXSessionPropertyEventData* _Nonnull)addSessionProperty:(NSString* _Nonnull)property value:(id _Nullable)value;
|
|
639
603
|
|
|
640
604
|
@end
|
|
605
|
+
/*************************************************************************************************/
|
|
606
|
+
|
|
607
|
+
/*!
|
|
608
|
+
@brief Encapsulates contextual data for a single captured web request.
|
|
609
|
+
@property request The request associated with the web request event.
|
|
610
|
+
@property response The response returned by the server. Nil if no response was obtained.
|
|
611
|
+
@property responseBody Raw response body data (may be nil or truncated based on configuration).
|
|
612
|
+
@property error Transport or protocol error if the request failed. Nil on success.
|
|
613
|
+
*/
|
|
614
|
+
|
|
615
|
+
@interface DTXHttpRequestEventContext : NSObject
|
|
616
|
+
|
|
617
|
+
@property (nonatomic, strong, readonly, nonnull) NSURLRequest *request;
|
|
618
|
+
@property (nonatomic, strong, readonly, nullable) NSURLResponse *response;
|
|
619
|
+
@property (nonatomic, strong, readonly, nullable) NSData *responseBody;
|
|
620
|
+
@property (nonatomic, strong, readonly, nullable) NSError *error;
|
|
621
|
+
|
|
622
|
+
/**
|
|
623
|
+
@brief Designated initializer.
|
|
624
|
+
|
|
625
|
+
@param request The NSURLRequest associated with the event.
|
|
626
|
+
@param response The NSURLResponse (if available) or nil.
|
|
627
|
+
@param responseBody The raw body payload (if available) or nil.
|
|
628
|
+
@param error The error encountered (nil for successful responses).
|
|
629
|
+
*/
|
|
630
|
+
- (instancetype _Nonnull)initWithRequest:(NSURLRequest *_Nonnull)request
|
|
631
|
+
response:(NSURLResponse * _Nullable)response
|
|
632
|
+
responseBody:(NSData * _Nullable)responseBody
|
|
633
|
+
error:(NSError * _Nullable)error;
|
|
634
|
+
|
|
635
|
+
/// Unavailable. Use the designated initializer.
|
|
636
|
+
- (instancetype _Nonnull)init NS_UNAVAILABLE;
|
|
637
|
+
|
|
638
|
+
@end
|
|
639
|
+
/*************************************************************************************************/
|
|
640
|
+
|
|
641
|
+
/*!
|
|
642
|
+
@brief Encapsulates W3C trace context headers for distributed tracing.
|
|
643
|
+
@discussion This object contains the traceparent and tracestate headers as defined by the W3C Trace Context specification.
|
|
644
|
+
Use these values to propagate trace context to downstream services by adding them as HTTP headers to outgoing requests.
|
|
645
|
+
@property traceparent The W3C traceparent header value identifying the request as part of a distributed trace.
|
|
646
|
+
@property tracestate The W3C tracestate header value containing vendor-specific trace information.
|
|
647
|
+
@seealso https://www.w3.org/TR/trace-context
|
|
648
|
+
*/
|
|
649
|
+
|
|
650
|
+
@interface DTXTraceContext : NSObject
|
|
651
|
+
|
|
652
|
+
@property (nonatomic, strong, readonly, nonnull) NSString *traceparent;
|
|
653
|
+
@property (nonatomic, strong, readonly, nonnull) NSString *tracestate;
|
|
654
|
+
|
|
655
|
+
@end
|
|
656
|
+
|
|
657
|
+
/*************************************************************************************************/
|
|
641
658
|
|
|
642
659
|
/*!
|
|
643
660
|
@brief DTXUserPrivacyOptions protocol should be implemented by objects passed to applyUserPrivacyOptions:completion: method.
|
|
@@ -991,8 +1008,7 @@ When the user optin feature is not used:
|
|
|
991
1008
|
With sendBizEvent, you can report a business event. These standalone events are being sent detached from user actions or sessions.
|
|
992
1009
|
The 'dt' key, as well as all 'dt.' prefixed keys are considered reserved by Dynatrace and will be stripped from the passed in attributes.
|
|
993
1010
|
Note: Business events are only supported on Dynatrace SaaS deployments currently.
|
|
994
|
-
https://
|
|
995
|
-
|
|
1011
|
+
https://docs.dynatrace.com/docs/observe/business-observability/bo-events-capturing#report-business-event-rum
|
|
996
1012
|
@param type type of the event being sent
|
|
997
1013
|
@param attributes dictionary of attributes being attached to the sent event
|
|
998
1014
|
*/
|
|
@@ -1019,7 +1035,26 @@ When the user optin feature is not used:
|
|
|
1019
1035
|
+ (void)sendEvent:(DTXEventData* _Nullable)data;
|
|
1020
1036
|
|
|
1021
1037
|
/*!
|
|
1022
|
-
* @brief
|
|
1038
|
+
* @brief Generates W3C trace context headers for distributed tracing.
|
|
1039
|
+
*
|
|
1040
|
+
* Creates a new trace context or enriches an existing one with Dynatrace-specific data. The returned object
|
|
1041
|
+
* contains both `traceparent` and `tracestate` headers that should be added to outgoing HTTP requests.
|
|
1042
|
+
*
|
|
1043
|
+
* Returns `nil` when:
|
|
1044
|
+
* - Capture is off (agent is not running)
|
|
1045
|
+
* - Privacy settings prevent web request tagging (data collection level doesn't permit tagging)
|
|
1046
|
+
* - Traffic control has disabled the current session
|
|
1047
|
+
* - The provided `traceparent` is invalid or the agent cannot build a complete trace context
|
|
1048
|
+
*
|
|
1049
|
+
* @seealso https://www.w3.org/TR/trace-context
|
|
1050
|
+
* @param traceparent The W3C `traceparent` header value identifying the web request as part of a trace, or `nil` to generate a new trace
|
|
1051
|
+
* @param tracestate The existing W3C `tracestate` header value of the request, or `nil` if no other tracing vendor is used
|
|
1052
|
+
* @return A `DTXTraceContext` object containing both `traceparent` and `tracestate` header values, or `nil` if the trace context cannot be created.
|
|
1053
|
+
*/
|
|
1054
|
+
+ (DTXTraceContext* _Nullable)generateTraceContext:(NSString* _Nullable)traceparent tracestate:(NSString* _Nullable)tracestate;
|
|
1055
|
+
|
|
1056
|
+
/*!
|
|
1057
|
+
* @brief Sends a web request event with the fields set in the data object. Use the data object to add data to the request event.
|
|
1023
1058
|
*
|
|
1024
1059
|
* The keys of the fields added via addEventProperty() have to be prefixed with `event_properties.` in order to be handled by the agent. All other fields will be dropped.
|
|
1025
1060
|
*
|
|
@@ -1094,6 +1129,15 @@ When the user optin feature is not used:
|
|
|
1094
1129
|
*/
|
|
1095
1130
|
+ (void)sendSessionPropertyEvent:(DTXSessionPropertyEventData* _Nullable)data;
|
|
1096
1131
|
|
|
1132
|
+
/*!
|
|
1133
|
+
* @brief Set the URLSession used by the agent for network requests.
|
|
1134
|
+
*
|
|
1135
|
+
* Note: This feature is currently only supported for Real User Monitoring powered by Grail on Dynatrace SaaS deployments.
|
|
1136
|
+
*
|
|
1137
|
+
* @param urlSession new URLSession to be used by the agent for network requests.
|
|
1138
|
+
*/
|
|
1139
|
+
+ (void)setURLSession:(NSURLSession* _Nonnull)urlSession;
|
|
1140
|
+
|
|
1097
1141
|
@end
|
|
1098
1142
|
#endif
|
|
1099
1143
|
|
|
@@ -1330,7 +1374,7 @@ extern NSString *_Nonnull const kDTXDetectRageTaps;
|
|
|
1330
1374
|
@const kDTXInstrumentFrameworks
|
|
1331
1375
|
Flag to force the agent to also look for viewControllers inside the frameworks linked with the application
|
|
1332
1376
|
*/
|
|
1333
|
-
extern NSString *_Nonnull const kDTXInstrumentFrameworks;
|
|
1377
|
+
extern NSString *_Nonnull const kDTXInstrumentFrameworks __deprecated_msg("Deprecated as of version 8.331 with no replacement, do not use this flag anymore, it will be ignored.");
|
|
1334
1378
|
/*!
|
|
1335
1379
|
@const kDTXUIActionNamePrivacy
|
|
1336
1380
|
If set to true, a label or accessibility identifier of a view will be replaced by the view class name when reporting a touch event.
|
package/files/iOS/Dynatrace.xcframework/tvos-arm64_x86_64-simulator/Dynatrace.framework/Info.plist
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
</data>
|
|
11
11
|
<key>Headers/Dynatrace.h</key>
|
|
12
12
|
<data>
|
|
13
|
-
|
|
13
|
+
zdJ4gO+nNm1T0/bim/GsNi2fDX8=
|
|
14
14
|
</data>
|
|
15
15
|
<key>Headers/DynatraceSwiftUI.h</key>
|
|
16
16
|
<data>
|
|
@@ -22,15 +22,15 @@
|
|
|
22
22
|
</data>
|
|
23
23
|
<key>Info.plist</key>
|
|
24
24
|
<data>
|
|
25
|
-
|
|
25
|
+
fA6JNTAVg2geIwB+VKZCN3WU0v8=
|
|
26
26
|
</data>
|
|
27
27
|
<key>Modules/Dynatrace.swiftmodule/Project/arm64-apple-tvos-simulator.swiftsourceinfo</key>
|
|
28
28
|
<data>
|
|
29
|
-
|
|
29
|
+
f5Op38ZsKmxeuUpv7e027e0uUGo=
|
|
30
30
|
</data>
|
|
31
31
|
<key>Modules/Dynatrace.swiftmodule/Project/x86_64-apple-tvos-simulator.swiftsourceinfo</key>
|
|
32
32
|
<data>
|
|
33
|
-
|
|
33
|
+
ATieVZa8ArTdqfYq6weOeYvpx8U=
|
|
34
34
|
</data>
|
|
35
35
|
<key>Modules/Dynatrace.swiftmodule/arm64-apple-tvos-simulator.abi.json</key>
|
|
36
36
|
<data>
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
</data>
|
|
51
51
|
<key>Modules/Dynatrace.swiftmodule/arm64-apple-tvos-simulator.swiftmodule</key>
|
|
52
52
|
<data>
|
|
53
|
-
|
|
53
|
+
S1ggVEK+FosfXRShB0uq6Yb2MHI=
|
|
54
54
|
</data>
|
|
55
55
|
<key>Modules/Dynatrace.swiftmodule/x86_64-apple-tvos-simulator.abi.json</key>
|
|
56
56
|
<data>
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
</data>
|
|
71
71
|
<key>Modules/Dynatrace.swiftmodule/x86_64-apple-tvos-simulator.swiftmodule</key>
|
|
72
72
|
<data>
|
|
73
|
-
|
|
73
|
+
iIPrA8+0D8ceQCaobyNIBU9r7tk=
|
|
74
74
|
</data>
|
|
75
75
|
<key>Modules/module.modulemap</key>
|
|
76
76
|
<data>
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
<dict>
|
|
95
95
|
<key>hash2</key>
|
|
96
96
|
<data>
|
|
97
|
-
|
|
97
|
+
ckC4PqSJvRxA91V5E+lHPbCp8BCMxDjlFwkdgEm9WA8=
|
|
98
98
|
</data>
|
|
99
99
|
</dict>
|
|
100
100
|
<key>Headers/DynatraceSwiftUI.h</key>
|
|
@@ -115,14 +115,14 @@
|
|
|
115
115
|
<dict>
|
|
116
116
|
<key>hash2</key>
|
|
117
117
|
<data>
|
|
118
|
-
|
|
118
|
+
4nrS4N0AlXlxGUj1w8SrBa6kVyfwD2PCa+Aq9UFNL70=
|
|
119
119
|
</data>
|
|
120
120
|
</dict>
|
|
121
121
|
<key>Modules/Dynatrace.swiftmodule/Project/x86_64-apple-tvos-simulator.swiftsourceinfo</key>
|
|
122
122
|
<dict>
|
|
123
123
|
<key>hash2</key>
|
|
124
124
|
<data>
|
|
125
|
-
|
|
125
|
+
EEkSXg+mHxcbYHFlCIfFDxlt8SEYsyj3y9ieCQ3HTYM=
|
|
126
126
|
</data>
|
|
127
127
|
</dict>
|
|
128
128
|
<key>Modules/Dynatrace.swiftmodule/arm64-apple-tvos-simulator.abi.json</key>
|
|
@@ -157,7 +157,7 @@
|
|
|
157
157
|
<dict>
|
|
158
158
|
<key>hash2</key>
|
|
159
159
|
<data>
|
|
160
|
-
|
|
160
|
+
Mxy7Wvu0LJ+KGmRFw5+svn6nF65NG8/JVlpb3Tda63U=
|
|
161
161
|
</data>
|
|
162
162
|
</dict>
|
|
163
163
|
<key>Modules/Dynatrace.swiftmodule/x86_64-apple-tvos-simulator.abi.json</key>
|
|
@@ -192,7 +192,7 @@
|
|
|
192
192
|
<dict>
|
|
193
193
|
<key>hash2</key>
|
|
194
194
|
<data>
|
|
195
|
-
|
|
195
|
+
LRodieQe0FU53kkSPlW4gVqkTzIv7IBukJqqlW+1SQo=
|
|
196
196
|
</data>
|
|
197
197
|
</dict>
|
|
198
198
|
<key>Modules/module.modulemap</key>
|
package/files/plugin.gradle
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynatrace/cordova-plugin",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.333.1",
|
|
4
4
|
"description": "This plugin gives you the ability to use the Dynatrace instrumentation in your hybrid application (Cordova, Ionic, ..). It uses the Mobile Agent, the JavaScript Agent. The Mobile Agent will give you all device specific values containing lifecycle information and the Javascript Agent will allow you to manually instrument your JavaScript/TypeScript code out of the box (Typescript definitions included). The JavaScript Agent will cover the network calls and will automatically detect them.",
|
|
5
5
|
"cordova": {
|
|
6
6
|
"id": "@dynatrace/cordova-plugin",
|
|
@@ -40,23 +40,24 @@
|
|
|
40
40
|
"homepage": "https://www.dynatrace.com/",
|
|
41
41
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"axios": "^1.13.
|
|
43
|
+
"axios": "^1.13.6",
|
|
44
44
|
"jsdom": "^27.0.0",
|
|
45
45
|
"plist": "^3.1.0"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
+
"@stylistic/eslint-plugin": "^5.7.1",
|
|
48
49
|
"@types/jest": "^29.2.0",
|
|
49
50
|
"@types/jsdom": "^21.1.7",
|
|
50
51
|
"@types/mock-fs": "^4.13.1",
|
|
51
52
|
"@types/node": "^18.19.71",
|
|
52
53
|
"@types/plist": "^3.0.2",
|
|
53
54
|
"@types/shelljs": "^0.8.9",
|
|
54
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
55
|
-
"@typescript-eslint/parser": "^
|
|
56
|
-
"eslint": "^
|
|
55
|
+
"@typescript-eslint/eslint-plugin": "^8.54.0",
|
|
56
|
+
"@typescript-eslint/parser": "^8.54.0",
|
|
57
|
+
"eslint": "^9.39.2",
|
|
57
58
|
"eslint-config-prettier": "^8.5.0",
|
|
58
59
|
"eslint-plugin-import": "^2.25.4",
|
|
59
|
-
"eslint-plugin-jsdoc": "^
|
|
60
|
+
"eslint-plugin-jsdoc": "^62.5.0",
|
|
60
61
|
"eslint-plugin-prefer-arrow": "^1.2.3",
|
|
61
62
|
"eslint-plugin-unicorn": "^41.0.1",
|
|
62
63
|
"husky": "^9.1.7",
|
|
@@ -68,7 +69,8 @@
|
|
|
68
69
|
"shelljs": "^0.8.4",
|
|
69
70
|
"ts-jest": "^29.0.3",
|
|
70
71
|
"ts-node": "^10.2.1",
|
|
71
|
-
"typescript": "^4.8.4"
|
|
72
|
+
"typescript": "^4.8.4",
|
|
73
|
+
"typescript-eslint": "^8.54.0"
|
|
72
74
|
},
|
|
73
75
|
"files": [
|
|
74
76
|
"assets/*",
|
|
@@ -81,7 +83,10 @@
|
|
|
81
83
|
"scripts/*",
|
|
82
84
|
"model/*",
|
|
83
85
|
"typings/main.d.ts",
|
|
84
|
-
"package.json"
|
|
86
|
+
"package.json",
|
|
87
|
+
"ios/*",
|
|
88
|
+
"Package.swift",
|
|
89
|
+
"Package.resolved"
|
|
85
90
|
],
|
|
86
91
|
"jest-junit": {
|
|
87
92
|
"suiteName": "jest tests",
|
package/plugin.xml
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
|
|
4
4
|
id="@dynatrace/cordova-plugin"
|
|
5
|
-
version="2.
|
|
5
|
+
version="2.333.1">
|
|
6
6
|
<name>Dynatrace</name>
|
|
7
7
|
<description>Dynatrace Cordova Plugin</description>
|
|
8
8
|
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
<source-file src="other/DynatraceCordovaPlugin.m"/>
|
|
42
42
|
</platform>
|
|
43
43
|
<platform name="android">
|
|
44
|
-
<framework src="com.dynatrace.agent:agent-android:8.
|
|
44
|
+
<framework src="com.dynatrace.agent:agent-android:8.333.1.1006" />
|
|
45
45
|
<source-file src="other/DynatraceCordovaPlugin.java" target-dir="src/com/dynatrace/cordova/plugin" />
|
|
46
46
|
|
|
47
47
|
<config-file target="config.xml" parent="/*">
|
package/scripts/InstrumentCap.js
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var InstallHelper_1 = require("./helpers/InstallHelper");
|
|
3
4
|
var InstrumentHelper_1 = require("./helpers/InstrumentHelper");
|
|
4
5
|
module.exports = (function (context) { return new Promise(function (resolve) {
|
|
5
6
|
(0, InstrumentHelper_1.instrument)(process).then(function () {
|
|
6
|
-
|
|
7
|
+
(0, InstallHelper_1.replacePackageSwiftWithOriginal)().then(function () {
|
|
8
|
+
(0, InstallHelper_1.moveIosFilesForSPM)().then(function () {
|
|
9
|
+
resolve('');
|
|
10
|
+
});
|
|
11
|
+
});
|
|
7
12
|
});
|
|
8
13
|
}); })();
|
|
@@ -36,7 +36,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.isOptOut = exports.parsedNpmConfig = exports.parsedCapPackageJson = exports.parsedPluginPackageJson = exports.parsedApplicationPackageJson = exports.removeScriptHookAndDeps = exports.addScriptHook = exports.
|
|
39
|
+
exports.moveIosFilesForSPM = exports.replacePackageSwiftWithOriginal = exports.isOptOut = exports.parsedNpmConfig = exports.parsedCapPackageJson = exports.parsedPluginPackageJson = exports.parsedApplicationPackageJson = exports.removeScriptHookAndDeps = exports.addScriptHook = exports.removePListModification = exports.removeGradleModification = exports.modifyPackageJsonCap = exports.CAP_HOOK = exports.IONIC_HOOK = void 0;
|
|
40
40
|
var path_1 = require("path");
|
|
41
41
|
var fs_1 = require("fs");
|
|
42
42
|
var Android_1 = require("../Android");
|
|
@@ -75,14 +75,9 @@ var modifyPackageJsonCap = function (install, isOptOut, path) { return __awaiter
|
|
|
75
75
|
if (packageJsonParsed.scripts === undefined) {
|
|
76
76
|
packageJsonParsed.scripts = {};
|
|
77
77
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
delete packageJsonParsed.scripts[exports.IONIC_HOOK];
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
packageJsonParsed = (0, exports.addScriptHook)(packageJsonParsed, exports.IONIC_HOOK, capHookValue);
|
|
78
|
+
packageJsonParsed = (0, exports.addScriptHook)(packageJsonParsed, exports.CAP_HOOK, capHookValue);
|
|
79
|
+
if (packageJsonParsed.scripts[exports.IONIC_HOOK]) {
|
|
80
|
+
delete packageJsonParsed.scripts[exports.IONIC_HOOK];
|
|
86
81
|
}
|
|
87
82
|
}
|
|
88
83
|
else {
|
|
@@ -167,11 +162,6 @@ var removePListModification = function () { return __awaiter(void 0, void 0, voi
|
|
|
167
162
|
});
|
|
168
163
|
}); };
|
|
169
164
|
exports.removePListModification = removePListModification;
|
|
170
|
-
var isCapVersionThreeOneOrHigher = function (packageJson) {
|
|
171
|
-
var version = packageJson.version;
|
|
172
|
-
return Number(version.substring(0, version.lastIndexOf('.'))) >= 3.1;
|
|
173
|
-
};
|
|
174
|
-
exports.isCapVersionThreeOneOrHigher = isCapVersionThreeOneOrHigher;
|
|
175
165
|
var addScriptHook = function (packageJsonParsed, hook, value) {
|
|
176
166
|
if (packageJsonParsed.scripts[hook] !== value) {
|
|
177
167
|
packageJsonParsed.scripts[hook] = value;
|
|
@@ -237,3 +227,69 @@ var isOptOut = function (parsedNpmConfig) {
|
|
|
237
227
|
return parsedNpmConfig !== undefined && parsedNpmConfig[NPM_CONFIG_OPT_OUT] !== undefined ? parsedNpmConfig[NPM_CONFIG_OPT_OUT] : false;
|
|
238
228
|
};
|
|
239
229
|
exports.isOptOut = isOptOut;
|
|
230
|
+
var replacePackageSwiftWithOriginal = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
231
|
+
var originalPackageSwiftContent, e_5;
|
|
232
|
+
return __generator(this, function (_a) {
|
|
233
|
+
switch (_a.label) {
|
|
234
|
+
case 0:
|
|
235
|
+
if (!(0, PathHelper_1.isCapacitorUsingSPM)()) return [3, 6];
|
|
236
|
+
if (!(0, fs_1.existsSync)((0, PathHelper_1.getIosPackageSwiftCapacitor)())) {
|
|
237
|
+
Logger_1.Logger.getInstance().logWarning('Cannot replace Package.swift file, as it does not exist in the DynatraceCordovaPlugin folder inside the iOS Platform.');
|
|
238
|
+
return [2];
|
|
239
|
+
}
|
|
240
|
+
_a.label = 1;
|
|
241
|
+
case 1:
|
|
242
|
+
_a.trys.push([1, 4, , 5]);
|
|
243
|
+
return [4, (0, FileHelper_1.readTextFromFile)((0, PathHelper_1.getOriginalPackageSwiftCapacitor)())];
|
|
244
|
+
case 2:
|
|
245
|
+
originalPackageSwiftContent = _a.sent();
|
|
246
|
+
return [4, (0, FileHelper_1.writeTextToFile)((0, PathHelper_1.getIosPackageSwiftCapacitor)(), originalPackageSwiftContent)];
|
|
247
|
+
case 3:
|
|
248
|
+
_a.sent();
|
|
249
|
+
return [3, 5];
|
|
250
|
+
case 4:
|
|
251
|
+
e_5 = _a.sent();
|
|
252
|
+
Logger_1.Logger.getInstance().logError("Unable to replace the Package.swift file! " + e_5);
|
|
253
|
+
return [3, 5];
|
|
254
|
+
case 5: return [3, 7];
|
|
255
|
+
case 6:
|
|
256
|
+
Logger_1.Logger.getInstance().logInfo('Capacitor iOS project is not using Swift Package Manager. There is no Package.swift file to replace.');
|
|
257
|
+
_a.label = 7;
|
|
258
|
+
case 7: return [2];
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
}); };
|
|
262
|
+
exports.replacePackageSwiftWithOriginal = replacePackageSwiftWithOriginal;
|
|
263
|
+
var moveIosFilesForSPM = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
264
|
+
var dirPath, e_6;
|
|
265
|
+
return __generator(this, function (_a) {
|
|
266
|
+
switch (_a.label) {
|
|
267
|
+
case 0:
|
|
268
|
+
if (!(0, PathHelper_1.isCapacitorUsingSPM)()) return [3, 7];
|
|
269
|
+
dirPath = (0, path_1.join)((0, PathHelper_1.getIosSPMCordovaPluginCapacitor)(), 'ios');
|
|
270
|
+
return [4, (0, FileHelper_1.createDirectory)(dirPath)];
|
|
271
|
+
case 1:
|
|
272
|
+
_a.sent();
|
|
273
|
+
_a.label = 2;
|
|
274
|
+
case 2:
|
|
275
|
+
_a.trys.push([2, 5, , 6]);
|
|
276
|
+
return [4, (0, FileHelper_1.renameFile)((0, path_1.join)((0, PathHelper_1.getIosSPMCordovaPluginCapacitor)(), PathHelper_1.FILE_IOS_HEADER), (0, path_1.join)(dirPath, PathHelper_1.FILE_IOS_HEADER))];
|
|
277
|
+
case 3:
|
|
278
|
+
_a.sent();
|
|
279
|
+
return [4, (0, FileHelper_1.renameFile)((0, path_1.join)((0, PathHelper_1.getIosSPMCordovaPluginCapacitor)(), PathHelper_1.FILE_IOS_IMPL), (0, path_1.join)(dirPath, PathHelper_1.FILE_IOS_IMPL))];
|
|
280
|
+
case 4:
|
|
281
|
+
_a.sent();
|
|
282
|
+
return [3, 6];
|
|
283
|
+
case 5:
|
|
284
|
+
e_6 = _a.sent();
|
|
285
|
+
Logger_1.Logger.getInstance().logError("Moving of iOS files for SPM failed! " + e_6);
|
|
286
|
+
return [3, 6];
|
|
287
|
+
case 6: return [3, 8];
|
|
288
|
+
case 7:
|
|
289
|
+
Logger_1.Logger.getInstance().logInfo('Capacitor iOS project is not using Swift Package Manager. There are no iOS files to move.');
|
|
290
|
+
_a.label = 8;
|
|
291
|
+
case 8: return [2];
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
}); };
|
|
295
|
+
exports.moveIosFilesForSPM = moveIosFilesForSPM;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isCapacitorApp = exports.getCapacitorCookieProxyPath = exports.getCapacitorConfig = exports.getCapCliPackage = exports.getIosAssetsPathCapacitor = exports.getAndroidAssetsPathCapacitor = exports.getIosPlistPathCapacitor = exports.getAndroidPathCapacitor = exports.getIosPathCapacitor = exports.getDynatracePluginGradleFile = exports.getDynatraceGradleFile = exports.getLogPath = exports.getCurrentLogPath = exports.getCookieProxyPath = exports.getSwallowApiPath = exports.getDownloadJSAgentPath = exports.getIOSAssetsPath = exports.getAndroidAssetsPath = exports.getConfigFilePath = exports.getDefaultConfig = exports.getAndroidGradleVersionNewer = exports.getAndroidGradleVersion = exports.dynatraceConfigExists = exports.isIonic = exports.getIonicConfig = exports.getDoctorLogPath = exports.getAndroidGradleFile = exports.getPluginPath = exports.getPluginPackage = exports.getAndroidPath = exports.getIosPath = exports.getApplicationPackage = exports.getApplicationPath = exports.setRoot = exports.FILE_CAPACITOR_COOKIE_PROXY = exports.FILE_COOKIE_PROXY = exports.FILE_SWALLOW_API = exports.FILE_JSAGENT = exports.FOLDER_ASSETS = void 0;
|
|
3
|
+
exports.getOriginalPackageSwiftCapacitor = exports.getIosPackageSwiftCapacitor = exports.getIosSPMCordovaPluginCapacitor = exports.isCapacitorUsingSPM = exports.isCapacitorApp = exports.getCapacitorCookieProxyPath = exports.getCapacitorConfig = exports.getCapCliPackage = exports.getIosAssetsPathCapacitor = exports.getAndroidAssetsPathCapacitor = exports.getIosPlistPathCapacitor = exports.getAndroidPathCapacitor = exports.getIosPathCapacitor = exports.getDynatracePluginGradleFile = exports.getDynatraceGradleFile = exports.getLogPath = exports.getCurrentLogPath = exports.getCookieProxyPath = exports.getSwallowApiPath = exports.getDownloadJSAgentPath = exports.getIOSAssetsPath = exports.getAndroidAssetsPath = exports.getConfigFilePath = exports.getDefaultConfig = exports.getAndroidGradleVersionNewer = exports.getAndroidGradleVersion = exports.dynatraceConfigExists = exports.isIonic = exports.getIonicConfig = exports.getDoctorLogPath = exports.getAndroidGradleFile = exports.getPluginPath = exports.getPluginPackage = exports.getAndroidPath = exports.getIosPath = exports.getApplicationPackage = exports.getApplicationPath = exports.setRoot = exports.FILE_IOS_IMPL = exports.FILE_IOS_HEADER = exports.FILE_CAPACITOR_COOKIE_PROXY = exports.FILE_COOKIE_PROXY = exports.FILE_SWALLOW_API = exports.FILE_JSAGENT = exports.FOLDER_ASSETS = void 0;
|
|
4
4
|
var path_1 = require("path");
|
|
5
5
|
var fs_1 = require("fs");
|
|
6
6
|
var FOLDER_PLATFORMS = 'platforms';
|
|
@@ -11,15 +11,19 @@ var FOLDER_FILES = 'files';
|
|
|
11
11
|
var FOLDER_LOGS = 'logs';
|
|
12
12
|
var FOLDER_ANDROID_APP = 'app';
|
|
13
13
|
var FOLDER_NODE_MODULES = 'node_modules';
|
|
14
|
+
var FOLDER_CAP_SPM = 'CapApp-SPM';
|
|
14
15
|
var FILE_PACKAGE = 'package.json';
|
|
15
16
|
var FILE_CONFIG = 'dynatrace.config.js';
|
|
16
17
|
var FILE_CURRENT_LOG = 'currentLog.txt';
|
|
17
18
|
var FILE_CAPACITOR_CONFIG_TS = (0, path_1.join)(__dirname, '..', '..', '..', '..', '..', 'capacitor.config.ts');
|
|
18
19
|
var FILE_CAPACITOR_CONFIG_JSON = (0, path_1.join)(__dirname, '..', '..', '..', '..', '..', 'capacitor.config.json');
|
|
20
|
+
var FILE_PACKAGE_SWIFT_SPM = 'Package.swift';
|
|
19
21
|
exports.FILE_JSAGENT = 'dtAgent.js';
|
|
20
22
|
exports.FILE_SWALLOW_API = 'dtrum-swallow-api.js';
|
|
21
23
|
exports.FILE_COOKIE_PROXY = 'dt-cookie-proxy.js';
|
|
22
24
|
exports.FILE_CAPACITOR_COOKIE_PROXY = 'dt-cookie-proxy-cap.js';
|
|
25
|
+
exports.FILE_IOS_HEADER = 'DynatraceCordovaPlugin.h';
|
|
26
|
+
exports.FILE_IOS_IMPL = 'DynatraceCordovaPlugin.m';
|
|
23
27
|
var rootPath = __dirname;
|
|
24
28
|
var setRoot = function (newRoot) {
|
|
25
29
|
rootPath = (0, path_1.resolve)(newRoot);
|
|
@@ -109,6 +113,13 @@ var getAndroidPathCapacitor = function () { return (0, path_1.join)(getApplicati
|
|
|
109
113
|
exports.getAndroidPathCapacitor = getAndroidPathCapacitor;
|
|
110
114
|
var getIosPlistPathCapacitor = function () { return (0, path_1.join)(getIosPathCapacitor(), 'App', 'Info.plist'); };
|
|
111
115
|
exports.getIosPlistPathCapacitor = getIosPlistPathCapacitor;
|
|
116
|
+
var getIosSPMCapacitor = function () { return (0, path_1.join)(getIosPathCapacitor(), FOLDER_CAP_SPM); };
|
|
117
|
+
var getIosSPMCordovaPluginCapacitor = function () { return (0, path_1.join)(getIosPathCapacitor(), '..', 'capacitor-cordova-ios-plugins', 'sources', 'DynatraceCordovaPlugin'); };
|
|
118
|
+
exports.getIosSPMCordovaPluginCapacitor = getIosSPMCordovaPluginCapacitor;
|
|
119
|
+
var getIosPackageSwiftCapacitor = function () { return (0, path_1.join)(getIosSPMCordovaPluginCapacitor(), FILE_PACKAGE_SWIFT_SPM); };
|
|
120
|
+
exports.getIosPackageSwiftCapacitor = getIosPackageSwiftCapacitor;
|
|
121
|
+
var getOriginalPackageSwiftCapacitor = function () { return (0, path_1.join)(getApplicationPath(), FOLDER_NODE_MODULES, '@dynatrace', 'cordova-plugin', FILE_PACKAGE_SWIFT_SPM); };
|
|
122
|
+
exports.getOriginalPackageSwiftCapacitor = getOriginalPackageSwiftCapacitor;
|
|
112
123
|
var getAndroidAssetsPathCapacitor = function () {
|
|
113
124
|
if ((0, fs_1.existsSync)((0, path_1.join)(getAndroidPathCapacitor(), FOLDER_ANDROID_APP, 'src', 'main', exports.FOLDER_ASSETS, 'public'))) {
|
|
114
125
|
return (0, path_1.join)(getAndroidPathCapacitor(), FOLDER_ANDROID_APP, 'src', 'main', exports.FOLDER_ASSETS, 'public');
|
|
@@ -141,3 +152,7 @@ exports.getCapacitorConfig = getCapacitorConfig;
|
|
|
141
152
|
var isCapacitorApp = function () { return (0, fs_1.existsSync)(getCapacitorConfig()) || (0, fs_1.existsSync)(getCapacitorConfig(true)); };
|
|
142
153
|
exports.isCapacitorApp = isCapacitorApp;
|
|
143
154
|
var isNpxCommand = function () { return (0, fs_1.existsSync)((0, path_1.join)(__dirname, '..', '..', '..', '..', '..', 'package.json')) && __dirname.includes('node_modules'); };
|
|
155
|
+
var isCapacitorUsingSPM = function () {
|
|
156
|
+
return (0, fs_1.existsSync)(getIosSPMCapacitor());
|
|
157
|
+
};
|
|
158
|
+
exports.isCapacitorUsingSPM = isCapacitorUsingSPM;
|