@onekeyfe/react-native-lite-card 0.1.2

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 (95) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +37 -0
  3. package/ReactNativeLiteCard.podspec +22 -0
  4. package/android/build.gradle +79 -0
  5. package/android/gradle.properties +5 -0
  6. package/android/src/main/AndroidManifest.xml +2 -0
  7. package/android/src/main/config/command.json +205 -0
  8. package/android/src/main/cpp/CMakeLists.txt +19 -0
  9. package/android/src/main/cpp/validation.c +227 -0
  10. package/android/src/main/cpp/validation.h +19 -0
  11. package/android/src/main/java/com/onekeyfe/reactnativelitecard/LoggerManager.kt +35 -0
  12. package/android/src/main/java/com/onekeyfe/reactnativelitecard/ReactNativeLiteCardModule.kt +420 -0
  13. package/android/src/main/java/com/onekeyfe/reactnativelitecard/ReactNativeLiteCardPackage.kt +33 -0
  14. package/android/src/main/java/com/onekeyfe/reactnativelitecard/keys/KeysNativeProvider.kt +13 -0
  15. package/android/src/main/java/com/onekeyfe/reactnativelitecard/nfc/Exceptions.kt +58 -0
  16. package/android/src/main/java/com/onekeyfe/reactnativelitecard/nfc/NfcUtils.kt +142 -0
  17. package/android/src/main/java/com/onekeyfe/reactnativelitecard/nfc/broadcast/NfcStatusChangeBroadcastReceiver.kt +56 -0
  18. package/android/src/main/java/com/onekeyfe/reactnativelitecard/nfc/gpchannel/GPChannelNatives.kt +32 -0
  19. package/android/src/main/java/com/onekeyfe/reactnativelitecard/onekeyLite/NfcConstant.kt +38 -0
  20. package/android/src/main/java/com/onekeyfe/reactnativelitecard/onekeyLite/OnekeyLiteCard.kt +236 -0
  21. package/android/src/main/java/com/onekeyfe/reactnativelitecard/onekeyLite/entitys/APDUParam.kt +17 -0
  22. package/android/src/main/java/com/onekeyfe/reactnativelitecard/onekeyLite/entitys/CardInfo.java +84 -0
  23. package/android/src/main/java/com/onekeyfe/reactnativelitecard/onekeyLite/entitys/CardResponse.java +37 -0
  24. package/android/src/main/java/com/onekeyfe/reactnativelitecard/onekeyLite/entitys/CardState.kt +10 -0
  25. package/android/src/main/java/com/onekeyfe/reactnativelitecard/onekeyLite/entitys/ParsedCertInfo.java +39 -0
  26. package/android/src/main/java/com/onekeyfe/reactnativelitecard/onekeyLite/entitys/SecureChanelParam.java +113 -0
  27. package/android/src/main/java/com/onekeyfe/reactnativelitecard/onekeyLite/entitys/SendResponse.kt +26 -0
  28. package/android/src/main/java/com/onekeyfe/reactnativelitecard/onekeyLite/nfc/CommandGenerator.kt +178 -0
  29. package/android/src/main/java/com/onekeyfe/reactnativelitecard/onekeyLite/nfc/Connection.kt +439 -0
  30. package/android/src/main/java/com/onekeyfe/reactnativelitecard/onekeyLite/nfc/GPCAPDUGenerator.kt +56 -0
  31. package/android/src/main/java/com/onekeyfe/reactnativelitecard/utils/EventUtils.kt +14 -0
  32. package/android/src/main/java/com/onekeyfe/reactnativelitecard/utils/GpsUtil.kt +38 -0
  33. package/android/src/main/java/com/onekeyfe/reactnativelitecard/utils/HexUtils.java +93 -0
  34. package/android/src/main/java/com/onekeyfe/reactnativelitecard/utils/LogUtil.kt +11 -0
  35. package/android/src/main/java/com/onekeyfe/reactnativelitecard/utils/MiUtil.kt +93 -0
  36. package/android/src/main/java/com/onekeyfe/reactnativelitecard/utils/NfcPermissionUtils.kt +24 -0
  37. package/android/src/main/java/com/onekeyfe/reactnativelitecard/utils/Utils.java +437 -0
  38. package/android/src/main/jniLibs/arm64-v8a/libgpchannelNDK.so +0 -0
  39. package/android/src/main/jniLibs/armeabi-v7a/libgpchannelNDK.so +0 -0
  40. package/ios/Classes/OKLiteCommand/OKLiteCommandModal.h +39 -0
  41. package/ios/Classes/OKLiteCommand/OKLiteCommandModal.m +143 -0
  42. package/ios/Classes/OKLiteCommand/OKLiteCommandTool.h +28 -0
  43. package/ios/Classes/OKLiteCommand/OKLiteCommandTool.m +53 -0
  44. package/ios/Classes/OKNFCBridge.h +28 -0
  45. package/ios/Classes/OKNFCBridge.mm +221 -0
  46. package/ios/Classes/OKNFCLiteDefine.h +108 -0
  47. package/ios/Classes/OKNFTLite/OKLiteProtocol.h +37 -0
  48. package/ios/Classes/OKNFTLite/OKLiteV1.h +41 -0
  49. package/ios/Classes/OKNFTLite/OKLiteV1.m +609 -0
  50. package/ios/Classes/OKNFTLite/OKLiteV2.h +17 -0
  51. package/ios/Classes/OKNFTLite/OKLiteV2.m +132 -0
  52. package/ios/Classes/OKNFTLite/OKNFCManager.h +40 -0
  53. package/ios/Classes/OKNFTLite/OKNFCManager.m +330 -0
  54. package/ios/Classes/Utils/NFCConfig.h +19 -0
  55. package/ios/Classes/Utils/NFCConfig.m +18 -0
  56. package/ios/Classes/Utils/NSData+OKNFCHexData.h +17 -0
  57. package/ios/Classes/Utils/NSData+OKNFCHexData.m +24 -0
  58. package/ios/Classes/Utils/NSData+StringToData.h +12 -0
  59. package/ios/Classes/Utils/NSData+StringToData.m +25 -0
  60. package/ios/Classes/Utils/NSString+OKAdd.h +14 -0
  61. package/ios/Classes/Utils/NSString+OKAdd.m +40 -0
  62. package/ios/Classes/Utils/NSString+OKNFCHexStr.h +18 -0
  63. package/ios/Classes/Utils/NSString+OKNFCHexStr.m +38 -0
  64. package/ios/Classes/Utils/OKNFCUtility.h +18 -0
  65. package/ios/Classes/Utils/OKNFCUtility.m +22 -0
  66. package/ios/Classes/Utils/OKTools.h +17 -0
  67. package/ios/Classes/Utils/OKTools.m +21 -0
  68. package/ios/GPChannelSDKCore.xcframework/Info.plist +52 -0
  69. package/ios/GPChannelSDKCore.xcframework/ios-arm64/GPChannelSDKCore.framework/GPChannelSDKCore +0 -0
  70. package/ios/GPChannelSDKCore.xcframework/ios-arm64/GPChannelSDKCore.framework/Headers/GPChannelSDK.h +315 -0
  71. package/ios/GPChannelSDKCore.xcframework/ios-arm64/GPChannelSDKCore.framework/Headers/GPChannelSDKCore.h +19 -0
  72. package/ios/GPChannelSDKCore.xcframework/ios-arm64/GPChannelSDKCore.framework/Info.plist +0 -0
  73. package/ios/GPChannelSDKCore.xcframework/ios-arm64/GPChannelSDKCore.framework/Modules/module.modulemap +7 -0
  74. package/ios/GPChannelSDKCore.xcframework/ios-arm64/GPChannelSDKCore.framework/_CodeSignature/CodeResources +147 -0
  75. package/ios/GPChannelSDKCore.xcframework/ios-arm64_x86_64-simulator/GPChannelSDKCore.framework/GPChannelSDKCore +0 -0
  76. package/ios/GPChannelSDKCore.xcframework/ios-arm64_x86_64-simulator/GPChannelSDKCore.framework/Headers/GPChannelSDK.h +315 -0
  77. package/ios/GPChannelSDKCore.xcframework/ios-arm64_x86_64-simulator/GPChannelSDKCore.framework/Headers/GPChannelSDKCore.h +19 -0
  78. package/ios/GPChannelSDKCore.xcframework/ios-arm64_x86_64-simulator/GPChannelSDKCore.framework/Info.plist +0 -0
  79. package/ios/GPChannelSDKCore.xcframework/ios-arm64_x86_64-simulator/GPChannelSDKCore.framework/Modules/module.modulemap +7 -0
  80. package/ios/GPChannelSDKCore.xcframework/ios-arm64_x86_64-simulator/GPChannelSDKCore.framework/_CodeSignature/CodeResources +147 -0
  81. package/ios/ReactNativeLiteCard.h +5 -0
  82. package/ios/ReactNativeLiteCard.mm +222 -0
  83. package/lib/module/NativeReactNativeLiteCard.js +25 -0
  84. package/lib/module/NativeReactNativeLiteCard.js.map +1 -0
  85. package/lib/module/index.js +71 -0
  86. package/lib/module/index.js.map +1 -0
  87. package/lib/module/package.json +1 -0
  88. package/lib/typescript/package.json +1 -0
  89. package/lib/typescript/src/NativeReactNativeLiteCard.d.ts +59 -0
  90. package/lib/typescript/src/NativeReactNativeLiteCard.d.ts.map +1 -0
  91. package/lib/typescript/src/index.d.ts +23 -0
  92. package/lib/typescript/src/index.d.ts.map +1 -0
  93. package/package.json +168 -0
  94. package/src/NativeReactNativeLiteCard.ts +112 -0
  95. package/src/index.tsx +94 -0
