react-native-shield-full-plugin 2.3.0

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 (30) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +237 -0
  3. package/android/build.gradle +109 -0
  4. package/android/gradle.properties +5 -0
  5. package/android/src/main/AndroidManifest.xml +5 -0
  6. package/android/src/main/java/com/shieldfraudplugin/ShieldFraudPluginModule.java +441 -0
  7. package/android/src/main/java/com/shieldfraudplugin/ShieldFraudPluginPackage.java +78 -0
  8. package/android/src/newarch/java/com/shieldfraudplugin/ShieldFraudPluginSpec.java +41 -0
  9. package/android/src/oldarch/java/com/shieldfraudplugin/ShieldFraudPluginSpec.java +36 -0
  10. package/ios/ShieldFraudPlugin.h +24 -0
  11. package/ios/ShieldFraudPlugin.mm +295 -0
  12. package/ios/ShieldFraudPlugin.xcodeproj/project.pbxproj +282 -0
  13. package/ios/ShieldFraudPlugin.xcodeproj/project.xcworkspace/contents.xcworkspacedata +4 -0
  14. package/lib/commonjs/NativeShieldFraudPlugin.js +15 -0
  15. package/lib/commonjs/NativeShieldFraudPlugin.js.map +1 -0
  16. package/lib/commonjs/index.js +256 -0
  17. package/lib/commonjs/index.js.map +1 -0
  18. package/lib/module/NativeShieldFraudPlugin.js +10 -0
  19. package/lib/module/NativeShieldFraudPlugin.js.map +1 -0
  20. package/lib/module/index.js +253 -0
  21. package/lib/module/index.js.map +1 -0
  22. package/lib/typescript/src/NativeShieldFraudPlugin.d.ts +53 -0
  23. package/lib/typescript/src/NativeShieldFraudPlugin.d.ts.map +1 -0
  24. package/lib/typescript/src/index.d.ts +143 -0
  25. package/lib/typescript/src/index.d.ts.map +1 -0
  26. package/package.json +169 -0
  27. package/react-native-shield-fraud-plugin.podspec +29 -0
  28. package/react-native-shield-full-plugin.podspec +29 -0
  29. package/src/NativeShieldFraudPlugin.ts +87 -0
  30. package/src/index.tsx +334 -0
