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.
- package/LICENSE +20 -0
- package/README.md +237 -0
- package/android/build.gradle +109 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +5 -0
- package/android/src/main/java/com/shieldfraudplugin/ShieldFraudPluginModule.java +441 -0
- package/android/src/main/java/com/shieldfraudplugin/ShieldFraudPluginPackage.java +78 -0
- package/android/src/newarch/java/com/shieldfraudplugin/ShieldFraudPluginSpec.java +41 -0
- package/android/src/oldarch/java/com/shieldfraudplugin/ShieldFraudPluginSpec.java +36 -0
- package/ios/ShieldFraudPlugin.h +24 -0
- package/ios/ShieldFraudPlugin.mm +295 -0
- package/ios/ShieldFraudPlugin.xcodeproj/project.pbxproj +282 -0
- package/ios/ShieldFraudPlugin.xcodeproj/project.xcworkspace/contents.xcworkspacedata +4 -0
- package/lib/commonjs/NativeShieldFraudPlugin.js +15 -0
- package/lib/commonjs/NativeShieldFraudPlugin.js.map +1 -0
- package/lib/commonjs/index.js +256 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/module/NativeShieldFraudPlugin.js +10 -0
- package/lib/module/NativeShieldFraudPlugin.js.map +1 -0
- package/lib/module/index.js +253 -0
- package/lib/module/index.js.map +1 -0
- package/lib/typescript/src/NativeShieldFraudPlugin.d.ts +53 -0
- package/lib/typescript/src/NativeShieldFraudPlugin.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +143 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/package.json +169 -0
- package/react-native-shield-fraud-plugin.podspec +29 -0
- package/react-native-shield-full-plugin.podspec +29 -0
- package/src/NativeShieldFraudPlugin.ts +87 -0
- 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,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"}
|