@@ -0,0 +1,222 @@
1
+ #import "ReactNativeLiteCard.h"
2
+
3
+ #import "NFCConfig.h"
4
+ #import "OKNFCManager.h"
5
+ #import "OKLiteV1.h"
6
+
7
+ typedef NS_ENUM(NSInteger, NFCLiteExceptions) {
8
+ NFCLiteExceptionsInitChannel = 1000,// 初始化异常
9
+ NFCLiteExceptionsNotExistsNFC = 1001,// 没有 NFC 设备
10
+ NFCLiteExceptionsNotEnableNFC = 1002, // 没有开启 NFC 设备
11
+ NFCLiteExceptionsNotNFCPermission = 1003,// 没有使用 NFC 的权限
12
+ NFCLiteExceptionsConnectionFail = 2001,// 连接失败
13
+ NFCLiteExceptionsInterrupt = 2002,// 操作中断(可能是连接问题)
14
+ NFCLiteExceptionsDeviceMismatch = 2003,// 连接设备不匹配
15
+ NFCLiteExceptionsUserCancel = 2004,// 用户取消连接
16
+ NFCLiteExceptionsPasswordWrong = 3001,// 密码错误
17
+ NFCLiteExceptionsInputPasswordEmpty = 3002,// 输入密码为空
18
+ NFCLiteExceptionsPasswordEmpty = 3003,// 未设置过密码
19
+ NFCLiteExceptionsInitPassword = 3004,// 设置初始化密码错误
20
+ NFCLiteExceptionsCardLock = 3005,// 密码重试次数太多已经锁死
21
+ NFCLiteExceptionsAutoReset = 3006,// 密码重试次数太多已经自动重制卡片
22
+ NFCLiteExceptionsExecFailure = 4000,// 未知的命令执行失败
23
+ NFCLiteExceptionsInitialized = 4001,// 已经备份过内容
24
+ NFCLiteExceptionsNotInitialized = 4002,// 没有备份过内容
25
+ };
26
+
27
+ @implementation ReactNativeLiteCard
28
+ - (NSNumber *)multiply:(double)a b:(double)b {
29
+ NSNumber *result = @(a * b);
30
+
31
+ return result;
32
+ }
33
+
34
+ - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
35
+ (const facebook::react::ObjCTurboModule::InitParams &)params
36
+ {
37
+ return std::make_shared<facebook::react::NativeReactNativeLiteCardSpecJSI>(params);
38
+ }
39
+
40
+ + (NSString *)moduleName
41
+ {
42
+ return @"ReactNativeLiteCard";
43
+ }
44
+
45
+ - (void)checkNFCPermission:(RCTResponseSenderBlock)callback
46
+ {
47
+ BOOL permission = [NFCNDEFReaderSession readingAvailable];
48
+ if (permission) {
49
+ callback(@[[NSNull null],@(permission),[NSNull null]]);
50
+ } else {
51
+ callback(@[@{@"code":@(NFCLiteExceptionsNotExistsNFC),@"message":@""},[NSNull null],[NSNull null]]);
52
+ }
53
+
54
+ }
55
+
56
+ - (void)getLiteInfo:(RCTResponseSenderBlock)callBack
57
+ {
58
+ if ([ReactNativeLiteCard checkSDKVaild:callBack]) {
59
+ __block OKNFCManager *liteManager = [[OKNFCManager alloc] init];
60
+ [liteManager getLiteInfo:^(OKLiteV1 *lite, OKNFCLiteStatus status) {
61
+ NSDictionary *cardInfo = [lite cardInfo];
62
+ BOOL error = status == OKNFCLiteStatusError || status == OKNFCLiteStatusSNNotMatch;
63
+ if (error) {
64
+ callBack(@[@{@"code":@(NFCLiteExceptionsConnectionFail),@"message":@""},[NSNull null],[NSNull null]]);
65
+ } else {
66
+ callBack(@[[NSNull null],cardInfo,cardInfo]);
67
+ }
68
+ liteManager = nil;
69
+ }];
70
+ }
71
+ }
72
+
73
+ - (void)setMnemonic:(NSString *)mnemonic pwd:(NSString *)pwd overwrite:(BOOL)overwrite callback:(RCTResponseSenderBlock)callBack
74
+ {
75
+ if ([ReactNativeLiteCard checkSDKVaild:callBack]) {
76
+ __block OKNFCManager *liteManager = [[OKNFCManager alloc] init];
77
+ [liteManager setMnemonic:mnemonic withPin:pwd overwrite:overwrite complete:^(OKLiteV1 *lite, OKNFCLiteSetMncStatus status) {
78
+ NSDictionary *cardInfo = [lite cardInfo];
79
+ switch (status) {
80
+ case OKNFCLiteSetMncStatusSuccess:
81
+ callBack(@[[NSNull null],@(true),cardInfo]);
82
+ break;
83
+ case OKNFCLiteSetMncStatusError:
84
+ if (lite.status == OKNFCLiteStatusActivated) {
85
+ callBack(@[@{@"code":@(NFCLiteExceptionsInitialized),@"message":@""},[NSNull null],[NSNull null]]);
86
+ } else {
87
+ callBack(@[@{@"code":@(NFCLiteExceptionsConnectionFail),@"message":@""},[NSNull null],[NSNull null]]);
88
+ }
89
+ break;
90
+ case OKNFCLiteSetMncStatusSNNotMatch:
91
+ callBack(@[@{@"code":@(NFCLiteExceptionsDeviceMismatch),@"message":@""},[NSNull null],[NSNull null]]);
92
+ break;
93
+ case OKNFCLiteSetMncStatusPinNotMatch:
94
+ callBack(@[@{@"code":@(NFCLiteExceptionsPasswordWrong),@"message":@""},[NSNull null],cardInfo]);
95
+ break;
96
+ case OKNFCLiteSetMncStatusWiped:
97
+ callBack(@[@{@"code":@(NFCLiteExceptionsAutoReset),@"message":@""},[NSNull null],[NSNull null]]);
98
+ break;
99
+ case OKNFCLiteSetMncStatusCancel:
100
+ callBack(@[@{@"code":@(NFCLiteExceptionsUserCancel),@"message":@""},[NSNull null],[NSNull null]]);
101
+ break;
102
+ default:
103
+ break;
104
+ }
105
+ liteManager = nil;
106
+ }];
107
+ }
108
+ }
109
+
110
+ - (void)getMnemonicWithPin:(NSString *)pwd callback:(RCTResponseSenderBlock)callBack
111
+ {
112
+ if ([ReactNativeLiteCard checkSDKVaild:callBack]) {
113
+ __block OKNFCManager *liteManager = [[OKNFCManager alloc] init];
114
+ [liteManager getMnemonicWithPin:pwd complete:^(OKLiteV1 *lite, NSString *mnemonic, OKNFCLiteGetMncStatus status) {
115
+ NSDictionary *cardInfo = [lite cardInfo];
116
+ switch (status) {
117
+ case OKNFCLiteGetMncStatusSuccess:
118
+ if (mnemonic.length > 0) {
119
+ callBack(@[[NSNull null],mnemonic,cardInfo]);
120
+ }
121
+ break;
122
+ case OKNFCLiteGetMncStatusError:
123
+ if (lite.status == OKNFCLiteStatusNewCard && lite.SN != nil) {
124
+ callBack(@[@{@"code":@(NFCLiteExceptionsNotInitialized),@"message":@""},[NSNull null],[NSNull null]]);
125
+ } else {
126
+ callBack(@[@{@"code":@(NFCLiteExceptionsConnectionFail),@"message":@""},[NSNull null],[NSNull null]]);
127
+ }
128
+ break;
129
+ case OKNFCLiteGetMncStatusSNNotMatch:
130
+ callBack(@[@{@"code":@(NFCLiteExceptionsDeviceMismatch),@"message":@""},[NSNull null],[NSNull null]]);
131
+ break;
132
+ case OKNFCLiteGetMncStatusPinNotMatch:
133
+ callBack(@[@{@"code":@(NFCLiteExceptionsPasswordWrong),@"message":@""},[NSNull null],cardInfo]);
134
+ break;
135
+ case OKNFCLiteGetMncStatusWiped:
136
+ callBack(@[@{@"code":@(NFCLiteExceptionsAutoReset),@"message":@""},[NSNull null],[NSNull null]]);
137
+ break;
138
+ case OKNFCLiteGetMncStatusCancel:
139
+ callBack(@[@{@"code":@(NFCLiteExceptionsUserCancel),@"message":@""},[NSNull null],[NSNull null]]);
140
+ break;
141
+ default:
142
+ break;
143
+ }
144
+ liteManager = nil;
145
+ }];
146
+ }
147
+ }
148
+
149
+ - (void)changePin:(NSString *)oldPin newPin:(NSString *)newPin callback:(RCTResponseSenderBlock)callBack
150
+ {
151
+ if ([ReactNativeLiteCard checkSDKVaild:callBack]) {
152
+ __block OKNFCManager *liteManager = [[OKNFCManager alloc] init];
153
+ [liteManager changePin:oldPin to:newPin complete:^(OKLiteV1 *lite, OKNFCLiteChangePinStatus status) {
154
+ NSDictionary *cardInfo = [lite cardInfo];
155
+ switch (status) {
156
+ case OKNFCLiteChangePinStatusSuccess: {
157
+ callBack(@[[NSNull null],@(true),cardInfo]);
158
+ } break;
159
+ case OKNFCLiteChangePinStatusWiped: {
160
+ callBack(@[@{@"code":@(NFCLiteExceptionsAutoReset),@"message":@""},[NSNull null],[NSNull null]]);
161
+ } break;
162
+ case OKNFCLiteChangePinStatusPinNotMatch: {
163
+ callBack(@[@{@"code":@(NFCLiteExceptionsPasswordWrong),@"message":@""},[NSNull null],cardInfo]);
164
+ } break;
165
+ case OKNFCLiteChangePinStatusError: {
166
+ if (lite.status == OKNFCLiteStatusNewCard && lite.SN != nil) {
167
+ callBack(@[@{@"code":@(NFCLiteExceptionsNotInitialized),@"message":@""},[NSNull null],[NSNull null]]);
168
+ } else {
169
+ callBack(@[@{@"code":@(NFCLiteExceptionsConnectionFail),@"message":@""},[NSNull null],[NSNull null]]);
170
+ }
171
+ } break;
172
+ case OKNFCLiteChangePinStatusCancel: {
173
+ callBack(@[@{@"code":@(NFCLiteExceptionsUserCancel),@"message":@""},[NSNull null],[NSNull null]]);
174
+ } break;
175
+ default: break;
176
+ }
177
+ liteManager = nil;
178
+ }];
179
+ }
180
+ }
181
+
182
+ - (void)reset:(RCTResponseSenderBlock)callBack
183
+ {
184
+ if ([ReactNativeLiteCard checkSDKVaild:callBack]) {
185
+ __block OKNFCManager *liteManager = [[OKNFCManager alloc] init];
186
+ [liteManager reset:^(OKLiteV1 *lite, BOOL isSuccess, NSError *error) {
187
+ if (isSuccess) {
188
+ NSDictionary *cardInfo = [lite cardInfo];
189
+ callBack(@[[NSNull null],@(true),cardInfo]);
190
+ } else {
191
+ if (error && error.code == 200) {
192
+ callBack(@[@{@"code":@(NFCLiteExceptionsUserCancel),@"message":@""},[NSNull null],[NSNull null]]);
193
+ } else {
194
+ callBack(@[@{@"code":@(NFCLiteExceptionsConnectionFail),@"message":@""},[NSNull null],[NSNull null]]);
195
+ }
196
+ }
197
+ liteManager = nil;
198
+ }];
199
+ }
200
+ }
201
+
202
+ - (void)cancel {
203
+ // iOS does not need cancel implementation
204
+ }
205
+
206
+ - (void)intoSetting {
207
+ [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString] options:@{} completionHandler:nil];
208
+ }
209
+
210
+ + (BOOL)checkSDKVaild:(RCTResponseSenderBlock)callback {
211
+ if (![NFCNDEFReaderSession readingAvailable]) {
212
+ callback(@[@{@"code":@(NFCLiteExceptionsNotNFCPermission),@"message":@""},[NSNull null],[NSNull null]]);
213
+ return NO;
214
+ }
215
+ if ([NFCConfig envFor:@"crt"].length > 0 && [NFCConfig envFor:@"sk"].length > 0) {
216
+ return YES;
217
+ }
218
+ callback(@[@{@"code":@(NFCLiteExceptionsInitChannel),@"message":@""},[NSNull null],[NSNull null]]);
219
+ return NO;
220
+ }
221
+
222
+ @end
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ import { TurboModuleRegistry } from 'react-native';
4
+ export let CardErrors = /*#__PURE__*/function (CardErrors) {
5
+ CardErrors[CardErrors["InitChannel"] = 1000] = "InitChannel";
6
+ CardErrors[CardErrors["NotExistsNFC"] = 1001] = "NotExistsNFC";
7
+ CardErrors[CardErrors["NotEnableNFC"] = 1002] = "NotEnableNFC";
8
+ CardErrors[CardErrors["NotNFCPermission"] = 1003] = "NotNFCPermission";
9
+ CardErrors[CardErrors["ConnectionFail"] = 2001] = "ConnectionFail";
10
+ CardErrors[CardErrors["InterruptError"] = 2002] = "InterruptError";
11
+ CardErrors[CardErrors["DeviceMismatch"] = 2003] = "DeviceMismatch";
12
+ CardErrors[CardErrors["UserCancel"] = 2004] = "UserCancel";
13
+ CardErrors[CardErrors["PasswordWrong"] = 3001] = "PasswordWrong";
14
+ CardErrors[CardErrors["InputPasswordEmpty"] = 3002] = "InputPasswordEmpty";
15
+ CardErrors[CardErrors["NotSetPassword"] = 3003] = "NotSetPassword";
16
+ CardErrors[CardErrors["InitPasswordError"] = 3004] = "InitPasswordError";
17
+ CardErrors[CardErrors["CardLock"] = 3005] = "CardLock";
18
+ CardErrors[CardErrors["UpperErrorAutoReset"] = 3006] = "UpperErrorAutoReset";
19
+ CardErrors[CardErrors["ExecFailure"] = 4000] = "ExecFailure";
20
+ CardErrors[CardErrors["InitializedError"] = 4001] = "InitializedError";
21
+ CardErrors[CardErrors["NotInitializedError"] = 4002] = "NotInitializedError";
22
+ return CardErrors;
23
+ }({});
24
+ export default TurboModuleRegistry.getEnforcing('ReactNativeLiteCard');
25
+ //# sourceMappingURL=NativeReactNativeLiteCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TurboModuleRegistry","CardErrors","getEnforcing"],"sourceRoot":"../../src","sources":["NativeReactNativeLiteCard.ts"],"mappings":";;AAAA,SACEA,mBAAmB,QAGd,cAAc;AAuBrB,WAAYC,UAAU,0BAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;AAoFtB,eAAeD,mBAAmB,CAACE,YAAY,CAAO,qBAAqB,CAAC","ignoreList":[]}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ import { Linking, Platform } from 'react-native';
4
+ import OKLiteManager from "./NativeReactNativeLiteCard.js";
5
+ class OnekeyLite {
6
+ addConnectListener(listener) {
7
+ this.removeConnectListeners();
8
+ return OKLiteManager.onNFCUIEvent(event => {
9
+ listener({
10
+ code: Number(event.code),
11
+ message: event.message
12
+ });
13
+ });
14
+ }
15
+ removeConnectListeners() {}
16
+ addAccordListener() {
17
+ return OKLiteManager.onNFCActiveConnection(() => {});
18
+ }
19
+ getLiteInfo() {
20
+ return new Promise(resolve => {
21
+ OKLiteManager.getLiteInfo(this.convertToPromise(resolve));
22
+ });
23
+ }
24
+ checkNFCPermission() {
25
+ return new Promise(resolve => {
26
+ OKLiteManager.checkNFCPermission(this.convertToPromise(resolve));
27
+ });
28
+ }
29
+ setMnemonic(mnemonic, pwd, overwrite = false) {
30
+ return new Promise(resolve => {
31
+ OKLiteManager.setMnemonic(mnemonic, pwd, overwrite, this.convertToPromise(resolve));
32
+ });
33
+ }
34
+ getMnemonicWithPin(pwd) {
35
+ return new Promise(resolve => {
36
+ OKLiteManager.getMnemonicWithPin(pwd, this.convertToPromise(resolve));
37
+ });
38
+ }
39
+ changePin(oldPin, newPin) {
40
+ return new Promise(resolve => {
41
+ OKLiteManager.changePin(oldPin, newPin, this.convertToPromise(resolve));
42
+ });
43
+ }
44
+ reset() {
45
+ return new Promise(resolve => {
46
+ OKLiteManager.reset(this.convertToPromise(resolve));
47
+ });
48
+ }
49
+ convertToPromise(resolve) {
50
+ return (...result) => {
51
+ resolve({
52
+ error: result[0],
53
+ data: result[1],
54
+ cardInfo: result[2]
55
+ });
56
+ };
57
+ }
58
+ cancel() {
59
+ if (Platform.OS === 'android') OKLiteManager.cancel();
60
+ }
61
+ intoSetting() {
62
+ if (Platform.OS === 'android') {
63
+ OKLiteManager.intoSetting();
64
+ } else {
65
+ Linking.openSettings();
66
+ }
67
+ }
68
+ }
69
+ const onekeyLite = new OnekeyLite();
70
+ export default onekeyLite;
71
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Linking","Platform","OKLiteManager","OnekeyLite","addConnectListener","listener","removeConnectListeners","onNFCUIEvent","event","code","Number","message","addAccordListener","onNFCActiveConnection","getLiteInfo","Promise","resolve","convertToPromise","checkNFCPermission","setMnemonic","mnemonic","pwd","overwrite","getMnemonicWithPin","changePin","oldPin","newPin","reset","result","error","data","cardInfo","cancel","OS","intoSetting","openSettings","onekeyLite"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,59 @@
1
+ import { type CodegenTypes, type TurboModule } from 'react-native';
2
+ export type CallbackError = {
3
+ code: number;
4
+ message: string | null;
5
+ } | null;
6
+ export type CardInfo = {
7
+ hasBackup: boolean;
8
+ isNewCard: boolean;
9
+ serialNum: string;
10
+ pinRetryCount: number;
11
+ } | null;
12
+ export type CallbackResult<T> = [
13
+ error: CallbackError | null,
14
+ data: T | null,
15
+ cardInfo: CardInfo | null
16
+ ];
17
+ export type PromiseResult<T> = {
18
+ error: CallbackError | null;
19
+ data: T | null;
20
+ cardInfo: CardInfo | null;
21
+ };
22
+ export declare enum CardErrors {
23
+ InitChannel = 1000,
24
+ NotExistsNFC = 1001,
25
+ NotEnableNFC = 1002,
26
+ NotNFCPermission = 1003,
27
+ ConnectionFail = 2001,
28
+ InterruptError = 2002,
29
+ DeviceMismatch = 2003,
30
+ UserCancel = 2004,
31
+ PasswordWrong = 3001,
32
+ InputPasswordEmpty = 3002,
33
+ NotSetPassword = 3003,
34
+ InitPasswordError = 3004,
35
+ CardLock = 3005,
36
+ UpperErrorAutoReset = 3006,
37
+ ExecFailure = 4000,
38
+ InitializedError = 4001,
39
+ NotInitializedError = 4002
40
+ }
41
+ type KeyValuePair = {
42
+ code: string;
43
+ message: string;
44
+ };
45
+ export interface Spec extends TurboModule {
46
+ getLiteInfo(callback: (error: CallbackError | null, data: CardInfo | null, cardInfo: CardInfo | null) => void): void;
47
+ checkNFCPermission(callback: (error: CallbackError | null, data: boolean | null, cardInfo: CardInfo | null) => void): void;
48
+ setMnemonic(mnemonic: string, pwd: string, overwrite: boolean, callback: (error: CallbackError | null, data: boolean | null, cardInfo: CardInfo | null) => void): void;
49
+ getMnemonicWithPin(pwd: string, callback: (error: CallbackError | null, data: string | null, cardInfo: CardInfo | null) => void): void;
50
+ changePin(oldPin: string, newPin: string, callback: (error: CallbackError | null, data: boolean | null, cardInfo: CardInfo | null) => void): void;
51
+ reset(callback: (error: CallbackError | null, data: boolean | null, cardInfo: CardInfo | null) => void): void;
52
+ cancel(): void;
53
+ intoSetting(): void;
54
+ readonly onNFCActiveConnection: CodegenTypes.EventEmitter<KeyValuePair>;
55
+ readonly onNFCUIEvent: CodegenTypes.EventEmitter<KeyValuePair>;
56
+ }
57
+ declare const _default: Spec;
58
+ export default _default;
59
+ //# sourceMappingURL=NativeReactNativeLiteCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeReactNativeLiteCard.d.ts","sourceRoot":"","sources":["../../../src/NativeReactNativeLiteCard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { CallbackResult, CardInfo, PromiseResult } from './NativeReactNativeLiteCard';
2
+ export type NfcConnectUiState = {
3
+ code: number;
4
+ message: string;
5
+ };
6
+ declare class OnekeyLite {
7
+ addConnectListener(listener: (event: NfcConnectUiState) => void): import("react-native").EventSubscription;
8
+ removeConnectListeners(): void;
9
+ addAccordListener(): import("react-native").EventSubscription;
10
+ getLiteInfo(): Promise<PromiseResult<CardInfo>>;
11
+ checkNFCPermission(): Promise<PromiseResult<boolean>>;
12
+ setMnemonic(mnemonic: string, pwd: string, overwrite?: boolean): Promise<PromiseResult<boolean>>;
13
+ getMnemonicWithPin(pwd: string): Promise<PromiseResult<string>>;
14
+ changePin(oldPin: string, newPin: string): Promise<PromiseResult<boolean>>;
15
+ reset(): Promise<PromiseResult<boolean>>;
16
+ convertToPromise<T>(resolve: (value: PromiseResult<T> | PromiseLike<PromiseResult<T>>) => void): (...result: CallbackResult<T>) => void;
17
+ cancel(): void;
18
+ intoSetting(): void;
19
+ }
20
+ declare const onekeyLite: OnekeyLite;
21
+ export default onekeyLite;
22
+ export type * from './NativeReactNativeLiteCard';
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EACd,QAAQ,EACR,aAAa,EACd,MAAM,6BAA6B,CAAC;AAErC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,cAAM,UAAU;IACd,kBAAkB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI;IAU/D,sBAAsB;IAEtB,iBAAiB;IAIjB,WAAW;IAMX,kBAAkB;IAMlB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,UAAQ;IAW5D,kBAAkB,CAAC,GAAG,EAAE,MAAM;IAM9B,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAMxC,KAAK;IAML,gBAAgB,CAAC,CAAC,EAChB,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAElE,GAAG,QAAQ,cAAc,CAAC,CAAC,CAAC;IAKtC,MAAM;IAIN,WAAW;CAOZ;AAED,QAAA,MAAM,UAAU,YAAmB,CAAC;AACpC,eAAe,UAAU,CAAC;AAC1B,mBAAmB,6BAA6B,CAAC"}
package/package.json ADDED
@@ -0,0 +1,168 @@
1
+ {
2
+ "name": "@onekeyfe/react-native-lite-card",
3
+ "version": "0.1.2",
4
+ "description": "lite card",
5
+ "main": "./lib/module/index.js",
6
+ "types": "./lib/typescript/src/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "source": "./src/index.tsx",
10
+ "types": "./lib/typescript/src/index.d.ts",
11
+ "default": "./lib/module/index.js"
12
+ },
13
+ "./package.json": "./package.json"
14
+ },
15
+ "files": [
16
+ "src",
17
+ "lib",
18
+ "android",
19
+ "ios",
20
+ "cpp",
21
+ "*.podspec",
22
+ "react-native.config.js",
23
+ "!ios/build",
24
+ "!android/build",
25
+ "!android/gradle",
26
+ "!android/gradlew",
27
+ "!android/gradlew.bat",
28
+ "!android/local.properties",
29
+ "!**/__tests__",
30
+ "!**/__fixtures__",
31
+ "!**/__mocks__",
32
+ "!**/.*"
33
+ ],
34
+ "scripts": {
35
+ "example": "yarn workspace @onekeyfe/react-native-lite-card-example",
36
+ "clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib",
37
+ "prepare": "bob build",
38
+ "typecheck": "tsc",
39
+ "lint": "eslint \"**/*.{js,ts,tsx}\"",
40
+ "test": "jest",
41
+ "release": "yarn prepare && npm whoami && npm publish --access public"
42
+ },
43
+ "keywords": [
44
+ "react-native",
45
+ "ios",
46
+ "android"
47
+ ],
48
+ "repository": {
49
+ "type": "git",
50
+ "url": "git+https://github.com/OneKeyHQ/app-modules/onekeyfe-react-native-lite-card.git"
51
+ },
52
+ "author": "@onekeyfe <huanming@onekey.so> (https://github.com/OneKeyHQ/app-modules)",
53
+ "license": "MIT",
54
+ "bugs": {
55
+ "url": "https://github.com/OneKeyHQ/app-modules/onekeyfe-react-native-lite-card/issues"
56
+ },
57
+ "homepage": "https://github.com/OneKeyHQ/app-modules/onekeyfe-react-native-lite-card#readme",
58
+ "publishConfig": {
59
+ "registry": "https://registry.npmjs.org/"
60
+ },
61
+ "devDependencies": {
62
+ "@commitlint/config-conventional": "^19.8.1",
63
+ "@eslint/compat": "^1.3.2",
64
+ "@eslint/eslintrc": "^3.3.1",
65
+ "@eslint/js": "^9.35.0",
66
+ "@react-native/babel-preset": "0.83.0",
67
+ "@react-native/eslint-config": "0.83.0",
68
+ "@release-it/conventional-changelog": "^10.0.1",
69
+ "@types/jest": "^29.5.14",
70
+ "@types/react": "^19.2.0",
71
+ "commitlint": "^19.8.1",
72
+ "del-cli": "^6.0.0",
73
+ "eslint": "^9.35.0",
74
+ "eslint-config-prettier": "^10.1.8",
75
+ "eslint-plugin-prettier": "^5.5.4",
76
+ "jest": "^29.7.0",
77
+ "lefthook": "^2.0.3",
78
+ "prettier": "^2.8.8",
79
+ "react": "19.2.0",
80
+ "react-native": "0.83.0",
81
+ "react-native-builder-bob": "^0.40.13",
82
+ "release-it": "^19.0.4",
83
+ "turbo": "^2.5.6",
84
+ "typescript": "^5.9.2"
85
+ },
86
+ "peerDependencies": {
87
+ "react": "*",
88
+ "react-native": "*"
89
+ },
90
+ "workspaces": [
91
+ "example"
92
+ ],
93
+ "react-native-builder-bob": {
94
+ "source": "src",
95
+ "output": "lib",
96
+ "targets": [
97
+ [
98
+ "module",
99
+ {
100
+ "esm": true
101
+ }
102
+ ],
103
+ [
104
+ "typescript",
105
+ {
106
+ "project": "tsconfig.build.json"
107
+ }
108
+ ]
109
+ ]
110
+ },
111
+ "codegenConfig": {
112
+ "name": "ReactNativeLiteCardSpec",
113
+ "type": "modules",
114
+ "jsSrcsDir": "src",
115
+ "android": {
116
+ "javaPackageName": "com.onekeyfe.reactnativelitecard"
117
+ }
118
+ },
119
+ "prettier": {
120
+ "quoteProps": "consistent",
121
+ "singleQuote": true,
122
+ "tabWidth": 2,
123
+ "trailingComma": "es5",
124
+ "useTabs": false
125
+ },
126
+ "jest": {
127
+ "preset": "react-native",
128
+ "modulePathIgnorePatterns": [
129
+ "<rootDir>/example/node_modules",
130
+ "<rootDir>/lib/"
131
+ ]
132
+ },
133
+ "commitlint": {
134
+ "extends": [
135
+ "@commitlint/config-conventional"
136
+ ]
137
+ },
138
+ "release-it": {
139
+ "git": {
140
+ "commitMessage": "chore: release ${version}",
141
+ "tagName": "v${version}"
142
+ },
143
+ "npm": {
144
+ "publish": true
145
+ },
146
+ "github": {
147
+ "release": true
148
+ },
149
+ "plugins": {
150
+ "@release-it/conventional-changelog": {
151
+ "preset": {
152
+ "name": "angular"
153
+ }
154
+ }
155
+ }
156
+ },
157
+ "create-react-native-library": {
158
+ "type": "turbo-module",
159
+ "languages": "kotlin-objc",
160
+ "tools": [
161
+ "eslint",
162
+ "jest",
163
+ "lefthook",
164
+ "release-it"
165
+ ],
166
+ "version": "0.56.0"
167
+ }
168
+ }