@onairos/react-native 3.2.0 → 3.2.1

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.
@@ -77,8 +77,8 @@ export interface OnairosProps {
77
77
  debug?: boolean;
78
78
  /** Enable dark mode */
79
79
  darkMode?: boolean;
80
- /** Preferred platform for authentication */
81
- preferredPlatform?: string;
80
+ /** Preferred platform(s) for authentication - can specify 1-2 platforms to prioritize first */
81
+ preferredPlatform?: string | string[];
82
82
  /** Enable test mode */
83
83
  testMode?: boolean;
84
84
  /** API Key Configuration (REQUIRED) */
@@ -113,7 +113,8 @@ export interface UniversalOnboardingProps {
113
113
  testMode?: TestModeOptions | boolean;
114
114
  buttonType?: 'default' | 'pill';
115
115
  buttonForm?: 'signup' | 'login';
116
- preferredPlatform?: string;
116
+ /** Preferred platform(s) for authentication - can specify 1-2 platforms to prioritize first */
117
+ preferredPlatform?: string | string[];
117
118
  inferenceData?: any;
118
119
  auto?: boolean;
119
120
  partner?: string;
@@ -152,7 +153,8 @@ export interface OnairosButtonProps {
152
153
  swerv?: boolean;
153
154
  debug?: boolean;
154
155
  darkMode?: boolean;
155
- preferredPlatform?: string;
156
+ /** Preferred platform(s) for authentication - can specify 1-2 platforms to prioritize first */
157
+ preferredPlatform?: string | string[];
156
158
  testMode?: boolean;
157
159
  autoFetch?: boolean;
158
160
  inferenceData?: any;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onairos/react-native",
3
- "version": "3.2.0",
3
+ "version": "3.2.1",
4
4
  "description": "Onairos React Native SDK for social media authentication and AI model training",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -109,12 +109,26 @@ export const UniversalOnboarding: React.FC<UniversalOnboardingProps> = ({
109
109
  { id: 'pinterest', name: 'Pinterest', icon: require('../assets/images/pinterest.png') },
110
110
  ];
111
111
 
112
- // Define primary platforms (shown by default)
113
- const primaryPlatforms = platforms.slice(0, 3); // Instagram, YouTube, Gmail
114
- const additionalPlatforms = platforms.slice(3); // Reddit, Pinterest
112
+ // Handle preferredPlatform to show ONLY preferred platforms (up to 2)
113
+ const getDisplayPlatforms = () => {
114
+ if (!preferredPlatform) {
115
+ // Default behavior: show first 3 platforms initially
116
+ return showAllPlatforms ? platforms : platforms.slice(0, 3);
117
+ }
118
+
119
+ const preferredArray = Array.isArray(preferredPlatform) ? preferredPlatform : [preferredPlatform];
120
+ const maxPreferred = Math.min(preferredArray.length, 2); // Limit to 2 preferred platforms max
121
+
122
+ // Show ONLY the preferred platforms (in specified order)
123
+ return preferredArray.slice(0, maxPreferred)
124
+ .map(id => platforms.find(p => p.id === id))
125
+ .filter(Boolean) as typeof platforms;
126
+ };
115
127
 
116
- // Get platforms to display based on showAllPlatforms state
117
- const platformsToDisplay = showAllPlatforms ? platforms : primaryPlatforms;
128
+ const platformsToDisplay = getDisplayPlatforms();
129
+
130
+ // Calculate additional platforms for "Show More" button
131
+ const additionalPlatforms = preferredPlatform ? [] : platforms.slice(3);
118
132
 
119
133
  const {
120
134
  connectPlatform,
@@ -179,9 +193,14 @@ export const UniversalOnboarding: React.FC<UniversalOnboardingProps> = ({
179
193
 
180
194
  // If there's a preferred platform, pre-connect
181
195
  if (preferredPlatform && debug) {
196
+ const preferredArray = Array.isArray(preferredPlatform) ? preferredPlatform : [preferredPlatform];
197
+ const newConnections: any = {};
198
+ preferredArray.slice(0, 2).forEach(platform => {
199
+ newConnections[platform] = { userName: `${platform}_user`, connected: true };
200
+ });
182
201
  setConnections(prev => ({
183
202
  ...prev,
184
- [preferredPlatform]: { userName: `${preferredPlatform}_user`, connected: true }
203
+ ...newConnections
185
204
  }));
186
205
  }
187
206
 
@@ -0,0 +1,428 @@
1
+ # Onairos SDK API Key Validation - Standardized Documentation
2
+
3
+ ## Overview
4
+
5
+ This document outlines the standardized API key validation system for all Onairos SDKs (React Native, Web, Mobile, etc.). The system provides a unified interface for initializing and validating developer API keys across all platforms.
6
+
7
+ ## 🔑 API Key Format
8
+
9
+ ### Developer API Keys
10
+ - **Format**: Must be at least 32 characters
11
+ - **Prefixes**: `dev_`, `pk_`, or `ona_`
12
+ - **Example**: `ona_1234567890abcdef1234567890abcdef12345678`
13
+
14
+ ### Admin API Keys (Internal Use)
15
+ - **Format**: Special admin keys for internal testing
16
+ - **Permissions**: Full access (`*`)
17
+
18
+ ## 🚀 SDK Initialization Standard
19
+
20
+ ### Step 1: Initialize SDK (Required for all SDKs)
21
+
22
+ All SDKs should implement an `initializeApiKey` function that validates the API key before allowing SDK usage.
23
+
24
+ ```typescript
25
+ import { initializeApiKey } from 'onairos';
26
+
27
+ // Initialize SDK with developer API key
28
+ try {
29
+ await initializeApiKey({
30
+ apiKey: 'ona_your_api_key_here', // Get from Onairos Dashboard
31
+ environment: 'production', // 'production' | 'development'
32
+ enableLogging: true,
33
+ timeout: 30000,
34
+ retryAttempts: 3
35
+ });
36
+
37
+ console.log('SDK initialized successfully!');
38
+ } catch (error) {
39
+ console.error('SDK initialization failed:', error.message);
40
+ }
41
+ ```
42
+
43
+ ### Step 2: Use SDK Components
44
+
45
+ After successful initialization, all SDK components work automatically:
46
+
47
+ ```typescript
48
+ import { OnairosButton } from 'onairos';
49
+
50
+ // Components automatically handle authentication internally
51
+ <OnairosButton
52
+ requestData={{
53
+ basic: { type: "basic", reward: "10 tokens" },
54
+ personality: { type: "personality", reward: "25 tokens" },
55
+ preferences: { type: "preferences", reward: "15 tokens" }
56
+ }}
57
+ webpageName="MyApp"
58
+ testMode={false}
59
+ autoFetch={true}
60
+ onComplete={(result) => console.log(result)}
61
+ />
62
+ ```
63
+
64
+ ## 🌐 API Endpoints
65
+
66
+ ### Primary Validation Endpoint
67
+
68
+ **POST** `/auth/validate-key`
69
+
70
+ This is the main endpoint that all SDKs should use for API key validation.
71
+
72
+ #### Request Headers
73
+ ```http
74
+ Authorization: Bearer ona_your_api_key_here
75
+ Content-Type: application/json
76
+ X-SDK-Platform: react-native|web|mobile (optional)
77
+ User-Agent: OnairosReactNative/3.1.10 (optional)
78
+ ```
79
+
80
+ #### Request Body
81
+ ```json
82
+ {
83
+ "environment": "production",
84
+ "sdk_version": "3.1.10",
85
+ "platform": "react-native",
86
+ "keyType": "developer",
87
+ "timestamp": "2024-01-01T00:00:00.000Z",
88
+ "attempt": 1
89
+ }
90
+ ```
91
+
92
+ #### Success Response (200)
93
+ ```json
94
+ {
95
+ "success": true,
96
+ "permissions": ["data:read", "data:write"],
97
+ "rateLimits": {
98
+ "remaining": 999,
99
+ "resetTime": 1640995200000
100
+ },
101
+ "keyType": "developer",
102
+ "developer": {
103
+ "id": "dev_123",
104
+ "name": "Developer Name",
105
+ "plan": "pro"
106
+ },
107
+ "apiKey": {
108
+ "id": "key_456",
109
+ "name": "My App Key",
110
+ "context": "production",
111
+ "totalRequests": 1234
112
+ }
113
+ }
114
+ ```
115
+
116
+ #### Error Response (401/400/500)
117
+ ```json
118
+ {
119
+ "success": false,
120
+ "error": "Invalid API key format",
121
+ "message": "Developer keys must be at least 32 characters and start with 'dev_', 'pk_', or 'ona_'",
122
+ "code": "INVALID_API_KEY_FORMAT",
123
+ "keyType": "invalid"
124
+ }
125
+ ```
126
+
127
+ ### Alternative Endpoints
128
+
129
+ #### Simple GET Validation
130
+ **GET** `/auth/validate-key?key=ona_your_api_key_here`
131
+
132
+ For simple validation without request body.
133
+
134
+ #### Legacy Developer Endpoints (Backward Compatibility)
135
+ - **POST** `/dev/validate-key` - Enhanced validation with backward compatibility
136
+ - **GET** `/dev/validate-key?key=API_KEY` - Simple validation
137
+
138
+ ## 🛡️ Error Handling & Retry Logic
139
+
140
+ ### Common Error Codes
141
+
142
+ | Code | Description | Action |
143
+ |------|-------------|--------|
144
+ | `MISSING_API_KEY` | No API key provided | Provide API key in Authorization header |
145
+ | `INVALID_API_KEY_FORMAT` | Invalid key format | Check key format (32+ chars, correct prefix) |
146
+ | `INVALID_API_KEY` | Key not found/inactive | Verify key exists and is active |
147
+ | `API_KEY_EXPIRED` | Key has expired | Renew or generate new API key |
148
+ | `DEVELOPER_NOT_FOUND` | Developer account inactive | Contact support |
149
+ | `RATE_LIMIT_EXCEEDED` | Too many requests | Wait and retry |
150
+ | `INTERNAL_ERROR` | Server error | Retry with exponential backoff |
151
+
152
+ ### Retry Strategy
153
+
154
+ ```typescript
155
+ const validateApiKey = async (apiKey: string, config: Config): Promise<ValidationResult> => {
156
+ const maxRetries = config.retryAttempts || 3;
157
+
158
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
159
+ try {
160
+ const response = await fetch(`${baseUrl}/auth/validate-key`, {
161
+ method: 'POST',
162
+ headers: {
163
+ 'Authorization': `Bearer ${apiKey}`,
164
+ 'Content-Type': 'application/json',
165
+ 'X-SDK-Platform': config.platform || 'unknown'
166
+ },
167
+ body: JSON.stringify({
168
+ environment: config.environment || 'production',
169
+ sdk_version: config.sdkVersion,
170
+ platform: config.platform,
171
+ timestamp: new Date().toISOString(),
172
+ attempt
173
+ }),
174
+ signal: AbortSignal.timeout(config.timeout || 30000)
175
+ });
176
+
177
+ if (response.ok) {
178
+ return await response.json();
179
+ }
180
+
181
+ // Don't retry client errors (4xx)
182
+ if (response.status >= 400 && response.status < 500) {
183
+ throw new Error(`Client error: ${response.status}`);
184
+ }
185
+
186
+ // Retry server errors (5xx)
187
+ if (attempt === maxRetries) {
188
+ throw new Error(`Server error after ${maxRetries} attempts`);
189
+ }
190
+
191
+ } catch (error) {
192
+ if (attempt === maxRetries) {
193
+ throw error;
194
+ }
195
+
196
+ // Exponential backoff
197
+ const delay = Math.min(1000 * Math.pow(2, attempt - 1), 5000);
198
+ await new Promise(resolve => setTimeout(resolve, delay));
199
+ }
200
+ }
201
+ };
202
+ ```
203
+
204
+ ## 📱 Platform-Specific Implementation
205
+
206
+ ### React Native SDK
207
+
208
+ ```typescript
209
+ export const validateApiKey = async (apiKey: string): Promise<ApiKeyValidationResult> => {
210
+ // Check admin keys first
211
+ if (isAdminKey(apiKey)) {
212
+ return {
213
+ isValid: true,
214
+ permissions: ['*'],
215
+ rateLimits: { remaining: 999999, resetTime: Date.now() + 24*60*60*1000 },
216
+ keyType: ApiKeyType.ADMIN
217
+ };
218
+ }
219
+
220
+ // Validate format
221
+ const keyType = getApiKeyType(apiKey);
222
+ if (keyType === ApiKeyType.INVALID) {
223
+ return {
224
+ isValid: false,
225
+ error: 'Invalid API key format',
226
+ keyType: ApiKeyType.INVALID
227
+ };
228
+ }
229
+
230
+ // Make API call
231
+ const response = await fetch(`${baseUrl}/auth/validate-key`, {
232
+ method: 'POST',
233
+ headers: {
234
+ 'Authorization': `Bearer ${apiKey}`,
235
+ 'Content-Type': 'application/json',
236
+ 'User-Agent': 'OnairosReactNative/3.1.10'
237
+ },
238
+ body: JSON.stringify({
239
+ environment: globalConfig?.environment || 'production',
240
+ sdk_version: '3.1.10',
241
+ platform: 'react-native'
242
+ })
243
+ });
244
+
245
+ const data = await response.json();
246
+
247
+ if (data.success) {
248
+ return {
249
+ isValid: true,
250
+ permissions: data.permissions,
251
+ rateLimits: data.rateLimits,
252
+ keyType: data.keyType
253
+ };
254
+ } else {
255
+ return {
256
+ isValid: false,
257
+ error: data.error,
258
+ keyType: data.keyType || ApiKeyType.INVALID
259
+ };
260
+ }
261
+ };
262
+ ```
263
+
264
+ ### Web SDK
265
+
266
+ ```typescript
267
+ class OnairosSDK {
268
+ private apiKey: string | null = null;
269
+ private isInitialized: boolean = false;
270
+
271
+ async initialize(config: InitConfig): Promise<void> {
272
+ const validation = await this.validateApiKey(config.apiKey);
273
+
274
+ if (!validation.isValid) {
275
+ throw new Error(`SDK initialization failed: ${validation.error}`);
276
+ }
277
+
278
+ this.apiKey = config.apiKey;
279
+ this.isInitialized = true;
280
+
281
+ console.log('Onairos SDK initialized successfully');
282
+ }
283
+
284
+ private async validateApiKey(apiKey: string): Promise<ValidationResult> {
285
+ // Similar implementation to React Native
286
+ // ...
287
+ }
288
+ }
289
+ ```
290
+
291
+ ## 🔧 Configuration Options
292
+
293
+ ### InitConfig Interface
294
+
295
+ ```typescript
296
+ interface InitConfig {
297
+ apiKey: string; // Required: Developer API key
298
+ environment?: 'production' | 'development'; // Default: 'production'
299
+ enableLogging?: boolean; // Default: false
300
+ timeout?: number; // Default: 30000ms
301
+ retryAttempts?: number; // Default: 3
302
+ baseUrl?: string; // Default: auto-detected
303
+ }
304
+ ```
305
+
306
+ ### ValidationResult Interface
307
+
308
+ ```typescript
309
+ interface ValidationResult {
310
+ isValid: boolean;
311
+ permissions?: string[];
312
+ rateLimits?: {
313
+ remaining: number;
314
+ resetTime: number;
315
+ };
316
+ keyType: 'admin' | 'developer' | 'invalid';
317
+ error?: string;
318
+ }
319
+ ```
320
+
321
+ ## 🌍 Environment Configuration
322
+
323
+ ### Base URLs
324
+
325
+ ```typescript
326
+ const API_ENDPOINTS = {
327
+ production: 'https://api.onairos.uk',
328
+ development: 'https://dev-api.onairos.uk'
329
+ };
330
+ ```
331
+
332
+ ### Environment Detection
333
+
334
+ ```typescript
335
+ const detectEnvironment = (): 'production' | 'development' => {
336
+ if (typeof window !== 'undefined') {
337
+ // Browser environment
338
+ return window.location.hostname.includes('localhost') ? 'development' : 'production';
339
+ } else {
340
+ // Node.js/React Native environment
341
+ return process.env.NODE_ENV === 'development' ? 'development' : 'production';
342
+ }
343
+ };
344
+ ```
345
+
346
+ ## 🚀 Quick Start Examples
347
+
348
+ ### React Native
349
+
350
+ ```typescript
351
+ import { initializeApiKey, OnairosButton } from 'onairos-react-native';
352
+
353
+ // 1. Initialize SDK
354
+ await initializeApiKey({
355
+ apiKey: 'ona_your_key_here',
356
+ environment: 'production'
357
+ });
358
+
359
+ // 2. Use components
360
+ <OnairosButton requestData={{...}} onComplete={handleResult} />
361
+ ```
362
+
363
+ ### Web/JavaScript
364
+
365
+ ```typescript
366
+ import { OnairosSDK } from 'onairos-web';
367
+
368
+ // 1. Initialize SDK
369
+ const sdk = new OnairosSDK();
370
+ await sdk.initialize({
371
+ apiKey: 'ona_your_key_here',
372
+ environment: 'production'
373
+ });
374
+
375
+ // 2. Use SDK methods
376
+ const result = await sdk.collectData({...});
377
+ ```
378
+
379
+ ### Node.js Backend
380
+
381
+ ```typescript
382
+ import { OnairosAPI } from 'onairos-node';
383
+
384
+ // 1. Initialize API client
385
+ const api = new OnairosAPI({
386
+ apiKey: 'ona_your_key_here',
387
+ environment: 'production'
388
+ });
389
+
390
+ // 2. Make API calls
391
+ const validation = await api.validateKey();
392
+ ```
393
+
394
+ ## 🔍 Testing & Debugging
395
+
396
+ ### Test API Key Validation
397
+
398
+ ```bash
399
+ # Test with curl
400
+ curl -X POST https://api.onairos.uk/auth/validate-key \
401
+ -H "Authorization: Bearer ona_your_key_here" \
402
+ -H "Content-Type: application/json" \
403
+ -d '{
404
+ "environment": "production",
405
+ "platform": "test"
406
+ }'
407
+ ```
408
+
409
+ ### Debug Mode
410
+
411
+ Enable logging in SDK initialization:
412
+
413
+ ```typescript
414
+ await initializeApiKey({
415
+ apiKey: 'ona_your_key_here',
416
+ enableLogging: true // Shows detailed logs
417
+ });
418
+ ```
419
+
420
+ ## 📞 Support
421
+
422
+ - **Documentation**: https://docs.onairos.uk
423
+ - **Dashboard**: https://dashboard.onairos.uk
424
+ - **Support**: support@onairos.uk
425
+
426
+ ---
427
+
428
+ *Last updated: October 2024*
@@ -42,10 +42,10 @@ let userToken: string | null = null;
42
42
  // Cache duration (5 minutes)
43
43
  const CACHE_DURATION = 5 * 60 * 1000;
44
44
 
45
- // API endpoints for different environments
45
+ // API endpoints for different environments (updated to standard)
46
46
  const API_ENDPOINTS = {
47
- production: 'https://api2.onairos.uk',
48
- staging: 'https://staging-api.onairos.uk',
47
+ production: 'https://api.onairos.uk',
48
+ staging: 'https://staging-api.onairos.uk',
49
49
  development: 'https://dev-api.onairos.uk',
50
50
  };
51
51
 
@@ -223,14 +223,14 @@ export const validateApiKey = async (apiKey: string): Promise<ApiKeyValidationRe
223
223
  headers: {
224
224
  'Content-Type': 'application/json',
225
225
  'Authorization': `Bearer ${apiKey}`,
226
- 'User-Agent': 'OnairosReactNative/3.1.10',
226
+ 'User-Agent': 'OnairosReactNative/3.2.1',
227
227
  'X-API-Key-Type': keyType,
228
228
  'X-SDK-Platform': 'react-native',
229
229
  'X-Retry-Attempt': attempt.toString(),
230
230
  },
231
231
  body: JSON.stringify({
232
232
  environment,
233
- sdk_version: '3.1.10',
233
+ sdk_version: '3.2.1',
234
234
  platform: 'react-native',
235
235
  keyType,
236
236
  timestamp: new Date().toISOString(),
@@ -43,7 +43,8 @@ export interface OnairosButtonProps {
43
43
  /** Enable debug mode */
44
44
  debug?: boolean;
45
45
  /** Preferred platform for authentication */
46
- preferredPlatform?: string;
46
+ /** Preferred platform(s) for authentication - can specify 1-2 platforms to prioritize first */
47
+ preferredPlatform?: string | string[];
47
48
  /** Enable test mode */
48
49
  testMode?: boolean;
49
50
  /** Enable dark mode */
@@ -95,7 +96,8 @@ export interface OnairosProps {
95
96
  /** Enable dark mode */
96
97
  darkMode?: boolean;
97
98
  /** Preferred platform for authentication */
98
- preferredPlatform?: string;
99
+ /** Preferred platform(s) for authentication - can specify 1-2 platforms to prioritize first */
100
+ preferredPlatform?: string | string[];
99
101
  /** Enable test mode */
100
102
  testMode?: boolean;
101
103
  /** API Key Configuration (REQUIRED) */
@@ -120,7 +122,8 @@ export interface UniversalOnboardingProps {
120
122
  };
121
123
  returnLink?: string;
122
124
  onComplete: (apiUrl: string, token: string, userData: any) => void;
123
- preferredPlatform?: string;
125
+ /** Preferred platform(s) for authentication - can specify 1-2 platforms to prioritize first */
126
+ preferredPlatform?: string | string[];
124
127
  debug?: boolean;
125
128
  testMode?: boolean;
126
129
  embedd?: boolean;
package/src/types.ts CHANGED
@@ -88,8 +88,8 @@ export interface OnairosProps {
88
88
  debug?: boolean;
89
89
  /** Enable dark mode */
90
90
  darkMode?: boolean;
91
- /** Preferred platform for authentication */
92
- preferredPlatform?: string;
91
+ /** Preferred platform(s) for authentication - can specify 1-2 platforms to prioritize first */
92
+ preferredPlatform?: string | string[];
93
93
  /** Enable test mode */
94
94
  testMode?: boolean;
95
95
  /** API Key Configuration (REQUIRED) */
@@ -127,7 +127,8 @@ export interface UniversalOnboardingProps {
127
127
  testMode?: TestModeOptions | boolean;
128
128
  buttonType?: 'default' | 'pill';
129
129
  buttonForm?: 'signup' | 'login';
130
- preferredPlatform?: string;
130
+ /** Preferred platform(s) for authentication - can specify 1-2 platforms to prioritize first */
131
+ preferredPlatform?: string | string[];
131
132
  inferenceData?: any; // Data used for AI inference API requests
132
133
  auto?: boolean; // If true, use inferenceData for automatic API requests
133
134
  partner?: string; // Partner identifier (e.g., "couplebible")
@@ -170,7 +171,8 @@ export interface OnairosButtonProps {
170
171
  swerv?: boolean;
171
172
  debug?: boolean;
172
173
  darkMode?: boolean;
173
- preferredPlatform?: string;
174
+ /** Preferred platform(s) for authentication - can specify 1-2 platforms to prioritize first */
175
+ preferredPlatform?: string | string[];
174
176
  testMode?: boolean;
175
177
  autoFetch?: boolean;
176
178
  inferenceData?: any; // Data used for AI inference API requests