featurebase-node 0.3.0 → 0.4.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 (288) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +31 -0
  3. package/client.d.mts +12 -6
  4. package/client.d.mts.map +1 -1
  5. package/client.d.ts +12 -6
  6. package/client.d.ts.map +1 -1
  7. package/client.js +10 -0
  8. package/client.js.map +1 -1
  9. package/client.mjs +10 -0
  10. package/client.mjs.map +1 -1
  11. package/core/pagination.d.mts +54 -0
  12. package/core/pagination.d.mts.map +1 -0
  13. package/core/pagination.d.ts +54 -0
  14. package/core/pagination.d.ts.map +1 -0
  15. package/core/pagination.js +101 -0
  16. package/core/pagination.js.map +1 -0
  17. package/core/pagination.mjs +95 -0
  18. package/core/pagination.mjs.map +1 -0
  19. package/index.d.mts +1 -0
  20. package/index.d.mts.map +1 -1
  21. package/index.d.ts +1 -0
  22. package/index.d.ts.map +1 -1
  23. package/index.js +3 -1
  24. package/index.js.map +1 -1
  25. package/index.mjs +1 -0
  26. package/index.mjs.map +1 -1
  27. package/package.json +11 -1
  28. package/pagination.d.mts +2 -0
  29. package/pagination.d.mts.map +1 -0
  30. package/pagination.d.ts +2 -0
  31. package/pagination.d.ts.map +1 -0
  32. package/pagination.js +6 -0
  33. package/pagination.js.map +1 -0
  34. package/pagination.mjs +2 -0
  35. package/pagination.mjs.map +1 -0
  36. package/resources/changelogs/changelogs.d.mts +9 -53
  37. package/resources/changelogs/changelogs.d.mts.map +1 -1
  38. package/resources/changelogs/changelogs.d.ts +9 -53
  39. package/resources/changelogs/changelogs.d.ts.map +1 -1
  40. package/resources/changelogs/changelogs.js +6 -2
  41. package/resources/changelogs/changelogs.js.map +1 -1
  42. package/resources/changelogs/changelogs.mjs +6 -2
  43. package/resources/changelogs/changelogs.mjs.map +1 -1
  44. package/resources/changelogs/index.d.mts +1 -1
  45. package/resources/changelogs/index.d.mts.map +1 -1
  46. package/resources/changelogs/index.d.ts +1 -1
  47. package/resources/changelogs/index.d.ts.map +1 -1
  48. package/resources/feedback/comments.d.mts +9 -53
  49. package/resources/feedback/comments.d.mts.map +1 -1
  50. package/resources/feedback/comments.d.ts +9 -53
  51. package/resources/feedback/comments.d.ts.map +1 -1
  52. package/resources/feedback/comments.js +6 -2
  53. package/resources/feedback/comments.js.map +1 -1
  54. package/resources/feedback/comments.mjs +6 -2
  55. package/resources/feedback/comments.mjs.map +1 -1
  56. package/resources/feedback/feedback.d.mts +4 -4
  57. package/resources/feedback/feedback.d.mts.map +1 -1
  58. package/resources/feedback/feedback.d.ts +4 -4
  59. package/resources/feedback/feedback.d.ts.map +1 -1
  60. package/resources/feedback/feedback.mjs.map +1 -1
  61. package/resources/feedback/index.d.mts +2 -2
  62. package/resources/feedback/index.d.mts.map +1 -1
  63. package/resources/feedback/index.d.ts +2 -2
  64. package/resources/feedback/index.d.ts.map +1 -1
  65. package/resources/feedback/posts/index.d.mts +2 -2
  66. package/resources/feedback/posts/index.d.mts.map +1 -1
  67. package/resources/feedback/posts/index.d.ts +2 -2
  68. package/resources/feedback/posts/index.d.ts.map +1 -1
  69. package/resources/feedback/posts/index.js.map +1 -1
  70. package/resources/feedback/posts/index.mjs.map +1 -1
  71. package/resources/feedback/posts/posts.d.mts +11 -56
  72. package/resources/feedback/posts/posts.d.mts.map +1 -1
  73. package/resources/feedback/posts/posts.d.ts +11 -56
  74. package/resources/feedback/posts/posts.d.ts.map +1 -1
  75. package/resources/feedback/posts/posts.js +6 -2
  76. package/resources/feedback/posts/posts.js.map +1 -1
  77. package/resources/feedback/posts/posts.mjs +6 -2
  78. package/resources/feedback/posts/posts.mjs.map +1 -1
  79. package/resources/feedback/posts/voters.d.mts +79 -124
  80. package/resources/feedback/posts/voters.d.mts.map +1 -1
  81. package/resources/feedback/posts/voters.d.ts +79 -124
  82. package/resources/feedback/posts/voters.d.ts.map +1 -1
  83. package/resources/feedback/posts/voters.js +7 -3
  84. package/resources/feedback/posts/voters.js.map +1 -1
  85. package/resources/feedback/posts/voters.mjs +7 -3
  86. package/resources/feedback/posts/voters.mjs.map +1 -1
  87. package/resources/help-center/articles.d.mts +9 -27
  88. package/resources/help-center/articles.d.mts.map +1 -1
  89. package/resources/help-center/articles.d.ts +9 -27
  90. package/resources/help-center/articles.d.ts.map +1 -1
  91. package/resources/help-center/articles.js +6 -2
  92. package/resources/help-center/articles.js.map +1 -1
  93. package/resources/help-center/articles.mjs +6 -2
  94. package/resources/help-center/articles.mjs.map +1 -1
  95. package/resources/help-center/collections.d.mts +9 -28
  96. package/resources/help-center/collections.d.mts.map +1 -1
  97. package/resources/help-center/collections.d.ts +9 -28
  98. package/resources/help-center/collections.d.ts.map +1 -1
  99. package/resources/help-center/collections.js +6 -3
  100. package/resources/help-center/collections.js.map +1 -1
  101. package/resources/help-center/collections.mjs +6 -3
  102. package/resources/help-center/collections.mjs.map +1 -1
  103. package/resources/help-center/help-center.d.mts +8 -8
  104. package/resources/help-center/help-center.d.mts.map +1 -1
  105. package/resources/help-center/help-center.d.ts +8 -8
  106. package/resources/help-center/help-center.d.ts.map +1 -1
  107. package/resources/help-center/help-center.mjs.map +1 -1
  108. package/resources/help-center/help-centers.d.mts +9 -28
  109. package/resources/help-center/help-centers.d.mts.map +1 -1
  110. package/resources/help-center/help-centers.d.ts +9 -28
  111. package/resources/help-center/help-centers.d.ts.map +1 -1
  112. package/resources/help-center/help-centers.js +6 -3
  113. package/resources/help-center/help-centers.js.map +1 -1
  114. package/resources/help-center/help-centers.mjs +6 -3
  115. package/resources/help-center/help-centers.mjs.map +1 -1
  116. package/resources/help-center/index.d.mts +4 -4
  117. package/resources/help-center/index.d.mts.map +1 -1
  118. package/resources/help-center/index.d.ts +4 -4
  119. package/resources/help-center/index.d.ts.map +1 -1
  120. package/resources/help-center/redirect-rules.d.mts +9 -28
  121. package/resources/help-center/redirect-rules.d.mts.map +1 -1
  122. package/resources/help-center/redirect-rules.d.ts +9 -28
  123. package/resources/help-center/redirect-rules.d.ts.map +1 -1
  124. package/resources/help-center/redirect-rules.js +6 -3
  125. package/resources/help-center/redirect-rules.js.map +1 -1
  126. package/resources/help-center/redirect-rules.mjs +6 -3
  127. package/resources/help-center/redirect-rules.mjs.map +1 -1
  128. package/resources/index.d.mts +3 -3
  129. package/resources/index.d.mts.map +1 -1
  130. package/resources/index.d.ts +3 -3
  131. package/resources/index.d.ts.map +1 -1
  132. package/resources/index.js.map +1 -1
  133. package/resources/index.mjs.map +1 -1
  134. package/resources/organization/brands.d.mts +5 -26
  135. package/resources/organization/brands.d.mts.map +1 -1
  136. package/resources/organization/brands.d.ts +5 -26
  137. package/resources/organization/brands.d.ts.map +1 -1
  138. package/resources/organization/brands.js +2 -1
  139. package/resources/organization/brands.js.map +1 -1
  140. package/resources/organization/brands.mjs +2 -1
  141. package/resources/organization/brands.mjs.map +1 -1
  142. package/resources/organization/index.d.mts +1 -1
  143. package/resources/organization/index.d.mts.map +1 -1
  144. package/resources/organization/index.d.ts +1 -1
  145. package/resources/organization/index.d.ts.map +1 -1
  146. package/resources/organization/organization.d.mts +2 -2
  147. package/resources/organization/organization.d.mts.map +1 -1
  148. package/resources/organization/organization.d.ts +2 -2
  149. package/resources/organization/organization.d.ts.map +1 -1
  150. package/resources/organization/organization.js.map +1 -1
  151. package/resources/organization/organization.mjs.map +1 -1
  152. package/resources/support/conversations/conversations.d.mts +9 -28
  153. package/resources/support/conversations/conversations.d.mts.map +1 -1
  154. package/resources/support/conversations/conversations.d.ts +9 -28
  155. package/resources/support/conversations/conversations.d.ts.map +1 -1
  156. package/resources/support/conversations/conversations.js +6 -3
  157. package/resources/support/conversations/conversations.js.map +1 -1
  158. package/resources/support/conversations/conversations.mjs +6 -3
  159. package/resources/support/conversations/conversations.mjs.map +1 -1
  160. package/resources/support/conversations/index.d.mts +1 -1
  161. package/resources/support/conversations/index.d.mts.map +1 -1
  162. package/resources/support/conversations/index.d.ts +1 -1
  163. package/resources/support/conversations/index.d.ts.map +1 -1
  164. package/resources/support/index.d.mts +2 -2
  165. package/resources/support/index.d.mts.map +1 -1
  166. package/resources/support/index.d.ts +2 -2
  167. package/resources/support/index.d.ts.map +1 -1
  168. package/resources/support/support.d.mts +4 -4
  169. package/resources/support/support.d.mts.map +1 -1
  170. package/resources/support/support.d.ts +4 -4
  171. package/resources/support/support.d.ts.map +1 -1
  172. package/resources/support/support.mjs.map +1 -1
  173. package/resources/support/tickets/index.d.mts +1 -1
  174. package/resources/support/tickets/index.d.mts.map +1 -1
  175. package/resources/support/tickets/index.d.ts +1 -1
  176. package/resources/support/tickets/index.d.ts.map +1 -1
  177. package/resources/support/tickets/tickets.d.mts +9 -27
  178. package/resources/support/tickets/tickets.d.mts.map +1 -1
  179. package/resources/support/tickets/tickets.d.ts +9 -27
  180. package/resources/support/tickets/tickets.d.ts.map +1 -1
  181. package/resources/support/tickets/tickets.js +6 -2
  182. package/resources/support/tickets/tickets.js.map +1 -1
  183. package/resources/support/tickets/tickets.mjs +6 -2
  184. package/resources/support/tickets/tickets.mjs.map +1 -1
  185. package/resources/surveys.d.mts +34 -79
  186. package/resources/surveys.d.mts.map +1 -1
  187. package/resources/surveys.d.ts +34 -79
  188. package/resources/surveys.d.ts.map +1 -1
  189. package/resources/surveys.js +4 -3
  190. package/resources/surveys.js.map +1 -1
  191. package/resources/surveys.mjs +4 -3
  192. package/resources/surveys.mjs.map +1 -1
  193. package/resources/users/companies/companies.d.mts +9 -28
  194. package/resources/users/companies/companies.d.mts.map +1 -1
  195. package/resources/users/companies/companies.d.ts +9 -28
  196. package/resources/users/companies/companies.d.ts.map +1 -1
  197. package/resources/users/companies/companies.js +6 -2
  198. package/resources/users/companies/companies.js.map +1 -1
  199. package/resources/users/companies/companies.mjs +6 -2
  200. package/resources/users/companies/companies.mjs.map +1 -1
  201. package/resources/users/companies/contacts.d.mts +11 -16
  202. package/resources/users/companies/contacts.d.mts.map +1 -1
  203. package/resources/users/companies/contacts.d.ts +11 -16
  204. package/resources/users/companies/contacts.d.ts.map +1 -1
  205. package/resources/users/companies/contacts.js +8 -5
  206. package/resources/users/companies/contacts.js.map +1 -1
  207. package/resources/users/companies/contacts.mjs +8 -5
  208. package/resources/users/companies/contacts.mjs.map +1 -1
  209. package/resources/users/companies/index.d.mts +1 -1
  210. package/resources/users/companies/index.d.mts.map +1 -1
  211. package/resources/users/companies/index.d.ts +1 -1
  212. package/resources/users/companies/index.d.ts.map +1 -1
  213. package/resources/users/contacts/contacts.d.mts +9 -13
  214. package/resources/users/contacts/contacts.d.mts.map +1 -1
  215. package/resources/users/contacts/contacts.d.ts +9 -13
  216. package/resources/users/contacts/contacts.d.ts.map +1 -1
  217. package/resources/users/contacts/contacts.js +6 -2
  218. package/resources/users/contacts/contacts.js.map +1 -1
  219. package/resources/users/contacts/contacts.mjs +6 -2
  220. package/resources/users/contacts/contacts.mjs.map +1 -1
  221. package/resources/users/contacts/index.d.mts +1 -1
  222. package/resources/users/contacts/index.d.mts.map +1 -1
  223. package/resources/users/contacts/index.d.ts +1 -1
  224. package/resources/users/contacts/index.d.ts.map +1 -1
  225. package/resources/users/contacts/index.js.map +1 -1
  226. package/resources/users/contacts/index.mjs.map +1 -1
  227. package/resources/users/index.d.mts +2 -2
  228. package/resources/users/index.d.mts.map +1 -1
  229. package/resources/users/index.d.ts +2 -2
  230. package/resources/users/index.d.ts.map +1 -1
  231. package/resources/users/index.js.map +1 -1
  232. package/resources/users/index.mjs.map +1 -1
  233. package/resources/users/users.d.mts +4 -4
  234. package/resources/users/users.d.mts.map +1 -1
  235. package/resources/users/users.d.ts +4 -4
  236. package/resources/users/users.d.ts.map +1 -1
  237. package/resources/users/users.js.map +1 -1
  238. package/resources/users/users.mjs.map +1 -1
  239. package/resources/webhooks.d.mts +9 -27
  240. package/resources/webhooks.d.mts.map +1 -1
  241. package/resources/webhooks.d.ts +9 -27
  242. package/resources/webhooks.d.ts.map +1 -1
  243. package/resources/webhooks.js +6 -2
  244. package/resources/webhooks.js.map +1 -1
  245. package/resources/webhooks.mjs +6 -2
  246. package/resources/webhooks.mjs.map +1 -1
  247. package/src/client.ts +41 -10
  248. package/src/core/pagination.ts +157 -0
  249. package/src/index.ts +1 -0
  250. package/src/pagination.ts +2 -0
  251. package/src/resources/changelogs/changelogs.ts +11 -64
  252. package/src/resources/changelogs/index.ts +1 -1
  253. package/src/resources/feedback/comments.ts +11 -64
  254. package/src/resources/feedback/feedback.ts +4 -4
  255. package/src/resources/feedback/index.ts +2 -2
  256. package/src/resources/feedback/posts/index.ts +2 -1
  257. package/src/resources/feedback/posts/posts.ts +13 -65
  258. package/src/resources/feedback/posts/voters.ts +87 -140
  259. package/src/resources/help-center/articles.ts +11 -33
  260. package/src/resources/help-center/collections.ts +11 -34
  261. package/src/resources/help-center/help-center.ts +8 -8
  262. package/src/resources/help-center/help-centers.ts +11 -34
  263. package/src/resources/help-center/index.ts +4 -4
  264. package/src/resources/help-center/redirect-rules.ts +11 -34
  265. package/src/resources/index.ts +6 -5
  266. package/src/resources/organization/brands.ts +7 -32
  267. package/src/resources/organization/index.ts +1 -1
  268. package/src/resources/organization/organization.ts +2 -2
  269. package/src/resources/support/conversations/conversations.ts +11 -34
  270. package/src/resources/support/conversations/index.ts +1 -1
  271. package/src/resources/support/index.ts +2 -2
  272. package/src/resources/support/support.ts +4 -4
  273. package/src/resources/support/tickets/index.ts +1 -1
  274. package/src/resources/support/tickets/tickets.ts +11 -33
  275. package/src/resources/surveys.ts +54 -102
  276. package/src/resources/users/companies/companies.ts +11 -34
  277. package/src/resources/users/companies/contacts.ts +24 -26
  278. package/src/resources/users/companies/index.ts +1 -1
  279. package/src/resources/users/contacts/contacts.ts +14 -15
  280. package/src/resources/users/contacts/index.ts +1 -0
  281. package/src/resources/users/index.ts +2 -1
  282. package/src/resources/users/users.ts +4 -2
  283. package/src/resources/webhooks.ts +11 -33
  284. package/src/version.ts +1 -1
  285. package/version.d.mts +1 -1
  286. package/version.d.ts +1 -1
  287. package/version.js +1 -1
  288. package/version.mjs +1 -1
