@onairos/react-native 3.2.0 → 3.3.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.
@@ -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.3.0",
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",
@@ -97,7 +97,7 @@
97
97
  "@release-it/conventional-changelog": "^5.0.0",
98
98
  "@types/jest": "^28.1.2",
99
99
  "@types/node": "^22.15.21",
100
- "@types/react": "^18.0.0",
100
+ "@types/react": "^18.2.0",
101
101
  "@types/react-native": "^0.70.0",
102
102
  "@types/react-native-vector-icons": "^6.4.13",
103
103
  "@types/socket.io-client": "^3.0.0",
@@ -116,7 +116,7 @@
116
116
  "typescript": "^4.9.5"
117
117
  },
118
118
  "resolutions": {
119
- "@types/react": "17.0.21"
119
+ "@types/react": "^18.0.0"
120
120
  },
121
121
  "peerDependencies": {
122
122
  "react": ">=17.0.0",
@@ -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(),
@@ -1,5 +1,5 @@
1
1
  declare module '@onairos/react-native' {
2
- import { Component } from 'react';
2
+ import * as React from 'react';
3
3
  import { ViewStyle, TextStyle } from 'react-native';
4
4
 
5
5
  export interface DataTier {
@@ -203,14 +203,14 @@ declare module '@onairos/react-native' {
203
203
  error?: string;
204
204
  }
205
205
 
206
- // Component Classes
207
- export class OnairosButton extends Component<OnairosButtonProps> {}
208
- export class Onairos extends Component<OnairosProps> {}
209
- export class UniversalOnboarding extends Component<UniversalOnboardingProps> {}
210
- export class PlatformList extends Component<PlatformListProps> {}
211
- export class PinInput extends Component<PinInputProps> {}
212
- export class TrainingModal extends Component<TrainingModalProps> {}
213
- export class OAuthWebView extends Component<OAuthWebViewProps> {}
206
+ // Component Types
207
+ export const OnairosButton: React.ForwardRefExoticComponent<OnairosButtonProps & React.RefAttributes<any>>;
208
+ export const Onairos: React.ForwardRefExoticComponent<OnairosProps & React.RefAttributes<any>>;
209
+ export const UniversalOnboarding: React.FC<UniversalOnboardingProps>;
210
+ export const PlatformList: React.FC<PlatformListProps>;
211
+ export const PinInput: React.FC<PinInputProps>;
212
+ export const TrainingModal: React.FC<TrainingModalProps>;
213
+ export const OAuthWebView: React.FC<OAuthWebViewProps>;
214
214
 
215
215
  // Authentication & PIN Management Functions
216
216
  // TODO: Commented out temporarily - biometric functionality disabled
@@ -2,8 +2,10 @@ import { ViewStyle, TextStyle } from 'react-native';
2
2
  import { Component } from 'react';
3
3
 
4
4
  export interface DataTier {
5
- type: string;
6
- descriptions: string;
5
+ name?: string;
6
+ type?: string;
7
+ description?: string;
8
+ descriptions?: string;
7
9
  reward: string;
8
10
  }
9
11
 
@@ -43,7 +45,8 @@ export interface OnairosButtonProps {
43
45
  /** Enable debug mode */
44
46
  debug?: boolean;
45
47
  /** Preferred platform for authentication */
46
- preferredPlatform?: string;
48
+ /** Preferred platform(s) for authentication - can specify 1-2 platforms to prioritize first */
49
+ preferredPlatform?: string | string[];
47
50
  /** Enable test mode */
48
51
  testMode?: boolean;
49
52
  /** Enable dark mode */
@@ -95,7 +98,8 @@ export interface OnairosProps {
95
98
  /** Enable dark mode */
96
99
  darkMode?: boolean;
97
100
  /** Preferred platform for authentication */
98
- preferredPlatform?: string;
101
+ /** Preferred platform(s) for authentication - can specify 1-2 platforms to prioritize first */
102
+ preferredPlatform?: string | string[];
99
103
  /** Enable test mode */
100
104
  testMode?: boolean;
101
105
  /** API Key Configuration (REQUIRED) */
@@ -120,7 +124,8 @@ export interface UniversalOnboardingProps {
120
124
  };
121
125
  returnLink?: string;
122
126
  onComplete: (apiUrl: string, token: string, userData: any) => void;
123
- preferredPlatform?: string;
127
+ /** Preferred platform(s) for authentication - can specify 1-2 platforms to prioritize first */
128
+ preferredPlatform?: string | string[];
124
129
  debug?: boolean;
125
130
  testMode?: boolean;
126
131
  embedd?: boolean;