swcombine-sdk 1.0.0 → 1.2.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.
- package/README.md +169 -33
- package/dist/cjs/SWCombine.js +35 -0
- package/dist/cjs/SWCombine.js.map +1 -1
- package/dist/cjs/auth/OAuthClient.js +1 -1
- package/dist/cjs/auth/OAuthClient.js.map +1 -1
- package/dist/cjs/auth/permissions.js +23 -2
- package/dist/cjs/auth/permissions.js.map +1 -1
- package/dist/cjs/auth/scopes.js +91 -75
- package/dist/cjs/auth/scopes.js.map +1 -1
- package/dist/cjs/http/HttpClient.js +83 -7
- package/dist/cjs/http/HttpClient.js.map +1 -1
- package/dist/cjs/index.js +1 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/resources/ApiResource.js +57 -4
- package/dist/cjs/resources/ApiResource.js.map +1 -1
- package/dist/cjs/resources/CharacterResource.js +161 -20
- package/dist/cjs/resources/CharacterResource.js.map +1 -1
- package/dist/cjs/resources/DatacardResource.js +30 -9
- package/dist/cjs/resources/DatacardResource.js.map +1 -1
- package/dist/cjs/resources/EventsResource.js +28 -5
- package/dist/cjs/resources/EventsResource.js.map +1 -1
- package/dist/cjs/resources/FactionResource.js +59 -13
- package/dist/cjs/resources/FactionResource.js.map +1 -1
- package/dist/cjs/resources/GalaxyResource.js +18 -7
- package/dist/cjs/resources/GalaxyResource.js.map +1 -1
- package/dist/cjs/resources/InventoryResource.js +41 -12
- package/dist/cjs/resources/InventoryResource.js.map +1 -1
- package/dist/cjs/resources/MarketResource.js +3 -1
- package/dist/cjs/resources/MarketResource.js.map +1 -1
- package/dist/cjs/resources/NewsResource.js +16 -3
- package/dist/cjs/resources/NewsResource.js.map +1 -1
- package/dist/cjs/resources/TypesResource.js +40 -8
- package/dist/cjs/resources/TypesResource.js.map +1 -1
- package/dist/esm/SWCombine.js +35 -0
- package/dist/esm/SWCombine.js.map +1 -1
- package/dist/esm/auth/OAuthClient.js +1 -1
- package/dist/esm/auth/OAuthClient.js.map +1 -1
- package/dist/esm/auth/permissions.js +23 -2
- package/dist/esm/auth/permissions.js.map +1 -1
- package/dist/esm/auth/scopes.js +91 -75
- package/dist/esm/auth/scopes.js.map +1 -1
- package/dist/esm/http/HttpClient.js +83 -7
- package/dist/esm/http/HttpClient.js.map +1 -1
- package/dist/esm/index.js +1 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/resources/ApiResource.js +57 -4
- package/dist/esm/resources/ApiResource.js.map +1 -1
- package/dist/esm/resources/CharacterResource.js +161 -20
- package/dist/esm/resources/CharacterResource.js.map +1 -1
- package/dist/esm/resources/DatacardResource.js +30 -9
- package/dist/esm/resources/DatacardResource.js.map +1 -1
- package/dist/esm/resources/EventsResource.js +28 -5
- package/dist/esm/resources/EventsResource.js.map +1 -1
- package/dist/esm/resources/FactionResource.js +59 -13
- package/dist/esm/resources/FactionResource.js.map +1 -1
- package/dist/esm/resources/GalaxyResource.js +18 -7
- package/dist/esm/resources/GalaxyResource.js.map +1 -1
- package/dist/esm/resources/InventoryResource.js +41 -12
- package/dist/esm/resources/InventoryResource.js.map +1 -1
- package/dist/esm/resources/MarketResource.js +3 -1
- package/dist/esm/resources/MarketResource.js.map +1 -1
- package/dist/esm/resources/NewsResource.js +16 -3
- package/dist/esm/resources/NewsResource.js.map +1 -1
- package/dist/esm/resources/TypesResource.js +40 -8
- package/dist/esm/resources/TypesResource.js.map +1 -1
- package/dist/types/SWCombine.d.ts +32 -1
- package/dist/types/SWCombine.d.ts.map +1 -1
- package/dist/types/auth/permissions.d.ts +23 -2
- package/dist/types/auth/permissions.d.ts.map +1 -1
- package/dist/types/auth/scopes.d.ts +114 -86
- package/dist/types/auth/scopes.d.ts.map +1 -1
- package/dist/types/http/HttpClient.d.ts +32 -0
- package/dist/types/http/HttpClient.d.ts.map +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/resources/ApiResource.d.ts +85 -17
- package/dist/types/resources/ApiResource.d.ts.map +1 -1
- package/dist/types/resources/CharacterResource.d.ts +209 -29
- package/dist/types/resources/CharacterResource.d.ts.map +1 -1
- package/dist/types/resources/DatacardResource.d.ts +13 -5
- package/dist/types/resources/DatacardResource.d.ts.map +1 -1
- package/dist/types/resources/EventsResource.d.ts +21 -5
- package/dist/types/resources/EventsResource.d.ts.map +1 -1
- package/dist/types/resources/FactionResource.d.ts +37 -6
- package/dist/types/resources/FactionResource.d.ts.map +1 -1
- package/dist/types/resources/GalaxyResource.d.ts +3 -2
- package/dist/types/resources/GalaxyResource.d.ts.map +1 -1
- package/dist/types/resources/InventoryResource.d.ts +28 -9
- package/dist/types/resources/InventoryResource.d.ts.map +1 -1
- package/dist/types/resources/MarketResource.d.ts.map +1 -1
- package/dist/types/resources/NewsResource.d.ts +13 -3
- package/dist/types/resources/NewsResource.d.ts.map +1 -1
- package/dist/types/resources/TypesResource.d.ts +10 -5
- package/dist/types/resources/TypesResource.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +72 -8
- package/dist/types/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -18,14 +18,14 @@
|
|
|
18
18
|
|
|
19
19
|
## Features
|
|
20
20
|
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
21
|
+
- **Full API Coverage** - All 60+ endpoints across 11 resource categories
|
|
22
|
+
- **OAuth 2.0 Built-in** - Complete OAuth flow with automatic token refresh
|
|
23
|
+
- **TypeScript First** - Full type definitions with IntelliSense support
|
|
24
|
+
- **Type-Safe Scopes** - 170+ OAuth scope constants with autocomplete
|
|
25
|
+
- **Automatic Retries** - Exponential backoff for failed requests
|
|
26
|
+
- **Modern & Universal** - ES Modules + CommonJS, Node.js 18+
|
|
27
|
+
- **Developer Tools** - Helper scripts for OAuth and testing
|
|
28
|
+
- **Zero Dependencies** (except axios)
|
|
29
29
|
|
|
30
30
|
## Installation
|
|
31
31
|
|
|
@@ -47,7 +47,7 @@ import { SWCombine } from 'swcombine-sdk';
|
|
|
47
47
|
const client = new SWCombine({
|
|
48
48
|
clientId: process.env.SWC_CLIENT_ID!,
|
|
49
49
|
clientSecret: process.env.SWC_CLIENT_SECRET!,
|
|
50
|
-
|
|
50
|
+
token: process.env.SWC_ACCESS_TOKEN, // Optional - can be string or OAuthToken object
|
|
51
51
|
});
|
|
52
52
|
```
|
|
53
53
|
|
|
@@ -70,7 +70,7 @@ console.log(character.name); // "Character Name"
|
|
|
70
70
|
const authenticatedClient = new SWCombine({
|
|
71
71
|
clientId: process.env.SWC_CLIENT_ID!,
|
|
72
72
|
clientSecret: process.env.SWC_CLIENT_SECRET!,
|
|
73
|
-
|
|
73
|
+
token: process.env.SWC_ACCESS_TOKEN!,
|
|
74
74
|
});
|
|
75
75
|
|
|
76
76
|
// Get character details
|
|
@@ -156,7 +156,7 @@ import {
|
|
|
156
156
|
|
|
157
157
|
// Use constants with autocomplete
|
|
158
158
|
const scopes = [
|
|
159
|
-
CharacterScopes.READ, //
|
|
159
|
+
CharacterScopes.READ, // TypeScript suggests all scopes
|
|
160
160
|
CharacterScopes.STATS,
|
|
161
161
|
MessageScopes.SEND,
|
|
162
162
|
Scopes.PersonalInventory.SHIPS.READ,
|
|
@@ -167,12 +167,29 @@ const readOnly = getReadOnlyScopes();
|
|
|
167
167
|
const everything = getAllScopes();
|
|
168
168
|
```
|
|
169
169
|
|
|
170
|
-
See [OAuth Scopes Guide](docs/SCOPES.md) for all
|
|
170
|
+
See [OAuth Scopes Guide](docs/SCOPES.md) for all 170+ available scopes.
|
|
171
171
|
|
|
172
172
|
## API Resources
|
|
173
173
|
|
|
174
174
|
The SDK provides access to all SW Combine API resources:
|
|
175
175
|
|
|
176
|
+
### API Utilities
|
|
177
|
+
|
|
178
|
+
```typescript
|
|
179
|
+
// Test connectivity
|
|
180
|
+
await client.api.helloWorld();
|
|
181
|
+
await client.api.helloAuth(); // Requires authentication
|
|
182
|
+
|
|
183
|
+
// Get available permissions and rate limits
|
|
184
|
+
await client.api.permissions();
|
|
185
|
+
await client.api.rateLimits();
|
|
186
|
+
|
|
187
|
+
// Time conversion (CGT = Combine Galactic Time)
|
|
188
|
+
await client.api.time(); // Current time: { years, days, hours, mins, secs }
|
|
189
|
+
await client.api.time({ cgt: 'Y26D100' }); // CGT to Unix timestamp
|
|
190
|
+
await client.api.time({ time: 1701432000 }); // Unix timestamp to CGT
|
|
191
|
+
```
|
|
192
|
+
|
|
176
193
|
### Characters
|
|
177
194
|
|
|
178
195
|
```typescript
|
|
@@ -180,12 +197,24 @@ The SDK provides access to all SW Combine API resources:
|
|
|
180
197
|
await client.character.getByHandle({ handle: 'character-handle' });
|
|
181
198
|
|
|
182
199
|
// Authenticated endpoints
|
|
200
|
+
await client.character.me(); // Get authenticated user's character
|
|
183
201
|
await client.character.get({ uid: '1:12345' });
|
|
184
202
|
await client.character.skills.list({ uid: '1:12345' });
|
|
185
203
|
await client.character.privileges.list({ uid: '1:12345' });
|
|
186
|
-
await client.character.
|
|
187
|
-
await client.character.
|
|
204
|
+
await client.character.privileges.get({ uid: '1:12345', privilegeGroup: 'group', privilege: 'name' });
|
|
205
|
+
await client.character.credits.get({ uid: '1:12345' }); // Returns credit balance as number
|
|
206
|
+
await client.character.credits.transfer({ uid: '1:12345', amount: 1000, recipient: '1:67890' });
|
|
207
|
+
await client.character.creditlog.list({ uid: '1:12345' });
|
|
188
208
|
await client.character.permissions.list({ uid: '1:12345' });
|
|
209
|
+
await client.character.hasPermission({ uid: '1:12345', permission: 'CHARACTER_READ' });
|
|
210
|
+
|
|
211
|
+
// Messages
|
|
212
|
+
await client.character.messages.list({ uid: '1:12345' }); // All messages (sent + received)
|
|
213
|
+
await client.character.messages.list({ uid: '1:12345', mode: 'received' }); // Only received
|
|
214
|
+
await client.character.messages.list({ uid: '1:12345', mode: 'sent' }); // Only sent
|
|
215
|
+
await client.character.messages.get({ uid: '1:12345', messageId: 'msg-123' });
|
|
216
|
+
await client.character.messages.create({ uid: '1:12345', receivers: 'recipient1;recipient2', communication: 'Hello!' });
|
|
217
|
+
await client.character.messages.delete({ uid: '1:12345', messageId: 'msg-123' });
|
|
189
218
|
```
|
|
190
219
|
|
|
191
220
|
### Factions
|
|
@@ -193,8 +222,13 @@ await client.character.permissions.list({ uid: '1:12345' });
|
|
|
193
222
|
```typescript
|
|
194
223
|
await client.faction.list();
|
|
195
224
|
await client.faction.get({ uid: '20:123' });
|
|
196
|
-
await client.faction.members.list({
|
|
197
|
-
await client.faction.budgets.list({
|
|
225
|
+
await client.faction.members.list({ factionId: '20:123' });
|
|
226
|
+
await client.faction.budgets.list({ factionId: '20:123' });
|
|
227
|
+
await client.faction.budgets.get({ factionId: '20:123', budgetId: 'budget-uid' });
|
|
228
|
+
await client.faction.stockholders.list({ factionId: '20:123' });
|
|
229
|
+
await client.faction.credits.get({ factionId: '20:123' });
|
|
230
|
+
await client.faction.credits.update({ factionId: '20:123', amount: 1000, recipient: '1:12345' });
|
|
231
|
+
await client.faction.creditlog.list({ factionId: '20:123' });
|
|
198
232
|
```
|
|
199
233
|
|
|
200
234
|
### Inventory
|
|
@@ -203,32 +237,129 @@ await client.faction.budgets.list({ uid: '20:123' });
|
|
|
203
237
|
await client.inventory.get({ uid: '1:12345' });
|
|
204
238
|
await client.inventory.entities.list({
|
|
205
239
|
uid: '1:12345',
|
|
206
|
-
entityType: '
|
|
207
|
-
assignType: '
|
|
240
|
+
entityType: 'ships', // ships, vehicles, stations, cities, facilities, planets, items, npcs, droids, creatures, materials
|
|
241
|
+
assignType: 'owner', // owner, commander, pilot
|
|
242
|
+
});
|
|
243
|
+
await client.inventory.entities.get({ entityType: 'ships', uid: '5:12345' });
|
|
244
|
+
|
|
245
|
+
// Entity management
|
|
246
|
+
await client.inventory.entities.updateProperty({
|
|
247
|
+
entityType: 'ships',
|
|
248
|
+
uid: '5:12345',
|
|
249
|
+
property: 'name', // name, owner, commander, pilot, infotext, etc.
|
|
250
|
+
new_value: 'New Ship Name',
|
|
208
251
|
});
|
|
252
|
+
await client.inventory.entities.addTag({ entityType: 'ships', uid: '5:12345', tag: 'favorite' });
|
|
253
|
+
await client.inventory.entities.removeTag({ entityType: 'ships', uid: '5:12345', tag: 'favorite' });
|
|
209
254
|
```
|
|
210
255
|
|
|
211
256
|
### Galaxy
|
|
212
257
|
|
|
213
258
|
```typescript
|
|
259
|
+
// Systems, planets, sectors
|
|
214
260
|
await client.galaxy.systems.list();
|
|
261
|
+
await client.galaxy.systems.get({ uid: '24:123' });
|
|
215
262
|
await client.galaxy.planets.list();
|
|
263
|
+
await client.galaxy.planets.get({ uid: '23:456' });
|
|
216
264
|
await client.galaxy.sectors.list();
|
|
265
|
+
await client.galaxy.sectors.get({ uid: 'seswenna' }); // Use lowercase sector name
|
|
266
|
+
|
|
267
|
+
// Stations and cities
|
|
268
|
+
await client.galaxy.stations.list();
|
|
269
|
+
await client.galaxy.stations.get({ uid: '6:789' });
|
|
270
|
+
await client.galaxy.cities.list();
|
|
271
|
+
await client.galaxy.cities.get({ uid: '22:101' });
|
|
217
272
|
```
|
|
218
273
|
|
|
219
|
-
### Events
|
|
274
|
+
### Events
|
|
275
|
+
|
|
276
|
+
```typescript
|
|
277
|
+
// Note: Events uses 0-based indexing unlike other endpoints
|
|
278
|
+
await client.events.list({ eventMode: 'personal' }); // personal, faction, inventory, combat
|
|
279
|
+
await client.events.list({ eventMode: 'personal', eventType: 'all', start_index: 0, item_count: 100 });
|
|
280
|
+
await client.events.get({ uid: 'event-uid' });
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### Location
|
|
220
284
|
|
|
221
285
|
```typescript
|
|
222
|
-
await client.events.list({ eventMode: 'character', eventType: 'all' });
|
|
223
286
|
await client.location.get({ entityType: 'character', uid: '1:12345' });
|
|
287
|
+
await client.location.get({ entityType: 'ships', uid: '5:12345' });
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
### Datacards
|
|
291
|
+
|
|
292
|
+
```typescript
|
|
224
293
|
await client.datacard.list({ factionId: '20:123' });
|
|
225
|
-
await client.
|
|
226
|
-
await client.
|
|
227
|
-
await client.
|
|
294
|
+
await client.datacard.get({ uid: 'datacard-uid' });
|
|
295
|
+
await client.datacard.create({ uid: 'datacard-uid', production_entity_uid: '6:789', uses: 10 });
|
|
296
|
+
await client.datacard.delete({ uid: 'datacard-uid', production_entity_uid: '6:789' });
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
### Market
|
|
300
|
+
|
|
301
|
+
```typescript
|
|
302
|
+
await client.market.vendors.list();
|
|
303
|
+
await client.market.vendors.get({ uid: 'vendor-uid' });
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
### News
|
|
307
|
+
|
|
308
|
+
```typescript
|
|
309
|
+
// Galactic News Service (GNS)
|
|
310
|
+
await client.news.gns.list();
|
|
311
|
+
await client.news.gns.list({ category: 'economy', search: 'battle', author: 'John Doe' });
|
|
312
|
+
await client.news.gns.get({ id: 'news-id' });
|
|
313
|
+
|
|
314
|
+
// Sim News
|
|
315
|
+
await client.news.simNews.list();
|
|
316
|
+
await client.news.simNews.list({ category: 'player' });
|
|
317
|
+
await client.news.simNews.get({ id: 'news-id' });
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
### Types
|
|
321
|
+
|
|
322
|
+
```typescript
|
|
323
|
+
// List all entity types
|
|
324
|
+
await client.types.listEntityTypes();
|
|
325
|
+
|
|
326
|
+
// Get entity classes for a specific type
|
|
327
|
+
await client.types.classes.list({ entityType: 'vehicles' });
|
|
328
|
+
await client.types.classes.list({ entityType: 'ships' });
|
|
329
|
+
|
|
330
|
+
// Get entities by type
|
|
331
|
+
await client.types.entities.list({ entityType: 'ships' });
|
|
332
|
+
await client.types.entities.list({ entityType: 'ships', class: 'fighter' });
|
|
333
|
+
await client.types.entities.get({ entityType: 'ships', uid: 'type-uid' });
|
|
228
334
|
```
|
|
229
335
|
|
|
230
336
|
See [API Documentation](docs/API.md) for complete reference.
|
|
231
337
|
|
|
338
|
+
## Rate Limiting
|
|
339
|
+
|
|
340
|
+
The SW Combine API has a rate limit of **600 requests per hour**. The SDK provides tools to monitor and handle rate limits:
|
|
341
|
+
|
|
342
|
+
```typescript
|
|
343
|
+
// Check current rate limit status after any API call
|
|
344
|
+
const rateLimit = client.getRateLimitInfo();
|
|
345
|
+
if (rateLimit) {
|
|
346
|
+
console.log(`${rateLimit.remaining}/${rateLimit.limit} requests remaining`);
|
|
347
|
+
console.log(`Resets at: ${rateLimit.resetTime}`);
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
// Set up a callback to monitor rate limits in real-time
|
|
351
|
+
client.onRateLimitUpdate((info) => {
|
|
352
|
+
if (info.remaining < 100) {
|
|
353
|
+
console.warn(`Warning: Only ${info.remaining} API requests remaining!`);
|
|
354
|
+
}
|
|
355
|
+
});
|
|
356
|
+
|
|
357
|
+
// Or check via API endpoint for detailed per-endpoint limits
|
|
358
|
+
const limits = await client.api.rateLimits();
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
The SDK automatically handles rate limit errors with exponential backoff and respects the `Retry-After` header when provided.
|
|
362
|
+
|
|
232
363
|
## Error Handling
|
|
233
364
|
|
|
234
365
|
```typescript
|
|
@@ -258,8 +389,8 @@ const character = await client.character.get({ uid: '1:12345' });
|
|
|
258
389
|
// Request parameters are typed
|
|
259
390
|
await client.character.messages.list({
|
|
260
391
|
uid: '1:12345',
|
|
261
|
-
mode: 'received', // TypeScript knows valid values
|
|
262
|
-
// mode: 'invalid', //
|
|
392
|
+
mode: 'received', // Optional - TypeScript knows valid values: 'sent' | 'received'
|
|
393
|
+
// mode: 'invalid', // TypeScript error
|
|
263
394
|
});
|
|
264
395
|
```
|
|
265
396
|
|
|
@@ -271,9 +402,8 @@ interface ClientConfig {
|
|
|
271
402
|
clientId: string;
|
|
272
403
|
clientSecret: string;
|
|
273
404
|
|
|
274
|
-
// Optional authentication
|
|
275
|
-
|
|
276
|
-
refreshToken?: string;
|
|
405
|
+
// Optional authentication - can be access token string or full OAuthToken object
|
|
406
|
+
token?: string | OAuthToken;
|
|
277
407
|
|
|
278
408
|
// Optional OAuth settings
|
|
279
409
|
redirectUri?: string;
|
|
@@ -286,6 +416,12 @@ interface ClientConfig {
|
|
|
286
416
|
retryDelay?: number; // Default: 1000ms
|
|
287
417
|
debug?: boolean; // Default: false
|
|
288
418
|
}
|
|
419
|
+
|
|
420
|
+
interface OAuthToken {
|
|
421
|
+
accessToken: string;
|
|
422
|
+
refreshToken?: string;
|
|
423
|
+
expiresAt: number; // Timestamp in milliseconds
|
|
424
|
+
}
|
|
289
425
|
```
|
|
290
426
|
|
|
291
427
|
## Examples
|
|
@@ -379,7 +515,7 @@ npm run format
|
|
|
379
515
|
|
|
380
516
|
## License
|
|
381
517
|
|
|
382
|
-
MIT ©
|
|
518
|
+
MIT © Dreks Selmur aka JonMarkGo
|
|
383
519
|
|
|
384
520
|
## Contributing
|
|
385
521
|
|
|
@@ -393,12 +529,12 @@ Contributions are welcome! Please:
|
|
|
393
529
|
|
|
394
530
|
## Support
|
|
395
531
|
|
|
396
|
-
-
|
|
397
|
-
-
|
|
398
|
-
-
|
|
532
|
+
- Check the [documentation](docs/)
|
|
533
|
+
- Submit issues on [GitHub](https://github.com/yourusername/swcombine-sdk-nodejs/issues)
|
|
534
|
+
- Contact support
|
|
399
535
|
|
|
400
536
|
---
|
|
401
537
|
|
|
402
538
|
<div align="center">
|
|
403
|
-
Made
|
|
539
|
+
Made for the Star Wars Combine community
|
|
404
540
|
</div>
|
package/dist/cjs/SWCombine.js
CHANGED
|
@@ -115,6 +115,41 @@ class SWCombine {
|
|
|
115
115
|
hasRefreshToken() {
|
|
116
116
|
return this.tokenManager.hasRefreshToken();
|
|
117
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* Get the current rate limit information.
|
|
120
|
+
* Returns the last known rate limit info from API response headers.
|
|
121
|
+
* Returns null if no API calls have been made yet.
|
|
122
|
+
*
|
|
123
|
+
* Note: The SW Combine API has a default limit of 600 requests per hour.
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ```typescript
|
|
127
|
+
* const rateLimit = client.getRateLimitInfo();
|
|
128
|
+
* if (rateLimit) {
|
|
129
|
+
* console.log(`${rateLimit.remaining}/${rateLimit.limit} requests remaining`);
|
|
130
|
+
* console.log(`Resets at: ${rateLimit.resetTime}`);
|
|
131
|
+
* }
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
134
|
+
getRateLimitInfo() {
|
|
135
|
+
return this.http.getRateLimitInfo();
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Set a callback to be notified when rate limit info is updated after each API call.
|
|
139
|
+
* Useful for monitoring rate limit consumption in real-time.
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```typescript
|
|
143
|
+
* client.onRateLimitUpdate((info) => {
|
|
144
|
+
* if (info.remaining < 100) {
|
|
145
|
+
* console.warn(`Warning: Only ${info.remaining} API requests remaining!`);
|
|
146
|
+
* }
|
|
147
|
+
* });
|
|
148
|
+
* ```
|
|
149
|
+
*/
|
|
150
|
+
onRateLimitUpdate(callback) {
|
|
151
|
+
this.http.setRateLimitCallback(callback);
|
|
152
|
+
}
|
|
118
153
|
}
|
|
119
154
|
exports.SWCombine = SWCombine;
|
|
120
155
|
//# sourceMappingURL=SWCombine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SWCombine.js","sourceRoot":"","sources":["../../src/SWCombine.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,wDAAkD;AAClD,0DAAoD;AACpD,4DAAsD;
|
|
1
|
+
{"version":3,"file":"SWCombine.js","sourceRoot":"","sources":["../../src/SWCombine.ts"],"names":[],"mappings":"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"}
|
|
@@ -91,13 +91,13 @@ class OAuthClient {
|
|
|
91
91
|
if (!this.redirectUri) {
|
|
92
92
|
throw new Error('redirectUri is required for token exchange');
|
|
93
93
|
}
|
|
94
|
+
// Note: access_type is only used in authorization URL, not token exchange
|
|
94
95
|
const params = new URLSearchParams({
|
|
95
96
|
code,
|
|
96
97
|
client_id: this.clientId,
|
|
97
98
|
client_secret: this.clientSecret,
|
|
98
99
|
redirect_uri: this.redirectUri,
|
|
99
100
|
grant_type: index_js_1.GrantType.AuthorizationCode,
|
|
100
|
-
access_type: this.accessType,
|
|
101
101
|
});
|
|
102
102
|
try {
|
|
103
103
|
const response = await axios_1.default.post(OAUTH_ENDPOINT_TOKEN, params.toString(), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OAuthClient.js","sourceRoot":"","sources":["../../../src/auth/OAuthClient.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"OAuthClient.js","sourceRoot":"","sources":["../../../src/auth/OAuthClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
3
|
+
* @deprecated This file is deprecated and contains incorrect scope values.
|
|
4
|
+
*
|
|
5
|
+
* **DO NOT USE THIS FILE** - All scope values here are lowercase (e.g., 'character_read')
|
|
6
|
+
* but the SW Combine API requires UPPERCASE scope values (e.g., 'CHARACTER_READ').
|
|
7
|
+
*
|
|
8
|
+
* Additionally, this file is missing many valid scopes and contains some that don't exist.
|
|
9
|
+
*
|
|
10
|
+
* **USE `scopes.ts` INSTEAD:**
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { Scopes, CharacterScopes, MessageScopes } from 'swcombine-sdk';
|
|
13
|
+
*
|
|
14
|
+
* // Correct usage:
|
|
15
|
+
* const scopes = [
|
|
16
|
+
* CharacterScopes.READ, // 'CHARACTER_READ'
|
|
17
|
+
* CharacterScopes.CREDITS, // 'CHARACTER_CREDITS'
|
|
18
|
+
* MessageScopes.READ, // 'MESSAGES_READ'
|
|
19
|
+
* Scopes.PersonalInventory.SHIPS.READ, // 'PERSONAL_INV_SHIPS_READ'
|
|
20
|
+
* ];
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* This file is kept only for backwards compatibility and will be removed in a future version.
|
|
24
|
+
*
|
|
25
|
+
* @see scopes.ts for the correct, type-safe scope definitions
|
|
5
26
|
*/
|
|
6
27
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
28
|
exports.FACILITIES_ALL = exports.FACILITIES_TAGS_WRITE = exports.FACILITIES_TAGS_READ = exports.FACILITIES_MAKEOVER = exports.FACILITIES_ASSIGN = exports.FACILITIES_RENAME = exports.FACILITIES_READ = exports.CITIES_ALL = exports.CITIES_TAGS_WRITE = exports.CITIES_TAGS_READ = exports.CITIES_ASSIGN = exports.CITIES_RENAME = exports.CITIES_READ = exports.STATIONS_ALL = exports.STATIONS_TAGS_WRITE = exports.STATIONS_TAGS_READ = exports.STATIONS_MAKEOVER = exports.STATIONS_ASSIGN = exports.STATIONS_RENAME = exports.STATIONS_READ = exports.VEHICLES_ALL = exports.VEHICLES_TAGS_WRITE = exports.VEHICLES_TAGS_READ = exports.VEHICLES_MAKEOVER = exports.VEHICLES_ASSIGN = exports.VEHICLES_RENAME = exports.VEHICLES_READ = exports.SHIPS_ALL = exports.SHIPS_TAGS_WRITE = exports.SHIPS_TAGS_READ = exports.SHIPS_MAKEOVER = exports.SHIPS_ASSIGN = exports.SHIPS_RENAME = exports.SHIPS_READ = exports.MESSAGES_ALL = exports.MESSAGES_DELETE = exports.MESSAGES_SEND = exports.MESSAGES_READ = exports.CHARACTER_ALL = exports.CHARACTER_CREDITS_WRITE = exports.CHARACTER_CREDITS_READ = exports.CHARACTER_CREDITS = exports.CHARACTER_EVENTS = exports.CHARACTER_LOCATION = exports.CHARACTER_FORCE = exports.CHARACTER_PRIVILEGES = exports.CHARACTER_SKILLS = exports.CHARACTER_STATS = exports.CHARACTER_READ = exports.CHARACTER_AUTH = void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/auth/permissions.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/auth/permissions.ts"],"names":[],"mappings":"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"}
|