@polar-sh/sdk 0.17.0 → 0.17.2

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 (224) hide show
  1. package/README.md +43 -12
  2. package/funcs/advertisementsList.d.ts +3 -1
  3. package/funcs/advertisementsList.d.ts.map +1 -1
  4. package/funcs/advertisementsList.js +7 -6
  5. package/funcs/advertisementsList.js.map +1 -1
  6. package/funcs/articlesList.d.ts +3 -1
  7. package/funcs/articlesList.d.ts.map +1 -1
  8. package/funcs/articlesList.js +7 -6
  9. package/funcs/articlesList.js.map +1 -1
  10. package/funcs/benefitsGrants.d.ts +3 -1
  11. package/funcs/benefitsGrants.d.ts.map +1 -1
  12. package/funcs/benefitsGrants.js +7 -6
  13. package/funcs/benefitsGrants.js.map +1 -1
  14. package/funcs/benefitsList.d.ts +3 -1
  15. package/funcs/benefitsList.d.ts.map +1 -1
  16. package/funcs/benefitsList.js +7 -6
  17. package/funcs/benefitsList.js.map +1 -1
  18. package/funcs/checkoutLinksList.d.ts +3 -1
  19. package/funcs/checkoutLinksList.d.ts.map +1 -1
  20. package/funcs/checkoutLinksList.js +7 -6
  21. package/funcs/checkoutLinksList.js.map +1 -1
  22. package/funcs/checkoutsCustomList.d.ts +3 -1
  23. package/funcs/checkoutsCustomList.d.ts.map +1 -1
  24. package/funcs/checkoutsCustomList.js +7 -6
  25. package/funcs/checkoutsCustomList.js.map +1 -1
  26. package/funcs/customFieldsList.d.ts +3 -1
  27. package/funcs/customFieldsList.d.ts.map +1 -1
  28. package/funcs/customFieldsList.js +7 -6
  29. package/funcs/customFieldsList.js.map +1 -1
  30. package/funcs/discountsList.d.ts +3 -1
  31. package/funcs/discountsList.d.ts.map +1 -1
  32. package/funcs/discountsList.js +7 -6
  33. package/funcs/discountsList.js.map +1 -1
  34. package/funcs/externalOrganizationsList.d.ts +3 -1
  35. package/funcs/externalOrganizationsList.d.ts.map +1 -1
  36. package/funcs/externalOrganizationsList.js +7 -6
  37. package/funcs/externalOrganizationsList.js.map +1 -1
  38. package/funcs/filesList.d.ts +3 -1
  39. package/funcs/filesList.d.ts.map +1 -1
  40. package/funcs/filesList.js +7 -6
  41. package/funcs/filesList.js.map +1 -1
  42. package/funcs/licenseKeysList.d.ts +3 -1
  43. package/funcs/licenseKeysList.d.ts.map +1 -1
  44. package/funcs/licenseKeysList.js +7 -6
  45. package/funcs/licenseKeysList.js.map +1 -1
  46. package/funcs/oauth2ClientsList.d.ts +3 -1
  47. package/funcs/oauth2ClientsList.d.ts.map +1 -1
  48. package/funcs/oauth2ClientsList.js +7 -6
  49. package/funcs/oauth2ClientsList.js.map +1 -1
  50. package/funcs/ordersList.d.ts +3 -1
  51. package/funcs/ordersList.d.ts.map +1 -1
  52. package/funcs/ordersList.js +7 -6
  53. package/funcs/ordersList.js.map +1 -1
  54. package/funcs/organizationsList.d.ts +3 -1
  55. package/funcs/organizationsList.d.ts.map +1 -1
  56. package/funcs/organizationsList.js +7 -6
  57. package/funcs/organizationsList.js.map +1 -1
  58. package/funcs/productsList.d.ts +3 -1
  59. package/funcs/productsList.d.ts.map +1 -1
  60. package/funcs/productsList.js +7 -6
  61. package/funcs/productsList.js.map +1 -1
  62. package/funcs/repositoriesList.d.ts +3 -1
  63. package/funcs/repositoriesList.d.ts.map +1 -1
  64. package/funcs/repositoriesList.js +7 -6
  65. package/funcs/repositoriesList.js.map +1 -1
  66. package/funcs/subscriptionsList.d.ts +3 -1
  67. package/funcs/subscriptionsList.d.ts.map +1 -1
  68. package/funcs/subscriptionsList.js +7 -6
  69. package/funcs/subscriptionsList.js.map +1 -1
  70. package/funcs/usersAdvertisementsList.d.ts +3 -1
  71. package/funcs/usersAdvertisementsList.d.ts.map +1 -1
  72. package/funcs/usersAdvertisementsList.js +7 -6
  73. package/funcs/usersAdvertisementsList.js.map +1 -1
  74. package/funcs/usersBenefitsList.d.ts +3 -1
  75. package/funcs/usersBenefitsList.d.ts.map +1 -1
  76. package/funcs/usersBenefitsList.js +7 -6
  77. package/funcs/usersBenefitsList.js.map +1 -1
  78. package/funcs/usersDownloadablesList.d.ts +3 -1
  79. package/funcs/usersDownloadablesList.d.ts.map +1 -1
  80. package/funcs/usersDownloadablesList.js +7 -6
  81. package/funcs/usersDownloadablesList.js.map +1 -1
  82. package/funcs/usersLicenseKeysList.d.ts +3 -1
  83. package/funcs/usersLicenseKeysList.d.ts.map +1 -1
  84. package/funcs/usersLicenseKeysList.js +7 -6
  85. package/funcs/usersLicenseKeysList.js.map +1 -1
  86. package/funcs/usersOrdersList.d.ts +3 -1
  87. package/funcs/usersOrdersList.d.ts.map +1 -1
  88. package/funcs/usersOrdersList.js +7 -6
  89. package/funcs/usersOrdersList.js.map +1 -1
  90. package/funcs/usersSubscriptionsList.d.ts +3 -1
  91. package/funcs/usersSubscriptionsList.d.ts.map +1 -1
  92. package/funcs/usersSubscriptionsList.js +7 -6
  93. package/funcs/usersSubscriptionsList.js.map +1 -1
  94. package/jest.config.js +5 -0
  95. package/lib/config.d.ts +3 -3
  96. package/lib/config.js +3 -3
  97. package/lib/primitives.d.ts +2 -0
  98. package/lib/primitives.d.ts.map +1 -1
  99. package/lib/primitives.js +53 -0
  100. package/lib/primitives.js.map +1 -1
  101. package/package.json +8 -2
  102. package/sdk/advertisements.d.ts +3 -1
  103. package/sdk/advertisements.d.ts.map +1 -1
  104. package/sdk/advertisements.js.map +1 -1
  105. package/sdk/articles.d.ts +3 -1
  106. package/sdk/articles.d.ts.map +1 -1
  107. package/sdk/benefits.d.ts +6 -2
  108. package/sdk/benefits.d.ts.map +1 -1
  109. package/sdk/benefits.js.map +1 -1
  110. package/sdk/checkoutlinks.d.ts +3 -1
  111. package/sdk/checkoutlinks.d.ts.map +1 -1
  112. package/sdk/checkoutlinks.js.map +1 -1
  113. package/sdk/clients.d.ts +3 -1
  114. package/sdk/clients.d.ts.map +1 -1
  115. package/sdk/clients.js.map +1 -1
  116. package/sdk/custom.d.ts +3 -1
  117. package/sdk/custom.d.ts.map +1 -1
  118. package/sdk/custom.js.map +1 -1
  119. package/sdk/customfields.d.ts +3 -1
  120. package/sdk/customfields.d.ts.map +1 -1
  121. package/sdk/customfields.js.map +1 -1
  122. package/sdk/discounts.d.ts +3 -1
  123. package/sdk/discounts.d.ts.map +1 -1
  124. package/sdk/downloadables.d.ts +3 -1
  125. package/sdk/downloadables.d.ts.map +1 -1
  126. package/sdk/downloadables.js.map +1 -1
  127. package/sdk/externalorganizations.d.ts +3 -1
  128. package/sdk/externalorganizations.d.ts.map +1 -1
  129. package/sdk/externalorganizations.js.map +1 -1
  130. package/sdk/files.d.ts +3 -1
  131. package/sdk/files.d.ts.map +1 -1
  132. package/sdk/licensekeys.d.ts +3 -1
  133. package/sdk/licensekeys.d.ts.map +1 -1
  134. package/sdk/licensekeys.js.map +1 -1
  135. package/sdk/orders.d.ts +3 -1
  136. package/sdk/orders.d.ts.map +1 -1
  137. package/sdk/organizations.d.ts +3 -1
  138. package/sdk/organizations.d.ts.map +1 -1
  139. package/sdk/organizations.js.map +1 -1
  140. package/sdk/polaradvertisements.d.ts +3 -1
  141. package/sdk/polaradvertisements.d.ts.map +1 -1
  142. package/sdk/polaradvertisements.js.map +1 -1
  143. package/sdk/polarbenefits.d.ts +3 -1
  144. package/sdk/polarbenefits.d.ts.map +1 -1
  145. package/sdk/polarbenefits.js.map +1 -1
  146. package/sdk/polarlicensekeys.d.ts +3 -1
  147. package/sdk/polarlicensekeys.d.ts.map +1 -1
  148. package/sdk/polarlicensekeys.js.map +1 -1
  149. package/sdk/polarorders.d.ts +3 -1
  150. package/sdk/polarorders.d.ts.map +1 -1
  151. package/sdk/polarorders.js.map +1 -1
  152. package/sdk/polarsubscriptions.d.ts +3 -1
  153. package/sdk/polarsubscriptions.d.ts.map +1 -1
  154. package/sdk/polarsubscriptions.js.map +1 -1
  155. package/sdk/products.d.ts +3 -1
  156. package/sdk/products.d.ts.map +1 -1
  157. package/sdk/repositories.d.ts +3 -1
  158. package/sdk/repositories.d.ts.map +1 -1
  159. package/sdk/repositories.js.map +1 -1
  160. package/sdk/subscriptions.d.ts +3 -1
  161. package/sdk/subscriptions.d.ts.map +1 -1
  162. package/sdk/subscriptions.js.map +1 -1
  163. package/src/funcs/advertisementsList.ts +26 -20
  164. package/src/funcs/articlesList.ts +26 -20
  165. package/src/funcs/benefitsGrants.ts +27 -21
  166. package/src/funcs/benefitsList.ts +26 -20
  167. package/src/funcs/checkoutLinksList.ts +26 -20
  168. package/src/funcs/checkoutsCustomList.ts +26 -20
  169. package/src/funcs/customFieldsList.ts +26 -20
  170. package/src/funcs/discountsList.ts +26 -20
  171. package/src/funcs/externalOrganizationsList.ts +26 -20
  172. package/src/funcs/filesList.ts +26 -20
  173. package/src/funcs/licenseKeysList.ts +28 -22
  174. package/src/funcs/oauth2ClientsList.ts +26 -20
  175. package/src/funcs/ordersList.ts +26 -20
  176. package/src/funcs/organizationsList.ts +26 -20
  177. package/src/funcs/productsList.ts +26 -20
  178. package/src/funcs/repositoriesList.ts +26 -20
  179. package/src/funcs/subscriptionsList.ts +26 -20
  180. package/src/funcs/usersAdvertisementsList.ts +26 -20
  181. package/src/funcs/usersBenefitsList.ts +26 -20
  182. package/src/funcs/usersDownloadablesList.ts +26 -20
  183. package/src/funcs/usersLicenseKeysList.ts +28 -22
  184. package/src/funcs/usersOrdersList.ts +26 -20
  185. package/src/funcs/usersSubscriptionsList.ts +26 -20
  186. package/src/lib/config.ts +3 -3
  187. package/src/lib/primitives.ts +62 -0
  188. package/src/sdk/advertisements.ts +3 -1
  189. package/src/sdk/articles.ts +1 -1
  190. package/src/sdk/benefits.ts +4 -2
  191. package/src/sdk/checkoutlinks.ts +3 -1
  192. package/src/sdk/clients.ts +3 -1
  193. package/src/sdk/custom.ts +3 -1
  194. package/src/sdk/customfields.ts +3 -1
  195. package/src/sdk/discounts.ts +1 -1
  196. package/src/sdk/downloadables.ts +3 -1
  197. package/src/sdk/externalorganizations.ts +3 -1
  198. package/src/sdk/files.ts +1 -1
  199. package/src/sdk/licensekeys.ts +3 -1
  200. package/src/sdk/orders.ts +1 -1
  201. package/src/sdk/organizations.ts +3 -1
  202. package/src/sdk/polaradvertisements.ts +3 -1
  203. package/src/sdk/polarbenefits.ts +3 -1
  204. package/src/sdk/polarlicensekeys.ts +3 -1
  205. package/src/sdk/polarorders.ts +3 -1
  206. package/src/sdk/polarsubscriptions.ts +3 -1
  207. package/src/sdk/products.ts +1 -1
  208. package/src/sdk/repositories.ts +3 -1
  209. package/src/sdk/subscriptions.ts +3 -1
  210. package/src/types/operations.ts +11 -5
  211. package/src/webhooks/index.test.ts +115 -0
  212. package/src/webhooks/index.ts +96 -0
  213. package/types/operations.d.ts +5 -3
  214. package/types/operations.d.ts.map +1 -1
  215. package/types/operations.js +3 -0
  216. package/types/operations.js.map +1 -1
  217. package/webhooks/index.d.ts +6 -0
  218. package/webhooks/index.d.ts.map +1 -0
  219. package/webhooks/index.js +76 -0
  220. package/webhooks/index.js.map +1 -0
  221. package/webhooks/index.test.d.ts +2 -0
  222. package/webhooks/index.test.d.ts.map +1 -0
  223. package/webhooks/index.test.js +107 -0
  224. package/webhooks/index.test.js.map +1 -0
