@unkey/api 2.3.4 → 2.3.5

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 (128) 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.js +1 -1
  7. package/dist/commonjs/funcs/identitiesListIdentities.js.map +1 -1
  8. package/dist/commonjs/funcs/permissionsListPermissions.d.ts +5 -1
  9. package/dist/commonjs/funcs/permissionsListPermissions.d.ts.map +1 -1
  10. package/dist/commonjs/funcs/permissionsListPermissions.js +34 -6
  11. package/dist/commonjs/funcs/permissionsListPermissions.js.map +1 -1
  12. package/dist/commonjs/funcs/permissionsListRoles.d.ts +5 -1
  13. package/dist/commonjs/funcs/permissionsListRoles.d.ts.map +1 -1
  14. package/dist/commonjs/funcs/permissionsListRoles.js +34 -6
  15. package/dist/commonjs/funcs/permissionsListRoles.js.map +1 -1
  16. package/dist/commonjs/funcs/ratelimitListOverrides.d.ts +5 -1
  17. package/dist/commonjs/funcs/ratelimitListOverrides.d.ts.map +1 -1
  18. package/dist/commonjs/funcs/ratelimitListOverrides.js +34 -6
  19. package/dist/commonjs/funcs/ratelimitListOverrides.js.map +1 -1
  20. package/dist/commonjs/lib/config.d.ts +3 -3
  21. package/dist/commonjs/lib/config.js +3 -3
  22. package/dist/commonjs/models/operations/apislistkeys.d.ts +11 -0
  23. package/dist/commonjs/models/operations/apislistkeys.d.ts.map +1 -0
  24. package/dist/commonjs/models/operations/apislistkeys.js +56 -0
  25. package/dist/commonjs/models/operations/apislistkeys.js.map +1 -0
  26. package/dist/commonjs/models/operations/index.d.ts +4 -0
  27. package/dist/commonjs/models/operations/index.d.ts.map +1 -1
  28. package/dist/commonjs/models/operations/index.js +4 -0
  29. package/dist/commonjs/models/operations/index.js.map +1 -1
  30. package/dist/commonjs/models/operations/permissionslistpermissions.d.ts +11 -0
  31. package/dist/commonjs/models/operations/permissionslistpermissions.d.ts.map +1 -0
  32. package/dist/commonjs/models/operations/permissionslistpermissions.js +56 -0
  33. package/dist/commonjs/models/operations/permissionslistpermissions.js.map +1 -0
  34. package/dist/commonjs/models/operations/permissionslistroles.d.ts +11 -0
  35. package/dist/commonjs/models/operations/permissionslistroles.d.ts.map +1 -0
  36. package/dist/commonjs/models/operations/permissionslistroles.js +56 -0
  37. package/dist/commonjs/models/operations/permissionslistroles.js.map +1 -0
  38. package/dist/commonjs/models/operations/ratelimitlistoverrides.d.ts +11 -0
  39. package/dist/commonjs/models/operations/ratelimitlistoverrides.d.ts.map +1 -0
  40. package/dist/commonjs/models/operations/ratelimitlistoverrides.js +56 -0
  41. package/dist/commonjs/models/operations/ratelimitlistoverrides.js.map +1 -0
  42. package/dist/commonjs/sdk/apis.d.ts +5 -1
  43. package/dist/commonjs/sdk/apis.d.ts.map +1 -1
  44. package/dist/commonjs/sdk/apis.js +2 -1
  45. package/dist/commonjs/sdk/apis.js.map +1 -1
  46. package/dist/commonjs/sdk/permissions.d.ts +8 -2
  47. package/dist/commonjs/sdk/permissions.d.ts.map +1 -1
  48. package/dist/commonjs/sdk/permissions.js +3 -2
  49. package/dist/commonjs/sdk/permissions.js.map +1 -1
  50. package/dist/commonjs/sdk/ratelimit.d.ts +5 -1
  51. package/dist/commonjs/sdk/ratelimit.d.ts.map +1 -1
  52. package/dist/commonjs/sdk/ratelimit.js +2 -1
  53. package/dist/commonjs/sdk/ratelimit.js.map +1 -1
  54. package/dist/commonjs/types/async.d.ts.map +1 -1
  55. package/dist/commonjs/types/async.js +8 -7
  56. package/dist/commonjs/types/async.js.map +1 -1
  57. package/dist/esm/funcs/apisListKeys.d.ts +5 -1
  58. package/dist/esm/funcs/apisListKeys.d.ts.map +1 -1
  59. package/dist/esm/funcs/apisListKeys.js +34 -6
  60. package/dist/esm/funcs/apisListKeys.js.map +1 -1
  61. package/dist/esm/funcs/identitiesListIdentities.js +1 -1
  62. package/dist/esm/funcs/identitiesListIdentities.js.map +1 -1
  63. package/dist/esm/funcs/permissionsListPermissions.d.ts +5 -1
  64. package/dist/esm/funcs/permissionsListPermissions.d.ts.map +1 -1
  65. package/dist/esm/funcs/permissionsListPermissions.js +34 -6
  66. package/dist/esm/funcs/permissionsListPermissions.js.map +1 -1
  67. package/dist/esm/funcs/permissionsListRoles.d.ts +5 -1
  68. package/dist/esm/funcs/permissionsListRoles.d.ts.map +1 -1
  69. package/dist/esm/funcs/permissionsListRoles.js +34 -6
  70. package/dist/esm/funcs/permissionsListRoles.js.map +1 -1
  71. package/dist/esm/funcs/ratelimitListOverrides.d.ts +5 -1
  72. package/dist/esm/funcs/ratelimitListOverrides.d.ts.map +1 -1
  73. package/dist/esm/funcs/ratelimitListOverrides.js +34 -6
  74. package/dist/esm/funcs/ratelimitListOverrides.js.map +1 -1
  75. package/dist/esm/lib/config.d.ts +3 -3
  76. package/dist/esm/lib/config.js +3 -3
  77. package/dist/esm/models/operations/apislistkeys.d.ts +11 -0
  78. package/dist/esm/models/operations/apislistkeys.d.ts.map +1 -0
  79. package/dist/esm/models/operations/apislistkeys.js +19 -0
  80. package/dist/esm/models/operations/apislistkeys.js.map +1 -0
  81. package/dist/esm/models/operations/index.d.ts +4 -0
  82. package/dist/esm/models/operations/index.d.ts.map +1 -1
  83. package/dist/esm/models/operations/index.js +4 -0
  84. package/dist/esm/models/operations/index.js.map +1 -1
  85. package/dist/esm/models/operations/permissionslistpermissions.d.ts +11 -0
  86. package/dist/esm/models/operations/permissionslistpermissions.d.ts.map +1 -0
  87. package/dist/esm/models/operations/permissionslistpermissions.js +19 -0
  88. package/dist/esm/models/operations/permissionslistpermissions.js.map +1 -0
  89. package/dist/esm/models/operations/permissionslistroles.d.ts +11 -0
  90. package/dist/esm/models/operations/permissionslistroles.d.ts.map +1 -0
  91. package/dist/esm/models/operations/permissionslistroles.js +19 -0
  92. package/dist/esm/models/operations/permissionslistroles.js.map +1 -0
  93. package/dist/esm/models/operations/ratelimitlistoverrides.d.ts +11 -0
  94. package/dist/esm/models/operations/ratelimitlistoverrides.d.ts.map +1 -0
  95. package/dist/esm/models/operations/ratelimitlistoverrides.js +19 -0
  96. package/dist/esm/models/operations/ratelimitlistoverrides.js.map +1 -0
  97. package/dist/esm/sdk/apis.d.ts +5 -1
  98. package/dist/esm/sdk/apis.d.ts.map +1 -1
  99. package/dist/esm/sdk/apis.js +2 -1
  100. package/dist/esm/sdk/apis.js.map +1 -1
  101. package/dist/esm/sdk/permissions.d.ts +8 -2
  102. package/dist/esm/sdk/permissions.d.ts.map +1 -1
  103. package/dist/esm/sdk/permissions.js +3 -2
  104. package/dist/esm/sdk/permissions.js.map +1 -1
  105. package/dist/esm/sdk/ratelimit.d.ts +5 -1
  106. package/dist/esm/sdk/ratelimit.d.ts.map +1 -1
  107. package/dist/esm/sdk/ratelimit.js +2 -1
  108. package/dist/esm/sdk/ratelimit.js.map +1 -1
  109. package/dist/esm/types/async.d.ts.map +1 -1
  110. package/dist/esm/types/async.js +8 -7
  111. package/dist/esm/types/async.js.map +1 -1
  112. package/jsr.json +1 -1
  113. package/package.json +1 -1
  114. package/src/funcs/apisListKeys.ts +110 -40
  115. package/src/funcs/identitiesListIdentities.ts +1 -1
  116. package/src/funcs/permissionsListPermissions.ts +107 -41
  117. package/src/funcs/permissionsListRoles.ts +110 -40
  118. package/src/funcs/ratelimitListOverrides.ts +110 -40
  119. package/src/lib/config.ts +3 -3
  120. package/src/models/operations/apislistkeys.ts +37 -0
  121. package/src/models/operations/index.ts +4 -0
  122. package/src/models/operations/permissionslistpermissions.ts +38 -0
  123. package/src/models/operations/permissionslistroles.ts +37 -0
  124. package/src/models/operations/ratelimitlistoverrides.ts +37 -0
  125. package/src/sdk/apis.ts +6 -2
  126. package/src/sdk/permissions.ts +13 -4
  127. package/src/sdk/ratelimit.ts +6 -2
  128. package/src/types/async.ts +8 -7
