@unkey/api 2.1.0 → 2.1.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 (218) hide show
  1. package/README.md +10 -6
  2. package/bin/mcp-server.js +806 -347
  3. package/bin/mcp-server.js.map +26 -13
  4. package/dist/commonjs/funcs/keysMigrateKeys.d.ts +23 -0
  5. package/dist/commonjs/funcs/keysMigrateKeys.d.ts.map +1 -0
  6. package/dist/commonjs/funcs/keysMigrateKeys.js +133 -0
  7. package/dist/commonjs/funcs/keysMigrateKeys.js.map +1 -0
  8. package/dist/commonjs/funcs/ratelimitLimit.d.ts +0 -4
  9. package/dist/commonjs/funcs/ratelimitLimit.d.ts.map +1 -1
  10. package/dist/commonjs/funcs/ratelimitLimit.js +0 -4
  11. package/dist/commonjs/funcs/ratelimitLimit.js.map +1 -1
  12. package/dist/commonjs/funcs/ratelimitMultiLimit.d.ts +28 -0
  13. package/dist/commonjs/funcs/ratelimitMultiLimit.d.ts.map +1 -0
  14. package/dist/commonjs/funcs/ratelimitMultiLimit.js +139 -0
  15. package/dist/commonjs/funcs/ratelimitMultiLimit.js.map +1 -0
  16. package/dist/commonjs/hooks/custom/vercel-edge-fetcher.d.ts +5 -0
  17. package/dist/commonjs/hooks/custom/vercel-edge-fetcher.d.ts.map +1 -0
  18. package/dist/commonjs/hooks/custom/vercel-edge-fetcher.js +63 -0
  19. package/dist/commonjs/hooks/custom/vercel-edge-fetcher.js.map +1 -0
  20. package/dist/commonjs/hooks/registration.d.ts.map +1 -1
  21. package/dist/commonjs/hooks/registration.js +3 -4
  22. package/dist/commonjs/hooks/registration.js.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/mcp-server/mcp-server.js +1 -1
  26. package/dist/commonjs/mcp-server/server.d.ts.map +1 -1
  27. package/dist/commonjs/mcp-server/server.js +5 -1
  28. package/dist/commonjs/mcp-server/server.js.map +1 -1
  29. package/dist/commonjs/mcp-server/tools/keysMigrateKeys.d.ts +8 -0
  30. package/dist/commonjs/mcp-server/tools/keysMigrateKeys.d.ts.map +1 -0
  31. package/dist/commonjs/mcp-server/tools/keysMigrateKeys.js +70 -0
  32. package/dist/commonjs/mcp-server/tools/keysMigrateKeys.js.map +1 -0
  33. package/dist/commonjs/mcp-server/tools/ratelimitLimit.d.ts.map +1 -1
  34. package/dist/commonjs/mcp-server/tools/ratelimitLimit.js +0 -4
  35. package/dist/commonjs/mcp-server/tools/ratelimitLimit.js.map +1 -1
  36. package/dist/commonjs/mcp-server/tools/ratelimitMultiLimit.d.ts +9 -0
  37. package/dist/commonjs/mcp-server/tools/ratelimitMultiLimit.d.ts.map +1 -0
  38. package/dist/commonjs/mcp-server/tools/ratelimitMultiLimit.js +76 -0
  39. package/dist/commonjs/mcp-server/tools/ratelimitMultiLimit.js.map +1 -0
  40. package/dist/commonjs/models/components/index.d.ts +8 -0
  41. package/dist/commonjs/models/components/index.d.ts.map +1 -1
  42. package/dist/commonjs/models/components/index.js +8 -0
  43. package/dist/commonjs/models/components/index.js.map +1 -1
  44. package/dist/commonjs/models/components/v2keysmigratekeydata.d.ts +113 -0
  45. package/dist/commonjs/models/components/v2keysmigratekeydata.d.ts.map +1 -0
  46. package/dist/commonjs/models/components/v2keysmigratekeydata.js +78 -0
  47. package/dist/commonjs/models/components/v2keysmigratekeydata.js.map +1 -0
  48. package/dist/commonjs/models/components/v2keysmigratekeysmigration.d.ts +25 -0
  49. package/dist/commonjs/models/components/v2keysmigratekeysmigration.d.ts.map +1 -0
  50. package/dist/commonjs/models/components/v2keysmigratekeysmigration.js +60 -0
  51. package/dist/commonjs/models/components/v2keysmigratekeysmigration.js.map +1 -0
  52. package/dist/commonjs/models/components/v2keysmigratekeysrequestbody.d.ts +28 -0
  53. package/dist/commonjs/models/components/v2keysmigratekeysrequestbody.d.ts.map +1 -0
  54. package/dist/commonjs/models/components/v2keysmigratekeysrequestbody.js +63 -0
  55. package/dist/commonjs/models/components/v2keysmigratekeysrequestbody.js.map +1 -0
  56. package/dist/commonjs/models/components/v2keysmigratekeysresponsebody.d.ts +24 -0
  57. package/dist/commonjs/models/components/v2keysmigratekeysresponsebody.d.ts.map +1 -0
  58. package/dist/commonjs/models/components/v2keysmigratekeysresponsebody.js +62 -0
  59. package/dist/commonjs/models/components/v2keysmigratekeysresponsebody.js.map +1 -0
  60. package/dist/commonjs/models/components/v2keysmigratekeysresponsedata.d.ts +26 -0
  61. package/dist/commonjs/models/components/v2keysmigratekeysresponsedata.d.ts.map +1 -0
  62. package/dist/commonjs/models/components/v2keysmigratekeysresponsedata.js +61 -0
  63. package/dist/commonjs/models/components/v2keysmigratekeysresponsedata.js.map +1 -0
  64. package/dist/commonjs/models/components/v2keysverifykeyrequestbody.d.ts +5 -0
  65. package/dist/commonjs/models/components/v2keysverifykeyrequestbody.d.ts.map +1 -1
  66. package/dist/commonjs/models/components/v2keysverifykeyrequestbody.js +2 -0
  67. package/dist/commonjs/models/components/v2keysverifykeyrequestbody.js.map +1 -1
  68. package/dist/commonjs/models/components/v2keysverifykeyresponsedata.d.ts +3 -3
  69. package/dist/commonjs/models/components/v2ratelimitmultilimitcheck.d.ts +84 -0
  70. package/dist/commonjs/models/components/v2ratelimitmultilimitcheck.d.ts.map +1 -0
  71. package/dist/commonjs/models/components/v2ratelimitmultilimitcheck.js +70 -0
  72. package/dist/commonjs/models/components/v2ratelimitmultilimitcheck.js.map +1 -0
  73. package/dist/commonjs/models/components/v2ratelimitmultilimitresponsebody.d.ts +27 -0
  74. package/dist/commonjs/models/components/v2ratelimitmultilimitresponsebody.d.ts.map +1 -0
  75. package/dist/commonjs/models/components/v2ratelimitmultilimitresponsebody.js +62 -0
  76. package/dist/commonjs/models/components/v2ratelimitmultilimitresponsebody.js.map +1 -0
  77. package/dist/commonjs/models/components/v2ratelimitmultilimitresponsedata.d.ts +33 -0
  78. package/dist/commonjs/models/components/v2ratelimitmultilimitresponsedata.d.ts.map +1 -0
  79. package/dist/commonjs/models/components/v2ratelimitmultilimitresponsedata.js +61 -0
  80. package/dist/commonjs/models/components/v2ratelimitmultilimitresponsedata.js.map +1 -0
  81. package/dist/commonjs/sdk/keys.d.ts +12 -0
  82. package/dist/commonjs/sdk/keys.d.ts.map +1 -1
  83. package/dist/commonjs/sdk/keys.js +15 -0
  84. package/dist/commonjs/sdk/keys.js.map +1 -1
  85. package/dist/commonjs/sdk/ratelimit.d.ts +17 -4
  86. package/dist/commonjs/sdk/ratelimit.d.ts.map +1 -1
  87. package/dist/commonjs/sdk/ratelimit.js +20 -4
  88. package/dist/commonjs/sdk/ratelimit.js.map +1 -1
  89. package/dist/commonjs/types/enums.d.ts +10 -6
  90. package/dist/commonjs/types/enums.d.ts.map +1 -1
  91. package/dist/commonjs/types/enums.js +76 -2
  92. package/dist/commonjs/types/enums.js.map +1 -1
  93. package/dist/commonjs/types/index.d.ts +0 -1
  94. package/dist/commonjs/types/index.d.ts.map +1 -1
  95. package/dist/commonjs/types/index.js +1 -3
  96. package/dist/commonjs/types/index.js.map +1 -1
  97. package/dist/esm/funcs/keysMigrateKeys.d.ts +23 -0
  98. package/dist/esm/funcs/keysMigrateKeys.d.ts.map +1 -0
  99. package/dist/esm/funcs/keysMigrateKeys.js +97 -0
  100. package/dist/esm/funcs/keysMigrateKeys.js.map +1 -0
  101. package/dist/esm/funcs/ratelimitLimit.d.ts +0 -4
  102. package/dist/esm/funcs/ratelimitLimit.d.ts.map +1 -1
  103. package/dist/esm/funcs/ratelimitLimit.js +0 -4
  104. package/dist/esm/funcs/ratelimitLimit.js.map +1 -1
  105. package/dist/esm/funcs/ratelimitMultiLimit.d.ts +28 -0
  106. package/dist/esm/funcs/ratelimitMultiLimit.d.ts.map +1 -0
  107. package/dist/esm/funcs/ratelimitMultiLimit.js +103 -0
  108. package/dist/esm/funcs/ratelimitMultiLimit.js.map +1 -0
  109. package/dist/esm/hooks/custom/vercel-edge-fetcher.d.ts +5 -0
  110. package/dist/esm/hooks/custom/vercel-edge-fetcher.d.ts.map +1 -0
  111. package/dist/esm/hooks/custom/vercel-edge-fetcher.js +59 -0
  112. package/dist/esm/hooks/custom/vercel-edge-fetcher.js.map +1 -0
  113. package/dist/esm/hooks/registration.d.ts.map +1 -1
  114. package/dist/esm/hooks/registration.js +3 -4
  115. package/dist/esm/hooks/registration.js.map +1 -1
  116. package/dist/esm/lib/config.d.ts +3 -3
  117. package/dist/esm/lib/config.js +3 -3
  118. package/dist/esm/mcp-server/mcp-server.js +1 -1
  119. package/dist/esm/mcp-server/server.d.ts.map +1 -1
  120. package/dist/esm/mcp-server/server.js +5 -1
  121. package/dist/esm/mcp-server/server.js.map +1 -1
  122. package/dist/esm/mcp-server/tools/keysMigrateKeys.d.ts +8 -0
  123. package/dist/esm/mcp-server/tools/keysMigrateKeys.d.ts.map +1 -0
  124. package/dist/esm/mcp-server/tools/keysMigrateKeys.js +34 -0
  125. package/dist/esm/mcp-server/tools/keysMigrateKeys.js.map +1 -0
  126. package/dist/esm/mcp-server/tools/ratelimitLimit.d.ts.map +1 -1
  127. package/dist/esm/mcp-server/tools/ratelimitLimit.js +0 -4
  128. package/dist/esm/mcp-server/tools/ratelimitLimit.js.map +1 -1
  129. package/dist/esm/mcp-server/tools/ratelimitMultiLimit.d.ts +9 -0
  130. package/dist/esm/mcp-server/tools/ratelimitMultiLimit.d.ts.map +1 -0
  131. package/dist/esm/mcp-server/tools/ratelimitMultiLimit.js +40 -0
  132. package/dist/esm/mcp-server/tools/ratelimitMultiLimit.js.map +1 -0
  133. package/dist/esm/models/components/index.d.ts +8 -0
  134. package/dist/esm/models/components/index.d.ts.map +1 -1
  135. package/dist/esm/models/components/index.js +8 -0
  136. package/dist/esm/models/components/index.js.map +1 -1
  137. package/dist/esm/models/components/v2keysmigratekeydata.d.ts +113 -0
  138. package/dist/esm/models/components/v2keysmigratekeydata.d.ts.map +1 -0
  139. package/dist/esm/models/components/v2keysmigratekeydata.js +40 -0
  140. package/dist/esm/models/components/v2keysmigratekeydata.js.map +1 -0
  141. package/dist/esm/models/components/v2keysmigratekeysmigration.d.ts +25 -0
  142. package/dist/esm/models/components/v2keysmigratekeysmigration.d.ts.map +1 -0
  143. package/dist/esm/models/components/v2keysmigratekeysmigration.js +22 -0
  144. package/dist/esm/models/components/v2keysmigratekeysmigration.js.map +1 -0
  145. package/dist/esm/models/components/v2keysmigratekeysrequestbody.d.ts +28 -0
  146. package/dist/esm/models/components/v2keysmigratekeysrequestbody.d.ts.map +1 -0
  147. package/dist/esm/models/components/v2keysmigratekeysrequestbody.js +25 -0
  148. package/dist/esm/models/components/v2keysmigratekeysrequestbody.js.map +1 -0
  149. package/dist/esm/models/components/v2keysmigratekeysresponsebody.d.ts +24 -0
  150. package/dist/esm/models/components/v2keysmigratekeysresponsebody.d.ts.map +1 -0
  151. package/dist/esm/models/components/v2keysmigratekeysresponsebody.js +24 -0
  152. package/dist/esm/models/components/v2keysmigratekeysresponsebody.js.map +1 -0
  153. package/dist/esm/models/components/v2keysmigratekeysresponsedata.d.ts +26 -0
  154. package/dist/esm/models/components/v2keysmigratekeysresponsedata.d.ts.map +1 -0
  155. package/dist/esm/models/components/v2keysmigratekeysresponsedata.js +23 -0
  156. package/dist/esm/models/components/v2keysmigratekeysresponsedata.js.map +1 -0
  157. package/dist/esm/models/components/v2keysverifykeyrequestbody.d.ts +5 -0
  158. package/dist/esm/models/components/v2keysverifykeyrequestbody.d.ts.map +1 -1
  159. package/dist/esm/models/components/v2keysverifykeyrequestbody.js +2 -0
  160. package/dist/esm/models/components/v2keysverifykeyrequestbody.js.map +1 -1
  161. package/dist/esm/models/components/v2keysverifykeyresponsedata.d.ts +3 -3
  162. package/dist/esm/models/components/v2ratelimitmultilimitcheck.d.ts +84 -0
  163. package/dist/esm/models/components/v2ratelimitmultilimitcheck.d.ts.map +1 -0
  164. package/dist/esm/models/components/v2ratelimitmultilimitcheck.js +32 -0
  165. package/dist/esm/models/components/v2ratelimitmultilimitcheck.js.map +1 -0
  166. package/dist/esm/models/components/v2ratelimitmultilimitresponsebody.d.ts +27 -0
  167. package/dist/esm/models/components/v2ratelimitmultilimitresponsebody.d.ts.map +1 -0
  168. package/dist/esm/models/components/v2ratelimitmultilimitresponsebody.js +24 -0
  169. package/dist/esm/models/components/v2ratelimitmultilimitresponsebody.js.map +1 -0
  170. package/dist/esm/models/components/v2ratelimitmultilimitresponsedata.d.ts +33 -0
  171. package/dist/esm/models/components/v2ratelimitmultilimitresponsedata.d.ts.map +1 -0
  172. package/dist/esm/models/components/v2ratelimitmultilimitresponsedata.js +23 -0
  173. package/dist/esm/models/components/v2ratelimitmultilimitresponsedata.js.map +1 -0
  174. package/dist/esm/sdk/keys.d.ts +12 -0
  175. package/dist/esm/sdk/keys.d.ts.map +1 -1
  176. package/dist/esm/sdk/keys.js +15 -0
  177. package/dist/esm/sdk/keys.js.map +1 -1
  178. package/dist/esm/sdk/ratelimit.d.ts +17 -4
  179. package/dist/esm/sdk/ratelimit.d.ts.map +1 -1
  180. package/dist/esm/sdk/ratelimit.js +20 -4
  181. package/dist/esm/sdk/ratelimit.js.map +1 -1
  182. package/dist/esm/types/enums.d.ts +10 -6
  183. package/dist/esm/types/enums.d.ts.map +1 -1
  184. package/dist/esm/types/enums.js +38 -1
  185. package/dist/esm/types/enums.js.map +1 -1
  186. package/dist/esm/types/index.d.ts +0 -1
  187. package/dist/esm/types/index.d.ts.map +1 -1
  188. package/dist/esm/types/index.js +0 -1
  189. package/dist/esm/types/index.js.map +1 -1
  190. package/examples/package-lock.json +1 -1
  191. package/jsr.json +1 -1
  192. package/package.json +1 -1
  193. package/src/funcs/keysMigrateKeys.ts +201 -0
  194. package/src/funcs/ratelimitLimit.ts +0 -4
  195. package/src/funcs/ratelimitMultiLimit.ts +213 -0
  196. package/src/hooks/custom/vercel-edge-fetcher.ts +64 -0
  197. package/src/hooks/registration.ts +3 -4
  198. package/src/lib/config.ts +3 -3
  199. package/src/mcp-server/mcp-server.ts +1 -1
  200. package/src/mcp-server/server.ts +5 -1
  201. package/src/mcp-server/tools/keysMigrateKeys.ts +43 -0
  202. package/src/mcp-server/tools/ratelimitLimit.ts +0 -4
  203. package/src/mcp-server/tools/ratelimitMultiLimit.ts +49 -0
  204. package/src/models/components/index.ts +8 -0
  205. package/src/models/components/v2keysmigratekeydata.ts +171 -0
  206. package/src/models/components/v2keysmigratekeysmigration.ts +61 -0
  207. package/src/models/components/v2keysmigratekeysrequestbody.ts +73 -0
  208. package/src/models/components/v2keysmigratekeysresponsebody.ts +72 -0
  209. package/src/models/components/v2keysmigratekeysresponsedata.ts +69 -0
  210. package/src/models/components/v2keysverifykeyrequestbody.ts +7 -0
  211. package/src/models/components/v2keysverifykeyresponsedata.ts +3 -3
  212. package/src/models/components/v2ratelimitmultilimitcheck.ts +130 -0
  213. package/src/models/components/v2ratelimitmultilimitresponsebody.ts +75 -0
  214. package/src/models/components/v2ratelimitmultilimitresponsedata.ts +76 -0
  215. package/src/sdk/keys.ts +23 -0
  216. package/src/sdk/ratelimit.ts +28 -4
  217. package/src/types/enums.ts +55 -6
  218. package/src/types/index.ts +0 -1