@@ -51,7 +51,8 @@ export async function usersOrdersList(
51
51
  | RequestAbortedError
52
52
  | RequestTimeoutError
53
53
  | ConnectionError
54
- >
54
+ >,
55
+ { page: number }
55
56
  >
56
57
  > {
57
58
  const parsed = safeParse(
@@ -151,39 +152,42 @@ export async function usersOrdersList(
151
152
 
152
153
  const nextFunc = (
153
154
  responseData: unknown,
154
- ): Paginator<
155
- Result<
156
- operations.UsersOrdersListResponse,
157
- | errors.HTTPValidationError
158
- | SDKError
159
- | SDKValidationError
160
- | UnexpectedClientError
161
- | InvalidRequestError
162
- | RequestAbortedError
163
- | RequestTimeoutError
164
- | ConnectionError
165
- >
166
- > => {
155
+ ): {
156
+ next: Paginator<
157
+ Result<
158
+ operations.UsersOrdersListResponse,
159
+ | errors.HTTPValidationError
160
+ | SDKError
161
+ | SDKValidationError
162
+ | UnexpectedClientError
163
+ | InvalidRequestError
164
+ | RequestAbortedError
165
+ | RequestTimeoutError
166
+ | ConnectionError
167
+ >
168
+ >;
169
+ "~next"?: { page: number };
170
+ } => {
167
171
  const page = request?.page || 0;
168
172
  const nextPage = page + 1;
169
173
  const numPages = dlv(responseData, "pagination.max_page");
170
174
  if (numPages == null || numPages <= page) {
171
- return () => null;
175
+ return { next: () => null };
172
176
  }
173
177
 
174
178
  if (!responseData) {
175
- return () => null;
179
+ return { next: () => null };
176
180
  }
177
181
  const results = dlv(responseData, "items");
178
182
  if (!Array.isArray(results) || !results.length) {
179
- return () => null;
183
+ return { next: () => null };
180
184
  }
181
185
  const limit = request?.limit || 0;
182
186
  if (results.length < limit) {
183
- return () => null;
187
+ return { next: () => null };
184
188
  }
185
189
 
186
- return () =>
190
+ const nextVal = () =>
187
191
  usersOrdersList(
188
192
  client,
189
193
  {
@@ -192,8 +196,10 @@ export async function usersOrdersList(
192
196
  },
193
197
  options,
194
198
  );
199
+
200
+ return { next: nextVal, "~next": { page: nextPage } };
195
201
  };
196
202
 
197
- const page = { ...result, next: nextFunc(raw) };
203
+ const page = { ...result, ...nextFunc(raw) };
198
204
  return { ...page, ...createPageIterator(page, (v) => !v.ok) };
199
205
  }
@@ -51,7 +51,8 @@ export async function usersSubscriptionsList(
51
51
  | RequestAbortedError
52
52
  | RequestTimeoutError
53
53
  | ConnectionError
54
- >
54
+ >,
55
+ { page: number }
55
56
  >
56
57
  > {
57
58
  const parsed = safeParse(
@@ -151,39 +152,42 @@ export async function usersSubscriptionsList(
151
152
 
152
153
  const nextFunc = (
153
154
  responseData: unknown,
154
- ): Paginator<
155
- Result<
156
- operations.UsersSubscriptionsListResponse,
157
- | errors.HTTPValidationError
158
- | SDKError
159
- | SDKValidationError
160
- | UnexpectedClientError
161
- | InvalidRequestError
162
- | RequestAbortedError
163
- | RequestTimeoutError
164
- | ConnectionError
165
- >
166
- > => {
155
+ ): {
156
+ next: Paginator<
157
+ Result<
158
+ operations.UsersSubscriptionsListResponse,
159
+ | errors.HTTPValidationError
160
+ | SDKError
161
+ | SDKValidationError
162
+ | UnexpectedClientError
163
+ | InvalidRequestError
164
+ | RequestAbortedError
165
+ | RequestTimeoutError
166
+ | ConnectionError
167
+ >
168
+ >;
169
+ "~next"?: { page: number };
170
+ } => {
167
171
  const page = request?.page || 0;
168
172
  const nextPage = page + 1;
169
173
  const numPages = dlv(responseData, "pagination.max_page");
170
174
  if (numPages == null || numPages <= page) {
171
- return () => null;
175
+ return { next: () => null };
172
176
  }
173
177
 
174
178
  if (!responseData) {
175
- return () => null;
179
+ return { next: () => null };
176
180
  }
177
181
  const results = dlv(responseData, "items");
178
182
  if (!Array.isArray(results) || !results.length) {
179
- return () => null;
183
+ return { next: () => null };
180
184
  }
181
185
  const limit = request?.limit || 0;
182
186
  if (results.length < limit) {
183
- return () => null;
187
+ return { next: () => null };
184
188
  }
185
189
 
186
- return () =>
190
+ const nextVal = () =>
187
191
  usersSubscriptionsList(
188
192
  client,
189
193
  {
@@ -192,8 +196,10 @@ export async function usersSubscriptionsList(
192
196
  },
193
197
  options,
194
198
  );
199
+
200
+ return { next: nextVal, "~next": { page: nextPage } };
195
201
  };
196
202
 
197
- const page = { ...result, next: nextFunc(raw) };
203
+ const page = { ...result, ...nextFunc(raw) };
198
204
  return { ...page, ...createPageIterator(page, (v) => !v.ok) };
199
205
  }
package/src/lib/config.ts CHANGED
@@ -60,7 +60,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
60
60
  export const SDK_METADATA = {
61
61
  language: "typescript",
62
62
  openapiDocVersion: "0.1.0",
63
- sdkVersion: "0.17.0",
64
- genVersion: "2.462.1",
65
- userAgent: "speakeasy-sdk/typescript 0.17.0 2.462.1 0.1.0 @polar-sh/sdk",
63
+ sdkVersion: "0.17.2",
64
+ genVersion: "2.467.4",
65
+ userAgent: "speakeasy-sdk/typescript 0.17.2 2.467.4 0.1.0 @polar-sh/sdk",
66
66
  } as const;
@@ -58,3 +58,65 @@ export function remap<
58
58
 
59
59
  return out;
60
60
  }
61
+
62
+ export function combineSignals(
63
+ ...signals: Array<AbortSignal | null | undefined>
64
+ ): AbortSignal | null {
65
+ const filtered: AbortSignal[] = [];
66
+ for (const signal of signals) {
67
+ if (signal) {
68
+ filtered.push(signal);
69
+ }
70
+ }
71
+
72
+ switch (filtered.length) {
73
+ case 0:
74
+ case 1:
75
+ return filtered[0] || null;
76
+ default:
77
+ if ("any" in AbortSignal && typeof AbortSignal.any === "function") {
78
+ return AbortSignal.any(filtered);
79
+ }
80
+ return abortSignalAny(filtered);
81
+ }
82
+ }
83
+
84
+ export function abortSignalAny(signals: AbortSignal[]): AbortSignal {
85
+ const controller = new AbortController();
86
+ const result = controller.signal;
87
+ if (!signals.length) {
88
+ return controller.signal;
89
+ }
90
+
91
+ if (signals.length === 1) {
92
+ return signals[0] || controller.signal;
93
+ }
94
+
95
+ for (const signal of signals) {
96
+ if (signal.aborted) {
97
+ return signal;
98
+ }
99
+ }
100
+
101
+ function abort(this: AbortSignal) {
102
+ controller.abort(this.reason);
103
+ clean();
104
+ }
105
+
106
+ const signalRefs: WeakRef<AbortSignal>[] = [];
107
+ function clean() {
108
+ for (const signalRef of signalRefs) {
109
+ const signal = signalRef.deref();
110
+ if (signal) {
111
+ signal.removeEventListener("abort", abort);
112
+ }
113
+ }
114
+ }
115
+
116
+ for (const signal of signals) {
117
+ signalRefs.push(new WeakRef(signal));
118
+ signal.addEventListener("abort", abort);
119
+ }
120
+
121
+ return result;
122
+ }
@@ -20,7 +20,9 @@ export class Advertisements extends ClientSDK {
20
20
  async list(
21
21
  request: operations.AdvertisementsListRequest,
22
22
  options?: RequestOptions,
23
- ): Promise<PageIterator<operations.AdvertisementsListResponse>> {
23
+ ): Promise<
24
+ PageIterator<operations.AdvertisementsListResponse, { page: number }>
25
+ > {
24
26
  return unwrapResultIterator(advertisementsList(
25
27
  this,
26
28
  request,
@@ -27,7 +27,7 @@ export class Articles extends ClientSDK {
27
27
  async list(
28
28
  request: operations.ArticlesListRequest,
29
29
  options?: RequestOptions,
30
- ): Promise<PageIterator<operations.ArticlesListResponse>> {
30
+ ): Promise<PageIterator<operations.ArticlesListResponse, { page: number }>> {
31
31
  return unwrapResultIterator(articlesList(
32
32
  this,
33
33
  request,
@@ -24,7 +24,7 @@ export class Benefits extends ClientSDK {
24
24
  async list(
25
25
  request: operations.BenefitsListRequest,
26
26
  options?: RequestOptions,
27
- ): Promise<PageIterator<operations.BenefitsListResponse>> {
27
+ ): Promise<PageIterator<operations.BenefitsListResponse, { page: number }>> {
28
28
  return unwrapResultIterator(benefitsList(
29
29
  this,
30
30
  request,
@@ -115,7 +115,9 @@ export class Benefits extends ClientSDK {
115
115
  async grants(
116
116
  request: operations.BenefitsGrantsRequest,
117
117
  options?: RequestOptions,
118
- ): Promise<PageIterator<operations.BenefitsGrantsResponse>> {
118
+ ): Promise<
119
+ PageIterator<operations.BenefitsGrantsResponse, { page: number }>
120
+ > {
119
121
  return unwrapResultIterator(benefitsGrants(
120
122
  this,
121
123
  request,
@@ -23,7 +23,9 @@ export class CheckoutLinks extends ClientSDK {
23
23
  async list(
24
24
  request: operations.CheckoutLinksListRequest,
25
25
  options?: RequestOptions,
26
- ): Promise<PageIterator<operations.CheckoutLinksListResponse>> {
26
+ ): Promise<
27
+ PageIterator<operations.CheckoutLinksListResponse, { page: number }>
28
+ > {
27
29
  return unwrapResultIterator(checkoutLinksList(
28
30
  this,
29
31
  request,
@@ -23,7 +23,9 @@ export class Clients extends ClientSDK {
23
23
  async list(
24
24
  request: operations.Oauth2ClientsListRequest,
25
25
  options?: RequestOptions,
26
- ): Promise<PageIterator<operations.Oauth2ClientsListResponse>> {
26
+ ): Promise<
27
+ PageIterator<operations.Oauth2ClientsListResponse, { page: number }>
28
+ > {
27
29
  return unwrapResultIterator(oauth2ClientsList(
28
30
  this,
29
31
  request,
package/src/sdk/custom.ts CHANGED
@@ -25,7 +25,9 @@ export class Custom extends ClientSDK {
25
25
  async list(
26
26
  request: operations.CheckoutsCustomListRequest,
27
27
  options?: RequestOptions,
28
- ): Promise<PageIterator<operations.CheckoutsCustomListResponse>> {
28
+ ): Promise<
29
+ PageIterator<operations.CheckoutsCustomListResponse, { page: number }>
30
+ > {
29
31
  return unwrapResultIterator(checkoutsCustomList(
30
32
  this,
31
33
  request,
@@ -23,7 +23,9 @@ export class CustomFields extends ClientSDK {
23
23
  async list(
24
24
  request: operations.CustomFieldsListRequest,
25
25
  options?: RequestOptions,
26
- ): Promise<PageIterator<operations.CustomFieldsListResponse>> {
26
+ ): Promise<
27
+ PageIterator<operations.CustomFieldsListResponse, { page: number }>
28
+ > {
27
29
  return unwrapResultIterator(customFieldsList(
28
30
  this,
29
31
  request,
@@ -23,7 +23,7 @@ export class Discounts extends ClientSDK {
23
23
  async list(
24
24
  request: operations.DiscountsListRequest,
25
25
  options?: RequestOptions,
26
- ): Promise<PageIterator<operations.DiscountsListResponse>> {
26
+ ): Promise<PageIterator<operations.DiscountsListResponse, { page: number }>> {
27
27
  return unwrapResultIterator(discountsList(
28
28
  this,
29
29
  request,
@@ -16,7 +16,9 @@ export class Downloadables extends ClientSDK {
16
16
  async list(
17
17
  request: operations.UsersDownloadablesListRequest,
18
18
  options?: RequestOptions,
19
- ): Promise<PageIterator<operations.UsersDownloadablesListResponse>> {
19
+ ): Promise<
20
+ PageIterator<operations.UsersDownloadablesListResponse, { page: number }>
21
+ > {
20
22
  return unwrapResultIterator(usersDownloadablesList(
21
23
  this,
22
24
  request,
@@ -17,7 +17,9 @@ export class ExternalOrganizations extends ClientSDK {
17
17
  async list(
18
18
  request: operations.ExternalOrganizationsListRequest,
19
19
  options?: RequestOptions,
20
- ): Promise<PageIterator<operations.ExternalOrganizationsListResponse>> {
20
+ ): Promise<
21
+ PageIterator<operations.ExternalOrganizationsListResponse, { page: number }>
22
+ > {
21
23
  return unwrapResultIterator(externalOrganizationsList(
22
24
  this,
23
25
  request,
package/src/sdk/files.ts CHANGED
@@ -23,7 +23,7 @@ export class Files extends ClientSDK {
23
23
  async list(
24
24
  request: operations.FilesListRequest,
25
25
  options?: RequestOptions,
26
- ): Promise<PageIterator<operations.FilesListResponse>> {
26
+ ): Promise<PageIterator<operations.FilesListResponse, { page: number }>> {
27
27
  return unwrapResultIterator(filesList(
28
28
  this,
29
29
  request,
@@ -22,7 +22,9 @@ export class LicenseKeys extends ClientSDK {
22
22
  async list(
23
23
  request: operations.LicenseKeysListRequest,
24
24
  options?: RequestOptions,
25
- ): Promise<PageIterator<operations.LicenseKeysListResponse>> {
25
+ ): Promise<
26
+ PageIterator<operations.LicenseKeysListResponse, { page: number }>
27
+ > {
26
28
  return unwrapResultIterator(licenseKeysList(
27
29
  this,
28
30
  request,
package/src/sdk/orders.ts CHANGED
@@ -21,7 +21,7 @@ export class Orders extends ClientSDK {
21
21
  async list(
22
22
  request: operations.OrdersListRequest,
23
23
  options?: RequestOptions,
24
- ): Promise<PageIterator<operations.OrdersListResponse>> {
24
+ ): Promise<PageIterator<operations.OrdersListResponse, { page: number }>> {
25
25
  return unwrapResultIterator(ordersList(
26
26
  this,
27
27
  request,
@@ -22,7 +22,9 @@ export class Organizations extends ClientSDK {
22
22
  async list(
23
23
  request: operations.OrganizationsListRequest,
24
24
  options?: RequestOptions,
25
- ): Promise<PageIterator<operations.OrganizationsListResponse>> {
25
+ ): Promise<
26
+ PageIterator<operations.OrganizationsListResponse, { page: number }>
27
+ > {
26
28
  return unwrapResultIterator(organizationsList(
27
29
  this,
28
30
  request,
@@ -24,7 +24,9 @@ export class PolarAdvertisements extends ClientSDK {
24
24
  async list(
25
25
  request: operations.UsersAdvertisementsListRequest,
26
26
  options?: RequestOptions,
27
- ): Promise<PageIterator<operations.UsersAdvertisementsListResponse>> {
27
+ ): Promise<
28
+ PageIterator<operations.UsersAdvertisementsListResponse, { page: number }>
29
+ > {
28
30
  return unwrapResultIterator(usersAdvertisementsList(
29
31
  this,
30
32
  request,
@@ -19,7 +19,9 @@ export class PolarBenefits extends ClientSDK {
19
19
  async list(
20
20
  request: operations.UsersBenefitsListRequest,
21
21
  options?: RequestOptions,
22
- ): Promise<PageIterator<operations.UsersBenefitsListResponse>> {
22
+ ): Promise<
23
+ PageIterator<operations.UsersBenefitsListResponse, { page: number }>
24
+ > {
23
25
  return unwrapResultIterator(usersBenefitsList(
24
26
  this,
25
27
  request,
@@ -20,7 +20,9 @@ export class PolarLicenseKeys extends ClientSDK {
20
20
  async list(
21
21
  request: operations.UsersLicenseKeysListRequest,
22
22
  options?: RequestOptions,
23
- ): Promise<PageIterator<operations.UsersLicenseKeysListResponse>> {
23
+ ): Promise<
24
+ PageIterator<operations.UsersLicenseKeysListResponse, { page: number }>
25
+ > {
24
26
  return unwrapResultIterator(usersLicenseKeysList(
25
27
  this,
26
28
  request,
@@ -21,7 +21,9 @@ export class PolarOrders extends ClientSDK {
21
21
  async list(
22
22
  request: operations.UsersOrdersListRequest,
23
23
  options?: RequestOptions,
24
- ): Promise<PageIterator<operations.UsersOrdersListResponse>> {
24
+ ): Promise<
25
+ PageIterator<operations.UsersOrdersListResponse, { page: number }>
26
+ > {
25
27
  return unwrapResultIterator(usersOrdersList(
26
28
  this,
27
29
  request,
@@ -22,7 +22,9 @@ export class PolarSubscriptions extends ClientSDK {
22
22
  async list(
23
23
  request: operations.UsersSubscriptionsListRequest,
24
24
  options?: RequestOptions,
25
- ): Promise<PageIterator<operations.UsersSubscriptionsListResponse>> {
25
+ ): Promise<
26
+ PageIterator<operations.UsersSubscriptionsListResponse, { page: number }>
27
+ > {
26
28
  return unwrapResultIterator(usersSubscriptionsList(
27
29
  this,
28
30
  request,
@@ -23,7 +23,7 @@ export class Products extends ClientSDK {
23
23
  async list(
24
24
  request: operations.ProductsListRequest,
25
25
  options?: RequestOptions,
26
- ): Promise<PageIterator<operations.ProductsListResponse>> {
26
+ ): Promise<PageIterator<operations.ProductsListResponse, { page: number }>> {
27
27
  return unwrapResultIterator(productsList(
28
28
  this,
29
29
  request,
@@ -21,7 +21,9 @@ export class Repositories extends ClientSDK {
21
21
  async list(
22
22
  request: operations.RepositoriesListRequest,
23
23
  options?: RequestOptions,
24
- ): Promise<PageIterator<operations.RepositoriesListResponse>> {
24
+ ): Promise<
25
+ PageIterator<operations.RepositoriesListResponse, { page: number }>
26
+ > {
25
27
  return unwrapResultIterator(repositoriesList(
26
28
  this,
27
29
  request,
@@ -19,7 +19,9 @@ export class Subscriptions extends ClientSDK {
19
19
  async list(
20
20
  request: operations.SubscriptionsListRequest,
21
21
  options?: RequestOptions,
22
- ): Promise<PageIterator<operations.SubscriptionsListResponse>> {
22
+ ): Promise<
23
+ PageIterator<operations.SubscriptionsListResponse, { page: number }>
24
+ > {
23
25
  return unwrapResultIterator(subscriptionsList(
24
26
  this,
25
27
  request,
@@ -6,9 +6,10 @@ import { Result } from "./fp.js";
6
6
 
7
7
  export type Paginator<V> = () => Promise<V & { next: Paginator<V> }> | null;
8
8
 
9
- export type PageIterator<V> = V & {
9
+ export type PageIterator<V, PageState = unknown> = V & {
10
10
  next: Paginator<V>;
11
11
  [Symbol.asyncIterator]: () => AsyncIterableIterator<V>;
12
+ "~next"?: PageState | undefined;
12
13
  };
13
14
 
14
15
  export function createPageIterator<V>(
@@ -40,7 +41,9 @@ export function createPageIterator<V>(
40
41
  * terminates. It is useful in paginated SDK functions that have early return
41
42
  * paths when things go wrong.
42
43
  */
43
- export function haltIterator<V extends object>(v: V): PageIterator<V> {
44
+ export function haltIterator<V extends object>(
45
+ v: V,
46
+ ): PageIterator<V, undefined> {
44
47
  return {
45
48
  ...v,
46
49
  next: () => null,
@@ -54,9 +57,9 @@ export function haltIterator<V extends object>(v: V): PageIterator<V> {
54
57
  * Converts an async iterator of `Result<V, E>` into an async iterator of `V`.
55
58
  * When error results occur, the underlying error value is thrown.
56
59
  */
57
- export async function unwrapResultIterator<V>(
58
- iteratorPromise: Promise<PageIterator<Result<V, unknown>>>,
59
- ): Promise<PageIterator<V>> {
60
+ export async function unwrapResultIterator<V, PageState>(
61
+ iteratorPromise: Promise<PageIterator<Result<V, unknown>, PageState>>,
62
+ ): Promise<PageIterator<V, PageState>> {
60
63
  const resultIter = await iteratorPromise;
61
64
 
62
65
  if (!resultIter.ok) {
@@ -66,6 +69,7 @@ export async function unwrapResultIterator<V>(
66
69
  return {
67
70
  ...resultIter.value,
68
71
  next: unwrapPaginator(resultIter.next),
72
+ "~next": resultIter["~next"],
69
73
  [Symbol.asyncIterator]: async function* paginator() {
70
74
  for await (const page of resultIter) {
71
75
  if (!page.ok) {
@@ -97,3 +101,5 @@ function unwrapPaginator<V>(
97
101
  });
98
102
  };
99
103
  }
104
+
105
+ export const URL_OVERRIDE = Symbol("URL_OVERRIDE");