@onairos/react-native 3.0.72 โ†’ 3.0.74

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 (47) hide show
  1. package/lib/commonjs/components/Onairos.js.map +1 -1
  2. package/lib/commonjs/index.js +23 -504
  3. package/lib/commonjs/index.js.map +1 -1
  4. package/lib/commonjs/services/apiKeyService.js +93 -14
  5. package/lib/commonjs/services/apiKeyService.js.map +1 -1
  6. package/lib/commonjs/services/platformAuthService.js +224 -9
  7. package/lib/commonjs/services/platformAuthService.js.map +1 -1
  8. package/lib/commonjs/types/index.js +4 -0
  9. package/lib/commonjs/types.js +12 -0
  10. package/lib/commonjs/types.js.map +1 -1
  11. package/lib/commonjs/utils/programmaticFlow.js +117 -0
  12. package/lib/commonjs/utils/programmaticFlow.js.map +1 -0
  13. package/lib/module/components/Onairos.js.map +1 -1
  14. package/lib/module/index.js +17 -64
  15. package/lib/module/index.js.map +1 -1
  16. package/lib/module/services/apiKeyService.js +90 -11
  17. package/lib/module/services/apiKeyService.js.map +1 -1
  18. package/lib/module/services/platformAuthService.js +218 -8
  19. package/lib/module/services/platformAuthService.js.map +1 -1
  20. package/lib/module/types/index.js +1 -1
  21. package/lib/module/types.js +8 -0
  22. package/lib/module/types.js.map +1 -1
  23. package/lib/module/utils/programmaticFlow.js +111 -0
  24. package/lib/module/utils/programmaticFlow.js.map +1 -0
  25. package/lib/typescript/components/Onairos.d.ts +1 -29
  26. package/lib/typescript/components/Onairos.d.ts.map +1 -1
  27. package/lib/typescript/index.d.ts +10 -40
  28. package/lib/typescript/index.d.ts.map +1 -1
  29. package/lib/typescript/services/apiKeyService.d.ts +18 -0
  30. package/lib/typescript/services/apiKeyService.d.ts.map +1 -1
  31. package/lib/typescript/services/platformAuthService.d.ts +26 -0
  32. package/lib/typescript/services/platformAuthService.d.ts.map +1 -1
  33. package/lib/typescript/types/index.d.ts +144 -78
  34. package/lib/typescript/types/index.d.ts.map +1 -1
  35. package/lib/typescript/types.d.ts +56 -0
  36. package/lib/typescript/types.d.ts.map +1 -1
  37. package/lib/typescript/utils/programmaticFlow.d.ts +23 -0
  38. package/lib/typescript/utils/programmaticFlow.d.ts.map +1 -0
  39. package/package.json +1 -1
  40. package/src/components/Onairos.tsx +1 -30
  41. package/src/index.ts +23 -132
  42. package/src/services/apiKeyService.ts +84 -8
  43. package/src/services/platformAuthService.ts +260 -4
  44. package/src/types/index.d.ts +110 -0
  45. package/src/types/index.ts +148 -74
  46. package/src/types.ts +59 -0
  47. package/src/utils/programmaticFlow.ts +113 -0
@@ -1,3 +1,14 @@
1
+ // Admin key for backend validation
2
+ export const ADMIN_API_KEY = 'OnairosIsAUnicorn2025';
3
+
4
+ // API key types
5
+ export let ApiKeyType = /*#__PURE__*/function (ApiKeyType) {
6
+ ApiKeyType["DEVELOPER"] = "developer";
7
+ ApiKeyType["ADMIN"] = "admin";
8
+ ApiKeyType["INVALID"] = "invalid";
9
+ return ApiKeyType;
10
+ }({});
11
+
1
12
  /**
2
13
  * API Key Service for Onairos React Native SDK
3
14
  *
@@ -10,6 +21,12 @@
10
21
  * 3. Cache validation results for performance
11
22
  * 4. Include API key in all authenticated requests
12
23
  * 5. Handle API key errors gracefully with developer-friendly messages
24
+ *
25
+ * Backend Integration:
26
+ * - All API requests include: Authorization: Bearer {apiKey}
27
+ * - Backend should validate API keys on each request
28
+ * - Admin key "OnairosIsAUnicorn2025" has full permissions
29
+ * - Developer keys have limited permissions based on validation response
13
30
  */
14
31
 
15
32
  // Global configuration state
@@ -82,6 +99,32 @@ export const initializeApiKey = async config => {
82
99
  }
83
100
  };
84
101
 