@@ -0,0 +1,295 @@
1
+ #import "ShieldFraudPlugin.h"
2
+
3
+ // Import the auto-generated Swift→ObjC header.
4
+ // This exposes all Swift-exported types (Configuration, Shield, BlockedDialog,
5
+ // LogLevel, Environment, ShieldCrossPlatformHelper, DeviceShieldCallback, …)
6
+ // without requiring Clang module syntax (@import), which fails in Obj-C++ files
7
+ // when C++ modules are not enabled (e.g. when the New Architecture codegen
8
+ // headers are included and the file is compiled as Obj-C++).
9
+ #import <ShieldFraud/ShieldFraud-Swift.h>
10
+
11
+ @implementation ShieldFraudPlugin
12
+
13
+ static BOOL isShieldInitialized = NO;
14
+
15
+ RCT_EXPORT_MODULE();
16
+
17
+ // =============================================================================
18
+ // MARK: - Shared methods (Old Architecture & New Architecture)
19
+ //
20
+ // These methods have identical signatures in both architectures.
21
+ // RCT_EXPORT_METHOD registers them with the bridge for Old Arch, and the
22
+ // matching Obj-C selectors satisfy the codegen protocol for New Arch.
23
+ // =============================================================================
24
+
25
+ // Cross-platform SDK metadata (React Native wrapper version / name)
26
+ RCT_EXPORT_METHOD(setCrossPlatformParameters:(NSString *)crossPlatformName
27
+ crossPlatformVersion:(NSString *)crossPlatformVersion)
28
+ {
29
+ ShieldCrossPlatformParams *params = [[ShieldCrossPlatformParams alloc]
30
+ initWithName:crossPlatformName
31
+ version:crossPlatformVersion];
32
+ [ShieldCrossPlatformHelper setCrossPlatformParameters:params];
33
+ }
34
+
35
+ // Retrieve the most-recently-computed device result
36
+ RCT_EXPORT_METHOD(getLatestDeviceResult:(RCTResponseSenderBlock)successCallback
37
+ errorCallback:(RCTResponseSenderBlock)errorCallback)
38
+ {
39
+ NSDictionary<NSString *, id> *result = [[Shield shared] getLatestDeviceResult];
40
+ if (result != nil) {
41
+ successCallback(@[result]);
42
+ return;
43
+ }
44
+
45
+ NSError *error = [[Shield shared] getErrorResponse];
46
+ if (error != nil) {
47
+ errorCallback(@[[error localizedDescription]]);
48
+ return;
49
+ }
50
+
51
+ errorCallback(@[@"No device result available yet."]);
52
+ }
53
+
54
+ // Subscribe to real-time device-result state changes
55
+ RCT_EXPORT_METHOD(setDeviceResultStateListener)
56
+ {
57
+ double delayInSeconds = 1.5;
58
+ dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW,
59
+ (int64_t)(delayInSeconds * NSEC_PER_SEC));
60
+ dispatch_after(popTime, dispatch_get_main_queue(), ^(void) {
61
+ [[Shield shared] setDeviceResultStateListener:^{
62
+ [self sendEventWithName:@"device_result_state"
63
+ body:@{@"status": @"isSDKReady"}];
64
+ }];
65
+ });
66
+ }
67
+
68
+ // Attach arbitrary screen-level attributes
69
+ RCT_EXPORT_METHOD(sendAttributes:(NSString *)screenName
70
+ data:(NSDictionary *)data)
71
+ {
72
+ [[Shield shared] sendAttributesWithScreenName:screenName data:data];
73
+ }
74
+
75
+ RCT_EXPORT_METHOD(sendAttributesWithCallback:(NSString *)screenName
76
+ data:(NSDictionary *)data
77
+ successCallback:(RCTResponseSenderBlock)successCallback
78
+ errorCallback:(RCTResponseSenderBlock)errorCallback)
79
+ {
80
+ [[Shield shared] sendAttributesWithScreenName:screenName
81
+ data:data
82
+ :^(BOOL success, NSError *error) {
83
+ dispatch_async(dispatch_get_main_queue(), ^{
84
+ if (success) {
85
+ successCallback(@[@(YES)]);
86
+ return;
87
+ }
88
+
89
+ NSString *errorMessage = error != nil
90
+ ? [error localizedDescription]
91
+ : @"Failed to send attributes.";
92
+ errorCallback(@[errorMessage]);
93
+ });
94
+ }];
95
+ }
96
+
97
+ // Trigger a device signature computation for a given screen name.
98
+ // Pass userId to associate the result with a specific user.
99
+ // The completionHandler fires when the SDK is done; results and errors
100
+ // are read back from getLatestDeviceResult / getErrorResponse.
101
+ RCT_EXPORT_METHOD(sendDeviceSignature:(NSString *)screenName
102
+ userId:(NSString * _Nullable)userId
103
+ successCallback:(RCTResponseSenderBlock)successCallback
104
+ errorCallback:(RCTResponseSenderBlock)errorCallback)
105
+ {
106
+ ShieldUserData *userData = [[ShieldUserData alloc]
107
+ initWithScreenName:screenName
108
+ userId:userId];
109
+
110
+ [[Shield shared] sendDeviceSignatureWithUserData:userData
111
+ completionHandler:^{
112
+ dispatch_async(dispatch_get_main_queue(), ^{
113
+ NSDictionary<NSString *, id> *deviceResult = [[Shield shared] getLatestDeviceResult];
114
+ if (deviceResult != nil) {
115
+ successCallback(@[deviceResult]);
116
+ return;
117
+ }
118
+
119
+ NSError *error = [[Shield shared] getErrorResponse];
120
+ if (error != nil) {
121
+ errorCallback(@[[error localizedDescription]]);
122
+ return;
123
+ }
124
+
125
+ errorCallback(@[@"No device result available."]);
126
+ });
127
+ }];
128
+ }
129
+
130
+ // RCTEventEmitter — declare the events this module can emit
131
+ - (NSArray<NSString *> *)supportedEvents
132
+ {
133
+ return @[@"success", @"error", @"device_result_state"];
134
+ }
135
+
136
+ // RCTEventEmitter — required overrides (no-op wrappers keep the base class happy)
137
+ - (void)addListener:(NSString *)eventName
138
+ {
139
+ [super addListener:eventName];
140
+ }
141
+
142
+ - (void)removeListeners:(double)count
143
+ {
144
+ [super removeListeners:count];
145
+ }
146
+
147
+ // DeviceShieldCallback delegate — forwarded as JS events
148
+ - (void)didErrorWithError:(NSError *)error
149
+ {
150
+ [self sendEventWithName:@"error" body:[error localizedDescription]];
151
+ }
152
+
153
+ - (void)didSuccessWithResult:(NSDictionary<NSString *, id> *)result
154
+ {
155
+ [self sendEventWithName:@"success" body:result];
156
+ }
157
+
158
+
159
+ // =============================================================================
160
+ // MARK: - Architecture-specific methods
161
+ // =============================================================================
162
+
163
+ #ifdef RCT_NEW_ARCH_ENABLED
164
+
165
+ // -----------------------------------------------------------------------------
166
+ // New Architecture (Turbo Modules / JSI)
167
+ //
168
+ // Methods are implemented as plain Obj-C methods to directly satisfy the
169
+ // codegen-generated NativeShieldFraudPluginSpec protocol.
170
+ //
171
+ // Key differences from Old Arch:
172
+ // • initShield — logLevel/environmentInfo are `double` (JS numbers are
173
+ // always doubles); resolve/reject blocks are added for the
174
+ // Promise<void> return type declared in the TS spec.
175
+ // • getSessionId / isShieldInitialized — synchronous return values are
176
+ // supported natively by JSI (no blocking-synchronous macro).
177
+ // • isShieldInitialized — protocol requires NSNumber* so JSI can marshal
178
+ // the boolean; returning plain BOOL would be a type mismatch.
179
+ // • getTurboModule: — wires this Obj-C class into the JSI runtime.
180
+ // -----------------------------------------------------------------------------
181
+
182
+ - (void)initShield:(NSString *)siteID
183
+ secretKey:(NSString *)secretKey
184
+ isOptimizedListener:(BOOL)isOptimizedListener
185
+ blockedDialog:(NSDictionary * _Nullable)blockedDialog
186
+ logLevel:(double)logLevel
187
+ environmentInfo:(double)environmentInfo
188
+ blockScreenRecording:(BOOL)blockScreenRecording
189
+ resolve:(RCTPromiseResolveBlock)resolve
190
+ reject:(RCTPromiseRejectBlock)reject
191
+ {
192
+ if (!isShieldInitialized) {
193
+ Configuration *config = [[Configuration alloc] initWithSiteId:siteID
194
+ secretKey:secretKey];
195
+ if (isOptimizedListener) {
196
+ config.deviceShieldCallback = self;
197
+ }
198
+
199
+ if (blockedDialog != nil) {
200
+ NSString *title = [blockedDialog objectForKey:@"title"];
201
+ NSString *body = [blockedDialog objectForKey:@"body"];
202
+ config.defaultBlockedDialog = [[BlockedDialog alloc] initWithTitle:title
203
+ body:body];
204
+ }
205
+
206
+ // JS numbers arrive as double; cast explicitly to Swift-bridged enum types.
207
+ config.logLevel = (LogLevel)(NSInteger)logLevel;
208
+ config.environment = (Environment)(NSInteger)environmentInfo;
209
+
210
+ [Shield setUpWith:config];
211
+ isShieldInitialized = YES;
212
+ }
213
+ resolve(nil);
214
+ }
215
+
216
+ - (NSString *)getSessionId
217
+ {
218
+ return [[Shield shared] sessionId];
219
+ }
220
+
221
+ - (NSNumber *)isShieldInitialized
222
+ {
223
+ return @(isShieldInitialized);
224
+ }
225
+
226
+ // Wires this Obj-C class into the JSI runtime.
227
+ // The generated class name follows the codegenConfig "name" in package.json:
228
+ // "RNShieldFraudPluginSpec" → NativeShieldFraudPluginSpecJSI
229
+ - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
230
+ (const facebook::react::ObjCTurboModule::InitParams &)params
231
+ {
232
+ return std::make_shared<facebook::react::NativeShieldFraudPluginSpecJSI>(params);
233
+ }
234
+
235
+ #else
236
+
237
+ // -----------------------------------------------------------------------------
238
+ // Old Architecture (Bridge)
239
+ //
240
+ // RCT_EXPORT_METHOD — registers void-return methods with the JS bridge.
241
+ // RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD — bridge-only macro for synchronous
242
+ // return values; has no JSI equivalent and must stay inside #else.
243
+ //
244
+ // Key differences from New Arch:
245
+ // • initShield — logLevel/environmentInfo are NSInteger (bridge coerces
246
+ // from NSNumber); no resolve/reject (bridge wraps the void
247
+ // return automatically).
248
+ // • getSessionId / isShieldInitialized — must use the blocking-synchronous
249
+ // macro so the bridge returns the value to JS synchronously.
250
+ // -----------------------------------------------------------------------------
251
+
252
+ RCT_EXPORT_METHOD(initShield:(NSString *)siteID
253
+ secretKey:(NSString *)secretKey
254
+ isOptimizedListener:(BOOL)isOptimizedListener
255
+ blockedDialog:(NSDictionary *)blockedDialog
256
+ logLevel:(NSInteger)logLevel
257
+ environmentInfo:(NSInteger)environmentInfo
258
+ blockScreenRecording:(BOOL)blockScreenRecording)
259
+ {
260
+ if (!isShieldInitialized) {
261
+ Configuration *config = [[Configuration alloc] initWithSiteId:siteID
262
+ secretKey:secretKey];
263
+ if (isOptimizedListener) {
264
+ config.deviceShieldCallback = self;
265
+ }
266
+
267
+ if (blockedDialog != nil) {
268
+ NSString *title = [blockedDialog objectForKey:@"title"];
269
+ NSString *body = [blockedDialog objectForKey:@"body"];
270
+ config.defaultBlockedDialog = [[BlockedDialog alloc] initWithTitle:title
271
+ body:body];
272
+ }
273
+
274
+ // Cast NSInteger to Swift-bridged enum types explicitly.
275
+ config.logLevel = (LogLevel)logLevel;
276
+ config.environment = (Environment)environmentInfo;
277
+
278
+ [Shield setUpWith:config];
279
+ isShieldInitialized = YES;
280
+ }
281
+ }
282
+
283
+ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(getSessionId)
284
+ {
285
+ return [[Shield shared] sessionId];
286
+ }
287
+
288
+ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(isShieldInitialized)
289
+ {
290
+ return @(isShieldInitialized);
291
+ }
292
+
293
+ #endif // RCT_NEW_ARCH_ENABLED
294
+
295
+ @end
@@ -0,0 +1,282 @@
1
+ // !$*UTF8*$!
2
+ {
3
+ archiveVersion = 1;
4
+ classes = {
5
+ };
6
+ objectVersion = 46;
7
+ objects = {
8
+
9
+ /* Begin PBXBuildFile section */
10
+ 4DC15CAF29F27C9B002A8B6C /* ShieldFraudPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = B3E7B5891CC2AC0600A0062D /* ShieldFraudPlugin.m */; };
11
+ /* End PBXBuildFile section */
12
+
13
+ /* Begin PBXCopyFilesBuildPhase section */
14
+ 58B511D91A9E6C8500147676 /* CopyFiles */ = {
15
+ isa = PBXCopyFilesBuildPhase;
16
+ buildActionMask = 2147483647;
17
+ dstPath = "include/$(PRODUCT_NAME)";
18
+ dstSubfolderSpec = 16;
19
+ files = (
20
+ );
21
+ runOnlyForDeploymentPostprocessing = 0;
22
+ };
23
+ /* End PBXCopyFilesBuildPhase section */
24
+
25
+ /* Begin PBXFileReference section */
26
+ 134814201AA4EA6300B7C361 /* libShieldFraudPlugin.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libShieldFraudPlugin.a; sourceTree = BUILT_PRODUCTS_DIR; };
27
+ B3E7B5881CC2AC0600A0062D /* ShieldFraudPlugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShieldFraudPlugin.h; sourceTree = "<group>"; };
28
+ B3E7B5891CC2AC0600A0062D /* ShieldFraudPlugin.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ShieldFraudPlugin.m; sourceTree = "<group>"; };
29
+ /* End PBXFileReference section */
30
+
31
+ /* Begin PBXFrameworksBuildPhase section */
32
+ 58B511D81A9E6C8500147676 /* Frameworks */ = {
33
+ isa = PBXFrameworksBuildPhase;
34
+ buildActionMask = 2147483647;
35
+ files = (
36
+ );
37
+ runOnlyForDeploymentPostprocessing = 0;
38
+ };
39
+ /* End PBXFrameworksBuildPhase section */
40
+
41
+ /* Begin PBXGroup section */
42
+ 134814211AA4EA7D00B7C361 /* Products */ = {
43
+ isa = PBXGroup;
44
+ children = (
45
+ 134814201AA4EA6300B7C361 /* libShieldFraudPlugin.a */,
46
+ );
47
+ name = Products;
48
+ sourceTree = "<group>";
49
+ };
50
+ 31EC8772E7BF66C38E51DB38 /* Pods */ = {
51
+ isa = PBXGroup;
52
+ children = (
53
+ );
54
+ path = Pods;
55
+ sourceTree = "<group>";
56
+ };
57
+ 58B511D21A9E6C8500147676 = {
58
+ isa = PBXGroup;
59
+ children = (
60
+ B3E7B5881CC2AC0600A0062D /* ShieldFraudPlugin.h */,
61
+ B3E7B5891CC2AC0600A0062D /* ShieldFraudPlugin.m */,
62
+ 134814211AA4EA7D00B7C361 /* Products */,
63
+ 31EC8772E7BF66C38E51DB38 /* Pods */,
64
+ );
65
+ sourceTree = "<group>";
66
+ };
67
+ /* End PBXGroup section */
68
+
69
+ /* Begin PBXNativeTarget section */
70
+ 58B511DA1A9E6C8500147676 /* ShieldFraudPlugin */ = {
71
+ isa = PBXNativeTarget;
72
+ buildConfigurationList = 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "ShieldFraudPlugin" */;
73
+ buildPhases = (
74
+ 58B511D71A9E6C8500147676 /* Sources */,
75
+ 58B511D81A9E6C8500147676 /* Frameworks */,
76
+ 58B511D91A9E6C8500147676 /* CopyFiles */,
77
+ );
78
+ buildRules = (
79
+ );
80
+ dependencies = (
81
+ );
82
+ name = ShieldFraudPlugin;
83
+ productName = RCTDataManager;
84
+ productReference = 134814201AA4EA6300B7C361 /* libShieldFraudPlugin.a */;
85
+ productType = "com.apple.product-type.library.static";
86
+ };
87
+ /* End PBXNativeTarget section */
88
+
89
+ /* Begin PBXProject section */
90
+ 58B511D31A9E6C8500147676 /* Project object */ = {
91
+ isa = PBXProject;
92
+ attributes = {
93
+ LastUpgradeCheck = 0920;
94
+ ORGANIZATIONNAME = Facebook;
95
+ TargetAttributes = {
96
+ 58B511DA1A9E6C8500147676 = {
97
+ CreatedOnToolsVersion = 6.1.1;
98
+ };
99
+ };
100
+ };
101
+ buildConfigurationList = 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "ShieldFraudPlugin" */;
102
+ compatibilityVersion = "Xcode 3.2";
103
+ developmentRegion = English;
104
+ hasScannedForEncodings = 0;
105
+ knownRegions = (
106
+ English,
107
+ en,
108
+ );
109
+ mainGroup = 58B511D21A9E6C8500147676;
110
+ productRefGroup = 58B511D21A9E6C8500147676;
111
+ projectDirPath = "";
112
+ projectRoot = "";
113
+ targets = (
114
+ 58B511DA1A9E6C8500147676 /* ShieldFraudPlugin */,
115
+ );
116
+ };
117
+ /* End PBXProject section */
118
+
119
+ /* Begin PBXSourcesBuildPhase section */
120
+ 58B511D71A9E6C8500147676 /* Sources */ = {
121
+ isa = PBXSourcesBuildPhase;
122
+ buildActionMask = 2147483647;
123
+ files = (
124
+ 4DC15CAF29F27C9B002A8B6C /* ShieldFraudPlugin.m in Sources */,
125
+ );
126
+ runOnlyForDeploymentPostprocessing = 0;
127
+ };
128
+ /* End PBXSourcesBuildPhase section */
129
+
130
+ /* Begin XCBuildConfiguration section */
131
+ 58B511ED1A9E6C8500147676 /* Debug */ = {
132
+ isa = XCBuildConfiguration;
133
+ buildSettings = {
134
+ ALWAYS_SEARCH_USER_PATHS = NO;
135
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
136
+ CLANG_CXX_LIBRARY = "libc++";
137
+ CLANG_ENABLE_MODULES = YES;
138
+ CLANG_ENABLE_OBJC_ARC = YES;
139
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
140
+ CLANG_WARN_BOOL_CONVERSION = YES;
141
+ CLANG_WARN_COMMA = YES;
142
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
143
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
144
+ CLANG_WARN_EMPTY_BODY = YES;
145
+ CLANG_WARN_ENUM_CONVERSION = YES;
146
+ CLANG_WARN_INFINITE_RECURSION = YES;
147
+ CLANG_WARN_INT_CONVERSION = YES;
148
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
149
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
150
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
151
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
152
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
153
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
154
+ CLANG_WARN_UNREACHABLE_CODE = YES;
155
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
156
+ COPY_PHASE_STRIP = NO;
157
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
158
+ ENABLE_TESTABILITY = YES;
159
+ "EXCLUDED_ARCHS[sdk=*]" = arm64;
160
+ GCC_C_LANGUAGE_STANDARD = gnu99;
161
+ GCC_DYNAMIC_NO_PIC = NO;
162
+ GCC_NO_COMMON_BLOCKS = YES;
163
+ GCC_OPTIMIZATION_LEVEL = 0;
164
+ GCC_PREPROCESSOR_DEFINITIONS = (
165
+ "DEBUG=1",
166
+ "$(inherited)",
167
+ );
168
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
169
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
170
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
171
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
172
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
173
+ GCC_WARN_UNUSED_FUNCTION = YES;
174
+ GCC_WARN_UNUSED_VARIABLE = YES;
175
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
176
+ MTL_ENABLE_DEBUG_INFO = YES;
177
+ ONLY_ACTIVE_ARCH = YES;
178
+ SDKROOT = iphoneos;
179
+ };
180
+ name = Debug;
181
+ };
182
+ 58B511EE1A9E6C8500147676 /* Release */ = {
183
+ isa = XCBuildConfiguration;
184
+ buildSettings = {
185
+ ALWAYS_SEARCH_USER_PATHS = NO;
186
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
187
+ CLANG_CXX_LIBRARY = "libc++";
188
+ CLANG_ENABLE_MODULES = YES;
189
+ CLANG_ENABLE_OBJC_ARC = YES;
190
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
191
+ CLANG_WARN_BOOL_CONVERSION = YES;
192
+ CLANG_WARN_COMMA = YES;
193
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
194
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
195
+ CLANG_WARN_EMPTY_BODY = YES;
196
+ CLANG_WARN_ENUM_CONVERSION = YES;
197
+ CLANG_WARN_INFINITE_RECURSION = YES;
198
+ CLANG_WARN_INT_CONVERSION = YES;
199
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
200
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
201
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
202
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
203
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
204
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
205
+ CLANG_WARN_UNREACHABLE_CODE = YES;
206
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
207
+ COPY_PHASE_STRIP = YES;
208
+ ENABLE_NS_ASSERTIONS = NO;
209
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
210
+ "EXCLUDED_ARCHS[sdk=*]" = arm64;
211
+ GCC_C_LANGUAGE_STANDARD = gnu99;
212
+ GCC_NO_COMMON_BLOCKS = YES;
213
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
214
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
215
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
216
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
217
+ GCC_WARN_UNUSED_FUNCTION = YES;
218
+ GCC_WARN_UNUSED_VARIABLE = YES;
219
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
220
+ MTL_ENABLE_DEBUG_INFO = NO;
221
+ SDKROOT = iphoneos;
222
+ VALIDATE_PRODUCT = YES;
223
+ };
224
+ name = Release;
225
+ };
226
+ 58B511F01A9E6C8500147676 /* Debug */ = {
227
+ isa = XCBuildConfiguration;
228
+ buildSettings = {
229
+ HEADER_SEARCH_PATHS = (
230
+ "$(inherited)",
231
+ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
232
+ "$(SRCROOT)/../../../React/**",
233
+ "$(SRCROOT)/../../react-native/React/**",
234
+ );
235
+ LIBRARY_SEARCH_PATHS = "$(inherited)";
236
+ OTHER_LDFLAGS = "-ObjC";
237
+ PRODUCT_NAME = ShieldFraudPlugin;
238
+ SKIP_INSTALL = YES;
239
+ };
240
+ name = Debug;
241
+ };
242
+ 58B511F11A9E6C8500147676 /* Release */ = {
243
+ isa = XCBuildConfiguration;
244
+ buildSettings = {
245
+ HEADER_SEARCH_PATHS = (
246
+ "$(inherited)",
247
+ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
248
+ "$(SRCROOT)/../../../React/**",
249
+ "$(SRCROOT)/../../react-native/React/**",
250
+ );
251
+ LIBRARY_SEARCH_PATHS = "$(inherited)";
252
+ OTHER_LDFLAGS = "-ObjC";
253
+ PRODUCT_NAME = ShieldFraudPlugin;
254
+ SKIP_INSTALL = YES;
255
+ };
256
+ name = Release;
257
+ };
258
+ /* End XCBuildConfiguration section */
259
+
260
+ /* Begin XCConfigurationList section */
261
+ 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "ShieldFraudPlugin" */ = {
262
+ isa = XCConfigurationList;
263
+ buildConfigurations = (
264
+ 58B511ED1A9E6C8500147676 /* Debug */,
265
+ 58B511EE1A9E6C8500147676 /* Release */,
266
+ );
267
+ defaultConfigurationIsVisible = 0;
268
+ defaultConfigurationName = Release;
269
+ };
270
+ 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "ShieldFraudPlugin" */ = {
271
+ isa = XCConfigurationList;
272
+ buildConfigurations = (
273
+ 58B511F01A9E6C8500147676 /* Debug */,
274
+ 58B511F11A9E6C8500147676 /* Release */,
275
+ );
276
+ defaultConfigurationIsVisible = 0;
277
+ defaultConfigurationName = Release;
278
+ };
279
+ /* End XCConfigurationList section */
280
+ };
281
+ rootObject = 58B511D31A9E6C8500147676 /* Project object */;
282
+ }
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Workspace
3
+ version = "1.0">
4
+ </Workspace>
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ /**
9
+ * TypeScript spec for the ShieldFraudPlugin Turbo Module.
10
+ * This file is used by React Native codegen to auto-generate
11
+ * native interface code for both iOS and Android.
12
+ */
13
+ var _default = _reactNative.TurboModuleRegistry.getEnforcing('ShieldFraudPlugin');
14
+ exports.default = _default;
15
+ //# sourceMappingURL=NativeShieldFraudPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_default","TurboModuleRegistry","getEnforcing","exports","default"],"sourceRoot":"../../src","sources":["NativeShieldFraudPlugin.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AAJA,IAAAC,QAAA,GAmFeC,gCAAmB,CAACC,YAAY,CAAO,mBAAmB,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAJ,QAAA"}