@vercel/sdk 1.12.0 → 1.12.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 (157) hide show
  1. package/README.md +10 -6
  2. package/bin/mcp-server.js +2893 -2521
  3. package/bin/mcp-server.js.map +34 -28
  4. package/docs/sdks/edgecache/README.md +2 -2
  5. package/docs/sdks/projects/README.md +173 -0
  6. package/esm/__tests__/domains.test.js +9 -6
  7. package/esm/__tests__/domains.test.js.map +1 -1
  8. package/esm/__tests__/edgeconfig.test.js +6 -6
  9. package/esm/__tests__/edgeconfig.test.js.map +1 -1
  10. package/esm/__tests__/integrations.test.js +2 -2
  11. package/esm/__tests__/integrations.test.js.map +1 -1
  12. package/esm/__tests__/logdrains.test.js +3 -1
  13. package/esm/__tests__/logdrains.test.js.map +1 -1
  14. package/esm/__tests__/projects.test.js +45 -0
  15. package/esm/__tests__/projects.test.js.map +1 -1
  16. package/esm/__tests__/rollingrelease.test.js +6 -2
  17. package/esm/__tests__/rollingrelease.test.js.map +1 -1
  18. package/esm/__tests__/security.test.js +4 -4
  19. package/esm/__tests__/security.test.js.map +1 -1
  20. package/esm/funcs/edgeCacheDangerouslyDeleteByTags.d.ts +1 -1
  21. package/esm/funcs/edgeCacheDangerouslyDeleteByTags.js +1 -1
  22. package/esm/funcs/edgeCacheInvalidateByTags.d.ts +1 -1
  23. package/esm/funcs/edgeCacheInvalidateByTags.js +1 -1
  24. package/esm/funcs/edgeConfigCreateEdgeConfigToken.js +2 -2
  25. package/esm/funcs/edgeConfigCreateEdgeConfigToken.js.map +1 -1
  26. package/esm/funcs/edgeConfigDeleteEdgeConfig.js +2 -2
  27. package/esm/funcs/edgeConfigDeleteEdgeConfig.js.map +1 -1
  28. package/esm/funcs/edgeConfigDeleteEdgeConfigSchema.js +2 -2
  29. package/esm/funcs/edgeConfigDeleteEdgeConfigSchema.js.map +1 -1
  30. package/esm/funcs/edgeConfigDeleteEdgeConfigTokens.js +2 -2
  31. package/esm/funcs/edgeConfigDeleteEdgeConfigTokens.js.map +1 -1
  32. package/esm/funcs/edgeConfigPatchEdgeConfigSchema.js +2 -2
  33. package/esm/funcs/edgeConfigPatchEdgeConfigSchema.js.map +1 -1
  34. package/esm/funcs/edgeConfigUpdateEdgeConfig.js +2 -2
  35. package/esm/funcs/edgeConfigUpdateEdgeConfig.js.map +1 -1
  36. package/esm/funcs/integrationsCreateIntegrationStoreDirect.js +2 -2
  37. package/esm/funcs/integrationsCreateIntegrationStoreDirect.js.map +1 -1
  38. package/esm/funcs/integrationsDeleteConfiguration.js +2 -2
  39. package/esm/funcs/integrationsDeleteConfiguration.js.map +1 -1
  40. package/esm/funcs/projectsBatchRemoveProjectEnv.d.ts +20 -0
  41. package/esm/funcs/projectsBatchRemoveProjectEnv.d.ts.map +1 -0
  42. package/esm/funcs/projectsBatchRemoveProjectEnv.js +95 -0
  43. package/esm/funcs/projectsBatchRemoveProjectEnv.js.map +1 -0
  44. package/esm/funcs/projectsUploadProjectClientCert.d.ts +19 -0
  45. package/esm/funcs/projectsUploadProjectClientCert.d.ts.map +1 -0
  46. package/esm/funcs/projectsUploadProjectClientCert.js +94 -0
  47. package/esm/funcs/projectsUploadProjectClientCert.js.map +1 -0
  48. package/esm/lib/config.d.ts +3 -3
  49. package/esm/lib/config.js +3 -3
  50. package/esm/mcp-server/mcp-server.js +1 -1
  51. package/esm/mcp-server/server.d.ts.map +1 -1
  52. package/esm/mcp-server/server.js +5 -1
  53. package/esm/mcp-server/server.js.map +1 -1
  54. package/esm/mcp-server/tools/edgeCacheDangerouslyDeleteByTags.js +1 -1
  55. package/esm/mcp-server/tools/edgeCacheInvalidateByTags.js +1 -1
  56. package/esm/mcp-server/tools/projectsBatchRemoveProjectEnv.d.ts +7 -0
  57. package/esm/mcp-server/tools/projectsBatchRemoveProjectEnv.d.ts.map +1 -0
  58. package/esm/mcp-server/tools/projectsBatchRemoveProjectEnv.js +28 -0
  59. package/esm/mcp-server/tools/projectsBatchRemoveProjectEnv.js.map +1 -0
  60. package/esm/mcp-server/tools/projectsUploadProjectClientCert.d.ts +7 -0
  61. package/esm/mcp-server/tools/projectsUploadProjectClientCert.d.ts.map +1 -0
  62. package/esm/mcp-server/tools/projectsUploadProjectClientCert.js +28 -0
  63. package/esm/mcp-server/tools/projectsUploadProjectClientCert.js.map +1 -0
  64. package/esm/models/batchremoveprojectenvop.d.ts +99 -0
  65. package/esm/models/batchremoveprojectenvop.d.ts.map +1 -0
  66. package/esm/models/batchremoveprojectenvop.js +100 -0
  67. package/esm/models/batchremoveprojectenvop.js.map +1 -0
  68. package/esm/models/createintegrationstoredirectop.d.ts +285 -285
  69. package/esm/models/createintegrationstoredirectop.js +351 -351
  70. package/esm/models/createprojectop.d.ts +30 -30
  71. package/esm/models/createprojectop.d.ts.map +1 -1
  72. package/esm/models/createprojectop.js +18 -18
  73. package/esm/models/createprojectop.js.map +1 -1
  74. package/esm/models/createwebhookop.d.ts +6 -0
  75. package/esm/models/createwebhookop.d.ts.map +1 -1
  76. package/esm/models/createwebhookop.js +2 -0
  77. package/esm/models/createwebhookop.js.map +1 -1
  78. package/esm/models/getbillingplansop.d.ts +2 -2
  79. package/esm/models/getbillingplansop.d.ts.map +1 -1
  80. package/esm/models/getbillingplansop.js +2 -2
  81. package/esm/models/getbillingplansop.js.map +1 -1
  82. package/esm/models/getconfigurationop.d.ts +302 -302
  83. package/esm/models/getconfigurationop.d.ts.map +1 -1
  84. package/esm/models/getconfigurationop.js +212 -212
  85. package/esm/models/getconfigurationop.js.map +1 -1
  86. package/esm/models/getconfigurationproductsop.d.ts +375 -375
  87. package/esm/models/getconfigurationproductsop.js +465 -465
  88. package/esm/models/getwebhookop.d.ts +3 -0
  89. package/esm/models/getwebhookop.d.ts.map +1 -1
  90. package/esm/models/getwebhookop.js +1 -0
  91. package/esm/models/getwebhookop.js.map +1 -1
  92. package/esm/models/getwebhooksop.d.ts +6 -0
  93. package/esm/models/getwebhooksop.d.ts.map +1 -1
  94. package/esm/models/getwebhooksop.js +2 -0
  95. package/esm/models/getwebhooksop.js.map +1 -1
  96. package/esm/models/updateprojectop.d.ts +30 -30
  97. package/esm/models/updateprojectop.d.ts.map +1 -1
  98. package/esm/models/updateprojectop.js +18 -18
  99. package/esm/models/updateprojectop.js.map +1 -1
  100. package/esm/models/uploadprojectclientcertop.d.ts +122 -0
  101. package/esm/models/uploadprojectclientcertop.d.ts.map +1 -0
  102. package/esm/models/uploadprojectclientcertop.js +108 -0
  103. package/esm/models/uploadprojectclientcertop.js.map +1 -0
  104. package/esm/models/userevent.d.ts +1856 -1824
  105. package/esm/models/userevent.d.ts.map +1 -1
  106. package/esm/models/userevent.js +2400 -2367
  107. package/esm/models/userevent.js.map +1 -1
  108. package/esm/sdk/edgecache.d.ts +2 -2
  109. package/esm/sdk/edgecache.js +2 -2
  110. package/esm/sdk/projects.d.ts +16 -0
  111. package/esm/sdk/projects.d.ts.map +1 -1
  112. package/esm/sdk/projects.js +20 -0
  113. package/esm/sdk/projects.js.map +1 -1
  114. package/examples/package-lock.json +1 -1
  115. package/jsr.json +1 -1
  116. package/package.json +1 -1
  117. package/src/__tests__/domains.test.ts +9 -6
  118. package/src/__tests__/edgeconfig.test.ts +6 -6
  119. package/src/__tests__/integrations.test.ts +3 -3
  120. package/src/__tests__/logdrains.test.ts +3 -1
  121. package/src/__tests__/projects.test.ts +51 -0
  122. package/src/__tests__/rollingrelease.test.ts +6 -2
  123. package/src/__tests__/security.test.ts +4 -4
  124. package/src/funcs/edgeCacheDangerouslyDeleteByTags.ts +1 -1
  125. package/src/funcs/edgeCacheInvalidateByTags.ts +1 -1
  126. package/src/funcs/edgeConfigCreateEdgeConfigToken.ts +2 -2
  127. package/src/funcs/edgeConfigDeleteEdgeConfig.ts +2 -2
  128. package/src/funcs/edgeConfigDeleteEdgeConfigSchema.ts +2 -2
  129. package/src/funcs/edgeConfigDeleteEdgeConfigTokens.ts +2 -2
  130. package/src/funcs/edgeConfigPatchEdgeConfigSchema.ts +2 -2
  131. package/src/funcs/edgeConfigUpdateEdgeConfig.ts +2 -2
  132. package/src/funcs/integrationsCreateIntegrationStoreDirect.ts +2 -2
  133. package/src/funcs/integrationsDeleteConfiguration.ts +2 -2
  134. package/src/funcs/projectsBatchRemoveProjectEnv.ts +206 -0
  135. package/src/funcs/projectsUploadProjectClientCert.ts +198 -0
  136. package/src/lib/config.ts +3 -3
  137. package/src/mcp-server/mcp-server.ts +1 -1
  138. package/src/mcp-server/server.ts +5 -1
  139. package/src/mcp-server/tools/edgeCacheDangerouslyDeleteByTags.ts +1 -1
  140. package/src/mcp-server/tools/edgeCacheInvalidateByTags.ts +1 -1
  141. package/src/mcp-server/tools/projectsBatchRemoveProjectEnv.ts +37 -0
  142. package/src/mcp-server/tools/projectsUploadProjectClientCert.ts +38 -0
  143. package/src/models/batchremoveprojectenvop.ts +228 -0
  144. package/src/models/createintegrationstoredirectop.ts +604 -604
  145. package/src/models/createprojectop.ts +30 -30
  146. package/src/models/createwebhookop.ts +2 -0
  147. package/src/models/getbillingplansop.ts +4 -4
  148. package/src/models/getconfigurationop.ts +651 -651
  149. package/src/models/getconfigurationproductsop.ts +802 -802
  150. package/src/models/getwebhookop.ts +1 -0
  151. package/src/models/getwebhooksop.ts +2 -0
  152. package/src/models/updateprojectop.ts +30 -30
  153. package/src/models/uploadprojectclientcertop.ts +263 -0
  154. package/src/models/userevent.ts +4207 -4130
  155. package/src/sdk/edgecache.ts +2 -2
  156. package/src/sdk/projects.ts +44 -0
  157. package/vercel-spec.json +609 -287
