@unkey/api 2.3.4 → 2.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 (191) hide show
  1. package/README.md +4 -2
  2. package/dist/commonjs/funcs/apisListKeys.d.ts +5 -1
  3. package/dist/commonjs/funcs/apisListKeys.d.ts.map +1 -1
  4. package/dist/commonjs/funcs/apisListKeys.js +34 -6
  5. package/dist/commonjs/funcs/apisListKeys.js.map +1 -1
  6. package/dist/commonjs/funcs/identitiesListIdentities.d.ts.map +1 -1
  7. package/dist/commonjs/funcs/identitiesListIdentities.js +1 -2
  8. package/dist/commonjs/funcs/identitiesListIdentities.js.map +1 -1
  9. package/dist/commonjs/funcs/permissionsListPermissions.d.ts +5 -1
  10. package/dist/commonjs/funcs/permissionsListPermissions.d.ts.map +1 -1
  11. package/dist/commonjs/funcs/permissionsListPermissions.js +34 -6
  12. package/dist/commonjs/funcs/permissionsListPermissions.js.map +1 -1
  13. package/dist/commonjs/funcs/permissionsListRoles.d.ts +5 -1
  14. package/dist/commonjs/funcs/permissionsListRoles.d.ts.map +1 -1
  15. package/dist/commonjs/funcs/permissionsListRoles.js +34 -6
  16. package/dist/commonjs/funcs/permissionsListRoles.js.map +1 -1
  17. package/dist/commonjs/funcs/ratelimitListOverrides.d.ts +5 -1
  18. package/dist/commonjs/funcs/ratelimitListOverrides.d.ts.map +1 -1
  19. package/dist/commonjs/funcs/ratelimitListOverrides.js +34 -6
  20. package/dist/commonjs/funcs/ratelimitListOverrides.js.map +1 -1
  21. package/dist/commonjs/hooks/types.d.ts +1 -0
  22. package/dist/commonjs/hooks/types.d.ts.map +1 -1
  23. package/dist/commonjs/lib/config.d.ts +3 -3
  24. package/dist/commonjs/lib/config.js +3 -3
  25. package/dist/commonjs/lib/encodings.js +12 -12
  26. package/dist/commonjs/lib/encodings.js.map +1 -1
  27. package/dist/commonjs/lib/env.d.ts.map +1 -1
  28. package/dist/commonjs/lib/env.js +3 -3
  29. package/dist/commonjs/lib/env.js.map +1 -1
  30. package/dist/commonjs/lib/matchers.js +3 -3
  31. package/dist/commonjs/lib/matchers.js.map +1 -1
  32. package/dist/commonjs/lib/primitives.d.ts +1 -0
  33. package/dist/commonjs/lib/primitives.d.ts.map +1 -1
  34. package/dist/commonjs/lib/primitives.js +18 -0
  35. package/dist/commonjs/lib/primitives.js.map +1 -1
  36. package/dist/commonjs/lib/retries.js +7 -0
  37. package/dist/commonjs/lib/retries.js.map +1 -1
  38. package/dist/commonjs/lib/sdks.d.ts.map +1 -1
  39. package/dist/commonjs/lib/sdks.js +50 -16
  40. package/dist/commonjs/lib/sdks.js.map +1 -1
  41. package/dist/commonjs/models/operations/apislistkeys.d.ts +11 -0
  42. package/dist/commonjs/models/operations/apislistkeys.d.ts.map +1 -0
  43. package/dist/commonjs/models/operations/apislistkeys.js +56 -0
  44. package/dist/commonjs/models/operations/apislistkeys.js.map +1 -0
  45. package/dist/commonjs/models/operations/index.d.ts +4 -0
  46. package/dist/commonjs/models/operations/index.d.ts.map +1 -1
  47. package/dist/commonjs/models/operations/index.js +4 -0
  48. package/dist/commonjs/models/operations/index.js.map +1 -1
  49. package/dist/commonjs/models/operations/permissionslistpermissions.d.ts +11 -0
  50. package/dist/commonjs/models/operations/permissionslistpermissions.d.ts.map +1 -0
  51. package/dist/commonjs/models/operations/permissionslistpermissions.js +56 -0
  52. package/dist/commonjs/models/operations/permissionslistpermissions.js.map +1 -0
  53. package/dist/commonjs/models/operations/permissionslistroles.d.ts +11 -0
  54. package/dist/commonjs/models/operations/permissionslistroles.d.ts.map +1 -0
  55. package/dist/commonjs/models/operations/permissionslistroles.js +56 -0
  56. package/dist/commonjs/models/operations/permissionslistroles.js.map +1 -0
  57. package/dist/commonjs/models/operations/ratelimitlistoverrides.d.ts +11 -0
  58. package/dist/commonjs/models/operations/ratelimitlistoverrides.d.ts.map +1 -0
  59. package/dist/commonjs/models/operations/ratelimitlistoverrides.js +56 -0
  60. package/dist/commonjs/models/operations/ratelimitlistoverrides.js.map +1 -0
  61. package/dist/commonjs/sdk/apis.d.ts +5 -1
  62. package/dist/commonjs/sdk/apis.d.ts.map +1 -1
  63. package/dist/commonjs/sdk/apis.js +2 -1
  64. package/dist/commonjs/sdk/apis.js.map +1 -1
  65. package/dist/commonjs/sdk/permissions.d.ts +8 -2
  66. package/dist/commonjs/sdk/permissions.d.ts.map +1 -1
  67. package/dist/commonjs/sdk/permissions.js +3 -2
  68. package/dist/commonjs/sdk/permissions.js.map +1 -1
  69. package/dist/commonjs/sdk/ratelimit.d.ts +5 -1
  70. package/dist/commonjs/sdk/ratelimit.d.ts.map +1 -1
  71. package/dist/commonjs/sdk/ratelimit.js +2 -1
  72. package/dist/commonjs/sdk/ratelimit.js.map +1 -1
  73. package/dist/commonjs/types/async.d.ts.map +1 -1
  74. package/dist/commonjs/types/async.js +8 -7
  75. package/dist/commonjs/types/async.js.map +1 -1
  76. package/dist/esm/funcs/apisListKeys.d.ts +5 -1
  77. package/dist/esm/funcs/apisListKeys.d.ts.map +1 -1
  78. package/dist/esm/funcs/apisListKeys.js +34 -6
  79. package/dist/esm/funcs/apisListKeys.js.map +1 -1
  80. package/dist/esm/funcs/identitiesListIdentities.d.ts.map +1 -1
  81. package/dist/esm/funcs/identitiesListIdentities.js +1 -2
  82. package/dist/esm/funcs/identitiesListIdentities.js.map +1 -1
  83. package/dist/esm/funcs/permissionsListPermissions.d.ts +5 -1
  84. package/dist/esm/funcs/permissionsListPermissions.d.ts.map +1 -1
  85. package/dist/esm/funcs/permissionsListPermissions.js +34 -6
  86. package/dist/esm/funcs/permissionsListPermissions.js.map +1 -1
  87. package/dist/esm/funcs/permissionsListRoles.d.ts +5 -1
  88. package/dist/esm/funcs/permissionsListRoles.d.ts.map +1 -1
  89. package/dist/esm/funcs/permissionsListRoles.js +34 -6
  90. package/dist/esm/funcs/permissionsListRoles.js.map +1 -1
  91. package/dist/esm/funcs/ratelimitListOverrides.d.ts +5 -1
  92. package/dist/esm/funcs/ratelimitListOverrides.d.ts.map +1 -1
  93. package/dist/esm/funcs/ratelimitListOverrides.js +34 -6
  94. package/dist/esm/funcs/ratelimitListOverrides.js.map +1 -1
  95. package/dist/esm/hooks/types.d.ts +1 -0
  96. package/dist/esm/hooks/types.d.ts.map +1 -1
  97. package/dist/esm/lib/config.d.ts +3 -3
  98. package/dist/esm/lib/config.js +3 -3
  99. package/dist/esm/lib/encodings.js +1 -1
  100. package/dist/esm/lib/encodings.js.map +1 -1
  101. package/dist/esm/lib/env.d.ts.map +1 -1
  102. package/dist/esm/lib/env.js +3 -3
  103. package/dist/esm/lib/env.js.map +1 -1
  104. package/dist/esm/lib/matchers.js +1 -1
  105. package/dist/esm/lib/matchers.js.map +1 -1
  106. package/dist/esm/lib/primitives.d.ts +1 -0
  107. package/dist/esm/lib/primitives.d.ts.map +1 -1
  108. package/dist/esm/lib/primitives.js +17 -0
  109. package/dist/esm/lib/primitives.js.map +1 -1
  110. package/dist/esm/lib/retries.js +7 -0
  111. package/dist/esm/lib/retries.js.map +1 -1
  112. package/dist/esm/lib/sdks.d.ts.map +1 -1
  113. package/dist/esm/lib/sdks.js +50 -16
  114. package/dist/esm/lib/sdks.js.map +1 -1
  115. package/dist/esm/models/operations/apislistkeys.d.ts +11 -0
  116. package/dist/esm/models/operations/apislistkeys.d.ts.map +1 -0
  117. package/dist/esm/models/operations/apislistkeys.js +19 -0
  118. package/dist/esm/models/operations/apislistkeys.js.map +1 -0
  119. package/dist/esm/models/operations/index.d.ts +4 -0
  120. package/dist/esm/models/operations/index.d.ts.map +1 -1
  121. package/dist/esm/models/operations/index.js +4 -0
  122. package/dist/esm/models/operations/index.js.map +1 -1
  123. package/dist/esm/models/operations/permissionslistpermissions.d.ts +11 -0
  124. package/dist/esm/models/operations/permissionslistpermissions.d.ts.map +1 -0
  125. package/dist/esm/models/operations/permissionslistpermissions.js +19 -0
  126. package/dist/esm/models/operations/permissionslistpermissions.js.map +1 -0
  127. package/dist/esm/models/operations/permissionslistroles.d.ts +11 -0
  128. package/dist/esm/models/operations/permissionslistroles.d.ts.map +1 -0
  129. package/dist/esm/models/operations/permissionslistroles.js +19 -0
  130. package/dist/esm/models/operations/permissionslistroles.js.map +1 -0
  131. package/dist/esm/models/operations/ratelimitlistoverrides.d.ts +11 -0
  132. package/dist/esm/models/operations/ratelimitlistoverrides.d.ts.map +1 -0
  133. package/dist/esm/models/operations/ratelimitlistoverrides.js +19 -0
  134. package/dist/esm/models/operations/ratelimitlistoverrides.js.map +1 -0
  135. package/dist/esm/sdk/apis.d.ts +5 -1
  136. package/dist/esm/sdk/apis.d.ts.map +1 -1
  137. package/dist/esm/sdk/apis.js +2 -1
  138. package/dist/esm/sdk/apis.js.map +1 -1
  139. package/dist/esm/sdk/permissions.d.ts +8 -2
  140. package/dist/esm/sdk/permissions.d.ts.map +1 -1
  141. package/dist/esm/sdk/permissions.js +3 -2
  142. package/dist/esm/sdk/permissions.js.map +1 -1
  143. package/dist/esm/sdk/ratelimit.d.ts +5 -1
  144. package/dist/esm/sdk/ratelimit.d.ts.map +1 -1
  145. package/dist/esm/sdk/ratelimit.js +2 -1
  146. package/dist/esm/sdk/ratelimit.js.map +1 -1
  147. package/dist/esm/types/async.d.ts.map +1 -1
  148. package/dist/esm/types/async.js +8 -7
  149. package/dist/esm/types/async.js.map +1 -1
  150. package/jsr.json +1 -1
  151. package/package.json +2 -1
  152. package/src/funcs/apisListKeys.ts +110 -40
  153. package/src/funcs/identitiesListIdentities.ts +2 -2
  154. package/src/funcs/permissionsListPermissions.ts +107 -41
  155. package/src/funcs/permissionsListRoles.ts +110 -40
  156. package/src/funcs/ratelimitListOverrides.ts +110 -40
  157. package/src/hooks/types.ts +1 -0
  158. package/src/lib/config.ts +3 -3
  159. package/src/lib/encodings.ts +1 -1
  160. package/src/lib/env.ts +7 -3
  161. package/src/lib/matchers.ts +1 -1
  162. package/src/lib/primitives.ts +16 -0
  163. package/src/lib/retries.ts +8 -0
  164. package/src/lib/sdks.ts +54 -17
  165. package/src/models/operations/apislistkeys.ts +37 -0
  166. package/src/models/operations/index.ts +4 -0
  167. package/src/models/operations/permissionslistpermissions.ts +38 -0
  168. package/src/models/operations/permissionslistroles.ts +37 -0
  169. package/src/models/operations/ratelimitlistoverrides.ts +37 -0
  170. package/src/sdk/apis.ts +6 -2
  171. package/src/sdk/permissions.ts +13 -4
  172. package/src/sdk/ratelimit.ts +6 -2
  173. package/src/types/async.ts +8 -7
  174. package/dist/commonjs/lib/dlv.d.ts +0 -14
  175. package/dist/commonjs/lib/dlv.d.ts.map +0 -1
  176. package/dist/commonjs/lib/dlv.js +0 -49
  177. package/dist/commonjs/lib/dlv.js.map +0 -1
  178. package/dist/commonjs/lib/is-plain-object.d.ts +0 -2
  179. package/dist/commonjs/lib/is-plain-object.d.ts.map +0 -1
  180. package/dist/commonjs/lib/is-plain-object.js +0 -41
  181. package/dist/commonjs/lib/is-plain-object.js.map +0 -1
  182. package/dist/esm/lib/dlv.d.ts +0 -14
  183. package/dist/esm/lib/dlv.d.ts.map +0 -1
  184. package/dist/esm/lib/dlv.js +0 -46
  185. package/dist/esm/lib/dlv.js.map +0 -1
  186. package/dist/esm/lib/is-plain-object.d.ts +0 -2
  187. package/dist/esm/lib/is-plain-object.d.ts.map +0 -1
  188. package/dist/esm/lib/is-plain-object.js +0 -38
  189. package/dist/esm/lib/is-plain-object.js.map +0 -1
  190. package/src/lib/dlv.ts +0 -53
  191. package/src/lib/is-plain-object.ts +0 -43