@@ -3,6 +3,7 @@
3
3
  */
4
4
 
5
5
  import { UnkeyCore } from "../core.js";
6
+ import { dlv } from "../lib/dlv.js";
6
7
  import { encodeJSON } from "../lib/encodings.js";
7
8
  import { matchStatusCode } from "../lib/http.js";
8
9
  import * as M from "../lib/matchers.js";
@@ -23,8 +24,15 @@ import * as errors from "../models/errors/index.js";
23
24
  import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
24
25
  import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
25
26
  import { UnkeyError } from "../models/errors/unkeyerror.js";
27
+ import * as operations from "../models/operations/index.js";
26
28
  import { APICall, APIPromise } from "../types/async.js";
27
29
  import { Result } from "../types/fp.js";
30
+ import {
31
+ createPageIterator,
32
+ haltIterator,
33
+ PageIterator,
34
+ Paginator,
35
+ } from "../types/operations.js";
28
36
 
29
37
  /**
30
38
  * List API keys
@@ -55,39 +63,9 @@ export function apisListKeys(
55
63
  request: components.V2ApisListKeysRequestBody,
56
64
  options?: RequestOptions,
57
65
  ): APIPromise<
58
- Result<
59
- components.V2ApisListKeysResponseBody,
60
- | errors.BadRequestErrorResponse
61
- | errors.UnauthorizedErrorResponse
62
- | errors.ForbiddenErrorResponse
63
- | errors.NotFoundErrorResponse
64
- | errors.TooManyRequestsErrorResponse
65
- | errors.InternalServerErrorResponse
66
- | UnkeyError
67
- | ResponseValidationError
68
- | ConnectionError
69
- | RequestAbortedError
70
- | RequestTimeoutError
71
- | InvalidRequestError
72
- | UnexpectedClientError
73
- | SDKValidationError
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.V2ApisListKeysRequestBody,
86
- options?: RequestOptions,
87
- ): Promise<
88
- [
66
+ PageIterator<
89
67
  Result<
90
- components.V2ApisListKeysResponseBody,
68
+ operations.ApisListKeysResponse,
91
69
  | errors.BadRequestErrorResponse
92
70
  | errors.UnauthorizedErrorResponse
93
71
  | errors.ForbiddenErrorResponse
@@ -103,6 +81,42 @@ async function $do(
103
81
  | UnexpectedClientError
104
82
  | SDKValidationError
105
83
  >,
84
+ { cursor: string }
85
+ >
86
+ > {
87
+ return new APIPromise($do(
88
+ client,
89
+ request,
90
+ options,
91
+ ));
92
+ }
93
+
94
+ async function $do(
95
+ client: UnkeyCore,
96
+ request: components.V2ApisListKeysRequestBody,
97
+ options?: RequestOptions,
98
+ ): Promise<
99
+ [
100
+ PageIterator<
101
+ Result<
102
+ operations.ApisListKeysResponse,
103
+ | errors.BadRequestErrorResponse
104
+ | errors.UnauthorizedErrorResponse
105
+ | errors.ForbiddenErrorResponse
106
+ | errors.NotFoundErrorResponse
107
+ | errors.TooManyRequestsErrorResponse
108
+ | errors.InternalServerErrorResponse
109
+ | UnkeyError
110
+ | ResponseValidationError
111
+ | ConnectionError
112
+ | RequestAbortedError
113
+ | RequestTimeoutError
114
+ | InvalidRequestError
115
+ | UnexpectedClientError
116
+ | SDKValidationError
117
+ >,
118
+ { cursor: string }
119
+ >,
106
120
  APICall,
107
121
  ]
108
122
  > {
@@ -112,7 +126,7 @@ async function $do(
112
126
  "Input validation failed",
113
127
  );
114
128
  if (!parsed.ok) {
115
- return [parsed, { status: "invalid" }];
129
+ return [haltIterator(parsed), { status: "invalid" }];
116
130
  }
117
131
  const payload = parsed.value;
118
132
  const body = encodeJSON("body", payload, { explode: true });
@@ -164,7 +178,7 @@ async function $do(
164
178
  timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
165
179
  }, options);
166
180
  if (!requestRes.ok) {
167
- return [requestRes, { status: "invalid" }];
181
+ return [haltIterator(requestRes), { status: "invalid" }];
168
182
  }
169
183
  const req = requestRes.value;
170
184
 
@@ -176,7 +190,7 @@ async function $do(
176
190
  retryCodes: context.retryCodes,
177
191
  });
178
192
  if (!doResult.ok) {
179
- return [doResult, { status: "request-error", request: req }];
193
+ return [haltIterator(doResult), { status: "request-error", request: req }];
180
194
  }
181
195
  const response = doResult.value;
182
196
 
@@ -184,8 +198,8 @@ async function $do(
184
198
  HttpMeta: { Response: response, Request: req },
185
199
  };
186
200
 
187
- const [result] = await M.match<
188
- components.V2ApisListKeysResponseBody,
201
+ const [result, raw] = await M.match<
202
+ operations.ApisListKeysResponse,
189
203
  | errors.BadRequestErrorResponse
190
204
  | errors.UnauthorizedErrorResponse
191
205
  | errors.ForbiddenErrorResponse
@@ -201,7 +215,9 @@ async function $do(
201
215
  | UnexpectedClientError
202
216
  | SDKValidationError
203
217
  >(
204
- M.json(200, components.V2ApisListKeysResponseBody$inboundSchema),
218
+ M.json(200, operations.ApisListKeysResponse$inboundSchema, {
219
+ key: "Result",
220
+ }),
205
221
  M.jsonErr(400, errors.BadRequestErrorResponse$inboundSchema),
206
222
  M.jsonErr(401, errors.UnauthorizedErrorResponse$inboundSchema),
207
223
  M.jsonErr(403, errors.ForbiddenErrorResponse$inboundSchema),
@@ -214,8 +230,62 @@ async function $do(
214
230
  M.fail("5XX"),
215
231
  )(response, req, { extraFields: responseFields });
216
232
  if (!result.ok) {
217
- return [result, { status: "complete", request: req, response }];
233
+ return [haltIterator(result), {
234
+ status: "complete",
235
+ request: req,
236
+ response,
237
+ }];
218
238
  }
219
239
 
220
- return [result, { status: "complete", request: req, response }];
240
+ const nextFunc = (
241
+ responseData: unknown,
242
+ ): {
243
+ next: Paginator<
244
+ Result<
245
+ operations.ApisListKeysResponse,
246
+ | errors.BadRequestErrorResponse
247
+ | errors.UnauthorizedErrorResponse
248
+ | errors.ForbiddenErrorResponse
249
+ | errors.NotFoundErrorResponse
250
+ | errors.TooManyRequestsErrorResponse
251
+ | errors.InternalServerErrorResponse
252
+ | UnkeyError
253
+ | ResponseValidationError
254
+ | ConnectionError
255
+ | RequestAbortedError
256
+ | RequestTimeoutError
257
+ | InvalidRequestError
258
+ | UnexpectedClientError
259
+ | SDKValidationError
260
+ >
261
+ >;
262
+ "~next"?: { cursor: string };
263
+ } => {
264
+ const nextCursor = dlv(responseData, "pagination.cursor");
265
+ if (typeof nextCursor !== "string") {
266
+ return { next: () => null };
267
+ }
268
+ if (nextCursor.trim() === "") {
269
+ return { next: () => null };
270
+ }
271
+
272
+ const nextVal = () =>
273
+ apisListKeys(
274
+ client,
275
+ {
276
+ ...request,
277
+ cursor: nextCursor,
278
+ },
279
+ options,
280
+ );
281
+
282
+ return { next: nextVal, "~next": { cursor: nextCursor } };
283
+ };
284
+
285
+ const page = { ...result, ...nextFunc(raw) };
286
+ return [{ ...page, ...createPageIterator(page, (v) => !v.ok) }, {
287
+ status: "complete",
288
+ request: req,
289
+ response,
290
+ }];
221
291
  }
@@ -248,7 +248,7 @@ async function $do(
248
248
  >;
249
249
  "~next"?: { cursor: string };
250
250
  } => {
251
- const nextCursor = dlv(responseData, "data.cursor");
251
+ const nextCursor = dlv(responseData, "pagination.cursor");
252
252
  if (typeof nextCursor !== "string") {
253
253
  return { next: () => null };
254
254
  }
@@ -3,6 +3,7 @@
3
3
  */