@@ -0,0 +1,206 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { VercelCore } from "../core.js";
6
+ import { encodeFormQuery, encodeJSON, encodeSimple } from "../lib/encodings.js";
7
+ import * as M from "../lib/matchers.js";
8
+ import { compactMap } from "../lib/primitives.js";
9
+ import { safeParse } from "../lib/schemas.js";
10
+ import { RequestOptions } from "../lib/sdks.js";
11
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
12
+ import { pathToFunc } from "../lib/url.js";
13
+ import {
14
+ BatchRemoveProjectEnvRequest,
15
+ BatchRemoveProjectEnvRequest$outboundSchema,
16
+ BatchRemoveProjectEnvResponseBody,
17
+ BatchRemoveProjectEnvResponseBody$inboundSchema,
18
+ } from "../models/batchremoveprojectenvop.js";
19
+ import {
20
+ ConnectionError,
21
+ InvalidRequestError,
22
+ RequestAbortedError,
23
+ RequestTimeoutError,
24
+ UnexpectedClientError,
25
+ } from "../models/httpclienterrors.js";
26
+ import { ResponseValidationError } from "../models/responsevalidationerror.js";
27
+ import { SDKValidationError } from "../models/sdkvalidationerror.js";
28
+ import {
29
+ VercelBadRequestError,
30
+ VercelBadRequestError$inboundSchema,
31
+ } from "../models/vercelbadrequesterror.js";
32
+ import { VercelError } from "../models/vercelerror.js";
33
+ import {
34
+ VercelForbiddenError,
35
+ VercelForbiddenError$inboundSchema,
36
+ } from "../models/vercelforbiddenerror.js";
37
+ import {
38
+ VercelNotFoundError,
39
+ VercelNotFoundError$inboundSchema,
40
+ } from "../models/vercelnotfounderror.js";
41
+ import { APICall, APIPromise } from "../types/async.js";
42
+ import { Result } from "../types/fp.js";
43
+
44
+ /**
45
+ * Batch remove environment variables
46
+ *
47
+ * @remarks
48
+ * Delete multiple environment variables for a given project in a single batch operation.
49
+ */
50
+ export function projectsBatchRemoveProjectEnv(
51
+ client: VercelCore,
52
+ request: BatchRemoveProjectEnvRequest,
53
+ options?: RequestOptions,
54
+ ): APIPromise<
55
+ Result<
56
+ BatchRemoveProjectEnvResponseBody,
57
+ | VercelBadRequestError
58
+ | VercelForbiddenError
59
+ | VercelNotFoundError
60
+ | VercelError
61
+ | ResponseValidationError
62
+ | ConnectionError
63
+ | RequestAbortedError
64
+ | RequestTimeoutError
65
+ | InvalidRequestError
66
+ | UnexpectedClientError
67
+ | SDKValidationError
68
+ >
69
+ > {
70
+ return new APIPromise($do(
71
+ client,
72
+ request,
73
+ options,
74
+ ));
75
+ }
76
+
77
+ async function $do(
78
+ client: VercelCore,
79
+ request: BatchRemoveProjectEnvRequest,
80
+ options?: RequestOptions,
81
+ ): Promise<
82
+ [
83
+ Result<
84
+ BatchRemoveProjectEnvResponseBody,
85
+ | VercelBadRequestError
86
+ | VercelForbiddenError
87
+ | VercelNotFoundError
88
+ | VercelError
89
+ | ResponseValidationError
90
+ | ConnectionError
91
+ | RequestAbortedError
92
+ | RequestTimeoutError
93
+ | InvalidRequestError
94
+ | UnexpectedClientError
95
+ | SDKValidationError
96
+ >,
97
+ APICall,
98
+ ]
99
+ > {
100
+ const parsed = safeParse(
101
+ request,
102
+ (value) => BatchRemoveProjectEnvRequest$outboundSchema.parse(value),
103
+ "Input validation failed",
104
+ );
105
+ if (!parsed.ok) {
106
+ return [parsed, { status: "invalid" }];
107
+ }
108
+ const payload = parsed.value;
109
+ const body = encodeJSON("body", payload.RequestBody, { explode: true });
110
+
111
+ const pathParams = {
112
+ idOrName: encodeSimple("idOrName", payload.idOrName, {
113
+ explode: false,
114
+ charEncoding: "percent",
115
+ }),
116
+ };
117
+
118
+ const path = pathToFunc("/v1/projects/{idOrName}/env")(pathParams);
119
+
120
+ const query = encodeFormQuery({
121
+ "slug": payload.slug,
122
+ "teamId": payload.teamId,
123
+ });
124
+
125
+ const headers = new Headers(compactMap({
126
+ "Content-Type": "application/json",
127
+ Accept: "application/json",
128
+ }));
129
+
130
+ const secConfig = await extractSecurity(client._options.bearerToken);
131
+ const securityInput = secConfig == null ? {} : { bearerToken: secConfig };
132
+ const requestSecurity = resolveGlobalSecurity(securityInput);
133
+
134
+ const context = {
135
+ options: client._options,
136
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
137
+ operationID: "batchRemoveProjectEnv",
138
+ oAuth2Scopes: [],
139
+
140
+ resolvedSecurity: requestSecurity,
141
+
142
+ securitySource: client._options.bearerToken,
143
+ retryConfig: options?.retries
144
+ || client._options.retryConfig
145
+ || { strategy: "none" },
146
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
147
+ };
148
+
149
+ const requestRes = client._createRequest(context, {
150
+ security: requestSecurity,
151
+ method: "DELETE",
152
+ baseURL: options?.serverURL,
153
+ path: path,
154
+ headers: headers,
155
+ query: query,
156
+ body: body,
157
+ userAgent: client._options.userAgent,
158
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
159
+ }, options);
160
+ if (!requestRes.ok) {
161
+ return [requestRes, { status: "invalid" }];
162
+ }
163
+ const req = requestRes.value;
164
+
165
+ const doResult = await client._do(req, {
166
+ context,
167
+ errorCodes: ["400", "401", "403", "404", "409", "4XX", "5XX"],
168
+ retryConfig: context.retryConfig,
169
+ retryCodes: context.retryCodes,
170
+ });
171
+ if (!doResult.ok) {
172
+ return [doResult, { status: "request-error", request: req }];
173
+ }
174
+ const response = doResult.value;
175
+
176
+ const responseFields = {
177
+ HttpMeta: { Response: response, Request: req },
178
+ };
179
+
180
+ const [result] = await M.match<
181
+ BatchRemoveProjectEnvResponseBody,
182
+ | VercelBadRequestError
183
+ | VercelForbiddenError
184
+ | VercelNotFoundError
185
+ | VercelError
186
+ | ResponseValidationError
187
+ | ConnectionError
188
+ | RequestAbortedError
189
+ | RequestTimeoutError
190
+ | InvalidRequestError
191
+ | UnexpectedClientError
192
+ | SDKValidationError
193
+ >(
194
+ M.json(200, BatchRemoveProjectEnvResponseBody$inboundSchema),
195
+ M.jsonErr(400, VercelBadRequestError$inboundSchema),
196
+ M.jsonErr(401, VercelForbiddenError$inboundSchema),
197
+ M.jsonErr(404, VercelNotFoundError$inboundSchema),
198
+ M.fail([403, 409, "4XX"]),
199
+ M.fail("5XX"),
200
+ )(response, req, { extraFields: responseFields });
201
+ if (!result.ok) {
202
+ return [result, { status: "complete", request: req, response }];
203
+ }
204
+
205
+ return [result, { status: "complete", request: req, response }];
206
+ }
@@ -0,0 +1,198 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { VercelCore } from "../core.js";
6
+ import { encodeFormQuery, encodeJSON, encodeSimple } from "../lib/encodings.js";
7
+ import * as M from "../lib/matchers.js";
8
+ import { compactMap } from "../lib/primitives.js";
9
+ import { safeParse } from "../lib/schemas.js";
10
+ import { RequestOptions } from "../lib/sdks.js";
11
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
12
+ import { pathToFunc } from "../lib/url.js";
13
+ import {
14
+ ConnectionError,
15
+ InvalidRequestError,
16
+ RequestAbortedError,
17
+ RequestTimeoutError,
18
+ UnexpectedClientError,
19
+ } from "../models/httpclienterrors.js";
20
+ import { ResponseValidationError } from "../models/responsevalidationerror.js";
21
+ import { SDKValidationError } from "../models/sdkvalidationerror.js";
22
+ import {
23
+ UploadProjectClientCertRequest,
24
+ UploadProjectClientCertRequest$outboundSchema,
25
+ UploadProjectClientCertResponseBody,
26
+ UploadProjectClientCertResponseBody$inboundSchema,
27
+ } from "../models/uploadprojectclientcertop.js";
28
+ import {
29
+ VercelBadRequestError,
30
+ VercelBadRequestError$inboundSchema,
31
+ } from "../models/vercelbadrequesterror.js";
32
+ import { VercelError } from "../models/vercelerror.js";
33
+ import {
34
+ VercelForbiddenError,
35
+ VercelForbiddenError$inboundSchema,
36
+ } from "../models/vercelforbiddenerror.js";
37
+ import { APICall, APIPromise } from "../types/async.js";
38
+ import { Result } from "../types/fp.js";
39
+
40
+ /**
41
+ * Upload client certificate for egress mTLS
42
+ *
43
+ * @remarks
44
+ * Upload or update a client certificate for mTLS authentication to external origins. The certificate is uploaded to S3 in plaintext, while the private key is encrypted. A hash reference is stored in the project document. The certificate will be available in the deployment runtime for establishing mTLS connections.
45
+ */
46
+ export function projectsUploadProjectClientCert(
47
+ client: VercelCore,
48
+ request: UploadProjectClientCertRequest,
49
+ options?: RequestOptions,
50
+ ): APIPromise<
51
+ Result<
52
+ UploadProjectClientCertResponseBody,
53
+ | VercelBadRequestError
54
+ | VercelForbiddenError
55
+ | VercelError
56
+ | ResponseValidationError
57
+ | ConnectionError
58
+ | RequestAbortedError
59
+ | RequestTimeoutError
60
+ | InvalidRequestError
61
+ | UnexpectedClientError
62
+ | SDKValidationError
63
+ >
64
+ > {
65
+ return new APIPromise($do(
66
+ client,
67
+ request,
68
+ options,
69
+ ));
70
+ }
71
+
72
+ async function $do(
73
+ client: VercelCore,
74
+ request: UploadProjectClientCertRequest,
75
+ options?: RequestOptions,
76
+ ): Promise<
77
+ [
78
+ Result<
79
+ UploadProjectClientCertResponseBody,
80
+ | VercelBadRequestError
81
+ | VercelForbiddenError
82
+ | VercelError
83
+ | ResponseValidationError
84
+ | ConnectionError
85
+ | RequestAbortedError
86
+ | RequestTimeoutError
87
+ | InvalidRequestError
88
+ | UnexpectedClientError
89
+ | SDKValidationError
90
+ >,
91
+ APICall,
92
+ ]
93
+ > {
94
+ const parsed = safeParse(
95
+ request,
96
+ (value) => UploadProjectClientCertRequest$outboundSchema.parse(value),
97
+ "Input validation failed",
98
+ );
99
+ if (!parsed.ok) {
100
+ return [parsed, { status: "invalid" }];
101
+ }
102
+ const payload = parsed.value;
103
+ const body = encodeJSON("body", payload.RequestBody, { explode: true });
104
+
105
+ const pathParams = {
106
+ idOrName: encodeSimple("idOrName", payload.idOrName, {
107
+ explode: false,
108
+ charEncoding: "percent",
109
+ }),
110
+ };
111
+
112
+ const path = pathToFunc("/v1/projects/{idOrName}/client-cert")(pathParams);
113
+
114
+ const query = encodeFormQuery({
115
+ "slug": payload.slug,
116
+ "teamId": payload.teamId,
117
+ });
118
+
119
+ const headers = new Headers(compactMap({
120
+ "Content-Type": "application/json",
121
+ Accept: "application/json",
122
+ }));
123
+
124
+ const secConfig = await extractSecurity(client._options.bearerToken);
125
+ const securityInput = secConfig == null ? {} : { bearerToken: secConfig };
126
+ const requestSecurity = resolveGlobalSecurity(securityInput);
127
+
128
+ const context = {
129
+ options: client._options,
130
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
131
+ operationID: "uploadProjectClientCert",
132
+ oAuth2Scopes: [],
133
+
134
+ resolvedSecurity: requestSecurity,
135
+
136
+ securitySource: client._options.bearerToken,
137
+ retryConfig: options?.retries
138
+ || client._options.retryConfig
139
+ || { strategy: "none" },
140
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
141
+ };
142
+
143
+ const requestRes = client._createRequest(context, {
144
+ security: requestSecurity,
145
+ method: "POST",
146
+ baseURL: options?.serverURL,
147
+ path: path,
148
+ headers: headers,
149
+ query: query,
150
+ body: body,
151
+ userAgent: client._options.userAgent,
152
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
153
+ }, options);
154
+ if (!requestRes.ok) {
155
+ return [requestRes, { status: "invalid" }];
156
+ }
157
+ const req = requestRes.value;
158
+
159
+ const doResult = await client._do(req, {
160
+ context,
161
+ errorCodes: ["400", "401", "402", "403", "409", "4XX", "500", "5XX"],
162
+ retryConfig: context.retryConfig,
163
+ retryCodes: context.retryCodes,
164
+ });
165
+ if (!doResult.ok) {
166
+ return [doResult, { status: "request-error", request: req }];
167
+ }
168
+ const response = doResult.value;
169
+
170
+ const responseFields = {
171
+ HttpMeta: { Response: response, Request: req },
172
+ };
173
+
174
+ const [result] = await M.match<
175
+ UploadProjectClientCertResponseBody,
176
+ | VercelBadRequestError
177
+ | VercelForbiddenError
178
+ | VercelError
179
+ | ResponseValidationError
180
+ | ConnectionError
181
+ | RequestAbortedError
182
+ | RequestTimeoutError
183
+ | InvalidRequestError
184
+ | UnexpectedClientError
185
+ | SDKValidationError
186
+ >(
187
+ M.json(200, UploadProjectClientCertResponseBody$inboundSchema),
188
+ M.jsonErr(400, VercelBadRequestError$inboundSchema),
189
+ M.jsonErr(401, VercelForbiddenError$inboundSchema),
190
+ M.fail([402, 403, 409, "4XX"]),
191
+ M.fail([500, "5XX"]),
192
+ )(response, req, { extraFields: responseFields });
193
+ if (!result.ok) {
194
+ return [result, { status: "complete", request: req, response }];
195
+ }
196
+
197
+ return [result, { status: "complete", request: req, response }];
198
+ }
package/src/lib/config.ts CHANGED
@@ -61,7 +61,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
61
61
  export const SDK_METADATA = {
62
62
  language: "typescript",
63
63
  openapiDocVersion: "0.0.1",
64
- sdkVersion: "1.12.0",
65
- genVersion: "2.721.0",
66
- userAgent: "speakeasy-sdk/typescript 1.12.0 2.721.0 0.0.1 @vercel/sdk",
64
+ sdkVersion: "1.12.2",
65
+ genVersion: "2.721.3",
66
+ userAgent: "speakeasy-sdk/typescript 1.12.2 2.721.3 0.0.1 @vercel/sdk",
67
67
  } as const;
