@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.
- package/lib/commonjs/components/UniversalOnboarding.js +24 -9
- package/lib/commonjs/components/UniversalOnboarding.js.map +1 -1
- package/lib/commonjs/index.js +53 -13
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/services/SDK_API_KEY_VALIDATION.md +428 -0
- package/lib/commonjs/services/apiKeyService.js +4 -4
- package/lib/commonjs/services/apiKeyService.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/module/components/UniversalOnboarding.js +24 -9
- package/lib/module/components/UniversalOnboarding.js.map +1 -1
- package/lib/module/services/SDK_API_KEY_VALIDATION.md +428 -0
- package/lib/module/services/apiKeyService.js +4 -4
- package/lib/module/services/apiKeyService.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/components/UniversalOnboarding.d.ts.map +1 -1
- package/lib/typescript/types/index.d.ts +6 -3
- package/lib/typescript/types/index.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +6 -4
- package/lib/typescript/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/UniversalOnboarding.tsx +25 -6
- package/src/services/SDK_API_KEY_VALIDATION.md +428 -0
- package/src/services/apiKeyService.ts +5 -5
- package/src/types/index.ts +6 -3
- package/src/types.ts +6 -4
|
@@ -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
|
-
|
|
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
|
-
|
|
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":"AAAA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAE9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,aAAa,CAAC;IACvD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAGD,oBAAY,UAAU;IACpB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,aAAa,CAAC;IACvD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC/B,qCAAqC;IACrC,WAAW,CAAC,EAAE;QACZ,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC;KACzB,CAAC;IACF,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oCAAoC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8BAA8B;IAC9B,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACnC,4CAA4C;IAC5C,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,+CAA+C;IAC/C,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,IAAI,CAAC;IACpE,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -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
|
-
//
|
|
113
|
-
const
|
|
114
|
-
|
|
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
|
-
|
|
117
|
-
|
|
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
|
-
|
|
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://
|
|
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
|
|
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
|
|
233
|
+
sdk_version: '3.2.1',
|
|
234
234
|
platform: 'react-native',
|
|
235
235
|
keyType,
|
|
236
236
|
timestamp: new Date().toISOString(),
|
package/src/types/index.ts
CHANGED
|
@@ -43,7 +43,8 @@ export interface OnairosButtonProps {
|
|
|
43
43
|
/** Enable debug mode */
|
|
44
44
|
debug?: boolean;
|
|
45
45
|
/** Preferred platform for authentication */
|
|
46
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|