102
+ /**
103
+ * Determine API key type
104
+ * @param apiKey The API key to check
105
+ * @returns The type of API key
106
+ */
107
+ export const getApiKeyType = apiKey => {
108
+ if (apiKey === ADMIN_API_KEY) {
109
+ return ApiKeyType.ADMIN;
110
+ }
111
+
112
+ // Developer keys should be at least 32 characters and start with specific prefix
113
+ if (apiKey.length >= 32 && (apiKey.startsWith('dev_') || apiKey.startsWith('pk_'))) {
114
+ return ApiKeyType.DEVELOPER;
115
+ }
116
+ return ApiKeyType.INVALID;
117
+ };
118
+
119
+ /**
120
+ * Check if API key is admin key
121
+ * @param apiKey The API key to check
122
+ * @returns True if admin key
123
+ */
124
+ export const isAdminKey = apiKey => {
125
+ return apiKey === ADMIN_API_KEY;
126
+ };
127
+
85
128
  /**
86
129
  * Validate an API key with the Onairos backend
87
130
  * @param apiKey The API key to validate
@@ -92,6 +135,31 @@ export const validateApiKey = async apiKey => {
92
135
  var _globalConfig2, _globalConfig3;
93
136
  console.log('๐Ÿ” Validating API key...');
94
137
 
138
+ // Check if it's an admin key
139
+ if (isAdminKey(apiKey)) {
140
+ console.log('๐Ÿ”‘ Admin key detected - granting full permissions');
141
+ return {
142
+ isValid: true,
143
+ permissions: ['*'],
144
+ // Full permissions for admin
145
+ rateLimits: {
146
+ remaining: 999999,
147
+ resetTime: Date.now() + 24 * 60 * 60 * 1000 // 24 hours
148
+ },
149
+ keyType: ApiKeyType.ADMIN
150
+ };
151
+ }
152
+
153
+ // Check basic format for developer keys
154
+ const keyType = getApiKeyType(apiKey);
155
+ if (keyType === ApiKeyType.INVALID) {
156
+ return {
157
+ isValid: false,
158
+ error: 'Invalid API key format. Developer keys must be at least 32 characters and start with "dev_" or "pk_"',
159
+ keyType: ApiKeyType.INVALID
160
+ };
161
+ }
162
+
95
163
  // Check cache first
96
164
  const cached = validationCache.get(apiKey);
97
165
  if (cached && Date.now() - cached.timestamp < CACHE_DURATION) {
@@ -114,12 +182,15 @@ export const validateApiKey = async apiKey => {
114
182
  headers: {
115
183
  'Content-Type': 'application/json',
116
184
  'Authorization': `Bearer ${apiKey}`,
117
- 'User-Agent': 'OnairosReactNative/1.0'
185
+ 'User-Agent': 'OnairosReactNative/1.0',
186
+ 'X-API-Key-Type': keyType
118
187
  },
119
188
  body: JSON.stringify({
120
189
  environment,
121
- sdk_version: '3.0.71',
122
- platform: 'react-native'
190
+ sdk_version: '3.0.72',
191
+ platform: 'react-native',
192
+ keyType,
193
+ timestamp: new Date().toISOString()
123
194
  }),
124
195
  signal: controller.signal
125
196
  });
@@ -130,7 +201,8 @@ export const validateApiKey = async apiKey => {
130
201
  const result = {
131
202
  isValid: true,
132
203
  permissions: data.permissions || [],
133
- rateLimits: data.rateLimits || null
204
+ rateLimits: data.rateLimits || null,
205
+ keyType: keyType
134
206
  };
135
207
 
136
208
  // Cache the successful result
@@ -147,7 +219,8 @@ export const validateApiKey = async apiKey => {
147
219
  const errorMessage = data.error || `HTTP ${response.status}: ${response.statusText}`;
148
220
  const result = {
149
221
  isValid: false,
150
- error: errorMessage
222
+ error: errorMessage,
223
+ keyType: keyType
151
224
  };
152
225
 
153
226
  // Don't cache failed results
@@ -163,14 +236,16 @@ export const validateApiKey = async apiKey => {
163
236
  console.error('โฑ๏ธ API key validation timeout');
164
237
  return {
165
238
  isValid: false,
166
- error: errorMessage
239
+ error: errorMessage,
240
+ keyType: keyType
167
241
  };
168
242
  }
169
243
  const errorMessage = `Network error during API key validation: ${fetchError.message}`;
170
244
  console.error('๐ŸŒ Network error during API key validation:', fetchError);
171
245
  return {
172
246
  isValid: false,
173
- error: errorMessage
247
+ error: errorMessage,
248
+ keyType: keyType
174
249
  };
175
250
  }
176
251
  } catch (error) {
@@ -178,7 +253,8 @@ export const validateApiKey = async apiKey => {
178
253
  console.error('โŒ API key validation error:', error);
179
254
  return {
180
255
  isValid: false,
181
- error: errorMessage
256
+ error: errorMessage,
257
+ keyType: ApiKeyType.INVALID
182
258
  };
183
259
  }
184
260
  };
@@ -217,12 +293,15 @@ export const getAuthHeaders = () => {
217
293
  if (!((_globalConfig7 = globalConfig) !== null && _globalConfig7 !== void 0 && _globalConfig7.apiKey)) {
218
294
  throw new Error('SDK not initialized. Call initializeApiKey() first.');
219
295
  }
296
+ const keyType = getApiKeyType(globalConfig.apiKey);
220
297
  return {
221
298
  'Content-Type': 'application/json',
222
299
  'Authorization': `Bearer ${globalConfig.apiKey}`,
223
- 'User-Agent': 'OnairosReactNative/3.0.71',
224
- 'X-SDK-Version': '3.0.71',
225
- 'X-SDK-Environment': globalConfig.environment || 'production'
300
+ 'User-Agent': 'OnairosReactNative/3.0.72',
301
+ 'X-SDK-Version': '3.0.72',
302
+ 'X-SDK-Environment': globalConfig.environment || 'production',
303
+ 'X-API-Key-Type': keyType,
304
+ 'X-Timestamp': new Date().toISOString()
226
305
  };
227
306
  };
228
307
 
@@ -1 +1 @@
1
- {"version":3,"names":["globalConfig","validationCache","Map","isInitialized","CACHE_DURATION","API_ENDPOINTS","production","staging","development","initializeApiKey","config","console","log","apiKey","Error","length","environment","enableLogging","timeout","retryAttempts","apiKeyPrefix","substring","validation","validateApiKey","isValid","error","permissions","rateLimits","_globalConfig2","_globalConfig3","cached","get","Date","now","timestamp","_globalConfig","result","baseUrl","controller","AbortController","timeoutId","setTimeout","abort","response","fetch","method","headers","body","JSON","stringify","sdk_version","platform","signal","clearTimeout","data","json","ok","success","_globalConfig4","set","_globalConfig5","errorMessage","status","statusText","fetchError","name","message","getApiConfig","getApiKey","_globalConfig6","isApiKeyInitialized","getAuthHeaders","_globalConfig7","makeAuthenticatedRequest","endpoint","options","url","startsWith","clearValidationCache","_globalConfig8","clear","resetApiKeyService"],"sourceRoot":"..\\..\\..\\src","sources":["services/apiKeyService.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ADMIN_API_KEY","ApiKeyType","globalConfig","validationCache","Map","isInitialized","CACHE_DURATION","API_ENDPOINTS","production","staging","development","initializeApiKey","config","console","log","apiKey","Error","length","environment","enableLogging","timeout","retryAttempts","apiKeyPrefix","substring","validation","validateApiKey","isValid","error","permissions","rateLimits","getApiKeyType","ADMIN","startsWith","DEVELOPER","INVALID","isAdminKey","_globalConfig2","_globalConfig3","remaining","resetTime","Date","now","keyType","cached","get","timestamp","_globalConfig","result","baseUrl","controller","AbortController","timeoutId","setTimeout","abort","response","fetch","method","headers","body","JSON","stringify","sdk_version","platform","toISOString","signal","clearTimeout","data","json","ok","success","_globalConfig4","set","_globalConfig5","errorMessage","status","statusText","fetchError","name","message","getApiConfig","getApiKey","_globalConfig6","isApiKeyInitialized","getAuthHeaders","_globalConfig7","makeAuthenticatedRequest","endpoint","options","url","clearValidationCache","_globalConfig8","clear","resetApiKeyService"],"sourceRoot":"..\\..\\..\\src","sources":["services/apiKeyService.ts"],"mappings":"AAEA;AACA,OAAO,MAAMA,aAAa,GAAG,uBAAuB;;AAEpD;AACA,WAAYC,UAAU,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;;AAMtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAIC,YAAkC,GAAG,IAAI;AAC7C,IAAIC,eAAmF,GAAG,IAAIC,GAAG,CAAC,CAAC;AACnG,IAAIC,aAAa,GAAG,KAAK;;AAEzB;AACA,MAAMC,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI;;AAEpC;AACA,MAAMC,aAAa,GAAG;EACpBC,UAAU,EAAE,yBAAyB;EACrCC,OAAO,EAAE,gCAAgC;EACzCC,WAAW,EAAE;AACf,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAG,MAAOC,MAAqB,IAAoB;EAC9E,IAAI;IACFC,OAAO,CAACC,GAAG,CAAC,6CAA6C,CAAC;IAE1D,IAAI,CAACF,MAAM,CAACG,MAAM,EAAE;MAClB,MAAM,IAAIC,KAAK,CAAC,4CAA4C,CAAC;IAC/D;IAEA,IAAIJ,MAAM,CAACG,MAAM,CAACE,MAAM,GAAG,EAAE,EAAE;MAC7B,MAAM,IAAID,KAAK,CAAC,sEAAsE,CAAC;IACzF;;IAEA;IACAd,YAAY,GAAG;MACba,MAAM,EAAEH,MAAM,CAACG,MAAM;MACrBG,WAAW,EAAEN,MAAM,CAACM,WAAW,IAAI,YAAY;MAC/CC,aAAa,EAAEP,MAAM,CAACO,aAAa,KAAK,KAAK;MAAE;MAC/CC,OAAO,EAAER,MAAM,CAACQ,OAAO,IAAI,KAAK;MAChCC,aAAa,EAAET,MAAM,CAACS,aAAa,IAAI;IACzC,CAAC;IAED,IAAInB,YAAY,CAACiB,aAAa,EAAE;MAC9BN,OAAO,CAACC,GAAG,CAAC,uBAAuB,EAAE;QACnCI,WAAW,EAAEhB,YAAY,CAACgB,WAAW;QACrCE,OAAO,EAAElB,YAAY,CAACkB,OAAO;QAC7BC,aAAa,EAAEnB,YAAY,CAACmB,aAAa;QACzCC,YAAY,EAAEV,MAAM,CAACG,MAAM,CAACQ,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK;QACnDJ,aAAa,EAAEjB,YAAY,CAACiB;MAC9B,CAAC,CAAC;IACJ;;IAEA;IACA,MAAMK,UAAU,GAAG,MAAMC,cAAc,CAACb,MAAM,CAACG,MAAM,CAAC;IAEtD,IAAI,CAACS,UAAU,CAACE,OAAO,EAAE;MACvB,MAAM,IAAIV,KAAK,CAAC,8BAA8BQ,UAAU,CAACG,KAAK,EAAE,CAAC;IACnE;IAEAtB,aAAa,GAAG,IAAI;IAEpB,IAAIH,YAAY,CAACiB,aAAa,EAAE;MAC9BN,OAAO,CAACC,GAAG,CAAC,wCAAwC,CAAC;MACrD,IAAIU,UAAU,CAACI,WAAW,EAAE;QAC1Bf,OAAO,CAACC,GAAG,CAAC,yBAAyB,EAAEU,UAAU,CAACI,WAAW,CAAC;MAChE;MACA,IAAIJ,UAAU,CAACK,UAAU,EAAE;QACzBhB,OAAO,CAACC,GAAG,CAAC,iBAAiB,EAAEU,UAAU,CAACK,UAAU,CAAC;MACvD;IACF;EACF,CAAC,CAAC,OAAOF,KAAK,EAAE;IACdd,OAAO,CAACc,KAAK,CAAC,qCAAqC,EAAEA,KAAK,CAAC;IAC3DtB,aAAa,GAAG,KAAK;IACrB,MAAMsB,KAAK;EACb;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMG,aAAa,GAAIf,MAAc,IAAiB;EAC3D,IAAIA,MAAM,KAAKf,aAAa,EAAE;IAC5B,OAAOC,UAAU,CAAC8B,KAAK;EACzB;;EAEA;EACA,IAAIhB,MAAM,CAACE,MAAM,IAAI,EAAE,KAAKF,MAAM,CAACiB,UAAU,CAAC,MAAM,CAAC,IAAIjB,MAAM,CAACiB,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;IAClF,OAAO/B,UAAU,CAACgC,SAAS;EAC7B;EAEA,OAAOhC,UAAU,CAACiC,OAAO;AAC3B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,UAAU,GAAIpB,MAAc,IAAc;EACrD,OAAOA,MAAM,KAAKf,aAAa;AACjC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMyB,cAAc,GAAG,MAAOV,MAAc,IAAsC;EACvF,IAAI;IAAA,IAAAqB,cAAA,EAAAC,cAAA;IACFxB,OAAO,CAACC,GAAG,CAAC,0BAA0B,CAAC;;IAEvC;IACA,IAAIqB,UAAU,CAACpB,MAAM,CAAC,EAAE;MACtBF,OAAO,CAACC,GAAG,CAAC,mDAAmD,CAAC;MAChE,OAAO;QACLY,OAAO,EAAE,IAAI;QACbE,WAAW,EAAE,CAAC,GAAG,CAAC;QAAE;QACpBC,UAAU,EAAE;UACVS,SAAS,EAAE,MAAM;UACjBC,SAAS,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAC9C,CAAC;QACDC,OAAO,EAAEzC,UAAU,CAAC8B;MACtB,CAAC;IACH;;IAEA;IACA,MAAMW,OAAO,GAAGZ,aAAa,CAACf,MAAM,CAAC;IACrC,IAAI2B,OAAO,KAAKzC,UAAU,CAACiC,OAAO,EAAE;MAClC,OAAO;QACLR,OAAO,EAAE,KAAK;QACdC,KAAK,EAAE,sGAAsG;QAC7Ge,OAAO,EAAEzC,UAAU,CAACiC;MACtB,CAAC;IACH;;IAEA;IACA,MAAMS,MAAM,GAAGxC,eAAe,CAACyC,GAAG,CAAC7B,MAAM,CAAC;IAC1C,IAAI4B,MAAM,IAAIH,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGE,MAAM,CAACE,SAAS,GAAGvC,cAAc,EAAE;MAAA,IAAAwC,aAAA;MAC5D,KAAAA,aAAA,GAAI5C,YAAY,cAAA4C,aAAA,eAAZA,aAAA,CAAc3B,aAAa,EAAE;QAC/BN,OAAO,CAACC,GAAG,CAAC,2CAA2C,CAAC;MAC1D;MACA,OAAO6B,MAAM,CAACI,MAAM;IACtB;IAEA,MAAM7B,WAAW,GAAG,EAAAkB,cAAA,GAAAlC,YAAY,cAAAkC,cAAA,uBAAZA,cAAA,CAAclB,WAAW,KAAI,YAAY;IAC7D,MAAM8B,OAAO,GAAGzC,aAAa,CAACW,WAAW,CAAC;IAC1C,MAAME,OAAO,GAAG,EAAAiB,cAAA,GAAAnC,YAAY,cAAAmC,cAAA,uBAAZA,cAAA,CAAcjB,OAAO,KAAI,KAAK;;IAE9C;IACA,MAAM6B,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;IACxC,MAAMC,SAAS,GAAGC,UAAU,CAAC,MAAMH,UAAU,CAACI,KAAK,CAAC,CAAC,EAAEjC,OAAO,CAAC;IAE/D,IAAI;MACF,MAAMkC,QAAQ,GAAG,MAAMC,KAAK,CAAC,GAAGP,OAAO,oBAAoB,EAAE;QAC3DQ,MAAM,EAAE,MAAM;QACdC,OAAO,EAAE;UACP,cAAc,EAAE,kBAAkB;UAClC,eAAe,EAAE,UAAU1C,MAAM,EAAE;UACnC,YAAY,EAAE,wBAAwB;UACtC,gBAAgB,EAAE2B;QACpB,CAAC;QACDgB,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;UACnB1C,WAAW;UACX2C,WAAW,EAAE,QAAQ;UACrBC,QAAQ,EAAE,cAAc;UACxBpB,OAAO;UACPG,SAAS,EAAE,IAAIL,IAAI,CAAC,CAAC,CAACuB,WAAW,CAAC;QACpC,CAAC,CAAC;QACFC,MAAM,EAAEf,UAAU,CAACe;MACrB,CAAC,CAAC;MAEFC,YAAY,CAACd,SAAS,CAAC;MAEvB,MAAMe,IAAI,GAAG,MAAMZ,QAAQ,CAACa,IAAI,CAAC,CAAC;MAElC,IAAIb,QAAQ,CAACc,EAAE,IAAIF,IAAI,CAACG,OAAO,EAAE;QAAA,IAAAC,cAAA;QAC/B,MAAMvB,MAA8B,GAAG;UACrCrB,OAAO,EAAE,IAAI;UACbE,WAAW,EAAEsC,IAAI,CAACtC,WAAW,IAAI,EAAE;UACnCC,UAAU,EAAEqC,IAAI,CAACrC,UAAU,IAAI,IAAI;UACnCa,OAAO,EAAEA;QACX,CAAC;;QAED;QACAvC,eAAe,CAACoE,GAAG,CAACxD,MAAM,EAAE;UAC1BgC,MAAM;UACNF,SAAS,EAAEL,IAAI,CAACC,GAAG,CAAC;QACtB,CAAC,CAAC;QAEF,KAAA6B,cAAA,GAAIpE,YAAY,cAAAoE,cAAA,eAAZA,cAAA,CAAcnD,aAAa,EAAE;UAC/BN,OAAO,CAACC,GAAG,CAAC,iCAAiC,CAAC;QAChD;QAEA,OAAOiC,MAAM;MACf,CAAC,MAAM;QAAA,IAAAyB,cAAA;QACL,MAAMC,YAAY,GAAGP,IAAI,CAACvC,KAAK,IAAI,QAAQ2B,QAAQ,CAACoB,MAAM,KAAKpB,QAAQ,CAACqB,UAAU,EAAE;QAEpF,MAAM5B,MAA8B,GAAG;UACrCrB,OAAO,EAAE,KAAK;UACdC,KAAK,EAAE8C,YAAY;UACnB/B,OAAO,EAAEA;QACX,CAAC;;QAED;QACA,KAAA8B,cAAA,GAAItE,YAAY,cAAAsE,cAAA,eAAZA,cAAA,CAAcrD,aAAa,EAAE;UAC/BN,OAAO,CAACc,KAAK,CAAC,8BAA8B,EAAE8C,YAAY,CAAC;QAC7D;QAEA,OAAO1B,MAAM;MACf;IACF,CAAC,CAAC,OAAO6B,UAAe,EAAE;MACxBX,YAAY,CAACd,SAAS,CAAC;MAEvB,IAAIyB,UAAU,CAACC,IAAI,KAAK,YAAY,EAAE;QACpC,MAAMJ,YAAY,GAAG,4BAA4B;QACjD5D,OAAO,CAACc,KAAK,CAAC,+BAA+B,CAAC;QAC9C,OAAO;UAAED,OAAO,EAAE,KAAK;UAAEC,KAAK,EAAE8C,YAAY;UAAE/B,OAAO,EAAEA;QAAQ,CAAC;MAClE;MAEA,MAAM+B,YAAY,GAAG,4CAA4CG,UAAU,CAACE,OAAO,EAAE;MACrFjE,OAAO,CAACc,KAAK,CAAC,6CAA6C,EAAEiD,UAAU,CAAC;MACxE,OAAO;QAAElD,OAAO,EAAE,KAAK;QAAEC,KAAK,EAAE8C,YAAY;QAAE/B,OAAO,EAAEA;MAAQ,CAAC;IAClE;EACF,CAAC,CAAC,OAAOf,KAAU,EAAE;IACnB,MAAM8C,YAAY,GAAG,6BAA6B9C,KAAK,CAACmD,OAAO,EAAE;IACjEjE,OAAO,CAACc,KAAK,CAAC,6BAA6B,EAAEA,KAAK,CAAC;IACnD,OAAO;MAAED,OAAO,EAAE,KAAK;MAAEC,KAAK,EAAE8C,YAAY;MAAE/B,OAAO,EAAEzC,UAAU,CAACiC;IAAQ,CAAC;EAC7E;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAM6C,YAAY,GAAGA,CAAA,KAA4B;EACtD,OAAO7E,YAAY;AACrB,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAM8E,SAAS,GAAGA,CAAA,KAAqB;EAAA,IAAAC,cAAA;EAC5C,OAAO,EAAAA,cAAA,GAAA/E,YAAY,cAAA+E,cAAA,uBAAZA,cAAA,CAAclE,MAAM,KAAI,IAAI;AACrC,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMmE,mBAAmB,GAAGA,CAAA,KAAe;EAChD,OAAO7E,aAAa,IAAIH,YAAY,KAAK,IAAI;AAC/C,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMiF,cAAc,GAAGA,CAAA,KAA8B;EAAA,IAAAC,cAAA;EAC1D,IAAI,GAAAA,cAAA,GAAClF,YAAY,cAAAkF,cAAA,eAAZA,cAAA,CAAcrE,MAAM,GAAE;IACzB,MAAM,IAAIC,KAAK,CAAC,qDAAqD,CAAC;EACxE;EAEA,MAAM0B,OAAO,GAAGZ,aAAa,CAAC5B,YAAY,CAACa,MAAM,CAAC;EAElD,OAAO;IACL,cAAc,EAAE,kBAAkB;IAClC,eAAe,EAAE,UAAUb,YAAY,CAACa,MAAM,EAAE;IAChD,YAAY,EAAE,2BAA2B;IACzC,eAAe,EAAE,QAAQ;IACzB,mBAAmB,EAAEb,YAAY,CAACgB,WAAW,IAAI,YAAY;IAC7D,gBAAgB,EAAEwB,OAAO;IACzB,aAAa,EAAE,IAAIF,IAAI,CAAC,CAAC,CAACuB,WAAW,CAAC;EACxC,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMsB,wBAAwB,GAAG,MAAAA,CACtCC,QAAgB,EAChBC,OAAoB,GAAG,CAAC,CAAC,KACH;EACtB,IAAI,CAACL,mBAAmB,CAAC,CAAC,EAAE;IAC1B,MAAM,IAAIlE,KAAK,CAAC,qDAAqD,CAAC;EACxE;EAEA,MAAMJ,MAAM,GAAGmE,YAAY,CAAC,CAAE;EAC9B,MAAM/B,OAAO,GAAGzC,aAAa,CAACK,MAAM,CAACM,WAAW,IAAI,YAAY,CAAC;EACjE,MAAMsE,GAAG,GAAG,GAAGxC,OAAO,GAAGsC,QAAQ,CAACtD,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,GAAGsD,QAAQ,EAAE;;EAEzE;EACA,MAAM7B,OAAO,GAAG;IACd,GAAG0B,cAAc,CAAC,CAAC;IACnB,IAAII,OAAO,CAAC9B,OAAO,IAAI,CAAC,CAAC;EAC3B,CAAC;;EAED;EACA,MAAMR,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;EACxC,MAAMC,SAAS,GAAGC,UAAU,CAAC,MAAMH,UAAU,CAACI,KAAK,CAAC,CAAC,EAAEzC,MAAM,CAACQ,OAAO,IAAI,KAAK,CAAC;EAE/E,IAAI;IACF,IAAIR,MAAM,CAACO,aAAa,EAAE;MACxBN,OAAO,CAACC,GAAG,CAAC,uCAAuCwE,QAAQ,EAAE,CAAC;IAChE;IAEA,MAAMhC,QAAQ,GAAG,MAAMC,KAAK,CAACiC,GAAG,EAAE;MAChC,GAAGD,OAAO;MACV9B,OAAO;MACPO,MAAM,EAAEf,UAAU,CAACe;IACrB,CAAC,CAAC;IAEFC,YAAY,CAACd,SAAS,CAAC;IAEvB,IAAIvC,MAAM,CAACO,aAAa,EAAE;MACxBN,OAAO,CAACC,GAAG,CAAC,uBAAuBwC,QAAQ,CAACoB,MAAM,QAAQY,QAAQ,EAAE,CAAC;IACvE;;IAEA;IACA,IAAIhC,QAAQ,CAACoB,MAAM,KAAK,GAAG,EAAE;MAC3B7D,OAAO,CAACc,KAAK,CAAC,6DAA6D,CAAC;MAC5E,MAAM,IAAIX,KAAK,CAAC,4BAA4B,CAAC;IAC/C;IAEA,IAAIsC,QAAQ,CAACoB,MAAM,KAAK,GAAG,EAAE;MAC3B7D,OAAO,CAACc,KAAK,CAAC,wDAAwD,CAAC;MACvE,MAAM,IAAIX,KAAK,CAAC,kCAAkC,CAAC;IACrD;IAEA,IAAIsC,QAAQ,CAACoB,MAAM,KAAK,GAAG,EAAE;MAC3B7D,OAAO,CAACc,KAAK,CAAC,oDAAoD,CAAC;MACnE,MAAM,IAAIX,KAAK,CAAC,qBAAqB,CAAC;IACxC;IAEA,OAAOsC,QAAQ;EACjB,CAAC,CAAC,OAAO3B,KAAK,EAAE;IACdsC,YAAY,CAACd,SAAS,CAAC;IAEvB,IAAIxB,KAAK,CAACkD,IAAI,KAAK,YAAY,EAAE;MAC/BhE,OAAO,CAACc,KAAK,CAAC,yBAAyB,EAAE2D,QAAQ,CAAC;MAClD,MAAM,IAAItE,KAAK,CAAC,iBAAiB,CAAC;IACpC;IAEA,MAAMW,KAAK;EACb;AACF,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAM8D,oBAAoB,GAAGA,CAAA,KAAY;EAAA,IAAAC,cAAA;EAC9CvF,eAAe,CAACwF,KAAK,CAAC,CAAC;EACvB,KAAAD,cAAA,GAAIxF,YAAY,cAAAwF,cAAA,eAAZA,cAAA,CAAcvE,aAAa,EAAE;IAC/BN,OAAO,CAACC,GAAG,CAAC,sCAAsC,CAAC;EACrD;AACF,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAM8E,kBAAkB,GAAGA,CAAA,KAAY;EAC5C1F,YAAY,GAAG,IAAI;EACnBG,aAAa,GAAG,KAAK;EACrBoF,oBAAoB,CAAC,CAAC;EACtB5E,OAAO,CAACC,GAAG,CAAC,0BAA0B,CAAC;AACzC,CAAC","ignoreList":[]}
@@ -1,6 +1,52 @@
1
1
  import AsyncStorage from '@react-native-async-storage/async-storage';
2
2
  import { makeAuthenticatedRequest } from './apiKeyService';
3
3
 
4
+ // ๐Ÿ”‘ CRITICAL: Initialize API key service for authentication
5
+ let isApiKeyInitialized = false;
6
+
7
+ /**
8
+ * Initialize the API key service with the admin key for testing
9
+ * This ensures all API requests include proper authentication headers
10
+ */
11
+ export const initializePlatformAuthService = async () => {
12
+ if (isApiKeyInitialized) {
13
+ console.log('๐Ÿ”‘ API key service already initialized');
14
+ return;
15
+ }
16
+ try {
17
+ // Import the initialization function
18
+ const {
19
+ initializeApiKey,
20
+ ADMIN_API_KEY
21
+ } = await import('./apiKeyService');
22
+
23
+ // Initialize with admin key for production email service
24
+ await initializeApiKey({
25
+ apiKey: ADMIN_API_KEY,
26
+ // 'OnairosIsAUnicorn2025'
27
+ environment: 'production',
28
+ // Use production for email verification
29
+ enableLogging: true,
30
+ timeout: 30000
31
+ });
32
+ isApiKeyInitialized = true;
33
+ console.log('โœ… Platform auth service initialized with admin key (production)');
34
+ } catch (error) {
35
+ console.error('โŒ Failed to initialize platform auth service:', error);
36
+ throw error;
37
+ }
38
+ };
39
+
40
+ /**
41
+ * Ensure API key is initialized before making authenticated requests
42
+ */
43
+ const ensureApiKeyInitialized = async () => {
44
+ if (!isApiKeyInitialized) {
45
+ console.log('๐Ÿ”‘ API key not initialized, initializing now...');
46
+ await initializePlatformAuthService();
47
+ }
48
+ };
49
+
4
50
  // Configuration for each platform's authentication
