@onairos/react-native 3.0.75 → 3.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.
- package/lib/commonjs/components/EmailVerificationModal.js +7 -5
- package/lib/commonjs/components/EmailVerificationModal.js.map +1 -1
- package/lib/commonjs/index.js +0 -6
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/services/apiKeyService.js +278 -27
- package/lib/commonjs/services/apiKeyService.js.map +1 -1
- package/lib/commonjs/services/platformAuthService.js +123 -301
- package/lib/commonjs/services/platformAuthService.js.map +1 -1
- package/lib/commonjs/utils/onairosApi.js +143 -71
- package/lib/commonjs/utils/onairosApi.js.map +1 -1
- package/lib/commonjs/utils/secureStorage.js +123 -1
- package/lib/commonjs/utils/secureStorage.js.map +1 -1
- package/lib/module/components/EmailVerificationModal.js +7 -5
- package/lib/module/components/EmailVerificationModal.js.map +1 -1
- package/lib/module/index.js +3 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/services/apiKeyService.js +264 -22
- package/lib/module/services/apiKeyService.js.map +1 -1
- package/lib/module/services/platformAuthService.js +120 -297
- package/lib/module/services/platformAuthService.js.map +1 -1
- package/lib/module/utils/onairosApi.js +139 -70
- package/lib/module/utils/onairosApi.js.map +1 -1
- package/lib/module/utils/secureStorage.js +116 -0
- package/lib/module/utils/secureStorage.js.map +1 -1
- package/lib/typescript/components/EmailVerificationModal.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/services/apiKeyService.d.ts +50 -2
- package/lib/typescript/services/apiKeyService.d.ts.map +1 -1
- package/lib/typescript/services/platformAuthService.d.ts +29 -14
- package/lib/typescript/services/platformAuthService.d.ts.map +1 -1
- package/lib/typescript/utils/onairosApi.d.ts +24 -10
- package/lib/typescript/utils/onairosApi.d.ts.map +1 -1
- package/lib/typescript/utils/secureStorage.d.ts +31 -0
- package/lib/typescript/utils/secureStorage.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/EmailVerificationModal.tsx +9 -5
- package/src/index.ts +1 -1
- package/src/services/apiKeyService.ts +282 -18
- package/src/services/platformAuthService.ts +211 -424
- package/src/types/index.d.ts +6 -5
- package/src/utils/onairosApi.ts +151 -74
- package/src/utils/secureStorage.ts +122 -0
|
@@ -3,9 +3,14 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.verifyCredentials = exports.updateCredentials = exports.storeCredentials = exports.hasCredentials = exports.getCredentials = exports.generateDeviceUsername = exports.deleteCredentials = void 0;
|
|
6
|
+
exports.verifyCredentials = exports.updateCredentials = exports.storeCredentials = exports.isJWTExpired = exports.hasJWT = exports.hasCredentials = exports.getJWTPayload = exports.getJWT = exports.getCredentials = exports.generateDeviceUsername = exports.deleteCredentials = exports.clearJWT = void 0;
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
8
|
var _constants = require("../constants");
|
|
9
|
+
var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
// JWT token storage key
|
|
12
|
+
const JWT_TOKEN_KEY = 'onairos_jwt_token';
|
|
13
|
+
|
|
9
14
|
// Define OnairosCredentials interface locally to avoid circular dependencies
|
|
10
15
|
|
|
11
16
|
// Create a mock storage for environments without Keychain access (like Expo Go)
|
|
@@ -223,5 +228,122 @@ const verifyCredentials = async username => {
|
|
|
223
228
|
return false;
|
|
224
229
|
}
|
|
225
230
|
};
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* JWT Token Storage Functions
|
|
234
|
+
* These functions handle JWT tokens from email verification
|
|
235
|
+
*
|
|
236
|
+
* Note: Main JWT token management is handled in apiKeyService.ts
|
|
237
|
+
* These are utility functions for backwards compatibility
|
|
238
|
+
*/
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* Retrieve JWT token
|
|
242
|
+
* @returns JWT token or null if not found
|
|
243
|
+
*/
|
|
226
244
|
exports.verifyCredentials = verifyCredentials;
|
|
245
|
+
const getJWT = async () => {
|
|
246
|
+
try {
|
|
247
|
+
const token = await _asyncStorage.default.getItem(JWT_TOKEN_KEY);
|
|
248
|
+
return token;
|
|
249
|
+
} catch (error) {
|
|
250
|
+
console.error('❌ Failed to retrieve JWT token:', error);
|
|
251
|
+
return null;
|
|
252
|
+
}
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Check if JWT token exists
|
|
257
|
+
* @returns True if JWT token exists
|
|
258
|
+
*/
|
|
259
|
+
exports.getJWT = getJWT;
|
|
260
|
+
const hasJWT = async () => {
|
|
261
|
+
try {
|
|
262
|
+
const token = await _asyncStorage.default.getItem(JWT_TOKEN_KEY);
|
|
263
|
+
return !!token;
|
|
264
|
+
} catch (error) {
|
|
265
|
+
console.error('❌ Failed to check JWT token:', error);
|
|
266
|
+
return false;
|
|
267
|
+
}
|
|
268
|
+
};
|
|
269
|
+
|
|
270
|
+
/**
|
|
271
|
+
* Clear JWT token
|
|
272
|
+
*/
|
|
273
|
+
exports.hasJWT = hasJWT;
|
|
274
|
+
const clearJWT = async () => {
|
|
275
|
+
try {
|
|
276
|
+
await _asyncStorage.default.removeItem(JWT_TOKEN_KEY);
|
|
277
|
+
console.log('🗑️ JWT token cleared');
|
|
278
|
+
return true;
|
|
279
|
+
} catch (error) {
|
|
280
|
+
console.error('❌ Failed to clear JWT token:', error);
|
|
281
|
+
return false;
|
|
282
|
+
}
|
|
283
|
+
};
|
|
284
|
+
|
|
285
|
+
/**
|
|
286
|
+
* Simple base64 decoder for React Native
|
|
287
|
+
*/
|
|
288
|
+
exports.clearJWT = clearJWT;
|
|
289
|
+
const base64Decode = str => {
|
|
290
|
+
// Add padding if needed
|
|
291
|
+
while (str.length % 4) {
|
|
292
|
+
str += '=';
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
// Simple base64 decoding
|
|
296
|
+
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
|
297
|
+
let result = '';
|
|
298
|
+
for (let i = 0; i < str.length; i += 4) {
|
|
299
|
+
const a = chars.indexOf(str.charAt(i));
|
|
300
|
+
const b = chars.indexOf(str.charAt(i + 1));
|
|
301
|
+
const c = chars.indexOf(str.charAt(i + 2));
|
|
302
|
+
const d = chars.indexOf(str.charAt(i + 3));
|
|
303
|
+
const bitmap = a << 18 | b << 12 | c << 6 | d;
|
|
304
|
+
result += String.fromCharCode(bitmap >> 16 & 255);
|
|
305
|
+
if (c !== 64) result += String.fromCharCode(bitmap >> 8 & 255);
|
|
306
|
+
if (d !== 64) result += String.fromCharCode(bitmap & 255);
|
|
307
|
+
}
|
|
308
|
+
return result;
|
|
309
|
+
};
|
|
310
|
+
|
|
311
|
+
/**
|
|
312
|
+
* Get JWT token payload (decoded)
|
|
313
|
+
* @returns Decoded JWT payload or null if invalid
|
|
314
|
+
*/
|
|
315
|
+
const getJWTPayload = async () => {
|
|
316
|
+
try {
|
|
317
|
+
const token = await getJWT();
|
|
318
|
+
if (!token) return null;
|
|
319
|
+
|
|
320
|
+
// Decode JWT payload (middle part of token)
|
|
321
|
+
const parts = token.split('.');
|
|
322
|
+
if (parts.length !== 3) return null;
|
|
323
|
+
const decodedPayload = base64Decode(parts[1]);
|
|
324
|
+
const payload = JSON.parse(decodedPayload);
|
|
325
|
+
return payload;
|
|
326
|
+
} catch (error) {
|
|
327
|
+
console.error('❌ Failed to decode JWT payload:', error);
|
|
328
|
+
return null;
|
|
329
|
+
}
|
|
330
|
+
};
|
|
331
|
+
|
|
332
|
+
/**
|
|
333
|
+
* Check if JWT token is expired
|
|
334
|
+
* @returns True if token is expired or invalid
|
|
335
|
+
*/
|
|
336
|
+
exports.getJWTPayload = getJWTPayload;
|
|
337
|
+
const isJWTExpired = async () => {
|
|
338
|
+
try {
|
|
339
|
+
const payload = await getJWTPayload();
|
|
340
|
+
if (!payload || !payload.exp) return true;
|
|
341
|
+
const currentTime = Math.floor(Date.now() / 1000);
|
|
342
|
+
return payload.exp < currentTime;
|
|
343
|
+
} catch (error) {
|
|
344
|
+
console.error('❌ Failed to check JWT expiration:', error);
|
|
345
|
+
return true;
|
|
346
|
+
}
|
|
347
|
+
};
|
|
348
|
+
exports.isJWTExpired = isJWTExpired;
|
|
227
349
|
//# sourceMappingURL=secureStorage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_constants","mockStorage","Keychain","error","console","warn","ACCESS_CONTROL","BIOMETRY_ANY_OR_DEVICE_PASSCODE","ACCESSIBLE","WHEN_UNLOCKED","getGenericPassword","setGenericPassword","resetGenericPassword","isKeychainAvailable","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_constants","_asyncStorage","_interopRequireDefault","e","__esModule","default","JWT_TOKEN_KEY","mockStorage","Keychain","error","console","warn","ACCESS_CONTROL","BIOMETRY_ANY_OR_DEVICE_PASSCODE","ACCESSIBLE","WHEN_UNLOCKED","getGenericPassword","setGenericPassword","resetGenericPassword","isKeychainAvailable","safeGetGenericPassword","options","key","service","safeSetGenericPassword","username","password","safeResetGenericPassword","storeCredentials","credentials","existingCredentials","getCredentials","updatedCredentials","createdAt","Date","now","Error","STORAGE_KEYS","Platform","OS","accessControl","accessible","JSON","stringify","exports","parse","hasCredentials","deleteCredentials","updateCredentials","generateDeviceUsername","randomId","Math","random","toString","substring","verifyCredentials","getJWT","token","AsyncStorage","getItem","hasJWT","clearJWT","removeItem","log","base64Decode","str","length","chars","result","i","a","indexOf","charAt","b","c","d","bitmap","String","fromCharCode","getJWTPayload","parts","split","decodedPayload","payload","isJWTExpired","exp","currentTime","floor"],"sourceRoot":"..\\..\\..\\src","sources":["utils/secureStorage.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -69,12 +69,14 @@ export const EmailVerificationModal = ({
|
|
|
69
69
|
if (result.success) {
|
|
70
70
|
console.log('✅ Email verification successful');
|
|
71
71
|
|
|
72
|
-
//
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
72
|
+
// Check if JWT token was received and stored
|
|
73
|
+
if (result.token) {
|
|
74
|
+
console.log('🎫 JWT token received and stored for user authentication');
|
|
75
|
+
}
|
|
76
76
|
|
|
77
|
-
|
|
77
|
+
// Use the existingUser flag from the backend response
|
|
78
|
+
const isExistingUser = result.existingUser || false;
|
|
79
|
+
Alert.alert('Email Verified', result.message || 'Your email has been verified successfully!\n\n' + (result.token ? 'You are now authenticated and can access user features.' : 'Authentication complete.'), [{
|
|
78
80
|
text: 'Continue',
|
|
79
81
|
onPress: () => {
|
|
80
82
|
onVerificationComplete(email, isExistingUser);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","useCallback","View","Text","StyleSheet","TouchableOpacity","ActivityIndicator","Modal","SafeAreaView","TouchableWithoutFeedback","TextInput","Alert","Icon","requestEmailVerification","verifyEmailCode","checkEmailVerificationStatus","EmailVerificationModal","visible","email","onClose","onVerificationComplete","onVerificationFailed","testMode","step","setStep","verificationCode","setVerificationCode","isLoading","setIsLoading","codeSent","setCodeSent","handleRequestVerification","alert","console","log","statusCheck","success","isPending","result","message","text","style","error","errorMessage","Error","handleVerifyCode","trim","isExistingUser","onPress","handleResendCode","createElement","transparent","animationType","statusBarTranslucent","onRequestClose","styles","modalOverlay","e","stopPropagation","modalContent","container","header","closeButton","name","size","color","headerTitle","placeholder","content","Fragment","iconContainer","title","subtitle","emailContainer","emailLabel","emailText","button","buttonDisabled","disabled","buttonText","testingNote","codeInput","value","onChangeText","keyboardType","maxLength","autoFocus","textAlign","resendButton","resendButtonText","create","flex","backgroundColor","justifyContent","alignItems","borderRadius","width","maxWidth","maxHeight","padding","flexDirection","marginBottom","fontSize","fontWeight","borderWidth","borderColor","letterSpacing","paddingVertical","paddingHorizontal","opacity","textDecorationLine"],"sourceRoot":"..\\..\\..\\src","sources":["components/EmailVerificationModal.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useState","useCallback","View","Text","StyleSheet","TouchableOpacity","ActivityIndicator","Modal","SafeAreaView","TouchableWithoutFeedback","TextInput","Alert","Icon","requestEmailVerification","verifyEmailCode","checkEmailVerificationStatus","EmailVerificationModal","visible","email","onClose","onVerificationComplete","onVerificationFailed","testMode","step","setStep","verificationCode","setVerificationCode","isLoading","setIsLoading","codeSent","setCodeSent","handleRequestVerification","alert","console","log","statusCheck","success","isPending","result","message","text","style","error","errorMessage","Error","handleVerifyCode","trim","token","isExistingUser","existingUser","onPress","handleResendCode","createElement","transparent","animationType","statusBarTranslucent","onRequestClose","styles","modalOverlay","e","stopPropagation","modalContent","container","header","closeButton","name","size","color","headerTitle","placeholder","content","Fragment","iconContainer","title","subtitle","emailContainer","emailLabel","emailText","button","buttonDisabled","disabled","buttonText","testingNote","codeInput","value","onChangeText","keyboardType","maxLength","autoFocus","textAlign","resendButton","resendButtonText","create","flex","backgroundColor","justifyContent","alignItems","borderRadius","width","maxWidth","maxHeight","padding","flexDirection","marginBottom","fontSize","fontWeight","borderWidth","borderColor","letterSpacing","paddingVertical","paddingHorizontal","opacity","textDecorationLine"],"sourceRoot":"..\\..\\..\\src","sources":["components/EmailVerificationModal.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,WAAW,QAAQ,OAAO;AACpD,SACEC,IAAI,EACJC,IAAI,EACJC,UAAU,EACVC,gBAAgB,EAChBC,iBAAiB,EACjBC,KAAK,EACLC,YAAY,EACZC,wBAAwB,EACxBC,SAAS,EACTC,KAAK,QACA,cAAc;AACrB,OAAOC,IAAI,MAAM,yCAAyC;AAC1D,SAASC,wBAAwB,EAAEC,eAAe,EAAEC,4BAA4B,QAAQ,iCAAiC;AAWzH,OAAO,MAAMC,sBAA6D,GAAGA,CAAC;EAC5EC,OAAO;EACPC,KAAK;EACLC,OAAO;EACPC,sBAAsB;EACtBC,oBAAoB;EACpBC,QAAQ,GAAG;AACb,CAAC,KAAK;EACJ,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAGxB,QAAQ,CAAuB,SAAS,CAAC;EACjE,MAAM,CAACyB,gBAAgB,EAAEC,mBAAmB,CAAC,GAAG1B,QAAQ,CAAS,EAAE,CAAC;EACpE,MAAM,CAAC2B,SAAS,EAAEC,YAAY,CAAC,GAAG5B,QAAQ,CAAU,KAAK,CAAC;EAC1D,MAAM,CAAC6B,QAAQ,EAAEC,WAAW,CAAC,GAAG9B,QAAQ,CAAU,KAAK,CAAC;EAExD,MAAM+B,yBAAyB,GAAG9B,WAAW,CAAC,YAAY;IACxD,IAAI,CAACiB,KAAK,EAAE;MACVP,KAAK,CAACqB,KAAK,CAAC,OAAO,EAAE,2BAA2B,CAAC;MACjD;IACF;IAEAJ,YAAY,CAAC,IAAI,CAAC;IAClB,IAAI;MACFK,OAAO,CAACC,GAAG,CAAC,uCAAuC,EAAEhB,KAAK,CAAC;;MAE3D;MACA,MAAMiB,WAAW,GAAG,MAAMpB,4BAA4B,CAACG,KAAK,EAAEI,QAAQ,CAAC;MACvE,IAAIa,WAAW,CAACC,OAAO,IAAID,WAAW,CAACE,SAAS,EAAE;QAChDJ,OAAO,CAACC,GAAG,CAAC,sCAAsC,CAAC;QACnDJ,WAAW,CAAC,IAAI,CAAC;QACjBN,OAAO,CAAC,QAAQ,CAAC;QACjBI,YAAY,CAAC,KAAK,CAAC;QACnB;MACF;;MAEA;MACA,MAAMU,MAAM,GAAG,MAAMzB,wBAAwB,CAACK,KAAK,EAAEI,QAAQ,CAAC;MAE9D,IAAIgB,MAAM,CAACF,OAAO,EAAE;QAClBH,OAAO,CAACC,GAAG,CAAC,kDAAkD,CAAC;QAC/DJ,WAAW,CAAC,IAAI,CAAC;QACjBN,OAAO,CAAC,QAAQ,CAAC;QACjBb,KAAK,CAACqB,KAAK,CACT,wBAAwB,EACxBM,MAAM,CAACC,OAAO,IAAI,8GAA8G,EAChI,CAAC;UAAEC,IAAI,EAAE,IAAI;UAAEC,KAAK,EAAE;QAAU,CAAC,CACnC,CAAC;MACH,CAAC,MAAM;QACLR,OAAO,CAACS,KAAK,CAAC,wCAAwC,EAAEJ,MAAM,CAACI,KAAK,CAAC;QACrE/B,KAAK,CAACqB,KAAK,CAAC,OAAO,EAAEM,MAAM,CAACI,KAAK,IAAI,kCAAkC,CAAC;QACxErB,oBAAoB,CAACiB,MAAM,CAACI,KAAK,IAAI,kCAAkC,CAAC;MAC1E;IACF,CAAC,CAAC,OAAOA,KAAK,EAAE;MACdT,OAAO,CAACS,KAAK,CAAC,kCAAkC,EAAEA,KAAK,CAAC;MACxD,MAAMC,YAAY,GAAGD,KAAK,YAAYE,KAAK,GAAGF,KAAK,CAACH,OAAO,GAAG,eAAe;MAC7E5B,KAAK,CAACqB,KAAK,CAAC,OAAO,EAAEW,YAAY,CAAC;MAClCtB,oBAAoB,CAACsB,YAAY,CAAC;IACpC,CAAC,SAAS;MACRf,YAAY,CAAC,KAAK,CAAC;IACrB;EACF,CAAC,EAAE,CAACV,KAAK,EAAEG,oBAAoB,CAAC,CAAC;EAEjC,MAAMwB,gBAAgB,GAAG5C,WAAW,CAAC,YAAY;IAC/C,IAAI,CAACwB,gBAAgB,CAACqB,IAAI,CAAC,CAAC,EAAE;MAC5BnC,KAAK,CAACqB,KAAK,CAAC,OAAO,EAAE,oCAAoC,CAAC;MAC1D;IACF;IAEAJ,YAAY,CAAC,IAAI,CAAC;IAClB,IAAI;MACFK,OAAO,CAACC,GAAG,CAAC,8BAA8B,EAAEhB,KAAK,CAAC;MAElD,MAAMoB,MAAM,GAAG,MAAMxB,eAAe,CAACI,KAAK,EAAEO,gBAAgB,CAACqB,IAAI,CAAC,CAAC,EAAExB,QAAQ,CAAC;MAE9E,IAAIgB,MAAM,CAACF,OAAO,EAAE;QAClBH,OAAO,CAACC,GAAG,CAAC,iCAAiC,CAAC;;QAE9C;QACA,IAAII,MAAM,CAACS,KAAK,EAAE;UAChBd,OAAO,CAACC,GAAG,CAAC,0DAA0D,CAAC;QACzE;;QAEA;QACA,MAAMc,cAAc,GAAGV,MAAM,CAACW,YAAY,IAAI,KAAK;QAEnDtC,KAAK,CAACqB,KAAK,CACT,gBAAgB,EAChBM,MAAM,CAACC,OAAO,IAAI,gDAAgD,IACjED,MAAM,CAACS,KAAK,GAAG,yDAAyD,GAAG,0BAA0B,CAAC,EACvG,CAAC;UACCP,IAAI,EAAE,UAAU;UAChBU,OAAO,EAAEA,CAAA,KAAM;YACb9B,sBAAsB,CAACF,KAAK,EAAE8B,cAAc,CAAC;UAC/C;QACF,CAAC,CACH,CAAC;MACH,CAAC,MAAM;QACLf,OAAO,CAACS,KAAK,CAAC,8BAA8B,EAAEJ,MAAM,CAACI,KAAK,CAAC;QAC3D/B,KAAK,CAACqB,KAAK,CAAC,qBAAqB,EAAEM,MAAM,CAACI,KAAK,IAAI,8CAA8C,CAAC;MACpG;IACF,CAAC,CAAC,OAAOA,KAAK,EAAE;MACdT,OAAO,CAACS,KAAK,CAAC,yBAAyB,EAAEA,KAAK,CAAC;MAC/C,MAAMC,YAAY,GAAGD,KAAK,YAAYE,KAAK,GAAGF,KAAK,CAACH,OAAO,GAAG,eAAe;MAC7E5B,KAAK,CAACqB,KAAK,CAAC,OAAO,EAAEW,YAAY,CAAC;IACpC,CAAC,SAAS;MACRf,YAAY,CAAC,KAAK,CAAC;IACrB;EACF,CAAC,EAAE,CAACV,KAAK,EAAEO,gBAAgB,EAAEL,sBAAsB,CAAC,CAAC;EAErD,MAAM+B,gBAAgB,GAAGlD,WAAW,CAAC,YAAY;IAC/CyB,mBAAmB,CAAC,EAAE,CAAC;IACvB,MAAMK,yBAAyB,CAAC,CAAC;EACnC,CAAC,EAAE,CAACA,yBAAyB,CAAC,CAAC;EAE/B,oBACEhC,KAAA,CAAAqD,aAAA,CAAC7C,KAAK;IACJU,OAAO,EAAEA,OAAQ;IACjBoC,WAAW;IACXC,aAAa,EAAC,OAAO;IACrBC,oBAAoB;IACpBC,cAAc,EAAErC;EAAQ,gBAExBpB,KAAA,CAAAqD,aAAA,CAAC3C,wBAAwB;IAACyC,OAAO,EAAE/B;EAAQ,gBACzCpB,KAAA,CAAAqD,aAAA,CAAClD,IAAI;IAACuC,KAAK,EAAEgB,MAAM,CAACC;EAAa,gBAC/B3D,KAAA,CAAAqD,aAAA,CAAC3C,wBAAwB;IAACyC,OAAO,EAAES,CAAC,IAAIA,CAAC,CAACC,eAAe,CAAC;EAAE,gBAC1D7D,KAAA,CAAAqD,aAAA,CAAClD,IAAI;IAACuC,KAAK,EAAEgB,MAAM,CAACI;EAAa,gBAC/B9D,KAAA,CAAAqD,aAAA,CAAC5C,YAAY;IAACiC,KAAK,EAAEgB,MAAM,CAACK;EAAU,gBACpC/D,KAAA,CAAAqD,aAAA,CAAClD,IAAI;IAACuC,KAAK,EAAEgB,MAAM,CAACM;EAAO,gBACzBhE,KAAA,CAAAqD,aAAA,CAAC/C,gBAAgB;IAAC6C,OAAO,EAAE/B,OAAQ;IAACsB,KAAK,EAAEgB,MAAM,CAACO;EAAY,gBAC5DjE,KAAA,CAAAqD,aAAA,CAACxC,IAAI;IAACqD,IAAI,EAAC,OAAO;IAACC,IAAI,EAAE,EAAG;IAACC,KAAK,EAAC;EAAM,CAAE,CAC3B,CAAC,eACnBpE,KAAA,CAAAqD,aAAA,CAACjD,IAAI;IAACsC,KAAK,EAAEgB,MAAM,CAACW;EAAY,GAAC,oBAAwB,CAAC,eAC1DrE,KAAA,CAAAqD,aAAA,CAAClD,IAAI;IAACuC,KAAK,EAAEgB,MAAM,CAACY;EAAY,CAAE,CAC9B,CAAC,eAEPtE,KAAA,CAAAqD,aAAA,CAAClD,IAAI;IAACuC,KAAK,EAAEgB,MAAM,CAACa;EAAQ,GACzB/C,IAAI,KAAK,SAAS,gBACjBxB,KAAA,CAAAqD,aAAA,CAAArD,KAAA,CAAAwE,QAAA,qBACExE,KAAA,CAAAqD,aAAA,CAAClD,IAAI;IAACuC,KAAK,EAAEgB,MAAM,CAACe;EAAc,gBAChCzE,KAAA,CAAAqD,aAAA,CAACxC,IAAI;IAACqD,IAAI,EAAC,OAAO;IAACC,IAAI,EAAE,EAAG;IAACC,KAAK,EAAC;EAAS,CAAE,CAC1C,CAAC,eAEPpE,KAAA,CAAAqD,aAAA,CAACjD,IAAI;IAACsC,KAAK,EAAEgB,MAAM,CAACgB;EAAM,GAAC,mBAAuB,CAAC,eACnD1E,KAAA,CAAAqD,aAAA,CAACjD,IAAI;IAACsC,KAAK,EAAEgB,MAAM,CAACiB;EAAS,GAAC,kDAExB,CAAC,eAEP3E,KAAA,CAAAqD,aAAA,CAAClD,IAAI;IAACuC,KAAK,EAAEgB,MAAM,CAACkB;EAAe,gBACjC5E,KAAA,CAAAqD,aAAA,CAACjD,IAAI;IAACsC,KAAK,EAAEgB,MAAM,CAACmB;EAAW,GAAC,gBAAoB,CAAC,eACrD7E,KAAA,CAAAqD,aAAA,CAACjD,IAAI;IAACsC,KAAK,EAAEgB,MAAM,CAACoB;EAAU,GAAE3D,KAAY,CACxC,CAAC,eAEPnB,KAAA,CAAAqD,aAAA,CAAC/C,gBAAgB;IACfoC,KAAK,EAAE,CAACgB,MAAM,CAACqB,MAAM,EAAEnD,SAAS,IAAI8B,MAAM,CAACsB,cAAc,CAAE;IAC3D7B,OAAO,EAAEnB,yBAA0B;IACnCiD,QAAQ,EAAErD;EAAU,GAEnBA,SAAS,gBACR5B,KAAA,CAAAqD,aAAA,CAAC9C,iBAAiB;IAAC4D,IAAI,EAAC,OAAO;IAACC,KAAK,EAAC;EAAM,CAAE,CAAC,gBAE/CpE,KAAA,CAAAqD,aAAA,CAACjD,IAAI;IAACsC,KAAK,EAAEgB,MAAM,CAACwB;EAAW,GAAC,wBAA4B,CAE9C,CAClB,CAAC,gBAEHlF,KAAA,CAAAqD,aAAA,CAAArD,KAAA,CAAAwE,QAAA,qBACExE,KAAA,CAAAqD,aAAA,CAAClD,IAAI;IAACuC,KAAK,EAAEgB,MAAM,CAACe;EAAc,gBAChCzE,KAAA,CAAAqD,aAAA,CAACxC,IAAI;IAACqD,IAAI,EAAC,UAAU;IAACC,IAAI,EAAE,EAAG;IAACC,KAAK,EAAC;EAAS,CAAE,CAC7C,CAAC,eAEPpE,KAAA,CAAAqD,aAAA,CAACjD,IAAI;IAACsC,KAAK,EAAEgB,MAAM,CAACgB;EAAM,GAAC,yBAA6B,CAAC,eACzD1E,KAAA,CAAAqD,aAAA,CAACjD,IAAI;IAACsC,KAAK,EAAEgB,MAAM,CAACiB;EAAS,GAAC,+BACC,EAACxD,KAC1B,CAAC,EAENI,QAAQ,iBACPvB,KAAA,CAAAqD,aAAA,CAACjD,IAAI;IAACsC,KAAK,EAAEgB,MAAM,CAACyB;EAAY,GAAC,qEAE3B,CACP,eAEDnF,KAAA,CAAAqD,aAAA,CAAC1C,SAAS;IACR+B,KAAK,EAAEgB,MAAM,CAAC0B,SAAU;IACxBC,KAAK,EAAE3D,gBAAiB;IACxB4D,YAAY,EAAE3D,mBAAoB;IAClC2C,WAAW,EAAC,oBAAoB;IAChCiB,YAAY,EAAC,YAAY;IACzBC,SAAS,EAAE,CAAE;IACbC,SAAS;IACTC,SAAS,EAAC;EAAQ,CACnB,CAAC,eAEF1F,KAAA,CAAAqD,aAAA,CAAC/C,gBAAgB;IACfoC,KAAK,EAAE,CAACgB,MAAM,CAACqB,MAAM,EAAEnD,SAAS,IAAI8B,MAAM,CAACsB,cAAc,CAAE;IAC3D7B,OAAO,EAAEL,gBAAiB;IAC1BmC,QAAQ,EAAErD,SAAS,IAAI,CAACF,gBAAgB,CAACqB,IAAI,CAAC;EAAE,GAE/CnB,SAAS,gBACR5B,KAAA,CAAAqD,aAAA,CAAC9C,iBAAiB;IAAC4D,IAAI,EAAC,OAAO;IAACC,KAAK,EAAC;EAAM,CAAE,CAAC,gBAE/CpE,KAAA,CAAAqD,aAAA,CAACjD,IAAI;IAACsC,KAAK,EAAEgB,MAAM,CAACwB;EAAW,GAAC,aAAiB,CAEnC,CAAC,eAEnBlF,KAAA,CAAAqD,aAAA,CAAC/C,gBAAgB;IACfoC,KAAK,EAAEgB,MAAM,CAACiC,YAAa;IAC3BxC,OAAO,EAAEC,gBAAiB;IAC1B6B,QAAQ,EAAErD;EAAU,gBAEpB5B,KAAA,CAAAqD,aAAA,CAACjD,IAAI;IAACsC,KAAK,EAAEgB,MAAM,CAACkC;EAAiB,GAAC,iCAEhC,CACU,CAClB,CAEA,CACM,CACV,CACkB,CACtB,CACkB,CACrB,CAAC;AAEZ,CAAC;AAED,MAAMlC,MAAM,GAAGrD,UAAU,CAACwF,MAAM,CAAC;EAC/BlC,YAAY,EAAE;IACZmC,IAAI,EAAE,CAAC;IACPC,eAAe,EAAE,oBAAoB;IACrCC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE;EACd,CAAC;EACDnC,YAAY,EAAE;IACZiC,eAAe,EAAE,MAAM;IACvBG,YAAY,EAAE,EAAE;IAChBC,KAAK,EAAE,KAAK;IACZC,QAAQ,EAAE,GAAG;IACbC,SAAS,EAAE;EACb,CAAC;EACDtC,SAAS,EAAE;IACTuC,OAAO,EAAE;EACX,CAAC;EACDtC,MAAM,EAAE;IACNuC,aAAa,EAAE,KAAK;IACpBN,UAAU,EAAE,QAAQ;IACpBD,cAAc,EAAE,eAAe;IAC/BQ,YAAY,EAAE;EAChB,CAAC;EACDvC,WAAW,EAAE;IACXqC,OAAO,EAAE;EACX,CAAC;EACDjC,WAAW,EAAE;IACXoC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBtC,KAAK,EAAE;EACT,CAAC;EACDE,WAAW,EAAE;IACX6B,KAAK,EAAE;EACT,CAAC;EACD5B,OAAO,EAAE;IACP0B,UAAU,EAAE;EACd,CAAC;EACDxB,aAAa,EAAE;IACb+B,YAAY,EAAE;EAChB,CAAC;EACD9B,KAAK,EAAE;IACL+B,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBtC,KAAK,EAAE,MAAM;IACbsB,SAAS,EAAE,QAAQ;IACnBc,YAAY,EAAE;EAChB,CAAC;EACD7B,QAAQ,EAAE;IACR8B,QAAQ,EAAE,EAAE;IACZrC,KAAK,EAAE,MAAM;IACbsB,SAAS,EAAE,QAAQ;IACnBc,YAAY,EAAE;EAChB,CAAC;EACD5B,cAAc,EAAE;IACdmB,eAAe,EAAE,SAAS;IAC1BO,OAAO,EAAE,EAAE;IACXJ,YAAY,EAAE,CAAC;IACfM,YAAY,EAAE,EAAE;IAChBL,KAAK,EAAE;EACT,CAAC;EACDtB,UAAU,EAAE;IACV4B,QAAQ,EAAE,EAAE;IACZrC,KAAK,EAAE,MAAM;IACboC,YAAY,EAAE;EAChB,CAAC;EACD1B,SAAS,EAAE;IACT2B,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBtC,KAAK,EAAE;EACT,CAAC;EACDe,WAAW,EAAE;IACXsB,QAAQ,EAAE,EAAE;IACZrC,KAAK,EAAE,SAAS;IAChBsB,SAAS,EAAE,QAAQ;IACnBc,YAAY,EAAE,EAAE;IAChBT,eAAe,EAAE,SAAS;IAC1BO,OAAO,EAAE,CAAC;IACVJ,YAAY,EAAE;EAChB,CAAC;EACDd,SAAS,EAAE;IACTuB,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE,MAAM;IACnBV,YAAY,EAAE,CAAC;IACfI,OAAO,EAAE,EAAE;IACXG,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBG,aAAa,EAAE,CAAC;IAChBL,YAAY,EAAE,EAAE;IAChBL,KAAK,EAAE;EACT,CAAC;EACDpB,MAAM,EAAE;IACNgB,eAAe,EAAE,SAAS;IAC1Be,eAAe,EAAE,EAAE;IACnBC,iBAAiB,EAAE,EAAE;IACrBb,YAAY,EAAE,CAAC;IACfC,KAAK,EAAE,MAAM;IACbF,UAAU,EAAE,QAAQ;IACpBO,YAAY,EAAE;EAChB,CAAC;EACDxB,cAAc,EAAE;IACdgC,OAAO,EAAE;EACX,CAAC;EACD9B,UAAU,EAAE;IACVd,KAAK,EAAE,MAAM;IACbqC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd,CAAC;EACDf,YAAY,EAAE;IACZmB,eAAe,EAAE;EACnB,CAAC;EACDlB,gBAAgB,EAAE;IAChBxB,KAAK,EAAE,SAAS;IAChBqC,QAAQ,EAAE,EAAE;IACZQ,kBAAkB,EAAE;EACtB;AACF,CAAC,CAAC","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -15,7 +15,9 @@ export { Onairos } from './components/Onairos';
|
|
|
15
15
|
export { initializeApiKey, ADMIN_API_KEY } from './services/apiKeyService';
|
|
16
16
|
|
|
17
17
|
// Authentication & PIN Management
|
|
18
|
-
export {
|
|
18
|
+
export {
|
|
19
|
+
// storePinAfterBiometric, // TODO: Commented out temporarily - biometric functionality disabled
|
|
20
|
+
getStoredJwtToken, clearStoredTokens, requestEmailVerification, verifyEmailCode, checkEmailVerificationStatus } from './services/platformAuthService';
|
|
19
21
|
|
|
20
22
|
// Programmatic Function (for custom buttons)
|
|
21
23
|
export { executeOnairosFlow } from './utils/programmaticFlow';
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OnairosButton","Onairos","initializeApiKey","ADMIN_API_KEY","
|
|
1
|
+
{"version":3,"names":["OnairosButton","Onairos","initializeApiKey","ADMIN_API_KEY","getStoredJwtToken","clearStoredTokens","requestEmailVerification","verifyEmailCode","checkEmailVerificationStatus","executeOnairosFlow"],"sourceRoot":"..\\..\\src","sources":["index.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AASA;AACA,SAASA,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,OAAO,QAAQ,sBAAsB;;AAE9C;AACA,SACEC,gBAAgB,EAChBC,aAAa,QACR,0BAA0B;;AAEjC;AACA;AACE;AACAC,iBAAiB,EACjBC,iBAAiB,EACjBC,wBAAwB,EACxBC,eAAe,EACfC,4BAA4B,QACvB,gCAAgC;;AAEvC;AACA,SAASC,kBAAkB,QAAQ,0BAA0B;;AAE7D;AACA,SAAST,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,OAAO,QAAQ,sBAAsB;AAE9C,eAAe;EACbD,aAAa;EACbC;AACF,CAAC","ignoreList":[]}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
2
|
+
|
|
1
3
|
// Admin key for backend validation
|
|
2
4
|
export const ADMIN_API_KEY = 'OnairosIsAUnicorn2025';
|
|
3
5
|
|
|
@@ -9,30 +11,33 @@ export let ApiKeyType = /*#__PURE__*/function (ApiKeyType) {
|
|
|
9
11
|
return ApiKeyType;
|
|
10
12
|
}({});
|
|
11
13
|
|
|
14
|
+
// JWT token storage key
|
|
15
|
+
const JWT_TOKEN_KEY = 'onairos_jwt_token';
|
|
16
|
+
|
|
12
17
|
/**
|
|
13
|
-
*
|
|
18
|
+
* Two-Tier Authentication Service for Onairos React Native SDK
|
|
14
19
|
*
|
|
15
|
-
* This service
|
|
16
|
-
*
|
|
20
|
+
* This service implements the two-tier authentication system:
|
|
21
|
+
* 1. Developer API Keys: For app-level operations (email verification, app registration)
|
|
22
|
+
* 2. JWT User Tokens: For user-level operations (PIN storage, user profile)
|
|
17
23
|
*
|
|
18
24
|
* How it works:
|
|
19
|
-
* 1. Initialize with API key
|
|
20
|
-
* 2.
|
|
21
|
-
* 3.
|
|
22
|
-
* 4.
|
|
23
|
-
* 5. Handle
|
|
25
|
+
* 1. Initialize with developer API key
|
|
26
|
+
* 2. Use API key for email verification requests
|
|
27
|
+
* 3. Store JWT token from email verification response
|
|
28
|
+
* 4. Use JWT token for user-authenticated requests
|
|
29
|
+
* 5. Handle token expiration gracefully
|
|
24
30
|
*
|
|
25
31
|
* Backend Integration:
|
|
26
|
-
* -
|
|
27
|
-
* -
|
|
28
|
-
* - Admin key "OnairosIsAUnicorn2025" has full permissions
|
|
29
|
-
* - Developer keys have limited permissions based on validation response
|
|
32
|
+
* - Developer routes: Authorization: Bearer ${API_KEY}
|
|
33
|
+
* - User routes: Authorization: Bearer ${JWT_TOKEN}
|
|
30
34
|
*/
|
|
31
35
|
|
|
32
36
|
// Global configuration state
|
|
33
37
|
let globalConfig = null;
|
|
34
38
|
let validationCache = new Map();
|
|
35
39
|
let isInitialized = false;
|
|
40
|
+
let userToken = null;
|
|
36
41
|
|
|
37
42
|
// Cache duration (5 minutes)
|
|
38
43
|
const CACHE_DURATION = 5 * 60 * 1000;
|
|
@@ -45,14 +50,14 @@ const API_ENDPOINTS = {
|
|
|
45
50
|
};
|
|
46
51
|
|
|
47
52
|
/**
|
|
48
|
-
* Initialize the SDK with API key
|
|
49
|
-
* @param config API configuration including API key
|
|
53
|
+
* Initialize the SDK with developer API key
|
|
54
|
+
* @param config API configuration including developer API key
|
|
50
55
|
*/
|
|
51
56
|
export const initializeApiKey = async config => {
|
|
52
57
|
try {
|
|
53
|
-
console.log('🔑 Initializing Onairos SDK with API key...');
|
|
58
|
+
console.log('🔑 Initializing Onairos SDK with developer API key...');
|
|
54
59
|
if (!config.apiKey) {
|
|
55
|
-
throw new Error('API key is required for SDK initialization');
|
|
60
|
+
throw new Error('Developer API key is required for SDK initialization');
|
|
56
61
|
}
|
|
57
62
|
if (config.apiKey.length < 32) {
|
|
58
63
|
throw new Error('Invalid API key format. API key must be at least 32 characters long.');
|
|
@@ -77,14 +82,21 @@ export const initializeApiKey = async config => {
|
|
|
77
82
|
});
|
|
78
83
|
}
|
|
79
84
|
|
|
80
|
-
// Validate the API key
|
|
85
|
+
// Validate the developer API key
|
|
81
86
|
const validation = await validateApiKey(config.apiKey);
|
|
82
87
|
if (!validation.isValid) {
|
|
83
|
-
throw new Error(`API key validation failed: ${validation.error}`);
|
|
88
|
+
throw new Error(`Developer API key validation failed: ${validation.error}`);
|
|
84
89
|
}
|
|
90
|
+
|
|
91
|
+
// Try to load existing JWT token
|
|
92
|
+
await loadJWT();
|
|
85
93
|
isInitialized = true;
|
|
86
94
|
if (globalConfig.enableLogging) {
|
|
87
95
|
console.log('✅ Onairos SDK initialized successfully');
|
|
96
|
+
console.log('🔑 Developer API key ready for app-level operations');
|
|
97
|
+
if (userToken) {
|
|
98
|
+
console.log('🎫 User JWT token loaded from storage');
|
|
99
|
+
}
|
|
88
100
|
if (validation.permissions) {
|
|
89
101
|
console.log('🔐 API Key Permissions:', validation.permissions);
|
|
90
102
|
}
|
|
@@ -284,13 +296,78 @@ export const isApiKeyInitialized = () => {
|
|
|
284
296
|
return isInitialized && globalConfig !== null;
|
|
285
297
|
};
|
|
286
298
|
|
|
299
|
+
/**
|
|
300
|
+
* Store JWT token securely after email verification
|
|
301
|
+
* @param token JWT token from email verification response
|
|
302
|
+
*/
|
|
303
|
+
export const storeJWT = async token => {
|
|
304
|
+
try {
|
|
305
|
+
var _globalConfig7;
|
|
306
|
+
await AsyncStorage.setItem(JWT_TOKEN_KEY, token);
|
|
307
|
+
userToken = token;
|
|
308
|
+
if ((_globalConfig7 = globalConfig) !== null && _globalConfig7 !== void 0 && _globalConfig7.enableLogging) {
|
|
309
|
+
console.log('🎫 JWT token stored successfully');
|
|
310
|
+
}
|
|
311
|
+
} catch (error) {
|
|
312
|
+
console.error('❌ Failed to store JWT token:', error);
|
|
313
|
+
throw error;
|
|
314
|
+
}
|
|
315
|
+
};
|
|
316
|
+
|
|
317
|
+
/**
|
|
318
|
+
* Load JWT token from storage
|
|
319
|
+
* @returns JWT token or null if not found
|
|
320
|
+
*/
|
|
321
|
+
export const loadJWT = async () => {
|
|
322
|
+
try {
|
|
323
|
+
const token = await AsyncStorage.getItem(JWT_TOKEN_KEY);
|
|
324
|
+
userToken = token;
|
|
325
|
+
return token;
|
|
326
|
+
} catch (error) {
|
|
327
|
+
console.error('❌ Failed to load JWT token:', error);
|
|
328
|
+
return null;
|
|
329
|
+
}
|
|
330
|
+
};
|
|
331
|
+
|
|
332
|
+
/**
|
|
333
|
+
* Get current JWT token
|
|
334
|
+
* @returns JWT token or null if not available
|
|
335
|
+
*/
|
|
336
|
+
export const getJWT = () => {
|
|
337
|
+
return userToken;
|
|
338
|
+
};
|
|
339
|
+
|
|
340
|
+
/**
|
|
341
|
+
* Clear JWT token (on logout or token expiration)
|
|
342
|
+
*/
|
|
343
|
+
export const clearJWT = async () => {
|
|
344
|
+
try {
|
|
345
|
+
var _globalConfig8;
|
|
346
|
+
await AsyncStorage.removeItem(JWT_TOKEN_KEY);
|
|
347
|
+
userToken = null;
|
|
348
|
+
if ((_globalConfig8 = globalConfig) !== null && _globalConfig8 !== void 0 && _globalConfig8.enableLogging) {
|
|
349
|
+
console.log('🗑️ JWT token cleared');
|
|
350
|
+
}
|
|
351
|
+
} catch (error) {
|
|
352
|
+
console.error('❌ Failed to clear JWT token:', error);
|
|
353
|
+
}
|
|
354
|
+
};
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* Check if user is authenticated with JWT token
|
|
358
|
+
* @returns True if user has valid JWT token
|
|
359
|
+
*/
|
|
360
|
+
export const isUserAuthenticated = () => {
|
|
361
|
+
return !!userToken;
|
|
362
|
+
};
|
|
363
|
+
|
|
287
364
|
/**
|
|
288
365
|
* Get authenticated headers for API requests
|
|
289
366
|
* @returns Headers object with Authorization and other required headers
|
|
290
367
|
*/
|
|
291
368
|
export const getAuthHeaders = () => {
|
|
292
|
-
var
|
|
293
|
-
if (!((
|
|
369
|
+
var _globalConfig9;
|
|
370
|
+
if (!((_globalConfig9 = globalConfig) !== null && _globalConfig9 !== void 0 && _globalConfig9.apiKey)) {
|
|
294
371
|
throw new Error('SDK not initialized. Call initializeApiKey() first.');
|
|
295
372
|
}
|
|
296
373
|
const keyType = getApiKeyType(globalConfig.apiKey);
|
|
@@ -305,6 +382,45 @@ export const getAuthHeaders = () => {
|
|
|
305
382
|
};
|
|
306
383
|
};
|
|
307
384
|
|
|
385
|
+
/**
|
|
386
|
+
* Get authentication headers for developer API requests
|
|
387
|
+
* @returns Headers with developer API key
|
|
388
|
+
*/
|
|
389
|
+
export const getDeveloperAuthHeaders = () => {
|
|
390
|
+
var _globalConfig0;
|
|
391
|
+
if (!((_globalConfig0 = globalConfig) !== null && _globalConfig0 !== void 0 && _globalConfig0.apiKey)) {
|
|
392
|
+
throw new Error('SDK not initialized. Call initializeApiKey() first.');
|
|
393
|
+
}
|
|
394
|
+
const keyType = getApiKeyType(globalConfig.apiKey);
|
|
395
|
+
return {
|
|
396
|
+
'Content-Type': 'application/json',
|
|
397
|
+
'Authorization': `Bearer ${globalConfig.apiKey}`,
|
|
398
|
+
'User-Agent': 'OnairosSDK/1.0.0',
|
|
399
|
+
'X-SDK-Version': '3.0.72',
|
|
400
|
+
'X-SDK-Environment': globalConfig.environment || 'production',
|
|
401
|
+
'X-API-Key-Type': keyType,
|
|
402
|
+
'X-Timestamp': new Date().toISOString()
|
|
403
|
+
};
|
|
404
|
+
};
|
|
405
|
+
|
|
406
|
+
/**
|
|
407
|
+
* Get authentication headers for user JWT requests
|
|
408
|
+
* @returns Headers with user JWT token
|
|
409
|
+
*/
|
|
410
|
+
export const getUserAuthHeaders = () => {
|
|
411
|
+
var _globalConfig1;
|
|
412
|
+
if (!userToken) {
|
|
413
|
+
throw new Error('User not authenticated. Please verify email first.');
|
|
414
|
+
}
|
|
415
|
+
return {
|
|
416
|
+
'Content-Type': 'application/json',
|
|
417
|
+
'Authorization': `Bearer ${userToken}`,
|
|
418
|
+
'User-Agent': 'OnairosSDK/1.0.0',
|
|
419
|
+
'X-SDK-Version': '3.0.72',
|
|
420
|
+
'X-SDK-Environment': ((_globalConfig1 = globalConfig) === null || _globalConfig1 === void 0 ? void 0 : _globalConfig1.environment) || 'production'
|
|
421
|
+
};
|
|
422
|
+
};
|
|
423
|
+
|
|
308
424
|
/**
|
|
309
425
|
* Make an authenticated API request
|
|
310
426
|
* @param endpoint The API endpoint (relative to base URL)
|
|
@@ -366,13 +482,139 @@ export const makeAuthenticatedRequest = async (endpoint, options = {}) => {
|
|
|
366
482
|
}
|
|
367
483
|
};
|
|
368
484
|
|
|
485
|
+
/**
|
|
486
|
+
* Make authenticated request with developer API key
|
|
487
|
+
* @param endpoint The API endpoint
|
|
488
|
+
* @param options Fetch options
|
|
489
|
+
* @returns Response promise
|
|
490
|
+
*/
|
|
491
|
+
export const makeDeveloperRequest = async (endpoint, options = {}) => {
|
|
492
|
+
if (!isApiKeyInitialized()) {
|
|
493
|
+
throw new Error('SDK not initialized. Call initializeApiKey() first.');
|
|
494
|
+
}
|
|
495
|
+
const config = getApiConfig();
|
|
496
|
+
const baseUrl = API_ENDPOINTS[config.environment || 'production'];
|
|
497
|
+
const url = `${baseUrl}${endpoint.startsWith('/') ? '' : '/'}${endpoint}`;
|
|
498
|
+
|
|
499
|
+
// Merge developer authentication headers
|
|
500
|
+
const headers = {
|
|
501
|
+
...getDeveloperAuthHeaders(),
|
|
502
|
+
...(options.headers || {})
|
|
503
|
+
};
|
|
504
|
+
|
|
505
|
+
// Add timeout
|
|
506
|
+
const controller = new AbortController();
|
|
507
|
+
const timeoutId = setTimeout(() => controller.abort(), config.timeout || 30000);
|
|
508
|
+
try {
|
|
509
|
+
if (config.enableLogging) {
|
|
510
|
+
console.log(`🌐 Making developer request to: ${endpoint}`);
|
|
511
|
+
}
|
|
512
|
+
const response = await fetch(url, {
|
|
513
|
+
...options,
|
|
514
|
+
headers,
|
|
515
|
+
signal: controller.signal
|
|
516
|
+
});
|
|
517
|
+
clearTimeout(timeoutId);
|
|
518
|
+
if (config.enableLogging) {
|
|
519
|
+
console.log(`📡 Developer request response: ${response.status} for ${endpoint}`);
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
// Handle API key errors
|
|
523
|
+
if (response.status === 401) {
|
|
524
|
+
console.error('❌ Developer API key authentication failed');
|
|
525
|
+
throw new Error('Invalid or expired API key');
|
|
526
|
+
}
|
|
527
|
+
if (response.status === 403) {
|
|
528
|
+
console.error('❌ Developer API key permissions insufficient');
|
|
529
|
+
throw new Error('Insufficient API key permissions');
|
|
530
|
+
}
|
|
531
|
+
if (response.status === 429) {
|
|
532
|
+
console.error('❌ API rate limit exceeded');
|
|
533
|
+
throw new Error('Rate limit exceeded');
|
|
534
|
+
}
|
|
535
|
+
return response;
|
|
536
|
+
} catch (error) {
|
|
537
|
+
clearTimeout(timeoutId);
|
|
538
|
+
if (error.name === 'AbortError') {
|
|
539
|
+
console.error('⏱️ Request timeout for:', endpoint);
|
|
540
|
+
throw new Error('Request timeout');
|
|
541
|
+
}
|
|
542
|
+
throw error;
|
|
543
|
+
}
|
|
544
|
+
};
|
|
545
|
+
|
|
546
|
+
/**
|
|
547
|
+
* Make authenticated request with user JWT token
|
|
548
|
+
* @param endpoint The API endpoint
|
|
549
|
+
* @param options Fetch options
|
|
550
|
+
* @returns Response promise
|
|
551
|
+
*/
|
|
552
|
+
export const makeUserRequest = async (endpoint, options = {}) => {
|
|
553
|
+
if (!isUserAuthenticated()) {
|
|
554
|
+
await loadJWT(); // Try to load from storage
|
|
555
|
+
}
|
|
556
|
+
if (!isUserAuthenticated()) {
|
|
557
|
+
throw new Error('User not authenticated. Please verify email first.');
|
|
558
|
+
}
|
|
559
|
+
const config = getApiConfig() || {
|
|
560
|
+
environment: 'production',
|
|
561
|
+
timeout: 30000,
|
|
562
|
+
enableLogging: false
|
|
563
|
+
};
|
|
564
|
+
const baseUrl = API_ENDPOINTS[config.environment || 'production'];
|
|
565
|
+
const url = `${baseUrl}${endpoint.startsWith('/') ? '' : '/'}${endpoint}`;
|
|
566
|
+
|
|
567
|
+
// Merge user authentication headers
|
|
568
|
+
const headers = {
|
|
569
|
+
...getUserAuthHeaders(),
|
|
570
|
+
...(options.headers || {})
|
|
571
|
+
};
|
|
572
|
+
|
|
573
|
+
// Add timeout
|
|
574
|
+
const controller = new AbortController();
|
|
575
|
+
const timeoutId = setTimeout(() => controller.abort(), config.timeout || 30000);
|
|
576
|
+
try {
|
|
577
|
+
if (config.enableLogging) {
|
|
578
|
+
console.log(`🌐 Making user request to: ${endpoint}`);
|
|
579
|
+
}
|
|
580
|
+
const response = await fetch(url, {
|
|
581
|
+
...options,
|
|
582
|
+
headers,
|
|
583
|
+
signal: controller.signal
|
|
584
|
+
});
|
|
585
|
+
clearTimeout(timeoutId);
|
|
586
|
+
if (config.enableLogging) {
|
|
587
|
+
console.log(`📡 User request response: ${response.status} for ${endpoint}`);
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
// Handle JWT token errors
|
|
591
|
+
if (response.status === 401) {
|
|
592
|
+
console.error('❌ JWT token authentication failed - token may be expired');
|
|
593
|
+
await clearJWT(); // Clear expired token
|
|
594
|
+
throw new Error('Authentication expired. Please verify email again.');
|
|
595
|
+
}
|
|
596
|
+
if (response.status === 403) {
|
|
597
|
+
console.error('❌ JWT token permissions insufficient');
|
|
598
|
+
throw new Error('Insufficient permissions for this operation');
|
|
599
|
+
}
|
|
600
|
+
return response;
|
|
601
|
+
} catch (error) {
|
|
602
|
+
clearTimeout(timeoutId);
|
|
603
|
+
if (error.name === 'AbortError') {
|
|
604
|
+
console.error('⏱️ Request timeout for:', endpoint);
|
|
605
|
+
throw new Error('Request timeout');
|
|
606
|
+
}
|
|
607
|
+
throw error;
|
|
608
|
+
}
|
|
609
|
+
};
|
|
610
|
+
|
|
369
611
|
/**
|
|
370
612
|
* Clear the API key validation cache
|
|
371
613
|
*/
|
|
372
614
|
export const clearValidationCache = () => {
|
|
373
|
-
var
|
|
615
|
+
var _globalConfig10;
|
|
374
616
|
validationCache.clear();
|
|
375
|
-
if ((
|
|
617
|
+
if ((_globalConfig10 = globalConfig) !== null && _globalConfig10 !== void 0 && _globalConfig10.enableLogging) {
|
|
376
618
|
console.log('🗑️ API key validation cache cleared');
|
|
377
619
|
}
|
|
378
620
|
};
|