@luciq/react-native 19.3.0 → 19.4.0-44237-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/CHANGELOG.md +15 -0
- package/README.md +118 -0
- package/RNLuciq.podspec +6 -2
- package/android/build.gradle +25 -0
- package/android/native.gradle +1 -1
- package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqAPMModule.java +3 -3
- package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqBugReportingModule.java +28 -24
- package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqCrashReportingModule.java +18 -7
- package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqFeatureRequestsModule.java +1 -2
- package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqNetworkLoggerModule.java +24 -29
- package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqReactnativeModule.java +112 -16
- package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqReactnativePackage.java +2 -0
- package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqRepliesModule.java +4 -16
- package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqSessionReplayModule.java +5 -16
- package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqSurveysModule.java +7 -15
- package/android/src/main/java/ai/luciq/reactlibrary/utils/ReportUtil.java +0 -7
- package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqAPMBaseSpec.java +9 -0
- package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqBaseSpec.java +33 -0
- package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqBugReportingBaseSpec.java +33 -0
- package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqCrashReportingBaseSpec.java +9 -0
- package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqFeatureRequestsBaseSpec.java +9 -0
- package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqNetworkLoggerBaseSpec.java +33 -0
- package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqRepliesBaseSpec.java +33 -0
- package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqSessionReplayBaseSpec.java +33 -0
- package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqSurveysBaseSpec.java +33 -0
- package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqAPMBaseSpec.java +11 -0
- package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqBaseSpec.java +22 -0
- package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqBugReportingBaseSpec.java +22 -0
- package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqCrashReportingBaseSpec.java +10 -0
- package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqFeatureRequestsBaseSpec.java +10 -0
- package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqNetworkLoggerBaseSpec.java +22 -0
- package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqRepliesBaseSpec.java +22 -0
- package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqSessionReplayBaseSpec.java +22 -0
- package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqSurveysBaseSpec.java +22 -0
- package/dist/modules/BugReporting.js +3 -3
- package/dist/modules/Luciq.d.ts +15 -0
- package/dist/modules/Luciq.js +22 -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 +5 -3
- package/dist/native/NativePackage.js +25 -2
- package/dist/native/NativeReplies.d.ts +1 -1
- package/dist/native/NativeSurveys.d.ts +2 -2
- package/dist/native/specs/NativeAPM.d.ts +21 -0
- package/dist/native/specs/NativeAPM.js +2 -0
- package/dist/native/specs/NativeBugReporting.d.ts +29 -0
- package/dist/native/specs/NativeBugReporting.js +2 -0
- package/dist/native/specs/NativeCrashReporting.d.ts +12 -0
- package/dist/native/specs/NativeCrashReporting.js +2 -0
- package/dist/native/specs/NativeFeatureRequests.d.ts +8 -0
- package/dist/native/specs/NativeFeatureRequests.js +2 -0
- package/dist/native/specs/NativeLuciq.d.ts +80 -0
- package/dist/native/specs/NativeLuciq.js +2 -0
- package/dist/native/specs/NativeNetworkLogger.d.ts +16 -0
- package/dist/native/specs/NativeNetworkLogger.js +2 -0
- package/dist/native/specs/NativeReplies.d.ts +21 -0
- package/dist/native/specs/NativeReplies.js +2 -0
- package/dist/native/specs/NativeSessionReplay.d.ts +17 -0
- package/dist/native/specs/NativeSessionReplay.js +2 -0
- package/dist/native/specs/NativeSurveys.d.ts +18 -0
- package/dist/native/specs/NativeSurveys.js +2 -0
- package/dist/utils/Enums.js +3 -1
- package/dist/utils/LuciqUtils.d.ts +1 -1
- package/dist/utils/LuciqUtils.js +0 -3
- package/ios/RNLuciq/LuciqAPMBridge.h +5 -5
- package/ios/RNLuciq/{LuciqAPMBridge.m → LuciqAPMBridge.mm} +48 -39
- package/ios/RNLuciq/LuciqBugReportingBridge.h +6 -6
- package/ios/RNLuciq/LuciqBugReportingBridge.mm +234 -0
- package/ios/RNLuciq/LuciqCrashReportingBridge.h +16 -5
- package/ios/RNLuciq/LuciqCrashReportingBridge.mm +91 -0
- package/ios/RNLuciq/LuciqFeatureRequestsBridge.h +1 -1
- package/ios/RNLuciq/{LuciqFeatureRequestsBridge.m → LuciqFeatureRequestsBridge.mm} +21 -16
- package/ios/RNLuciq/LuciqNetworkLoggerBridge.h +1 -30
- package/ios/RNLuciq/{LuciqNetworkLoggerBridge.m → LuciqNetworkLoggerBridge.mm} +46 -77
- package/ios/RNLuciq/LuciqReactBridge.h +13 -13
- package/ios/RNLuciq/{LuciqReactBridge.m → LuciqReactBridge.mm} +95 -34
- package/ios/RNLuciq/LuciqRepliesBridge.h +3 -3
- package/ios/RNLuciq/LuciqRepliesBridge.mm +86 -0
- package/ios/RNLuciq/LuciqSessionReplayBridge.h +5 -5
- package/ios/RNLuciq/{LuciqSessionReplayBridge.m → LuciqSessionReplayBridge.mm} +35 -25
- package/ios/RNLuciq/LuciqSurveysBridge.h +5 -5
- package/ios/RNLuciq/{LuciqSurveysBridge.m → LuciqSurveysBridge.mm} +34 -35
- package/ios/native.rb +1 -1
- package/package.json +9 -2
- package/src/modules/BugReporting.ts +3 -3
- package/src/modules/Luciq.ts +25 -1
- package/src/modules/Replies.ts +1 -1
- package/src/modules/Surveys.ts +2 -2
- package/src/native/NativeBugReporting.ts +3 -6
- package/src/native/NativeCrashReporting.ts +2 -2
- package/src/native/NativeLuciq.ts +7 -3
- package/src/native/NativePackage.ts +52 -2
- package/src/native/NativeReplies.ts +1 -1
- package/src/native/NativeSurveys.ts +2 -2
- package/src/native/specs/NativeAPM.ts +47 -0
- package/src/native/specs/NativeBugReporting.ts +53 -0
- package/src/native/specs/NativeCrashReporting.ts +23 -0
- package/src/native/specs/NativeFeatureRequests.ts +10 -0
- package/src/native/specs/NativeLuciq.ts +137 -0
- package/src/native/specs/NativeNetworkLogger.ts +31 -0
- package/src/native/specs/NativeReplies.ts +27 -0
- package/src/native/specs/NativeSessionReplay.ts +20 -0
- package/src/native/specs/NativeSurveys.ts +23 -0
- package/src/utils/Enums.ts +4 -1
- package/src/utils/LuciqUtils.ts +1 -6
- package/ios/RNLuciq/LuciqBugReportingBridge.m +0 -249
- package/ios/RNLuciq/LuciqCrashReportingBridge.m +0 -68
- package/ios/RNLuciq/LuciqRepliesBridge.m +0 -80
|
@@ -1,11 +1,3 @@
|
|
|
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
|
-
|
|
9
1
|
#import "LuciqFeatureRequestsBridge.h"
|
|
10
2
|
#import <LuciqSDK/LCQFeatureRequests.h>
|
|
11
3
|
#import <asl.h>
|
|
@@ -14,6 +6,13 @@
|
|
|
14
6
|
#import <LuciqSDK/LCQTypes.h>
|
|
15
7
|
#import <React/RCTUIManager.h>
|
|
16
8
|
|
|
9
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
10
|
+
#import <RNLuciqSpec/RNLuciqSpec.h>
|
|
11
|
+
|
|
12
|
+
@interface LuciqFeatureRequestsBridge () <NativeFeatureRequestsSpec>
|
|
13
|
+
@end
|
|
14
|
+
#endif
|
|
15
|
+
|
|
17
16
|
@implementation LuciqFeatureRequestsBridge
|
|
18
17
|
|
|
19
18
|
- (dispatch_queue_t)methodQueue {
|
|
@@ -36,26 +35,32 @@ RCT_EXPORT_METHOD(show) {
|
|
|
36
35
|
}
|
|
37
36
|
|
|
38
37
|
RCT_EXPORT_METHOD(setEmailFieldRequiredForFeatureRequests:(BOOL)isEmailFieldRequired
|
|
39
|
-
|
|
38
|
+
types:(NSArray *)actionTypesArray) {
|
|
40
39
|
LCQAction actionTypes = 0;
|
|
41
40
|
|
|
42
|
-
for (
|
|
43
|
-
|
|
41
|
+
for (id value in actionTypesArray) {
|
|
42
|
+
if ([value isKindOfClass:[NSNumber class]] || [value isKindOfClass:[NSString class]]) {
|
|
43
|
+
actionTypes |= [value intValue];
|
|
44
|
+
}
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
[LCQFeatureRequests setEmailFieldRequired:isEmailFieldRequired forAction:actionTypes];
|
|
47
48
|
}
|
|
48
49
|
|
|
49
|
-
RCT_EXPORT_METHOD(setEnabled:
|
|
50
|
+
RCT_EXPORT_METHOD(setEnabled:(BOOL)isEnabled) {
|
|
50
51
|
LCQFeatureRequests.enabled = isEnabled;
|
|
51
52
|
}
|
|
52
53
|
|
|
53
|
-
|
|
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
|
|
54
61
|
|
|
62
|
+
@synthesize description;
|
|
55
63
|
@synthesize hash;
|
|
56
|
-
|
|
57
64
|
@synthesize superclass;
|
|
58
65
|
|
|
59
66
|
@end
|
|
60
|
-
|
|
61
|
-
|
|
@@ -2,15 +2,9 @@
|
|
|
2
2
|
#import <React/RCTEventEmitter.h>
|
|
3
3
|
#import <LuciqSDK/LCQTypes.h>
|
|
4
4
|
|
|
5
|
-
typedef void (^
|
|
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
|
-
|
|
14
8
|
@interface LuciqNetworkLoggerBridge : RCTEventEmitter <RCTBridgeModule>
|
|
15
9
|
|
|
16
10
|
@property NSMutableDictionary<NSString *, LCQURLRequestAsyncObfuscationCompletedHandler> * _Nonnull requestObfuscationCompletionDictionary;
|
|
@@ -18,27 +12,4 @@ typedef NS_ENUM(NSInteger, NetworkListenerType) {
|
|
|
18
12
|
@property NSMutableDictionary<NSString *, LCQURLRequestResponseAsyncFilteringCompletedHandler> * _Nonnull requestFilteringCompletionDictionary;
|
|
19
13
|
@property NSMutableDictionary<NSString *, LCQURLRequestResponseAsyncFilteringCompletedHandler> * _Nonnull responseFilteringCompletionDictionary;
|
|
20
14
|
|
|
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;
|
|
44
15
|
@end
|
|
@@ -1,30 +1,18 @@
|
|
|
1
|
-
//
|
|
2
|
-
// LuciqNetworkLoggerBridge.m
|
|
3
|
-
// RNLuciq
|
|
4
|
-
//
|
|
5
|
-
// Created by Andrew Amin on 01/10/2024.
|
|
6
|
-
//
|
|
7
1
|
#import "LuciqNetworkLoggerBridge.h"
|
|
8
2
|
#import "Util/LCQNetworkLogger+CP.h"
|
|
9
3
|
|
|
10
4
|
#import <React/RCTLog.h>
|
|
11
5
|
#import <React/RCTConvert.h>
|
|
12
6
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
// The RCT_ENUM_CONVERTER macro handles the conversion between JS values (Int) and Objective-C enum values
|
|
17
|
-
RCT_ENUM_CONVERTER(NetworkListenerType, (@{
|
|
18
|
-
@"filtering": @(NetworkListenerTypeFiltering),
|
|
19
|
-
@"obfuscation": @(NetworkListenerTypeObfuscation),
|
|
20
|
-
@"both": @(NetworkListenerTypeBoth)
|
|
21
|
-
}), NetworkListenerTypeFiltering, integerValue)
|
|
7
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
8
|
+
#import <RNLuciqSpec/RNLuciqSpec.h>
|
|
22
9
|
|
|
10
|
+
@interface LuciqNetworkLoggerBridge () <NativeNetworkLoggerSpec>
|
|
23
11
|
@end
|
|
12
|
+
#endif
|
|
24
13
|
|
|
25
14
|
@implementation LuciqNetworkLoggerBridge
|
|
26
15
|
|
|
27
|
-
|
|
28
16
|
- (instancetype)init {
|
|
29
17
|
self = [super init];
|
|
30
18
|
if (self) {
|
|
@@ -51,135 +39,118 @@ RCT_ENUM_CONVERTER(NetworkListenerType, (@{
|
|
|
51
39
|
@"LCQNetworkLoggerHandler"
|
|
52
40
|
];
|
|
53
41
|
}
|
|
42
|
+
|
|
54
43
|
RCT_EXPORT_MODULE(LCQNetworkLogger)
|
|
55
44
|
|
|
56
45
|
bool lcq_hasListeners = NO;
|
|
57
46
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
// Will be called when this module's first listener is added.
|
|
61
|
-
-(void)startObserving {
|
|
47
|
+
- (void)startObserving {
|
|
62
48
|
lcq_hasListeners = YES;
|
|
63
|
-
// Set up any upstream listeners or background tasks as necessary
|
|
64
49
|
}
|
|
65
50
|
|
|
66
|
-
|
|
67
|
-
-(void)stopObserving {
|
|
51
|
+
- (void)stopObserving {
|
|
68
52
|
lcq_hasListeners = NO;
|
|
69
|
-
// Remove upstream listeners, stop unnecessary background tasks
|
|
70
53
|
}
|
|
71
54
|
|
|
72
|
-
|
|
55
|
+
RCT_EXPORT_SYNCHRONOUS_TYPED_METHOD(NSNumber *, isNativeInterceptionEnabled) {
|
|
73
56
|
return @(LCQNetworkLogger.isNativeNetworkInterceptionFeatureEnabled);
|
|
74
57
|
}
|
|
75
58
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
break;
|
|
87
|
-
|
|
88
|
-
case NetworkListenerTypeBoth:
|
|
89
|
-
// The obfuscation handler sends additional data to the JavaScript side. If filtering is applied, the request will be ignored; otherwise, it will be obfuscated and saved in the database.
|
|
90
|
-
[self setupRequestObfuscationHandler];
|
|
91
|
-
break;
|
|
92
|
-
|
|
93
|
-
default:
|
|
94
|
-
NSLog(@"Unknown NetworkListenerType");
|
|
95
|
-
break;
|
|
96
|
-
}
|
|
59
|
+
RCT_EXPORT_METHOD(registerNetworkLogsListener:(NSString * _Nullable)type) {
|
|
60
|
+
NSString *value = type ?: @"filtering";
|
|
61
|
+
if ([value isEqualToString:@"filtering"]) {
|
|
62
|
+
[self setupRequestFilteringHandler];
|
|
63
|
+
} else if ([value isEqualToString:@"obfuscation"] || [value isEqualToString:@"both"]) {
|
|
64
|
+
// Obfuscation pipeline also subsumes filtering: filtered requests get dropped, the rest obfuscated.
|
|
65
|
+
[self setupRequestObfuscationHandler];
|
|
66
|
+
} else {
|
|
67
|
+
NSLog(@"Unknown network listener type: %@", value);
|
|
68
|
+
}
|
|
97
69
|
}
|
|
98
70
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
callbackID:(NSString * _Nonnull)callbackID
|
|
71
|
+
RCT_EXPORT_METHOD(updateNetworkLogSnapshot:(NSString *)url
|
|
72
|
+
callbackID:(NSString *)callbackID
|
|
102
73
|
requestBody:(NSString * _Nullable)requestBody
|
|
103
74
|
responseBody:(NSString * _Nullable)responseBody
|
|
104
75
|
responseCode:(double)responseCode
|
|
105
|
-
requestHeaders:(NSDictionary *
|
|
106
|
-
responseHeaders:(NSDictionary *
|
|
76
|
+
requestHeaders:(NSDictionary *)requestHeaders
|
|
77
|
+
responseHeaders:(NSDictionary *)responseHeaders)
|
|
107
78
|
{
|
|
108
|
-
// Validate and construct the URL
|
|
109
79
|
NSURL *requestURL = [NSURL URLWithString:url];
|
|
110
80
|
if (!requestURL) {
|
|
111
81
|
NSLog(@"Invalid URL: %@", url);
|
|
112
82
|
return;
|
|
113
83
|
}
|
|
114
84
|
|
|
115
|
-
// Initialize the NSMutableURLRequest
|
|
116
85
|
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:requestURL];
|
|
117
86
|
|
|
118
|
-
// Set the HTTP body if provided
|
|
119
87
|
if (requestBody && [requestBody isKindOfClass:[NSString class]]) {
|
|
120
88
|
request.HTTPBody = [requestBody dataUsingEncoding:NSUTF8StringEncoding];
|
|
121
89
|
}
|
|
122
90
|
|
|
123
|
-
// Ensure requestHeaders is a valid dictionary before setting it
|
|
124
91
|
if (requestHeaders && [requestHeaders isKindOfClass:[NSDictionary class]]) {
|
|
125
92
|
request.allHTTPHeaderFields = requestHeaders;
|
|
126
|
-
} else {
|
|
127
|
-
NSLog(@"Invalid requestHeaders format, expected NSDictionary.");
|
|
128
93
|
}
|
|
129
94
|
|
|
130
|
-
// Ensure callbackID is valid and the completion handler exists
|
|
131
95
|
LCQURLRequestAsyncObfuscationCompletedHandler completionHandler = self.requestObfuscationCompletionDictionary[callbackID];
|
|
132
96
|
if (callbackID && [callbackID isKindOfClass:[NSString class]] && completionHandler) {
|
|
133
|
-
// Call the completion handler with the constructed request
|
|
134
97
|
completionHandler(request);
|
|
135
98
|
} else {
|
|
136
99
|
NSLog(@"CallbackID not found or completion handler is unavailable for CallbackID: %@", callbackID);
|
|
137
100
|
}
|
|
138
101
|
}
|
|
139
102
|
|
|
140
|
-
RCT_EXPORT_METHOD(setNetworkLoggingRequestFilterPredicateIOS:
|
|
141
|
-
|
|
103
|
+
RCT_EXPORT_METHOD(setNetworkLoggingRequestFilterPredicateIOS:(NSString *)callbackID
|
|
104
|
+
value:(BOOL)value) {
|
|
142
105
|
if (self.requestFilteringCompletionDictionary[callbackID] != nil) {
|
|
143
|
-
// ⬇️ YES == Request will be saved, NO == will be ignored
|
|
144
106
|
((LCQURLRequestResponseAsyncFilteringCompletedHandler)self.requestFilteringCompletionDictionary[callbackID])(value);
|
|
145
107
|
} else {
|
|
146
108
|
NSLog(@"Not Available Completion");
|
|
147
109
|
}
|
|
148
110
|
}
|
|
149
111
|
|
|
112
|
+
RCT_EXPORT_METHOD(forceStartNetworkLoggingIOS) {
|
|
113
|
+
[LCQNetworkLogger forceStartNetworkLogging];
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
RCT_EXPORT_METHOD(forceStopNetworkLoggingIOS) {
|
|
117
|
+
[LCQNetworkLogger forceStopNetworkLogging];
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// Android-only methods — iOS no-ops to satisfy the unified spec.
|
|
121
|
+
RCT_EXPORT_METHOD(hasAPMNetworkPlugin:(RCTPromiseResolveBlock)resolve
|
|
122
|
+
reject:(RCTPromiseRejectBlock)reject) {
|
|
123
|
+
resolve(@NO);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
RCT_EXPORT_METHOD(resetNetworkLogsListener) { }
|
|
150
127
|
|
|
151
128
|
#pragma mark - Helper Methods
|
|
152
129
|
|
|
153
|
-
// Set up the filtering handler
|
|
154
130
|
- (void)setupRequestFilteringHandler {
|
|
155
131
|
[LCQNetworkLogger setCPRequestFilteringHandler:^(NSURLRequest * _Nonnull request, void (^ _Nonnull completion)(BOOL)) {
|
|
156
132
|
NSString *callbackID = [[[NSUUID alloc] init] UUIDString];
|
|
157
133
|
self.requestFilteringCompletionDictionary[callbackID] = completion;
|
|
158
134
|
|
|
159
135
|
NSDictionary *dict = [self createNetworkRequestDictForRequest:request callbackID:callbackID];
|
|
160
|
-
if(lcq_hasListeners){
|
|
136
|
+
if (lcq_hasListeners) {
|
|
161
137
|
[self sendEventWithName:@"LCQNetworkLoggerHandler" body:dict];
|
|
162
138
|
}
|
|
163
|
-
|
|
164
139
|
}];
|
|
165
140
|
}
|
|
166
141
|
|
|
167
|
-
// Set up the obfuscation handler
|
|
168
142
|
- (void)setupRequestObfuscationHandler {
|
|
169
143
|
[LCQNetworkLogger setCPRequestAsyncObfuscationHandler:^(NSURLRequest * _Nonnull request, void (^ _Nonnull completion)(NSURLRequest * _Nonnull)) {
|
|
170
144
|
NSString *callbackID = [[[NSUUID alloc] init] UUIDString];
|
|
171
145
|
self.requestObfuscationCompletionDictionary[callbackID] = completion;
|
|
172
146
|
|
|
173
|
-
|
|
174
147
|
NSDictionary *dict = [self createNetworkRequestDictForRequest:request callbackID:callbackID];
|
|
175
148
|
if (lcq_hasListeners) {
|
|
176
149
|
[self sendEventWithName:@"LCQNetworkLoggerHandler" body:dict];
|
|
177
150
|
}
|
|
178
|
-
|
|
179
151
|
}];
|
|
180
152
|
}
|
|
181
153
|
|
|
182
|
-
// Helper to create a dictionary from the request and callbackID
|
|
183
154
|
- (NSDictionary *)createNetworkRequestDictForRequest:(NSURLRequest *)request callbackID:(NSString *)callbackID {
|
|
184
155
|
NSString *urlString = request.URL.absoluteString ?: @"";
|
|
185
156
|
NSString *bodyString = [[NSString alloc] initWithData:request.HTTPBody encoding:NSUTF8StringEncoding] ?: @"";
|
|
@@ -193,14 +164,12 @@ RCT_EXPORT_METHOD(setNetworkLoggingRequestFilterPredicateIOS: (NSString * _Nonnu
|
|
|
193
164
|
};
|
|
194
165
|
}
|
|
195
166
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
[LCQNetworkLogger forceStopNetworkLogging];
|
|
167
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
168
|
+
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
169
|
+
(const facebook::react::ObjCTurboModule::InitParams &)params
|
|
170
|
+
{
|
|
171
|
+
return std::make_shared<facebook::react::NativeNetworkLoggerSpecJSI>(params);
|
|
202
172
|
}
|
|
203
|
-
|
|
204
|
-
|
|
173
|
+
#endif
|
|
205
174
|
|
|
206
175
|
@end
|
|
@@ -52,11 +52,11 @@
|
|
|
52
52
|
|
|
53
53
|
- (void)resetTags;
|
|
54
54
|
|
|
55
|
-
- (void)getTags:(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject;
|
|
55
|
+
- (void)getTags:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject;
|
|
56
56
|
|
|
57
|
-
- (void)setString:(NSString *)value
|
|
57
|
+
- (void)setString:(NSString *)value key:(NSString *)key;
|
|
58
58
|
|
|
59
|
-
- (void)identifyUser:(NSString *)email name:(NSString *)name
|
|
59
|
+
- (void)identifyUser:(NSString *)email name:(NSString *)name id:(nullable NSString *)userId;
|
|
60
60
|
|
|
61
61
|
- (void)logOut;
|
|
62
62
|
|
|
@@ -64,18 +64,18 @@
|
|
|
64
64
|
|
|
65
65
|
- (void)logVerbose:(NSString *)log;
|
|
66
66
|
|
|
67
|
-
- (void)setReproStepsConfig:(
|
|
67
|
+
- (void)setReproStepsConfig:(NSString *)bugMode crashMode:(NSString *)crashMode sessionReplay:(NSString *)sessionReplayMode;
|
|
68
68
|
|
|
69
|
-
- (void)setUserAttribute:(NSString *)key
|
|
69
|
+
- (void)setUserAttribute:(NSString *)key value:(NSString *)value;
|
|
70
70
|
|
|
71
71
|
- (void)getUserAttribute:(NSString *)key
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
73
|
+
reject:(RCTPromiseRejectBlock)reject;
|
|
74
74
|
|
|
75
75
|
- (void)removeUserAttribute:(NSString *)key;
|
|
76
76
|
|
|
77
77
|
- (void)getAllUserAttributes:(RCTPromiseResolveBlock)resolve
|
|
78
|
-
|
|
78
|
+
reject:(RCTPromiseRejectBlock)reject;
|
|
79
79
|
|
|
80
80
|
- (void)clearAllUserAttributes;
|
|
81
81
|
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
|
|
84
84
|
- (void)setWelcomeMessageMode:(LCQWelcomeMessageMode)welcomeMessageMode;
|
|
85
85
|
|
|
86
|
-
- (void)setFileAttachment:(NSString *)fileLocation;
|
|
86
|
+
- (void)setFileAttachment:(NSString *)fileLocation fileName:(NSString * _Nullable)fileName;
|
|
87
87
|
|
|
88
88
|
- (void)show;
|
|
89
89
|
|
|
@@ -111,9 +111,9 @@
|
|
|
111
111
|
*/
|
|
112
112
|
|
|
113
113
|
- (void)setNetworkLoggingEnabled:(BOOL)isEnabled;
|
|
114
|
-
- (void)isW3ExternalTraceIDEnabled:(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject;
|
|
115
|
-
- (void)isW3ExternalGeneratedHeaderEnabled:(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject;
|
|
116
|
-
- (void)isW3CaughtHeaderEnabled:(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject;
|
|
114
|
+
- (void)isW3ExternalTraceIDEnabled:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject;
|
|
115
|
+
- (void)isW3ExternalGeneratedHeaderEnabled:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject;
|
|
116
|
+
- (void)isW3CaughtHeaderEnabled:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject;
|
|
117
117
|
- (void)networkLogIOS:(NSString * _Nonnull)url
|
|
118
118
|
method:(NSString * _Nonnull)method
|
|
119
119
|
requestBody:(NSString * _Nonnull)requestBody
|
|
@@ -146,6 +146,6 @@ w3cExternalTraceAttributes:(NSDictionary * _Nullable)w3cExternalTraceAttributes;
|
|
|
146
146
|
- (void)removeAllFeatureFlags;
|
|
147
147
|
- (void)setNetworkLogBodyEnabled:(BOOL)isEnabled;
|
|
148
148
|
- (void)enableAutoMasking:(NSArray *)autoMaskingTypes;
|
|
149
|
-
- (void)getNetworkBodyMaxSize:(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject;
|
|
149
|
+
- (void)getNetworkBodyMaxSize:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject;
|
|
150
150
|
|
|
151
151
|
@end
|
|
@@ -16,6 +16,13 @@
|
|
|
16
16
|
#import "RNLuciq.h"
|
|
17
17
|
#import "Util/LCQNetworkLogger+CP.h"
|
|
18
18
|
|
|
19
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
20
|
+
#import <RNLuciqSpec/RNLuciqSpec.h>
|
|
21
|
+
|
|
22
|
+
@interface LuciqReactBridge () <NativeLuciqSpec>
|
|
23
|
+
@end
|
|
24
|
+
#endif
|
|
25
|
+
|
|
19
26
|
@interface Luciq (PrivateWillSendAPI)
|
|
20
27
|
+ (void)setWillSendReportHandler_private:(void(^)(LCQReport *report, void(^reportCompletionHandler)(LCQReport *)))willSendReportHandler_private;
|
|
21
28
|
@end
|
|
@@ -59,7 +66,7 @@ RCT_EXPORT_METHOD(init:(NSString *)token
|
|
|
59
66
|
|
|
60
67
|
[Luciq setCodePushVersion:codePushVersion];
|
|
61
68
|
|
|
62
|
-
[Luciq setOverAirVersion:overAirVersion[@"version"] withType:[overAirVersion[@"service"] intValue]];
|
|
69
|
+
[Luciq setOverAirVersion:overAirVersion[@"version"] withType:(LCQOverAirType)[overAirVersion[@"service"] intValue]];
|
|
63
70
|
|
|
64
71
|
[RNLuciq initWithToken:token
|
|
65
72
|
invocationEvents:invocationEvents
|
|
@@ -72,20 +79,26 @@ RCT_EXPORT_METHOD(setCodePushVersion:(NSString *)version) {
|
|
|
72
79
|
}
|
|
73
80
|
|
|
74
81
|
RCT_EXPORT_METHOD(setOverAirVersion:(NSDictionary *)overAirVersion) {
|
|
75
|
-
[Luciq setOverAirVersion:overAirVersion[@"version"] withType:[overAirVersion[@"service"] intValue]];
|
|
82
|
+
[Luciq setOverAirVersion:overAirVersion[@"version"] withType:(LCQOverAirType)[overAirVersion[@"service"] intValue]];
|
|
76
83
|
}
|
|
77
84
|
|
|
78
85
|
RCT_EXPORT_METHOD(setAppVariant:(NSString *)appVariant) {
|
|
79
86
|
Luciq.appVariant = appVariant;
|
|
80
87
|
}
|
|
81
88
|
|
|
82
|
-
RCT_EXPORT_METHOD(setReproStepsConfig:(
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
[
|
|
89
|
+
RCT_EXPORT_METHOD(setReproStepsConfig:(NSString *)bugMode
|
|
90
|
+
crashMode:(NSString *)crashMode
|
|
91
|
+
sessionReplay:(NSString *)sessionReplayMode) {
|
|
92
|
+
LCQUserStepsMode bug = (LCQUserStepsMode)[bugMode intValue];
|
|
93
|
+
LCQUserStepsMode crash = (LCQUserStepsMode)[crashMode intValue];
|
|
94
|
+
LCQUserStepsMode sr = (LCQUserStepsMode)[sessionReplayMode intValue];
|
|
95
|
+
[Luciq setReproStepsFor:LCQIssueTypeBug withMode:bug];
|
|
96
|
+
[Luciq setReproStepsFor:LCQIssueTypeAllCrashes withMode:crash];
|
|
97
|
+
[Luciq setReproStepsFor:LCQIssueTypeSessionReplay withMode:sr];
|
|
86
98
|
}
|
|
87
99
|
|
|
88
|
-
RCT_EXPORT_METHOD(setFileAttachment:(NSString *)fileLocation
|
|
100
|
+
RCT_EXPORT_METHOD(setFileAttachment:(NSString *)fileLocation
|
|
101
|
+
fileName:(NSString * _Nullable)fileName) {
|
|
89
102
|
NSURL *url = [NSURL URLWithString:fileLocation];
|
|
90
103
|
[Luciq addFileAttachmentWithURL:url];
|
|
91
104
|
}
|
|
@@ -98,24 +111,39 @@ RCT_EXPORT_METHOD(setTrackUserSteps:(BOOL)isEnabled) {
|
|
|
98
111
|
[Luciq setTrackUserSteps:isEnabled];
|
|
99
112
|
}
|
|
100
113
|
|
|
114
|
+
RCT_EXPORT_METHOD(setWebViewMonitoringEnabled:(BOOL)isEnabled) {
|
|
115
|
+
[Luciq setWebViewMonitoringEnabled:isEnabled];
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
RCT_EXPORT_METHOD(setWebViewNetworkTrackingEnabled:(BOOL)isEnabled) {
|
|
119
|
+
[Luciq setWebViewNetworkTrackingEnabled:isEnabled];
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
RCT_EXPORT_METHOD(setWebViewUserInteractionsTrackingEnabled:(BOOL)isEnabled) {
|
|
123
|
+
[Luciq setWebViewUserInteractionsTrackingEnabled:isEnabled];
|
|
124
|
+
}
|
|
125
|
+
|
|
101
126
|
LCQReport *currentReport = nil;
|
|
102
|
-
RCT_EXPORT_METHOD(setPreSendingHandler
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
127
|
+
RCT_EXPORT_METHOD(setPreSendingHandler) {
|
|
128
|
+
__weak LuciqReactBridge *weakSelf = self;
|
|
129
|
+
Luciq.willSendReportHandler = ^LCQReport * _Nonnull(LCQReport * _Nonnull report) {
|
|
130
|
+
NSArray *tagsArray = report.tags;
|
|
131
|
+
NSArray *luciqLogs = report.luciqLogs;
|
|
132
|
+
NSArray *consoleLogs = report.consoleLogs;
|
|
133
|
+
NSDictionary *userAttributes = report.userAttributes;
|
|
134
|
+
NSArray *fileAttachments = report.fileLocations;
|
|
135
|
+
NSDictionary *dict = @{
|
|
136
|
+
@"tagsArray": tagsArray,
|
|
137
|
+
@"luciqLogs": luciqLogs,
|
|
138
|
+
@"consoleLogs": consoleLogs,
|
|
139
|
+
@"userAttributes": userAttributes,
|
|
140
|
+
@"fileAttachments": fileAttachments
|
|
115
141
|
};
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
142
|
+
[weakSelf sendEventWithName:@"LCQpreSendingHandler" body:dict];
|
|
143
|
+
|
|
144
|
+
currentReport = report;
|
|
145
|
+
return report;
|
|
146
|
+
};
|
|
119
147
|
}
|
|
120
148
|
|
|
121
149
|
RCT_EXPORT_METHOD(appendTagToReport:(NSString*) tag) {
|
|
@@ -278,11 +306,12 @@ RCT_EXPORT_METHOD(resetTags) {
|
|
|
278
306
|
[Luciq resetTags];
|
|
279
307
|
}
|
|
280
308
|
|
|
281
|
-
RCT_EXPORT_METHOD(getTags:(RCTPromiseResolveBlock)resolve
|
|
309
|
+
RCT_EXPORT_METHOD(getTags:(RCTPromiseResolveBlock)resolve
|
|
310
|
+
reject:(RCTPromiseRejectBlock)reject) {
|
|
282
311
|
resolve([Luciq getTags]);
|
|
283
312
|
}
|
|
284
313
|
|
|
285
|
-
RCT_EXPORT_METHOD(setString:(NSString*)value
|
|
314
|
+
RCT_EXPORT_METHOD(setString:(NSString *)value key:(NSString *)key) {
|
|
286
315
|
[Luciq setValue:value forStringWithKey:key];
|
|
287
316
|
}
|
|
288
317
|
|
|
@@ -294,7 +323,9 @@ RCT_EXPORT_METHOD(clearFileAttachments) {
|
|
|
294
323
|
[Luciq clearFileAttachments];
|
|
295
324
|
}
|
|
296
325
|
|
|
297
|
-
RCT_EXPORT_METHOD(identifyUser:(NSString *)email
|
|
326
|
+
RCT_EXPORT_METHOD(identifyUser:(NSString *)email
|
|
327
|
+
name:(NSString *)name
|
|
328
|
+
id:(NSString * _Nullable)userId) {
|
|
298
329
|
[Luciq identifyUserWithID:userId email:email name:name];
|
|
299
330
|
}
|
|
300
331
|
|
|
@@ -302,11 +333,11 @@ RCT_EXPORT_METHOD(logOut) {
|
|
|
302
333
|
[Luciq logOut];
|
|
303
334
|
}
|
|
304
335
|
|
|
305
|
-
RCT_EXPORT_METHOD(setUserAttribute:(NSString *)key
|
|
336
|
+
RCT_EXPORT_METHOD(setUserAttribute:(NSString *)key value:(NSString *)value) {
|
|
306
337
|
[Luciq setUserAttribute:value withKey:key];
|
|
307
338
|
}
|
|
308
339
|
|
|
309
|
-
RCT_EXPORT_METHOD(getUserAttribute:(NSString *)key :(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject) {
|
|
340
|
+
RCT_EXPORT_METHOD(getUserAttribute:(NSString *)key resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
|
|
310
341
|
@try {
|
|
311
342
|
resolve([Luciq userAttributeForKey:key]);
|
|
312
343
|
} @catch (NSException *exception) {
|
|
@@ -318,7 +349,8 @@ RCT_EXPORT_METHOD(removeUserAttribute:(NSString *)key) {
|
|
|
318
349
|
[Luciq removeUserAttributeForKey:key];
|
|
319
350
|
}
|
|
320
351
|
|
|
321
|
-
RCT_EXPORT_METHOD(getAllUserAttributes:(RCTPromiseResolveBlock)resolve
|
|
352
|
+
RCT_EXPORT_METHOD(getAllUserAttributes:(RCTPromiseResolveBlock)resolve
|
|
353
|
+
reject:(RCTPromiseRejectBlock)reject) {
|
|
322
354
|
resolve([Luciq userAttributes]);
|
|
323
355
|
}
|
|
324
356
|
|
|
@@ -488,13 +520,16 @@ RCT_EXPORT_METHOD(willRedirectToStore){
|
|
|
488
520
|
[Luciq willRedirectToAppStore];
|
|
489
521
|
}
|
|
490
522
|
|
|
491
|
-
RCT_EXPORT_METHOD(isW3ExternalTraceIDEnabled:(RCTPromiseResolveBlock)resolve
|
|
523
|
+
RCT_EXPORT_METHOD(isW3ExternalTraceIDEnabled:(RCTPromiseResolveBlock)resolve
|
|
524
|
+
reject:(RCTPromiseRejectBlock)reject) {
|
|
492
525
|
resolve(@(LCQNetworkLogger.w3ExternalTraceIDEnabled));
|
|
493
526
|
}
|
|
494
|
-
RCT_EXPORT_METHOD(isW3ExternalGeneratedHeaderEnabled:(RCTPromiseResolveBlock)resolve
|
|
527
|
+
RCT_EXPORT_METHOD(isW3ExternalGeneratedHeaderEnabled:(RCTPromiseResolveBlock)resolve
|
|
528
|
+
reject:(RCTPromiseRejectBlock)reject) {
|
|
495
529
|
resolve(@(LCQNetworkLogger.w3ExternalGeneratedHeaderEnabled));
|
|
496
530
|
}
|
|
497
|
-
RCT_EXPORT_METHOD(isW3CaughtHeaderEnabled:(RCTPromiseResolveBlock)resolve
|
|
531
|
+
RCT_EXPORT_METHOD(isW3CaughtHeaderEnabled:(RCTPromiseResolveBlock)resolve
|
|
532
|
+
reject:(RCTPromiseRejectBlock)reject) {
|
|
498
533
|
resolve(@(LCQNetworkLogger.w3CaughtHeaderEnabled));
|
|
499
534
|
}
|
|
500
535
|
|
|
@@ -503,6 +538,10 @@ RCT_EXPORT_METHOD(isW3CaughtHeaderEnabled:(RCTPromiseResolveBlock)resolve :(RCTP
|
|
|
503
538
|
return ArgsRegistry.getAll;
|
|
504
539
|
}
|
|
505
540
|
|
|
541
|
+
RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(getAllConstants) {
|
|
542
|
+
return ArgsRegistry.getAll;
|
|
543
|
+
}
|
|
544
|
+
|
|
506
545
|
- (void) setBaseUrlForDeprecationLogs {
|
|
507
546
|
SEL setCurrentPlatformSEL = NSSelectorFromString(@"setCurrentPlatform:");
|
|
508
547
|
if([[Luciq class] respondsToSelector:setCurrentPlatformSEL]) {
|
|
@@ -537,7 +576,8 @@ RCT_EXPORT_METHOD(enableAutoMasking:(NSArray *)autoMaskingTypes) {
|
|
|
537
576
|
[Luciq setAutoMaskScreenshots: autoMaskingOptions];
|
|
538
577
|
};
|
|
539
578
|
|
|
540
|
-
RCT_EXPORT_METHOD(getNetworkBodyMaxSize:(RCTPromiseResolveBlock)resolve
|
|
579
|
+
RCT_EXPORT_METHOD(getNetworkBodyMaxSize:(RCTPromiseResolveBlock)resolve
|
|
580
|
+
reject:(RCTPromiseRejectBlock)reject) {
|
|
541
581
|
resolve(@(LCQNetworkLogger.getNetworkBodyMaxSize));
|
|
542
582
|
}
|
|
543
583
|
|
|
@@ -547,7 +587,7 @@ RCT_EXPORT_METHOD(setNetworkLogBodyEnabled:(BOOL)isEnabled) {
|
|
|
547
587
|
|
|
548
588
|
// Checks if Luciq SDK is initialized
|
|
549
589
|
RCT_EXPORT_METHOD(isBuilt:(RCTPromiseResolveBlock)resolve
|
|
550
|
-
|
|
590
|
+
reject:(RCTPromiseRejectBlock)reject) {
|
|
551
591
|
@try {
|
|
552
592
|
BOOL isBuilt = YES;
|
|
553
593
|
resolve(@(isBuilt));
|
|
@@ -557,4 +597,25 @@ RCT_EXPORT_METHOD(isBuilt:(RCTPromiseResolveBlock)resolve
|
|
|
557
597
|
}
|
|
558
598
|
}
|
|
559
599
|
|
|
600
|
+
// Stubs for spec-declared methods that are Android-only.
|
|
601
|
+
RCT_EXPORT_METHOD(networkLogAndroid:(NSString *)url
|
|
602
|
+
requestBody:(NSString *)requestBody
|
|
603
|
+
responseBody:(NSString * _Nullable)responseBody
|
|
604
|
+
method:(NSString *)method
|
|
605
|
+
responseCode:(double)responseCode
|
|
606
|
+
requestHeaders:(NSString *)requestHeaders
|
|
607
|
+
responseHeaders:(NSString *)responseHeaders
|
|
608
|
+
duration:(double)duration) { }
|
|
609
|
+
|
|
610
|
+
RCT_EXPORT_METHOD(registerFeatureFlagsChangeListener) { }
|
|
611
|
+
RCT_EXPORT_METHOD(setOnFeaturesUpdatedListener) { }
|
|
612
|
+
|
|
613
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
614
|
+
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
615
|
+
(const facebook::react::ObjCTurboModule::InitParams &)params
|
|
616
|
+
{
|
|
617
|
+
return std::make_shared<facebook::react::NativeLuciqSpecJSI>(params);
|
|
618
|
+
}
|
|
619
|
+
#endif
|
|
620
|
+
|
|
560
621
|
@end
|
|
@@ -21,13 +21,13 @@
|
|
|
21
21
|
|
|
22
22
|
- (void)setEnabled:(BOOL) isEnabled;
|
|
23
23
|
|
|
24
|
-
- (void)hasChats:(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject;
|
|
24
|
+
- (void)hasChats:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject;
|
|
25
25
|
|
|
26
26
|
- (void)show;
|
|
27
27
|
|
|
28
|
-
- (void)setOnNewReplyReceivedHandler
|
|
28
|
+
- (void)setOnNewReplyReceivedHandler;
|
|
29
29
|
|
|
30
|
-
- (void)getUnreadRepliesCount:(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject;
|
|
30
|
+
- (void)getUnreadRepliesCount:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject;
|
|
31
31
|
|
|
32
32
|
- (void)setInAppNotificationEnabled:(BOOL)isChatNotificationEnabled;
|
|
33
33
|
|