4
4
 
5
5
  import { UnkeyCore } from "../core.js";
6
+ import { dlv } from "../lib/dlv.js";
6
7
  import { encodeJSON } from "../lib/encodings.js";
7
8
  import { matchStatusCode } from "../lib/http.js";
8
9
  import * as M from "../lib/matchers.js";
@@ -23,8 +24,15 @@ import * as errors from "../models/errors/index.js";
23
24
  import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
24
25
  import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
25
26
  import { UnkeyError } from "../models/errors/unkeyerror.js";
27
+ import * as operations from "../models/operations/index.js";
26
28
  import { APICall, APIPromise } from "../types/async.js";
27
29
  import { Result } from "../types/fp.js";
30
+ import {
31
+ createPageIterator,
32
+ haltIterator,
33
+ PageIterator,
34
+ Paginator,
35
+ } from "../types/operations.js";
28
36
 
29
37
  /**
30
38
  * List permissions
@@ -45,21 +53,24 @@ export function permissionsListPermissions(
45
53
  request: components.V2PermissionsListPermissionsRequestBody,
46
54
  options?: RequestOptions,
47
55
  ): 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
56
+ PageIterator<
57
+ Result<
58
+ operations.PermissionsListPermissionsResponse,
59
+ | errors.BadRequestErrorResponse
60
+ | errors.UnauthorizedErrorResponse
61
+ | errors.ForbiddenErrorResponse
62
+ | errors.TooManyRequestsErrorResponse
63
+ | errors.InternalServerErrorResponse
64
+ | UnkeyError
65
+ | ResponseValidationError
66
+ | ConnectionError
67
+ | RequestAbortedError
68
+ | RequestTimeoutError
69
+ | InvalidRequestError
70
+ | UnexpectedClientError
71
+ | SDKValidationError
72
+ >,
73
+ { cursor: string }
63
74
  >
64
75
  > {
65
76
  return new APIPromise($do(
@@ -75,21 +86,24 @@ async function $do(
75
86
  options?: RequestOptions,
76
87
  ): Promise<
77
88
  [
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
89
+ PageIterator<
90
+ Result<
91
+ operations.PermissionsListPermissionsResponse,
92
+ | errors.BadRequestErrorResponse
93
+ | errors.UnauthorizedErrorResponse
94
+ | errors.ForbiddenErrorResponse
95
+ | errors.TooManyRequestsErrorResponse
96
+ | errors.InternalServerErrorResponse
97
+ | UnkeyError
98
+ | ResponseValidationError
99
+ | ConnectionError
100
+ | RequestAbortedError
101
+ | RequestTimeoutError
102
+ | InvalidRequestError
103
+ | UnexpectedClientError
104
+ | SDKValidationError
105
+ >,
106
+ { cursor: string }
93
107
  >,
94
108
  APICall,
95
109
  ]
@@ -103,7 +117,7 @@ async function $do(
103
117
  "Input validation failed",
104
118
  );
105
119
  if (!parsed.ok) {
106
- return [parsed, { status: "invalid" }];
120
+ return [haltIterator(parsed), { status: "invalid" }];
107
121
  }
108
122
  const payload = parsed.value;
109
123
  const body = encodeJSON("body", payload, { explode: true });
@@ -155,7 +169,7 @@ async function $do(
155
169
  timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
156
170
  }, options);
157
171
  if (!requestRes.ok) {
158
- return [requestRes, { status: "invalid" }];
172
+ return [haltIterator(requestRes), { status: "invalid" }];
159
173
  }
160
174
  const req = requestRes.value;
161
175
 
@@ -167,7 +181,7 @@ async function $do(
167
181
  retryCodes: context.retryCodes,
168
182
  });
169
183
  if (!doResult.ok) {
170
- return [doResult, { status: "request-error", request: req }];
184
+ return [haltIterator(doResult), { status: "request-error", request: req }];
171
185
  }
172
186
  const response = doResult.value;
173
187
 
@@ -175,8 +189,8 @@ async function $do(
175
189
  HttpMeta: { Response: response, Request: req },
176
190
  };
177
191
 
178
- const [result] = await M.match<
179
- components.V2PermissionsListPermissionsResponseBody,
192
+ const [result, raw] = await M.match<
193
+ operations.PermissionsListPermissionsResponse,
180
194
  | errors.BadRequestErrorResponse
181
195
  | errors.UnauthorizedErrorResponse
182
196
  | errors.ForbiddenErrorResponse
@@ -191,10 +205,9 @@ async function $do(
191
205
  | UnexpectedClientError
192
206
  | SDKValidationError
193
207
  >(
194
- M.json(
195
- 200,
196
- components.V2PermissionsListPermissionsResponseBody$inboundSchema,
197
- ),
208
+ M.json(200, operations.PermissionsListPermissionsResponse$inboundSchema, {
209
+ key: "Result",
210
+ }),
198
211
  M.jsonErr(400, errors.BadRequestErrorResponse$inboundSchema),
199
212
  M.jsonErr(401, errors.UnauthorizedErrorResponse$inboundSchema),
200
213
  M.jsonErr(403, errors.ForbiddenErrorResponse$inboundSchema),
@@ -206,8 +219,61 @@ async function $do(
206
219
  M.fail("5XX"),
207
220
  )(response, req, { extraFields: responseFields });
208
221
  if (!result.ok) {
209
- return [result, { status: "complete", request: req, response }];
222
+ return [haltIterator(result), {
223
+ status: "complete",
224
+ request: req,
225
+ response,
226
+ }];
210
227
  }
211
228
 
212
- return [result, { status: "complete", request: req, response }];
229
+ const nextFunc = (
230
+ responseData: unknown,
231
+ ): {
232
+ next: Paginator<
233
+ Result<
234
+ operations.PermissionsListPermissionsResponse,
235
+ | errors.BadRequestErrorResponse
236
+ | errors.UnauthorizedErrorResponse
237
+ | errors.ForbiddenErrorResponse
238
+ | errors.TooManyRequestsErrorResponse
239
+ | errors.InternalServerErrorResponse
240
+ | UnkeyError
241
+ | ResponseValidationError
242
+ | ConnectionError
243
+ | RequestAbortedError
244
+ | RequestTimeoutError
245
+ | InvalidRequestError
246
+ | UnexpectedClientError
247
+ | SDKValidationError
248
+ >
249
+ >;
250
+ "~next"?: { cursor: string };
251
+ } => {
252
+ const nextCursor = dlv(responseData, "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
  }
@@ -3,6 +3,7 @@
3
3
  */
