@vercel/sdk 1.6.0 → 1.6.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 (130) hide show
  1. package/README.md +4 -2
  2. package/bin/mcp-server.js +965 -707
  3. package/bin/mcp-server.js.map +29 -26
  4. package/docs/sdks/marketplace/README.md +0 -81
  5. package/docs/sdks/projects/README.md +162 -0
  6. package/docs/sdks/security/README.md +8 -2
  7. package/esm/__tests__/marketplace.test.js +3 -13
  8. package/esm/__tests__/marketplace.test.js.map +1 -1
  9. package/esm/__tests__/projects.test.js +26 -0
  10. package/esm/__tests__/projects.test.js.map +1 -1
  11. package/esm/__tests__/security.test.js +14 -1
  12. package/esm/__tests__/security.test.js.map +1 -1
  13. package/esm/funcs/deploymentsUploadFile.js +2 -1
  14. package/esm/funcs/deploymentsUploadFile.js.map +1 -1
  15. package/esm/funcs/projectsPauseProject.d.ts +18 -0
  16. package/esm/funcs/projectsPauseProject.d.ts.map +1 -0
  17. package/esm/funcs/{marketplaceQueryExperimentationItems.js → projectsPauseProject.js} +21 -13
  18. package/esm/funcs/projectsPauseProject.js.map +1 -0
  19. package/esm/funcs/projectsUnpauseProject.d.ts +18 -0
  20. package/esm/funcs/projectsUnpauseProject.d.ts.map +1 -0
  21. package/esm/funcs/projectsUnpauseProject.js +92 -0
  22. package/esm/funcs/projectsUnpauseProject.js.map +1 -0
  23. package/esm/lib/config.d.ts +3 -3
  24. package/esm/lib/config.js +3 -3
  25. package/esm/mcp-server/mcp-server.js +1 -1
  26. package/esm/mcp-server/prompts.d.ts.map +1 -1
  27. package/esm/mcp-server/prompts.js +5 -1
  28. package/esm/mcp-server/prompts.js.map +1 -1
  29. package/esm/mcp-server/resources.d.ts.map +1 -1
  30. package/esm/mcp-server/resources.js +10 -2
  31. package/esm/mcp-server/resources.js.map +1 -1
  32. package/esm/mcp-server/server.d.ts.map +1 -1
  33. package/esm/mcp-server/server.js +6 -5
  34. package/esm/mcp-server/server.js.map +1 -1
  35. package/esm/mcp-server/tools/projectsPauseProject.d.ts +7 -0
  36. package/esm/mcp-server/tools/projectsPauseProject.d.ts.map +1 -0
  37. package/esm/mcp-server/tools/projectsPauseProject.js +27 -0
  38. package/esm/mcp-server/tools/projectsPauseProject.js.map +1 -0
  39. package/esm/mcp-server/tools/projectsUnpauseProject.d.ts +7 -0
  40. package/esm/mcp-server/tools/projectsUnpauseProject.d.ts.map +1 -0
  41. package/esm/mcp-server/tools/projectsUnpauseProject.js +27 -0
  42. package/esm/mcp-server/tools/projectsUnpauseProject.js.map +1 -0
  43. package/esm/mcp-server/tools.d.ts.map +1 -1
  44. package/esm/mcp-server/tools.js +4 -3
  45. package/esm/mcp-server/tools.js.map +1 -1
  46. package/esm/models/authuser.d.ts +17 -66
  47. package/esm/models/authuser.d.ts.map +1 -1
  48. package/esm/models/authuser.js +10 -74
  49. package/esm/models/authuser.js.map +1 -1
  50. package/esm/models/createprojectop.d.ts +1 -1
  51. package/esm/models/createprojectop.d.ts.map +1 -1
  52. package/esm/models/createprojectop.js +4 -4
  53. package/esm/models/createprojectop.js.map +1 -1
  54. package/esm/models/getconfigurationop.d.ts +306 -0
  55. package/esm/models/getconfigurationop.d.ts.map +1 -1
  56. package/esm/models/getconfigurationop.js +296 -0
  57. package/esm/models/getconfigurationop.js.map +1 -1
  58. package/esm/models/importresourceop.d.ts +64 -0
  59. package/esm/models/importresourceop.d.ts.map +1 -1
  60. package/esm/models/importresourceop.js +64 -0
  61. package/esm/models/importresourceop.js.map +1 -1
  62. package/esm/models/pauseprojectop.d.ts +42 -0
  63. package/esm/models/pauseprojectop.d.ts.map +1 -0
  64. package/esm/models/pauseprojectop.js +35 -0
  65. package/esm/models/pauseprojectop.js.map +1 -0
  66. package/esm/models/unpauseprojectop.d.ts +42 -0
  67. package/esm/models/unpauseprojectop.d.ts.map +1 -0
  68. package/esm/models/unpauseprojectop.js +35 -0
  69. package/esm/models/unpauseprojectop.js.map +1 -0
  70. package/esm/models/updateprojectop.d.ts +1 -1
  71. package/esm/models/updateprojectop.d.ts.map +1 -1
  72. package/esm/models/updateprojectop.js +4 -4
  73. package/esm/models/updateprojectop.js.map +1 -1
  74. package/esm/models/uploadfileop.d.ts +2 -0
  75. package/esm/models/uploadfileop.d.ts.map +1 -1
  76. package/esm/models/uploadfileop.js +14 -0
  77. package/esm/models/uploadfileop.js.map +1 -1
  78. package/esm/models/userevent.d.ts +11 -63
  79. package/esm/models/userevent.d.ts.map +1 -1
  80. package/esm/models/userevent.js +10 -74
  81. package/esm/models/userevent.js.map +1 -1
  82. package/esm/sdk/marketplace.d.ts +0 -8
  83. package/esm/sdk/marketplace.d.ts.map +1 -1
  84. package/esm/sdk/marketplace.js +0 -10
  85. package/esm/sdk/marketplace.js.map +1 -1
  86. package/esm/sdk/projects.d.ts +16 -0
  87. package/esm/sdk/projects.d.ts.map +1 -1
  88. package/esm/sdk/projects.js +20 -0
  89. package/esm/sdk/projects.js.map +1 -1
  90. package/jsr.json +1 -1
  91. package/package.json +1 -1
  92. package/src/__tests__/marketplace.test.ts +5 -15
  93. package/src/__tests__/projects.test.ts +32 -0
  94. package/src/__tests__/security.test.ts +14 -1
  95. package/src/funcs/deploymentsUploadFile.ts +2 -1
  96. package/src/funcs/projectsPauseProject.ts +190 -0
  97. package/src/funcs/{marketplaceQueryExperimentationItems.ts → projectsUnpauseProject.ts} +30 -23
  98. package/src/lib/config.ts +3 -3
  99. package/src/mcp-server/mcp-server.ts +1 -1
  100. package/src/mcp-server/prompts.ts +8 -1
  101. package/src/mcp-server/resources.ts +16 -2
  102. package/src/mcp-server/server.ts +7 -5
  103. package/src/mcp-server/tools/projectsPauseProject.ts +35 -0
  104. package/src/mcp-server/tools/projectsUnpauseProject.ts +35 -0
  105. package/src/mcp-server/tools.ts +6 -3
  106. package/src/models/authuser.ts +29 -166
  107. package/src/models/createprojectop.ts +5 -5
  108. package/src/models/getconfigurationop.ts +579 -0
  109. package/src/models/importresourceop.ts +141 -0
  110. package/src/models/pauseprojectop.ts +83 -0
  111. package/src/models/unpauseprojectop.ts +83 -0
  112. package/src/models/updateprojectop.ts +5 -5
  113. package/src/models/uploadfileop.ts +26 -0
  114. package/src/models/userevent.ts +23 -174
  115. package/src/sdk/marketplace.ts +0 -22
  116. package/src/sdk/projects.ts +38 -0
  117. package/vercel-spec.json +426 -229
  118. package/esm/funcs/marketplaceQueryExperimentationItems.d.ts +0 -18
  119. package/esm/funcs/marketplaceQueryExperimentationItems.d.ts.map +0 -1
  120. package/esm/funcs/marketplaceQueryExperimentationItems.js.map +0 -1
  121. package/esm/mcp-server/tools/marketplaceQueryExperimentationItems.d.ts +0 -7
  122. package/esm/mcp-server/tools/marketplaceQueryExperimentationItems.d.ts.map +0 -1
  123. package/esm/mcp-server/tools/marketplaceQueryExperimentationItems.js +0 -28
  124. package/esm/mcp-server/tools/marketplaceQueryExperimentationItems.js.map +0 -1
  125. package/esm/models/queryexperimentationitemsop.d.ts +0 -148
  126. package/esm/models/queryexperimentationitemsop.d.ts.map +0 -1
  127. package/esm/models/queryexperimentationitemsop.js +0 -125
  128. package/esm/models/queryexperimentationitemsop.js.map +0 -1
  129. package/src/mcp-server/tools/marketplaceQueryExperimentationItems.ts +0 -39
  130. package/src/models/queryexperimentationitemsop.ts +0 -287
