@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.
Files changed (116) hide show
  1. package/README.md +0 -118
  2. package/RNLuciq.podspec +2 -6
  3. package/android/build.gradle +0 -25
  4. package/android/proguard-rules.txt +1 -1
  5. package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqAPMModule.java +12 -3
  6. package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqBugReportingModule.java +24 -28
  7. package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqCrashReportingModule.java +7 -18
  8. package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqFeatureRequestsModule.java +2 -1
  9. package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqNetworkLoggerModule.java +56 -29
  10. package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqReactnativeModule.java +47 -78
  11. package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqRepliesModule.java +16 -4
  12. package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqSessionReplayModule.java +16 -5
  13. package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqSurveysModule.java +15 -7
  14. package/android/src/main/java/ai/luciq/reactlibrary/utils/EventEmitterModule.java +7 -0
  15. package/dist/modules/BugReporting.js +3 -3
  16. package/dist/modules/Luciq.js +3 -2
  17. package/dist/modules/NetworkLogger.d.ts +0 -5
  18. package/dist/modules/NetworkLogger.js +9 -1
  19. package/dist/modules/Replies.js +1 -1
  20. package/dist/modules/Surveys.js +2 -2
  21. package/dist/native/NativeBugReporting.d.ts +4 -4
  22. package/dist/native/NativeCrashReporting.d.ts +2 -2
  23. package/dist/native/NativeLuciq.d.ts +3 -2
  24. package/dist/native/NativePackage.js +2 -25
  25. package/dist/native/NativeReplies.d.ts +1 -1
  26. package/dist/native/NativeSurveys.d.ts +2 -2
  27. package/dist/utils/Enums.js +1 -3
  28. package/dist/utils/FeatureFlags.d.ts +6 -0
  29. package/dist/utils/FeatureFlags.js +35 -0
  30. package/dist/utils/LuciqUtils.d.ts +1 -1
  31. package/dist/utils/LuciqUtils.js +9 -0
  32. package/dist/utils/XhrNetworkInterceptor.js +85 -53
  33. package/ios/RNLuciq/LuciqAPMBridge.h +5 -5
  34. package/ios/RNLuciq/{LuciqAPMBridge.mm → LuciqAPMBridge.m} +39 -48
  35. package/ios/RNLuciq/LuciqBugReportingBridge.h +6 -6
  36. package/ios/RNLuciq/LuciqBugReportingBridge.m +249 -0
  37. package/ios/RNLuciq/LuciqCrashReportingBridge.h +5 -16
  38. package/ios/RNLuciq/LuciqCrashReportingBridge.m +68 -0
  39. package/ios/RNLuciq/LuciqFeatureRequestsBridge.h +1 -1
  40. package/ios/RNLuciq/{LuciqFeatureRequestsBridge.mm → LuciqFeatureRequestsBridge.m} +16 -21
  41. package/ios/RNLuciq/LuciqNetworkLoggerBridge.h +30 -1
  42. package/ios/RNLuciq/{LuciqNetworkLoggerBridge.mm → LuciqNetworkLoggerBridge.m} +77 -46
  43. package/ios/RNLuciq/LuciqReactBridge.h +13 -13
  44. package/ios/RNLuciq/{LuciqReactBridge.mm → LuciqReactBridge.m} +34 -83
  45. package/ios/RNLuciq/LuciqRepliesBridge.h +3 -3
  46. package/ios/RNLuciq/LuciqRepliesBridge.m +80 -0
  47. package/ios/RNLuciq/LuciqSessionReplayBridge.h +5 -5
  48. package/ios/RNLuciq/{LuciqSessionReplayBridge.mm → LuciqSessionReplayBridge.m} +25 -35
  49. package/ios/RNLuciq/LuciqSurveysBridge.h +5 -5
  50. package/ios/RNLuciq/{LuciqSurveysBridge.mm → LuciqSurveysBridge.m} +35 -34
  51. package/package.json +1 -9
  52. package/scripts/get-github-app-token.sh +70 -0
  53. package/scripts/notify-github.sh +17 -8
  54. package/src/modules/BugReporting.ts +3 -3
  55. package/src/modules/Luciq.ts +4 -2
  56. package/src/modules/NetworkLogger.ts +26 -1
  57. package/src/modules/Replies.ts +1 -1
  58. package/src/modules/Surveys.ts +2 -2
  59. package/src/native/NativeBugReporting.ts +6 -3
  60. package/src/native/NativeCrashReporting.ts +2 -2
  61. package/src/native/NativeLuciq.ts +3 -2
  62. package/src/native/NativePackage.ts +2 -52
  63. package/src/native/NativeReplies.ts +1 -1
  64. package/src/native/NativeSurveys.ts +2 -2
  65. package/src/utils/Enums.ts +1 -4
  66. package/src/utils/FeatureFlags.ts +44 -0
  67. package/src/utils/LuciqUtils.ts +21 -1
  68. package/src/utils/XhrNetworkInterceptor.ts +128 -55
  69. package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqAPMBaseSpec.java +0 -9
  70. package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqBaseSpec.java +0 -33
  71. package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqBugReportingBaseSpec.java +0 -33
  72. package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqCrashReportingBaseSpec.java +0 -9
  73. package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqFeatureRequestsBaseSpec.java +0 -9
  74. package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqNetworkLoggerBaseSpec.java +0 -33
  75. package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqRepliesBaseSpec.java +0 -33
  76. package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqSessionReplayBaseSpec.java +0 -33
  77. package/android/src/newarch/java/ai/luciq/reactlibrary/RNLuciqSurveysBaseSpec.java +0 -33
  78. package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqAPMBaseSpec.java +0 -11
  79. package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqBaseSpec.java +0 -22
  80. package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqBugReportingBaseSpec.java +0 -22
  81. package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqCrashReportingBaseSpec.java +0 -10
  82. package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqFeatureRequestsBaseSpec.java +0 -10
  83. package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqNetworkLoggerBaseSpec.java +0 -22
  84. package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqRepliesBaseSpec.java +0 -22
  85. package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqSessionReplayBaseSpec.java +0 -22
  86. package/android/src/oldarch/java/ai/luciq/reactlibrary/RNLuciqSurveysBaseSpec.java +0 -22
  87. package/dist/native/specs/NativeAPM.d.ts +0 -21
  88. package/dist/native/specs/NativeAPM.js +0 -2
  89. package/dist/native/specs/NativeBugReporting.d.ts +0 -29
  90. package/dist/native/specs/NativeBugReporting.js +0 -2
  91. package/dist/native/specs/NativeCrashReporting.d.ts +0 -12
  92. package/dist/native/specs/NativeCrashReporting.js +0 -2
  93. package/dist/native/specs/NativeFeatureRequests.d.ts +0 -8
  94. package/dist/native/specs/NativeFeatureRequests.js +0 -2
  95. package/dist/native/specs/NativeLuciq.d.ts +0 -80
  96. package/dist/native/specs/NativeLuciq.js +0 -2
  97. package/dist/native/specs/NativeNetworkLogger.d.ts +0 -16
  98. package/dist/native/specs/NativeNetworkLogger.js +0 -2
  99. package/dist/native/specs/NativeReplies.d.ts +0 -21
  100. package/dist/native/specs/NativeReplies.js +0 -2
  101. package/dist/native/specs/NativeSessionReplay.d.ts +0 -17
  102. package/dist/native/specs/NativeSessionReplay.js +0 -2
  103. package/dist/native/specs/NativeSurveys.d.ts +0 -18
  104. package/dist/native/specs/NativeSurveys.js +0 -2
  105. package/ios/RNLuciq/LuciqBugReportingBridge.mm +0 -234
  106. package/ios/RNLuciq/LuciqCrashReportingBridge.mm +0 -91
  107. package/ios/RNLuciq/LuciqRepliesBridge.mm +0 -86
  108. package/src/native/specs/NativeAPM.ts +0 -47
  109. package/src/native/specs/NativeBugReporting.ts +0 -53
  110. package/src/native/specs/NativeCrashReporting.ts +0 -23
  111. package/src/native/specs/NativeFeatureRequests.ts +0 -10
  112. package/src/native/specs/NativeLuciq.ts +0 -137
  113. package/src/native/specs/NativeNetworkLogger.ts +0 -31
  114. package/src/native/specs/NativeReplies.ts +0 -27
  115. package/src/native/specs/NativeSessionReplay.ts +0 -20
  116. package/src/native/specs/NativeSurveys.ts +0 -23
