@onairos/react-native 3.0.71 → 3.0.73
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 +294 -155
- package/lib/commonjs/components/Onairos.js.map +1 -1
- package/lib/commonjs/components/OnairosButton.js +1 -1
- package/lib/commonjs/components/OnairosButton.js.map +1 -1
- package/lib/commonjs/components/UniversalOnboarding.js +6 -6
- package/lib/commonjs/components/UniversalOnboarding.js.map +1 -1
- package/lib/commonjs/components/onboarding/OAuthWebView.js +188 -52
- package/lib/commonjs/components/onboarding/OAuthWebView.js.map +1 -1
- package/lib/commonjs/index.js +25 -440
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/services/apiKeyService.js +404 -0
- package/lib/commonjs/services/apiKeyService.js.map +1 -0
- package/lib/commonjs/services/platformAuthService.js +318 -113
- 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 +297 -158
- package/lib/module/components/Onairos.js.map +1 -1
- package/lib/module/components/OnairosButton.js +1 -1
- package/lib/module/components/OnairosButton.js.map +1 -1
- package/lib/module/components/UniversalOnboarding.js +6 -6
- package/lib/module/components/UniversalOnboarding.js.map +1 -1
- package/lib/module/components/onboarding/OAuthWebView.js +188 -52
- package/lib/module/components/onboarding/OAuthWebView.js.map +1 -1
- package/lib/module/index.js +17 -61
- package/lib/module/index.js.map +1 -1
- package/lib/module/services/apiKeyService.js +389 -0
- package/lib/module/services/apiKeyService.js.map +1 -0
- package/lib/module/services/platformAuthService.js +311 -111
- 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 +2 -29
- package/lib/typescript/components/Onairos.d.ts.map +1 -1
- package/lib/typescript/components/onboarding/OAuthWebView.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +10 -39
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/services/apiKeyService.d.ts +66 -0
- package/lib/typescript/services/apiKeyService.d.ts.map +1 -0
- 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 +92 -3
- 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 +330 -207
- package/src/components/OnairosButton.tsx +1 -1
- package/src/components/UniversalOnboarding.tsx +6 -6
- package/src/components/onboarding/OAuthWebView.tsx +236 -71
- package/src/index.ts +25 -115
- package/src/services/apiKeyService.ts +401 -0
- package/src/services/platformAuthService.ts +363 -126
- package/src/types/index.d.ts +110 -0
- package/src/types/index.ts +148 -74
- package/src/types.ts +99 -3
- package/src/utils/programmaticFlow.ts +113 -0
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.validateApiKey = exports.resetApiKeyService = exports.makeAuthenticatedRequest = exports.isApiKeyInitialized = exports.isAdminKey = exports.initializeApiKey = exports.getAuthHeaders = exports.getApiKeyType = exports.getApiKey = exports.getApiConfig = exports.clearValidationCache = exports.ApiKeyType = exports.ADMIN_API_KEY = void 0;
|
|
7
|
+
// Admin key for backend validation
|
|
8
|
+
const ADMIN_API_KEY = exports.ADMIN_API_KEY = 'OnairosIsAUnicorn2025';
|
|
9
|
+
|
|
10
|
+
// API key types
|
|
11
|
+
let ApiKeyType = exports.ApiKeyType = /*#__PURE__*/function (ApiKeyType) {
|
|
12
|
+
ApiKeyType["DEVELOPER"] = "developer";
|
|
13
|
+
ApiKeyType["ADMIN"] = "admin";
|
|
14
|
+
ApiKeyType["INVALID"] = "invalid";
|
|
15
|
+
return ApiKeyType;
|
|
16
|
+
}({});
|
|
17
|
+
/**
|
|
18
|
+
* API Key Service for Onairos React Native SDK
|
|
19
|
+
*
|
|
20
|
+
* This service handles API key validation, management, and authentication
|
|
21
|
+
* following standard SDK patterns for secure API key handling.
|
|
22
|
+
*
|
|
23
|
+
* How it works:
|
|
24
|
+
* 1. Initialize with API key and configuration
|
|
25
|
+
* 2. Validate API key with the Onairos backend
|
|
26
|
+
* 3. Cache validation results for performance
|
|
27
|
+
* 4. Include API key in all authenticated requests
|
|
28
|
+
* 5. Handle API key errors gracefully with developer-friendly messages
|
|
29
|
+
*
|
|
30
|
+
* Backend Integration:
|
|
31
|
+
* - All API requests include: Authorization: Bearer {apiKey}
|
|
32
|
+
* - Backend should validate API keys on each request
|
|
33
|
+
* - Admin key "OnairosIsAUnicorn2025" has full permissions
|
|
34
|
+
* - Developer keys have limited permissions based on validation response
|
|
35
|
+
*/
|
|
36
|
+
// Global configuration state
|
|
37
|
+
let globalConfig = null;
|
|
38
|
+
let validationCache = new Map();
|
|
39
|
+
let isInitialized = false;
|
|
40
|
+
|
|
41
|
+
// Cache duration (5 minutes)
|
|
42
|
+
const CACHE_DURATION = 5 * 60 * 1000;
|
|
43
|
+
|
|
44
|
+
// API endpoints for different environments
|
|
45
|
+
const API_ENDPOINTS = {
|
|
46
|
+
production: 'https://api2.onairos.uk',
|
|
47
|
+
staging: 'https://staging-api.onairos.uk',
|
|
48
|
+
development: 'https://dev-api.onairos.uk'
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Initialize the SDK with API key and configuration
|
|
53
|
+
* @param config API configuration including API key
|
|
54
|
+
*/
|
|
55
|
+
const initializeApiKey = async config => {
|
|
56
|
+
try {
|
|
57
|
+
console.log('🔑 Initializing Onairos SDK with API key...');
|
|
58
|
+
if (!config.apiKey) {
|
|
59
|
+
throw new Error('API key is required for SDK initialization');
|
|
60
|
+
}
|
|
61
|
+
if (config.apiKey.length < 32) {
|
|
62
|
+
throw new Error('Invalid API key format. API key must be at least 32 characters long.');
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Set global configuration
|
|
66
|
+
globalConfig = {
|
|
67
|
+
apiKey: config.apiKey,
|
|
68
|
+
environment: config.environment || 'production',
|
|
69
|
+
enableLogging: config.enableLogging !== false,
|
|
70
|
+
// Default to true
|
|
71
|
+
timeout: config.timeout || 30000,
|
|
72
|
+
retryAttempts: config.retryAttempts || 3
|
|
73
|
+
};
|
|
74
|
+
if (globalConfig.enableLogging) {
|
|
75
|
+
console.log('📝 SDK Configuration:', {
|
|
76
|
+
environment: globalConfig.environment,
|
|
77
|
+
timeout: globalConfig.timeout,
|
|
78
|
+
retryAttempts: globalConfig.retryAttempts,
|
|
79
|
+
apiKeyPrefix: config.apiKey.substring(0, 8) + '...',
|
|
80
|
+
enableLogging: globalConfig.enableLogging
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// Validate the API key
|
|
85
|
+
const validation = await validateApiKey(config.apiKey);
|
|
86
|
+
if (!validation.isValid) {
|
|
87
|
+
throw new Error(`API key validation failed: ${validation.error}`);
|
|
88
|
+
}
|
|
89
|
+
isInitialized = true;
|
|
90
|
+
if (globalConfig.enableLogging) {
|
|
91
|
+
console.log('✅ Onairos SDK initialized successfully');
|
|
92
|
+
if (validation.permissions) {
|
|
93
|
+
console.log('🔐 API Key Permissions:', validation.permissions);
|
|
94
|
+
}
|
|
95
|
+
if (validation.rateLimits) {
|
|
96
|
+
console.log('⏱️ Rate Limits:', validation.rateLimits);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
} catch (error) {
|
|
100
|
+
console.error('❌ Failed to initialize Onairos SDK:', error);
|
|
101
|
+
isInitialized = false;
|
|
102
|
+
throw error;
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Determine API key type
|
|
108
|
+
* @param apiKey The API key to check
|
|
109
|
+
* @returns The type of API key
|
|
110
|
+
*/
|
|
111
|
+
exports.initializeApiKey = initializeApiKey;
|
|
112
|
+
const getApiKeyType = apiKey => {
|
|
113
|
+
if (apiKey === ADMIN_API_KEY) {
|
|
114
|
+
return ApiKeyType.ADMIN;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// Developer keys should be at least 32 characters and start with specific prefix
|
|
118
|
+
if (apiKey.length >= 32 && (apiKey.startsWith('dev_') || apiKey.startsWith('pk_'))) {
|
|
119
|
+
return ApiKeyType.DEVELOPER;
|
|
120
|
+
}
|
|
121
|
+
return ApiKeyType.INVALID;
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Check if API key is admin key
|
|
126
|
+
* @param apiKey The API key to check
|
|
127
|
+
* @returns True if admin key
|
|
128
|
+
*/
|
|
129
|
+
exports.getApiKeyType = getApiKeyType;
|
|
130
|
+
const isAdminKey = apiKey => {
|
|
131
|
+
return apiKey === ADMIN_API_KEY;
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Validate an API key with the Onairos backend
|
|
136
|
+
* @param apiKey The API key to validate
|
|
137
|
+
* @returns Validation result with permissions and rate limits
|
|
138
|
+
*/
|
|
139
|
+
exports.isAdminKey = isAdminKey;
|
|
140
|
+
const validateApiKey = async apiKey => {
|
|
141
|
+
try {
|
|
142
|
+
var _globalConfig2, _globalConfig3;
|
|
143
|
+
console.log('🔍 Validating API key...');
|
|
144
|
+
|
|
145
|
+
// Check if it's an admin key
|
|
146
|
+
if (isAdminKey(apiKey)) {
|
|
147
|
+
console.log('🔑 Admin key detected - granting full permissions');
|
|
148
|
+
return {
|
|
149
|
+
isValid: true,
|
|
150
|
+
permissions: ['*'],
|
|
151
|
+
// Full permissions for admin
|
|
152
|
+
rateLimits: {
|
|
153
|
+
remaining: 999999,
|
|
154
|
+
resetTime: Date.now() + 24 * 60 * 60 * 1000 // 24 hours
|
|
155
|
+
},
|
|
156
|
+
keyType: ApiKeyType.ADMIN
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// Check basic format for developer keys
|
|
161
|
+
const keyType = getApiKeyType(apiKey);
|
|
162
|
+
if (keyType === ApiKeyType.INVALID) {
|
|
163
|
+
return {
|
|
164
|
+
isValid: false,
|
|
165
|
+
error: 'Invalid API key format. Developer keys must be at least 32 characters and start with "dev_" or "pk_"',
|
|
166
|
+
keyType: ApiKeyType.INVALID
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// Check cache first
|
|
171
|
+
const cached = validationCache.get(apiKey);
|
|
172
|
+
if (cached && Date.now() - cached.timestamp < CACHE_DURATION) {
|
|
173
|
+
var _globalConfig;
|
|
174
|
+
if ((_globalConfig = globalConfig) !== null && _globalConfig !== void 0 && _globalConfig.enableLogging) {
|
|
175
|
+
console.log('📋 Using cached API key validation result');
|
|
176
|
+
}
|
|
177
|
+
return cached.result;
|
|
178
|
+
}
|
|
179
|
+
const environment = ((_globalConfig2 = globalConfig) === null || _globalConfig2 === void 0 ? void 0 : _globalConfig2.environment) || 'production';
|
|
180
|
+
const baseUrl = API_ENDPOINTS[environment];
|
|
181
|
+
const timeout = ((_globalConfig3 = globalConfig) === null || _globalConfig3 === void 0 ? void 0 : _globalConfig3.timeout) || 30000;
|
|
182
|
+
|
|
183
|
+
// Create abort controller for timeout
|
|
184
|
+
const controller = new AbortController();
|
|
185
|
+
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
186
|
+
try {
|
|
187
|
+
const response = await fetch(`${baseUrl}/auth/validate-key`, {
|
|
188
|
+
method: 'POST',
|
|
189
|
+
headers: {
|
|
190
|
+
'Content-Type': 'application/json',
|
|
191
|
+
'Authorization': `Bearer ${apiKey}`,
|
|
192
|
+
'User-Agent': 'OnairosReactNative/1.0',
|
|
193
|
+
'X-API-Key-Type': keyType
|
|
194
|
+
},
|
|
195
|
+
body: JSON.stringify({
|
|
196
|
+
environment,
|
|
197
|
+
sdk_version: '3.0.72',
|
|
198
|
+
platform: 'react-native',
|
|
199
|
+
keyType,
|
|
200
|
+
timestamp: new Date().toISOString()
|
|
201
|
+
}),
|
|
202
|
+
signal: controller.signal
|
|
203
|
+
});
|
|
204
|
+
clearTimeout(timeoutId);
|
|
205
|
+
const data = await response.json();
|
|
206
|
+
if (response.ok && data.success) {
|
|
207
|
+
var _globalConfig4;
|
|
208
|
+
const result = {
|
|
209
|
+
isValid: true,
|
|
210
|
+
permissions: data.permissions || [],
|
|
211
|
+
rateLimits: data.rateLimits || null,
|
|
212
|
+
keyType: keyType
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
// Cache the successful result
|
|
216
|
+
validationCache.set(apiKey, {
|
|
217
|
+
result,
|
|
218
|
+
timestamp: Date.now()
|
|
219
|
+
});
|
|
220
|
+
if ((_globalConfig4 = globalConfig) !== null && _globalConfig4 !== void 0 && _globalConfig4.enableLogging) {
|
|
221
|
+
console.log('✅ API key validation successful');
|
|
222
|
+
}
|
|
223
|
+
return result;
|
|
224
|
+
} else {
|
|
225
|
+
var _globalConfig5;
|
|
226
|
+
const errorMessage = data.error || `HTTP ${response.status}: ${response.statusText}`;
|
|
227
|
+
const result = {
|
|
228
|
+
isValid: false,
|
|
229
|
+
error: errorMessage,
|
|
230
|
+
keyType: keyType
|
|
231
|
+
};
|
|
232
|
+
|
|
233
|
+
// Don't cache failed results
|
|
234
|
+
if ((_globalConfig5 = globalConfig) !== null && _globalConfig5 !== void 0 && _globalConfig5.enableLogging) {
|
|
235
|
+
console.error('❌ API key validation failed:', errorMessage);
|
|
236
|
+
}
|
|
237
|
+
return result;
|
|
238
|
+
}
|
|
239
|
+
} catch (fetchError) {
|
|
240
|
+
clearTimeout(timeoutId);
|
|
241
|
+
if (fetchError.name === 'AbortError') {
|
|
242
|
+
const errorMessage = 'API key validation timeout';
|
|
243
|
+
console.error('⏱️ API key validation timeout');
|
|
244
|
+
return {
|
|
245
|
+
isValid: false,
|
|
246
|
+
error: errorMessage,
|
|
247
|
+
keyType: keyType
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
const errorMessage = `Network error during API key validation: ${fetchError.message}`;
|
|
251
|
+
console.error('🌐 Network error during API key validation:', fetchError);
|
|
252
|
+
return {
|
|
253
|
+
isValid: false,
|
|
254
|
+
error: errorMessage,
|
|
255
|
+
keyType: keyType
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
} catch (error) {
|
|
259
|
+
const errorMessage = `API key validation error: ${error.message}`;
|
|
260
|
+
console.error('❌ API key validation error:', error);
|
|
261
|
+
return {
|
|
262
|
+
isValid: false,
|
|
263
|
+
error: errorMessage,
|
|
264
|
+
keyType: ApiKeyType.INVALID
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
};
|
|
268
|
+
|
|
269
|
+
/**
|
|
270
|
+
* Get the current API configuration
|
|
271
|
+
* @returns Current API configuration or null if not initialized
|
|
272
|
+
*/
|
|
273
|
+
exports.validateApiKey = validateApiKey;
|
|
274
|
+
const getApiConfig = () => {
|
|
275
|
+
return globalConfig;
|
|
276
|
+
};
|
|
277
|
+
|
|
278
|
+
/**
|
|
279
|
+
* Get the current API key
|
|
280
|
+
* @returns Current API key or null if not initialized
|
|
281
|
+
*/
|
|
282
|
+
exports.getApiConfig = getApiConfig;
|
|
283
|
+
const getApiKey = () => {
|
|
284
|
+
var _globalConfig6;
|
|
285
|
+
return ((_globalConfig6 = globalConfig) === null || _globalConfig6 === void 0 ? void 0 : _globalConfig6.apiKey) || null;
|
|
286
|
+
};
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* Check if the SDK is properly initialized
|
|
290
|
+
* @returns True if initialized with valid API key
|
|
291
|
+
*/
|
|
292
|
+
exports.getApiKey = getApiKey;
|
|
293
|
+
const isApiKeyInitialized = () => {
|
|
294
|
+
return isInitialized && globalConfig !== null;
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* Get authenticated headers for API requests
|
|
299
|
+
* @returns Headers object with Authorization and other required headers
|
|
300
|
+
*/
|
|
301
|
+
exports.isApiKeyInitialized = isApiKeyInitialized;
|
|
302
|
+
const getAuthHeaders = () => {
|
|
303
|
+
var _globalConfig7;
|
|
304
|
+
if (!((_globalConfig7 = globalConfig) !== null && _globalConfig7 !== void 0 && _globalConfig7.apiKey)) {
|
|
305
|
+
throw new Error('SDK not initialized. Call initializeApiKey() first.');
|
|
306
|
+
}
|
|
307
|
+
const keyType = getApiKeyType(globalConfig.apiKey);
|
|
308
|
+
return {
|
|
309
|
+
'Content-Type': 'application/json',
|
|
310
|
+
'Authorization': `Bearer ${globalConfig.apiKey}`,
|
|
311
|
+
'User-Agent': 'OnairosReactNative/3.0.72',
|
|
312
|
+
'X-SDK-Version': '3.0.72',
|
|
313
|
+
'X-SDK-Environment': globalConfig.environment || 'production',
|
|
314
|
+
'X-API-Key-Type': keyType,
|
|
315
|
+
'X-Timestamp': new Date().toISOString()
|
|
316
|
+
};
|
|
317
|
+
};
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* Make an authenticated API request
|
|
321
|
+
* @param endpoint The API endpoint (relative to base URL)
|
|
322
|
+
* @param options Fetch options
|
|
323
|
+
* @returns Response promise
|
|
324
|
+
*/
|
|
325
|
+
exports.getAuthHeaders = getAuthHeaders;
|
|
326
|
+
const makeAuthenticatedRequest = async (endpoint, options = {}) => {
|
|
327
|
+
if (!isApiKeyInitialized()) {
|
|
328
|
+
throw new Error('SDK not initialized. Call initializeApiKey() first.');
|
|
329
|
+
}
|
|
330
|
+
const config = getApiConfig();
|
|
331
|
+
const baseUrl = API_ENDPOINTS[config.environment || 'production'];
|
|
332
|
+
const url = `${baseUrl}${endpoint.startsWith('/') ? '' : '/'}${endpoint}`;
|
|
333
|
+
|
|
334
|
+
// Merge authentication headers
|
|
335
|
+
const headers = {
|
|
336
|
+
...getAuthHeaders(),
|
|
337
|
+
...(options.headers || {})
|
|
338
|
+
};
|
|
339
|
+
|
|
340
|
+
// Add timeout
|
|
341
|
+
const controller = new AbortController();
|
|
342
|
+
const timeoutId = setTimeout(() => controller.abort(), config.timeout || 30000);
|
|
343
|
+
try {
|
|
344
|
+
if (config.enableLogging) {
|
|
345
|
+
console.log(`🌐 Making authenticated request to: ${endpoint}`);
|
|
346
|
+
}
|
|
347
|
+
const response = await fetch(url, {
|
|
348
|
+
...options,
|
|
349
|
+
headers,
|
|
350
|
+
signal: controller.signal
|
|
351
|
+
});
|
|
352
|
+
clearTimeout(timeoutId);
|
|
353
|
+
if (config.enableLogging) {
|
|
354
|
+
console.log(`📡 Response status: ${response.status} for ${endpoint}`);
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
// Handle API key errors
|
|
358
|
+
if (response.status === 401) {
|
|
359
|
+
console.error('❌ API key authentication failed. Please check your API key.');
|
|
360
|
+
throw new Error('Invalid or expired API key');
|
|
361
|
+
}
|
|
362
|
+
if (response.status === 403) {
|
|
363
|
+
console.error('❌ API key permissions insufficient for this operation.');
|
|
364
|
+
throw new Error('Insufficient API key permissions');
|
|
365
|
+
}
|
|
366
|
+
if (response.status === 429) {
|
|
367
|
+
console.error('❌ API rate limit exceeded. Please try again later.');
|
|
368
|
+
throw new Error('Rate limit exceeded');
|
|
369
|
+
}
|
|
370
|
+
return response;
|
|
371
|
+
} catch (error) {
|
|
372
|
+
clearTimeout(timeoutId);
|
|
373
|
+
if (error.name === 'AbortError') {
|
|
374
|
+
console.error('⏱️ Request timeout for:', endpoint);
|
|
375
|
+
throw new Error('Request timeout');
|
|
376
|
+
}
|
|
377
|
+
throw error;
|
|
378
|
+
}
|
|
379
|
+
};
|
|
380
|
+
|
|
381
|
+
/**
|
|
382
|
+
* Clear the API key validation cache
|
|
383
|
+
*/
|
|
384
|
+
exports.makeAuthenticatedRequest = makeAuthenticatedRequest;
|
|
385
|
+
const clearValidationCache = () => {
|
|
386
|
+
var _globalConfig8;
|
|
387
|
+
validationCache.clear();
|
|
388
|
+
if ((_globalConfig8 = globalConfig) !== null && _globalConfig8 !== void 0 && _globalConfig8.enableLogging) {
|
|
389
|
+
console.log('🗑️ API key validation cache cleared');
|
|
390
|
+
}
|
|
391
|
+
};
|
|
392
|
+
|
|
393
|
+
/**
|
|
394
|
+
* Reset the SDK initialization state
|
|
395
|
+
*/
|
|
396
|
+
exports.clearValidationCache = clearValidationCache;
|
|
397
|
+
const resetApiKeyService = () => {
|
|
398
|
+
globalConfig = null;
|
|
399
|
+
isInitialized = false;
|
|
400
|
+
clearValidationCache();
|
|
401
|
+
console.log('🔄 API key service reset');
|
|
402
|
+
};
|
|
403
|
+
exports.resetApiKeyService = resetApiKeyService;
|
|
404
|
+
//# sourceMappingURL=apiKeyService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ADMIN_API_KEY","exports","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":[]}
|