@@ -23,8 +23,15 @@ import * as errors from "../models/errors/index.js";
23
23
  import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
24
24
  import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
25
25
  import { UnkeyError } from "../models/errors/unkeyerror.js";
26
+ import * as operations from "../models/operations/index.js";
26
27
  import { APICall, APIPromise } from "../types/async.js";
27
28
  import { Result } from "../types/fp.js";
29
+ import {
30
+ createPageIterator,
31
+ haltIterator,
32
+ PageIterator,
33
+ Paginator,
34
+ } from "../types/operations.js";
28
35
 
29
36
  /**
30
37
  * List permissions
@@ -45,21 +52,24 @@ export function permissionsListPermissions(
45
52
  request: components.V2PermissionsListPermissionsRequestBody,
46
53
  options?: RequestOptions,
47
54
  ): APIPromise<
48
- Result<
49
- components.V2PermissionsListPermissionsResponseBody,
50
- | errors.BadRequestErrorResponse
51
- | errors.UnauthorizedErrorResponse
52
- | errors.ForbiddenErrorResponse
53
- | errors.TooManyRequestsErrorResponse
54
- | errors.InternalServerErrorResponse
55
- | UnkeyError
56
- | ResponseValidationError
57
- | ConnectionError
58
- | RequestAbortedError
59
- | RequestTimeoutError
60
- | InvalidRequestError
61
- | UnexpectedClientError
62
- | SDKValidationError
55
+ PageIterator<
56
+ Result<
57
+ operations.PermissionsListPermissionsResponse,
58
+ | errors.BadRequestErrorResponse
59
+ | errors.UnauthorizedErrorResponse
60
+ | errors.ForbiddenErrorResponse
61
+ | errors.TooManyRequestsErrorResponse
62
+ | errors.InternalServerErrorResponse
63
+ | UnkeyError
64
+ | ResponseValidationError
65
+ | ConnectionError
66
+ | RequestAbortedError
67
+ | RequestTimeoutError
68
+ | InvalidRequestError
69
+ | UnexpectedClientError
70
+ | SDKValidationError
71
+ >,
72
+ { cursor: string }
63
73
  >
64
74
  > {
65
75
  return new APIPromise($do(
@@ -75,21 +85,24 @@ async function $do(
75
85
  options?: RequestOptions,
76
86
  ): Promise<
77
87
  [
78
- Result<
79
- components.V2PermissionsListPermissionsResponseBody,
80
- | errors.BadRequestErrorResponse
81
- | errors.UnauthorizedErrorResponse
82
- | errors.ForbiddenErrorResponse
83
- | errors.TooManyRequestsErrorResponse
84
- | errors.InternalServerErrorResponse
85
- | UnkeyError
86
- | ResponseValidationError
87
- | ConnectionError
88
- | RequestAbortedError
89
- | RequestTimeoutError
90
- | InvalidRequestError
91
- | UnexpectedClientError
92
- | SDKValidationError
88
+ PageIterator<
89
+ Result<
90
+ operations.PermissionsListPermissionsResponse,
91
+ | errors.BadRequestErrorResponse
92
+ | errors.UnauthorizedErrorResponse
93
+ | errors.ForbiddenErrorResponse
94
+ | errors.TooManyRequestsErrorResponse
95
+ | errors.InternalServerErrorResponse
96
+ | UnkeyError
97
+ | ResponseValidationError
98
+ | ConnectionError
99
+ | RequestAbortedError
100
+ | RequestTimeoutError
101
+ | InvalidRequestError
102
+ | UnexpectedClientError
103
+ | SDKValidationError
104
+ >,
105
+ { cursor: string }
93
106
  >,
94
107
  APICall,
95
108
  ]
@@ -103,7 +116,7 @@ async function $do(
103
116
  "Input validation failed",
104
117
  );
105
118
  if (!parsed.ok) {
106
- return [parsed, { status: "invalid" }];
119
+ return [haltIterator(parsed), { status: "invalid" }];
107
120
  }
108
121
  const payload = parsed.value;
109
122
  const body = encodeJSON("body", payload, { explode: true });
@@ -155,7 +168,7 @@ async function $do(
155
168
  timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
156
169
  }, options);
157
170
  if (!requestRes.ok) {
158
- return [requestRes, { status: "invalid" }];
171
+ return [haltIterator(requestRes), { status: "invalid" }];
159
172
  }
160
173
  const req = requestRes.value;
161
174
 
@@ -167,7 +180,7 @@ async function $do(
167
180
  retryCodes: context.retryCodes,
168
181
  });
169
182
  if (!doResult.ok) {
170
- return [doResult, { status: "request-error", request: req }];
183
+ return [haltIterator(doResult), { status: "request-error", request: req }];
171
184
  }
172
185
  const response = doResult.value;
173
186
 
@@ -175,8 +188,8 @@ async function $do(
175
188
  HttpMeta: { Response: response, Request: req },
176
189
  };
177
190
 
178
- const [result] = await M.match<
179
- components.V2PermissionsListPermissionsResponseBody,
191
+ const [result, raw] = await M.match<
192
+ operations.PermissionsListPermissionsResponse,
180
193
  | errors.BadRequestErrorResponse
181
194
  | errors.UnauthorizedErrorResponse
182
195
  | errors.ForbiddenErrorResponse
@@ -191,10 +204,9 @@ async function $do(
191
204
  | UnexpectedClientError
192
205
  | SDKValidationError
193
206
  >(
194
- M.json(
195
- 200,
196
- components.V2PermissionsListPermissionsResponseBody$inboundSchema,
197
- ),
207
+ M.json(200, operations.PermissionsListPermissionsResponse$inboundSchema, {
208
+ key: "Result",
209
+ }),
198
210
  M.jsonErr(400, errors.BadRequestErrorResponse$inboundSchema),
199
211
  M.jsonErr(401, errors.UnauthorizedErrorResponse$inboundSchema),
200
212
  M.jsonErr(403, errors.ForbiddenErrorResponse$inboundSchema),
@@ -206,8 +218,62 @@ async function $do(
206
218
  M.fail("5XX"),
207
219
  )(response, req, { extraFields: responseFields });
208
220
  if (!result.ok) {
209
- return [result, { status: "complete", request: req, response }];
221
+ return [haltIterator(result), {
222
+ status: "complete",
223
+ request: req,
224
+ response,
225
+ }];
210
226
  }
211
227
 
212
- return [result, { status: "complete", request: req, response }];
228
+ const nextFunc = (
229
+ responseData: unknown,
230
+ ): {
231
+ next: Paginator<
232
+ Result<
233
+ operations.PermissionsListPermissionsResponse,
234
+ | errors.BadRequestErrorResponse
235
+ | errors.UnauthorizedErrorResponse
236
+ | errors.ForbiddenErrorResponse
237
+ | errors.TooManyRequestsErrorResponse
238
+ | errors.InternalServerErrorResponse
239
+ | UnkeyError
240
+ | ResponseValidationError
241
+ | ConnectionError
242
+ | RequestAbortedError
243
+ | RequestTimeoutError
244
+ | InvalidRequestError
245
+ | UnexpectedClientError
246
+ | SDKValidationError
247
+ >
248
+ >;
249
+ "~next"?: { cursor: string };
250
+ } => {
251
+ const nextCursor = (responseData as { pagination?: { cursor?: unknown } })
252
+ .pagination?.cursor;
253
+ if (typeof nextCursor !== "string") {
254
+ return { next: () => null };
255
+ }
256
+ if (nextCursor.trim() === "") {
257
+ return { next: () => null };
258
+ }
259
+
260
+ const nextVal = () =>
261
+ permissionsListPermissions(
262
+ client,
263
+ {
264
+ ...request,
265
+ cursor: nextCursor,
266
+ },
267
+ options,
268
+ );
269
+
270
+ return { next: nextVal, "~next": { cursor: nextCursor } };
271
+ };
272
+
273
+ const page = { ...result, ...nextFunc(raw) };
274
+ return [{ ...page, ...createPageIterator(page, (v) => !v.ok) }, {
275
+ status: "complete",
276
+ request: req,
277
+ response,
278
+ }];
213
279
  }
@@ -23,8 +23,15 @@ import * as errors from "../models/errors/index.js";
23
23
  import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
24
24
  import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
25
25
  import { UnkeyError } from "../models/errors/unkeyerror.js";
26
+ import * as operations from "../models/operations/index.js";
26
27
  import { APICall, APIPromise } from "../types/async.js";
27
28
  import { Result } from "../types/fp.js";
29
+ import {
30
+ createPageIterator,
31
+ haltIterator,
32
+ PageIterator,
33
+ Paginator,
34
+ } from "../types/operations.js";
28
35
 
29
36
  /**
30
37
  * List roles
@@ -45,39 +52,9 @@ export function permissionsListRoles(
45
52
  request: components.V2PermissionsListRolesRequestBody,
46
53
  options?: RequestOptions,
47
54
  ): APIPromise<
48
- Result<
49
- components.V2PermissionsListRolesResponseBody,
50
- | errors.BadRequestErrorResponse
51
- | errors.UnauthorizedErrorResponse
52
- | errors.ForbiddenErrorResponse
53
- | errors.NotFoundErrorResponse
54
- | errors.TooManyRequestsErrorResponse
55
- | errors.InternalServerErrorResponse
56
- | UnkeyError
57
- | ResponseValidationError
58
- | ConnectionError
59
- | RequestAbortedError
60
- | RequestTimeoutError
61
- | InvalidRequestError
62
- | UnexpectedClientError
63
- | SDKValidationError
64
- >
65
- > {
66
- return new APIPromise($do(
67
- client,
68
- request,
69
- options,
70
- ));
71
- }
72
-
73
- async function $do(
74
- client: UnkeyCore,
75
- request: components.V2PermissionsListRolesRequestBody,
76
- options?: RequestOptions,
77
- ): Promise<
78
- [
55
+ PageIterator<
79
56
  Result<
80
- components.V2PermissionsListRolesResponseBody,
57
+ operations.PermissionsListRolesResponse,
81
58
  | errors.BadRequestErrorResponse
82
59
  | errors.UnauthorizedErrorResponse
83
60
  | errors.ForbiddenErrorResponse
@@ -93,6 +70,42 @@ async function $do(
93
70
  | UnexpectedClientError
94
71
  | SDKValidationError
95
72
  >,
73
+ { cursor: string }
74
+ >
75
+ > {
76
+ return new APIPromise($do(
77
+ client,
78
+ request,
79
+ options,
80
+ ));
81
+ }
82
+
83
+ async function $do(
84
+ client: UnkeyCore,
85
+ request: components.V2PermissionsListRolesRequestBody,
86
+ options?: RequestOptions,
87
+ ): Promise<
88
+ [
89
+ PageIterator<
90
+ Result<
91
+ operations.PermissionsListRolesResponse,
92
+ | errors.BadRequestErrorResponse
93
+ | errors.UnauthorizedErrorResponse
94
+ | errors.ForbiddenErrorResponse
95
+ | errors.NotFoundErrorResponse
96
+ | errors.TooManyRequestsErrorResponse
97
+ | errors.InternalServerErrorResponse
98
+ | UnkeyError
99
+ | ResponseValidationError
100
+ | ConnectionError
101
+ | RequestAbortedError
102
+ | RequestTimeoutError
103
+ | InvalidRequestError
104
+ | UnexpectedClientError
105
+ | SDKValidationError
106
+ >,
107
+ { cursor: string }
108
+ >,
96
109
  APICall,
97
110
  ]
98
111
  > {
@@ -103,7 +116,7 @@ async function $do(
103
116
  "Input validation failed",
104
117
  );
105
118
  if (!parsed.ok) {
106
- return [parsed, { status: "invalid" }];
119
+ return [haltIterator(parsed), { status: "invalid" }];
107
120
  }
108
121
  const payload = parsed.value;
109
122
  const body = encodeJSON("body", payload, { explode: true });
@@ -155,7 +168,7 @@ async function $do(
155
168
  timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
156
169
  }, options);
157
170
  if (!requestRes.ok) {
158
- return [requestRes, { status: "invalid" }];
171
+ return [haltIterator(requestRes), { status: "invalid" }];
159
172
  }
160
173
  const req = requestRes.value;
161
174
 
@@ -167,7 +180,7 @@ async function $do(
167
180
  retryCodes: context.retryCodes,
168
181
  });
169
182
  if (!doResult.ok) {
170
- return [doResult, { status: "request-error", request: req }];
183
+ return [haltIterator(doResult), { status: "request-error", request: req }];
171
184
  }
172
185
  const response = doResult.value;
173
186
 
@@ -175,8 +188,8 @@ async function $do(
175
188
  HttpMeta: { Response: response, Request: req },
176
189
  };
177
190
 
178
- const [result] = await M.match<
179
- components.V2PermissionsListRolesResponseBody,
191
+ const [result, raw] = await M.match<
192
+ operations.PermissionsListRolesResponse,
180
193
  | errors.BadRequestErrorResponse
181
194
  | errors.UnauthorizedErrorResponse
182
195
  | errors.ForbiddenErrorResponse
@@ -192,7 +205,9 @@ async function $do(
192
205
  | UnexpectedClientError
193
206
  | SDKValidationError
194
207
  >(
195
- M.json(200, components.V2PermissionsListRolesResponseBody$inboundSchema),
208
+ M.json(200, operations.PermissionsListRolesResponse$inboundSchema, {
209
+ key: "Result",
210
+ }),
196
211
  M.jsonErr(400, errors.BadRequestErrorResponse$inboundSchema),
197
212
  M.jsonErr(401, errors.UnauthorizedErrorResponse$inboundSchema),
198
213
  M.jsonErr(403, errors.ForbiddenErrorResponse$inboundSchema),
@@ -205,8 +220,63 @@ async function $do(
205
220
  M.fail("5XX"),
206
221
  )(response, req, { extraFields: responseFields });
207
222
  if (!result.ok) {
208
- return [result, { status: "complete", request: req, response }];
223
+ return [haltIterator(result), {
224
+ status: "complete",
225
+ request: req,
226
+ response,
227
+ }];
209
228
  }
210
229
 
211
- return [result, { status: "complete", request: req, response }];
230
+ const nextFunc = (
231
+ responseData: unknown,
232
+ ): {
233
+ next: Paginator<
234
+ Result<
235
+ operations.PermissionsListRolesResponse,
236
+ | errors.BadRequestErrorResponse
237
+ | errors.UnauthorizedErrorResponse
238
+ | errors.ForbiddenErrorResponse
239
+ | errors.NotFoundErrorResponse
240
+ | errors.TooManyRequestsErrorResponse
241
+ | errors.InternalServerErrorResponse
242
+ | UnkeyError
243
+ | ResponseValidationError
244
+ | ConnectionError
245
+ | RequestAbortedError
246
+ | RequestTimeoutError
247
+ | InvalidRequestError
248
+ | UnexpectedClientError
249
+ | SDKValidationError
250
+ >
251
+ >;
252
+ "~next"?: { cursor: string };
253
+ } => {
254
+ const nextCursor = (responseData as { pagination?: { cursor?: unknown } })
255
+ .pagination?.cursor;
256
+ if (typeof nextCursor !== "string") {
257
+ return { next: () => null };
258
+ }
259
+ if (nextCursor.trim() === "") {
260
+ return { next: () => null };
261
+ }
262
+
263
+ const nextVal = () =>
264
+ permissionsListRoles(
265
+ client,
266
+ {
267
+ ...request,
268
+ cursor: nextCursor,
269
+ },
270
+ options,
271
+ );
272
+
273
+ return { next: nextVal, "~next": { cursor: nextCursor } };
274
+ };
275
+
276
+ const page = { ...result, ...nextFunc(raw) };
277
+ return [{ ...page, ...createPageIterator(page, (v) => !v.ok) }, {
278
+ status: "complete",
279
+ request: req,
280
+ response,
281
+ }];
212
282
  }
@@ -23,8 +23,15 @@ import * as errors from "../models/errors/index.js";
23
23
  import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
24
24
  import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
25
25
  import { UnkeyError } from "../models/errors/unkeyerror.js";
26
+ import * as operations from "../models/operations/index.js";
26
27
  import { APICall, APIPromise } from "../types/async.js";
27
28
  import { Result } from "../types/fp.js";
29
+ import {
30
+ createPageIterator,
31
+ haltIterator,
32
+ PageIterator,
33
+ Paginator,
34
+ } from "../types/operations.js";
28
35
 
29
36
  /**
30
37
  * List ratelimit overrides
@@ -45,39 +52,9 @@ export function ratelimitListOverrides(
45
52
  request: components.V2RatelimitListOverridesRequestBody,
46
53
  options?: RequestOptions,
47
54
  ): APIPromise<
48
- Result<
49
- components.V2RatelimitListOverridesResponseBody,
50
- | errors.BadRequestErrorResponse
51
- | errors.UnauthorizedErrorResponse
52
- | errors.ForbiddenErrorResponse
53
- | errors.NotFoundErrorResponse
54
- | errors.TooManyRequestsErrorResponse
55
- | errors.InternalServerErrorResponse
56
- | UnkeyError
57
- | ResponseValidationError
58
- | ConnectionError
59
- | RequestAbortedError
60
- | RequestTimeoutError
61
- | InvalidRequestError
62
- | UnexpectedClientError
63
- | SDKValidationError
64
- >
65
- > {
66
- return new APIPromise($do(
67
- client,
68
- request,
69
- options,
70
- ));
71
- }
72
-
73
- async function $do(
74
- client: UnkeyCore,
75
- request: components.V2RatelimitListOverridesRequestBody,
76
- options?: RequestOptions,
77
- ): Promise<
78
- [
55
+ PageIterator<
79
56
  Result<
80
- components.V2RatelimitListOverridesResponseBody,
57
+ operations.RatelimitListOverridesResponse,
81
58
  | errors.BadRequestErrorResponse
82
59
  | errors.UnauthorizedErrorResponse
83
60
  | errors.ForbiddenErrorResponse
@@ -93,6 +70,42 @@ async function $do(
93
70
  | UnexpectedClientError
94
71
  | SDKValidationError
95
72
  >,
73
+ { cursor: string }
74
+ >
75
+ > {
76
+ return new APIPromise($do(
77
+ client,
78
+ request,
79
+ options,
80
+ ));
81
+ }
82
+
83
+ async function $do(
84
+ client: UnkeyCore,
85
+ request: components.V2RatelimitListOverridesRequestBody,
86
+ options?: RequestOptions,
87
+ ): Promise<
88
+ [
89
+ PageIterator<
90
+ Result<
91
+ operations.RatelimitListOverridesResponse,
92
+ | errors.BadRequestErrorResponse
93
+ | errors.UnauthorizedErrorResponse
94
+ | errors.ForbiddenErrorResponse
95
+ | errors.NotFoundErrorResponse
96
+ | errors.TooManyRequestsErrorResponse
97
+ | errors.InternalServerErrorResponse
98
+ | UnkeyError
99
+ | ResponseValidationError
100
+ | ConnectionError
101
+ | RequestAbortedError
102
+ | RequestTimeoutError
103
+ | InvalidRequestError
104
+ | UnexpectedClientError
105
+ | SDKValidationError
106
+ >,
107
+ { cursor: string }
108
+ >,
96
109
  APICall,
97
110
  ]
98
111
  > {
@@ -105,7 +118,7 @@ async function $do(
105
118
  "Input validation failed",
106
119
  );
107
120
  if (!parsed.ok) {
108
- return [parsed, { status: "invalid" }];
121
+ return [haltIterator(parsed), { status: "invalid" }];
109
122
  }
110
123
  const payload = parsed.value;
111
124
  const body = encodeJSON("body", payload, { explode: true });
@@ -157,7 +170,7 @@ async function $do(
157
170
  timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
158
171
  }, options);
159
172
  if (!requestRes.ok) {
160
- return [requestRes, { status: "invalid" }];
173
+ return [haltIterator(requestRes), { status: "invalid" }];
161
174
  }
162
175
  const req = requestRes.value;
163
176
 
@@ -169,7 +182,7 @@ async function $do(
169
182
  retryCodes: context.retryCodes,
170
183
  });
171
184
  if (!doResult.ok) {
172
- return [doResult, { status: "request-error", request: req }];
185
+ return [haltIterator(doResult), { status: "request-error", request: req }];
173
186
  }
174
187
  const response = doResult.value;
175
188
 
@@ -177,8 +190,8 @@ async function $do(
177
190
  HttpMeta: { Response: response, Request: req },
178
191
  };
179
192
 
180
- const [result] = await M.match<
181
- components.V2RatelimitListOverridesResponseBody,
193
+ const [result, raw] = await M.match<
194
+ operations.RatelimitListOverridesResponse,
182
195
  | errors.BadRequestErrorResponse
183
196
  | errors.UnauthorizedErrorResponse
184
197
  | errors.ForbiddenErrorResponse
@@ -194,7 +207,9 @@ async function $do(
194
207
  | UnexpectedClientError
195
208
  | SDKValidationError
196
209
  >(
197
- M.json(200, components.V2RatelimitListOverridesResponseBody$inboundSchema),
210
+ M.json(200, operations.RatelimitListOverridesResponse$inboundSchema, {
211
+ key: "Result",
212
+ }),
198
213
  M.jsonErr(400, errors.BadRequestErrorResponse$inboundSchema),
199
214
  M.jsonErr(401, errors.UnauthorizedErrorResponse$inboundSchema),
200
215
  M.jsonErr(403, errors.ForbiddenErrorResponse$inboundSchema),
@@ -207,8 +222,63 @@ async function $do(
207
222
  M.fail("5XX"),
208
223
  )(response, req, { extraFields: responseFields });
209
224
  if (!result.ok) {
210
- return [result, { status: "complete", request: req, response }];
225
+ return [haltIterator(result), {
226
+ status: "complete",
227
+ request: req,
228
+ response,
229
+ }];
211
230
  }
212
231
 
213
- return [result, { status: "complete", request: req, response }];
232
+ const nextFunc = (
233
+ responseData: unknown,
234
+ ): {
235
+ next: Paginator<
236
+ Result<
237
+ operations.RatelimitListOverridesResponse,
238
+ | errors.BadRequestErrorResponse
239
+ | errors.UnauthorizedErrorResponse
240
+ | errors.ForbiddenErrorResponse
241
+ | errors.NotFoundErrorResponse
242
+ | errors.TooManyRequestsErrorResponse
243
+ | errors.InternalServerErrorResponse
244
+ | UnkeyError
245
+ | ResponseValidationError
246
+ | ConnectionError
247
+ | RequestAbortedError
248
+ | RequestTimeoutError
249
+ | InvalidRequestError
250
+ | UnexpectedClientError
251
+ | SDKValidationError
252
+ >
253
+ >;
254
+ "~next"?: { cursor: string };
255
+ } => {
256
+ const nextCursor = (responseData as { pagination?: { cursor?: unknown } })
257
+ .pagination?.cursor;
258
+ if (typeof nextCursor !== "string") {
259
+ return { next: () => null };
260
+ }
261
+ if (nextCursor.trim() === "") {
262
+ return { next: () => null };
263
+ }
264
+
265
+ const nextVal = () =>
266
+ ratelimitListOverrides(
267
+ client,
268
+ {
269
+ ...request,
270
+ cursor: nextCursor,
271
+ },
272
+ options,
273
+ );
274
+
275
+ return { next: nextVal, "~next": { cursor: nextCursor } };
276
+ };
277
+
278
+ const page = { ...result, ...nextFunc(raw) };
279
+ return [{ ...page, ...createPageIterator(page, (v) => !v.ok) }, {
280
+ status: "complete",
281
+ request: req,
282
+ response,
283
+ }];
214
284
  }
@@ -15,6 +15,7 @@ export type HookContext = {
15
15
  retryConfig: RetryConfig;
16
16
  resolvedSecurity: SecurityState | null;
17
17
  options: SDKOptions;
18
+ timeoutMs?: number;
18
19
  };
19
20
 
20
21
  export type Awaitable<T> = T | Promise<T>;
package/src/lib/config.ts CHANGED
@@ -58,7 +58,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
58
58
  export const SDK_METADATA = {
59
59
  language: "typescript",
60
60
  openapiDocVersion: "2.0.0",
61
- sdkVersion: "2.3.4",
62
- genVersion: "2.882.0",
63
- userAgent: "speakeasy-sdk/typescript 2.3.4 2.882.0 2.0.0 @unkey/api",
61
+ sdkVersion: "2.4.0",
62
+ genVersion: "2.910.1",
63
+ userAgent: "speakeasy-sdk/typescript 2.4.0 2.910.1 2.0.0 @unkey/api",
64
64
  } as const;
@@ -3,7 +3,7 @@
3
3
  */