5
51
  let PLATFORM_AUTH_CONFIG = {
6
52
  instagram: {
@@ -761,17 +807,25 @@ export const requestEmailVerification = async (email, testMode = false) => {
761
807
  };
762
808
  }
763
809
 
764
- // In test mode, always return success
810
+ // In test mode, always return success with mock request ID
765
811
  if (testMode) {
766
- console.log('๐Ÿงช Test mode: Always returning success');
812
+ console.log('๐Ÿงช Test mode: Always returning success with mock request ID');
813
+ const mockRequestId = 'test-request-' + Date.now();
814
+
815
+ // Store request info for tracking
816
+ await AsyncStorage.setItem('email_verification_request_id', mockRequestId);
817
+ await AsyncStorage.setItem('email_verification_request_email', email);
767
818
  return {
768
819
  success: true,
769
- message: 'Email verification sent successfully (test mode)'
820
+ message: 'Email verification sent successfully (test mode)',
821
+ requestId: mockRequestId
770
822
  };
771
823
  }
772
824
 
773
825
  // Production mode: Make real API call with API key authentication
774
826
  try {
827
+ // ๐Ÿ”‘ Ensure API key is initialized before making authenticated requests
828
+ await ensureApiKeyInitialized();
775
829
  const response = await makeAuthenticatedRequest('/email/verification', {
776
830
  method: 'POST',
777
831
  body: JSON.stringify({
@@ -783,9 +837,15 @@ export const requestEmailVerification = async (email, testMode = false) => {
783
837
  console.log('๐Ÿ“ก Email verification API response:', result);
784
838
  if (response.ok && result.success) {
785
839
  console.log('โœ… Email verification request sent');
840
+
841
+ // Store request info for tracking
842
+ const requestId = result.requestId || result.id || 'req-' + Date.now();
843
+ await AsyncStorage.setItem('email_verification_request_id', requestId);
844
+ await AsyncStorage.setItem('email_verification_request_email', email);
786
845
  return {
787
846
  success: true,
788
- message: result.message || 'Email verification sent successfully'
847
+ message: result.message || 'Email verification sent successfully',
848
+ requestId: requestId
789
849
  };
790
850
  } else {
791
851
  console.error('โŒ Email verification request failed:', result.error);
@@ -827,18 +887,27 @@ export const verifyEmailCode = async (email, code, testMode = false) => {
827
887
  };
828
888
  }
829
889
 
830
- // In test mode, always return success
890
+ // In test mode, always return success with mock JWT token
831
891
  if (testMode) {
832
- console.log('๐Ÿงช Test mode: Always returning success');
892
+ console.log('๐Ÿงช Test mode: Always returning success with mock JWT token');
893
+ const mockToken = 'test-jwt-token-' + Date.now();
894
+
895
+ // Store mock token for API requests
896
+ await AsyncStorage.setItem('email_verification_token', mockToken);
897
+ await AsyncStorage.setItem('onairos_jwt_token', mockToken);
898
+ await AsyncStorage.setItem('email_verification_email', email);
833
899
  return {
834
900
  success: true,
835
901
  message: 'Email verification successful (test mode)',
836
- existingUser: false
902
+ existingUser: false,
903
+ jwtToken: mockToken
837
904
  };
838
905
  }
839
906
 
840
907
  // Production mode: Make real API call with API key authentication
841
908
  try {
909
+ // ๐Ÿ”‘ Ensure API key is initialized before making authenticated requests
910
+ await ensureApiKeyInitialized();
842
911
  const response = await makeAuthenticatedRequest('/email/verification', {
843
912
  method: 'POST',
844
913
  body: JSON.stringify({
@@ -851,10 +920,25 @@ export const verifyEmailCode = async (email, code, testMode = false) => {
851
920
  console.log('๐Ÿ“ก Email verification API response:', result);
852
921
  if (response.ok && result.success) {
853
922
  console.log('โœ… Email verification successful');
923
+
924
+ // ๐ŸŽซ CRITICAL: Store JWT token from email verification response
925
+ const jwtToken = result.token || result.jwtToken || result.jwt || result.authToken;
926
+ if (jwtToken) {
927
+ console.log('๐ŸŽซ Storing JWT token from email verification response');
928
+ await AsyncStorage.setItem('email_verification_token', jwtToken);
929
+ await AsyncStorage.setItem('onairos_jwt_token', jwtToken);
930
+ await AsyncStorage.setItem('enoch_token', jwtToken);
931
+ await AsyncStorage.setItem('auth_token', jwtToken);
932
+ await AsyncStorage.setItem('email_verification_email', email);
933
+ await AsyncStorage.setItem('token_timestamp', Date.now().toString());
934
+ } else {
935
+ console.warn('โš ๏ธ No JWT token received from email verification API');
936
+ }
854
937
  return {
855
938
  success: true,
856
939
  message: result.message || 'Email verification successful',
857
- existingUser: result.existingUser || false
940
+ existingUser: result.existingUser || false,
941
+ jwtToken: jwtToken
858
942
  };
859
943
  } else {
860
944
  console.error('โŒ Email verification failed:', result.error);
@@ -895,6 +979,8 @@ export const checkEmailVerificationStatus = async (email, testMode = false) => {
895
979
 
896
980
  // Production mode: Make real API call with API key authentication
897
981
  try {
982
+ // ๐Ÿ”‘ Ensure API key is initialized before making authenticated requests
983
+ await ensureApiKeyInitialized();
898
984
  const response = await makeAuthenticatedRequest(`/email/verify/status/${encodeURIComponent(email)}`, {
899
985
  method: 'GET'
900
986
  });
@@ -975,4 +1061,128 @@ export const disconnectPlatform = async (platform, username) => {
975
1061
  };
976
1062
  }
977
1063
  };
1064
+
1065
+ /**
1066
+ * ๐Ÿ” STORE PIN AFTER BIOMETRIC AUTHENTICATION
1067
+ * Send PIN separately to /store-pin/web endpoint after biometric Face ID verification
1068
+ */
1069
+ export const storePinAfterBiometric = async (username, pin, jwtToken) => {
1070
+ try {
1071
+ console.log('๐Ÿ” Storing PIN after biometric authentication for user:', username);
1072
+ console.log('๐Ÿ”‘ PIN length:', pin.length);
1073
+ console.log('๐ŸŽซ JWT token provided:', !!jwtToken);
1074
+ if (!username || !pin) {
1075
+ return {
1076
+ success: false,
1077
+ error: 'Username and PIN are required'
1078
+ };
1079
+ }
1080
+ if (pin.length < 4) {
1081
+ return {
1082
+ success: false,
1083
+ error: 'PIN must be at least 4 digits'
1084
+ };
1085
+ }
1086
+
1087
+ // Get JWT token from storage if not provided
1088
+ let authToken = jwtToken;
1089
+ if (!authToken) {
1090
+ authToken = (await AsyncStorage.getItem('onairos_jwt_token')) || (await AsyncStorage.getItem('enoch_token')) || (await AsyncStorage.getItem('auth_token')) || (await AsyncStorage.getItem('email_verification_token'));
1091
+ }
1092
+ if (!authToken) {
1093
+ console.warn('โš ๏ธ No JWT token available for PIN storage');
1094
+ return {
1095
+ success: false,
1096
+ error: 'No authentication token available'
1097
+ };
1098
+ }
1099
+ console.log('๐Ÿ“ค Sending PIN to /store-pin/web endpoint');
1100
+
1101
+ // Make authenticated request to store PIN
1102
+ const response = await makeAuthenticatedRequest('/store-pin/web', {
1103
+ method: 'POST',
1104
+ headers: {
1105
+ 'Authorization': `Bearer ${authToken}`
1106
+ },
1107
+ body: JSON.stringify({
1108
+ username,
1109
+ pin
1110
+ })
1111
+ });
1112
+ console.log('๐Ÿ“ก PIN storage response status:', response.status);
1113
+ if (!response.ok) {
1114
+ const errorText = await response.text();
1115
+ console.error('โŒ PIN storage failed:', errorText);
1116
+ return {
1117
+ success: false,
1118
+ error: `PIN storage failed: ${response.status} - ${errorText}`
1119
+ };
1120
+ }
1121
+ const result = await response.json();
1122
+ console.log('๐Ÿ“ฅ PIN storage response:', result);
1123
+ if (result.success) {
1124
+ console.log('โœ… PIN stored successfully after biometric authentication');
1125
+
1126
+ // Store PIN locally for future use
1127
+ await AsyncStorage.setItem('user_pin_stored', 'true');
1128
+ await AsyncStorage.setItem('pin_storage_timestamp', Date.now().toString());
1129
+ return {
1130
+ success: true,
1131
+ message: result.message || 'PIN stored successfully'
1132
+ };
1133
+ } else {
1134
+ console.error('โŒ PIN storage API returned error:', result.error);
1135
+ return {
1136
+ success: false,
1137
+ error: result.error || 'PIN storage failed'
1138
+ };
1139
+ }
1140
+ } catch (error) {
1141
+ console.error('โŒ Error storing PIN after biometric authentication:', error);
1142
+ return {
1143
+ success: false,
1144
+ error: error instanceof Error ? error.message : 'PIN storage failed'
1145
+ };
1146
+ }
1147
+ };
1148
+
1149
+ /**
1150
+ * ๐ŸŽซ GET STORED JWT TOKEN
1151
+ * Helper function to retrieve stored JWT token from email verification or other sources
1152
+ */
1153
+ export const getStoredJwtToken = async () => {
1154
+ try {
1155
+ console.log('๐ŸŽซ Retrieving stored JWT token...');
1156
+
1157
+ // Try different storage keys in order of preference
1158
+ const tokenSources = ['email_verification_token', 'onairos_jwt_token', 'enoch_token', 'auth_token'];
1159
+ for (const source of tokenSources) {
1160
+ const token = await AsyncStorage.getItem(source);
1161
+ if (token && token.length > 20) {
1162
+ console.log(`โœ… JWT token found in ${source}:`, token.substring(0, 20) + '...');
1163
+ return token;
1164
+ }
1165
+ }
1166
+ console.warn('โš ๏ธ No JWT token found in storage');
1167
+ return null;
1168
+ } catch (error) {
1169
+ console.error('โŒ Error retrieving JWT token:', error);
1170
+ return null;
1171
+ }
1172
+ };
1173
+
1174
+ /**
1175
+ * ๐ŸŽซ CLEAR STORED TOKENS
1176
+ * Helper function to clear all stored tokens (useful for logout)
1177
+ */
1178
+ export const clearStoredTokens = async () => {
1179
+ try {
1180
+ console.log('๐Ÿงน Clearing all stored tokens...');
1181
+ const tokenKeys = ['email_verification_token', 'onairos_jwt_token', 'enoch_token', 'auth_token', 'email_verification_email', 'email_verification_request_id', 'email_verification_request_email', 'token_timestamp', 'user_pin_stored', 'pin_storage_timestamp'];
1182
+ await Promise.all(tokenKeys.map(key => AsyncStorage.removeItem(key)));
1183
+ console.log('โœ… All tokens cleared successfully');
1184
+ } catch (error) {
1185
+ console.error('โŒ Error clearing tokens:', error);
1186
+ }
1187
+ };
978
1188
  //# sourceMappingURL=platformAuthService.js.map