@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.
- package/lib/commonjs/components/Onairos.js.map +1 -1
- package/lib/commonjs/index.js +23 -504
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/services/apiKeyService.js +93 -14
- package/lib/commonjs/services/apiKeyService.js.map +1 -1
- package/lib/commonjs/services/platformAuthService.js +224 -9
- package/lib/commonjs/services/platformAuthService.js.map +1 -1
- package/lib/commonjs/types/index.js +4 -0
- package/lib/commonjs/types.js +12 -0
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/utils/programmaticFlow.js +117 -0
- package/lib/commonjs/utils/programmaticFlow.js.map +1 -0
- package/lib/module/components/Onairos.js.map +1 -1
- package/lib/module/index.js +17 -64
- package/lib/module/index.js.map +1 -1
- package/lib/module/services/apiKeyService.js +90 -11
- package/lib/module/services/apiKeyService.js.map +1 -1
- package/lib/module/services/platformAuthService.js +218 -8
- package/lib/module/services/platformAuthService.js.map +1 -1
- package/lib/module/types/index.js +1 -1
- package/lib/module/types.js +8 -0
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/programmaticFlow.js +111 -0
- package/lib/module/utils/programmaticFlow.js.map +1 -0
- package/lib/typescript/components/Onairos.d.ts +1 -29
- package/lib/typescript/components/Onairos.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +10 -40
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/services/apiKeyService.d.ts +18 -0
- package/lib/typescript/services/apiKeyService.d.ts.map +1 -1
- package/lib/typescript/services/platformAuthService.d.ts +26 -0
- package/lib/typescript/services/platformAuthService.d.ts.map +1 -1
- package/lib/typescript/types/index.d.ts +144 -78
- package/lib/typescript/types/index.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +56 -0
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/utils/programmaticFlow.d.ts +23 -0
- package/lib/typescript/utils/programmaticFlow.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/components/Onairos.tsx +1 -30
- package/src/index.ts +23 -132
- package/src/services/apiKeyService.ts +84 -8
- package/src/services/platformAuthService.ts +260 -4
- package/src/types/index.d.ts +110 -0
- package/src/types/index.ts +148 -74
- package/src/types.ts +59 -0
- 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.
|
|
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.
|
|
224
|
-
'X-SDK-Version': '3.0.
|
|
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":"AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAIA,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,MAAMF,cAAc,GAAG,MAAOV,MAAc,IAAsC;EACvF,IAAI;IAAA,IAAAe,cAAA,EAAAC,cAAA;IACFlB,OAAO,CAACC,GAAG,CAAC,0BAA0B,CAAC;;IAEvC;IACA,MAAMkB,MAAM,GAAG7B,eAAe,CAAC8B,GAAG,CAAClB,MAAM,CAAC;IAC1C,IAAIiB,MAAM,IAAIE,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGH,MAAM,CAACI,SAAS,GAAG9B,cAAc,EAAE;MAAA,IAAA+B,aAAA;MAC5D,KAAAA,aAAA,GAAInC,YAAY,cAAAmC,aAAA,eAAZA,aAAA,CAAclB,aAAa,EAAE;QAC/BN,OAAO,CAACC,GAAG,CAAC,2CAA2C,CAAC;MAC1D;MACA,OAAOkB,MAAM,CAACM,MAAM;IACtB;IAEA,MAAMpB,WAAW,GAAG,EAAAY,cAAA,GAAA5B,YAAY,cAAA4B,cAAA,uBAAZA,cAAA,CAAcZ,WAAW,KAAI,YAAY;IAC7D,MAAMqB,OAAO,GAAGhC,aAAa,CAACW,WAAW,CAAC;IAC1C,MAAME,OAAO,GAAG,EAAAW,cAAA,GAAA7B,YAAY,cAAA6B,cAAA,uBAAZA,cAAA,CAAcX,OAAO,KAAI,KAAK;;IAE9C;IACA,MAAMoB,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;IACxC,MAAMC,SAAS,GAAGC,UAAU,CAAC,MAAMH,UAAU,CAACI,KAAK,CAAC,CAAC,EAAExB,OAAO,CAAC;IAE/D,IAAI;MACF,MAAMyB,QAAQ,GAAG,MAAMC,KAAK,CAAC,GAAGP,OAAO,oBAAoB,EAAE;QAC3DQ,MAAM,EAAE,MAAM;QACdC,OAAO,EAAE;UACP,cAAc,EAAE,kBAAkB;UAClC,eAAe,EAAE,UAAUjC,MAAM,EAAE;UACnC,YAAY,EAAE;QAChB,CAAC;QACDkC,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;UACnBjC,WAAW;UACXkC,WAAW,EAAE,QAAQ;UACrBC,QAAQ,EAAE;QACZ,CAAC,CAAC;QACFC,MAAM,EAAEd,UAAU,CAACc;MACrB,CAAC,CAAC;MAEFC,YAAY,CAACb,SAAS,CAAC;MAEvB,MAAMc,IAAI,GAAG,MAAMX,QAAQ,CAACY,IAAI,CAAC,CAAC;MAElC,IAAIZ,QAAQ,CAACa,EAAE,IAAIF,IAAI,CAACG,OAAO,EAAE;QAAA,IAAAC,cAAA;QAC/B,MAAMtB,MAA8B,GAAG;UACrCZ,OAAO,EAAE,IAAI;UACbE,WAAW,EAAE4B,IAAI,CAAC5B,WAAW,IAAI,EAAE;UACnCC,UAAU,EAAE2B,IAAI,CAAC3B,UAAU,IAAI;QACjC,CAAC;;QAED;QACA1B,eAAe,CAAC0D,GAAG,CAAC9C,MAAM,EAAE;UAC1BuB,MAAM;UACNF,SAAS,EAAEF,IAAI,CAACC,GAAG,CAAC;QACtB,CAAC,CAAC;QAEF,KAAAyB,cAAA,GAAI1D,YAAY,cAAA0D,cAAA,eAAZA,cAAA,CAAczC,aAAa,EAAE;UAC/BN,OAAO,CAACC,GAAG,CAAC,iCAAiC,CAAC;QAChD;QAEA,OAAOwB,MAAM;MACf,CAAC,MAAM;QAAA,IAAAwB,cAAA;QACL,MAAMC,YAAY,GAAGP,IAAI,CAAC7B,KAAK,IAAI,QAAQkB,QAAQ,CAACmB,MAAM,KAAKnB,QAAQ,CAACoB,UAAU,EAAE;QAEpF,MAAM3B,MAA8B,GAAG;UACrCZ,OAAO,EAAE,KAAK;UACdC,KAAK,EAAEoC;QACT,CAAC;;QAED;QACA,KAAAD,cAAA,GAAI5D,YAAY,cAAA4D,cAAA,eAAZA,cAAA,CAAc3C,aAAa,EAAE;UAC/BN,OAAO,CAACc,KAAK,CAAC,8BAA8B,EAAEoC,YAAY,CAAC;QAC7D;QAEA,OAAOzB,MAAM;MACf;IACF,CAAC,CAAC,OAAO4B,UAAU,EAAE;MACnBX,YAAY,CAACb,SAAS,CAAC;MAEvB,IAAIwB,UAAU,CAACC,IAAI,KAAK,YAAY,EAAE;QACpC,MAAMJ,YAAY,GAAG,4BAA4B;QACjDlD,OAAO,CAACc,KAAK,CAAC,+BAA+B,CAAC;QAC9C,OAAO;UAAED,OAAO,EAAE,KAAK;UAAEC,KAAK,EAAEoC;QAAa,CAAC;MAChD;MAEA,MAAMA,YAAY,GAAG,4CAA4CG,UAAU,CAACE,OAAO,EAAE;MACrFvD,OAAO,CAACc,KAAK,CAAC,6CAA6C,EAAEuC,UAAU,CAAC;MACxE,OAAO;QAAExC,OAAO,EAAE,KAAK;QAAEC,KAAK,EAAEoC;MAAa,CAAC;IAChD;EACF,CAAC,CAAC,OAAOpC,KAAK,EAAE;IACd,MAAMoC,YAAY,GAAG,6BAA6BpC,KAAK,CAACyC,OAAO,EAAE;IACjEvD,OAAO,CAACc,KAAK,CAAC,6BAA6B,EAAEA,KAAK,CAAC;IACnD,OAAO;MAAED,OAAO,EAAE,KAAK;MAAEC,KAAK,EAAEoC;IAAa,CAAC;EAChD;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMM,YAAY,GAAGA,CAAA,KAA4B;EACtD,OAAOnE,YAAY;AACrB,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMoE,SAAS,GAAGA,CAAA,KAAqB;EAAA,IAAAC,cAAA;EAC5C,OAAO,EAAAA,cAAA,GAAArE,YAAY,cAAAqE,cAAA,uBAAZA,cAAA,CAAcxD,MAAM,KAAI,IAAI;AACrC,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMyD,mBAAmB,GAAGA,CAAA,KAAe;EAChD,OAAOnE,aAAa,IAAIH,YAAY,KAAK,IAAI;AAC/C,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMuE,cAAc,GAAGA,CAAA,KAA8B;EAAA,IAAAC,cAAA;EAC1D,IAAI,GAAAA,cAAA,GAACxE,YAAY,cAAAwE,cAAA,eAAZA,cAAA,CAAc3D,MAAM,GAAE;IACzB,MAAM,IAAIC,KAAK,CAAC,qDAAqD,CAAC;EACxE;EAEA,OAAO;IACL,cAAc,EAAE,kBAAkB;IAClC,eAAe,EAAE,UAAUd,YAAY,CAACa,MAAM,EAAE;IAChD,YAAY,EAAE,2BAA2B;IACzC,eAAe,EAAE,QAAQ;IACzB,mBAAmB,EAAEb,YAAY,CAACgB,WAAW,IAAI;EACnD,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMyD,wBAAwB,GAAG,MAAAA,CACtCC,QAAgB,EAChBC,OAAoB,GAAG,CAAC,CAAC,KACH;EACtB,IAAI,CAACL,mBAAmB,CAAC,CAAC,EAAE;IAC1B,MAAM,IAAIxD,KAAK,CAAC,qDAAqD,CAAC;EACxE;EAEA,MAAMJ,MAAM,GAAGyD,YAAY,CAAC,CAAE;EAC9B,MAAM9B,OAAO,GAAGhC,aAAa,CAACK,MAAM,CAACM,WAAW,IAAI,YAAY,CAAC;EACjE,MAAM4D,GAAG,GAAG,GAAGvC,OAAO,GAAGqC,QAAQ,CAACG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,GAAGH,QAAQ,EAAE;;EAEzE;EACA,MAAM5B,OAAO,GAAG;IACd,GAAGyB,cAAc,CAAC,CAAC;IACnB,IAAII,OAAO,CAAC7B,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,EAAEhC,MAAM,CAACQ,OAAO,IAAI,KAAK,CAAC;EAE/E,IAAI;IACF,IAAIR,MAAM,CAACO,aAAa,EAAE;MACxBN,OAAO,CAACC,GAAG,CAAC,uCAAuC8D,QAAQ,EAAE,CAAC;IAChE;IAEA,MAAM/B,QAAQ,GAAG,MAAMC,KAAK,CAACgC,GAAG,EAAE;MAChC,GAAGD,OAAO;MACV7B,OAAO;MACPM,MAAM,EAAEd,UAAU,CAACc;IACrB,CAAC,CAAC;IAEFC,YAAY,CAACb,SAAS,CAAC;IAEvB,IAAI9B,MAAM,CAACO,aAAa,EAAE;MACxBN,OAAO,CAACC,GAAG,CAAC,uBAAuB+B,QAAQ,CAACmB,MAAM,QAAQY,QAAQ,EAAE,CAAC;IACvE;;IAEA;IACA,IAAI/B,QAAQ,CAACmB,MAAM,KAAK,GAAG,EAAE;MAC3BnD,OAAO,CAACc,KAAK,CAAC,6DAA6D,CAAC;MAC5E,MAAM,IAAIX,KAAK,CAAC,4BAA4B,CAAC;IAC/C;IAEA,IAAI6B,QAAQ,CAACmB,MAAM,KAAK,GAAG,EAAE;MAC3BnD,OAAO,CAACc,KAAK,CAAC,wDAAwD,CAAC;MACvE,MAAM,IAAIX,KAAK,CAAC,kCAAkC,CAAC;IACrD;IAEA,IAAI6B,QAAQ,CAACmB,MAAM,KAAK,GAAG,EAAE;MAC3BnD,OAAO,CAACc,KAAK,CAAC,oDAAoD,CAAC;MACnE,MAAM,IAAIX,KAAK,CAAC,qBAAqB,CAAC;IACxC;IAEA,OAAO6B,QAAQ;EACjB,CAAC,CAAC,OAAOlB,KAAK,EAAE;IACd4B,YAAY,CAACb,SAAS,CAAC;IAEvB,IAAIf,KAAK,CAACwC,IAAI,KAAK,YAAY,EAAE;MAC/BtD,OAAO,CAACc,KAAK,CAAC,yBAAyB,EAAEiD,QAAQ,CAAC;MAClD,MAAM,IAAI5D,KAAK,CAAC,iBAAiB,CAAC;IACpC;IAEA,MAAMW,KAAK;EACb;AACF,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMqD,oBAAoB,GAAGA,CAAA,KAAY;EAAA,IAAAC,cAAA;EAC9C9E,eAAe,CAAC+E,KAAK,CAAC,CAAC;EACvB,KAAAD,cAAA,GAAI/E,YAAY,cAAA+E,cAAA,eAAZA,cAAA,CAAc9D,aAAa,EAAE;IAC/BN,OAAO,CAACC,GAAG,CAAC,sCAAsC,CAAC;EACrD;AACF,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMqE,kBAAkB,GAAGA,CAAA,KAAY;EAC5CjF,YAAY,GAAG,IAAI;EACnBG,aAAa,GAAG,KAAK;EACrB2E,oBAAoB,CAAC,CAAC;EACtBnE,OAAO,CAACC,GAAG,CAAC,0BAA0B,CAAC;AACzC,CAAC","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":"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","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
|