4
4
 
5
5
  import { UnkeyCore } from "../core.js";
6
+ import { dlv } from "../lib/dlv.js";
6
7
  import { encodeJSON } from "../lib/encodings.js";
7
8
  import { matchStatusCode } from "../lib/http.js";
8
9
  import * as M from "../lib/matchers.js";
@@ -23,8 +24,15 @@ import * as errors from "../models/errors/index.js";
23
24
  import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
24
25
  import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
25
26
  import { UnkeyError } from "../models/errors/unkeyerror.js";
27
+ import * as operations from "../models/operations/index.js";
26
28
  import { APICall, APIPromise } from "../types/async.js";
27
29
  import { Result } from "../types/fp.js";
30
+ import {
31
+ createPageIterator,
32
+ haltIterator,
33
+ PageIterator,
34
+ Paginator,
35
+ } from "../types/operations.js";
28
36
 
29
37
  /**
30
38
  * List roles
@@ -45,39 +53,9 @@ export function permissionsListRoles(
45
53
  request: components.V2PermissionsListRolesRequestBody,
46
54
  options?: RequestOptions,
47
55
  ): 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
- [
56
+ PageIterator<
79
57
  Result<
80
- components.V2PermissionsListRolesResponseBody,
58
+ operations.PermissionsListRolesResponse,
81
59
  | errors.BadRequestErrorResponse
82
60
  | errors.UnauthorizedErrorResponse
83
61
  | errors.ForbiddenErrorResponse
@@ -93,6 +71,42 @@ async function $do(
93
71
  | UnexpectedClientError
94
72
  | SDKValidationError
95
73
  >,
74
+ { cursor: string }
75
+ >
76
+ > {
77
+ return new APIPromise($do(
78
+ client,
79
+ request,
80
+ options,
81
+ ));
82
+ }
83
+
84
+ async function $do(
85
+ client: UnkeyCore,
86
+ request: components.V2PermissionsListRolesRequestBody,
87
+ options?: RequestOptions,
88
+ ): Promise<
89
+ [
90
+ PageIterator<
91
+ Result<
92
+ operations.PermissionsListRolesResponse,
93
+ | errors.BadRequestErrorResponse
94
+ | errors.UnauthorizedErrorResponse
95
+ | errors.ForbiddenErrorResponse
96
+ | errors.NotFoundErrorResponse
97
+ | errors.TooManyRequestsErrorResponse
98
+ | errors.InternalServerErrorResponse
99
+ | UnkeyError
100
+ | ResponseValidationError
101
+ | ConnectionError
102
+ | RequestAbortedError
103
+ | RequestTimeoutError
104
+ | InvalidRequestError
105
+ | UnexpectedClientError
106
+ | SDKValidationError
107
+ >,
108
+ { cursor: string }
109
+ >,
96
110
  APICall,
97
111
  ]
98
112
  > {
@@ -103,7 +117,7 @@ async function $do(
103
117
  "Input validation failed",
104
118
  );
105
119
  if (!parsed.ok) {
106
- return [parsed, { status: "invalid" }];
120
+ return [haltIterator(parsed), { status: "invalid" }];
107
121
  }
108
122
  const payload = parsed.value;
109
123
  const body = encodeJSON("body", payload, { explode: true });
@@ -155,7 +169,7 @@ async function $do(
155
169
  timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
156
170
  }, options);
157
171
  if (!requestRes.ok) {
158
- return [requestRes, { status: "invalid" }];
172
+ return [haltIterator(requestRes), { status: "invalid" }];
159
173
  }
160
174
  const req = requestRes.value;
161
175
 
@@ -167,7 +181,7 @@ async function $do(
167
181
  retryCodes: context.retryCodes,
168
182
  });
169
183
  if (!doResult.ok) {
170
- return [doResult, { status: "request-error", request: req }];
184
+ return [haltIterator(doResult), { status: "request-error", request: req }];
171
185
  }
172
186
  const response = doResult.value;
173
187
 
@@ -175,8 +189,8 @@ async function $do(
175
189
  HttpMeta: { Response: response, Request: req },
176
190
  };
177
191
 
178
- const [result] = await M.match<
179
- components.V2PermissionsListRolesResponseBody,
192
+ const [result, raw] = await M.match<
193
+ operations.PermissionsListRolesResponse,
180
194
  | errors.BadRequestErrorResponse
181
195
  | errors.UnauthorizedErrorResponse
182
196
  | errors.ForbiddenErrorResponse
@@ -192,7 +206,9 @@ async function $do(
192
206
  | UnexpectedClientError
193
207
  | SDKValidationError
194
208
  >(
195
- M.json(200, components.V2PermissionsListRolesResponseBody$inboundSchema),
209
+ M.json(200, operations.PermissionsListRolesResponse$inboundSchema, {
210
+ key: "Result",
211
+ }),
196
212
  M.jsonErr(400, errors.BadRequestErrorResponse$inboundSchema),
197
213
  M.jsonErr(401, errors.UnauthorizedErrorResponse$inboundSchema),
198
214
  M.jsonErr(403, errors.ForbiddenErrorResponse$inboundSchema),
@@ -205,8 +221,62 @@ async function $do(
205
221
  M.fail("5XX"),
206
222
  )(response, req, { extraFields: responseFields });
207
223
  if (!result.ok) {
208
- return [result, { status: "complete", request: req, response }];
224
+ return [haltIterator(result), {
225
+ status: "complete",
226
+ request: req,
227
+ response,
228
+ }];
209
229
  }
210
230
 
211
- return [result, { status: "complete", request: req, response }];
231
+ const nextFunc = (
232
+ responseData: unknown,
233
+ ): {
234
+ next: Paginator<
235
+ Result<
236
+ operations.PermissionsListRolesResponse,
237
+ | errors.BadRequestErrorResponse
238
+ | errors.UnauthorizedErrorResponse
239
+ | errors.ForbiddenErrorResponse
240
+ | errors.NotFoundErrorResponse
241
+ | errors.TooManyRequestsErrorResponse
242
+ | errors.InternalServerErrorResponse
243
+ | UnkeyError
244
+ | ResponseValidationError
245
+ | ConnectionError
246
+ | RequestAbortedError
247
+ | RequestTimeoutError
248
+ | InvalidRequestError
249
+ | UnexpectedClientError
250
+ | SDKValidationError
251
+ >
252
+ >;
253
+ "~next"?: { cursor: string };
254
+ } => {
255
+ const nextCursor = dlv(responseData, "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
  }