@@ -2,8 +2,9 @@
2
2
  * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
3
  */
4
4
 
5
+ import * as z from "zod";
5
6
  import { VercelCore } from "../core.js";
6
- import { encodeFormQuery } from "../lib/encodings.js";
7
+ import { encodeFormQuery, encodeSimple } from "../lib/encodings.js";
7
8
  import * as M from "../lib/matchers.js";
8
9
  import { compactMap } from "../lib/primitives.js";
9
10
  import { safeParse } from "../lib/schemas.js";
@@ -17,14 +18,12 @@ import {
17
18
  RequestTimeoutError,
18
19
  UnexpectedClientError,
19
20
  } from "../models/httpclienterrors.js";
20
- import {
21
- QueryExperimentationItemsRequest,
22
- QueryExperimentationItemsRequest$outboundSchema,
23
- QueryExperimentationItemsResponseBody,
24
- QueryExperimentationItemsResponseBody$inboundSchema,
25
- } from "../models/queryexperimentationitemsop.js";
26
21
  import { SDKError } from "../models/sdkerror.js";
27
22
  import { SDKValidationError } from "../models/sdkvalidationerror.js";
23
+ import {
24
+ UnpauseProjectRequest,
25
+ UnpauseProjectRequest$outboundSchema,
26
+ } from "../models/unpauseprojectop.js";
28
27
  import {
29
28
  VercelBadRequestError,
30
29
  VercelBadRequestError$inboundSchema,
@@ -37,18 +36,18 @@ import { APICall, APIPromise } from "../types/async.js";
37
36
  import { Result } from "../types/fp.js";
38
37
 
39
38
  /**
40
- * Query experimentation items
39
+ * Unpause a project
41
40
  *
42
41
  * @remarks
43
- * Queries flags, experiments under a Marketplace resource.
42
+ * Unpause a project by passing its project `id` in the URL. If the project does not exist given the id then the request will fail with 400 status code. If the project enables auto assigning custom production domains and unblocks the active Production Deployment then the request will return with 200 status code.
44
43
  */
45
- export function marketplaceQueryExperimentationItems(
44
+ export function projectsUnpauseProject(
46
45
  client: VercelCore,
47
- request: QueryExperimentationItemsRequest,
46
+ request: UnpauseProjectRequest,
48
47
  options?: RequestOptions,
49
48
  ): APIPromise<
50
49
  Result<
51
- QueryExperimentationItemsResponseBody,
50
+ void,
52
51
  | VercelBadRequestError
53
52
  | VercelForbiddenError
54
53
  | SDKError
@@ -69,12 +68,12 @@ export function marketplaceQueryExperimentationItems(
69
68
 
70
69
  async function $do(
71
70
  client: VercelCore,
72
- request: QueryExperimentationItemsRequest,
71
+ request: UnpauseProjectRequest,
73
72
  options?: RequestOptions,
74
73
  ): Promise<
75
74
  [
76
75
  Result<
77
- QueryExperimentationItemsResponseBody,
76
+ void,
78
77
  | VercelBadRequestError
79
78
  | VercelForbiddenError
80
79
  | SDKError
@@ -90,7 +89,7 @@ async function $do(
90
89
  > {
91
90
  const parsed = safeParse(
92
91
  request,
93
- (value) => QueryExperimentationItemsRequest$outboundSchema.parse(value),
92
+ (value) => UnpauseProjectRequest$outboundSchema.parse(value),
94
93
  "Input validation failed",
95
94
  );
96
95
  if (!parsed.ok) {
@@ -99,10 +98,18 @@ async function $do(
99
98
  const payload = parsed.value;
100
99
  const body = null;
101
100
 
102
- const path = pathToFunc("/v1/experimentation/items")();
101
+ const pathParams = {
102
+ projectId: encodeSimple("projectId", payload.projectId, {
103
+ explode: false,
104
+ charEncoding: "percent",
105
+ }),
106
+ };
107
+
108
+ const path = pathToFunc("/v1/projects/{projectId}/unpause")(pathParams);
103
109
 
104
110
  const query = encodeFormQuery({
105
- "resourceId": payload.resourceId,
111
+ "slug": payload.slug,
112
+ "teamId": payload.teamId,
106
113
  });
107
114
 
108
115
  const headers = new Headers(compactMap({
@@ -115,7 +122,7 @@ async function $do(
115
122
 
116
123
  const context = {
117
124
  baseURL: options?.serverURL ?? client._baseURL ?? "",
118
- operationID: "queryExperimentationItems",
125
+ operationID: "unpauseProject",
119
126
  oAuth2Scopes: [],
120
127
 
121
128
  resolvedSecurity: requestSecurity,
@@ -129,7 +136,7 @@ async function $do(
129
136
 
130
137
  const requestRes = client._createRequest(context, {
131
138
  security: requestSecurity,
132
- method: "GET",
139
+ method: "POST",
133
140
  baseURL: options?.serverURL,
134
141
  path: path,
135
142
  headers: headers,
@@ -144,7 +151,7 @@ async function $do(
144
151
 
145
152
  const doResult = await client._do(req, {
146
153
  context,
147
- errorCodes: ["400", "401", "403", "4XX", "5XX"],
154
+ errorCodes: ["400", "401", "403", "4XX", "500", "5XX"],
148
155
  retryConfig: context.retryConfig,
149
156
  retryCodes: context.retryCodes,
150
157
  });
@@ -158,7 +165,7 @@ async function $do(
158
165
  };
159
166
 
160
167
  const [result] = await M.match<
161
- QueryExperimentationItemsResponseBody,
168
+ void,
162
169
  | VercelBadRequestError
163
170
  | VercelForbiddenError
164
171
  | SDKError
@@ -169,11 +176,11 @@ async function $do(
169
176
  | RequestTimeoutError
170
177
  | ConnectionError
171
178
  >(
172
- M.json(200, QueryExperimentationItemsResponseBody$inboundSchema),
179
+ M.nil(200, z.void()),
173
180
  M.jsonErr(400, VercelBadRequestError$inboundSchema),
174
181
  M.jsonErr(401, VercelForbiddenError$inboundSchema),
175
182
  M.fail([403, "4XX"]),
176
- M.fail("5XX"),
183
+ M.fail([500, "5XX"]),
177
184
  )(response, { extraFields: responseFields });
178
185
  if (!result.ok) {
179
186
  return [result, { status: "complete", request: req, response }];
package/src/lib/config.ts CHANGED
@@ -57,7 +57,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
57
57
  export const SDK_METADATA = {
58
58
  language: "typescript",
59
59
  openapiDocVersion: "0.0.1",
60
- sdkVersion: "1.6.0",
61
- genVersion: "2.565.1",
62
- userAgent: "speakeasy-sdk/typescript 1.6.0 2.565.1 0.0.1 @vercel/sdk",
60
+ sdkVersion: "1.6.2",
61
+ genVersion: "2.570.4",
62
+ userAgent: "speakeasy-sdk/typescript 1.6.2 2.570.4 0.0.1 @vercel/sdk",
63
63
  } 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.6.0",
22
+ currentVersion: "1.6.2",
23
23
  },
24
24
  });
25
25
 
@@ -74,7 +74,14 @@ export function createRegisterPrompt(
74
74
  prompt: PromptDefinition<A>,
75
75
  ): void => {
76
76
  const scopes = prompt.scopes ?? [];
77
- if (!scopes.every((s: MCPScope) => allowedScopes.has(s))) {
77
+ if (allowedScopes.size > 0 && scopes.length === 0) {
78
+ return;
79
+ }
80
+
81
+ if (
82
+ allowedScopes.size > 0
83
+ && !scopes.every((s: MCPScope) => allowedScopes.has(s))
84
+ ) {
78
85
  return;
79
86
  }
80
87
 
@@ -109,7 +109,14 @@ export function createRegisterResource(
109
109
  ): (resource: ResourceDefinition) => void {
110
110
  return (resource: ResourceDefinition): void => {
111
111
  const scopes = resource.scopes ?? [];
112
- if (!scopes.every((s: MCPScope) => allowedScopes.has(s))) {
112
+ if (allowedScopes.size > 0 && scopes.length === 0) {
113
+ return;
114
+ }
115
+
116
+ if (
117
+ allowedScopes.size > 0
118
+ && !scopes.every((s: MCPScope) => allowedScopes.has(s))
119
+ ) {
113
120
  return;
114
121
  }
115
122
 
@@ -137,7 +144,14 @@ export function createRegisterResourceTemplate(
137
144
  ): (resource: ResourceTemplateDefinition) => void {
138
145
  return (resource: ResourceTemplateDefinition): void => {
139
146
  const scopes = resource.scopes ?? [];
140
- if (!scopes.every((s: MCPScope) => allowedScopes.has(s))) {
147
+ if (allowedScopes.size > 0 && scopes.length === 0) {
148
+ return;
149
+ }
150
+
151
+ if (
152
+ allowedScopes.size > 0
153
+ && !scopes.every((s: MCPScope) => allowedScopes.has(s))
154
+ ) {
141
155
  return;
142
156
  }
143
157
 
@@ -11,7 +11,7 @@ import {
11
11
  createRegisterResource,
12
12
  createRegisterResourceTemplate,
13
13
  } from "./resources.js";
14
- import { MCPScope, mcpScopes } from "./scopes.js";
14
+ import { MCPScope } from "./scopes.js";
15
15
  import { createRegisterTool } from "./tools.js";
16
16
  import { tool$accessGroupsCreateAccessGroup } from "./tools/accessGroupsCreateAccessGroup.js";
17
17
  import { tool$accessGroupsCreateAccessGroupProject } from "./tools/accessGroupsCreateAccessGroupProject.js";
@@ -116,7 +116,6 @@ import { tool$marketplaceGetAccountInfo } from "./tools/marketplaceGetAccountInf
116
116
  import { tool$marketplaceGetInvoice } from "./tools/marketplaceGetInvoice.js";
117
117
  import { tool$marketplaceGetMember } from "./tools/marketplaceGetMember.js";
118
118
  import { tool$marketplaceImportResource } from "./tools/marketplaceImportResource.js";
119
- import { tool$marketplaceQueryExperimentationItems } from "./tools/marketplaceQueryExperimentationItems.js";
120
119
  import { tool$marketplaceSubmitBillingData } from "./tools/marketplaceSubmitBillingData.js";
121
120
  import { tool$marketplaceSubmitInvoice } from "./tools/marketplaceSubmitInvoice.js";
122
121
  import { tool$marketplaceSubmitPrepaymentBalances } from "./tools/marketplaceSubmitPrepaymentBalances.js";
@@ -141,9 +140,11 @@ import { tool$projectsGetProjectDomains } from "./tools/projectsGetProjectDomain
141
140
  import { tool$projectsGetProjectEnv } from "./tools/projectsGetProjectEnv.js";
142
141
  import { tool$projectsGetProjects } from "./tools/projectsGetProjects.js";
143
142
  import { tool$projectsListPromoteAliases } from "./tools/projectsListPromoteAliases.js";
143
+ import { tool$projectsPauseProject } from "./tools/projectsPauseProject.js";
144
144
  import { tool$projectsRemoveProjectDomain } from "./tools/projectsRemoveProjectDomain.js";
145
145
  import { tool$projectsRemoveProjectEnv } from "./tools/projectsRemoveProjectEnv.js";
146
146
  import { tool$projectsRequestPromote } from "./tools/projectsRequestPromote.js";
147
+ import { tool$projectsUnpauseProject } from "./tools/projectsUnpauseProject.js";
147
148
  import { tool$projectsUpdateProject } from "./tools/projectsUpdateProject.js";
148
149
  import { tool$projectsUpdateProjectDataCache } from "./tools/projectsUpdateProjectDataCache.js";
149
150
  import { tool$projectsUpdateProjectDomain } from "./tools/projectsUpdateProjectDomain.js";
@@ -187,7 +188,7 @@ export function createMCPServer(deps: {
187
188
  }) {
188
189
  const server = new McpServer({
189
190
  name: "Vercel",
190
- version: "1.6.0",
191
+ version: "1.6.2",
191
192
  });
192
193
 
193
194
  const client = new VercelCore({
@@ -196,7 +197,7 @@ export function createMCPServer(deps: {
196
197
  serverIdx: deps.serverIdx,
197
198
  });
198
199
 
199
- const scopes = new Set(deps.scopes ?? mcpScopes);
200
+ const scopes = new Set(deps.scopes);
200
201
 
201
202
  const allowedTools = deps.allowedTools && new Set(deps.allowedTools);
202
203
  const tool = createRegisterTool(
@@ -260,6 +261,8 @@ export function createMCPServer(deps: {
260
261
  tool(tool$projectsUpdateProjectProtectionBypass);
261
262
  tool(tool$projectsRequestPromote);
262
263
  tool(tool$projectsListPromoteAliases);
264
+ tool(tool$projectsPauseProject);
265
+ tool(tool$projectsUnpauseProject);
263
266
  tool(tool$deploymentsGetDeploymentEvents);
264
267
  tool(tool$deploymentsUpdateIntegrationDeploymentAction);
265
268
  tool(tool$deploymentsGetDeployment);
@@ -328,7 +331,6 @@ export function createMCPServer(deps: {
328
331
  tool(tool$marketplaceUpdateResourceSecretsById);
329
332
  tool(tool$marketplaceImportResource);
330
333
  tool(tool$marketplaceExchangeSsoToken);
331
- tool(tool$marketplaceQueryExperimentationItems);
332
334
  tool(tool$marketplaceCreateInstallationIntegrationConfiguration);
333
335
  tool(tool$marketplaceUpdateInstallationIntegrationConfiguration);
334
336
  tool(tool$marketplaceDeleteInstallationIntegrationConfiguration);
@@ -0,0 +1,35 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { projectsPauseProject } from "../../funcs/projectsPauseProject.js";
6
+ import { PauseProjectRequest$inboundSchema } from "../../models/pauseprojectop.js";
7
+ import { formatResult, ToolDefinition } from "../tools.js";
8
+
9
+ const args = {
10
+ request: PauseProjectRequest$inboundSchema,
11
+ };
12
+
13
+ export const tool$projectsPauseProject: ToolDefinition<typeof args> = {
14
+ name: "projects-pause-project",
15
+ description: `Pause a project
16
+
17
+ Pause a project by passing its project \`id\` in the URL. If the project does not exist given the id then the request will fail with 400 status code. If the project disables auto assigning custom production domains and blocks the active Production Deployment then the request will return with 200 status code.`,
18
+ args,
19
+ tool: async (client, args, ctx) => {
20
+ const [result, apiCall] = await projectsPauseProject(
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
+ return formatResult(void 0, apiCall);
34
+ },
35
+ };
@@ -0,0 +1,35 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { projectsUnpauseProject } from "../../funcs/projectsUnpauseProject.js";
6
+ import { UnpauseProjectRequest$inboundSchema } from "../../models/unpauseprojectop.js";
7
+ import { formatResult, ToolDefinition } from "../tools.js";
8
+
9
+ const args = {
10
+ request: UnpauseProjectRequest$inboundSchema,
11
+ };
12
+
13
+ export const tool$projectsUnpauseProject: ToolDefinition<typeof args> = {
14
+ name: "projects-unpause-project",
15
+ description: `Unpause a project
16
+
17
+ Unpause a project by passing its project \`id\` in the URL. If the project does not exist given the id then the request will fail with 400 status code. If the project enables auto assigning custom production domains and unblocks the active Production Deployment then the request will return with 200 status code.`,
18
+ args,
19
+ tool: async (client, args, ctx) => {
20
+ const [result, apiCall] = await projectsUnpauseProject(
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
+ return formatResult(void 0, apiCall);
34
+ },
35
+ };
@@ -102,12 +102,15 @@ export function createRegisterTool(
102
102
  return;
103
103
  }
104
104
 
105
- const toolScopes = tool.scopes ?? [];
106
- if (allowedScopes.size > 0 && toolScopes.length === 0) {
105
+ const scopes = tool.scopes ?? [];
106
+ if (allowedScopes.size > 0 && scopes.length === 0) {
107
107
  return;
108
108
  }
109
109
 
110
- if (!toolScopes.every((s) => allowedScopes.has(s))) {
110
+ if (
111
+ allowedScopes.size > 0
112
+ && !scopes.every((s: MCPScope) => allowedScopes.has(s))
113
+ ) {
111
114
  return;
112
115
  }
113
116
 
@@ -181,6 +181,14 @@ export type ResourceConfig = {
181
181
  * An object containing infomation related to the amount of platform resources may be allocated to the User account.
182
182
  */
183
183
  microfrontendProjectsPerGroup?: number | undefined;
184
+ /**
185
+ * An object containing infomation related to the amount of platform resources may be allocated to the User account.
186
+ */
187
+ flagsExplorerOverridesThreshold?: number | undefined;
188
+ /**
189
+ * An object containing infomation related to the amount of platform resources may be allocated to the User account.
190
+ */
191
+ flagsExplorerUnlimitedOverrides?: boolean | undefined;
184
192
  };
185
193
 
186
194
  export const ViewPreference = {
@@ -247,27 +255,11 @@ export type DismissedToasts = {
247
255
  /**
248
256
  * A list of projects and spaces across teams that a user has marked as a favorite.
249
257
  */
250
- export type FavoriteProjectsAndSpaces2 = {
251
- spaceId: string;
252
- scopeSlug: string;
253
- scopeId: string;
254
- teamId?: string | undefined;
255
- };
256
-
257
- /**
258
- * A list of projects and spaces across teams that a user has marked as a favorite.
259
- */
260
- export type FavoriteProjectsAndSpaces1 = {
258
+ export type FavoriteProjectsAndSpaces = {
259
+ teamId: string;
261
260
  projectId: string;
262
- scopeSlug: string;
263
- scopeId: string;
264
- teamId?: string | undefined;
265
261
  };
266
262
 
267
- export type FavoriteProjectsAndSpaces =
268
- | FavoriteProjectsAndSpaces1
269
- | FavoriteProjectsAndSpaces2;
270
-
271
263
  /**
272
264
  * remote caching settings
273
265
  */
@@ -378,9 +370,7 @@ export type AuthUser = {
378
370
  /**
379
371
  * A list of projects and spaces across teams that a user has marked as a favorite.
380
372
  */
381
- favoriteProjectsAndSpaces?:
382
- | Array<FavoriteProjectsAndSpaces1 | FavoriteProjectsAndSpaces2>
383
- | undefined;
373
+ favoriteProjectsAndSpaces?: Array<FavoriteProjectsAndSpaces> | undefined;
384
374
  /**
385
375
  * Whether the user has a trial available for a paid plan subscription.
386
376
  */
@@ -646,6 +636,8 @@ export const ResourceConfig$inboundSchema: z.ZodType<
646
636
  cronJobsPerProject: z.number().optional(),
647
637
  microfrontendGroupsPerTeam: z.number().optional(),
648
638
  microfrontendProjectsPerGroup: z.number().optional(),
639
+ flagsExplorerOverridesThreshold: z.number().optional(),
640
+ flagsExplorerUnlimitedOverrides: z.boolean().optional(),
649
641
  });
650
642
 
651
643
  /** @internal */
@@ -671,6 +663,8 @@ export type ResourceConfig$Outbound = {
671
663
  cronJobsPerProject?: number | undefined;
672
664
  microfrontendGroupsPerTeam?: number | undefined;
673
665
  microfrontendProjectsPerGroup?: number | undefined;
666
+ flagsExplorerOverridesThreshold?: number | undefined;
667
+ flagsExplorerUnlimitedOverrides?: boolean | undefined;
674
668
  };
675
669
 
676
670
  /** @internal */
@@ -700,6 +694,8 @@ export const ResourceConfig$outboundSchema: z.ZodType<
700
694
  cronJobsPerProject: z.number().optional(),
701
695
  microfrontendGroupsPerTeam: z.number().optional(),
702
696
  microfrontendProjectsPerGroup: z.number().optional(),
697
+ flagsExplorerOverridesThreshold: z.number().optional(),
698
+ flagsExplorerUnlimitedOverrides: z.boolean().optional(),
703
699
  });
704
700
 
705
701
  /**
@@ -1188,155 +1184,30 @@ export function dismissedToastsFromJSON(
1188
1184
  }
1189
1185
 
1190
1186
  /** @internal */
1191
- export const FavoriteProjectsAndSpaces2$inboundSchema: z.ZodType<
1192
- FavoriteProjectsAndSpaces2,
1193
- z.ZodTypeDef,
1194
- unknown
1195
- > = z.object({
1196
- spaceId: z.string(),
1197
- scopeSlug: z.string(),
1198
- scopeId: z.string(),
1199
- teamId: z.string().optional(),
1200
- });
1201
-
1202
- /** @internal */
1203
- export type FavoriteProjectsAndSpaces2$Outbound = {
1204
- spaceId: string;
1205
- scopeSlug: string;
1206
- scopeId: string;
1207
- teamId?: string | undefined;
1208
- };
1209
-
1210
- /** @internal */
1211
- export const FavoriteProjectsAndSpaces2$outboundSchema: z.ZodType<
1212
- FavoriteProjectsAndSpaces2$Outbound,
1213
- z.ZodTypeDef,
1214
- FavoriteProjectsAndSpaces2
1215
- > = z.object({
1216
- spaceId: z.string(),
1217
- scopeSlug: z.string(),
1218
- scopeId: z.string(),
1219
- teamId: z.string().optional(),
1220
- });
1221
-
1222
- /**
1223
- * @internal
1224
- * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
1225
- */
1226
- export namespace FavoriteProjectsAndSpaces2$ {
1227
- /** @deprecated use `FavoriteProjectsAndSpaces2$inboundSchema` instead. */
1228
- export const inboundSchema = FavoriteProjectsAndSpaces2$inboundSchema;
1229
- /** @deprecated use `FavoriteProjectsAndSpaces2$outboundSchema` instead. */
1230
- export const outboundSchema = FavoriteProjectsAndSpaces2$outboundSchema;
1231
- /** @deprecated use `FavoriteProjectsAndSpaces2$Outbound` instead. */
1232
- export type Outbound = FavoriteProjectsAndSpaces2$Outbound;
1233
- }
1234
-
1235
- export function favoriteProjectsAndSpaces2ToJSON(
1236
- favoriteProjectsAndSpaces2: FavoriteProjectsAndSpaces2,
1237
- ): string {
1238
- return JSON.stringify(
1239
- FavoriteProjectsAndSpaces2$outboundSchema.parse(favoriteProjectsAndSpaces2),
1240
- );
1241
- }
1242
-
1243
- export function favoriteProjectsAndSpaces2FromJSON(
1244
- jsonString: string,
1245
- ): SafeParseResult<FavoriteProjectsAndSpaces2, SDKValidationError> {
1246
- return safeParse(
1247
- jsonString,
1248
- (x) => FavoriteProjectsAndSpaces2$inboundSchema.parse(JSON.parse(x)),
1249
- `Failed to parse 'FavoriteProjectsAndSpaces2' from JSON`,
1250
- );
1251
- }
1252
-
1253
- /** @internal */
1254
- export const FavoriteProjectsAndSpaces1$inboundSchema: z.ZodType<
1255
- FavoriteProjectsAndSpaces1,
1187
+ export const FavoriteProjectsAndSpaces$inboundSchema: z.ZodType<
1188
+ FavoriteProjectsAndSpaces,
1256
1189
  z.ZodTypeDef,
1257
1190
  unknown
1258
1191
  > = z.object({
1192
+ teamId: z.string(),
1259
1193
  projectId: z.string(),
1260
- scopeSlug: z.string(),
1261
- scopeId: z.string(),
1262
- teamId: z.string().optional(),
1263
1194
  });
1264
1195
 
1265
1196
  /** @internal */
1266
- export type FavoriteProjectsAndSpaces1$Outbound = {
1197
+ export type FavoriteProjectsAndSpaces$Outbound = {
1198
+ teamId: string;
1267
1199
  projectId: string;
1268
- scopeSlug: string;
1269
- scopeId: string;
1270
- teamId?: string | undefined;
1271
1200
  };
1272
1201
 
1273
- /** @internal */
1274
- export const FavoriteProjectsAndSpaces1$outboundSchema: z.ZodType<
1275
- FavoriteProjectsAndSpaces1$Outbound,
1276
- z.ZodTypeDef,
1277
- FavoriteProjectsAndSpaces1
1278
- > = z.object({
1279
- projectId: z.string(),
1280
- scopeSlug: z.string(),
1281
- scopeId: z.string(),
1282
- teamId: z.string().optional(),
1283
- });
1284
-
1285
- /**
1286
- * @internal
1287
- * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
1288
- */
1289
- export namespace FavoriteProjectsAndSpaces1$ {
1290
- /** @deprecated use `FavoriteProjectsAndSpaces1$inboundSchema` instead. */
1291
- export const inboundSchema = FavoriteProjectsAndSpaces1$inboundSchema;
1292
- /** @deprecated use `FavoriteProjectsAndSpaces1$outboundSchema` instead. */
1293
- export const outboundSchema = FavoriteProjectsAndSpaces1$outboundSchema;
1294
- /** @deprecated use `FavoriteProjectsAndSpaces1$Outbound` instead. */
1295
- export type Outbound = FavoriteProjectsAndSpaces1$Outbound;
1296
- }
1297
-
1298
- export function favoriteProjectsAndSpaces1ToJSON(
1299
- favoriteProjectsAndSpaces1: FavoriteProjectsAndSpaces1,
1300
- ): string {
1301
- return JSON.stringify(
1302
- FavoriteProjectsAndSpaces1$outboundSchema.parse(favoriteProjectsAndSpaces1),
1303
- );
1304
- }
1305
-
1306
- export function favoriteProjectsAndSpaces1FromJSON(
1307
- jsonString: string,
1308
- ): SafeParseResult<FavoriteProjectsAndSpaces1, SDKValidationError> {
1309
- return safeParse(
1310
- jsonString,
1311
- (x) => FavoriteProjectsAndSpaces1$inboundSchema.parse(JSON.parse(x)),
1312
- `Failed to parse 'FavoriteProjectsAndSpaces1' from JSON`,
1313
- );
1314
- }
1315
-
1316
- /** @internal */
1317
- export const FavoriteProjectsAndSpaces$inboundSchema: z.ZodType<
1318
- FavoriteProjectsAndSpaces,
1319
- z.ZodTypeDef,
1320
- unknown
1321
- > = z.union([
1322
- z.lazy(() => FavoriteProjectsAndSpaces1$inboundSchema),
1323
- z.lazy(() => FavoriteProjectsAndSpaces2$inboundSchema),
1324
- ]);
1325
-
1326
- /** @internal */
1327
- export type FavoriteProjectsAndSpaces$Outbound =
1328
- | FavoriteProjectsAndSpaces1$Outbound
1329
- | FavoriteProjectsAndSpaces2$Outbound;
1330
-
1331
1202
  /** @internal */
1332
1203
  export const FavoriteProjectsAndSpaces$outboundSchema: z.ZodType<
1333
1204
  FavoriteProjectsAndSpaces$Outbound,
1334
1205
  z.ZodTypeDef,
1335
1206
  FavoriteProjectsAndSpaces
1336
- > = z.union([
1337
- z.lazy(() => FavoriteProjectsAndSpaces1$outboundSchema),
1338
- z.lazy(() => FavoriteProjectsAndSpaces2$outboundSchema),
1339
- ]);
1207
+ > = z.object({
1208
+ teamId: z.string(),
1209
+ projectId: z.string(),
1210
+ });
1340
1211
 
1341
1212
  /**
1342
1213
  * @internal
@@ -1692,10 +1563,7 @@ export const AuthUser$inboundSchema: z.ZodType<
1692
1563
  dismissedToasts: z.array(z.lazy(() => DismissedToasts$inboundSchema))
1693
1564
  .optional(),
1694
1565
  favoriteProjectsAndSpaces: z.array(
1695
- z.union([
1696
- z.lazy(() => FavoriteProjectsAndSpaces1$inboundSchema),
1697
- z.lazy(() => FavoriteProjectsAndSpaces2$inboundSchema),
1698
- ]),
1566
+ z.lazy(() => FavoriteProjectsAndSpaces$inboundSchema),
1699
1567
  ).optional(),
1700
1568
  hasTrialAvailable: z.boolean(),
1701
1569
  remoteCaching: z.lazy(() => RemoteCaching$inboundSchema).optional(),
@@ -1727,9 +1595,7 @@ export type AuthUser$Outbound = {
1727
1595
  | undefined;
1728
1596
  dismissedToasts?: Array<DismissedToasts$Outbound> | undefined;
1729
1597
  favoriteProjectsAndSpaces?:
1730
- | Array<
1731
- FavoriteProjectsAndSpaces1$Outbound | FavoriteProjectsAndSpaces2$Outbound
1732
- >
1598
+ | Array<FavoriteProjectsAndSpaces$Outbound>
1733
1599
  | undefined;
1734
1600
  hasTrialAvailable: boolean;
1735
1601
  remoteCaching?: RemoteCaching$Outbound | undefined;
@@ -1771,10 +1637,7 @@ export const AuthUser$outboundSchema: z.ZodType<
1771
1637
  dismissedToasts: z.array(z.lazy(() => DismissedToasts$outboundSchema))
1772
1638
  .optional(),
1773
1639
  favoriteProjectsAndSpaces: z.array(
1774
- z.union([
1775
- z.lazy(() => FavoriteProjectsAndSpaces1$outboundSchema),
1776
- z.lazy(() => FavoriteProjectsAndSpaces2$outboundSchema),
1777
- ]),
1640
+ z.lazy(() => FavoriteProjectsAndSpaces$outboundSchema),
1778
1641
  ).optional(),
1779
1642
  hasTrialAvailable: z.boolean(),
1780
1643
  remoteCaching: z.lazy(() => RemoteCaching$outboundSchema).optional(),
@@ -175,7 +175,7 @@ export type OidcTokenConfig = {
175
175
  /**
176
176
  * Whether or not to generate OpenID Connect JSON Web Tokens.
177
177
  */
178
- enabled: boolean;
178
+ enabled?: boolean | undefined;
179
179
  /**
180
180
  * team: `https://oidc.vercel.com/[team_slug]` global: `https://oidc.vercel.com`
181
181
  */
@@ -2149,8 +2149,8 @@ export const OidcTokenConfig$inboundSchema: z.ZodType<
2149
2149
  z.ZodTypeDef,
2150
2150
  unknown
2151
2151
  > = z.object({
2152
- enabled: z.boolean(),
2153
- issuerMode: IssuerMode$inboundSchema.default("global"),
2152
+ enabled: z.boolean().default(true),
2153
+ issuerMode: IssuerMode$inboundSchema.default("team"),
2154
2154
  });
2155
2155
 
2156
2156
  /** @internal */
@@ -2165,8 +2165,8 @@ export const OidcTokenConfig$outboundSchema: z.ZodType<
2165
2165
  z.ZodTypeDef,
2166
2166
  OidcTokenConfig
2167
2167
  > = z.object({
2168
- enabled: z.boolean(),
2169
- issuerMode: IssuerMode$outboundSchema.default("global"),
2168
+ enabled: z.boolean().default(true),
2169
+ issuerMode: IssuerMode$outboundSchema.default("team"),
2170
2170
  });
2171
2171
 
2172
2172
  /**