@@ -1,234 +0,0 @@
1
- #import "LuciqBugReportingBridge.h"
2
- #import <LuciqSDK/LCQBugReporting.h>
3
- #import <asl.h>
4
- #import <React/RCTLog.h>
5
- #import <os/log.h>
6
- #import <React/RCTUIManager.h>
7
-
8
- #ifdef RCT_NEW_ARCH_ENABLED
9
- #import <RNLuciqSpec/RNLuciqSpec.h>
10
-
11
- @interface LuciqBugReportingBridge () <NativeBugReportingSpec>
12
- @end
13
- #endif
14
-
15
- @implementation LuciqBugReportingBridge
16
-
17
- - (dispatch_queue_t)methodQueue {
18
- return dispatch_get_main_queue();
19
- }
20
-
21
- + (BOOL)requiresMainQueueSetup
22
- {
23
- return NO;
24
- }
25
-
26
- - (NSArray<NSString *> *)supportedEvents {
27
- return @[
28
- @"LCQpreInvocationHandler",
29
- @"LCQpostInvocationHandler",
30
- @"LCQDidSelectPromptOptionHandler",
31
- ];
32
- }
33
-
34
- RCT_EXPORT_MODULE(LCQBugReporting)
35
-
36
- RCT_EXPORT_METHOD(setEnabled:(BOOL)isEnabled) {
37
- LCQBugReporting.enabled = isEnabled;
38
- }
39
-
40
- RCT_EXPORT_METHOD(setAutoScreenRecordingEnabled:(BOOL)enabled) {
41
- LCQBugReporting.autoScreenRecordingEnabled = enabled;
42
- }
43
-
44
- RCT_EXPORT_METHOD(setAutoScreenRecordingDuration:(double)duration) {
45
- LCQBugReporting.autoScreenRecordingDuration = duration;
46
- }
47
-
48
- RCT_EXPORT_METHOD(setOnInvokeHandler) {
49
- __weak LuciqBugReportingBridge *weakSelf = self;
50
- LCQBugReporting.willInvokeHandler = ^{
51
- [weakSelf sendEventWithName:@"LCQpreInvocationHandler" body:nil];
52
- };
53
- }
54
-
55
- RCT_EXPORT_METHOD(setOnSDKDismissedHandler) {
56
- __weak LuciqBugReportingBridge *weakSelf = self;
57
- LCQBugReporting.didDismissHandler = ^(LCQDismissType dismissType, LCQReportCategory reportType) {
58
- NSString *dismissTypeString;
59
- if (dismissType == LCQDismissTypeCancel) {
60
- dismissTypeString = @"CANCEL";
61
- } else if (dismissType == LCQDismissTypeSubmit) {
62
- dismissTypeString = @"SUBMIT";
63
- } else if (dismissType == LCQDismissTypeAddAttachment) {
64
- dismissTypeString = @"ADD_ATTACHMENT";
65
- }
66
-
67
- NSString *reportTypeString;
68
- if (reportType == LCQReportCategoryBug) {
69
- reportTypeString = @"bug";
70
- } else if (reportType == LCQReportCategoryFeedback) {
71
- reportTypeString = @"feedback";
72
- } else {
73
- reportTypeString = @"other";
74
- }
75
- NSDictionary *result = @{ @"dismissType": dismissTypeString,
76
- @"reportType": reportTypeString };
77
- [weakSelf sendEventWithName:@"LCQpostInvocationHandler" body:result];
78
- };
79
- }
80
-
81
- RCT_EXPORT_METHOD(setDidSelectPromptOptionHandler) {
82
- __weak LuciqBugReportingBridge *weakSelf = self;
83
- LCQBugReporting.didSelectPromptOptionHandler = ^(LCQPromptOption promptOption) {
84
- NSString *promptOptionString;
85
- if (promptOption == LCQPromptOptionBug) {
86
- promptOptionString = @"bug";
87
- } else if (promptOption == LCQBugReportingTypeFeedback) {
88
- promptOptionString = @"feedback";
89
- } else if (promptOption == LCQPromptOptionChat) {
90
- promptOptionString = @"chat";
91
- } else {
92
- promptOptionString = @"none";
93
- }
94
- [weakSelf sendEventWithName:@"LCQDidSelectPromptOptionHandler"
95
- body:@{@"promptOption": promptOptionString}];
96
- };
97
- }
98
-
99
- RCT_EXPORT_METHOD(setInvocationEvents:(NSArray *)invocationEventsArray) {
100
- LCQInvocationEvent invocationEvents = 0;
101
- for (id value in invocationEventsArray) {
102
- invocationEvents |= [value intValue];
103
- }
104
- LCQBugReporting.invocationEvents = invocationEvents;
105
- }
106
-
107
- RCT_EXPORT_METHOD(setOptions:(NSArray *)invocationOptionsArray) {
108
- LCQBugReportingOption invocationOptions = 0;
109
- for (id value in invocationOptionsArray) {
110
- invocationOptions |= [value intValue];
111
- }
112
- LCQBugReporting.bugReportingOptions = invocationOptions;
113
- }
114
-
115
- RCT_EXPORT_METHOD(setFloatingButtonEdge:(NSString *)edge offset:(double)offset) {
116
- LCQBugReporting.floatingButtonEdge = (CGRectEdge)[edge intValue];
117
- LCQBugReporting.floatingButtonTopOffset = offset;
118
- }
119
-
120
- RCT_EXPORT_METHOD(setExtendedBugReportMode:(NSString *)mode) {
121
- LCQBugReporting.extendedBugReportMode = (LCQExtendedBugReportMode)[mode intValue];
122
- }
123
-
124
- RCT_EXPORT_METHOD(setEnabledAttachmentTypes:(BOOL)screenshot
125
- extraScreenshot:(BOOL)extraScreenshot
126
- galleryImage:(BOOL)galleryImage
127
- screenRecording:(BOOL)screenRecording) {
128
- LCQAttachmentType attachmentTypes = 0;
129
- if (screenshot) attachmentTypes = LCQAttachmentTypeScreenShot;
130
- if (extraScreenshot) attachmentTypes |= LCQAttachmentTypeExtraScreenShot;
131
- if (galleryImage) attachmentTypes |= LCQAttachmentTypeGalleryImage;
132
- if (screenRecording) attachmentTypes |= LCQAttachmentTypeScreenRecording;
133
-
134
- LCQBugReporting.enabledAttachmentTypes = attachmentTypes;
135
- }
136
-
137
- RCT_EXPORT_METHOD(setViewHierarchyEnabled:(BOOL)viewHierarchyEnabled) {
138
- LCQBugReporting.shouldCaptureViewHierarchy = viewHierarchyEnabled;
139
- }
140
-
141
- RCT_EXPORT_METHOD(setVideoRecordingFloatingButtonPosition:(NSString *)position) {
142
- LCQBugReporting.videoRecordingFloatingButtonPosition = (LCQPosition)[position intValue];
143
- }
144
-
145
- RCT_EXPORT_METHOD(setReportTypes:(NSArray *)types) {
146
- LCQBugReportingReportType reportTypes = 0;
147
- for (id value in types) {
148
- reportTypes |= [value intValue];
149
- }
150
- [LCQBugReporting setPromptOptionsEnabledReportTypes:reportTypes];
151
- }
152
-
153
- RCT_EXPORT_METHOD(show:(NSString *)type options:(NSArray *)options) {
154
- LCQBugReportingOption parsedOptions = 0;
155
- for (id value in options) {
156
- parsedOptions |= [value intValue];
157
- }
158
- NSArray *args = @[@([type intValue]), @(parsedOptions)];
159
- [[NSRunLoop mainRunLoop] performSelector:@selector(showBugReportingWithReportTypeAndOptionsHelper:)
160
- target:self
161
- argument:args
162
- order:0
163
- modes:@[NSDefaultRunLoopMode]];
164
- }
165
-
166
- - (void)showBugReportingWithReportTypeAndOptionsHelper:(NSArray *)args {
167
- LCQBugReportingReportType parsedReportType = [args[0] intValue];
168
- LCQBugReportingOption parsedOptions = [args[1] intValue];
169
- [LCQBugReporting showWithReportType:parsedReportType options:parsedOptions];
170
- }
171
-
172
- RCT_EXPORT_METHOD(setShakingThresholdForiPhone:(double)iPhoneShakingThreshold) {
173
- LCQBugReporting.shakingThresholdForiPhone = iPhoneShakingThreshold;
174
- }
175
-
176
- RCT_EXPORT_METHOD(setShakingThresholdForiPad:(double)iPadShakingThreshold) {
177
- LCQBugReporting.shakingThresholdForiPad = iPadShakingThreshold;
178
- }
179
-
180
- RCT_EXPORT_METHOD(setDisclaimerText:(NSString *)text) {
181
- [LCQBugReporting setDisclaimerText:text];
182
- }
183
-
184
- RCT_EXPORT_METHOD(setCommentMinimumCharacterCount:(double)limit reportTypes:(NSArray *)reportTypes) {
185
- LCQBugReportingType parsedReportTypes = 0;
186
- if (![reportTypes count]) {
187
- parsedReportTypes = LCQBugReportingTypeBug | LCQBugReportingTypeFeedback | LCQBugReportingTypeQuestion;
188
- } else {
189
- for (id value in reportTypes) {
190
- parsedReportTypes |= [value intValue];
191
- }
192
- }
193
- [LCQBugReporting setCommentMinimumCharacterCount:(NSInteger)limit forBugReportType:parsedReportTypes];
194
- }
195
-
196
- RCT_EXPORT_METHOD(addUserConsent:(NSString *)key
197
- description:(NSString *)description
198
- mandatory:(BOOL)mandatory
199
- checked:(BOOL)checked
200
- actionType:(NSString * _Nullable)actionType) {
201
- LCQConsentAction mappedActionType = (LCQConsentAction)[actionType integerValue];
202
- [LCQBugReporting addUserConsentWithKey:key
203
- description:description
204
- mandatory:mandatory
205
- checked:checked
206
- actionType:mappedActionType];
207
- }
208
-
209
- RCT_EXPORT_METHOD(setProactiveReportingConfigurations:(BOOL)enabled
210
- gapBetweenModals:(double)gapBetweenModals
211
- modalDelayAfterDetection:(double)modalDelayAfterDetection) {
212
- LCQProactiveReportingConfigurations *configurations = [[LCQProactiveReportingConfigurations alloc] init];
213
- configurations.enabled = enabled;
214
- configurations.gapBetweenModals = @(gapBetweenModals);
215
- configurations.modalDelayAfterDetection = @(modalDelayAfterDetection);
216
- [LCQBugReporting setProactiveReportingConfigurations:configurations];
217
- }
218
-
219
- // Android-only method — iOS no-op.
220
- RCT_EXPORT_METHOD(setShakingThresholdForAndroid:(double)threshold) { }
221
-
222
- #ifdef RCT_NEW_ARCH_ENABLED
223
- - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
224
- (const facebook::react::ObjCTurboModule::InitParams &)params
225
- {
226
- return std::make_shared<facebook::react::NativeBugReportingSpecJSI>(params);
227
- }
228
- #endif
229
-
230
- @synthesize description;
231
- @synthesize hash;
232
- @synthesize superclass;
233
-
234
- @end
@@ -1,91 +0,0 @@
1
- #import "LuciqCrashReportingBridge.h"
2
- #import "Util/LCQCrashReporting+CP.h"
3
-
4
- #ifdef RCT_NEW_ARCH_ENABLED
5
- #import <RNLuciqSpec/RNLuciqSpec.h>
6
-
7
- @interface LuciqCrashReportingBridge () <NativeCrashReportingSpec>
8
- @end
9
- #endif
10
-
11
- @implementation LuciqCrashReportingBridge
12
-
13
- - (dispatch_queue_t)methodQueue {
14
- return dispatch_get_main_queue();
15
- }
16
-
17
- + (BOOL)requiresMainQueueSetup
18
- {
19
- return NO;
20
- }
21
-
22
- - (NSArray<NSString *> *)supportedEvents {
23
- return @[
24
- @"LCQSendHandledJSCrash",
25
- @"LCQSendUnhandledJSCrash",
26
- ];
27
- }
28
-
29
- RCT_EXPORT_MODULE(LCQCrashReporting)
30
-
31
- RCT_EXPORT_METHOD(setEnabled:(BOOL)isEnabled) {
32
- LCQCrashReporting.enabled = isEnabled;
33
- }
34
-
35
- RCT_EXPORT_METHOD(sendJSCrash:(NSDictionary *)data
36
- resolve:(RCTPromiseResolveBlock)resolve
37
- reject:(RCTPromiseRejectBlock)reject) {
38
- dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0ul);
39
- dispatch_async(queue, ^{
40
- [LCQCrashReporting cp_reportFatalCrashWithStackTrace:data];
41
- resolve([NSNull null]);
42
- });
43
- }
44
-
45
- RCT_EXPORT_METHOD(sendHandledJSCrash:(NSDictionary *)data
46
- userAttributes:(nullable NSDictionary *)userAttributes
47
- fingerprint:(nullable NSString *)fingerprint
48
- nonFatalExceptionLevel:(nullable NSString *)nonFatalExceptionLevel
49
- resolve:(RCTPromiseResolveBlock)resolve
50
- reject:(RCTPromiseRejectBlock)reject) {
51
- if ([fingerprint isKindOfClass:NSNull.class]) {
52
- fingerprint = nil;
53
- }
54
- if ([userAttributes isKindOfClass:NSNull.class]) {
55
- userAttributes = nil;
56
- }
57
-
58
- LCQNonFatalLevel level = LCQNonFatalLevelError;
59
- if (nonFatalExceptionLevel != nil && ![nonFatalExceptionLevel isKindOfClass:NSNull.class]) {
60
- level = (LCQNonFatalLevel)[nonFatalExceptionLevel intValue];
61
- }
62
-
63
- dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
64
- dispatch_async(queue, ^{
65
- [LCQCrashReporting cp_reportNonFatalCrashWithStackTrace:data
66
- level:level
67
- groupingString:fingerprint
68
- userAttributes:userAttributes];
69
- resolve([NSNull null]);
70
- });
71
- }
72
-
73
- RCT_EXPORT_METHOD(setNDKCrashesEnabled:(BOOL)isEnabled
74
- resolve:(RCTPromiseResolveBlock)resolve
75
- reject:(RCTPromiseRejectBlock)reject) {
76
- resolve([NSNull null]);
77
- }
78
-
79
- #ifdef RCT_NEW_ARCH_ENABLED
80
- - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
81
- (const facebook::react::ObjCTurboModule::InitParams &)params
82
- {
83
- return std::make_shared<facebook::react::NativeCrashReportingSpecJSI>(params);
84
- }
85
- #endif
86
-
87
- @synthesize description;
88
- @synthesize hash;
89
- @synthesize superclass;
90
-
91
- @end
@@ -1,86 +0,0 @@
1
- #import "LuciqRepliesBridge.h"
2
- #import <LuciqSDK/LCQReplies.h>
3
- #import <asl.h>
4
- #import <React/RCTLog.h>
5
- #import <os/log.h>
6
- #import <LuciqSDK/LCQTypes.h>
7
- #import <React/RCTUIManager.h>
8
-
9
- #ifdef RCT_NEW_ARCH_ENABLED
10
- #import <RNLuciqSpec/RNLuciqSpec.h>
11
-
12
- @interface LuciqRepliesBridge () <NativeRepliesSpec>
13
- @end
14
- #endif
15
-
16
- @implementation LuciqRepliesBridge
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 @[@"LCQOnNewReplyReceivedCallback"];
29
- }
30
-
31
- RCT_EXPORT_MODULE(LCQReplies)
32
-
33
- RCT_EXPORT_METHOD(setEnabled:(BOOL)isEnabled) {
34
- LCQReplies.enabled = isEnabled;
35
- }
36
-
37
- RCT_EXPORT_METHOD(hasChats:(RCTPromiseResolveBlock)resolve
38
- reject:(RCTPromiseRejectBlock)reject) {
39
- resolve(@(LCQReplies.hasChats));
40
- }
41
-
42
- RCT_EXPORT_METHOD(show) {
43
- [[NSRunLoop mainRunLoop] performSelector:@selector(show) target:[LCQReplies class] argument:nil order:0 modes:@[NSDefaultRunLoopMode]];
44
- }
45
-
46
- RCT_EXPORT_METHOD(setOnNewReplyReceivedHandler) {
47
- __weak LuciqRepliesBridge *weakSelf = self;
48
- LCQReplies.didReceiveReplyHandler = ^{
49
- [weakSelf sendEventWithName:@"LCQOnNewReplyReceivedCallback" body:nil];
50
- };
51
- }
52
-
53
- RCT_EXPORT_METHOD(getUnreadRepliesCount:(RCTPromiseResolveBlock)resolve
54
- reject:(RCTPromiseRejectBlock)reject) {
55
- resolve(@(LCQReplies.unreadRepliesCount));
56
- }
57
-
58
- RCT_EXPORT_METHOD(setInAppNotificationEnabled:(BOOL)isChatNotificationEnabled) {
59
- LCQReplies.inAppNotificationsEnabled = isChatNotificationEnabled;
60
- }
61
-
62
- RCT_EXPORT_METHOD(setPushNotificationsEnabled:(BOOL)isPushNotificationEnabled) {
63
- [LCQReplies setPushNotificationsEnabled:isPushNotificationEnabled];
64
- }
65
-
66
- // Android-only methods — iOS no-ops to satisfy the unified spec.
67
- RCT_EXPORT_METHOD(setInAppNotificationSound:(BOOL)isEnabled) { }
68
- RCT_EXPORT_METHOD(setPushNotificationRegistrationToken:(NSString *)token) { }
69
- RCT_EXPORT_METHOD(showNotification:(NSDictionary *)data) { }
70
- RCT_EXPORT_METHOD(setNotificationIcon:(double)resourceId) { }
71
- RCT_EXPORT_METHOD(setPushNotificationChannelId:(NSString *)identifier) { }
72
- RCT_EXPORT_METHOD(setSystemReplyNotificationSoundEnabled:(BOOL)isEnabled) { }
73
-
74
- #ifdef RCT_NEW_ARCH_ENABLED
75
- - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
76
- (const facebook::react::ObjCTurboModule::InitParams &)params
77
- {
78
- return std::make_shared<facebook::react::NativeRepliesSpecJSI>(params);
79
- }
80
- #endif
81
-
82
- @synthesize description;
83
- @synthesize hash;
84
- @synthesize superclass;
85
-
86
- @end
@@ -1,47 +0,0 @@
1
- import type { TurboModule } from 'react-native';
2
- import type { UnsafeObject } from 'react-native/Libraries/Types/CodegenTypes';
3
- import { TurboModuleRegistry } from 'react-native';
4
-
5
- export interface Spec extends TurboModule {
6
- setEnabled(isEnabled: boolean): void;
7
-
8
- networkLogAndroid(
9
- requestStartTime: number,
10
- requestDuration: number,
11
- requestHeaders: string,
12
- requestBody: string,
13
- requestBodySize: number,
14
- requestMethod: string,
15
- requestUrl: string,
16
- requestContentType: string,
17
- responseHeaders: string,
18
- responseBody: string | null,
19
- responseBodySize: number,
20
- statusCode: number,
21
- responseContentType: string,
22
- errorDomain: string,
23
- w3cExternalTraceAttributes: UnsafeObject,
24
- gqlQueryName: string | null,
25
- serverErrorMessage: string | null,
26
- ): void;
27
-
28
- setAppLaunchEnabled(isEnabled: boolean): void;
29
- endAppLaunch(): void;
30
-
31
- startFlow(name: string): void;
32
- endFlow(name: string): void;
33
- setFlowAttribute(name: string, key: string, value: string | null): void;
34
-
35
- setAutoUITraceEnabled(isEnabled: boolean): void;
36
- startUITrace(name: string): void;
37
- endUITrace(): void;
38
- lcqSleep(): void;
39
-
40
- setScreenRenderingEnabled(isEnabled: boolean): void;
41
-
42
- syncCustomSpan(name: string, startTimestamp: number, endTimestamp: number): Promise<void>;
43
- isCustomSpanEnabled(): Promise<boolean>;
44
- isAPMEnabled(): Promise<boolean>;
45
- }
46
-
47
- export default TurboModuleRegistry.getEnforcing<Spec>('LCQAPM');
@@ -1,53 +0,0 @@
1
- import type { TurboModule } from 'react-native';
2
- import { TurboModuleRegistry } from 'react-native';
3
-
4
- export interface Spec extends TurboModule {
5
- setEnabled(isEnabled: boolean): void;
6
- show(type: string, options: string[]): void;
7
-
8
- setInvocationEvents(events: string[]): void;
9
- setOptions(options: string[]): void;
10
- setExtendedBugReportMode(mode: string): void;
11
- setReportTypes(types: string[]): void;
12
- setDisclaimerText(text: string): void;
13
- setCommentMinimumCharacterCount(limit: number, reportTypes: string[]): void;
14
- setFloatingButtonEdge(edge: string, offset: number): void;
15
- setVideoRecordingFloatingButtonPosition(buttonPosition: string): void;
16
- setEnabledAttachmentTypes(
17
- screenshot: boolean,
18
- extraScreenshot: boolean,
19
- galleryImage: boolean,
20
- screenRecording: boolean,
21
- ): void;
22
-
23
- setAutoScreenRecordingEnabled(isEnabled: boolean): void;
24
- setAutoScreenRecordingDuration(maxDuration: number): void;
25
- setViewHierarchyEnabled(isEnabled: boolean): void;
26
-
27
- setShakingThresholdForiPhone(threshold: number): void;
28
- setShakingThresholdForiPad(threshold: number): void;
29
- setShakingThresholdForAndroid(threshold: number): void;
30
-
31
- setOnInvokeHandler(): void;
32
- setDidSelectPromptOptionHandler(): void;
33
- setOnSDKDismissedHandler(): void;
34
-
35
- addUserConsent(
36
- key: string,
37
- description: string,
38
- mandatory: boolean,
39
- checked: boolean,
40
- actionType: string | null,
41
- ): void;
42
-
43
- setProactiveReportingConfigurations(
44
- enabled: boolean,
45
- gapBetweenModals: number,
46
- modalDelayAfterDetection: number,
47
- ): void;
48
-
49
- addListener(eventName: string): void;
50
- removeListeners(count: number): void;
51
- }
52
-
53
- export default TurboModuleRegistry.getEnforcing<Spec>('LCQBugReporting');
@@ -1,23 +0,0 @@
1
- import type { TurboModule } from 'react-native';
2
- import type { UnsafeObject } from 'react-native/Libraries/Types/CodegenTypes';
3
- import { TurboModuleRegistry } from 'react-native';
4
-
5
- export interface Spec extends TurboModule {
6
- setEnabled(isEnabled: boolean): void;
7
-
8
- sendJSCrash(data: UnsafeObject): Promise<void>;
9
-
10
- sendHandledJSCrash(
11
- data: UnsafeObject,
12
- userAttributes: UnsafeObject | null,
13
- fingerprint: string | null,
14
- nonFatalExceptionLevel: string | null,
15
- ): Promise<void>;
16
-
17
- setNDKCrashesEnabled(isEnabled: boolean): Promise<void>;
18
-
19
- addListener(eventName: string): void;
20
- removeListeners(count: number): void;
21
- }
22
-
23
- export default TurboModuleRegistry.getEnforcing<Spec>('LCQCrashReporting');
@@ -1,10 +0,0 @@
1
- import type { TurboModule } from 'react-native';
2
- import { TurboModuleRegistry } from 'react-native';
3
-
4
- export interface Spec extends TurboModule {
5
- setEnabled(isEnabled: boolean): void;
6
- show(): void;
7
- setEmailFieldRequiredForFeatureRequests(isEmailFieldRequired: boolean, types: string[]): void;
8
- }
9
-
10
- export default TurboModuleRegistry.getEnforcing<Spec>('LCQFeatureRequests');
@@ -1,137 +0,0 @@
1
- import type { TurboModule } from 'react-native';
2
- import type { UnsafeObject } from 'react-native/Libraries/Types/CodegenTypes';
3
- import { TurboModuleRegistry } from 'react-native';
4
-
5
- export interface Spec extends TurboModule {
6
- getAllConstants(): UnsafeObject;
7
- setEnabled(isEnabled: boolean): void;
8
- isBuilt(): Promise<boolean>;
9
- init(
10
- token: string,
11
- invocationEvents: string[],
12
- debugLogsLevel: string,
13
- useNativeNetworkInterception: boolean,
14
- codePushVersion: string | null,
15
- appVariant: string | null,
16
- options: UnsafeObject | null,
17
- overAirVersion: UnsafeObject | null,
18
- ): void;
19
- show(): void;
20
-
21
- setCodePushVersion(version: string): void;
22
- setOverAirVersion(OTAserviceVersion: UnsafeObject): void;
23
- setAppVariant(appVariant: string): void;
24
- setLCQLogPrintsToConsole(printsToConsole: boolean): void;
25
- setSessionProfilerEnabled(isEnabled: boolean): void;
26
-
27
- setLocale(sdkLocale: string): void;
28
- setColorTheme(sdkTheme: string): void;
29
- setPrimaryColor(color: number | null): void;
30
- setString(string: string, key: string): void;
31
-
32
- networkLogAndroid(
33
- url: string,
34
- requestBody: string,
35
- responseBody: string | null,
36
- method: string,
37
- responseCode: number,
38
- requestHeaders: string,
39
- responseHeaders: string,
40
- duration: number,
41
- ): void;
42
-
43
- networkLogIOS(
44
- url: string,
45
- method: string,
46
- requestBody: string | null,
47
- requestBodySize: number,
48
- responseBody: string | null,
49
- responseBodySize: number,
50
- responseCode: number,
51
- requestHeaders: UnsafeObject,
52
- responseHeaders: UnsafeObject,
53
- contentType: string,
54
- errorDomain: string,
55
- errorCode: number,
56
- startTime: number,
57
- duration: number,
58
- gqlQueryName: string | null,
59
- serverErrorMessage: string | null,
60
- w3cExternalTraceAttributes: UnsafeObject,
61
- ): void;
62
-
63
- setNetworkLoggingEnabled(isEnabled: boolean): void;
64
- setNetworkLogBodyEnabled(isEnabled: boolean): void;
65
-
66
- setReproStepsConfig(bugMode: string, crashMode: string, sessionReplay: string): void;
67
- setTrackUserSteps(isEnabled: boolean): void;
68
- reportScreenChange(firstScreen: string): void;
69
- reportCurrentViewChange(screenName: string): void;
70
- addPrivateView(nativeTag: number | null): void;
71
- removePrivateView(nativeTag: number | null): void;
72
-
73
- logVerbose(message: string): void;
74
- logInfo(message: string): void;
75
- logDebug(message: string): void;
76
- logError(message: string): void;
77
- logWarn(message: string): void;
78
- clearLogs(): void;
79
-
80
- identifyUser(email: string, name: string, id: string | null): void;
81
- logOut(): void;
82
- logUserEvent(name: string): void;
83
- setUserData(data: string): void;
84
-
85
- setUserAttribute(key: string, value: string): void;
86
- getUserAttribute(key: string): Promise<string>;
87
- removeUserAttribute(key: string): void;
88
- getAllUserAttributes(): Promise<UnsafeObject>;
89
- clearAllUserAttributes(): void;
90
-
91
- showWelcomeMessageWithMode(mode: string): void;
92
- setWelcomeMessageMode(mode: string): void;
93
-
94
- appendTags(tags: string[]): void;
95
- resetTags(): void;
96
- getTags(): Promise<string[]>;
97
-
98
- addFeatureFlags(featureFlags: UnsafeObject): void;
99
- removeFeatureFlags(featureFlags: string[]): void;
100
- removeAllFeatureFlags(): void;
101
-
102
- setFileAttachment(filePath: string, fileName: string | null): void;
103
-
104
- setPreSendingHandler(): void;
105
- appendTagToReport(tag: string): void;
106
- appendConsoleLogToReport(consoleLog: string): void;
107
- setUserAttributeToReport(key: string, value: string): void;
108
- logDebugToReport(log: string): void;
109
- logVerboseToReport(log: string): void;
110
- logWarnToReport(log: string): void;
111
- logErrorToReport(log: string): void;
112
- logInfoToReport(log: string): void;
113
- addFileAttachmentWithURLToReport(url: string, filename: string | null): void;
114
- addFileAttachmentWithDataToReport(data: string, filename: string | null): void;
115
- willRedirectToStore(): void;
116
-
117
- isW3ExternalTraceIDEnabled(): Promise<boolean>;
118
- isW3ExternalGeneratedHeaderEnabled(): Promise<boolean>;
119
- isW3CaughtHeaderEnabled(): Promise<boolean>;
120
-
121
- registerFeatureFlagsChangeListener(): void;
122
- setOnFeaturesUpdatedListener(): void;
123
- enableAutoMasking(autoMaskingTypes: string[]): void;
124
- getNetworkBodyMaxSize(): Promise<number>;
125
-
126
- setTheme(theme: UnsafeObject): void;
127
- setFullscreen(isEnabled: boolean): void;
128
-
129
- setWebViewMonitoringEnabled(isEnabled: boolean): void;
130
- setWebViewNetworkTrackingEnabled(isEnabled: boolean): void;
131
- setWebViewUserInteractionsTrackingEnabled(isEnabled: boolean): void;
132
-
133
- addListener(eventName: string): void;
134
- removeListeners(count: number): void;
135
- }
136
-
137
- export default TurboModuleRegistry.getEnforcing<Spec>('Luciq');