@luciq/react-native 19.4.0-44237-SNAPSHOT → 19.4.0-47504-SNAPSHOT
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 +0 -118
- package/RNLuciq.podspec +2 -6
- package/android/build.gradle +0 -25
- package/android/proguard-rules.txt +1 -1
- package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqAPMModule.java +12 -3
- package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqBugReportingModule.java +24 -28
- package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqCrashReportingModule.java +7 -18
- package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqFeatureRequestsModule.java +2 -1
- package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqNetworkLoggerModule.java +56 -29
- package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqReactnativeModule.java +47 -78
- package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqRepliesModule.java +16 -4
- package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqSessionReplayModule.java +16 -5
- package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqSurveysModule.java +15 -7
- package/android/src/main/java/ai/luciq/reactlibrary/utils/EventEmitterModule.java +7 -0
- package/dist/modules/BugReporting.js +3 -3
- package/dist/modules/Luciq.js +3 -2
- package/dist/modules/NetworkLogger.d.ts +0 -5
- package/dist/modules/NetworkLogger.js +9 -1
- package/dist/modules/Replies.js +1 -1
- package/dist/modules/Surveys.js +2 -2
- package/dist/native/NativeBugReporting.d.ts +4 -4
- package/dist/native/NativeCrashReporting.d.ts +2 -2
- package/dist/native/NativeLuciq.d.ts +3 -2
- package/dist/native/NativePackage.js +2 -25
- package/dist/native/NativeReplies.d.ts +1 -1
- package/dist/native/NativeSurveys.d.ts +2 -2
- package/dist/utils/Enums.js +1 -3
- package/dist/utils/FeatureFlags.d.ts +6 -0
- package/dist/utils/FeatureFlags.js +35 -0
- package/dist/utils/LuciqUtils.d.ts +1 -1
- package/dist/utils/LuciqUtils.js +9 -0
- package/dist/utils/XhrNetworkInterceptor.js +85 -53
- package/ios/RNLuciq/LuciqAPMBridge.h +5 -5
- package/ios/RNLuciq/{LuciqAPMBridge.mm → LuciqAPMBridge.m} +39 -48
- package/ios/RNLuciq/LuciqBugReportingBridge.h +6 -6
- package/ios/RNLuciq/LuciqBugReportingBridge.m +249 -0
- package/ios/RNLuciq/LuciqCrashReportingBridge.h +5 -16
- package/ios/RNLuciq/LuciqCrashReportingBridge.m +68 -0
- package/ios/RNLuciq/LuciqFeatureRequestsBridge.h +1 -1
- package/ios/RNLuciq/{LuciqFeatureRequestsBridge.mm → LuciqFeatureRequestsBridge.m} +16 -21
- package/ios/RNLuciq/LuciqNetworkLoggerBridge.h +30 -1
- package/ios/RNLuciq/{LuciqNetworkLoggerBridge.mm → LuciqNetworkLoggerBridge.m} +77 -46
- package/ios/RNLuciq/LuciqReactBridge.h +13 -13
- package/ios/RNLuciq/{LuciqReactBridge.mm → LuciqReactBridge.m} +34 -83
- package/ios/RNLuciq/LuciqRepliesBridge.h +3 -3
- package/ios/RNLuciq/LuciqRepliesBridge.m +80 -0
- package/ios/RNLuciq/LuciqSessionReplayBridge.h +5 -5
- package/ios/RNLuciq/{LuciqSessionReplayBridge.mm → LuciqSessionReplayBridge.m} +25 -35
- package/ios/RNLuciq/LuciqSurveysBridge.h +5 -5
- package/ios/RNLuciq/{LuciqSurveysBridge.mm → LuciqSurveysBridge.m} +35 -34
- package/package.json +1 -9
- package/scripts/get-github-app-token.sh +70 -0
- package/scripts/notify-github.sh +17 -8
- package/src/modules/BugReporting.ts +3 -3
- package/src/modules/Luciq.ts +4 -2
- package/src/modules/NetworkLogger.ts +26 -1
- package/src/modules/Replies.ts +1 -1
- package/src/modules/Surveys.ts +2 -2
- package/src/native/NativeBugReporting.ts +6 -3
- package/src/native/NativeCrashReporting.ts +2 -2
- package/src/native/NativeLuciq.ts +3 -2
- package/src/native/NativePackage.ts +2 -52
- package/src/native/NativeReplies.ts +1 -1
- package/src/native/NativeSurveys.ts +2 -2
- package/src/utils/Enums.ts +1 -4
- package/src/utils/FeatureFlags.ts +44 -0
- package/src/utils/LuciqUtils.ts +21 -1
- package/src/utils/XhrNetworkInterceptor.ts +128 -55
- package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqAPMBaseSpec.java +0 -9
- package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqBaseSpec.java +0 -33
- package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqBugReportingBaseSpec.java +0 -33
- package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqCrashReportingBaseSpec.java +0 -9
- package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqFeatureRequestsBaseSpec.java +0 -9
- package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqNetworkLoggerBaseSpec.java +0 -33
- package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqRepliesBaseSpec.java +0 -33
- package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqSessionReplayBaseSpec.java +0 -33
- package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqSurveysBaseSpec.java +0 -33
- package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqAPMBaseSpec.java +0 -11
- package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqBaseSpec.java +0 -22
- package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqBugReportingBaseSpec.java +0 -22
- package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqCrashReportingBaseSpec.java +0 -10
- package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqFeatureRequestsBaseSpec.java +0 -10
- package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqNetworkLoggerBaseSpec.java +0 -22
- package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqRepliesBaseSpec.java +0 -22
- package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqSessionReplayBaseSpec.java +0 -22
- package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqSurveysBaseSpec.java +0 -22
- package/dist/native/specs/NativeAPM.d.ts +0 -21
- package/dist/native/specs/NativeAPM.js +0 -2
- package/dist/native/specs/NativeBugReporting.d.ts +0 -29
- package/dist/native/specs/NativeBugReporting.js +0 -2
- package/dist/native/specs/NativeCrashReporting.d.ts +0 -12
- package/dist/native/specs/NativeCrashReporting.js +0 -2
- package/dist/native/specs/NativeFeatureRequests.d.ts +0 -8
- package/dist/native/specs/NativeFeatureRequests.js +0 -2
- package/dist/native/specs/NativeLuciq.d.ts +0 -80
- package/dist/native/specs/NativeLuciq.js +0 -2
- package/dist/native/specs/NativeNetworkLogger.d.ts +0 -16
- package/dist/native/specs/NativeNetworkLogger.js +0 -2
- package/dist/native/specs/NativeReplies.d.ts +0 -21
- package/dist/native/specs/NativeReplies.js +0 -2
- package/dist/native/specs/NativeSessionReplay.d.ts +0 -17
- package/dist/native/specs/NativeSessionReplay.js +0 -2
- package/dist/native/specs/NativeSurveys.d.ts +0 -18
- package/dist/native/specs/NativeSurveys.js +0 -2
- package/ios/RNLuciq/LuciqBugReportingBridge.mm +0 -234
- package/ios/RNLuciq/LuciqCrashReportingBridge.mm +0 -91
- package/ios/RNLuciq/LuciqRepliesBridge.mm +0 -86
- package/src/native/specs/NativeAPM.ts +0 -47
- package/src/native/specs/NativeBugReporting.ts +0 -53
- package/src/native/specs/NativeCrashReporting.ts +0 -23
- package/src/native/specs/NativeFeatureRequests.ts +0 -10
- package/src/native/specs/NativeLuciq.ts +0 -137
- package/src/native/specs/NativeNetworkLogger.ts +0 -31
- package/src/native/specs/NativeReplies.ts +0 -27
- package/src/native/specs/NativeSessionReplay.ts +0 -20
- package/src/native/specs/NativeSurveys.ts +0 -23
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
1
3
|
#import "LuciqAPMBridge.h"
|
|
2
4
|
#import <LuciqSDK/LCQAPM.h>
|
|
3
5
|
#import <asl.h>
|
|
@@ -7,13 +9,6 @@
|
|
|
7
9
|
#import <React/RCTUIManager.h>
|
|
8
10
|
#import "Util/LCQAPM+PrivateAPIs.h"
|
|
9
11
|
|
|
10
|
-
#ifdef RCT_NEW_ARCH_ENABLED
|
|
11
|
-
#import <RNLuciqSpec/RNLuciqSpec.h>
|
|
12
|
-
|
|
13
|
-
@interface LuciqAPMBridge () <NativeAPMSpec>
|
|
14
|
-
@end
|
|
15
|
-
#endif
|
|
16
|
-
|
|
17
12
|
@implementation LuciqAPMBridge
|
|
18
13
|
|
|
19
14
|
- (dispatch_queue_t)methodQueue {
|
|
@@ -31,91 +26,86 @@
|
|
|
31
26
|
|
|
32
27
|
RCT_EXPORT_MODULE(LCQAPM)
|
|
33
28
|
|
|
34
|
-
- (id)init
|
|
29
|
+
- (id) init
|
|
35
30
|
{
|
|
36
31
|
self = [super init];
|
|
37
32
|
return self;
|
|
38
33
|
}
|
|
39
34
|
|
|
40
|
-
|
|
35
|
+
// Pauses the current thread for 3 seconds.
|
|
36
|
+
RCT_EXPORT_METHOD(LCQSleep) {
|
|
41
37
|
[NSThread sleepForTimeInterval:3.0f];
|
|
42
38
|
}
|
|
43
39
|
|
|
40
|
+
// Enables or disables APM.
|
|
44
41
|
RCT_EXPORT_METHOD(setEnabled:(BOOL)isEnabled) {
|
|
45
42
|
LCQAPM.enabled = isEnabled;
|
|
46
43
|
}
|
|
47
44
|
|
|
45
|
+
// Determines either coldAppLaunch is enabled or not.
|
|
48
46
|
RCT_EXPORT_METHOD(setAppLaunchEnabled:(BOOL)isEnabled) {
|
|
49
47
|
LCQAPM.coldAppLaunchEnabled = isEnabled;
|
|
50
48
|
}
|
|
51
49
|
|
|
50
|
+
// This method is used to signal the end of the app launch process.
|
|
52
51
|
RCT_EXPORT_METHOD(endAppLaunch) {
|
|
53
52
|
[LCQAPM endAppLaunch];
|
|
54
53
|
}
|
|
55
54
|
|
|
55
|
+
// Controls whether automatic tracing of UI interactions is enabled or disabled within the SDK.
|
|
56
56
|
RCT_EXPORT_METHOD(setAutoUITraceEnabled:(BOOL)isEnabled) {
|
|
57
57
|
LCQAPM.autoUITraceEnabled = isEnabled;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
// Starts a flow trace with the specified `name`,
|
|
61
|
+
// allowing the SDK to capture and analyze the flow of execution within the application.
|
|
62
|
+
RCT_EXPORT_METHOD(startFlow: (NSString *)name) {
|
|
61
63
|
[LCQAPM startFlowWithName:name];
|
|
62
64
|
}
|
|
63
65
|
|
|
64
|
-
|
|
66
|
+
// Ends a flow with the specified `name`.
|
|
67
|
+
RCT_EXPORT_METHOD(endFlow: (NSString *)name) {
|
|
65
68
|
[LCQAPM endFlowWithName:name];
|
|
66
69
|
}
|
|
67
70
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
+
|
|
72
|
+
// Sets a user defined attribute for the currently active flow.
|
|
73
|
+
RCT_EXPORT_METHOD(setFlowAttribute:(NSString *)name :(NSString *)key :(NSString *_Nullable)value) {
|
|
71
74
|
[LCQAPM setAttributeForFlowWithName:name key:key value:value];
|
|
72
75
|
}
|
|
73
76
|
|
|
77
|
+
// Starts a new `UITrace` with the provided `name` parameter,
|
|
78
|
+
// allowing the SDK to capture and analyze the UI components within the application.
|
|
74
79
|
RCT_EXPORT_METHOD(startUITrace:(NSString *)name) {
|
|
75
80
|
[LCQAPM startUITraceWithName:name];
|
|
76
81
|
}
|
|
77
82
|
|
|
83
|
+
// Terminates the currently active UI trace.
|
|
78
84
|
RCT_EXPORT_METHOD(endUITrace) {
|
|
79
85
|
[LCQAPM endUITrace];
|
|
80
86
|
}
|
|
81
87
|
|
|
88
|
+
// Enables or disables screen render.
|
|
82
89
|
RCT_EXPORT_METHOD(setScreenRenderingEnabled:(BOOL)isEnabled) {
|
|
83
90
|
LCQAPM.screenRenderingEnabled = isEnabled;
|
|
84
91
|
}
|
|
85
92
|
|
|
86
|
-
|
|
87
|
-
requestDuration:(double)requestDuration
|
|
88
|
-
requestHeaders:(NSString *)requestHeaders
|
|
89
|
-
requestBody:(NSString *)requestBody
|
|
90
|
-
requestBodySize:(double)requestBodySize
|
|
91
|
-
requestMethod:(NSString *)requestMethod
|
|
92
|
-
requestUrl:(NSString *)requestUrl
|
|
93
|
-
requestContentType:(NSString *)requestContentType
|
|
94
|
-
responseHeaders:(NSString *)responseHeaders
|
|
95
|
-
responseBody:(NSString * _Nullable)responseBody
|
|
96
|
-
responseBodySize:(double)responseBodySize
|
|
97
|
-
statusCode:(double)statusCode
|
|
98
|
-
responseContentType:(NSString *)responseContentType
|
|
99
|
-
errorDomain:(NSString *)errorDomain
|
|
100
|
-
w3cExternalTraceAttributes:(NSDictionary *)w3cExternalTraceAttributes
|
|
101
|
-
gqlQueryName:(NSString * _Nullable)gqlQueryName
|
|
102
|
-
serverErrorMessage:(NSString * _Nullable)serverErrorMessage) {
|
|
103
|
-
// Android-only; iOS no-op to satisfy unified spec.
|
|
104
|
-
}
|
|
105
|
-
|
|
93
|
+
// Syncs a custom span to the native SDK (currently logs only)
|
|
106
94
|
RCT_EXPORT_METHOD(syncCustomSpan:(NSString *)name
|
|
107
95
|
startTimestamp:(double)startTimestamp
|
|
108
96
|
endTimestamp:(double)endTimestamp
|
|
109
|
-
|
|
110
|
-
|
|
97
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
98
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
111
99
|
{
|
|
112
100
|
@try {
|
|
101
|
+
// Convert microseconds → seconds (NSDate uses seconds)
|
|
113
102
|
NSTimeInterval startSeconds = startTimestamp / 1e6;
|
|
114
103
|
NSTimeInterval endSeconds = endTimestamp / 1e6;
|
|
115
104
|
|
|
116
105
|
NSDate *startDate = [NSDate dateWithTimeIntervalSince1970:startSeconds];
|
|
117
106
|
NSDate *endDate = [NSDate dateWithTimeIntervalSince1970:endSeconds];
|
|
118
107
|
|
|
108
|
+
// Add completed span to APM
|
|
119
109
|
[LCQAPM addCompletedCustomSpanWithName:name
|
|
120
110
|
startDate:startDate
|
|
121
111
|
endDate:endDate];
|
|
@@ -123,14 +113,17 @@ RCT_EXPORT_METHOD(syncCustomSpan:(NSString *)name
|
|
|
123
113
|
resolve(@YES);
|
|
124
114
|
}
|
|
125
115
|
@catch (NSException *exception) {
|
|
126
|
-
reject(
|
|
127
|
-
|
|
128
|
-
|
|
116
|
+
reject(
|
|
117
|
+
@"SYNC_CUSTOM_SPAN_ERROR",
|
|
118
|
+
exception.reason ?: @"Failed to sync custom span",
|
|
119
|
+
nil
|
|
120
|
+
);
|
|
129
121
|
}
|
|
130
122
|
}
|
|
131
123
|
|
|
124
|
+
// Checks if custom spans feature is enabled
|
|
132
125
|
RCT_EXPORT_METHOD(isCustomSpanEnabled:(RCTPromiseResolveBlock)resolve
|
|
133
|
-
|
|
126
|
+
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
134
127
|
@try {
|
|
135
128
|
BOOL enabled = LCQAPM.customSpansEnabled;
|
|
136
129
|
resolve(@(enabled));
|
|
@@ -140,8 +133,9 @@ RCT_EXPORT_METHOD(isCustomSpanEnabled:(RCTPromiseResolveBlock)resolve
|
|
|
140
133
|
}
|
|
141
134
|
}
|
|
142
135
|
|
|
136
|
+
// Checks if APM is enabled
|
|
143
137
|
RCT_EXPORT_METHOD(isAPMEnabled:(RCTPromiseResolveBlock)resolve
|
|
144
|
-
|
|
138
|
+
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
145
139
|
@try {
|
|
146
140
|
BOOL enabled = LCQAPM.enabled;
|
|
147
141
|
resolve(@(enabled));
|
|
@@ -151,16 +145,13 @@ RCT_EXPORT_METHOD(isAPMEnabled:(RCTPromiseResolveBlock)resolve
|
|
|
151
145
|
}
|
|
152
146
|
}
|
|
153
147
|
|
|
154
|
-
|
|
155
|
-
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
156
|
-
(const facebook::react::ObjCTurboModule::InitParams &)params
|
|
157
|
-
{
|
|
158
|
-
return std::make_shared<facebook::react::NativeAPMSpecJSI>(params);
|
|
159
|
-
}
|
|
160
|
-
#endif
|
|
148
|
+
|
|
161
149
|
|
|
162
150
|
@synthesize description;
|
|
151
|
+
|
|
163
152
|
@synthesize hash;
|
|
153
|
+
|
|
164
154
|
@synthesize superclass;
|
|
165
155
|
|
|
166
156
|
@end
|
|
157
|
+
|
|
@@ -25,21 +25,21 @@
|
|
|
25
25
|
|
|
26
26
|
- (void)setOptions:(NSArray *)optionsArray;
|
|
27
27
|
|
|
28
|
-
- (void)setFloatingButtonEdge:(
|
|
28
|
+
- (void)setFloatingButtonEdge:(CGRectEdge)floatingButtonEdge withTopOffset:(double)floatingButtonOffsetFromTop;
|
|
29
29
|
|
|
30
|
-
- (void)setOnInvokeHandler;
|
|
30
|
+
- (void)setOnInvokeHandler:(RCTResponseSenderBlock)callBack;
|
|
31
31
|
|
|
32
|
-
- (void)setOnSDKDismissedHandler;
|
|
32
|
+
- (void)setOnSDKDismissedHandler:(RCTResponseSenderBlock)callBack;
|
|
33
33
|
|
|
34
34
|
- (void)setShakingThresholdForiPhone:(double)iPhoneShakingThreshold;
|
|
35
35
|
|
|
36
36
|
- (void)setShakingThresholdForiPad:(double)iPadShakingThreshold;
|
|
37
37
|
|
|
38
|
-
- (void)setExtendedBugReportMode:(
|
|
38
|
+
- (void)setExtendedBugReportMode:(LCQExtendedBugReportMode)extendedBugReportMode;
|
|
39
39
|
|
|
40
40
|
- (void)setReportTypes:(NSArray *)types;
|
|
41
41
|
|
|
42
|
-
- (void)show:(
|
|
42
|
+
- (void)show:(LCQBugReportingReportType)type options:(NSArray *)options;
|
|
43
43
|
|
|
44
44
|
- (void)setAutoScreenRecordingEnabled:(BOOL)enabled;
|
|
45
45
|
|
|
@@ -57,6 +57,6 @@
|
|
|
57
57
|
checked:(BOOL)checked
|
|
58
58
|
actionType:(id)actionType;
|
|
59
59
|
|
|
60
|
-
- (void)setProactiveReportingConfigurations:(BOOL)enabled
|
|
60
|
+
- (void)setProactiveReportingConfigurations:(BOOL)enabled gap:(NSNumber* )gap model:(NSNumber* )modal;
|
|
61
61
|
|
|
62
62
|
@end
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
//
|
|
2
|
+
// LuciqBugReportingBridge.m
|
|
3
|
+
// RNLuciq
|
|
4
|
+
//
|
|
5
|
+
// Created by Salma Ali on 7/30/19.
|
|
6
|
+
// Copyright © 2019 luciq. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#import "LuciqBugReportingBridge.h"
|
|
10
|
+
#import <LuciqSDK/LCQBugReporting.h>
|
|
11
|
+
#import <asl.h>
|
|
12
|
+
#import <React/RCTLog.h>
|
|
13
|
+
#import <os/log.h>
|
|
14
|
+
#import <React/RCTUIManager.h>
|
|
15
|
+
|
|
16
|
+
@implementation LuciqBugReportingBridge
|
|
17
|
+
|
|
18
|
+
- (dispatch_queue_t)methodQueue {
|
|
19
|
+
return dispatch_get_main_queue();
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
+ (BOOL)requiresMainQueueSetup
|
|
23
|
+
{
|
|
24
|
+
return NO;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
- (NSArray<NSString *> *)supportedEvents {
|
|
28
|
+
return @[
|
|
29
|
+
@"LCQpreInvocationHandler",
|
|
30
|
+
@"LCQpostInvocationHandler",
|
|
31
|
+
@"LCQDidSelectPromptOptionHandler",
|
|
32
|
+
];
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
RCT_EXPORT_MODULE(LCQBugReporting)
|
|
36
|
+
|
|
37
|
+
RCT_EXPORT_METHOD(setEnabled:(BOOL) isEnabled) {
|
|
38
|
+
LCQBugReporting.enabled = isEnabled;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
RCT_EXPORT_METHOD(setAutoScreenRecordingEnabled:(BOOL)enabled) {
|
|
42
|
+
LCQBugReporting.autoScreenRecordingEnabled = enabled;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
RCT_EXPORT_METHOD(setAutoScreenRecordingDuration:(CGFloat)duration) {
|
|
46
|
+
LCQBugReporting.autoScreenRecordingDuration = duration;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
RCT_EXPORT_METHOD(setOnInvokeHandler:(RCTResponseSenderBlock)callBack) {
|
|
50
|
+
if (callBack != nil) {
|
|
51
|
+
LCQBugReporting.willInvokeHandler = ^{
|
|
52
|
+
[self sendEventWithName:@"LCQpreInvocationHandler" body:nil];
|
|
53
|
+
};
|
|
54
|
+
} else {
|
|
55
|
+
LCQBugReporting.willInvokeHandler = nil;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
RCT_EXPORT_METHOD(setOnSDKDismissedHandler:(RCTResponseSenderBlock)callBack) {
|
|
60
|
+
if (callBack != nil) {
|
|
61
|
+
LCQBugReporting.didDismissHandler = ^(LCQDismissType dismissType, LCQReportCategory reportType) {
|
|
62
|
+
|
|
63
|
+
//parse dismiss type enum
|
|
64
|
+
NSString* dismissTypeString;
|
|
65
|
+
if (dismissType == LCQDismissTypeCancel) {
|
|
66
|
+
dismissTypeString = @"CANCEL";
|
|
67
|
+
} else if (dismissType == LCQDismissTypeSubmit) {
|
|
68
|
+
dismissTypeString = @"SUBMIT";
|
|
69
|
+
} else if (dismissType == LCQDismissTypeAddAttachment) {
|
|
70
|
+
dismissTypeString = @"ADD_ATTACHMENT";
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
//parse report type enum
|
|
74
|
+
NSString* reportTypeString;
|
|
75
|
+
if (reportType == LCQReportCategoryBug) {
|
|
76
|
+
reportTypeString = @"bug";
|
|
77
|
+
} else if (reportType == LCQReportCategoryFeedback) {
|
|
78
|
+
reportTypeString = @"feedback";
|
|
79
|
+
} else {
|
|
80
|
+
reportTypeString = @"other";
|
|
81
|
+
}
|
|
82
|
+
NSDictionary *result = @{ @"dismissType": dismissTypeString,
|
|
83
|
+
@"reportType": reportTypeString};
|
|
84
|
+
[self sendEventWithName:@"LCQpostInvocationHandler" body: result];
|
|
85
|
+
};
|
|
86
|
+
} else {
|
|
87
|
+
LCQBugReporting.didDismissHandler = nil;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
RCT_EXPORT_METHOD(setDidSelectPromptOptionHandler:(RCTResponseSenderBlock)callBack) {
|
|
92
|
+
if (callBack != nil) {
|
|
93
|
+
|
|
94
|
+
LCQBugReporting.didSelectPromptOptionHandler = ^(LCQPromptOption promptOption) {
|
|
95
|
+
|
|
96
|
+
NSString *promptOptionString;
|
|
97
|
+
if (promptOption == LCQPromptOptionBug) {
|
|
98
|
+
promptOptionString = @"bug";
|
|
99
|
+
} else if (promptOption == LCQBugReportingTypeFeedback) {
|
|
100
|
+
promptOptionString = @"feedback";
|
|
101
|
+
} else if (promptOption == LCQPromptOptionChat) {
|
|
102
|
+
promptOptionString = @"chat";
|
|
103
|
+
} else {
|
|
104
|
+
promptOptionString = @"none";
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
[self sendEventWithName:@"LCQDidSelectPromptOptionHandler" body:@{
|
|
108
|
+
@"promptOption": promptOptionString
|
|
109
|
+
}];
|
|
110
|
+
};
|
|
111
|
+
} else {
|
|
112
|
+
LCQBugReporting.didSelectPromptOptionHandler = nil;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
RCT_EXPORT_METHOD(setInvocationEvents:(NSArray*)invocationEventsArray) {
|
|
117
|
+
LCQInvocationEvent invocationEvents = 0;
|
|
118
|
+
for (NSNumber *boxedValue in invocationEventsArray) {
|
|
119
|
+
invocationEvents |= [boxedValue intValue];
|
|
120
|
+
}
|
|
121
|
+
LCQBugReporting.invocationEvents = invocationEvents;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
RCT_EXPORT_METHOD(setOptions:(NSArray*)invocationOptionsArray) {
|
|
125
|
+
LCQBugReportingOption invocationOptions = 0;
|
|
126
|
+
|
|
127
|
+
for (NSNumber *boxedValue in invocationOptionsArray) {
|
|
128
|
+
invocationOptions |= [boxedValue intValue];
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
LCQBugReporting.bugReportingOptions = invocationOptions;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
RCT_EXPORT_METHOD(setFloatingButtonEdge:(CGRectEdge)floatingButtonEdge withTopOffset:(double)floatingButtonOffsetFromTop) {
|
|
135
|
+
LCQBugReporting.floatingButtonEdge = floatingButtonEdge;
|
|
136
|
+
LCQBugReporting.floatingButtonTopOffset = floatingButtonOffsetFromTop;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
RCT_EXPORT_METHOD(setExtendedBugReportMode:(LCQExtendedBugReportMode)extendedBugReportMode) {
|
|
140
|
+
LCQBugReporting.extendedBugReportMode = extendedBugReportMode;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
RCT_EXPORT_METHOD(setEnabledAttachmentTypes:(BOOL)screenShot
|
|
144
|
+
extraScreenShot:(BOOL)extraScreenShot
|
|
145
|
+
galleryImage:(BOOL)galleryImage
|
|
146
|
+
screenRecording:(BOOL)screenRecording) {
|
|
147
|
+
LCQAttachmentType attachmentTypes = 0;
|
|
148
|
+
if(screenShot) {
|
|
149
|
+
attachmentTypes = LCQAttachmentTypeScreenShot;
|
|
150
|
+
}
|
|
151
|
+
if(extraScreenShot) {
|
|
152
|
+
attachmentTypes |= LCQAttachmentTypeExtraScreenShot;
|
|
153
|
+
}
|
|
154
|
+
if(galleryImage) {
|
|
155
|
+
attachmentTypes |= LCQAttachmentTypeGalleryImage;
|
|
156
|
+
}
|
|
157
|
+
if(screenRecording) {
|
|
158
|
+
attachmentTypes |= LCQAttachmentTypeScreenRecording;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
LCQBugReporting.enabledAttachmentTypes = attachmentTypes;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
RCT_EXPORT_METHOD(setViewHierarchyEnabled:(BOOL)viewHirearchyEnabled) {
|
|
165
|
+
LCQBugReporting.shouldCaptureViewHierarchy = viewHirearchyEnabled;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
RCT_EXPORT_METHOD(setVideoRecordingFloatingButtonPosition:(LCQPosition)position) {
|
|
169
|
+
LCQBugReporting.videoRecordingFloatingButtonPosition = position;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
RCT_EXPORT_METHOD(setReportTypes:(NSArray*) types ) {
|
|
173
|
+
LCQBugReportingReportType reportTypes = 0;
|
|
174
|
+
for (NSNumber *boxedValue in types) {
|
|
175
|
+
reportTypes |= [boxedValue intValue];
|
|
176
|
+
}
|
|
177
|
+
[LCQBugReporting setPromptOptionsEnabledReportTypes: reportTypes];
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
RCT_EXPORT_METHOD(show:(LCQBugReportingReportType)type options:(NSArray*) options) {
|
|
181
|
+
LCQBugReportingOption parsedOptions = 0;
|
|
182
|
+
for (NSNumber *boxedValue in options) {
|
|
183
|
+
parsedOptions |= [boxedValue intValue];
|
|
184
|
+
}
|
|
185
|
+
NSArray* args = @[@(type), @(parsedOptions)];
|
|
186
|
+
[[NSRunLoop mainRunLoop] performSelector:@selector(showBugReportingWithReportTypeAndOptionsHelper:) target:self argument:args order:0 modes:@[NSDefaultRunLoopMode]];
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
- (void) showBugReportingWithReportTypeAndOptionsHelper:(NSArray*)args {
|
|
190
|
+
LCQBugReportingReportType parsedreportType = [args[0] intValue];
|
|
191
|
+
LCQBugReportingOption parsedOptions = [args[1] intValue];
|
|
192
|
+
[LCQBugReporting showWithReportType:parsedreportType options:parsedOptions];
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
RCT_EXPORT_METHOD(setShakingThresholdForiPhone:(double)iPhoneShakingThreshold) {
|
|
196
|
+
LCQBugReporting.shakingThresholdForiPhone = iPhoneShakingThreshold;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
RCT_EXPORT_METHOD(setShakingThresholdForiPad:(double)iPadShakingThreshold) {
|
|
200
|
+
LCQBugReporting.shakingThresholdForiPad = iPadShakingThreshold;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
RCT_EXPORT_METHOD(setDisclaimerText:(NSString*)text) {
|
|
204
|
+
[LCQBugReporting setDisclaimerText:text];
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
RCT_EXPORT_METHOD(setCommentMinimumCharacterCount:(nonnull NSNumber *)limit reportTypes:(NSArray *)reportTypes) {
|
|
208
|
+
LCQBugReportingType parsedReportTypes = 0;
|
|
209
|
+
if (![reportTypes count]) {
|
|
210
|
+
parsedReportTypes = @(LCQBugReportingTypeBug).integerValue | @(LCQBugReportingTypeFeedback).integerValue | @(LCQBugReportingTypeQuestion).integerValue;
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
for (NSNumber *reportType in reportTypes) {
|
|
214
|
+
parsedReportTypes |= [reportType intValue];
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
[LCQBugReporting setCommentMinimumCharacterCount:[limit integerValue] forBugReportType:parsedReportTypes];
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
RCT_EXPORT_METHOD(addUserConsent:(NSString *)key
|
|
221
|
+
description:(NSString *)description
|
|
222
|
+
mandatory:(BOOL)mandatory
|
|
223
|
+
checked:(BOOL)checked
|
|
224
|
+
actionType:(id)actionType) {
|
|
225
|
+
LCQConsentAction mappedActionType = (LCQConsentAction)[actionType integerValue];
|
|
226
|
+
|
|
227
|
+
[LCQBugReporting addUserConsentWithKey:key
|
|
228
|
+
description:description
|
|
229
|
+
mandatory:mandatory
|
|
230
|
+
checked:checked
|
|
231
|
+
actionType:mappedActionType];
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
RCT_EXPORT_METHOD(setProactiveReportingConfigurations:(BOOL)enabled gap:(nonnull NSNumber* )gap model:(nonnull NSNumber* )modal) {
|
|
235
|
+
LCQProactiveReportingConfigurations *configurations = [[LCQProactiveReportingConfigurations alloc] init];
|
|
236
|
+
configurations.enabled = enabled; //Enable/disable
|
|
237
|
+
configurations.gapBetweenModals = gap; // Time in seconds
|
|
238
|
+
configurations.modalDelayAfterDetection = modal; // Time in seconds
|
|
239
|
+
[LCQBugReporting setProactiveReportingConfigurations:configurations];
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
@synthesize description;
|
|
244
|
+
|
|
245
|
+
@synthesize hash;
|
|
246
|
+
|
|
247
|
+
@synthesize superclass;
|
|
248
|
+
|
|
249
|
+
@end
|
|
@@ -9,21 +9,10 @@
|
|
|
9
9
|
|
|
10
10
|
@interface LuciqCrashReportingBridge : RCTEventEmitter <RCTBridgeModule>
|
|
11
11
|
|
|
12
|
-
- (void)setEnabled:(BOOL)isEnabled;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
- (void)sendHandledJSCrash:(NSDictionary * _Nonnull)data
|
|
19
|
-
userAttributes:(NSDictionary * _Nullable)userAttributes
|
|
20
|
-
fingerprint:(NSString * _Nullable)fingerprint
|
|
21
|
-
nonFatalExceptionLevel:(NSString * _Nullable)nonFatalExceptionLevel
|
|
22
|
-
resolve:(RCTPromiseResolveBlock _Nullable)resolve
|
|
23
|
-
reject:(RCTPromiseRejectBlock _Nullable)reject;
|
|
24
|
-
|
|
25
|
-
- (void)setNDKCrashesEnabled:(BOOL)isEnabled
|
|
26
|
-
resolve:(RCTPromiseResolveBlock _Nullable)resolve
|
|
27
|
-
reject:(RCTPromiseRejectBlock _Nullable)reject;
|
|
12
|
+
- (void)setEnabled:(BOOL) isEnabled;
|
|
13
|
+
- (void)sendJSCrash:(NSDictionary *_Nonnull )stackTrace resolver:(RCTPromiseResolveBlock _Nullable )resolve
|
|
14
|
+
rejecter:(RCTPromiseRejectBlock _Nullable )reject;
|
|
15
|
+
- (void)sendHandledJSCrash:(NSDictionary *_Nonnull)stackTrace userAttributes:(nullable NSDictionary *)userAttributes fingerprint:(nullable NSString *)fingerprint nonFatalExceptionLevel:(LCQNonFatalLevel) nonFatalExceptionLevel resolver:(RCTPromiseResolveBlock _Nullable )resolve
|
|
16
|
+
rejecter:(RCTPromiseRejectBlock _Nullable )reject;
|
|
28
17
|
|
|
29
18
|
@end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
#import "LuciqCrashReportingBridge.h"
|
|
2
|
+
#import "Util/LCQCrashReporting+CP.h"
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
@implementation LuciqCrashReportingBridge
|
|
6
|
+
|
|
7
|
+
- (dispatch_queue_t)methodQueue {
|
|
8
|
+
return dispatch_get_main_queue();
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
+ (BOOL)requiresMainQueueSetup
|
|
12
|
+
{
|
|
13
|
+
return NO;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
- (NSArray<NSString *> *)supportedEvents {
|
|
17
|
+
return @[
|
|
18
|
+
@"LCQSendHandledJSCrash",
|
|
19
|
+
@"LCQSendUnhandledJSCrash",
|
|
20
|
+
];
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
RCT_EXPORT_MODULE(LCQCrashReporting)
|
|
24
|
+
|
|
25
|
+
RCT_EXPORT_METHOD(setEnabled: (BOOL) isEnabled) {
|
|
26
|
+
LCQCrashReporting.enabled = isEnabled;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
RCT_EXPORT_METHOD(sendJSCrash:(NSDictionary *)stackTrace
|
|
30
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
31
|
+
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
32
|
+
|
|
33
|
+
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0ul);
|
|
34
|
+
dispatch_async(queue, ^{
|
|
35
|
+
[LCQCrashReporting cp_reportFatalCrashWithStackTrace:stackTrace];
|
|
36
|
+
resolve([NSNull null]);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
RCT_EXPORT_METHOD(sendHandledJSCrash: (NSDictionary *)stackTrace
|
|
41
|
+
userAttributes:(nullable NSDictionary *)userAttributes fingerprint:(nullable NSString *)fingerprint nonFatalExceptionLevel:(LCQNonFatalLevel)nonFatalExceptionLevel
|
|
42
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
43
|
+
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
44
|
+
|
|
45
|
+
if([fingerprint isKindOfClass:NSNull.class]){
|
|
46
|
+
fingerprint = nil;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if([userAttributes isKindOfClass:NSNull.class]){
|
|
50
|
+
userAttributes = nil;
|
|
51
|
+
}
|
|
52
|
+
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
|
|
53
|
+
dispatch_async(queue, ^{
|
|
54
|
+
[LCQCrashReporting cp_reportNonFatalCrashWithStackTrace:stackTrace level:nonFatalExceptionLevel groupingString:fingerprint userAttributes:userAttributes];
|
|
55
|
+
|
|
56
|
+
resolve([NSNull null]);
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
}
|
|
60
|
+
@synthesize description;
|
|
61
|
+
|
|
62
|
+
@synthesize hash;
|
|
63
|
+
|
|
64
|
+
@synthesize superclass;
|
|
65
|
+
|
|
66
|
+
@end
|
|
67
|
+
|
|
68
|
+
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
+------------------------------------------------------------------------+
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
|
-
- (void)setEmailFieldRequiredForFeatureRequests:(BOOL)isEmailFieldRequired
|
|
21
|
+
- (void)setEmailFieldRequiredForFeatureRequests:(BOOL)isEmailFieldRequired forAction:(NSArray *)actionTypesArray;
|
|
22
22
|
|
|
23
23
|
- (void)show;
|
|
24
24
|
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
//
|
|
2
|
+
// LuciqFeatureRequestsBridge.m
|
|
3
|
+
// RNLuciq
|
|
4
|
+
//
|
|
5
|
+
// Created by Salma Ali on 7/30/19.
|
|
6
|
+
// Copyright © 2019 luciq. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
1
9
|
#import "LuciqFeatureRequestsBridge.h"
|
|
2
10
|
#import <LuciqSDK/LCQFeatureRequests.h>
|
|
3
11
|
#import <asl.h>
|
|
@@ -6,13 +14,6 @@
|
|
|
6
14
|
#import <LuciqSDK/LCQTypes.h>
|
|
7
15
|
#import <React/RCTUIManager.h>
|
|
8
16
|
|
|
9
|
-
#ifdef RCT_NEW_ARCH_ENABLED
|
|
10
|
-
#import <RNLuciqSpec/RNLuciqSpec.h>
|
|
11
|
-
|
|
12
|
-
@interface LuciqFeatureRequestsBridge () <NativeFeatureRequestsSpec>
|
|
13
|
-
@end
|
|
14
|
-
#endif
|
|
15
|
-
|
|
16
17
|
@implementation LuciqFeatureRequestsBridge
|
|
17
18
|
|
|
18
19
|
- (dispatch_queue_t)methodQueue {
|
|
@@ -35,32 +36,26 @@ RCT_EXPORT_METHOD(show) {
|
|
|
35
36
|
}
|
|
36
37
|
|
|
37
38
|
RCT_EXPORT_METHOD(setEmailFieldRequiredForFeatureRequests:(BOOL)isEmailFieldRequired
|
|
38
|
-
|
|
39
|
+
forAction:(NSArray *)actionTypesArray) {
|
|
39
40
|
LCQAction actionTypes = 0;
|
|
40
41
|
|
|
41
|
-
for (
|
|
42
|
-
|
|
43
|
-
actionTypes |= [value intValue];
|
|
44
|
-
}
|
|
42
|
+
for (NSNumber *boxedValue in actionTypesArray) {
|
|
43
|
+
actionTypes |= [boxedValue intValue];
|
|
45
44
|
}
|
|
46
45
|
|
|
47
46
|
[LCQFeatureRequests setEmailFieldRequired:isEmailFieldRequired forAction:actionTypes];
|
|
48
47
|
}
|
|
49
48
|
|
|
50
|
-
RCT_EXPORT_METHOD(setEnabled:(BOOL)isEnabled) {
|
|
49
|
+
RCT_EXPORT_METHOD(setEnabled: (BOOL) isEnabled) {
|
|
51
50
|
LCQFeatureRequests.enabled = isEnabled;
|
|
52
51
|
}
|
|
53
52
|
|
|
54
|
-
#ifdef RCT_NEW_ARCH_ENABLED
|
|
55
|
-
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
56
|
-
(const facebook::react::ObjCTurboModule::InitParams &)params
|
|
57
|
-
{
|
|
58
|
-
return std::make_shared<facebook::react::NativeFeatureRequestsSpecJSI>(params);
|
|
59
|
-
}
|
|
60
|
-
#endif
|
|
61
|
-
|
|
62
53
|
@synthesize description;
|
|
54
|
+
|
|
63
55
|
@synthesize hash;
|
|
56
|
+
|
|
64
57
|
@synthesize superclass;
|
|
65
58
|
|
|
66
59
|
@end
|
|
60
|
+
|
|
61
|
+
|
|
@@ -2,9 +2,15 @@
|
|
|
2
2
|
#import <React/RCTEventEmitter.h>
|
|
3
3
|
#import <LuciqSDK/LCQTypes.h>
|
|
4
4
|
|
|
5
|
-
typedef void (^LCQURLRequestAsyncObfuscationCompletedHandler)(NSURLRequest * _Nonnull request);
|
|
5
|
+
typedef void (^ LCQURLRequestAsyncObfuscationCompletedHandler)(NSURLRequest * _Nonnull request);
|
|
6
6
|
typedef void (^LCQURLRequestResponseAsyncFilteringCompletedHandler)(BOOL keep);
|
|
7
7
|
|
|
8
|
+
typedef NS_ENUM(NSInteger, NetworkListenerType) {
|
|
9
|
+
NetworkListenerTypeFiltering,
|
|
10
|
+
NetworkListenerTypeObfuscation,
|
|
11
|
+
NetworkListenerTypeBoth
|
|
12
|
+
};
|
|
13
|
+
|
|
8
14
|
@interface LuciqNetworkLoggerBridge : RCTEventEmitter <RCTBridgeModule>
|
|
9
15
|
|
|
10
16
|
@property NSMutableDictionary<NSString *, LCQURLRequestAsyncObfuscationCompletedHandler> * _Nonnull requestObfuscationCompletionDictionary;
|
|
@@ -12,4 +18,27 @@ typedef void (^LCQURLRequestResponseAsyncFilteringCompletedHandler)(BOOL keep);
|
|
|
12
18
|
@property NSMutableDictionary<NSString *, LCQURLRequestResponseAsyncFilteringCompletedHandler> * _Nonnull requestFilteringCompletionDictionary;
|
|
13
19
|
@property NSMutableDictionary<NSString *, LCQURLRequestResponseAsyncFilteringCompletedHandler> * _Nonnull responseFilteringCompletionDictionary;
|
|
14
20
|
|
|
21
|
+
/*
|
|
22
|
+
+------------------------------------------------------------------------+
|
|
23
|
+
| NetworkLogger Module |
|
|
24
|
+
+------------------------------------------------------------------------+
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
- (BOOL)isNativeInterceptionEnabled;
|
|
28
|
+
|
|
29
|
+
- (void) registerNetworkLogsListener:(NetworkListenerType)listenerType;
|
|
30
|
+
|
|
31
|
+
- (void)updateNetworkLogSnapshot:(NSString * _Nonnull)url
|
|
32
|
+
callbackID:(NSString * _Nonnull)callbackID
|
|
33
|
+
requestBody:(NSString * _Nullable)requestBody
|
|
34
|
+
responseBody:(NSString * _Nullable)responseBody
|
|
35
|
+
responseCode:(double)responseCode
|
|
36
|
+
requestHeaders:(NSDictionary * _Nullable)requestHeaders
|
|
37
|
+
responseHeaders:(NSDictionary * _Nullable)responseHeaders;
|
|
38
|
+
|
|
39
|
+
- (void) setNetworkLoggingRequestFilterPredicateIOS:(NSString * _Nonnull) callbackID : (BOOL)value;
|
|
40
|
+
|
|
41
|
+
- (void)forceStartNetworkLoggingIOS;
|
|
42
|
+
|
|
43
|
+
- (void)forceStopNetworkLoggingIOS;
|
|
15
44
|
@end
|