@@ -0,0 +1,75 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v3";
6
+ import { safeParse } from "../../lib/schemas.js";
7
+ import { Result as SafeParseResult } from "../../types/fp.js";
8
+ import { SDKValidationError } from "../errors/sdkvalidationerror.js";
9
+ import {
10
+ Meta,
11
+ Meta$inboundSchema,
12
+ Meta$Outbound,
13
+ Meta$outboundSchema,
14
+ } from "./meta.js";
15
+ import {
16
+ V2RatelimitMultiLimitResponseData,
17
+ V2RatelimitMultiLimitResponseData$inboundSchema,
18
+ V2RatelimitMultiLimitResponseData$Outbound,
19
+ V2RatelimitMultiLimitResponseData$outboundSchema,
20
+ } from "./v2ratelimitmultilimitresponsedata.js";
21
+
22
+ export type V2RatelimitMultiLimitResponseBody = {
23
+ /**
24
+ * Metadata object included in every API response. This provides context about the request and is essential for debugging, audit trails, and support inquiries. The `requestId` is particularly important when troubleshooting issues with the Unkey support team.
25
+ */
26
+ meta: Meta;
27
+ /**
28
+ * Container for multi-limit rate limit check results
29
+ */
30
+ data: V2RatelimitMultiLimitResponseData;
31
+ };
32
+
33
+ /** @internal */
34
+ export const V2RatelimitMultiLimitResponseBody$inboundSchema: z.ZodType<
35
+ V2RatelimitMultiLimitResponseBody,
36
+ z.ZodTypeDef,
37
+ unknown
38
+ > = z.object({
39
+ meta: Meta$inboundSchema,
40
+ data: V2RatelimitMultiLimitResponseData$inboundSchema,
41
+ });
42
+ /** @internal */
43
+ export type V2RatelimitMultiLimitResponseBody$Outbound = {
44
+ meta: Meta$Outbound;
45
+ data: V2RatelimitMultiLimitResponseData$Outbound;
46
+ };
47
+
48
+ /** @internal */
49
+ export const V2RatelimitMultiLimitResponseBody$outboundSchema: z.ZodType<
50
+ V2RatelimitMultiLimitResponseBody$Outbound,
51
+ z.ZodTypeDef,
52
+ V2RatelimitMultiLimitResponseBody
53
+ > = z.object({
54
+ meta: Meta$outboundSchema,
55
+ data: V2RatelimitMultiLimitResponseData$outboundSchema,
56
+ });
57
+
58
+ export function v2RatelimitMultiLimitResponseBodyToJSON(
59
+ v2RatelimitMultiLimitResponseBody: V2RatelimitMultiLimitResponseBody,
60
+ ): string {
61
+ return JSON.stringify(
62
+ V2RatelimitMultiLimitResponseBody$outboundSchema.parse(
63
+ v2RatelimitMultiLimitResponseBody,
64
+ ),
65
+ );
66
+ }
67
+ export function v2RatelimitMultiLimitResponseBodyFromJSON(
68
+ jsonString: string,
69
+ ): SafeParseResult<V2RatelimitMultiLimitResponseBody, SDKValidationError> {
70
+ return safeParse(
71
+ jsonString,
72
+ (x) => V2RatelimitMultiLimitResponseBody$inboundSchema.parse(JSON.parse(x)),
73
+ `Failed to parse 'V2RatelimitMultiLimitResponseBody' from JSON`,
74
+ );
75
+ }
@@ -0,0 +1,76 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v3";
6
+ import { safeParse } from "../../lib/schemas.js";
7
+ import { Result as SafeParseResult } from "../../types/fp.js";
8
+ import { SDKValidationError } from "../errors/sdkvalidationerror.js";
9
+ import {
10
+ V2RatelimitMultiLimitCheck,
11
+ V2RatelimitMultiLimitCheck$inboundSchema,
12
+ V2RatelimitMultiLimitCheck$Outbound,
13
+ V2RatelimitMultiLimitCheck$outboundSchema,
14
+ } from "./v2ratelimitmultilimitcheck.js";
15
+
16
+ /**
17
+ * Container for multi-limit rate limit check results
18
+ */
19
+ export type V2RatelimitMultiLimitResponseData = {
20
+ /**
21
+ * Overall success indicator for all rate limit checks. This is true if ALL individual rate limit checks passed (all have success: true), and false if ANY check failed.
22
+ *
23
+ * @remarks
24
+ *
25
+ * Use this as a quick indicator to determine if the request should proceed.
26
+ */
27
+ passed: boolean;
28
+ /**
29
+ * Array of individual rate limit check results, one for each rate limit check in the request
30
+ */
31
+ limits: Array<V2RatelimitMultiLimitCheck>;
32
+ };
33
+
34
+ /** @internal */
35
+ export const V2RatelimitMultiLimitResponseData$inboundSchema: z.ZodType<
36
+ V2RatelimitMultiLimitResponseData,
37
+ z.ZodTypeDef,
38
+ unknown
39
+ > = z.object({
40
+ passed: z.boolean(),
41
+ limits: z.array(V2RatelimitMultiLimitCheck$inboundSchema),
42
+ });
43
+ /** @internal */
44
+ export type V2RatelimitMultiLimitResponseData$Outbound = {
45
+ passed: boolean;
46
+ limits: Array<V2RatelimitMultiLimitCheck$Outbound>;
47
+ };
48
+
49
+ /** @internal */
50
+ export const V2RatelimitMultiLimitResponseData$outboundSchema: z.ZodType<
51
+ V2RatelimitMultiLimitResponseData$Outbound,
52
+ z.ZodTypeDef,
53
+ V2RatelimitMultiLimitResponseData
54
+ > = z.object({
55
+ passed: z.boolean(),
56
+ limits: z.array(V2RatelimitMultiLimitCheck$outboundSchema),
57
+ });
58
+
59
+ export function v2RatelimitMultiLimitResponseDataToJSON(
60
+ v2RatelimitMultiLimitResponseData: V2RatelimitMultiLimitResponseData,
61
+ ): string {
62
+ return JSON.stringify(
63
+ V2RatelimitMultiLimitResponseData$outboundSchema.parse(
64
+ v2RatelimitMultiLimitResponseData,
65
+ ),
66
+ );
67
+ }
68
+ export function v2RatelimitMultiLimitResponseDataFromJSON(
69
+ jsonString: string,
70
+ ): SafeParseResult<V2RatelimitMultiLimitResponseData, SDKValidationError> {
71
+ return safeParse(
72
+ jsonString,
73
+ (x) => V2RatelimitMultiLimitResponseData$inboundSchema.parse(JSON.parse(x)),
74
+ `Failed to parse 'V2RatelimitMultiLimitResponseData' from JSON`,
75
+ );
76
+ }
package/src/sdk/keys.ts CHANGED
@@ -7,6 +7,7 @@ import { keysAddRoles } from "../funcs/keysAddRoles.js";
7
7
  import { keysCreateKey } from "../funcs/keysCreateKey.js";
