swcombine-sdk 2.2.3 → 3.0.0-beta.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/dist/cjs/auth/scopes.js +328 -79
- package/dist/cjs/auth/scopes.js.map +1 -1
- 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 +48 -0
- package/dist/cjs/pagination/Page.js.map +1 -0
- package/dist/cjs/resources/BaseResource.js +28 -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 +20 -7
- package/dist/cjs/resources/DatacardResource.js.map +1 -1
- package/dist/cjs/resources/EventsResource.js +34 -22
- package/dist/cjs/resources/EventsResource.js.map +1 -1
- package/dist/cjs/resources/FactionResource.js +96 -75
- package/dist/cjs/resources/FactionResource.js.map +1 -1
- package/dist/cjs/resources/GalaxyResource.js +81 -53
- package/dist/cjs/resources/GalaxyResource.js.map +1 -1
- package/dist/cjs/resources/InventoryResource.js +29 -28
- package/dist/cjs/resources/InventoryResource.js.map +1 -1
- package/dist/cjs/resources/MarketResource.js +15 -6
- package/dist/cjs/resources/MarketResource.js.map +1 -1
- package/dist/cjs/resources/NewsResource.js +68 -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/auth/scopes.js +328 -79
- package/dist/esm/auth/scopes.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 +44 -0
- package/dist/esm/pagination/Page.js.map +1 -0
- package/dist/esm/resources/BaseResource.js +28 -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 +20 -7
- package/dist/esm/resources/DatacardResource.js.map +1 -1
- package/dist/esm/resources/EventsResource.js +34 -22
- package/dist/esm/resources/EventsResource.js.map +1 -1
- package/dist/esm/resources/FactionResource.js +96 -75
- package/dist/esm/resources/FactionResource.js.map +1 -1
- package/dist/esm/resources/GalaxyResource.js +81 -53
- package/dist/esm/resources/GalaxyResource.js.map +1 -1
- package/dist/esm/resources/InventoryResource.js +29 -28
- package/dist/esm/resources/InventoryResource.js.map +1 -1
- package/dist/esm/resources/MarketResource.js +15 -6
- package/dist/esm/resources/MarketResource.js.map +1 -1
- package/dist/esm/resources/NewsResource.js +68 -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/auth/scopes.d.ts +654 -81
- package/dist/types/auth/scopes.d.ts.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 +32 -0
- package/dist/types/pagination/Page.d.ts.map +1 -0
- package/dist/types/resources/BaseResource.d.ts +15 -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 +2 -1
- package/dist/types/resources/DatacardResource.d.ts.map +1 -1
- package/dist/types/resources/EventsResource.d.ts +2 -1
- package/dist/types/resources/EventsResource.d.ts.map +1 -1
- package/dist/types/resources/FactionResource.d.ts +24 -25
- package/dist/types/resources/FactionResource.d.ts.map +1 -1
- package/dist/types/resources/GalaxyResource.d.ts +7 -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 +2 -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 +8 -32
- package/dist/types/resources/TypesResource.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +0 -90
- package/dist/types/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/esm/index.js
CHANGED
|
@@ -8,6 +8,8 @@ export { SWCombine } from './SWCombine.js';
|
|
|
8
8
|
export { SWCError } from './http/errors.js';
|
|
9
9
|
// Utilities
|
|
10
10
|
export { Timestamp } from './Timestamp.js';
|
|
11
|
+
// Pagination
|
|
12
|
+
export { Page } from './pagination/Page.js';
|
|
11
13
|
// Types
|
|
12
14
|
export * from './types/index.js';
|
|
13
15
|
// OAuth scopes (type-safe, lowercase values as required by the API)
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc;AACd,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,iBAAiB;AACjB,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,YAAY;AACZ,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,QAAQ;AACR,cAAc,kBAAkB,CAAC;AAEjC,oEAAoE;AACpE,OAAO,EACL,MAAM,EACN,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,6BAA6B,EAC7B,mBAAmB,EACnB,4BAA4B,EAC5B,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc;AACd,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,iBAAiB;AACjB,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,YAAY;AACZ,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,aAAa;AACb,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,QAAQ;AACR,cAAc,kBAAkB,CAAC;AAEjC,oEAAoE;AACpE,OAAO,EACL,MAAM,EACN,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,6BAA6B,EAC7B,mBAAmB,EACnB,4BAA4B,EAC5B,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic page wrapper for paginated API responses.
|
|
3
|
+
*
|
|
4
|
+
* Implements AsyncIterable so consumers can use `for await...of` to
|
|
5
|
+
* transparently iterate through every item across all pages.
|
|
6
|
+
*/
|
|
7
|
+
export class Page {
|
|
8
|
+
constructor(options) {
|
|
9
|
+
this.data = options.data;
|
|
10
|
+
this.total = options.total;
|
|
11
|
+
this.start = options.start;
|
|
12
|
+
this.count = options.count;
|
|
13
|
+
this.hasMore = options.hasMore;
|
|
14
|
+
this._fetcher = options.fetcher;
|
|
15
|
+
}
|
|
16
|
+
async getNextPage() {
|
|
17
|
+
if (!this.hasMore)
|
|
18
|
+
throw new Error('No more pages');
|
|
19
|
+
return this._fetcher(this.start + this.count);
|
|
20
|
+
}
|
|
21
|
+
async *[Symbol.asyncIterator]() {
|
|
22
|
+
let page = this;
|
|
23
|
+
while (true) {
|
|
24
|
+
for (const item of page.data) {
|
|
25
|
+
yield item;
|
|
26
|
+
}
|
|
27
|
+
// Stop if no more pages, or if this page was empty (prevents infinite loop
|
|
28
|
+
// if the API returns count=0 with total > 0 due to a server-side issue)
|
|
29
|
+
if (!page.hasMore || page.data.length === 0)
|
|
30
|
+
break;
|
|
31
|
+
page = await page.getNextPage();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
toJSON() {
|
|
35
|
+
return {
|
|
36
|
+
data: this.data,
|
|
37
|
+
total: this.total,
|
|
38
|
+
start: this.start,
|
|
39
|
+
count: this.count,
|
|
40
|
+
hasMore: this.hasMore,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=Page.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Page.js","sourceRoot":"","sources":["../../../src/pagination/Page.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,OAAO,IAAI;IASf,YAAY,OAOX;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;IAClC,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACpD,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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Base class for all API resources
|
|
3
3
|
*/
|
|
4
|
+
import { Page } from '../pagination/Page.js';
|
|
4
5
|
/**
|
|
5
6
|
* Base resource class that all API resources extend
|
|
6
7
|
*/
|
|
@@ -25,5 +26,32 @@ export class BaseResource {
|
|
|
25
26
|
throw new Error(`Unsupported HTTP method: ${method}`);
|
|
26
27
|
}
|
|
27
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Create a Page<T> from a list response and its attributes metadata.
|
|
31
|
+
*
|
|
32
|
+
* @param options.data - The array of items for this page
|
|
33
|
+
* @param options.attributes - The `attributes` object from the API response (contains total, start, count)
|
|
34
|
+
* @param options.defaultStart - The default start index (1 for most endpoints, 0 for Events)
|
|
35
|
+
* @param options.fetcher - A function that fetches the next page given a start index
|
|
36
|
+
*/
|
|
37
|
+
createPage(options) {
|
|
38
|
+
const attrs = options.attributes ?? {};
|
|
39
|
+
const total = attrs.total != null ? Number(attrs.total) : 0;
|
|
40
|
+
const start = attrs.start != null ? Number(attrs.start) : options.defaultStart;
|
|
41
|
+
const count = attrs.count != null ? Number(attrs.count) : options.data.length;
|
|
42
|
+
// Items consumed so far = (start - startOffset) + count
|
|
43
|
+
// For 1-based: (1 - 1) + 50 = 50 consumed out of total
|
|
44
|
+
// For 0-based: (0 - 0) + 50 = 50 consumed out of total
|
|
45
|
+
const consumed = (start - options.defaultStart) + count;
|
|
46
|
+
const hasMore = consumed < total;
|
|
47
|
+
return new Page({
|
|
48
|
+
data: options.data,
|
|
49
|
+
total,
|
|
50
|
+
start,
|
|
51
|
+
count,
|
|
52
|
+
hasMore,
|
|
53
|
+
fetcher: options.fetcher,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
28
56
|
}
|
|
29
57
|
//# 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,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAE7C;;GAEG;AACH,MAAM,OAAgB,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,OAKvB;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,IAAI,CAAC;YACd,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK;YACL,KAAK;YACL,KAAK;YACL,OAAO;YACP,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -47,30 +47,40 @@ export class CharacterMessagesResource extends BaseResource {
|
|
|
47
47
|
* @param options.mode - 'sent' or 'received'. If omitted, returns both sent and received messages.
|
|
48
48
|
* @param options.start_index - Starting position (1-based). Default: 1
|
|
49
49
|
* @param options.item_count - Number of items to retrieve. Default: 50, Max: 50
|
|
50
|
-
* @returns
|
|
50
|
+
* @returns Page of message metadata items (`Page<MessageListItem>`)
|
|
51
51
|
* @example
|
|
52
52
|
* const allMessages = await client.character.messages.list({ uid: '1:12345' });
|
|
53
53
|
* const received = await client.character.messages.list({ uid: '1:12345', mode: 'received' });
|
|
54
54
|
* const moreMessages = await client.character.messages.list({ uid: '1:12345', mode: 'received', start_index: 51, item_count: 50 });
|
|
55
55
|
*
|
|
56
|
-
* const firstMessageId = received[0]?.attributes.uid;
|
|
56
|
+
* const firstMessageId = received.data[0]?.attributes.uid;
|
|
57
57
|
* if (firstMessageId) {
|
|
58
58
|
* const detail = await client.character.messages.get({ uid: '1:12345', messageId: firstMessageId });
|
|
59
59
|
* console.log(detail.communication);
|
|
60
60
|
* }
|
|
61
|
+
*
|
|
62
|
+
* // Iterate through all pages automatically
|
|
63
|
+
* for await (const msg of allMessages) {
|
|
64
|
+
* console.log(msg.attributes.uid);
|
|
65
|
+
* }
|
|
61
66
|
*/
|
|
62
67
|
async list(options) {
|
|
63
|
-
const params = {
|
|
64
|
-
start_index: options.start_index || 1,
|
|
65
|
-
item_count: options.item_count || 50,
|
|
66
|
-
};
|
|
67
68
|
// Build path - mode is optional, omitting it returns both sent and received
|
|
68
69
|
const path = options.mode
|
|
69
70
|
? `/character/${options.uid}/messages/${options.mode}`
|
|
70
71
|
: `/character/${options.uid}/messages`;
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
const makeRequest = async (startIndex) => {
|
|
73
|
+
const params = {
|
|
74
|
+
start_index: startIndex,
|
|
75
|
+
item_count: options.item_count ?? 50,
|
|
76
|
+
};
|
|
77
|
+
const response = await this.http.get(path, { params });
|
|
78
|
+
// API returns { attributes: {...}, message: [...] }, extract array and attributes
|
|
79
|
+
const data = response.message ?? [];
|
|
80
|
+
const attrs = response.attributes ?? {};
|
|
81
|
+
return this.createPage({ data, attributes: attrs, defaultStart: 1, fetcher: makeRequest });
|
|
82
|
+
};
|
|
83
|
+
return makeRequest(options.start_index ?? 1);
|
|
74
84
|
}
|
|
75
85
|
/**
|
|
76
86
|
* Get a specific message
|
|
@@ -78,11 +88,11 @@ export class CharacterMessagesResource extends BaseResource {
|
|
|
78
88
|
* @requires_scope MESSAGES_READ
|
|
79
89
|
* @param options - Character UID and message UID
|
|
80
90
|
* @param options.uid - Character UID
|
|
81
|
-
* @param options.messageId - Message UID (for example from `list()[i].attributes.uid`)
|
|
91
|
+
* @param options.messageId - Message UID (for example from `list().data[i].attributes.uid`)
|
|
82
92
|
* @returns Full message details including `communication`
|
|
83
93
|
* @example
|
|
84
94
|
* const messages = await client.character.messages.list({ uid: '1:12345', mode: 'received' });
|
|
85
|
-
* const messageId = messages[0]?.attributes.uid;
|
|
95
|
+
* const messageId = messages.data[0]?.attributes.uid;
|
|
86
96
|
*
|
|
87
97
|
* if (messageId) {
|
|
88
98
|
* const message = await client.character.messages.get({ uid: '1:12345', messageId });
|
|
@@ -275,19 +285,29 @@ export class CharacterCreditlogResource extends BaseResource {
|
|
|
275
285
|
* const oldestLogs = await client.character.creditlog.list({ uid: '1:12345', start_id: 1 });
|
|
276
286
|
* // Fetch up to 1000 credit log entries at once
|
|
277
287
|
* const manyLogs = await client.character.creditlog.list({ uid: '1:12345', item_count: 1000 });
|
|
288
|
+
*
|
|
289
|
+
* // Iterate through all pages automatically
|
|
290
|
+
* for await (const entry of creditlog) {
|
|
291
|
+
* console.log(entry);
|
|
292
|
+
* }
|
|
278
293
|
*/
|
|
279
294
|
async list(options) {
|
|
280
|
-
const
|
|
281
|
-
|
|
282
|
-
|
|
295
|
+
const makeRequest = async (startIndex) => {
|
|
296
|
+
const params = {
|
|
297
|
+
start_index: startIndex,
|
|
298
|
+
item_count: options.item_count ?? 50,
|
|
299
|
+
};
|
|
300
|
+
if (options.start_id !== undefined) {
|
|
301
|
+
params.start_id = options.start_id;
|
|
302
|
+
}
|
|
303
|
+
const response = await this.http.get(`/character/${options.uid}/creditlog`, { params });
|
|
304
|
+
// API returns { swcapi: { transactions: { attributes: {...}, transaction: [...] } } }
|
|
305
|
+
// HttpClient unwraps to { attributes: {...}, transaction: [...] }
|
|
306
|
+
const data = response.transaction ?? [];
|
|
307
|
+
const attrs = response.attributes ?? {};
|
|
308
|
+
return this.createPage({ data, attributes: attrs, defaultStart: 1, fetcher: makeRequest });
|
|
283
309
|
};
|
|
284
|
-
|
|
285
|
-
params.start_id = options.start_id;
|
|
286
|
-
}
|
|
287
|
-
const response = await this.http.get(`/character/${options.uid}/creditlog`, { params });
|
|
288
|
-
// API returns { swcapi: { transactions: { attributes: {...}, transaction: [...] } } }
|
|
289
|
-
// HttpClient unwraps to { attributes: {...}, transaction: [...] }
|
|
290
|
-
return response.transaction || [];
|
|
310
|
+
return makeRequest(options.start_index ?? 1);
|
|
291
311
|
}
|
|
292
312
|
}
|
|
293
313
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CharacterResource.js","sourceRoot":"","sources":["../../../src/resources/CharacterResource.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"CharacterResource.js","sourceRoot":"","sources":["../../../src/resources/CharacterResource.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,14 +12,27 @@ export class DatacardResource extends BaseResource {
|
|
|
12
12
|
* List datacards owned by faction
|
|
13
13
|
*/
|
|
14
14
|
async list(options) {
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
const makeRequest = async (startIndex) => {
|
|
16
|
+
const response = await this.http.get(`/datacards/${options.factionId}`);
|
|
17
|
+
// Extract array — find the non-attributes array key
|
|
18
|
+
let data = [];
|
|
19
|
+
let attrs = {};
|
|
20
|
+
for (const key of Object.keys(response)) {
|
|
21
|
+
if (key === 'attributes') {
|
|
22
|
+
attrs = response[key];
|
|
23
|
+
}
|
|
24
|
+
else if (Array.isArray(response[key])) {
|
|
25
|
+
data = response[key];
|
|
26
|
+
}
|
|
20
27
|
}
|
|
21
|
-
|
|
22
|
-
|
|
28
|
+
return this.createPage({
|
|
29
|
+
data,
|
|
30
|
+
attributes: attrs,
|
|
31
|
+
defaultStart: 1,
|
|
32
|
+
fetcher: makeRequest,
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
return makeRequest(1);
|
|
23
36
|
}
|
|
24
37
|
/**
|
|
25
38
|
* Get specific datacard
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatacardResource.js","sourceRoot":"","sources":["../../../src/resources/DatacardResource.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"DatacardResource.js","sourceRoot":"","sources":["../../../src/resources/DatacardResource.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAUjD;;;;GAIG;AACH,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAChD;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,OAA8B;QACvC,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;aACrB,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"}
|
|
@@ -29,29 +29,41 @@ export class EventsResource extends BaseResource {
|
|
|
29
29
|
* const manyEvents = await client.events.list({ eventMode: 'personal', item_count: 1000 });
|
|
30
30
|
*/
|
|
31
31
|
async list(options) {
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
// Build path - eventType is optional
|
|
43
|
-
const path = options.eventType
|
|
44
|
-
? `/events/${options.eventMode}/${options.eventType}`
|
|
45
|
-
: `/events/${options.eventMode}`;
|
|
46
|
-
const response = await this.http.get(path, { params });
|
|
47
|
-
// API returns { attributes: {...}, event: [...] }, extract just the array
|
|
48
|
-
// Key name may vary, so find the array
|
|
49
|
-
for (const key of Object.keys(response)) {
|
|
50
|
-
if (key !== 'attributes' && Array.isArray(response[key])) {
|
|
51
|
-
return response[key];
|
|
32
|
+
const makeRequest = async (startIndex) => {
|
|
33
|
+
const params = {
|
|
34
|
+
start_index: startIndex,
|
|
35
|
+
item_count: options.item_count ?? 50,
|
|
36
|
+
};
|
|
37
|
+
if (options.start_time !== undefined) {
|
|
38
|
+
params.start_time = options.start_time;
|
|
39
|
+
}
|
|
40
|
+
if (options.faction_id) {
|
|
41
|
+
params.faction_id = options.faction_id;
|
|
52
42
|
}
|
|
53
|
-
|
|
54
|
-
|
|
43
|
+
// Build path - eventType is optional
|
|
44
|
+
const path = options.eventType
|
|
45
|
+
? `/events/${options.eventMode}/${options.eventType}`
|
|
46
|
+
: `/events/${options.eventMode}`;
|
|
47
|
+
const response = await this.http.get(path, { params });
|
|
48
|
+
// Extract array — find the non-attributes array key
|
|
49
|
+
let data = [];
|
|
50
|
+
let attrs = {};
|
|
51
|
+
for (const key of Object.keys(response)) {
|
|
52
|
+
if (key === 'attributes') {
|
|
53
|
+
attrs = response[key];
|
|
54
|
+
}
|
|
55
|
+
else if (Array.isArray(response[key])) {
|
|
56
|
+
data = response[key];
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return this.createPage({
|
|
60
|
+
data,
|
|
61
|
+
attributes: attrs,
|
|
62
|
+
defaultStart: 0, // 0-based!
|
|
63
|
+
fetcher: makeRequest,
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
return makeRequest(options.start_index ?? 0); // 0-based!
|
|
55
67
|
}
|
|
56
68
|
/**
|
|
57
69
|
* Get specific event
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventsResource.js","sourceRoot":"","sources":["../../../src/resources/EventsResource.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"EventsResource.js","sourceRoot":"","sources":["../../../src/resources/EventsResource.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIjD;;;;GAIG;AACH,MAAM,OAAO,cAAe,SAAQ,YAAY;IAC9C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,IAAI,CAAC,OAYV;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;aACrB,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"}
|
|
@@ -12,17 +12,28 @@ export class FactionMembersResource extends BaseResource {
|
|
|
12
12
|
* List faction members (paginated)
|
|
13
13
|
* @param options - Faction ID and optional pagination parameters
|
|
14
14
|
* @example
|
|
15
|
-
* const
|
|
16
|
-
*
|
|
15
|
+
* const page = await client.faction.members.list({ factionId: '20:123' });
|
|
16
|
+
* console.log(page.data); // FactionMember[]
|
|
17
|
+
* // Iterate all pages:
|
|
18
|
+
* for await (const member of page) { console.log(member); }
|
|
17
19
|
*/
|
|
18
20
|
async list(options) {
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
const makeRequest = async (startIndex) => {
|
|
22
|
+
const params = {
|
|
23
|
+
start_index: startIndex,
|
|
24
|
+
item_count: options.item_count ?? 50,
|
|
25
|
+
};
|
|
26
|
+
const response = await this.http.get(`/faction/${options.factionId}/members`, { params });
|
|
27
|
+
const data = (response.member ?? []);
|
|
28
|
+
const attrs = (response.attributes ?? {});
|
|
29
|
+
return this.createPage({
|
|
30
|
+
data,
|
|
31
|
+
attributes: attrs,
|
|
32
|
+
defaultStart: 1,
|
|
33
|
+
fetcher: makeRequest,
|
|
34
|
+
});
|
|
22
35
|
};
|
|
23
|
-
|
|
24
|
-
// API returns { attributes: {...}, member: [...] }, extract just the array
|
|
25
|
-
return response.member || [];
|
|
36
|
+
return makeRequest(options.start_index ?? 1);
|
|
26
37
|
}
|
|
27
38
|
/**
|
|
28
39
|
* Update faction member info field
|
|
@@ -49,17 +60,28 @@ export class FactionBudgetsResource extends BaseResource {
|
|
|
49
60
|
* List faction budgets (paginated)
|
|
50
61
|
* @param options - Faction ID and optional pagination parameters
|
|
51
62
|
* @example
|
|
52
|
-
* const
|
|
53
|
-
*
|
|
63
|
+
* const page = await client.faction.budgets.list({ factionId: '20:123' });
|
|
64
|
+
* console.log(page.data); // Budget[]
|
|
65
|
+
* // Iterate all pages:
|
|
66
|
+
* for await (const budget of page) { console.log(budget); }
|
|
54
67
|
*/
|
|
55
68
|
async list(options) {
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
69
|
+
const makeRequest = async (startIndex) => {
|
|
70
|
+
const params = {
|
|
71
|
+
start_index: startIndex,
|
|
72
|
+
item_count: options.item_count ?? 50,
|
|
73
|
+
};
|
|
74
|
+
const response = await this.http.get(`/faction/${options.factionId}/budgets`, { params });
|
|
75
|
+
const data = (response.budget ?? []);
|
|
76
|
+
const attrs = (response.attributes ?? {});
|
|
77
|
+
return this.createPage({
|
|
78
|
+
data,
|
|
79
|
+
attributes: attrs,
|
|
80
|
+
defaultStart: 1,
|
|
81
|
+
fetcher: makeRequest,
|
|
82
|
+
});
|
|
59
83
|
};
|
|
60
|
-
|
|
61
|
-
// API returns { attributes: {...}, budget: [...] }, extract just the array
|
|
62
|
-
return response.budget || [];
|
|
84
|
+
return makeRequest(options.start_index ?? 1);
|
|
63
85
|
}
|
|
64
86
|
/**
|
|
65
87
|
* Get specific budget
|
|
@@ -78,17 +100,28 @@ export class FactionStockholdersResource extends BaseResource {
|
|
|
78
100
|
* List faction stockholders (paginated)
|
|
79
101
|
* @param options - Faction ID and optional pagination parameters
|
|
80
102
|
* @example
|
|
81
|
-
* const
|
|
82
|
-
*
|
|
103
|
+
* const page = await client.faction.stockholders.list({ factionId: '20:123' });
|
|
104
|
+
* console.log(page.data); // Stockholder[]
|
|
105
|
+
* // Iterate all pages:
|
|
106
|
+
* for await (const stockholder of page) { console.log(stockholder); }
|
|
83
107
|
*/
|
|
84
108
|
async list(options) {
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
|
|
109
|
+
const makeRequest = async (startIndex) => {
|
|
110
|
+
const params = {
|
|
111
|
+
start_index: startIndex,
|
|
112
|
+
item_count: options.item_count ?? 50,
|
|
113
|
+
};
|
|
114
|
+
const response = await this.http.get(`/faction/${options.factionId}/stockholders`, { params });
|
|
115
|
+
const data = (response.stockholder ?? []);
|
|
116
|
+
const attrs = (response.attributes ?? {});
|
|
117
|
+
return this.createPage({
|
|
118
|
+
data,
|
|
119
|
+
attributes: attrs,
|
|
120
|
+
defaultStart: 1,
|
|
121
|
+
fetcher: makeRequest,
|
|
122
|
+
});
|
|
88
123
|
};
|
|
89
|
-
|
|
90
|
-
// API returns { attributes: {...}, stockholder: [...] }, extract just the array
|
|
91
|
-
return response.stockholder || [];
|
|
124
|
+
return makeRequest(options.start_index ?? 1);
|
|
92
125
|
}
|
|
93
126
|
}
|
|
94
127
|
/**
|
|
@@ -147,17 +180,27 @@ export class FactionCreditlogResource extends BaseResource {
|
|
|
147
180
|
* const manyLogs = await client.faction.creditlog.list({ factionId: '20:123', item_count: 1000 });
|
|
148
181
|
*/
|
|
149
182
|
async list(options) {
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
|
|
183
|
+
const makeRequest = async (startIndex) => {
|
|
184
|
+
const params = {
|
|
185
|
+
start_index: startIndex,
|
|
186
|
+
item_count: options.item_count ?? 50,
|
|
187
|
+
};
|
|
188
|
+
if (options.start_id !== undefined) {
|
|
189
|
+
params.start_id = options.start_id;
|
|
190
|
+
}
|
|
191
|
+
const response = await this.http.get(`/faction/${options.factionId}/creditlog`, { params });
|
|
192
|
+
// API returns { swcapi: { transactions: { attributes: {...}, transaction: [...] } } }
|
|
193
|
+
// HttpClient unwraps to { attributes: {...}, transaction: [...] }
|
|
194
|
+
const data = (response.transaction ?? []);
|
|
195
|
+
const attrs = (response.attributes ?? {});
|
|
196
|
+
return this.createPage({
|
|
197
|
+
data,
|
|
198
|
+
attributes: attrs,
|
|
199
|
+
defaultStart: 1,
|
|
200
|
+
fetcher: makeRequest,
|
|
201
|
+
});
|
|
153
202
|
};
|
|
154
|
-
|
|
155
|
-
params.start_id = options.start_id;
|
|
156
|
-
}
|
|
157
|
-
const response = await this.http.get(`/faction/${options.factionId}/creditlog`, { params });
|
|
158
|
-
// API returns { swcapi: { transactions: { attributes: {...}, transaction: [...] } } }
|
|
159
|
-
// HttpClient unwraps to { attributes: {...}, transaction: [...] }
|
|
160
|
-
return response.transaction || [];
|
|
203
|
+
return makeRequest(options.start_index ?? 1);
|
|
161
204
|
}
|
|
162
205
|
}
|
|
163
206
|
/**
|
|
@@ -194,52 +237,30 @@ export class FactionResource extends BaseResource {
|
|
|
194
237
|
* @requires_auth No
|
|
195
238
|
* @param options - Optional pagination parameters
|
|
196
239
|
* @example
|
|
197
|
-
* const
|
|
198
|
-
* console.log(
|
|
199
|
-
* console.log(
|
|
240
|
+
* const page = await client.faction.list();
|
|
241
|
+
* console.log(page.total);
|
|
242
|
+
* console.log(page.data[0]?.value);
|
|
200
243
|
*
|
|
201
|
-
*
|
|
244
|
+
* // Iterate all pages:
|
|
245
|
+
* for await (const faction of page) { console.log(faction); }
|
|
202
246
|
*/
|
|
203
247
|
async list(options) {
|
|
204
|
-
const
|
|
205
|
-
|
|
206
|
-
item_count: options?.item_count ?? 50,
|
|
207
|
-
};
|
|
208
|
-
return this.http.get('/factions', { params });
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* List all factions across every page.
|
|
212
|
-
* @requires_auth No
|
|
213
|
-
* @param options - Optional pagination parameters for the page size and starting offset
|
|
214
|
-
* @example
|
|
215
|
-
* const factions = await client.faction.listAll();
|
|
216
|
-
* console.log(factions.length);
|
|
217
|
-
*/
|
|
218
|
-
async listAll(options) {
|
|
219
|
-
const itemCount = options?.item_count ?? 50;
|
|
220
|
-
let startIndex = options?.start_index ?? 1;
|
|
221
|
-
const factions = [];
|
|
222
|
-
while (true) {
|
|
223
|
-
const response = await this.list({
|
|
248
|
+
const makeRequest = async (startIndex) => {
|
|
249
|
+
const params = {
|
|
224
250
|
start_index: startIndex,
|
|
225
|
-
item_count:
|
|
251
|
+
item_count: options?.item_count ?? 50,
|
|
252
|
+
};
|
|
253
|
+
const response = await this.http.get('/factions', { params });
|
|
254
|
+
const data = (response.faction ?? []);
|
|
255
|
+
const attrs = (response.attributes ?? {});
|
|
256
|
+
return this.createPage({
|
|
257
|
+
data,
|
|
258
|
+
attributes: attrs,
|
|
259
|
+
defaultStart: 1,
|
|
260
|
+
fetcher: makeRequest,
|
|
226
261
|
});
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
const pageCount = typeof response.attributes?.count === 'number' && response.attributes.count > 0
|
|
230
|
-
? response.attributes.count
|
|
231
|
-
: pageItems.length;
|
|
232
|
-
const total = response.attributes?.total;
|
|
233
|
-
factions.push(...pageItems);
|
|
234
|
-
if (pageItems.length === 0 || pageItems.length < itemCount) {
|
|
235
|
-
break;
|
|
236
|
-
}
|
|
237
|
-
if (typeof total === 'number' && pageStart + pageCount - 1 >= total) {
|
|
238
|
-
break;
|
|
239
|
-
}
|
|
240
|
-
startIndex = pageStart + pageCount;
|
|
241
|
-
}
|
|
242
|
-
return factions;
|
|
262
|
+
};
|
|
263
|
+
return makeRequest(options?.start_index ?? 1);
|
|
243
264
|
}
|
|
244
265
|
}
|
|
245
266
|
//# sourceMappingURL=FactionResource.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FactionResource.js","sourceRoot":"","sources":["../../../src/resources/FactionResource.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAuCjD;;;;GAIG;AACH,MAAM,OAAO,sBAAuB,SAAQ,YAAY;IACtD
|
|
1
|
+
{"version":3,"file":"FactionResource.js","sourceRoot":"","sources":["../../../src/resources/FactionResource.ts"],"names":[],"mappings":"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"}
|