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/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,48 @@
|
|
|
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
|
+
}
|
|
19
|
+
async getNextPage() {
|
|
20
|
+
if (!this.hasMore)
|
|
21
|
+
throw new Error('No more pages');
|
|
22
|
+
return this._fetcher(this.start + this.count);
|
|
23
|
+
}
|
|
24
|
+
async *[Symbol.asyncIterator]() {
|
|
25
|
+
let page = this;
|
|
26
|
+
while (true) {
|
|
27
|
+
for (const item of page.data) {
|
|
28
|
+
yield item;
|
|
29
|
+
}
|
|
30
|
+
// Stop if no more pages, or if this page was empty (prevents infinite loop
|
|
31
|
+
// if the API returns count=0 with total > 0 due to a server-side issue)
|
|
32
|
+
if (!page.hasMore || page.data.length === 0)
|
|
33
|
+
break;
|
|
34
|
+
page = await page.getNextPage();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
toJSON() {
|
|
38
|
+
return {
|
|
39
|
+
data: this.data,
|
|
40
|
+
total: this.total,
|
|
41
|
+
start: this.start,
|
|
42
|
+
count: this.count,
|
|
43
|
+
hasMore: this.hasMore,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.Page = Page;
|
|
48
|
+
//# 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;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;AApDD,oBAoDC"}
|
|
@@ -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,33 @@ 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
|
+
});
|
|
58
|
+
}
|
|
31
59
|
}
|
|
32
60
|
exports.BaseResource = BaseResource;
|
|
33
61
|
//# 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,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,cAAI,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;AA3DD,oCA2DC"}
|
|
@@ -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 });
|
|
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 });
|
|
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,27 @@ 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
|
+
});
|
|
37
|
+
};
|
|
38
|
+
return makeRequest(1);
|
|
26
39
|
}
|
|
27
40
|
/**
|
|
28
41
|
* 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,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;AA1ED,4CA0EC"}
|
|
@@ -32,29 +32,41 @@ 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
|
+
});
|
|
68
|
+
};
|
|
69
|
+
return makeRequest(options.start_index ?? 0); // 0-based!
|
|
58
70
|
}
|
|
59
71
|
/**
|
|
60
72
|
* 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,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;AAlFD,wCAkFC"}
|
|
@@ -15,17 +15,28 @@ class FactionMembersResource extends BaseResource_js_1.BaseResource {
|
|
|
15
15
|
* List faction members (paginated)
|
|
16
16
|
* @param options - Faction ID and optional pagination parameters
|
|
17
17
|
* @example
|
|
18
|
-
* const
|
|
19
|
-
*
|
|
18
|
+
* const page = await client.faction.members.list({ factionId: '20:123' });
|
|
19
|
+
* console.log(page.data); // FactionMember[]
|
|
20
|
+
* // Iterate all pages:
|
|
21
|
+
* for await (const member of page) { console.log(member); }
|
|
20
22
|
*/
|
|
21
23
|
async list(options) {
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
const makeRequest = async (startIndex) => {
|
|
25
|
+
const params = {
|
|
26
|
+
start_index: startIndex,
|
|
27
|
+
item_count: options.item_count ?? 50,
|
|
28
|
+
};
|
|
29
|
+
const response = await this.http.get(`/faction/${options.factionId}/members`, { params });
|
|
30
|
+
const data = (response.member ?? []);
|
|
31
|
+
const attrs = (response.attributes ?? {});
|
|
32
|
+
return this.createPage({
|
|
33
|
+
data,
|
|
34
|
+
attributes: attrs,
|
|
35
|
+
defaultStart: 1,
|
|
36
|
+
fetcher: makeRequest,
|
|
37
|
+
});
|
|
25
38
|
};
|
|
26
|
-
|
|
27
|
-
// API returns { attributes: {...}, member: [...] }, extract just the array
|
|
28
|
-
return response.member || [];
|
|
39
|
+
return makeRequest(options.start_index ?? 1);
|
|
29
40
|
}
|
|
30
41
|
/**
|
|
31
42
|
* Update faction member info field
|
|
@@ -53,17 +64,28 @@ class FactionBudgetsResource extends BaseResource_js_1.BaseResource {
|
|
|
53
64
|
* List faction budgets (paginated)
|
|
54
65
|
* @param options - Faction ID and optional pagination parameters
|
|
55
66
|
* @example
|
|
56
|
-
* const
|
|
57
|
-
*
|
|
67
|
+
* const page = await client.faction.budgets.list({ factionId: '20:123' });
|
|
68
|
+
* console.log(page.data); // Budget[]
|
|
69
|
+
* // Iterate all pages:
|
|
70
|
+
* for await (const budget of page) { console.log(budget); }
|
|
58
71
|
*/
|
|
59
72
|
async list(options) {
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
73
|
+
const makeRequest = async (startIndex) => {
|
|
74
|
+
const params = {
|
|
75
|
+
start_index: startIndex,
|
|
76
|
+
item_count: options.item_count ?? 50,
|
|
77
|
+
};
|
|
78
|
+
const response = await this.http.get(`/faction/${options.factionId}/budgets`, { params });
|
|
79
|
+
const data = (response.budget ?? []);
|
|
80
|
+
const attrs = (response.attributes ?? {});
|
|
81
|
+
return this.createPage({
|
|
82
|
+
data,
|
|
83
|
+
attributes: attrs,
|
|
84
|
+
defaultStart: 1,
|
|
85
|
+
fetcher: makeRequest,
|
|
86
|
+
});
|
|
63
87
|
};
|
|
64
|
-
|
|
65
|
-
// API returns { attributes: {...}, budget: [...] }, extract just the array
|
|
66
|
-
return response.budget || [];
|
|
88
|
+
return makeRequest(options.start_index ?? 1);
|
|
67
89
|
}
|
|
68
90
|
/**
|
|
69
91
|
* Get specific budget
|
|
@@ -83,17 +105,28 @@ class FactionStockholdersResource extends BaseResource_js_1.BaseResource {
|
|
|
83
105
|
* List faction stockholders (paginated)
|
|
84
106
|
* @param options - Faction ID and optional pagination parameters
|
|
85
107
|
* @example
|
|
86
|
-
* const
|
|
87
|
-
*
|
|
108
|
+
* const page = await client.faction.stockholders.list({ factionId: '20:123' });
|
|
109
|
+
* console.log(page.data); // Stockholder[]
|
|
110
|
+
* // Iterate all pages:
|
|
111
|
+
* for await (const stockholder of page) { console.log(stockholder); }
|
|
88
112
|
*/
|
|
89
113
|
async list(options) {
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
|
|
114
|
+
const makeRequest = async (startIndex) => {
|
|
115
|
+
const params = {
|
|
116
|
+
start_index: startIndex,
|
|
117
|
+
item_count: options.item_count ?? 50,
|
|
118
|
+
};
|
|
119
|
+
const response = await this.http.get(`/faction/${options.factionId}/stockholders`, { params });
|
|
120
|
+
const data = (response.stockholder ?? []);
|
|
121
|
+
const attrs = (response.attributes ?? {});
|
|
122
|
+
return this.createPage({
|
|
123
|
+
data,
|
|
124
|
+
attributes: attrs,
|
|
125
|
+
defaultStart: 1,
|
|
126
|
+
fetcher: makeRequest,
|
|
127
|
+
});
|
|
93
128
|
};
|
|
94
|
-
|
|
95
|
-
// API returns { attributes: {...}, stockholder: [...] }, extract just the array
|
|
96
|
-
return response.stockholder || [];
|
|
129
|
+
return makeRequest(options.start_index ?? 1);
|
|
97
130
|
}
|
|
98
131
|
}
|
|
99
132
|
exports.FactionStockholdersResource = FactionStockholdersResource;
|
|
@@ -154,17 +187,27 @@ class FactionCreditlogResource extends BaseResource_js_1.BaseResource {
|
|
|
154
187
|
* const manyLogs = await client.faction.creditlog.list({ factionId: '20:123', item_count: 1000 });
|
|
155
188
|
*/
|
|
156
189
|
async list(options) {
|
|
157
|
-
const
|
|
158
|
-
|
|
159
|
-
|
|
190
|
+
const makeRequest = async (startIndex) => {
|
|
191
|
+
const params = {
|
|
192
|
+
start_index: startIndex,
|
|
193
|
+
item_count: options.item_count ?? 50,
|
|
194
|
+
};
|
|
195
|
+
if (options.start_id !== undefined) {
|
|
196
|
+
params.start_id = options.start_id;
|
|
197
|
+
}
|
|
198
|
+
const response = await this.http.get(`/faction/${options.factionId}/creditlog`, { params });
|
|
199
|
+
// API returns { swcapi: { transactions: { attributes: {...}, transaction: [...] } } }
|
|
200
|
+
// HttpClient unwraps to { attributes: {...}, transaction: [...] }
|
|
201
|
+
const data = (response.transaction ?? []);
|
|
202
|
+
const attrs = (response.attributes ?? {});
|
|
203
|
+
return this.createPage({
|
|
204
|
+
data,
|
|
205
|
+
attributes: attrs,
|
|
206
|
+
defaultStart: 1,
|
|
207
|
+
fetcher: makeRequest,
|
|
208
|
+
});
|
|
160
209
|
};
|
|
161
|
-
|
|
162
|
-
params.start_id = options.start_id;
|
|
163
|
-
}
|
|
164
|
-
const response = await this.http.get(`/faction/${options.factionId}/creditlog`, { params });
|
|
165
|
-
// API returns { swcapi: { transactions: { attributes: {...}, transaction: [...] } } }
|
|
166
|
-
// HttpClient unwraps to { attributes: {...}, transaction: [...] }
|
|
167
|
-
return response.transaction || [];
|
|
210
|
+
return makeRequest(options.start_index ?? 1);
|
|
168
211
|
}
|
|
169
212
|
}
|
|
170
213
|
exports.FactionCreditlogResource = FactionCreditlogResource;
|
|
@@ -202,52 +245,30 @@ class FactionResource extends BaseResource_js_1.BaseResource {
|
|
|
202
245
|
* @requires_auth No
|
|
203
246
|
* @param options - Optional pagination parameters
|
|
204
247
|
* @example
|
|
205
|
-
* const
|
|
206
|
-
* console.log(
|
|
207
|
-
* console.log(
|
|
248
|
+
* const page = await client.faction.list();
|
|
249
|
+
* console.log(page.total);
|
|
250
|
+
* console.log(page.data[0]?.value);
|
|
208
251
|
*
|
|
209
|
-
*
|
|
252
|
+
* // Iterate all pages:
|
|
253
|
+
* for await (const faction of page) { console.log(faction); }
|
|
210
254
|
*/
|
|
211
255
|
async list(options) {
|
|
212
|
-
const
|
|
213
|
-
|
|
214
|
-
item_count: options?.item_count ?? 50,
|
|
215
|
-
};
|
|
216
|
-
return this.http.get('/factions', { params });
|
|
217
|
-
}
|
|
218
|
-
/**
|
|
219
|
-
* List all factions across every page.
|
|
220
|
-
* @requires_auth No
|
|
221
|
-
* @param options - Optional pagination parameters for the page size and starting offset
|
|
222
|
-
* @example
|
|
223
|
-
* const factions = await client.faction.listAll();
|
|
224
|
-
* console.log(factions.length);
|
|
225
|
-
*/
|
|
226
|
-
async listAll(options) {
|
|
227
|
-
const itemCount = options?.item_count ?? 50;
|
|
228
|
-
let startIndex = options?.start_index ?? 1;
|
|
229
|
-
const factions = [];
|
|
230
|
-
while (true) {
|
|
231
|
-
const response = await this.list({
|
|
256
|
+
const makeRequest = async (startIndex) => {
|
|
257
|
+
const params = {
|
|
232
258
|
start_index: startIndex,
|
|
233
|
-
item_count:
|
|
259
|
+
item_count: options?.item_count ?? 50,
|
|
260
|
+
};
|
|
261
|
+
const response = await this.http.get('/factions', { params });
|
|
262
|
+
const data = (response.faction ?? []);
|
|
263
|
+
const attrs = (response.attributes ?? {});
|
|
264
|
+
return this.createPage({
|
|
265
|
+
data,
|
|
266
|
+
attributes: attrs,
|
|
267
|
+
defaultStart: 1,
|
|
268
|
+
fetcher: makeRequest,
|
|
234
269
|
});
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
const pageCount = typeof response.attributes?.count === 'number' && response.attributes.count > 0
|
|
238
|
-
? response.attributes.count
|
|
239
|
-
: pageItems.length;
|
|
240
|
-
const total = response.attributes?.total;
|
|
241
|
-
factions.push(...pageItems);
|
|
242
|
-
if (pageItems.length === 0 || pageItems.length < itemCount) {
|
|
243
|
-
break;
|
|
244
|
-
}
|
|
245
|
-
if (typeof total === 'number' && pageStart + pageCount - 1 >= total) {
|
|
246
|
-
break;
|
|
247
|
-
}
|
|
248
|
-
startIndex = pageStart + pageCount;
|
|
249
|
-
}
|
|
250
|
-
return factions;
|
|
270
|
+
};
|
|
271
|
+
return makeRequest(options?.start_index ?? 1);
|
|
251
272
|
}
|
|
252
273
|
}
|
|
253
274
|
exports.FactionResource = FactionResource;
|