8
8
  import { keysDeleteKey } from "../funcs/keysDeleteKey.js";
9
9
  import { keysGetKey } from "../funcs/keysGetKey.js";
10
+ import { keysMigrateKeys } from "../funcs/keysMigrateKeys.js";
10
11
  import { keysRemovePermissions } from "../funcs/keysRemovePermissions.js";
11
12
  import { keysRemoveRoles } from "../funcs/keysRemoveRoles.js";
12
13
  import { keysRerollKey } from "../funcs/keysRerollKey.js";
@@ -172,6 +173,28 @@ export class Keys extends ClientSDK {
172
173
  ));
173
174
  }
174
175
 
176
+ /**
177
+ * Migrate API key(s)
178
+ *
179
+ * @remarks
180
+ * Returns HTTP 200 even on partial success; hashes that could not be migrated are listed under `data.failed`.
181
+ *
182
+ * **Required Permissions**
183
+ * Your root key must have one of the following permissions for basic key information:
184
+ * - `api.*.create_key` (to migrate keys to any API)
185
+ * - `api.<api_id>.create_key` (to migrate keys to a specific API)
186
+ */
187
+ async migrateKeys(
188
+ request: components.V2KeysMigrateKeysRequestBody,
189
+ options?: RequestOptions,
190
+ ): Promise<components.V2KeysMigrateKeysResponseBody> {
191
+ return unwrapAsync(keysMigrateKeys(
192
+ this,
193
+ request,
194
+ options,
195
+ ));
196
+ }
197
+
175
198
  /**
176
199
  * Remove key permissions
177
200
  *
@@ -6,6 +6,7 @@ import { ratelimitDeleteOverride } from "../funcs/ratelimitDeleteOverride.js";
6
6
  import { ratelimitGetOverride } from "../funcs/ratelimitGetOverride.js";
7
7
  import { ratelimitLimit } from "../funcs/ratelimitLimit.js";
8
8
  import { ratelimitListOverrides } from "../funcs/ratelimitListOverrides.js";
9
+ import { ratelimitMultiLimit } from "../funcs/ratelimitMultiLimit.js";
9
10
  import { ratelimitSetOverride } from "../funcs/ratelimitSetOverride.js";
10
11
  import { ClientSDK, RequestOptions } from "../lib/sdks.js";
11
12
  import * as components from "../models/components/index.js";
@@ -73,10 +74,6 @@ export class Ratelimit extends ClientSDK {
73
74
  * Your root key must have one of the following permissions:
74
75
  * - `ratelimit.*.limit` (to check limits in any namespace)
75
76
  * - `ratelimit.<namespace_id>.limit` (to check limits in a specific namespace)
76
- *
77
- * **Side Effects**
78
- *
79
- * Records rate limit metrics for analytics and monitoring, updates rate limit counters with sliding window algorithm, and optionally triggers override matching for custom limits.
80
77
  */