@@ -10,12 +10,12 @@ import {
10
10
  ArticleDeleteResponse,
11
11
  ArticleIconInputNova,
12
12
  ArticleListParams,
13
- ArticleListResponse,
14
13
  ArticleRetrieveParams,
15
14
  ArticleTranslation,
16
15
  ArticleTranslationInputNova,
17
16
  ArticleUpdateParams,
18
17
  Articles,
18
+ ArticlesCursorPage,
19
19
  } from './articles';
20
20
  import * as CollectionsAPI from './collections';
21
21
  import {
@@ -25,22 +25,22 @@ import {
25
25
  CollectionDeleteResponse,
26
26
  CollectionIconNova,
27
27
  CollectionListParams,
28
- CollectionListResponse,
29
28
  CollectionRetrieveParams,
30
29
  CollectionTranslation,
31
30
  CollectionTranslationInputNova,
32
31
  CollectionUpdateParams,
33
32
  Collections,
33
+ CollectionsCursorPage,
34
34
  } from './collections';
35
35
  import * as HelpCentersAPI from './help-centers';
36
36
  import {
37
37
  HelpCenter as HelpCentersAPIHelpCenter,
38
38
  HelpCenterListParams,
39
- HelpCenterListResponse,
40
39
  HelpCenterNavItem,
41
40
  HelpCenterRetrieveParams,
42
41
  HelpCenterTranslation,
43
42
  HelpCenters,
43
+ HelpCentersCursorPage,
44
44
  } from './help-centers';
45
45
  import * as RedirectRulesAPI from './redirect-rules';
46
46
  import {
@@ -49,11 +49,11 @@ import {
49
49
  RedirectRuleDeleteParams,
50
50
  RedirectRuleDeleteResponse,
51
51
  RedirectRuleListParams,
52
- RedirectRuleListResponse,
53
52
  RedirectRuleRetrieveByURLParams,
54
53
  RedirectRuleRetrieveParams,
55
54
  RedirectRuleUpdateParams,
56
55
  RedirectRules,
56
+ RedirectRulesCursorPage,
57
57
  } from './redirect-rules';
58
58
 
59
59
  export class HelpCenter extends APIResource {
@@ -74,7 +74,7 @@ export declare namespace HelpCenter {
74
74
  type HelpCentersAPIHelpCenter as HelpCenter,
75
75
  type HelpCenterNavItem as HelpCenterNavItem,
76
76
  type HelpCenterTranslation as HelpCenterTranslation,
77
- type HelpCenterListResponse as HelpCenterListResponse,
77
+ type HelpCentersCursorPage as HelpCentersCursorPage,
78
78
  type HelpCenterRetrieveParams as HelpCenterRetrieveParams,
79
79
  type HelpCenterListParams as HelpCenterListParams,
80
80
  };
@@ -85,8 +85,8 @@ export declare namespace HelpCenter {
85
85
  type CollectionIconNova as CollectionIconNova,
86
86
  type CollectionTranslation as CollectionTranslation,
87
87
  type CollectionTranslationInputNova as CollectionTranslationInputNova,
88
- type CollectionListResponse as CollectionListResponse,
89
88
  type CollectionDeleteResponse as CollectionDeleteResponse,
89
+ type CollectionsCursorPage as CollectionsCursorPage,
90
90
  type CollectionCreateParams as CollectionCreateParams,
91
91
  type CollectionRetrieveParams as CollectionRetrieveParams,
92
92
  type CollectionUpdateParams as CollectionUpdateParams,
@@ -101,8 +101,8 @@ export declare namespace HelpCenter {
101
101
  type ArticleIconInputNova as ArticleIconInputNova,
102
102
  type ArticleTranslation as ArticleTranslation,
103
103
  type ArticleTranslationInputNova as ArticleTranslationInputNova,
104
- type ArticleListResponse as ArticleListResponse,
105
104
  type ArticleDeleteResponse as ArticleDeleteResponse,
105
+ type ArticlesCursorPage as ArticlesCursorPage,
106
106
  type ArticleCreateParams as ArticleCreateParams,
107
107
  type ArticleRetrieveParams as ArticleRetrieveParams,
108
108
  type ArticleUpdateParams as ArticleUpdateParams,
@@ -113,8 +113,8 @@ export declare namespace HelpCenter {
113
113
  export {
114
114
  RedirectRules as RedirectRules,
115
115
  type RedirectRule as RedirectRule,
116
- type RedirectRuleListResponse as RedirectRuleListResponse,
117
116
  type RedirectRuleDeleteResponse as RedirectRuleDeleteResponse,
117
+ type RedirectRulesCursorPage as RedirectRulesCursorPage,
118
118
  type RedirectRuleCreateParams as RedirectRuleCreateParams,
119
119
  type RedirectRuleRetrieveParams as RedirectRuleRetrieveParams,
120
120
  type RedirectRuleUpdateParams as RedirectRuleUpdateParams,
@@ -3,6 +3,7 @@
3
3
  import { APIResource } from '../../core/resource';
4
4
  import * as HelpCentersAPI from './help-centers';
5
5
  import { APIPromise } from '../../core/api-promise';
6
+ import { CursorPage, type CursorPageParams, PagePromise } from '../../core/pagination';
6
7
  import { buildHeaders } from '../../internal/headers';
7
8
  import { RequestOptions } from '../../internal/request-options';
8
9
  import { path } from '../../internal/utils/path';
@@ -98,16 +99,18 @@ export class HelpCenters extends APIResource {
98
99
  *
99
100
  * @example
100
101
  * ```ts
101
- * const helpCenters =
102
- * await client.helpCenter.helpCenters.list();
102
+ * // Automatically fetches more pages as needed.
103
+ * for await (const helpCenter of client.helpCenter.helpCenters.list()) {
104
+ * // ...
105
+ * }
103
106
  * ```
104
107
  */
105
108
  list(
106
109
  params: HelpCenterListParams | null | undefined = {},
107
110
  options?: RequestOptions,
108
- ): APIPromise<HelpCenterListResponse> {
111
+ ): PagePromise<HelpCentersCursorPage, HelpCenter> {
109
112
  const { 'Featurebase-Version': featurebaseVersion, ...query } = params ?? {};
110
- return this._client.get('/v2/help_center/help_centers', {
113
+ return this._client.getAPIList('/v2/help_center/help_centers', CursorPage<HelpCenter>, {
111
114
  query,
112
115
  ...options,
113
116
  headers: buildHeaders([
@@ -118,6 +121,8 @@ export class HelpCenters extends APIResource {
118
121
  }
119
122
  }
120
123
 
124
+ export type HelpCentersCursorPage = CursorPage<HelpCenter>;
125
+
121
126
  export interface HelpCenter {
122
127
  /**
123
128
  * Help center unique identifier
@@ -502,23 +507,6 @@ export interface HelpCenterTranslation {
502
507
  title?: string;
503
508
  }
504
509
 
505
- export interface HelpCenterListResponse {
506
- /**
507
- * Array of help centers
508
- */
509
- data: Array<HelpCenter>;
510
-
511
- /**
512
- * Cursor for fetching the next page (cursor-based pagination)
513
- */
514
- nextCursor: string | null;
515
-
516
- /**
517
- * Object type identifier
518
- */
519
- object: 'list';
520
- }
521
-
522
510
  export interface HelpCenterRetrieveParams {
523
511
  /**
524
512
  * API version for this request. Defaults to your organization's configured API
@@ -527,18 +515,7 @@ export interface HelpCenterRetrieveParams {
527
515
  'Featurebase-Version'?: string;
528
516
  }
529
517
 
530
- export interface HelpCenterListParams {
531
- /**
532
- * Query param: An opaque cursor for pagination. Use the nextCursor value from a
533
- * previous response to fetch the next page.
534
- */
535
- cursor?: string;
536
-
537
- /**
538
- * Query param: A limit on the number of objects to be returned, between 1 and 100.
539
- */
540
- limit?: number;
541
-
518
+ export interface HelpCenterListParams extends CursorPageParams {
542
519
  /**
543
520
  * Header param: API version for this request. Defaults to your organization's
544
521
  * configured API version if not specified.
@@ -551,7 +528,7 @@ export declare namespace HelpCenters {
551
528
  type HelpCenter as HelpCenter,
552
529
  type HelpCenterNavItem as HelpCenterNavItem,
553
530
  type HelpCenterTranslation as HelpCenterTranslation,
554
- type HelpCenterListResponse as HelpCenterListResponse,
531
+ type HelpCentersCursorPage as HelpCentersCursorPage,
555
532
  type HelpCenterRetrieveParams as HelpCenterRetrieveParams,
556
533
  type HelpCenterListParams as HelpCenterListParams,
557
534
  };
@@ -7,13 +7,13 @@ export {
7
7
  type ArticleIconInputNova,
8
8
  type ArticleTranslation,
9
9
  type ArticleTranslationInputNova,
10
- type ArticleListResponse,
11
10
  type ArticleDeleteResponse,
12
11
  type ArticleCreateParams,
13
12
  type ArticleRetrieveParams,
14
13
  type ArticleUpdateParams,
15
14
  type ArticleListParams,
16
15
  type ArticleDeleteParams,
16
+ type ArticlesCursorPage,
17
17
  } from './articles';
18
18
  export {
19
19
  Collections,
@@ -21,27 +21,26 @@ export {
21
21
  type CollectionIconNova,
22
22
  type CollectionTranslation,
23
23
  type CollectionTranslationInputNova,
24
- type CollectionListResponse,
25
24
  type CollectionDeleteResponse,
26
25
  type CollectionCreateParams,
27
26
  type CollectionRetrieveParams,
28
27
  type CollectionUpdateParams,
29
28
  type CollectionListParams,
30
29
  type CollectionDeleteParams,
30
+ type CollectionsCursorPage,
31
31
  } from './collections';
32
32
  export { HelpCenter } from './help-center';
33
33
  export {
34
34
  HelpCenters,
35
35
  type HelpCenterNavItem,
36
36
  type HelpCenterTranslation,
37
- type HelpCenterListResponse,
38
37
  type HelpCenterRetrieveParams,
39
38
  type HelpCenterListParams,
39
+ type HelpCentersCursorPage,
40
40
  } from './help-centers';
41
41
  export {
42
42
  RedirectRules,
43
43
  type RedirectRule,
44
- type RedirectRuleListResponse,
45
44
  type RedirectRuleDeleteResponse,
46
45
  type RedirectRuleCreateParams,
47
46
  type RedirectRuleRetrieveParams,
@@ -49,4 +48,5 @@ export {
49
48
  type RedirectRuleListParams,
50
49
  type RedirectRuleDeleteParams,
51
50
  type RedirectRuleRetrieveByURLParams,
51
+ type RedirectRulesCursorPage,
52
52
  } from './redirect-rules';
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { APIResource } from '../../core/resource';
4
4
  import { APIPromise } from '../../core/api-promise';
5
+ import { CursorPage, type CursorPageParams, PagePromise } from '../../core/pagination';
5
6
  import { buildHeaders } from '../../internal/headers';
6
7
  import { RequestOptions } from '../../internal/request-options';
7
8
  import { path } from '../../internal/utils/path';
@@ -198,16 +199,18 @@ export class RedirectRules extends APIResource {
198
199
  *
199
200
  * @example
200
201
  * ```ts
201
- * const redirectRules =
202
- * await client.helpCenter.redirectRules.list();
202
+ * // Automatically fetches more pages as needed.
203
+ * for await (const redirectRule of client.helpCenter.redirectRules.list()) {
204
+ * // ...
205
+ * }
203
206
  * ```
204
207
  */
205
208
  list(
206
209
  params: RedirectRuleListParams | null | undefined = {},
207
210
  options?: RequestOptions,
208
- ): APIPromise<RedirectRuleListResponse> {
211
+ ): PagePromise<RedirectRulesCursorPage, RedirectRule> {
209
212
  const { 'Featurebase-Version': featurebaseVersion, ...query } = params ?? {};
210
- return this._client.get('/v2/help_center/redirect_rules', {
213
+ return this._client.getAPIList('/v2/help_center/redirect_rules', CursorPage<RedirectRule>, {
211
214
  query,
212
215
  ...options,
213
216
  headers: buildHeaders([
@@ -311,6 +314,8 @@ export class RedirectRules extends APIResource {
311
314
  }
312
315
  }
313
316
 
317
+ export type RedirectRulesCursorPage = CursorPage<RedirectRule>;
318
+
314
319
  export interface RedirectRule {
315
320
  /**
316
321
  * Redirect rule unique identifier
@@ -400,23 +405,6 @@ export interface RedirectRule {
400
405
  updatedAt: string;
401
406
  }
402
407
 
403
- export interface RedirectRuleListResponse {
404
- /**
405
- * Array of redirect rules
406
- */
407
- data: Array<RedirectRule>;
408
-
409
- /**
410
- * Cursor for fetching the next page. Null if there are no more results.
411
- */
412
- nextCursor: string | null;
413
-
414
- /**
415
- * Object type identifier
416
- */
417
- object: 'list';
418
- }
419
-
420
408
  export interface RedirectRuleDeleteResponse {
421
409
  /**
422
410
  * Unique identifier of the deleted redirect rule
@@ -597,23 +585,12 @@ export interface RedirectRuleUpdateParams {
597
585
  'Featurebase-Version'?: string;
598
586
  }
599
587
 
600
- export interface RedirectRuleListParams {
601
- /**
602
- * Query param: An opaque cursor for pagination. Use the nextCursor value from a
603
- * previous response to fetch the next page.
604
- */
605
- cursor?: string;
606
-
588
+ export interface RedirectRuleListParams extends CursorPageParams {
607
589
  /**
608
590
  * Query param: Filter redirect rules by help center ID
609
591
  */
610
592
  helpCenterId?: string;
611
593
 
612
- /**
613
- * Query param: A limit on the number of objects to be returned, between 1 and 100.
614
- */
615
- limit?: number;
616
-
617
594
  /**
618
595
  * Query param: Filter redirect rules by locale
619
596
  */
@@ -699,8 +676,8 @@ export interface RedirectRuleRetrieveByURLParams {
699
676
  export declare namespace RedirectRules {
700
677
  export {
701
678
  type RedirectRule as RedirectRule,
702
- type RedirectRuleListResponse as RedirectRuleListResponse,
703
679
  type RedirectRuleDeleteResponse as RedirectRuleDeleteResponse,
680
+ type RedirectRulesCursorPage as RedirectRulesCursorPage,
704
681
  type RedirectRuleCreateParams as RedirectRuleCreateParams,
705
682
  type RedirectRuleRetrieveParams as RedirectRuleRetrieveParams,
706
683
  type RedirectRuleUpdateParams as RedirectRuleUpdateParams,
@@ -4,7 +4,6 @@ export {
4
4
  Changelogs,
5
5
  type Changelog,
6
6
  type PublishUnpublishSuccess,
7
- type ChangelogListResponse,
8
7
  type ChangelogDeleteResponse,
9
8
  type ChangelogCreateParams,
10
9
  type ChangelogRetrieveParams,
@@ -13,6 +12,7 @@ export {
13
12
  type ChangelogDeleteParams,
14
13
  type ChangelogPublishParams,
15
14
  type ChangelogUnpublishParams,
15
+ type ChangelogsCursorPage,
16
16
  } from './changelogs/changelogs';
17
17
  export { Feedback } from './feedback/feedback';
18
18
  export { HelpCenter } from './help-center/help-center';
@@ -22,18 +22,18 @@ export {
22
22
  Surveys,
23
23
  type Survey,
24
24
  type SurveyNextAction,
25
- type SurveyListResponse,
26
- type SurveyRetrieveResponsesResponse,
25
+ type SurveyListResponsesResponse,
27
26
  type SurveyRetrieveParams,
28
27
  type SurveyListParams,
29
- type SurveyRetrieveResponsesParams,
28
+ type SurveyListResponsesParams,
29
+ type SurveysCursorPage,
30
+ type SurveyListResponsesResponsesCursorPage,
30
31
  } from './surveys';
31
32
  export { Users } from './users/users';
32
33
  export {
33
34
  Webhooks,
34
35
  type Webhook,
35
36
  type WebhookRequestConfigInput,
36
- type WebhookListResponse,
37
37
  type WebhookDeleteResponse,
38
38
  type WebhookCreateParams,
39
39
  type WebhookRetrieveParams,
@@ -41,4 +41,5 @@ export {
41
41
  type WebhookListParams,
42
42
  type WebhookDeleteParams,
43
43
  type WebhookRefreshSecretParams,
44
+ type WebhooksCursorPage,
44
45
  } from './webhooks';
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { APIResource } from '../../core/resource';
4
4
  import { APIPromise } from '../../core/api-promise';
5
+ import { CursorPage, type CursorPageParams, PagePromise } from '../../core/pagination';
5
6
  import { buildHeaders } from '../../internal/headers';
6
7
  import { RequestOptions } from '../../internal/request-options';
7
8
  import { path } from '../../internal/utils/path';
@@ -123,9 +124,9 @@ export class Brands extends APIResource {
123
124
  list(
124
125
  params: BrandListParams | null | undefined = {},
125
126
  options?: RequestOptions,
126
- ): APIPromise<BrandListResponse> {
127
+ ): PagePromise<BrandsCursorPage, Brand> {
127
128
  const { 'Featurebase-Version': featurebaseVersion, ...query } = params ?? {};
128
- return this._client.get('/v2/brands', {
129
+ return this._client.getAPIList('/v2/brands', CursorPage<Brand>, {
129
130
  query,
130
131
  ...options,
131
132
  headers: buildHeaders([
@@ -136,6 +137,8 @@ export class Brands extends APIResource {
136
137
  }
137
138
  }
138
139
 
140
+ export type BrandsCursorPage = CursorPage<Brand>;
141
+
139
142
  export interface Brand {
140
143
  /**
141
144
  * Featurebase internal ID
@@ -178,23 +181,6 @@ export interface Brand {
178
181
  updatedAt: string | null;
179
182
  }
180
183
 
181
- export interface BrandListResponse {
182
- /**
183
- * Array of brands
184
- */
185
- data: Array<Brand>;
186
-
187
- /**
188
- * Cursor for fetching the next page (cursor-based pagination)
189
- */
190
- nextCursor: string | null;
191
-
192
- /**
193
- * Object type identifier
194
- */
195
- object: 'list';
196
- }
197
-
198
184
  export interface BrandRetrieveParams {
199
185
  /**
200
186
  * API version for this request. Defaults to your organization's configured API
@@ -203,18 +189,7 @@ export interface BrandRetrieveParams {
203
189
  'Featurebase-Version'?: string;
204
190
  }
205
191
 
206
- export interface BrandListParams {
207
- /**
208
- * Query param: An opaque cursor for pagination. Use the nextCursor value from a
209
- * previous response to fetch the next page of results.
210
- */
211
- cursor?: string;
212
-
213
- /**
214
- * Query param: A limit on the number of brands to be returned, between 1 and 100.
215
- */
216
- limit?: number;
217
-
192
+ export interface BrandListParams extends CursorPageParams {
218
193
  /**
219
194
  * Header param: API version for this request. Defaults to your organization's
220
195
  * configured API version if not specified.
@@ -225,7 +200,7 @@ export interface BrandListParams {
225
200
  export declare namespace Brands {
226
201
  export {
227
202
  type Brand as Brand,
228
- type BrandListResponse as BrandListResponse,
203
+ type BrandsCursorPage as BrandsCursorPage,
229
204
  type BrandRetrieveParams as BrandRetrieveParams,
230
205
  type BrandListParams as BrandListParams,
231
206
  };
@@ -12,9 +12,9 @@ export {
12
12
  export {
13
13
  Brands,
14
14
  type Brand,
15
- type BrandListResponse,
16
15
  type BrandRetrieveParams,
17
16
  type BrandListParams,
17
+ type BrandsCursorPage,
18
18
  } from './brands';
19
19
  export { Organization } from './organization';
20
20
  export {
@@ -12,7 +12,7 @@ import {
12
12
  Admins,
13
13
  } from './admins';
14
14
  import * as BrandsAPI from './brands';
15
- import { Brand, BrandListParams, BrandListResponse, BrandRetrieveParams, Brands } from './brands';
15
+ import { Brand, BrandListParams, BrandRetrieveParams, Brands, BrandsCursorPage } from './brands';
16
16
  import * as TeamsAPI from './teams';
17
17
  import { Team, TeamListParams, TeamListResponse, TeamRetrieveParams, Teams } from './teams';
18
18
 
@@ -48,7 +48,7 @@ export declare namespace Organization {
48
48
  export {
49
49
  Brands as Brands,
50
50
  type Brand as Brand,
51
- type BrandListResponse as BrandListResponse,
51
+ type BrandsCursorPage as BrandsCursorPage,
52
52
  type BrandRetrieveParams as BrandRetrieveParams,
53
53
  type BrandListParams as BrandListParams,
54
54
  };
@@ -14,6 +14,7 @@ import {
14
14
  Tags,
15
15
  } from './tags';
16
16
  import { APIPromise } from '../../../core/api-promise';
17
+ import { CursorPage, type CursorPageParams, PagePromise } from '../../../core/pagination';
17
18
  import { buildHeaders } from '../../../internal/headers';
18
19
  import { RequestOptions } from '../../../internal/request-options';
19
20
  import { path } from '../../../internal/utils/path';
@@ -492,16 +493,18 @@ export class Conversations extends APIResource {
492
493
  *
493
494
  * @example
494
495
  * ```ts
495
- * const conversations =
496
- * await client.support.conversations.list();
496
+ * // Automatically fetches more pages as needed.
497
+ * for await (const conversation of client.support.conversations.list()) {
498
+ * // ...
499
+ * }
497
500
  * ```
498
501
  */
499
502
  list(
500
503
  params: ConversationListParams | null | undefined = {},
501
504
  options?: RequestOptions,
502
- ): APIPromise<ConversationListResponse> {
505
+ ): PagePromise<ConversationsCursorPage, Conversation> {
503
506
  const { 'Featurebase-Version': featurebaseVersion, ...query } = params ?? {};
504
- return this._client.get('/v2/conversations', {
507
+ return this._client.getAPIList('/v2/conversations', CursorPage<Conversation>, {
505
508
  query,
506
509
  ...options,
507
510
  headers: buildHeaders([
@@ -772,6 +775,8 @@ export class Conversations extends APIResource {
772
775
  }
773
776
  }
774
777
 
778
+ export type ConversationsCursorPage = CursorPage<Conversation>;
779
+
775
780
  export interface Conversation {
776
781
  /**
777
782
  * Unique conversation identifier
@@ -2310,23 +2315,6 @@ export interface EmailRecipients {
2310
2315
  ids?: Array<string>;
2311
2316
  }
2312
2317
 
2313
- export interface ConversationListResponse {
2314
- /**
2315
- * Array of conversations
2316
- */
2317
- data: Array<Conversation>;
2318
-
2319
- /**
2320
- * Cursor for fetching the next page
2321
- */
2322
- nextCursor: string | null;
2323
-
2324
- /**
2325
- * Object type identifier
2326
- */
2327
- object: 'list';
2328
- }
2329
-
2330
2318
  export interface ConversationDeleteResponse {
2331
2319
  /**
2332
2320
  * Unique identifier of the deleted conversation
@@ -2534,18 +2522,7 @@ export namespace ConversationUpdateParams {
2534
2522
  }
2535
2523
  }
2536
2524
 
2537
- export interface ConversationListParams {
2538
- /**
2539
- * Query param: An opaque cursor for pagination. Use the nextCursor value from a
2540
- * previous response to fetch the next page of results.
2541
- */
2542
- cursor?: string;
2543
-
2544
- /**
2545
- * Query param: A limit on the number of objects to be returned, between 1 and 100.
2546
- */
2547
- limit?: number;
2548
-
2525
+ export interface ConversationListParams extends CursorPageParams {
2549
2526
  /**
2550
2527
  * Query param: Filter conversations by one or more tag IDs using a comma-separated
2551
2528
  * list. Conversations must contain all provided tags.
@@ -2695,8 +2672,8 @@ export declare namespace Conversations {
2695
2672
  type CsatRatedAgent as CsatRatedAgent,
2696
2673
  type CsatWorkflowLink as CsatWorkflowLink,
2697
2674
  type EmailRecipients as EmailRecipients,
2698
- type ConversationListResponse as ConversationListResponse,
2699
2675
  type ConversationDeleteResponse as ConversationDeleteResponse,
2676
+ type ConversationsCursorPage as ConversationsCursorPage,
2700
2677
  type ConversationCreateParams as ConversationCreateParams,
2701
2678
  type ConversationRetrieveParams as ConversationRetrieveParams,
2702
2679
  type ConversationUpdateParams as ConversationUpdateParams,
@@ -11,7 +11,6 @@ export {
11
11
  type CsatRatedAgent,
12
12
  type CsatWorkflowLink,
13
13
  type EmailRecipients,
14
- type ConversationListResponse,
15
14
  type ConversationDeleteResponse,
16
15
  type ConversationCreateParams,
17
16
  type ConversationRetrieveParams,
@@ -20,6 +19,7 @@ export {
20
19
  type ConversationDeleteParams,
21
20
  type ConversationRedactParams,
22
21
  type ConversationReplyParams,
22
+ type ConversationsCursorPage,
23
23
  } from './conversations';
24
24
  export { Participants, type ParticipantAddParams, type ParticipantRemoveParams } from './participants';
25
25
  export {
@@ -21,7 +21,6 @@ export {
21
21
  type CsatRatedAgent,
22
22
  type CsatWorkflowLink,
23
23
  type EmailRecipients,
24
- type ConversationListResponse,
25
24
  type ConversationDeleteResponse,
26
25
  type ConversationCreateParams,
27
26
  type ConversationRetrieveParams,
@@ -30,13 +29,13 @@ export {
30
29
  type ConversationDeleteParams,
31
30
  type ConversationRedactParams,
32
31
  type ConversationReplyParams,
32
+ type ConversationsCursorPage,
33
33
  } from './conversations/index';
34
34
  export { Support } from './support';
35
35
  export {
36
36
  Tickets,
37
37
  type AuthorInput,
38
38
  type Ticket,
39
- type TicketListResponse,
40
39
  type TicketDeleteResponse,
41
40
  type TicketCreateParams,
42
41
  type TicketRetrieveParams,
@@ -44,4 +43,5 @@ export {
44
43
  type TicketListParams,
45
44
  type TicketDeleteParams,
46
45
  type TicketReplyParams,
46
+ type TicketsCursorPage,
47
47
  } from './tickets/index';
@@ -19,7 +19,6 @@ import {
19
19
  ConversationDeleteParams,
20
20
  ConversationDeleteResponse,
21
21
  ConversationListParams,
22
- ConversationListResponse,
23
22
  ConversationPart,
24
23
  ConversationPartAuthor,
25
24
  ConversationParticipant,
@@ -29,6 +28,7 @@ import {
29
28
  ConversationTagApplication,
30
29
  ConversationUpdateParams,
31
30
  Conversations,
31
+ ConversationsCursorPage,
32
32
  CsatEmailDelivery,
33
33
  CsatRatedAgent,
34
34
  CsatWorkflowLink,
@@ -42,11 +42,11 @@ import {
42
42
  TicketDeleteParams,
43
43
  TicketDeleteResponse,
44
44
  TicketListParams,
45
- TicketListResponse,
46
45
  TicketReplyParams,
47
46
  TicketRetrieveParams,
48
47
  TicketUpdateParams,
49
48
  Tickets,
49
+ TicketsCursorPage,
50
50
  } from './tickets/tickets';
51
51
 
52
52
  export class Support extends APIResource {
@@ -73,8 +73,8 @@ export declare namespace Support {
73
73
  type CsatRatedAgent as CsatRatedAgent,
74
74
  type CsatWorkflowLink as CsatWorkflowLink,
75
75
  type EmailRecipients as EmailRecipients,
76
- type ConversationListResponse as ConversationListResponse,
77
76
  type ConversationDeleteResponse as ConversationDeleteResponse,
77
+ type ConversationsCursorPage as ConversationsCursorPage,
78
78
  type ConversationCreateParams as ConversationCreateParams,
79
79
  type ConversationRetrieveParams as ConversationRetrieveParams,
80
80
  type ConversationUpdateParams as ConversationUpdateParams,
@@ -99,8 +99,8 @@ export declare namespace Support {
99
99
  Tickets as Tickets,
100
100
  type AuthorInput as AuthorInput,
101
101
  type Ticket as Ticket,
102
- type TicketListResponse as TicketListResponse,
103
102
  type TicketDeleteResponse as TicketDeleteResponse,
103
+ type TicketsCursorPage as TicketsCursorPage,
104
104
  type TicketCreateParams as TicketCreateParams,
105
105
  type TicketRetrieveParams as TicketRetrieveParams,
106
106
  type TicketUpdateParams as TicketUpdateParams,
@@ -17,7 +17,6 @@ export {
17
17
  Tickets,
18
18
  type AuthorInput,
19
19
  type Ticket,
20
- type TicketListResponse,
21
20
  type TicketDeleteResponse,
22
21
  type TicketCreateParams,
23
22
  type TicketRetrieveParams,
@@ -25,4 +24,5 @@ export {
25
24
  type TicketListParams,
26
25
  type TicketDeleteParams,
27
26
  type TicketReplyParams,
27
+ type TicketsCursorPage,
28
28
  } from './tickets';