4
4
 
5
5
  import { bytesToBase64 } from "./base64.js";
6
- import { isPlainObject } from "./is-plain-object.js";
6
+ import { isPlainObject } from "./primitives.js";
7
7
 
8
8
  export class EncodingError extends Error {
9
9
  constructor(message: string) {
package/src/lib/env.ts CHANGED
@@ -3,7 +3,6 @@
3
3
  */
4
4
 
5
5
  import * as z from "zod/v3";
6
- import { dlv } from "./dlv.js";
7
6
 
8
7
  export interface Env {
9
8
  UNKEY_ROOT_KEY?: string | undefined;
@@ -38,11 +37,16 @@ export function env(): Env {
38
37
  return envMemo;
39
38
  }
40
39
 
40
+ const globals = globalThis as {
41
+ Deno?: { env?: { toObject?: () => Record<string, string | undefined> } };
42
+ process?: { env?: Record<string, string | undefined> };
43
+ };
44
+
41
45
  let envObject: Record<string, unknown> = {};
42
46
  if (isDeno()) {
43
- envObject = (globalThis as any).Deno?.env?.toObject?.() ?? {};
47
+ envObject = globals.Deno?.env?.toObject?.() ?? {};
44
48
  } else {
45
- envObject = dlv(globalThis, "process.env") ?? {};
49
+ envObject = globals.process?.env ?? {};
46
50
  }
47
51
 
48
52
  envMemo = envSchema.parse(envObject);