81
78
  async limit(
82
79
  request: components.V2RatelimitLimitRequestBody,
@@ -112,6 +109,33 @@ export class Ratelimit extends ClientSDK {
112
109
  ));
113
110
  }
114
111
 
112
+ /**
113
+ * Apply multiple rate limit checks
114
+ *
115
+ * @remarks
116
+ * Check and enforce multiple rate limits in a single request for any identifiers (user IDs, IP addresses, API clients, etc.).
117
+ *
118
+ * Use this to efficiently check multiple rate limits at once. Each rate limit check is independent and returns its own result with a top-level `passed` indicator showing if all checks succeeded.
119
+ *
120
+ * **Response Codes**: Rate limit checks return HTTP 200 regardless of whether limits are exceeded - check the `passed` field to see if all limits passed, or the `success` field in each individual result. 4xx responses indicate auth, namespace existence/deletion, or validation errors (e.g., 410 Gone for deleted namespaces). 5xx responses indicate server errors.
121
+ *
122
+ * **Required Permissions**
123
+ *
124
+ * Your root key must have one of the following permissions:
125
+ * - `ratelimit.*.limit` (to check limits in any namespace)
126
+ * - `ratelimit.<namespace_id>.limit` (to check limits in all specific namespaces being checked)
127
+ */
128
+ async multiLimit(
129
+ request: Array<components.V2RatelimitLimitRequestBody>,
130
+ options?: RequestOptions,
131
+ ): Promise<components.V2RatelimitMultiLimitResponseBody> {
132
+ return unwrapAsync(ratelimitMultiLimit(
133
+ this,
134
+ request,
135
+ options,
136
+ ));
137
+ }
138
+
115
139
  /**
116
140
  * Set ratelimit override
117
141
  *
@@ -2,15 +2,64 @@
2
2
  * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
3
  */
