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.
Files changed (86) hide show
  1. package/dist/cjs/auth/scopes.js +328 -79
  2. package/dist/cjs/auth/scopes.js.map +1 -1
  3. package/dist/cjs/http/HttpClient.js +6 -9
  4. package/dist/cjs/http/HttpClient.js.map +1 -1
  5. package/dist/cjs/index.js +4 -1
  6. package/dist/cjs/index.js.map +1 -1
  7. package/dist/cjs/pagination/Page.js +48 -0
  8. package/dist/cjs/pagination/Page.js.map +1 -0
  9. package/dist/cjs/resources/BaseResource.js +28 -0
  10. package/dist/cjs/resources/BaseResource.js.map +1 -1
  11. package/dist/cjs/resources/CharacterResource.js +41 -21
  12. package/dist/cjs/resources/CharacterResource.js.map +1 -1
  13. package/dist/cjs/resources/DatacardResource.js +20 -7
  14. package/dist/cjs/resources/DatacardResource.js.map +1 -1
  15. package/dist/cjs/resources/EventsResource.js +34 -22
  16. package/dist/cjs/resources/EventsResource.js.map +1 -1
  17. package/dist/cjs/resources/FactionResource.js +96 -75
  18. package/dist/cjs/resources/FactionResource.js.map +1 -1
  19. package/dist/cjs/resources/GalaxyResource.js +81 -53
  20. package/dist/cjs/resources/GalaxyResource.js.map +1 -1
  21. package/dist/cjs/resources/InventoryResource.js +29 -28
  22. package/dist/cjs/resources/InventoryResource.js.map +1 -1
  23. package/dist/cjs/resources/MarketResource.js +15 -6
  24. package/dist/cjs/resources/MarketResource.js.map +1 -1
  25. package/dist/cjs/resources/NewsResource.js +68 -92
  26. package/dist/cjs/resources/NewsResource.js.map +1 -1
  27. package/dist/cjs/resources/TypesResource.js +41 -67
  28. package/dist/cjs/resources/TypesResource.js.map +1 -1
  29. package/dist/esm/auth/scopes.js +328 -79
  30. package/dist/esm/auth/scopes.js.map +1 -1
  31. package/dist/esm/http/HttpClient.js +6 -9
  32. package/dist/esm/http/HttpClient.js.map +1 -1
  33. package/dist/esm/index.js +2 -0
  34. package/dist/esm/index.js.map +1 -1
  35. package/dist/esm/pagination/Page.js +44 -0
  36. package/dist/esm/pagination/Page.js.map +1 -0
  37. package/dist/esm/resources/BaseResource.js +28 -0
  38. package/dist/esm/resources/BaseResource.js.map +1 -1
  39. package/dist/esm/resources/CharacterResource.js +41 -21
  40. package/dist/esm/resources/CharacterResource.js.map +1 -1
  41. package/dist/esm/resources/DatacardResource.js +20 -7
  42. package/dist/esm/resources/DatacardResource.js.map +1 -1
  43. package/dist/esm/resources/EventsResource.js +34 -22
  44. package/dist/esm/resources/EventsResource.js.map +1 -1
  45. package/dist/esm/resources/FactionResource.js +96 -75
  46. package/dist/esm/resources/FactionResource.js.map +1 -1
  47. package/dist/esm/resources/GalaxyResource.js +81 -53
  48. package/dist/esm/resources/GalaxyResource.js.map +1 -1
  49. package/dist/esm/resources/InventoryResource.js +29 -28
  50. package/dist/esm/resources/InventoryResource.js.map +1 -1
  51. package/dist/esm/resources/MarketResource.js +15 -6
  52. package/dist/esm/resources/MarketResource.js.map +1 -1
  53. package/dist/esm/resources/NewsResource.js +68 -92
  54. package/dist/esm/resources/NewsResource.js.map +1 -1
  55. package/dist/esm/resources/TypesResource.js +41 -67
  56. package/dist/esm/resources/TypesResource.js.map +1 -1
  57. package/dist/types/auth/scopes.d.ts +654 -81
  58. package/dist/types/auth/scopes.d.ts.map +1 -1
  59. package/dist/types/http/HttpClient.d.ts.map +1 -1
  60. package/dist/types/index.d.ts +1 -0
  61. package/dist/types/index.d.ts.map +1 -1
  62. package/dist/types/pagination/Page.d.ts +32 -0
  63. package/dist/types/pagination/Page.d.ts.map +1 -0
  64. package/dist/types/resources/BaseResource.d.ts +15 -0
  65. package/dist/types/resources/BaseResource.d.ts.map +1 -1
  66. package/dist/types/resources/CharacterResource.d.ts +17 -6
  67. package/dist/types/resources/CharacterResource.d.ts.map +1 -1
  68. package/dist/types/resources/DatacardResource.d.ts +2 -1
  69. package/dist/types/resources/DatacardResource.d.ts.map +1 -1
  70. package/dist/types/resources/EventsResource.d.ts +2 -1
  71. package/dist/types/resources/EventsResource.d.ts.map +1 -1
  72. package/dist/types/resources/FactionResource.d.ts +24 -25
  73. package/dist/types/resources/FactionResource.d.ts.map +1 -1
  74. package/dist/types/resources/GalaxyResource.d.ts +7 -26
  75. package/dist/types/resources/GalaxyResource.d.ts.map +1 -1
  76. package/dist/types/resources/InventoryResource.d.ts +2 -1
  77. package/dist/types/resources/InventoryResource.d.ts.map +1 -1
  78. package/dist/types/resources/MarketResource.d.ts +2 -1
  79. package/dist/types/resources/MarketResource.d.ts.map +1 -1
  80. package/dist/types/resources/NewsResource.d.ts +16 -15
  81. package/dist/types/resources/NewsResource.d.ts.map +1 -1
  82. package/dist/types/resources/TypesResource.d.ts +8 -32
  83. package/dist/types/resources/TypesResource.d.ts.map +1 -1
  84. package/dist/types/types/index.d.ts +0 -90
  85. package/dist/types/types/index.d.ts.map +1 -1
  86. 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)
