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/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)
@@ -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;AAIH;;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;CACF"}
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 Array of message metadata items (`MessageListItem[]`)
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 response = await this.http.get(path, { params });
72
- // API returns { attributes: {...}, message: [...] }, extract just the array
73
- return response.message || [];
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 params = {
281
- start_index: options.start_index || 1,
282
- item_count: options.item_count || 50,
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
- if (options.start_id !== undefined) {
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":"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"}
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 response = await this.http.get(`/datacards/${options.factionId}`);
16
- // API returns { attributes: {...}, datacard: [...] }, extract just the array
17
- for (const key of Object.keys(response)) {
18
- if (key !== 'attributes' && Array.isArray(response[key])) {
19
- return response[key];
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
- return [];
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;AASjD;;;;GAIG;AACH,MAAM,OAAO,gBAAiB,SAAQ,YAAY;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"}
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 params = {
33
- start_index: options.start_index !== undefined ? options.start_index : 0, // 0-based indexing!
34
- item_count: options.item_count || 50,
35
- };
36
- if (options.start_time !== undefined) {
37
- params.start_time = options.start_time;
38
- }
39
- if (options.faction_id) {
40
- params.faction_id = options.faction_id;
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
- return [];
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;AAGjD;;;;GAIG;AACH,MAAM,OAAO,cAAe,SAAQ,YAAY;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"}
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 members = await client.faction.members.list({ factionId: '20:123' });
16
- * const moreMembers = await client.faction.members.list({ factionId: '20:123', start_index: 51, item_count: 50 });
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 params = {
20
- start_index: options.start_index || 1,
21
- item_count: options.item_count || 50,
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
- const response = await this.http.get(`/faction/${options.factionId}/members`, { params });
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 budgets = await client.faction.budgets.list({ factionId: '20:123' });
53
- * const moreBudgets = await client.faction.budgets.list({ factionId: '20:123', start_index: 51, item_count: 50 });
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 params = {
57
- start_index: options.start_index || 1,
58
- item_count: options.item_count || 50,
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
- const response = await this.http.get(`/faction/${options.factionId}/budgets`, { params });
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 stockholders = await client.faction.stockholders.list({ factionId: '20:123' });
82
- * const moreStockholders = await client.faction.stockholders.list({ factionId: '20:123', start_index: 51, item_count: 50 });
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 params = {
86
- start_index: options.start_index || 1,
87
- item_count: options.item_count || 50,
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
- const response = await this.http.get(`/faction/${options.factionId}/stockholders`, { params });
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 params = {
151
- start_index: options.start_index || 1,
152
- item_count: options.item_count || 50,
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
- if (options.start_id !== undefined) {
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 response = await client.faction.list();
198
- * console.log(response.attributes?.total);
199
- * console.log(response.faction?.[0]?.value);
240
+ * const page = await client.faction.list();
241
+ * console.log(page.total);
242
+ * console.log(page.data[0]?.value);
200
243
  *
201
- * const moreFactions = await client.faction.list({ start_index: 51, item_count: 50 });
244
+ * // Iterate all pages:
245
+ * for await (const faction of page) { console.log(faction); }
202
246
  */
203
247
  async list(options) {
204
- const params = {
205
- start_index: options?.start_index ?? 1,
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: itemCount,
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
- const pageItems = response.faction ?? [];
228
- const pageStart = response.attributes?.start ?? startIndex;
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":"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"}
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;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI,CAAC,OAIV;QACC,MAAM,WAAW,GAAG,KAAK,EAAE,UAAkB,EAAgC,EAAE;YAC7E,MAAM,MAAM,GAAG;gBACb,WAAW,EAAE,UAAU;gBACvB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;aACrC,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,YAAY,OAAO,CAAC,SAAS,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACnH,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAoB,CAAC;YACxD,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAA4B,CAAC;YAErE,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,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,gBAAgB,CAAC,OAKtB;QACC,OAAO,IAAI,CAAC,OAAO,CACjB,MAAM,EACN,YAAY,OAAO,CAAC,SAAS,UAAU,EACvC;YACE,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CACF,CAAC;IACJ,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,sBAAuB,SAAQ,YAAY;IACtD;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI,CAAC,OAIV;QACC,MAAM,WAAW,GAAG,KAAK,EAAE,UAAkB,EAAyB,EAAE;YACtE,MAAM,MAAM,GAAG;gBACb,WAAW,EAAE,UAAU;gBACvB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;aACrC,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,YAAY,OAAO,CAAC,SAAS,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACnH,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAa,CAAC;YACjD,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAA4B,CAAC;YAErE,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,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,OAAgD;QACxD,OAAO,IAAI,CAAC,OAAO,CAAS,KAAK,EAAE,YAAY,OAAO,CAAC,SAAS,WAAW,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjG,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,2BAA4B,SAAQ,YAAY;IAC3D;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI,CAAC,OAIV;QACC,MAAM,WAAW,GAAG,KAAK,EAAE,UAAkB,EAA8B,EAAE;YAC3E,MAAM,MAAM,GAAG;gBACb,WAAW,EAAE,UAAU;gBACvB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;aACrC,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,YAAY,OAAO,CAAC,SAAS,eAAe,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACxH,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAkB,CAAC;YAC3D,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAA4B,CAAC;YAErE,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,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,sBAAuB,SAAQ,YAAY;IACtD;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,OAAiC;QACzC,OAAO,IAAI,CAAC,OAAO,CAAiB,KAAK,EAAE,YAAY,OAAO,CAAC,SAAS,UAAU,CAAC,CAAC;IACtF,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAsC;QACnD,MAAM,IAAI,GAA4B;YACpC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC/B,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC/B,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAU,MAAM,EAAE,YAAY,OAAO,CAAC,SAAS,UAAU,EAAE,IAAI,CAAC,CAAC;IACtF,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,wBAAyB,SAAQ,YAAY;IACxD;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,IAAI,CAAC,OAQV;QACC,MAAM,WAAW,GAAG,KAAK,EAAE,UAAkB,EAAiC,EAAE;YAC9E,MAAM,MAAM,GAA2B;gBACrC,WAAW,EAAE,UAAU;gBACvB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;aACrC,CAAC;YACF,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACnC,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YACrC,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,YAAY,OAAO,CAAC,SAAS,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACrH,sFAAsF;YACtF,kEAAkE;YAClE,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAqB,CAAC;YAC9D,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAA4B,CAAC;YAErE,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,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAO/C,YAAY,IAAgB;QAC1B,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,OAAO,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,YAAY,GAAG,IAAI,2BAA2B,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,GAAG,CAAC,OAA2B;QACnC,MAAM,IAAI,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;QACpE,OAAO,IAAI,CAAC,OAAO,CAAgB,KAAK,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,IAAI,CAAC,OAA6B;QACtC,MAAM,WAAW,GAAG,KAAK,EAAE,UAAkB,EAAkC,EAAE;YAC/E,MAAM,MAAM,GAAG;gBACb,WAAW,EAAE,UAAU;gBACvB,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,EAAE;aACtC,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACvF,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAsB,CAAC;YAC3D,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAA4B,CAAC;YAErE,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,OAAO,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;CACF"}