swcombine-sdk 2.2.4 → 3.0.0-beta.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/README.md +41 -10
- package/dist/cjs/http/HttpClient.js +6 -9
- package/dist/cjs/http/HttpClient.js.map +1 -1
- package/dist/cjs/index.js +4 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/pagination/Page.js +52 -0
- package/dist/cjs/pagination/Page.js.map +1 -0
- package/dist/cjs/resources/BaseResource.js +29 -0
- package/dist/cjs/resources/BaseResource.js.map +1 -1
- package/dist/cjs/resources/CharacterResource.js +41 -21
- package/dist/cjs/resources/CharacterResource.js.map +1 -1
- package/dist/cjs/resources/DatacardResource.js +21 -7
- package/dist/cjs/resources/DatacardResource.js.map +1 -1
- package/dist/cjs/resources/EventsResource.js +35 -22
- package/dist/cjs/resources/EventsResource.js.map +1 -1
- package/dist/cjs/resources/FactionResource.js +101 -75
- package/dist/cjs/resources/FactionResource.js.map +1 -1
- package/dist/cjs/resources/GalaxyResource.js +86 -53
- package/dist/cjs/resources/GalaxyResource.js.map +1 -1
- package/dist/cjs/resources/InventoryResource.js +30 -28
- package/dist/cjs/resources/InventoryResource.js.map +1 -1
- package/dist/cjs/resources/MarketResource.js +16 -6
- package/dist/cjs/resources/MarketResource.js.map +1 -1
- package/dist/cjs/resources/NewsResource.js +70 -92
- package/dist/cjs/resources/NewsResource.js.map +1 -1
- package/dist/cjs/resources/TypesResource.js +41 -67
- package/dist/cjs/resources/TypesResource.js.map +1 -1
- package/dist/esm/http/HttpClient.js +6 -9
- package/dist/esm/http/HttpClient.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/pagination/Page.js +48 -0
- package/dist/esm/pagination/Page.js.map +1 -0
- package/dist/esm/resources/BaseResource.js +29 -0
- package/dist/esm/resources/BaseResource.js.map +1 -1
- package/dist/esm/resources/CharacterResource.js +41 -21
- package/dist/esm/resources/CharacterResource.js.map +1 -1
- package/dist/esm/resources/DatacardResource.js +21 -7
- package/dist/esm/resources/DatacardResource.js.map +1 -1
- package/dist/esm/resources/EventsResource.js +35 -22
- package/dist/esm/resources/EventsResource.js.map +1 -1
- package/dist/esm/resources/FactionResource.js +101 -75
- package/dist/esm/resources/FactionResource.js.map +1 -1
- package/dist/esm/resources/GalaxyResource.js +86 -53
- package/dist/esm/resources/GalaxyResource.js.map +1 -1
- package/dist/esm/resources/InventoryResource.js +30 -28
- package/dist/esm/resources/InventoryResource.js.map +1 -1
- package/dist/esm/resources/MarketResource.js +16 -6
- package/dist/esm/resources/MarketResource.js.map +1 -1
- package/dist/esm/resources/NewsResource.js +70 -92
- package/dist/esm/resources/NewsResource.js.map +1 -1
- package/dist/esm/resources/TypesResource.js +41 -67
- package/dist/esm/resources/TypesResource.js.map +1 -1
- package/dist/types/http/HttpClient.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/pagination/Page.d.ts +35 -0
- package/dist/types/pagination/Page.d.ts.map +1 -0
- package/dist/types/resources/BaseResource.d.ts +17 -0
- package/dist/types/resources/BaseResource.d.ts.map +1 -1
- package/dist/types/resources/CharacterResource.d.ts +17 -6
- package/dist/types/resources/CharacterResource.d.ts.map +1 -1
- package/dist/types/resources/DatacardResource.d.ts +3 -1
- package/dist/types/resources/DatacardResource.d.ts.map +1 -1
- package/dist/types/resources/EventsResource.d.ts +4 -1
- package/dist/types/resources/EventsResource.d.ts.map +1 -1
- package/dist/types/resources/FactionResource.d.ts +29 -25
- package/dist/types/resources/FactionResource.d.ts.map +1 -1
- package/dist/types/resources/GalaxyResource.d.ts +12 -26
- package/dist/types/resources/GalaxyResource.d.ts.map +1 -1
- package/dist/types/resources/InventoryResource.d.ts +2 -1
- package/dist/types/resources/InventoryResource.d.ts.map +1 -1
- package/dist/types/resources/MarketResource.d.ts +3 -1
- package/dist/types/resources/MarketResource.d.ts.map +1 -1
- package/dist/types/resources/NewsResource.d.ts +16 -15
- package/dist/types/resources/NewsResource.d.ts.map +1 -1
- package/dist/types/resources/TypesResource.d.ts +9 -32
- package/dist/types/resources/TypesResource.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +14 -90
- package/dist/types/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
## Features
|
|
21
21
|
|
|
22
22
|
- **Full API Coverage** - All 60+ endpoints across 11 resource categories
|
|
23
|
+
- **`Page<T>` Pagination** - Every list endpoint returns `Page<T>` with `hasMore`, `getNextPage()`, and `for await...of` auto-pagination
|
|
23
24
|
- **OAuth 2.0 Built-in** - Complete OAuth flow with automatic token refresh
|
|
24
25
|
- **TypeScript First** - Full type definitions with IntelliSense support
|
|
25
26
|
- **Type-Safe Scopes** - 170+ OAuth scope constants with autocomplete
|
|
@@ -88,14 +89,16 @@ const character = await authenticatedClient.character.get({
|
|
|
88
89
|
uid: '1:12345',
|
|
89
90
|
});
|
|
90
91
|
|
|
91
|
-
// Get character messages
|
|
92
|
+
// Get character messages — list() returns Page<T>
|
|
92
93
|
const messages = await authenticatedClient.character.messages.list({
|
|
93
94
|
uid: '1:12345',
|
|
94
95
|
mode: 'received',
|
|
95
96
|
});
|
|
96
97
|
|
|
97
|
-
//
|
|
98
|
-
|
|
98
|
+
console.log(messages.total); // total messages across all pages
|
|
99
|
+
console.log(messages.data.length); // items on this page
|
|
100
|
+
|
|
101
|
+
const firstMessageId = messages.data[0]?.attributes.uid;
|
|
99
102
|
if (firstMessageId) {
|
|
100
103
|
const fullMessage = await authenticatedClient.character.messages.get({
|
|
101
104
|
uid: '1:12345',
|
|
@@ -118,6 +121,35 @@ const faction = await authenticatedClient.faction.get({
|
|
|
118
121
|
});
|
|
119
122
|
```
|
|
120
123
|
|
|
124
|
+
### 4. Pagination
|
|
125
|
+
|
|
126
|
+
All `list()` methods return a `Page<T>` with built-in pagination support:
|
|
127
|
+
|
|
128
|
+
```typescript
|
|
129
|
+
import { Page } from 'swcombine-sdk';
|
|
130
|
+
|
|
131
|
+
// Access page data and metadata
|
|
132
|
+
const ships = await client.inventory.entities.list({
|
|
133
|
+
entityType: 'ships',
|
|
134
|
+
uid: '1:12345',
|
|
135
|
+
assignType: 'owner',
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
ships.data; // Ship[] — items on this page
|
|
139
|
+
ships.total; // total ships across all pages
|
|
140
|
+
ships.hasMore; // boolean — are there more pages?
|
|
141
|
+
|
|
142
|
+
// Fetch the next page (preserves your filters)
|
|
143
|
+
if (ships.hasMore) {
|
|
144
|
+
const nextPage = await ships.getNextPage();
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// Auto-paginate through everything with for-await
|
|
148
|
+
for await (const ship of await client.inventory.entities.list({...})) {
|
|
149
|
+
console.log(ship.name); // yields every ship across all pages
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
121
153
|
## OAuth Authentication
|
|
122
154
|
|
|
123
155
|
### Quick OAuth Setup
|
|
@@ -272,21 +304,19 @@ try {
|
|
|
272
304
|
Full TypeScript support with intelligent type inference:
|
|
273
305
|
|
|
274
306
|
```typescript
|
|
275
|
-
import { Message, MessageListItem } from 'swcombine-sdk';
|
|
307
|
+
import { Page, Message, MessageListItem } from 'swcombine-sdk';
|
|
276
308
|
|
|
277
309
|
// Types are automatically inferred
|
|
278
310
|
const character = await client.character.get({ uid: '1:12345' });
|
|
279
311
|
// character: Character
|
|
280
312
|
|
|
281
|
-
//
|
|
282
|
-
const
|
|
313
|
+
// list() returns Page<T> with full type safety
|
|
314
|
+
const messages: Page<MessageListItem> = await client.character.messages.list({
|
|
283
315
|
uid: '1:12345',
|
|
284
|
-
mode: 'received', //
|
|
285
|
-
// mode: 'invalid', // TypeScript error
|
|
316
|
+
mode: 'received', // TypeScript knows valid values: 'sent' | 'received'
|
|
286
317
|
});
|
|
287
318
|
|
|
288
|
-
const
|
|
289
|
-
const messageId = messageListItem?.attributes.uid;
|
|
319
|
+
const messageId = messages.data[0]?.attributes.uid;
|
|
290
320
|
|
|
291
321
|
if (messageId) {
|
|
292
322
|
const messageDetail: Message = await client.character.messages.get({
|
|
@@ -386,6 +416,7 @@ npm run test:integration
|
|
|
386
416
|
## Documentation
|
|
387
417
|
|
|
388
418
|
- **[API Reference](https://jonmarkgo.github.io/swcombine-sdk-nodejs/)** - Full API reference with all methods, parameters, and examples
|
|
419
|
+
- **[v2 → v3 Migration Guide](docs/MIGRATION-v3.md)** - Breaking changes and upgrade instructions
|
|
389
420
|
- **[Getting Started Guide](docs/GETTING_STARTED.md)** - Detailed setup and usage
|
|
390
421
|
- **[Authentication Guide](docs/AUTHENTICATION.md)** - OAuth 2.0 setup and token management
|
|
391
422
|
- **[OAuth Scopes Reference](docs/SCOPES.md)** - Complete scope documentation
|
|
@@ -43,16 +43,13 @@ class HttpClient {
|
|
|
43
43
|
try {
|
|
44
44
|
const token = await this.tokenManager.getAccessToken();
|
|
45
45
|
if (token) {
|
|
46
|
-
//
|
|
47
|
-
//
|
|
48
|
-
//
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
// and project documentation (see CLAUDE.md). Both methods are valid per official docs.
|
|
52
|
-
config.params = config.params || {};
|
|
53
|
-
config.params.access_token = token;
|
|
46
|
+
// Use Authorization header to keep tokens out of URLs, logs, and Referer headers.
|
|
47
|
+
// The SW Combine API supports both "Authorization: OAuth TOKEN" and query params,
|
|
48
|
+
// but headers are the more secure approach.
|
|
49
|
+
config.headers = config.headers || {};
|
|
50
|
+
config.headers['Authorization'] = `OAuth ${token}`;
|
|
54
51
|
if (this.debug) {
|
|
55
|
-
console.log(`[SWC SDK] Added auth token as
|
|
52
|
+
console.log(`[SWC SDK] Added auth token as Authorization header: ${token.substring(0, 8)}...`);
|
|
56
53
|
}
|
|
57
54
|
}
|
|
58
55
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpClient.js","sourceRoot":"","sources":["../../../src/http/HttpClient.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;AAEH,kDAKe;AACf,2CAAuC;AAcvC;;GAEG;AACH,MAAa,UAAU;IASrB,YAAY,OAA0B,EAAE,YAA2B;QAF3D,uBAAkB,GAAyB,IAAI,CAAC;QAGtD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;QACpC,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QAEnD,wBAAwB;QACxB,IAAI,CAAC,KAAK,GAAG,eAAK,CAAC,MAAM,CAAC;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,oCAAoC;YAChE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;YACjC,OAAO,EAAE;gBACP,QAAQ,EAAE,kBAAkB;gBAC5B,cAAc,EAAE,mCAAmC;aACpD;SACF,CAAC,CAAC;QAEH,sBAAsB;QACtB,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACK,uBAAuB;QAC7B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CACjC,KAAK,EAAE,MAAkC,EAAE,EAAE;YAC3C,gCAAgC;YAChC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;oBACvD,IAAI,KAAK,EAAE,CAAC;wBACV,
|
|
1
|
+
{"version":3,"file":"HttpClient.js","sourceRoot":"","sources":["../../../src/http/HttpClient.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -18,7 +18,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
18
18
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
19
19
|
};
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.getMinimalScopes = exports.getReadOnlyScopes = exports.getAllFactionInventoryScopes = exports.getAllFactionScopes = exports.getAllPersonalInventoryScopes = exports.getAllMessageScopes = exports.getAllCharacterScopes = exports.getAllScopes = exports.FactionInventoryScopes = exports.FactionScopes = exports.PersonalInventoryScopes = exports.MessageScopes = exports.CharacterScopes = exports.Scopes = exports.Timestamp = exports.SWCError = exports.SWCombine = void 0;
|
|
21
|
+
exports.getMinimalScopes = exports.getReadOnlyScopes = exports.getAllFactionInventoryScopes = exports.getAllFactionScopes = exports.getAllPersonalInventoryScopes = exports.getAllMessageScopes = exports.getAllCharacterScopes = exports.getAllScopes = exports.FactionInventoryScopes = exports.FactionScopes = exports.PersonalInventoryScopes = exports.MessageScopes = exports.CharacterScopes = exports.Scopes = exports.Page = exports.Timestamp = exports.SWCError = exports.SWCombine = void 0;
|
|
22
22
|
// Main client
|
|
23
23
|
var SWCombine_js_1 = require("./SWCombine.js");
|
|
24
24
|
Object.defineProperty(exports, "SWCombine", { enumerable: true, get: function () { return SWCombine_js_1.SWCombine; } });
|
|
@@ -28,6 +28,9 @@ Object.defineProperty(exports, "SWCError", { enumerable: true, get: function ()
|
|
|
28
28
|
// Utilities
|
|
29
29
|
var Timestamp_js_1 = require("./Timestamp.js");
|
|
30
30
|
Object.defineProperty(exports, "Timestamp", { enumerable: true, get: function () { return Timestamp_js_1.Timestamp; } });
|
|
31
|
+
// Pagination
|
|
32
|
+
var Page_js_1 = require("./pagination/Page.js");
|
|
33
|
+
Object.defineProperty(exports, "Page", { enumerable: true, get: function () { return Page_js_1.Page; } });
|
|
31
34
|
// Types
|
|
32
35
|
__exportStar(require("./types/index.js"), exports);
|
|
33
36
|
// OAuth scopes (type-safe, lowercase values as required by the API)
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,cAAc;AACd,+CAA2C;AAAlC,yGAAA,SAAS,OAAA;AAElB,iBAAiB;AACjB,8CAA4C;AAAnC,qGAAA,QAAQ,OAAA;AAEjB,YAAY;AACZ,+CAA2C;AAAlC,yGAAA,SAAS,OAAA;AAElB,QAAQ;AACR,mDAAiC;AAEjC,oEAAoE;AACpE,8CAe0B;AAdxB,mGAAA,MAAM,OAAA;AACN,4GAAA,eAAe,OAAA;AACf,0GAAA,aAAa,OAAA;AACb,oHAAA,uBAAuB,OAAA;AACvB,0GAAA,aAAa,OAAA;AACb,mHAAA,sBAAsB,OAAA;AACtB,yGAAA,YAAY,OAAA;AACZ,kHAAA,qBAAqB,OAAA;AACrB,gHAAA,mBAAmB,OAAA;AACnB,0HAAA,6BAA6B,OAAA;AAC7B,gHAAA,mBAAmB,OAAA;AACnB,yHAAA,4BAA4B,OAAA;AAC5B,8GAAA,iBAAiB,OAAA;AACjB,6GAAA,gBAAgB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,cAAc;AACd,+CAA2C;AAAlC,yGAAA,SAAS,OAAA;AAElB,iBAAiB;AACjB,8CAA4C;AAAnC,qGAAA,QAAQ,OAAA;AAEjB,YAAY;AACZ,+CAA2C;AAAlC,yGAAA,SAAS,OAAA;AAElB,aAAa;AACb,gDAA4C;AAAnC,+FAAA,IAAI,OAAA;AAEb,QAAQ;AACR,mDAAiC;AAEjC,oEAAoE;AACpE,8CAe0B;AAdxB,mGAAA,MAAM,OAAA;AACN,4GAAA,eAAe,OAAA;AACf,0GAAA,aAAa,OAAA;AACb,oHAAA,uBAAuB,OAAA;AACvB,0GAAA,aAAa,OAAA;AACb,mHAAA,sBAAsB,OAAA;AACtB,yGAAA,YAAY,OAAA;AACZ,kHAAA,qBAAqB,OAAA;AACrB,gHAAA,mBAAmB,OAAA;AACnB,0HAAA,6BAA6B,OAAA;AAC7B,gHAAA,mBAAmB,OAAA;AACnB,yHAAA,4BAA4B,OAAA;AAC5B,8GAAA,iBAAiB,OAAA;AACjB,6GAAA,gBAAgB,OAAA"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Generic page wrapper for paginated API responses.
|
|
4
|
+
*
|
|
5
|
+
* Implements AsyncIterable so consumers can use `for await...of` to
|
|
6
|
+
* transparently iterate through every item across all pages.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.Page = void 0;
|
|
10
|
+
class Page {
|
|
11
|
+
constructor(options) {
|
|
12
|
+
this.data = options.data;
|
|
13
|
+
this.total = options.total;
|
|
14
|
+
this.start = options.start;
|
|
15
|
+
this.count = options.count;
|
|
16
|
+
this.hasMore = options.hasMore;
|
|
17
|
+
this._fetcher = options.fetcher;
|
|
18
|
+
this._pageDelay = options.pageDelay ?? 0;
|
|
19
|
+
}
|
|
20
|
+
async getNextPage() {
|
|
21
|
+
if (!this.hasMore)
|
|
22
|
+
throw new Error('No more pages');
|
|
23
|
+
if (this._pageDelay > 0) {
|
|
24
|
+
await new Promise((resolve) => setTimeout(resolve, this._pageDelay));
|
|
25
|
+
}
|
|
26
|
+
return this._fetcher(this.start + this.count);
|
|
27
|
+
}
|
|
28
|
+
async *[Symbol.asyncIterator]() {
|
|
29
|
+
let page = this;
|
|
30
|
+
while (true) {
|
|
31
|
+
for (const item of page.data) {
|
|
32
|
+
yield item;
|
|
33
|
+
}
|
|
34
|
+
// Stop if no more pages, or if this page was empty (prevents infinite loop
|
|
35
|
+
// if the API returns count=0 with total > 0 due to a server-side issue)
|
|
36
|
+
if (!page.hasMore || page.data.length === 0)
|
|
37
|
+
break;
|
|
38
|
+
page = await page.getNextPage();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
toJSON() {
|
|
42
|
+
return {
|
|
43
|
+
data: this.data,
|
|
44
|
+
total: this.total,
|
|
45
|
+
start: this.start,
|
|
46
|
+
count: this.count,
|
|
47
|
+
hasMore: this.hasMore,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.Page = Page;
|
|
52
|
+
//# sourceMappingURL=Page.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Page.js","sourceRoot":"","sources":["../../../src/pagination/Page.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,MAAa,IAAI;IAUf,YAAY,OASX;QACC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QAC3B,IAAI,IAAI,GAAY,IAAI,CAAC;QACzB,OAAO,IAAI,EAAE,CAAC;YACZ,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC7B,MAAM,IAAI,CAAC;YACb,CAAC;YACD,2EAA2E;YAC3E,wEAAwE;YACxE,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM;YACnD,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IAED,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;CACF;AA3DD,oBA2DC"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.BaseResource = void 0;
|
|
7
|
+
const Page_js_1 = require("../pagination/Page.js");
|
|
7
8
|
/**
|
|
8
9
|
* Base resource class that all API resources extend
|
|
9
10
|
*/
|
|
@@ -28,6 +29,34 @@ class BaseResource {
|
|
|
28
29
|
throw new Error(`Unsupported HTTP method: ${method}`);
|
|
29
30
|
}
|
|
30
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Create a Page<T> from a list response and its attributes metadata.
|
|
34
|
+
*
|
|
35
|
+
* @param options.data - The array of items for this page
|
|
36
|
+
* @param options.attributes - The `attributes` object from the API response (contains total, start, count)
|
|
37
|
+
* @param options.defaultStart - The default start index (1 for most endpoints, 0 for Events)
|
|
38
|
+
* @param options.fetcher - A function that fetches the next page given a start index
|
|
39
|
+
*/
|
|
40
|
+
createPage(options) {
|
|
41
|
+
const attrs = options.attributes ?? {};
|
|
42
|
+
const total = attrs.total != null ? Number(attrs.total) : 0;
|
|
43
|
+
const start = attrs.start != null ? Number(attrs.start) : options.defaultStart;
|
|
44
|
+
const count = attrs.count != null ? Number(attrs.count) : options.data.length;
|
|
45
|
+
// Items consumed so far = (start - startOffset) + count
|
|
46
|
+
// For 1-based: (1 - 1) + 50 = 50 consumed out of total
|
|
47
|
+
// For 0-based: (0 - 0) + 50 = 50 consumed out of total
|
|
48
|
+
const consumed = (start - options.defaultStart) + count;
|
|
49
|
+
const hasMore = consumed < total;
|
|
50
|
+
return new Page_js_1.Page({
|
|
51
|
+
data: options.data,
|
|
52
|
+
total,
|
|
53
|
+
start,
|
|
54
|
+
count,
|
|
55
|
+
hasMore,
|
|
56
|
+
fetcher: options.fetcher,
|
|
57
|
+
pageDelay: options.pageDelay,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
31
60
|
}
|
|
32
61
|
exports.BaseResource = BaseResource;
|
|
33
62
|
//# sourceMappingURL=BaseResource.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseResource.js","sourceRoot":"","sources":["../../../src/resources/BaseResource.ts"],"names":[],"mappings":";AAAA;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"BaseResource.js","sourceRoot":"","sources":["../../../src/resources/BaseResource.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGH,mDAA6C;AAE7C;;GAEG;AACH,MAAsB,YAAY;IAGhC,YAAY,IAAgB;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,OAAO,CAAI,MAAc,EAAE,IAAY,EAAE,IAAc;QACrE,QAAQ,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;YAC7B,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAI,IAAI,CAAC,CAAC;YAChC,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAI,IAAI,EAAE,IAAI,CAAC,CAAC;YACvC,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAI,IAAI,EAAE,IAAI,CAAC,CAAC;YACtC,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAI,IAAI,CAAC,CAAC;YACnC;gBACE,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACO,UAAU,CAAI,OAOvB;QACC,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;QAC/E,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAE9E,wDAAwD;QACxD,uDAAuD;QACvD,uDAAuD;QACvD,MAAM,QAAQ,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;QACxD,MAAM,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;QAEjC,OAAO,IAAI,cAAI,CAAC;YACd,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK;YACL,KAAK;YACL,KAAK;YACL,OAAO;YACP,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC;IACL,CAAC;CACF;AA9DD,oCA8DC"}
|
|
@@ -50,30 +50,40 @@ class CharacterMessagesResource extends BaseResource_js_1.BaseResource {
|
|
|
50
50
|
* @param options.mode - 'sent' or 'received'. If omitted, returns both sent and received messages.
|
|
51
51
|
* @param options.start_index - Starting position (1-based). Default: 1
|
|
52
52
|
* @param options.item_count - Number of items to retrieve. Default: 50, Max: 50
|
|
53
|
-
* @returns
|
|
53
|
+
* @returns Page of message metadata items (`Page<MessageListItem>`)
|
|
54
54
|
* @example
|
|
55
55
|
* const allMessages = await client.character.messages.list({ uid: '1:12345' });
|
|
56
56
|
* const received = await client.character.messages.list({ uid: '1:12345', mode: 'received' });
|
|
57
57
|
* const moreMessages = await client.character.messages.list({ uid: '1:12345', mode: 'received', start_index: 51, item_count: 50 });
|
|
58
58
|
*
|
|
59
|
-
* const firstMessageId = received[0]?.attributes.uid;
|
|
59
|
+
* const firstMessageId = received.data[0]?.attributes.uid;
|
|
60
60
|
* if (firstMessageId) {
|
|
61
61
|
* const detail = await client.character.messages.get({ uid: '1:12345', messageId: firstMessageId });
|
|
62
62
|
* console.log(detail.communication);
|
|
63
63
|
* }
|
|
64
|
+
*
|
|
65
|
+
* // Iterate through all pages automatically
|
|
66
|
+
* for await (const msg of allMessages) {
|
|
67
|
+
* console.log(msg.attributes.uid);
|
|
68
|
+
* }
|
|
64
69
|
*/
|
|
65
70
|
async list(options) {
|
|
66
|
-
const params = {
|
|
67
|
-
start_index: options.start_index || 1,
|
|
68
|
-
item_count: options.item_count || 50,
|
|
69
|
-
};
|
|
70
71
|
// Build path - mode is optional, omitting it returns both sent and received
|
|
71
72
|
const path = options.mode
|
|
72
73
|
? `/character/${options.uid}/messages/${options.mode}`
|
|
73
74
|
: `/character/${options.uid}/messages`;
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
const makeRequest = async (startIndex) => {
|
|
76
|
+
const params = {
|
|
77
|
+
start_index: startIndex,
|
|
78
|
+
item_count: options.item_count ?? 50,
|
|
79
|
+
};
|
|
80
|
+
const response = await this.http.get(path, { params });
|
|
81
|
+
// API returns { attributes: {...}, message: [...] }, extract array and attributes
|
|
82
|
+
const data = response.message ?? [];
|
|
83
|
+
const attrs = response.attributes ?? {};
|
|
84
|
+
return this.createPage({ data, attributes: attrs, defaultStart: 1, fetcher: makeRequest, pageDelay: options.pageDelay });
|
|
85
|
+
};
|
|
86
|
+
return makeRequest(options.start_index ?? 1);
|
|
77
87
|
}
|
|
78
88
|
/**
|
|
79
89
|
* Get a specific message
|
|
@@ -81,11 +91,11 @@ class CharacterMessagesResource extends BaseResource_js_1.BaseResource {
|
|
|
81
91
|
* @requires_scope MESSAGES_READ
|
|
82
92
|
* @param options - Character UID and message UID
|
|
83
93
|
* @param options.uid - Character UID
|
|
84
|
-
* @param options.messageId - Message UID (for example from `list()[i].attributes.uid`)
|
|
94
|
+
* @param options.messageId - Message UID (for example from `list().data[i].attributes.uid`)
|
|
85
95
|
* @returns Full message details including `communication`
|
|
86
96
|
* @example
|
|
87
97
|
* const messages = await client.character.messages.list({ uid: '1:12345', mode: 'received' });
|
|
88
|
-
* const messageId = messages[0]?.attributes.uid;
|
|
98
|
+
* const messageId = messages.data[0]?.attributes.uid;
|
|
89
99
|
*
|
|
90
100
|
* if (messageId) {
|
|
91
101
|
* const message = await client.character.messages.get({ uid: '1:12345', messageId });
|
|
@@ -282,19 +292,29 @@ class CharacterCreditlogResource extends BaseResource_js_1.BaseResource {
|
|
|
282
292
|
* const oldestLogs = await client.character.creditlog.list({ uid: '1:12345', start_id: 1 });
|
|
283
293
|
* // Fetch up to 1000 credit log entries at once
|
|
284
294
|
* const manyLogs = await client.character.creditlog.list({ uid: '1:12345', item_count: 1000 });
|
|
295
|
+
*
|
|
296
|
+
* // Iterate through all pages automatically
|
|
297
|
+
* for await (const entry of creditlog) {
|
|
298
|
+
* console.log(entry);
|
|
299
|
+
* }
|
|
285
300
|
*/
|
|
286
301
|
async list(options) {
|
|
287
|
-
const
|
|
288
|
-
|
|
289
|
-
|
|
302
|
+
const makeRequest = async (startIndex) => {
|
|
303
|
+
const params = {
|
|
304
|
+
start_index: startIndex,
|
|
305
|
+
item_count: options.item_count ?? 50,
|
|
306
|
+
};
|
|
307
|
+
if (options.start_id !== undefined) {
|
|
308
|
+
params.start_id = options.start_id;
|
|
309
|
+
}
|
|
310
|
+
const response = await this.http.get(`/character/${options.uid}/creditlog`, { params });
|
|
311
|
+
// API returns { swcapi: { transactions: { attributes: {...}, transaction: [...] } } }
|
|
312
|
+
// HttpClient unwraps to { attributes: {...}, transaction: [...] }
|
|
313
|
+
const data = response.transaction ?? [];
|
|
314
|
+
const attrs = response.attributes ?? {};
|
|
315
|
+
return this.createPage({ data, attributes: attrs, defaultStart: 1, fetcher: makeRequest, pageDelay: options.pageDelay });
|
|
290
316
|
};
|
|
291
|
-
|
|
292
|
-
params.start_id = options.start_id;
|
|
293
|
-
}
|
|
294
|
-
const response = await this.http.get(`/character/${options.uid}/creditlog`, { params });
|
|
295
|
-
// API returns { swcapi: { transactions: { attributes: {...}, transaction: [...] } } }
|
|
296
|
-
// HttpClient unwraps to { attributes: {...}, transaction: [...] }
|
|
297
|
-
return response.transaction || [];
|
|
317
|
+
return makeRequest(options.start_index ?? 1);
|
|
298
318
|
}
|
|
299
319
|
}
|
|
300
320
|
exports.CharacterCreditlogResource = CharacterCreditlogResource;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CharacterResource.js","sourceRoot":"","sources":["../../../src/resources/CharacterResource.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGH,iDAA6C;AAC7C,uDAAiD;
|
|
1
|
+
{"version":3,"file":"CharacterResource.js","sourceRoot":"","sources":["../../../src/resources/CharacterResource.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,14 +15,28 @@ class DatacardResource extends BaseResource_js_1.BaseResource {
|
|
|
15
15
|
* List datacards owned by faction
|
|
16
16
|
*/
|
|
17
17
|
async list(options) {
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
const makeRequest = async (startIndex) => {
|
|
19
|
+
const response = await this.http.get(`/datacards/${options.factionId}`);
|
|
20
|
+
// Extract array — find the non-attributes array key
|
|
21
|
+
let data = [];
|
|
22
|
+
let attrs = {};
|
|
23
|
+
for (const key of Object.keys(response)) {
|
|
24
|
+
if (key === 'attributes') {
|
|
25
|
+
attrs = response[key];
|
|
26
|
+
}
|
|
27
|
+
else if (Array.isArray(response[key])) {
|
|
28
|
+
data = response[key];
|
|
29
|
+
}
|
|
23
30
|
}
|
|
24
|
-
|
|
25
|
-
|
|
31
|
+
return this.createPage({
|
|
32
|
+
data,
|
|
33
|
+
attributes: attrs,
|
|
34
|
+
defaultStart: 1,
|
|
35
|
+
fetcher: makeRequest,
|
|
36
|
+
pageDelay: options.pageDelay,
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
return makeRequest(1);
|
|
26
40
|
}
|
|
27
41
|
/**
|
|
28
42
|
* Get specific datacard
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatacardResource.js","sourceRoot":"","sources":["../../../src/resources/DatacardResource.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,uDAAiD;
|
|
1
|
+
{"version":3,"file":"DatacardResource.js","sourceRoot":"","sources":["../../../src/resources/DatacardResource.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,uDAAiD;AAUjD;;;;GAIG;AACH,MAAa,gBAAiB,SAAQ,8BAAY;IAChD;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,OAAkD;QAC3D,MAAM,WAAW,GAAG,KAAK,EAAE,UAAkB,EAA2B,EAAE;YACxE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,cAAc,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YAEjG,oDAAoD;YACpD,IAAI,IAAI,GAAe,EAAE,CAAC;YAC1B,IAAI,KAAK,GAA4B,EAAE,CAAC;YACxC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxC,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;oBACzB,KAAK,GAAG,QAAQ,CAAC,GAAG,CAA4B,CAAC;gBACnD,CAAC;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBACxC,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAe,CAAC;gBACrC,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC,UAAU,CAAC;gBACrB,IAAI;gBACJ,UAAU,EAAE,KAAK;gBACjB,YAAY,EAAE,CAAC;gBACf,OAAO,EAAE,WAAW;gBACpB,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,OAAwB;QAChC,OAAO,IAAI,CAAC,OAAO,CAAW,KAAK,EAAE,aAAa,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnE,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CAAC,OAKZ;QACC,MAAM,IAAI,GAAQ;YAChB,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;SACrD,CAAC;QAEF,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACrB,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC3B,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAW,MAAM,EAAE,aAAa,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,OAAuD;QAClE,MAAM,MAAM,GAAG;YACb,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;SACrD,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAO,aAAa,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;CACF;AA3ED,4CA2EC"}
|
|
@@ -32,29 +32,42 @@ class EventsResource extends BaseResource_js_1.BaseResource {
|
|
|
32
32
|
* const manyEvents = await client.events.list({ eventMode: 'personal', item_count: 1000 });
|
|
33
33
|
*/
|
|
34
34
|
async list(options) {
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
// Build path - eventType is optional
|
|
46
|
-
const path = options.eventType
|
|
47
|
-
? `/events/${options.eventMode}/${options.eventType}`
|
|
48
|
-
: `/events/${options.eventMode}`;
|
|
49
|
-
const response = await this.http.get(path, { params });
|
|
50
|
-
// API returns { attributes: {...}, event: [...] }, extract just the array
|
|
51
|
-
// Key name may vary, so find the array
|
|
52
|
-
for (const key of Object.keys(response)) {
|
|
53
|
-
if (key !== 'attributes' && Array.isArray(response[key])) {
|
|
54
|
-
return response[key];
|
|
35
|
+
const makeRequest = async (startIndex) => {
|
|
36
|
+
const params = {
|
|
37
|
+
start_index: startIndex,
|
|
38
|
+
item_count: options.item_count ?? 50,
|
|
39
|
+
};
|
|
40
|
+
if (options.start_time !== undefined) {
|
|
41
|
+
params.start_time = options.start_time;
|
|
42
|
+
}
|
|
43
|
+
if (options.faction_id) {
|
|
44
|
+
params.faction_id = options.faction_id;
|
|
55
45
|
}
|
|
56
|
-
|
|
57
|
-
|
|
46
|
+
// Build path - eventType is optional
|
|
47
|
+
const path = options.eventType
|
|
48
|
+
? `/events/${options.eventMode}/${options.eventType}`
|
|
49
|
+
: `/events/${options.eventMode}`;
|
|
50
|
+
const response = await this.http.get(path, { params });
|
|
51
|
+
// Extract array — find the non-attributes array key
|
|
52
|
+
let data = [];
|
|
53
|
+
let attrs = {};
|
|
54
|
+
for (const key of Object.keys(response)) {
|
|
55
|
+
if (key === 'attributes') {
|
|
56
|
+
attrs = response[key];
|
|
57
|
+
}
|
|
58
|
+
else if (Array.isArray(response[key])) {
|
|
59
|
+
data = response[key];
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return this.createPage({
|
|
63
|
+
data,
|
|
64
|
+
attributes: attrs,
|
|
65
|
+
defaultStart: 0, // 0-based!
|
|
66
|
+
fetcher: makeRequest,
|
|
67
|
+
pageDelay: options.pageDelay,
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
return makeRequest(options.start_index ?? 0); // 0-based!
|
|
58
71
|
}
|
|
59
72
|
/**
|
|
60
73
|
* Get specific event
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventsResource.js","sourceRoot":"","sources":["../../../src/resources/EventsResource.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,uDAAiD;
|
|
1
|
+
{"version":3,"file":"EventsResource.js","sourceRoot":"","sources":["../../../src/resources/EventsResource.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,uDAAiD;AAIjD;;;;GAIG;AACH,MAAa,cAAe,SAAQ,8BAAY;IAC9C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,IAAI,CAAC,OAcV;QACC,MAAM,WAAW,GAAG,KAAK,EAAE,UAAkB,EAAwB,EAAE;YACrE,MAAM,MAAM,GAAgB;gBAC1B,WAAW,EAAE,UAAU;gBACvB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;aACrC,CAAC;YAEF,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBACrC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YACzC,CAAC;YACD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YACzC,CAAC;YAED,qCAAqC;YACrC,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS;gBAC5B,CAAC,CAAC,WAAW,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,EAAE;gBACrD,CAAC,CAAC,WAAW,OAAO,CAAC,SAAS,EAAE,CAAC;YAEnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAEhF,oDAAoD;YACpD,IAAI,IAAI,GAAY,EAAE,CAAC;YACvB,IAAI,KAAK,GAA4B,EAAE,CAAC;YACxC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxC,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;oBACzB,KAAK,GAAG,QAAQ,CAAC,GAAG,CAA4B,CAAC;gBACnD,CAAC;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBACxC,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAY,CAAC;gBAClC,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC,UAAU,CAAC;gBACrB,IAAI;gBACJ,UAAU,EAAE,KAAK;gBACjB,YAAY,EAAE,CAAC,EAAE,WAAW;gBAC5B,OAAO,EAAE,WAAW;gBACpB,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,OAAO,WAAW,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW;IAC3D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,OAAwB;QAChC,OAAO,IAAI,CAAC,OAAO,CAAQ,KAAK,EAAE,UAAU,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7D,CAAC;CACF;AArFD,wCAqFC"}
|