@@ -19,7 +19,7 @@ const routes = buildRouteMap({
19
19
  export const app = buildApplication(routes, {
20
20
  name: "mcp",
21
21
  versionInfo: {
22
- currentVersion: "1.12.0",
22
+ currentVersion: "1.12.2",
23
23
  },
24
24
  });
25
25
 
@@ -133,6 +133,7 @@ import { tool$projectMembersGetProjectMembers } from "./tools/projectMembersGetP
133
133
  import { tool$projectMembersRemoveProjectMember } from "./tools/projectMembersRemoveProjectMember.js";
134
134
  import { tool$projectsAcceptProjectTransferRequest } from "./tools/projectsAcceptProjectTransferRequest.js";
135
135
  import { tool$projectsAddProjectDomain } from "./tools/projectsAddProjectDomain.js";
136
+ import { tool$projectsBatchRemoveProjectEnv } from "./tools/projectsBatchRemoveProjectEnv.js";
136
137
  import { tool$projectsCreateProject } from "./tools/projectsCreateProject.js";
137
138
  import { tool$projectsCreateProjectEnv } from "./tools/projectsCreateProjectEnv.js";
138
139
  import { tool$projectsCreateProjectTransferRequest } from "./tools/projectsCreateProjectTransferRequest.js";
@@ -154,6 +155,7 @@ import { tool$projectsUpdateProject } from "./tools/projectsUpdateProject.js";
154
155
  import { tool$projectsUpdateProjectDataCache } from "./tools/projectsUpdateProjectDataCache.js";
155
156
  import { tool$projectsUpdateProjectDomain } from "./tools/projectsUpdateProjectDomain.js";
156
157
  import { tool$projectsUpdateProjectProtectionBypass } from "./tools/projectsUpdateProjectProtectionBypass.js";
158
+ import { tool$projectsUploadProjectClientCert } from "./tools/projectsUploadProjectClientCert.js";
157
159
  import { tool$projectsVerifyProjectDomain } from "./tools/projectsVerifyProjectDomain.js";
158
160
  import { tool$rollingReleaseApproveRollingReleaseStage } from "./tools/rollingReleaseApproveRollingReleaseStage.js";
159
161
  import { tool$rollingReleaseCompleteRollingRelease } from "./tools/rollingReleaseCompleteRollingRelease.js";
@@ -201,7 +203,7 @@ export function createMCPServer(deps: {
201
203
  }) {
202
204
  const server = new McpServer({
203
205
  name: "Vercel",
204
- version: "1.12.0",
206
+ version: "1.12.2",
205
207
  });
206
208
 
207
209
  const client = new VercelCore({
@@ -270,6 +272,8 @@ export function createMCPServer(deps: {
270
272
  tool(tool$projectsGetProjectEnv);
271
273
  tool(tool$projectsRemoveProjectEnv);
272
274
  tool(tool$projectsEditProjectEnv);
275
+ tool(tool$projectsBatchRemoveProjectEnv);
276
+ tool(tool$projectsUploadProjectClientCert);
273
277
  tool(tool$projectsCreateProjectTransferRequest);
274
278
  tool(tool$projectsAcceptProjectTransferRequest);
275
279
  tool(tool$projectsUpdateProjectProtectionBypass);
@@ -14,7 +14,7 @@ export const tool$edgeCacheDangerouslyDeleteByTags: ToolDefinition<
14
14
  typeof args
15
15
  > = {
16
16
  name: "edge-cache-dangerously-delete-by-tags",
17
- description: `Dangerously delete the edge cache by one or more tags
17
+ description: `Dangerously delete by tag
18
18
 
19
19
  Marks a cache tag as deleted, causing cache entries associated with that tag to be revalidated in the foreground on the next request. Use this method with caution because one tag can be associated with many paths and deleting the cache can cause many concurrent requests to the origin leading to cache stampede problem. A good use case for deleting the cache is when the origin has also been deleted, for example it returns a 404 or 410 status code.`,
20
20
  args,
@@ -12,7 +12,7 @@ const args = {
12
12
 
13
13
  export const tool$edgeCacheInvalidateByTags: ToolDefinition<typeof args> = {
14
14
  name: "edge-cache-invalidate-by-tags",
15
- description: `Invalidate the edge cache by one or more tags
15
+ description: `Invalidate by tag
16
16
 
17
17
  Marks a cache tag as stale, causing cache entries associated with that tag to be revalidated in the background on the next request.`,
18
18
  args,
@@ -0,0 +1,37 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { projectsBatchRemoveProjectEnv } from "../../funcs/projectsBatchRemoveProjectEnv.js";
6
+ import { BatchRemoveProjectEnvRequest$inboundSchema } from "../../models/batchremoveprojectenvop.js";
7
+ import { formatResult, ToolDefinition } from "../tools.js";
8
+
9
+ const args = {
10
+ request: BatchRemoveProjectEnvRequest$inboundSchema,
11
+ };
12
+
13
+ export const tool$projectsBatchRemoveProjectEnv: ToolDefinition<typeof args> = {
14
+ name: "projects-batch-remove-project-env",
15
+ description: `Batch remove environment variables
16
+
17
+ Delete multiple environment variables for a given project in a single batch operation.`,
18
+ args,
19
+ tool: async (client, args, ctx) => {
20
+ const [result, apiCall] = await projectsBatchRemoveProjectEnv(
21
+ client,
22
+ args.request,
23
+ { fetchOptions: { signal: ctx.signal } },
24
+ ).$inspect();
25
+
26
+ if (!result.ok) {
27
+ return {
28
+ content: [{ type: "text", text: result.error.message }],
29
+ isError: true,
30
+ };
31
+ }
32
+
33
+ const value = result.value;
34
+
35
+ return formatResult(value, apiCall);
36
+ },
37
+ };
@@ -0,0 +1,38 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { projectsUploadProjectClientCert } from "../../funcs/projectsUploadProjectClientCert.js";
6
+ import { UploadProjectClientCertRequest$inboundSchema } from "../../models/uploadprojectclientcertop.js";
7
+ import { formatResult, ToolDefinition } from "../tools.js";
8
+
9
+ const args = {
10
+ request: UploadProjectClientCertRequest$inboundSchema,
11
+ };
12
+
13
+ export const tool$projectsUploadProjectClientCert: ToolDefinition<typeof args> =
14
+ {
15
+ name: "projects-upload-project-client-cert",
16
+ description: `Upload client certificate for egress mTLS
17
+
18
+ Upload or update a client certificate for mTLS authentication to external origins. The certificate is uploaded to S3 in plaintext, while the private key is encrypted. A hash reference is stored in the project document. The certificate will be available in the deployment runtime for establishing mTLS connections.`,
19
+ args,
20
+ tool: async (client, args, ctx) => {
21
+ const [result, apiCall] = await projectsUploadProjectClientCert(
22
+ client,
23
+ args.request,
24
+ { fetchOptions: { signal: ctx.signal } },
25
+ ).$inspect();
26
+
27
+ if (!result.ok) {
28
+ return {
29
+ content: [{ type: "text", text: result.error.message }],
30
+ isError: true,
31
+ };
32
+ }
33
+
34
+ const value = result.value;
35
+
36
+ return formatResult(value, apiCall);
37
+ },
38
+ };