@@ -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;;;AAIH;;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;CACF;AAxBD,oCAwBC"}
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 Array of message metadata items (`MessageListItem[]`)
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 response = await this.http.get(path, { params });
75
- // API returns { attributes: {...}, message: [...] }, extract just the array
76
- return response.message || [];
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 params = {
288
- start_index: options.start_index || 1,
289
- item_count: options.item_count || 50,
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
- if (options.start_id !== undefined) {
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":"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"}
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 response = await this.http.get(`/datacards/${options.factionId}`);
19
- // API returns { attributes: {...}, datacard: [...] }, extract just the array
20
- for (const key of Object.keys(response)) {
21
- if (key !== 'attributes' && Array.isArray(response[key])) {
22
- return response[key];
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
- return [];
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;AASjD;;;;GAIG;AACH,MAAa,gBAAiB,SAAQ,8BAAY;IAChD;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,OAA8B;QACvC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,cAAc,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QACjG,6EAA6E;QAC7E,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,IAAI,GAAG,KAAK,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACzD,OAAO,QAAQ,CAAC,GAAG,CAAe,CAAC;YACrC,CAAC;QACH,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,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;AA3DD,4CA2DC"}
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 params = {
36
- start_index: options.start_index !== undefined ? options.start_index : 0, // 0-based indexing!
37
- item_count: options.item_count || 50,
38
- };
39
- if (options.start_time !== undefined) {
40
- params.start_time = options.start_time;
41
- }
42
- if (options.faction_id) {
43
- params.faction_id = options.faction_id;
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
- return [];
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;AAGjD;;;;GAIG;AACH,MAAa,cAAe,SAAQ,8BAAY;IAC9C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,IAAI,CAAC,OAYV;QACC,MAAM,MAAM,GAAgB;YAC1B,WAAW,EAAE,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,oBAAoB;YAC9F,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;SACrC,CAAC;QAEF,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACrC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACzC,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACzC,CAAC;QAED,qCAAqC;QACrC,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS;YAC5B,CAAC,CAAC,WAAW,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,EAAE;YACrD,CAAC,CAAC,WAAW,OAAO,CAAC,SAAS,EAAE,CAAC;QAEnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAChF,0EAA0E;QAC1E,uCAAuC;QACvC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,IAAI,GAAG,KAAK,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACzD,OAAO,QAAQ,CAAC,GAAG,CAAY,CAAC;YAClC,CAAC;QACH,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,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;AApED,wCAoEC"}
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 members = await client.faction.members.list({ factionId: '20:123' });
19
- * const moreMembers = await client.faction.members.list({ factionId: '20:123', start_index: 51, item_count: 50 });
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 params = {
23
- start_index: options.start_index || 1,
24
- item_count: options.item_count || 50,
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
- const response = await this.http.get(`/faction/${options.factionId}/members`, { params });
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 budgets = await client.faction.budgets.list({ factionId: '20:123' });
57
- * const moreBudgets = await client.faction.budgets.list({ factionId: '20:123', start_index: 51, item_count: 50 });
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 params = {
61
- start_index: options.start_index || 1,
62
- item_count: options.item_count || 50,
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
- const response = await this.http.get(`/faction/${options.factionId}/budgets`, { params });
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 stockholders = await client.faction.stockholders.list({ factionId: '20:123' });
87
- * const moreStockholders = await client.faction.stockholders.list({ factionId: '20:123', start_index: 51, item_count: 50 });
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 params = {
91
- start_index: options.start_index || 1,
92
- item_count: options.item_count || 50,
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
- const response = await this.http.get(`/faction/${options.factionId}/stockholders`, { params });
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 params = {
158
- start_index: options.start_index || 1,
159
- item_count: options.item_count || 50,
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
- if (options.start_id !== undefined) {
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 response = await client.faction.list();
206
- * console.log(response.attributes?.total);
207
- * console.log(response.faction?.[0]?.value);
248
+ * const page = await client.faction.list();
249
+ * console.log(page.total);
250
+ * console.log(page.data[0]?.value);
208
251
  *
209
- * const moreFactions = await client.faction.list({ start_index: 51, item_count: 50 });
252
+ * // Iterate all pages:
253
+ * for await (const faction of page) { console.log(faction); }
210
254
  */
211
255
  async list(options) {
212
- const params = {
213
- start_index: options?.start_index ?? 1,
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: itemCount,
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
- const pageItems = response.faction ?? [];
236
- const pageStart = response.attributes?.start ?? startIndex;
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;