react-native-mfa-trustbuilder 0.1.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 (38) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +202 -0
  3. package/Trustbuilder.podspec +29 -0
  4. package/android/build.gradle +74 -0
  5. package/android/libs/iwlib-mac-0.2.17.jar +0 -0
  6. package/android/proguard-rules.pro +2 -0
  7. package/android/src/main/AndroidManifest.xml +2 -0
  8. package/android/src/main/java/com/trustbuilder/SimpleWebServiceCall.kt +40 -0
  9. package/android/src/main/java/com/trustbuilder/TrustbuilderModule.kt +590 -0
  10. package/android/src/main/java/com/trustbuilder/TrustbuilderPackage.kt +32 -0
  11. package/ios/RNTrustbuilder.h +5 -0
  12. package/ios/RNTrustbuilder.mm +433 -0
  13. package/ios/iw.h +785 -0
  14. package/ios/libs/libmaccess-0.2.19-ios-arm64_armv7.a +0 -0
  15. package/ios/libs/libmaccess-0.2.19-ios-arm64_i386_x86_64-simulator.a +0 -0
  16. package/lib/module/NativeRNTrustbuilder.js +5 -0
  17. package/lib/module/NativeRNTrustbuilder.js.map +1 -0
  18. package/lib/module/errors.js +64 -0
  19. package/lib/module/errors.js.map +1 -0
  20. package/lib/module/index.js +309 -0
  21. package/lib/module/index.js.map +1 -0
  22. package/lib/module/package.json +1 -0
  23. package/lib/module/types.js +2 -0
  24. package/lib/module/types.js.map +1 -0
  25. package/lib/typescript/package.json +1 -0
  26. package/lib/typescript/src/NativeRNTrustbuilder.d.ts +89 -0
  27. package/lib/typescript/src/NativeRNTrustbuilder.d.ts.map +1 -0
  28. package/lib/typescript/src/errors.d.ts +29 -0
  29. package/lib/typescript/src/errors.d.ts.map +1 -0
  30. package/lib/typescript/src/index.d.ts +68 -0
  31. package/lib/typescript/src/index.d.ts.map +1 -0
  32. package/lib/typescript/src/types.d.ts +45 -0
  33. package/lib/typescript/src/types.d.ts.map +1 -0
  34. package/package.json +184 -0
  35. package/src/NativeRNTrustbuilder.ts +117 -0
  36. package/src/errors.ts +72 -0
  37. package/src/index.ts +461 -0
  38. package/src/types.ts +54 -0
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import { TurboModuleRegistry } from 'react-native';
4
+ export default TurboModuleRegistry.getEnforcing('RNTrustbuilder');
5
+ //# sourceMappingURL=NativeRNTrustbuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeRNTrustbuilder.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA0B,cAAc;AAoHpE,eAAeA,mBAAmB,CAACC,YAAY,CAAO,gBAAgB,CAAC","ignoreList":[]}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ export let TrustbuilderErrorCode = /*#__PURE__*/function (TrustbuilderErrorCode) {
4
+ TrustbuilderErrorCode[TrustbuilderErrorCode["OK"] = 0] = "OK";
5
+ TrustbuilderErrorCode[TrustbuilderErrorCode["NETWORK"] = 1] = "NETWORK";
6
+ TrustbuilderErrorCode[TrustbuilderErrorCode["CODE"] = 2] = "CODE";
7
+ TrustbuilderErrorCode[TrustbuilderErrorCode["SN"] = 3] = "SN";
8
+ TrustbuilderErrorCode[TrustbuilderErrorCode["ACCESS"] = 4] = "ACCESS";
9
+ TrustbuilderErrorCode[TrustbuilderErrorCode["VERSION"] = 5] = "VERSION";
10
+ TrustbuilderErrorCode[TrustbuilderErrorCode["BLOCKED"] = 7] = "BLOCKED";
11
+ TrustbuilderErrorCode[TrustbuilderErrorCode["STATE"] = 8] = "STATE";
12
+ TrustbuilderErrorCode[TrustbuilderErrorCode["NODEVICE"] = 9] = "NODEVICE";
13
+ TrustbuilderErrorCode[TrustbuilderErrorCode["NOCA"] = 10] = "NOCA";
14
+ TrustbuilderErrorCode[TrustbuilderErrorCode["NOSRV"] = 11] = "NOSRV";
15
+ TrustbuilderErrorCode[TrustbuilderErrorCode["PINREUSED"] = 12] = "PINREUSED";
16
+ TrustbuilderErrorCode[TrustbuilderErrorCode["SYNCHROFAILED"] = 13] = "SYNCHROFAILED";
17
+ TrustbuilderErrorCode[TrustbuilderErrorCode["FORBIDDEN"] = 14] = "FORBIDDEN";
18
+ TrustbuilderErrorCode[TrustbuilderErrorCode["PINREFUSED"] = 15] = "PINREFUSED";
19
+ TrustbuilderErrorCode[TrustbuilderErrorCode["TIMEOUT"] = 16] = "TIMEOUT";
20
+ TrustbuilderErrorCode[TrustbuilderErrorCode["BIOKEY"] = 26] = "BIOKEY";
21
+ TrustbuilderErrorCode[TrustbuilderErrorCode["DESYNCHRONIZED"] = 27] = "DESYNCHRONIZED";
22
+ TrustbuilderErrorCode[TrustbuilderErrorCode["OTHER"] = 999] = "OTHER";
23
+ return TrustbuilderErrorCode;
24
+ }({});
25
+ const ERROR_MESSAGES = {
26
+ [TrustbuilderErrorCode.OK]: 'No error',
27
+ [TrustbuilderErrorCode.NETWORK]: 'Network or server unreachable',
28
+ [TrustbuilderErrorCode.CODE]: 'The activation code is incorrect',
29
+ [TrustbuilderErrorCode.SN]: 'One argument does not have the right syntax',
30
+ [TrustbuilderErrorCode.ACCESS]: 'Access refused',
31
+ [TrustbuilderErrorCode.VERSION]: 'Version error, user must upgrade the device',
32
+ [TrustbuilderErrorCode.BLOCKED]: 'Account is blocked',
33
+ [TrustbuilderErrorCode.STATE]: 'Internal state not correct',
34
+ [TrustbuilderErrorCode.NODEVICE]: 'Device is disabled or unknown',
35
+ [TrustbuilderErrorCode.NOCA]: 'User must activate helium or Desktop Token before achieving this operation',
36
+ [TrustbuilderErrorCode.NOSRV]: 'No service is available',
37
+ [TrustbuilderErrorCode.PINREUSED]: 'The new password equals the previous one',
38
+ [TrustbuilderErrorCode.SYNCHROFAILED]: 'The operation succeeded but synchronization failed',
39
+ [TrustbuilderErrorCode.FORBIDDEN]: 'Forbidden operation (due to activated/blocked/upgradable state)',
40
+ [TrustbuilderErrorCode.PINREFUSED]: 'The password is refused (bad format)',
41
+ [TrustbuilderErrorCode.TIMEOUT]: 'Timeout expired',
42
+ [TrustbuilderErrorCode.BIOKEY]: 'Device is locked due to biokey errors',
43
+ [TrustbuilderErrorCode.DESYNCHRONIZED]: 'Device desynchronized',
44
+ [TrustbuilderErrorCode.OTHER]: 'Unknown error'
45
+ };
46
+ export class TrustbuilderError extends Error {
47
+ constructor(code, message) {
48
+ const errorCode = code;
49
+ const defaultMessage = ERROR_MESSAGES[errorCode] || `Unknown error code: ${code}`;
50
+ super(message || defaultMessage);
51
+ this.name = 'TrustbuilderError';
52
+ this.code = errorCode;
53
+ this.codeName = TrustbuilderErrorCode[errorCode] || 'UNKNOWN';
54
+ }
55
+ }
56
+ export function assertOk(resultCode) {
57
+ if (resultCode !== TrustbuilderErrorCode.OK) {
58
+ throw new TrustbuilderError(resultCode);
59
+ }
60
+ }
61
+ export function parseResult(resultCode) {
62
+ assertOk(resultCode);
63
+ }
64
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TrustbuilderErrorCode","ERROR_MESSAGES","OK","NETWORK","CODE","SN","ACCESS","VERSION","BLOCKED","STATE","NODEVICE","NOCA","NOSRV","PINREUSED","SYNCHROFAILED","FORBIDDEN","PINREFUSED","TIMEOUT","BIOKEY","DESYNCHRONIZED","OTHER","TrustbuilderError","Error","constructor","code","message","errorCode","defaultMessage","name","codeName","assertOk","resultCode","parseResult"],"sourceRoot":"../../src","sources":["errors.ts"],"mappings":";;AAAA,WAAYA,qBAAqB,0BAArBA,qBAAqB;EAArBA,qBAAqB,CAArBA,qBAAqB;EAArBA,qBAAqB,CAArBA,qBAAqB;EAArBA,qBAAqB,CAArBA,qBAAqB;EAArBA,qBAAqB,CAArBA,qBAAqB;EAArBA,qBAAqB,CAArBA,qBAAqB;EAArBA,qBAAqB,CAArBA,qBAAqB;EAArBA,qBAAqB,CAArBA,qBAAqB;EAArBA,qBAAqB,CAArBA,qBAAqB;EAArBA,qBAAqB,CAArBA,qBAAqB;EAArBA,qBAAqB,CAArBA,qBAAqB;EAArBA,qBAAqB,CAArBA,qBAAqB;EAArBA,qBAAqB,CAArBA,qBAAqB;EAArBA,qBAAqB,CAArBA,qBAAqB;EAArBA,qBAAqB,CAArBA,qBAAqB;EAArBA,qBAAqB,CAArBA,qBAAqB;EAArBA,qBAAqB,CAArBA,qBAAqB;EAArBA,qBAAqB,CAArBA,qBAAqB;EAArBA,qBAAqB,CAArBA,qBAAqB;EAArBA,qBAAqB,CAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA;AAsBjC,MAAMC,cAAsC,GAAG;EAC7C,CAACD,qBAAqB,CAACE,EAAE,GAAG,UAAU;EACtC,CAACF,qBAAqB,CAACG,OAAO,GAAG,+BAA+B;EAChE,CAACH,qBAAqB,CAACI,IAAI,GAAG,kCAAkC;EAChE,CAACJ,qBAAqB,CAACK,EAAE,GAAG,6CAA6C;EACzE,CAACL,qBAAqB,CAACM,MAAM,GAAG,gBAAgB;EAChD,CAACN,qBAAqB,CAACO,OAAO,GAC5B,6CAA6C;EAC/C,CAACP,qBAAqB,CAACQ,OAAO,GAAG,oBAAoB;EACrD,CAACR,qBAAqB,CAACS,KAAK,GAAG,4BAA4B;EAC3D,CAACT,qBAAqB,CAACU,QAAQ,GAAG,+BAA+B;EACjE,CAACV,qBAAqB,CAACW,IAAI,GACzB,4EAA4E;EAC9E,CAACX,qBAAqB,CAACY,KAAK,GAAG,yBAAyB;EACxD,CAACZ,qBAAqB,CAACa,SAAS,GAAG,0CAA0C;EAC7E,CAACb,qBAAqB,CAACc,aAAa,GAClC,oDAAoD;EACtD,CAACd,qBAAqB,CAACe,SAAS,GAC9B,iEAAiE;EACnE,CAACf,qBAAqB,CAACgB,UAAU,GAAG,sCAAsC;EAC1E,CAAChB,qBAAqB,CAACiB,OAAO,GAAG,iBAAiB;EAClD,CAACjB,qBAAqB,CAACkB,MAAM,GAAG,uCAAuC;EACvE,CAAClB,qBAAqB,CAACmB,cAAc,GAAG,uBAAuB;EAC/D,CAACnB,qBAAqB,CAACoB,KAAK,GAAG;AACjC,CAAC;AAED,OAAO,MAAMC,iBAAiB,SAASC,KAAK,CAAC;EAI3CC,WAAWA,CAACC,IAAY,EAAEC,OAAgB,EAAE;IAC1C,MAAMC,SAAS,GAAGF,IAA6B;IAC/C,MAAMG,cAAc,GAClB1B,cAAc,CAACyB,SAAS,CAAC,IAAI,uBAAuBF,IAAI,EAAE;IAC5D,KAAK,CAACC,OAAO,IAAIE,cAAc,CAAC;IAChC,IAAI,CAACC,IAAI,GAAG,mBAAmB;IAC/B,IAAI,CAACJ,IAAI,GAAGE,SAAS;IACrB,IAAI,CAACG,QAAQ,GAAG7B,qBAAqB,CAAC0B,SAAS,CAAC,IAAI,SAAS;EAC/D;AACF;AAEA,OAAO,SAASI,QAAQA,CAACC,UAAkB,EAAQ;EACjD,IAAIA,UAAU,KAAK/B,qBAAqB,CAACE,EAAE,EAAE;IAC3C,MAAM,IAAImB,iBAAiB,CAACU,UAAU,CAAC;EACzC;AACF;AAEA,OAAO,SAASC,WAAWA,CAACD,UAAkB,EAAQ;EACpDD,QAAQ,CAACC,UAAU,CAAC;AACtB","ignoreList":[]}
@@ -0,0 +1,309 @@
1
+ "use strict";
2
+
3
+ import { NativeModules, NativeEventEmitter, Platform } from 'react-native';
4
+ import { TrustbuilderError, TrustbuilderErrorCode, assertOk } from "./errors.js";
5
+ const LINKING_ERROR = `The package 'react-native-mfa-trustbuilder' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
6
+ ios: "- You have run 'pod install'\n",
7
+ default: ''
8
+ }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo managed workflow\n';
9
+ const RNTrustbuilder = NativeModules.RNTrustbuilder ? NativeModules.RNTrustbuilder : new Proxy({}, {
10
+ get() {
11
+ throw new Error(LINKING_ERROR);
12
+ }
13
+ });
14
+ const EVENT_NAME = 'TrustbuilderPushEvent';
15
+ function pinModeFromCode(code) {
16
+ switch (code) {
17
+ case 0:
18
+ return 'none';
19
+ case 1:
20
+ return 'current';
21
+ case 2:
22
+ return 'new';
23
+ case 8:
24
+ return 'bio';
25
+ case 9:
26
+ return 'currentOrBio';
27
+ default:
28
+ return 'none';
29
+ }
30
+ }
31
+ function pinModeToResult(code) {
32
+ return {
33
+ pinMode: pinModeFromCode(code),
34
+ // eslint-disable-next-line no-bitwise
35
+ requiresPin: (code & 1) === 1,
36
+ // eslint-disable-next-line no-bitwise
37
+ requiresBio: (code & 8) === 8
38
+ };
39
+ }
40
+ function keyTypeToNumber(keyType) {
41
+ return keyType === 'biokey' ? 1 : 0;
42
+ }
43
+ class Trustbuilder {
44
+ _initialized = false;
45
+ _eventEmitter = null;
46
+ get isInitialized() {
47
+ return this._initialized;
48
+ }
49
+ initialize(config) {
50
+ const configStr = JSON.stringify({
51
+ macId: config.macId,
52
+ server: config.server || 'https://www.myinwebo.com',
53
+ hostVersion: config.hostVersion || 'react-native-mfa-trustbuilder-0.1.0',
54
+ timeout: config.timeout || 60000,
55
+ lang: config.lang === 'fr' ? '2' : '1'
56
+ });
57
+ const resultStr = RNTrustbuilder.initialize(configStr);
58
+ const result = JSON.parse(resultStr);
59
+ this._initialized = true;
60
+ return result;
61
+ }
62
+ setStorageData(data) {
63
+ RNTrustbuilder.setStorageData(data);
64
+ }
65
+ getStorageData() {
66
+ return RNTrustbuilder.getStorageData();
67
+ }
68
+ storageDataChanged() {
69
+ return RNTrustbuilder.storageDataChanged();
70
+ }
71
+ saveStorageIfNeeded() {
72
+ if (this.storageDataChanged()) {
73
+ const data = this.getStorageData();
74
+ this.setStorageData(data);
75
+ }
76
+ }
77
+ isActivated() {
78
+ return RNTrustbuilder.isActivated();
79
+ }
80
+ isBlocked() {
81
+ return RNTrustbuilder.isBlocked();
82
+ }
83
+ mustUpgrade() {
84
+ return RNTrustbuilder.mustUpgrade();
85
+ }
86
+ async activationStart(code) {
87
+ const result = parseInt(RNTrustbuilder.activationStart(code), 10);
88
+ assertOk(result);
89
+ }
90
+ async activationFinalize(code, pin, name) {
91
+ const result = parseInt(RNTrustbuilder.activationFinalize(code, pin, name), 10);
92
+ assertOk(result);
93
+ }
94
+ async activate(code, pin, name) {
95
+ await this.activationStart(code);
96
+ await this.activationFinalize(code, pin, name);
97
+ }
98
+ async resetStart(code) {
99
+ const result = parseInt(RNTrustbuilder.resetStart(code), 10);
100
+ assertOk(result);
101
+ }
102
+ async resetFinalize(code, pin) {
103
+ const result = parseInt(RNTrustbuilder.resetFinalize(code, pin), 10);
104
+ assertOk(result);
105
+ }
106
+ async reset(code, pin) {
107
+ await this.resetStart(code);
108
+ await this.resetFinalize(code, pin);
109
+ }
110
+ async synchronizeStart() {
111
+ const result = parseInt(RNTrustbuilder.synchronizeStart(), 10);
112
+ assertOk(result);
113
+ }
114
+ async synchronizeFinalize(pin) {
115
+ const result = parseInt(RNTrustbuilder.synchronizeFinalize(pin), 10);
116
+ assertOk(result);
117
+ }
118
+ async synchronize(pin) {
119
+ await this.synchronizeStart();
120
+ await this.synchronizeFinalize(pin);
121
+ }
122
+ async pwdUpdateStart() {
123
+ const result = parseInt(RNTrustbuilder.pwdUpdateStart(), 10);
124
+ assertOk(result);
125
+ }
126
+ async pwdUpdateFinalize(newPin, currentPin) {
127
+ const result = parseInt(RNTrustbuilder.pwdUpdateFinalize(newPin, currentPin), 10);
128
+ assertOk(result);
129
+ }
130
+ async updatePin(newPin, currentPin) {
131
+ await this.pwdUpdateStart();
132
+ await this.pwdUpdateFinalize(newPin, currentPin);
133
+ }
134
+ async setBiokeyStart() {
135
+ const result = parseInt(RNTrustbuilder.setBiokeyStart(), 10);
136
+ assertOk(result);
137
+ }
138
+ async setBiokeyFinalize(biokey, pin) {
139
+ const result = parseInt(RNTrustbuilder.setBiokeyFinalize(biokey, pin), 10);
140
+ assertOk(result);
141
+ }
142
+ async registerBiokey(biokey, pin) {
143
+ await this.setBiokeyStart();
144
+ await this.setBiokeyFinalize(biokey, pin);
145
+ }
146
+ async unsetBiokeysStart() {
147
+ const result = parseInt(RNTrustbuilder.unsetBiokeysStart(), 10);
148
+ assertOk(result);
149
+ }
150
+ async unsetBiokeysFinalize(pin) {
151
+ const result = parseInt(RNTrustbuilder.unsetBiokeysFinalize(pin), 10);
152
+ assertOk(result);
153
+ }
154
+ async resetBiokeys(pin) {
155
+ await this.unsetBiokeysStart();
156
+ await this.unsetBiokeysFinalize(pin);
157
+ }
158
+ async onlineOtpStart(serviceIndex = 0) {
159
+ const result = parseInt(RNTrustbuilder.onlineOtpStart(serviceIndex), 10);
160
+ assertOk(result);
161
+ }
162
+ async onlineOtpFinalize(serviceIndex, pin, keyType = 'pin') {
163
+ const result = parseInt(RNTrustbuilder.onlineOtpFinalize(serviceIndex, pin, keyTypeToNumber(keyType)), 10);
164
+ assertOk(result);
165
+ }
166
+ getOtp() {
167
+ return RNTrustbuilder.otpAnswerOtp();
168
+ }
169
+ async generateOnlineOtp(pin, serviceIndex = 0, keyType = 'pin') {
170
+ await this.onlineOtpStart(serviceIndex);
171
+ await this.onlineOtpFinalize(serviceIndex, pin, keyType);
172
+ const otp = this.getOtp();
173
+ const remainingTime = this.displayTime();
174
+ return {
175
+ otp,
176
+ remainingTime
177
+ };
178
+ }
179
+ otpShouldSynchronize(serviceId = 0) {
180
+ return RNTrustbuilder.otpShouldSynchronize(serviceId);
181
+ }
182
+ otpModeQuery(serviceId = 0) {
183
+ return RNTrustbuilder.otpModeQuery(serviceId);
184
+ }
185
+ otpGenerate(pin) {
186
+ return RNTrustbuilder.otpGenerate(pin);
187
+ }
188
+ displayTime() {
189
+ return RNTrustbuilder.displayTime();
190
+ }
191
+ async generateOfflineOtp(pin, serviceId = 0) {
192
+ if (this.otpShouldSynchronize(serviceId)) {
193
+ throw new TrustbuilderError(TrustbuilderErrorCode.SYNCHROFAILED, 'Synchronization required before offline OTP generation');
194
+ }
195
+ const requiresPin = this.otpModeQuery(serviceId);
196
+ const otp = this.otpGenerate(requiresPin ? pin : '');
197
+ const remainingTime = this.displayTime();
198
+ return {
199
+ otp,
200
+ remainingTime
201
+ };
202
+ }
203
+ setDeviceOS(deviceOS) {
204
+ RNTrustbuilder.setDeviceOS(deviceOS);
205
+ }
206
+ async pushRegistrationStart() {
207
+ const result = parseInt(RNTrustbuilder.pushRegistrationStart(), 10);
208
+ assertOk(result);
209
+ }
210
+ async pushRegistrationFinalize(pushId) {
211
+ const result = parseInt(RNTrustbuilder.pushRegistrationFinalize(pushId), 10);
212
+ assertOk(result);
213
+ }
214
+ async registerForPush(pushId) {
215
+ await this.pushRegistrationStart();
216
+ await this.pushRegistrationFinalize(pushId);
217
+ }
218
+ checkPush() {
219
+ return parseInt(RNTrustbuilder.checkPush(), 10);
220
+ }
221
+ getPushInfo() {
222
+ const code = this.checkPush();
223
+ if (code === 0) {
224
+ return {
225
+ alias: RNTrustbuilder.pushAlias(),
226
+ action: RNTrustbuilder.pushAction(),
227
+ context: RNTrustbuilder.pushContext()
228
+ };
229
+ }
230
+ return null;
231
+ }
232
+ async onlineSealStart(serviceIndex = 0) {
233
+ const result = parseInt(RNTrustbuilder.onlineSealStart(serviceIndex), 10);
234
+ assertOk(result);
235
+ }
236
+ async onlineSealFinalize(serviceIndex, pin, keyType, sealData) {
237
+ const result = parseInt(RNTrustbuilder.onlineSealFinalize(serviceIndex, pin, keyTypeToNumber(keyType), sealData), 10);
238
+ assertOk(result);
239
+ }
240
+ getSeal() {
241
+ return RNTrustbuilder.sealAnswerOtp();
242
+ }
243
+ async generateOnlineSeal(pin, sealData, serviceIndex = 0, keyType = 'pin') {
244
+ await this.onlineSealStart(serviceIndex);
245
+ await this.onlineSealFinalize(serviceIndex, pin, keyType, sealData);
246
+ return {
247
+ seal: this.getSeal()
248
+ };
249
+ }
250
+ sealShouldSynchronize(serviceId = 0) {
251
+ return RNTrustbuilder.sealShouldSynchronize(serviceId);
252
+ }
253
+ sealModeQuery(serviceId = 0) {
254
+ return RNTrustbuilder.sealModeQuery(serviceId);
255
+ }
256
+ sealGenerate(pin, sealData) {
257
+ return RNTrustbuilder.sealGenerate(pin, sealData);
258
+ }
259
+ async generateOfflineSeal(pin, sealData, serviceId = 0) {
260
+ if (this.sealShouldSynchronize(serviceId)) {
261
+ throw new TrustbuilderError(TrustbuilderErrorCode.SYNCHROFAILED, 'Synchronization required before offline seal generation');
262
+ }
263
+ this.sealModeQuery(serviceId);
264
+ return {
265
+ seal: this.sealGenerate(pin, sealData)
266
+ };
267
+ }
268
+ serviceNb() {
269
+ return RNTrustbuilder.serviceNb();
270
+ }
271
+ getServiceName(index = 0) {
272
+ return RNTrustbuilder.serviceName(index);
273
+ }
274
+ getServiceLogo(index = 0) {
275
+ return RNTrustbuilder.serviceLogo(index);
276
+ }
277
+ isServiceDisabled(index = 0) {
278
+ return RNTrustbuilder.serviceDisabled(index);
279
+ }
280
+ getServiceInfo(index = 0) {
281
+ return {
282
+ name: this.getServiceName(index),
283
+ logoUrl: this.getServiceLogo(index),
284
+ isDisabled: this.isServiceDisabled(index)
285
+ };
286
+ }
287
+ getVersionInfo() {
288
+ const resultStr = RNTrustbuilder.getVersionInfo();
289
+ return JSON.parse(resultStr);
290
+ }
291
+ getPinMode() {
292
+ const code = parseInt(RNTrustbuilder.serviceName(0), 10);
293
+ return pinModeToResult(code);
294
+ }
295
+ _setupEventEmitter() {
296
+ if (this._eventEmitter) return;
297
+ this._eventEmitter = new NativeEventEmitter(NativeModules.RNTrustbuilder);
298
+ }
299
+ onPushReceived(listener) {
300
+ this._setupEventEmitter();
301
+ const subscription = this._eventEmitter.addListener(EVENT_NAME, data => {
302
+ listener(data);
303
+ });
304
+ return () => subscription.remove();
305
+ }
306
+ }
307
+ export const trustbuilder = new Trustbuilder();
308
+ export { TrustbuilderError, TrustbuilderErrorCode } from "./errors.js";
309
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeModules","NativeEventEmitter","Platform","TrustbuilderError","TrustbuilderErrorCode","assertOk","LINKING_ERROR","select","ios","default","RNTrustbuilder","Proxy","get","Error","EVENT_NAME","pinModeFromCode","code","pinModeToResult","pinMode","requiresPin","requiresBio","keyTypeToNumber","keyType","Trustbuilder","_initialized","_eventEmitter","isInitialized","initialize","config","configStr","JSON","stringify","macId","server","hostVersion","timeout","lang","resultStr","result","parse","setStorageData","data","getStorageData","storageDataChanged","saveStorageIfNeeded","isActivated","isBlocked","mustUpgrade","activationStart","parseInt","activationFinalize","pin","name","activate","resetStart","resetFinalize","reset","synchronizeStart","synchronizeFinalize","synchronize","pwdUpdateStart","pwdUpdateFinalize","newPin","currentPin","updatePin","setBiokeyStart","setBiokeyFinalize","biokey","registerBiokey","unsetBiokeysStart","unsetBiokeysFinalize","resetBiokeys","onlineOtpStart","serviceIndex","onlineOtpFinalize","getOtp","otpAnswerOtp","generateOnlineOtp","otp","remainingTime","displayTime","otpShouldSynchronize","serviceId","otpModeQuery","otpGenerate","generateOfflineOtp","SYNCHROFAILED","setDeviceOS","deviceOS","pushRegistrationStart","pushRegistrationFinalize","pushId","registerForPush","checkPush","getPushInfo","alias","pushAlias","action","pushAction","context","pushContext","onlineSealStart","onlineSealFinalize","sealData","getSeal","sealAnswerOtp","generateOnlineSeal","seal","sealShouldSynchronize","sealModeQuery","sealGenerate","generateOfflineSeal","serviceNb","getServiceName","index","serviceName","getServiceLogo","serviceLogo","isServiceDisabled","serviceDisabled","getServiceInfo","logoUrl","isDisabled","getVersionInfo","getPinMode","_setupEventEmitter","onPushReceived","listener","subscription","addListener","remove","trustbuilder"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,89 @@
1
+ import { type TurboModule } from 'react-native';
2
+ export type PinMode = 'none' | 'current' | 'new' | 'bio' | 'currentOrBio';
3
+ export type PushAction = 'authenticate' | 'activate';
4
+ export interface InitConfig {
5
+ macId: string;
6
+ server?: string;
7
+ hostVersion?: string;
8
+ timeout?: number;
9
+ lang?: 'en' | 'fr';
10
+ }
11
+ export interface InitResult {
12
+ isActivated: boolean;
13
+ isBlocked: boolean;
14
+ }
15
+ export interface ServiceInfo {
16
+ name: string;
17
+ logoUrl: string;
18
+ isDisabled: boolean;
19
+ }
20
+ export interface PushInfo {
21
+ alias: string;
22
+ action: PushAction;
23
+ context: string;
24
+ }
25
+ export interface OtpResult {
26
+ otp: string;
27
+ remainingTime: number;
28
+ }
29
+ export interface SealResult {
30
+ seal: string;
31
+ }
32
+ export interface VersionInfo {
33
+ libraryVersion: string;
34
+ newVersionAvailable: string;
35
+ newVersionUrl: string;
36
+ majorVersionRequired: boolean;
37
+ shouldAskForMinorUpdate: boolean;
38
+ }
39
+ export interface Spec extends TurboModule {
40
+ addListener(eventName: string): void;
41
+ removeListeners(count: number): void;
42
+ initialize(config: string): string;
43
+ setStorageData(data: string): boolean;
44
+ getStorageData(): string;
45
+ storageDataChanged(): boolean;
46
+ isActivated(): boolean;
47
+ isBlocked(): boolean;
48
+ mustUpgrade(): boolean;
49
+ activationStart(code: string): string;
50
+ activationFinalize(code: string, pin: string, name: string): string;
51
+ resetStart(code: string): string;
52
+ resetFinalize(code: string, pin: string): string;
53
+ synchronizeStart(): string;
54
+ synchronizeFinalize(pin: string): string;
55
+ pwdUpdateStart(): string;
56
+ pwdUpdateFinalize(newPin: string, currentPin: string): string;
57
+ setBiokeyStart(): string;
58
+ setBiokeyFinalize(biokey: string, pin: string): string;
59
+ unsetBiokeysStart(): string;
60
+ unsetBiokeysFinalize(pin: string): string;
61
+ onlineOtpStart(serviceIndex: number): string;
62
+ onlineOtpFinalize(serviceIndex: number, pin: string, keyType: number): string;
63
+ otpAnswerOtp(): string;
64
+ otpShouldSynchronize(serviceId: number): boolean;
65
+ otpModeQuery(serviceId: number): boolean;
66
+ otpGenerate(pin: string): string;
67
+ displayTime(): number;
68
+ setDeviceOS(deviceOS: string): void;
69
+ pushRegistrationStart(): string;
70
+ pushRegistrationFinalize(pushId: string): string;
71
+ checkPush(): string;
72
+ pushAlias(): string;
73
+ pushAction(): string;
74
+ pushContext(): string;
75
+ onlineSealStart(serviceIndex: number): string;
76
+ onlineSealFinalize(serviceIndex: number, pin: string, keyType: number, sealData: string): string;
77
+ sealAnswerOtp(): string;
78
+ sealShouldSynchronize(serviceId: number): boolean;
79
+ sealModeQuery(serviceId: number): boolean;
80
+ sealGenerate(pin: string, sealData: string): string;
81
+ serviceNb(): number;
82
+ serviceName(index: number): string;
83
+ serviceLogo(index: number): string;
84
+ serviceDisabled(index: number): boolean;
85
+ getVersionInfo(): string;
86
+ }
87
+ declare const _default: Spec;
88
+ export default _default;
89
+ //# sourceMappingURL=NativeRNTrustbuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeRNTrustbuilder.d.ts","sourceRoot":"","sources":["../../../src/NativeRNTrustbuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ export declare enum TrustbuilderErrorCode {
2
+ OK = 0,
3
+ NETWORK = 1,
4
+ CODE = 2,
5
+ SN = 3,
6
+ ACCESS = 4,
7
+ VERSION = 5,
8
+ BLOCKED = 7,
9
+ STATE = 8,
10
+ NODEVICE = 9,
11
+ NOCA = 10,
12
+ NOSRV = 11,
13
+ PINREUSED = 12,
14
+ SYNCHROFAILED = 13,
15
+ FORBIDDEN = 14,
16
+ PINREFUSED = 15,
17
+ TIMEOUT = 16,
18
+ BIOKEY = 26,
19
+ DESYNCHRONIZED = 27,
20
+ OTHER = 999
21
+ }
22
+ export declare class TrustbuilderError extends Error {
23
+ readonly code: TrustbuilderErrorCode;
24
+ readonly codeName: string;
25
+ constructor(code: number, message?: string);
26
+ }
27
+ export declare function assertOk(resultCode: number): void;
28
+ export declare function parseResult(resultCode: number): void;
29
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/errors.ts"],"names":[],"mappings":"AAAA,oBAAY,qBAAqB;IAC/B,EAAE,IAAI;IACN,OAAO,IAAI;IACX,IAAI,IAAI;IACR,EAAE,IAAI;IACN,MAAM,IAAI;IACV,OAAO,IAAI;IACX,OAAO,IAAI;IACX,KAAK,IAAI;IACT,QAAQ,IAAI;IACZ,IAAI,KAAK;IACT,KAAK,KAAK;IACV,SAAS,KAAK;IACd,aAAa,KAAK;IAClB,SAAS,KAAK;IACd,UAAU,KAAK;IACf,OAAO,KAAK;IACZ,MAAM,KAAK;IACX,cAAc,KAAK;IACnB,KAAK,MAAM;CACZ;AA4BD,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,SAAgB,IAAI,EAAE,qBAAqB,CAAC;IAC5C,SAAgB,QAAQ,EAAE,MAAM,CAAC;gBAErB,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAS3C;AAED,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAIjD;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAEpD"}
@@ -0,0 +1,68 @@
1
+ import type { InitConfig, InitResult, ServiceInfo, PushInfo, OtpResult, SealResult, VersionInfo, PinModeResult, KeyType } from './types';
2
+ declare class Trustbuilder {
3
+ private _initialized;
4
+ private _eventEmitter;
5
+ get isInitialized(): boolean;
6
+ initialize(config: InitConfig): InitResult;
7
+ setStorageData(data: string): void;
8
+ getStorageData(): string;
9
+ storageDataChanged(): boolean;
10
+ saveStorageIfNeeded(): void;
11
+ isActivated(): boolean;
12
+ isBlocked(): boolean;
13
+ mustUpgrade(): boolean;
14
+ activationStart(code: string): Promise<void>;
15
+ activationFinalize(code: string, pin: string, name: string): Promise<void>;
16
+ activate(code: string, pin: string, name: string): Promise<void>;
17
+ resetStart(code: string): Promise<void>;
18
+ resetFinalize(code: string, pin: string): Promise<void>;
19
+ reset(code: string, pin: string): Promise<void>;
20
+ synchronizeStart(): Promise<void>;
21
+ synchronizeFinalize(pin: string): Promise<void>;
22
+ synchronize(pin: string): Promise<void>;
23
+ pwdUpdateStart(): Promise<void>;
24
+ pwdUpdateFinalize(newPin: string, currentPin: string): Promise<void>;
25
+ updatePin(newPin: string, currentPin: string): Promise<void>;
26
+ setBiokeyStart(): Promise<void>;
27
+ setBiokeyFinalize(biokey: string, pin: string): Promise<void>;
28
+ registerBiokey(biokey: string, pin: string): Promise<void>;
29
+ unsetBiokeysStart(): Promise<void>;
30
+ unsetBiokeysFinalize(pin: string): Promise<void>;
31
+ resetBiokeys(pin: string): Promise<void>;
32
+ onlineOtpStart(serviceIndex?: number): Promise<void>;
33
+ onlineOtpFinalize(serviceIndex: number, pin: string, keyType?: KeyType): Promise<void>;
34
+ getOtp(): string;
35
+ generateOnlineOtp(pin: string, serviceIndex?: number, keyType?: KeyType): Promise<OtpResult>;
36
+ otpShouldSynchronize(serviceId?: number): boolean;
37
+ otpModeQuery(serviceId?: number): boolean;
38
+ otpGenerate(pin: string): string;
39
+ displayTime(): number;
40
+ generateOfflineOtp(pin: string, serviceId?: number): Promise<OtpResult>;
41
+ setDeviceOS(deviceOS: string): void;
42
+ pushRegistrationStart(): Promise<void>;
43
+ pushRegistrationFinalize(pushId: string): Promise<void>;
44
+ registerForPush(pushId: string): Promise<void>;
45
+ checkPush(): number;
46
+ getPushInfo(): PushInfo | null;
47
+ onlineSealStart(serviceIndex?: number): Promise<void>;
48
+ onlineSealFinalize(serviceIndex: number, pin: string, keyType: KeyType, sealData: string): Promise<void>;
49
+ getSeal(): string;
50
+ generateOnlineSeal(pin: string, sealData: string, serviceIndex?: number, keyType?: KeyType): Promise<SealResult>;
51
+ sealShouldSynchronize(serviceId?: number): boolean;
52
+ sealModeQuery(serviceId?: number): boolean;
53
+ sealGenerate(pin: string, sealData: string): string;
54
+ generateOfflineSeal(pin: string, sealData: string, serviceId?: number): Promise<SealResult>;
55
+ serviceNb(): number;
56
+ getServiceName(index?: number): string;
57
+ getServiceLogo(index?: number): string;
58
+ isServiceDisabled(index?: number): boolean;
59
+ getServiceInfo(index?: number): ServiceInfo;
60
+ getVersionInfo(): VersionInfo;
61
+ getPinMode(): PinModeResult;
62
+ private _setupEventEmitter;
63
+ onPushReceived(listener: (pushInfo: PushInfo) => void): () => void;
64
+ }
65
+ export declare const trustbuilder: Trustbuilder;
66
+ export { TrustbuilderError, TrustbuilderErrorCode } from './errors';
67
+ export type { InitConfig, InitResult, ServiceInfo, PushInfo, OtpResult, SealResult, VersionInfo, PinMode, PinModeResult, KeyType, PushAction, } from './types';
68
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}