4
4
 
5
+ import * as z from "zod/v3";
6
+
5
7
  declare const __brand: unique symbol;
6
8
  export type Unrecognized<T> = T & { [__brand]: "unrecognized" };
9
+ export type ClosedEnum<T extends Readonly<Record<string, string | number>>> =
10
+ T[keyof T];
11
+ export type OpenEnum<T extends Readonly<Record<string, string | number>>> =
12
+ | T[keyof T]
13
+ | Unrecognized<T[keyof T] extends number ? number : string>;
7
14
 
8
- export function catchUnrecognizedEnum<T>(value: T): Unrecognized<T> {
15
+ function unrecognized<T>(value: T): Unrecognized<T> {
16
+ unrecognizedCount++;
9
17
  return value as Unrecognized<T>;
10
18
  }
11
19
 
12
- type Prettify<T> = { [K in keyof T]: T[K] } & {};
13
- export type ClosedEnum<T> = T[keyof T];
14
- export type OpenEnum<T> =
15
- | Prettify<T[keyof T]>
16
- | Unrecognized<T[keyof T] extends number ? number : string>;
20
+ let unrecognizedCount = 0;
21
+ let refCount = 0;
22
+ export function unrecognizedCounter() {
23
+ refCount++;
24
+ const start = unrecognizedCount;
25
+ return {
26
+ count: () => {
27
+ const count = unrecognizedCount - start;
28
+ if (--refCount === 0) unrecognizedCount = 0;
29
+ return count;
30
+ },
31
+ };
32
+ }
33
+
34
+ export function inboundSchema<T extends Record<string, string>>(
35
+ enumObj: T,
36
+ ): z.ZodType<OpenEnum<T>, z.ZodTypeDef, unknown> {
37
+ const options = Object.values(enumObj);
38
+ return z.union([
39
+ ...options.map(x => z.literal(x)),
40
+ z.string().transform(x => unrecognized(x)),
41
+ ] as any);
42
+ }
43
+
44
+ export function inboundSchemaInt<T extends Record<string, number | string>>(
45
+ enumObj: T,
46
+ ): z.ZodType<OpenEnum<T>, z.ZodTypeDef, unknown> {
47
+ // For numeric enums, Object.values returns both numbers and string keys
48
+ const options = Object.values(enumObj).filter(v => typeof v === "number");
49
+ return z.union([
50
+ ...options.map(x => z.literal(x)),
51
+ z.number().int().transform(x => unrecognized(x)),
52
+ ] as any);
53
+ }
54
+
55
+ export function outboundSchema<T extends Record<string, string>>(
56
+ _: T,
57
+ ): z.ZodType<string, z.ZodTypeDef, OpenEnum<T>> {
58
+ return z.string() as any;
59
+ }
60
+
61
+ export function outboundSchemaInt<T extends Record<string, number | string>>(
62
+ _: T,
63
+ ): z.ZodType<number, z.ZodTypeDef, OpenEnum<T>> {
64
+ return z.number().int() as any;
65
+ }
@@ -3,7 +3,6 @@
3
3
  */
4
4
 
5
5
  export { blobLikeSchema, isBlobLike } from "./blobs.js";
6
- export { catchUnrecognizedEnum } from "./enums.js";
7
6
  export type { ClosedEnum, OpenEnum, Unrecognized } from "./enums.js";
8
7
  export type { Result } from "./fp.js";
9
8
  export type { PageIterator, Paginator } from "./operations.js";