@mastra/deployer-vercel 0.0.0-share-agent-metadata-with-cloud-20250718110128 → 0.0.0-sidebar-window-undefined-fix-20251029233656

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.
package/README.md CHANGED
@@ -25,9 +25,10 @@ import { Mastra } from '@mastra/core';
25
25
  import { VercelDeployer } from '@mastra/deployer-vercel';
26
26
 
27
27
  const deployer = new VercelDeployer({
28
- teamSlug: 'your-team-slug',
29
- projectName: 'your-project-name',
30
- token: 'your-vercel-token',
28
+ // Optional per-function overrides (written to .vc-config.json)
29
+ maxDuration: 600,
30
+ memory: 1536,
31
+ regions: ['sfo1', 'iad1'],
31
32
  });
32
33
 
33
34
  const mastra = new Mastra({
@@ -40,9 +41,11 @@ const mastra = new Mastra({
40
41
 
41
42
  ### Constructor Options
42
43
 
43
- - `teamSlug` (required): Your Vercel team slug
44
- - `projectName`: Name of your Vercel project (will be created if it doesn't exist)
45
- - `token`: Your Vercel API token (required for authentication)
44
+ High‑value overrides written to `.vercel/output/functions/index.func/.vc-config.json`:
45
+
46
+ - `maxDuration?: number` Function execution timeout (seconds)
47
+ - `memory?: number` — Function memory (MB)
48
+ - `regions?: string[]` — Regions (e.g. `['sfo1','iad1']`)
46
49
 
47
50
  ## Project Structure
48
51
 
package/dist/index.cjs CHANGED
@@ -12,9 +12,11 @@ var process__default = /*#__PURE__*/_interopDefault(process);
12
12
 
13
13
  // src/index.ts
14
14
  var VercelDeployer = class extends deployer.Deployer {
15
- constructor() {
15
+ vcConfigOverrides = {};
16
+ constructor(options = {}) {
16
17
  super({ name: "VERCEL" });
17
18
  this.outputDir = path.join(".vercel", "output", "functions", "index.func");
19
+ this.vcConfigOverrides = { ...options };
18
20
  }
19
21
  async prepare(outputDirectory) {
20
22
  await super.prepare(outputDirectory);
@@ -24,10 +26,12 @@ var VercelDeployer = class extends deployer.Deployer {
24
26
  return `
25
27
  import { handle } from 'hono/vercel'
26
28
  import { mastra } from '#mastra';
27
- import { createHonoServer } from '#server';
29
+ import { createHonoServer, getToolExports } from '#server';
30
+ import { tools } from '#tools';
28
31
  import { evaluate } from '@mastra/core/eval';
29
32
  import { AvailableHooks, registerHook } from '@mastra/core/hooks';
30
33
  import { TABLE_EVALS } from '@mastra/core/storage';
34
+ import { scoreTracesWorkflow } from '@mastra/core/scores/scoreTraces';
31
35
  import { checkEvalStorageFields } from '@mastra/core/utils';
32
36
 
33
37
  registerHook(AvailableHooks.ON_GENERATION, ({ input, output, metric, runId, agentName, instructions }) => {
@@ -42,6 +46,10 @@ registerHook(AvailableHooks.ON_GENERATION, ({ input, output, metric, runId, agen
42
46
  });
43
47
  });
44
48
 
49
+ if (mastra.getStorage()) {
50
+ mastra.__registerInternalWorkflow(scoreTracesWorkflow);
51
+ }
52
+
45
53
  registerHook(AvailableHooks.ON_EVALUATION, async traceObject => {
46
54
  const storage = mastra.getStorage();
47
55
  if (storage) {
@@ -68,12 +76,13 @@ registerHook(AvailableHooks.ON_EVALUATION, async traceObject => {
68
76
  }
69
77
  });
70
78
 
71
- const app = await createHonoServer(mastra);
79
+ const app = await createHonoServer(mastra, { tools: getToolExports(tools) });
72
80
 
73
81
  export const GET = handle(app);
74
82
  export const POST = handle(app);
75
83
  export const PUT = handle(app);
76
84
  export const DELETE = handle(app);
85
+ export const PATCH = handle(app);
77
86
  export const OPTIONS = handle(app);
78
87
  export const HEAD = handle(app);
79
88
  `;
@@ -92,28 +101,26 @@ export const HEAD = handle(app);
92
101
  })
93
102
  );
94
103
  }
95
- async bundle(entryFile, outputDirectory, toolsPaths) {
104
+ async bundle(entryFile, outputDirectory, { toolsPaths, projectRoot }) {
96
105
  const result = await this._bundle(
97
106
  this.getEntry(),
98
107
  entryFile,
99
- outputDirectory,
108
+ { outputDirectory, projectRoot },
100
109
  toolsPaths,
101
110
  path.join(outputDirectory, this.outputDir)
102
111
  );
103
112
  const nodeVersion = process__default.default.version?.split(".")?.[0]?.replace("v", "") ?? "22";
104
- fs.writeFileSync(
105
- path.join(outputDirectory, this.outputDir, ".vc-config.json"),
106
- JSON.stringify(
107
- {
108
- handler: "index.mjs",
109
- launcherType: "Nodejs",
110
- runtime: `nodejs${nodeVersion}.x`,
111
- shouldAddHelpers: true
112
- },
113
- null,
114
- 2
115
- )
116
- );
113
+ const vcConfig = {
114
+ handler: "index.mjs",
115
+ launcherType: "Nodejs",
116
+ runtime: `nodejs${nodeVersion}.x`,
117
+ shouldAddHelpers: true
118
+ };
119
+ const { maxDuration, memory, regions } = this.vcConfigOverrides;
120
+ if (typeof maxDuration === "number") vcConfig.maxDuration = maxDuration;
121
+ if (typeof memory === "number") vcConfig.memory = memory;
122
+ if (Array.isArray(regions) && regions.length > 0) vcConfig.regions = regions;
123
+ fs.writeFileSync(path.join(outputDirectory, this.outputDir, ".vc-config.json"), JSON.stringify(vcConfig, null, 2));
117
124
  await esm.move(path.join(outputDirectory, ".vercel", "output"), path.join(process__default.default.cwd(), ".vercel", "output"), {
118
125
  overwrite: true
119
126
  });
@@ -128,7 +135,7 @@ export const HEAD = handle(app);
128
135
  if (hasLibsql) {
129
136
  this.logger.error(
130
137
  `Vercel Deployer does not support @libsql/client(which may have been installed by @mastra/libsql) as a dependency.
131
- Use other Mastra Storage options instead e.g @mastra/pg`
138
+ Use other Mastra Storage options instead e.g @mastra/pg`
132
139
  );
133
140
  process__default.default.exit(1);
134
141
  }
@@ -136,3 +143,5 @@ export const HEAD = handle(app);
136
143
  };
137
144
 
138
145
  exports.VercelDeployer = VercelDeployer;
146
+ //# sourceMappingURL=index.cjs.map
147
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"names":["Deployer","join","writeFileSync","process","move"],"mappings":"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","file":"index.cjs","sourcesContent":["import { writeFileSync } from 'fs';\nimport { join } from 'path';\nimport process from 'process';\nimport { Deployer } from '@mastra/deployer';\nimport { move } from 'fs-extra/esm';\nimport type { VcConfig, VcConfigOverrides, VercelDeployerOptions } from './types';\n\nexport class VercelDeployer extends Deployer {\n private vcConfigOverrides: VcConfigOverrides = {};\n\n constructor(options: VercelDeployerOptions = {}) {\n super({ name: 'VERCEL' });\n this.outputDir = join('.vercel', 'output', 'functions', 'index.func');\n\n // Store all overrides centrally\n this.vcConfigOverrides = { ...options };\n }\n\n async prepare(outputDirectory: string): Promise<void> {\n await super.prepare(outputDirectory);\n\n this.writeVercelJSON(join(outputDirectory, this.outputDir, '..', '..'));\n }\n\n private getEntry(): string {\n return `\nimport { handle } from 'hono/vercel'\nimport { mastra } from '#mastra';\nimport { createHonoServer, getToolExports } from '#server';\nimport { tools } from '#tools';\nimport { evaluate } from '@mastra/core/eval';\nimport { AvailableHooks, registerHook } from '@mastra/core/hooks';\nimport { TABLE_EVALS } from '@mastra/core/storage';\nimport { scoreTracesWorkflow } from '@mastra/core/scores/scoreTraces';\nimport { checkEvalStorageFields } from '@mastra/core/utils';\n\nregisterHook(AvailableHooks.ON_GENERATION, ({ input, output, metric, runId, agentName, instructions }) => {\n evaluate({\n agentName,\n input,\n metric,\n output,\n runId,\n globalRunId: runId,\n instructions,\n });\n});\n\nif (mastra.getStorage()) {\n mastra.__registerInternalWorkflow(scoreTracesWorkflow);\n}\n\nregisterHook(AvailableHooks.ON_EVALUATION, async traceObject => {\n const storage = mastra.getStorage();\n if (storage) {\n // Check for required fields\n const logger = mastra?.getLogger();\n const areFieldsValid = checkEvalStorageFields(traceObject, logger);\n if (!areFieldsValid) return;\n\n await storage.insert({\n tableName: TABLE_EVALS,\n record: {\n input: traceObject.input,\n output: traceObject.output,\n result: JSON.stringify(traceObject.result || {}),\n agent_name: traceObject.agentName,\n metric_name: traceObject.metricName,\n instructions: traceObject.instructions,\n test_info: null,\n global_run_id: traceObject.globalRunId,\n run_id: traceObject.runId,\n created_at: new Date().toISOString(),\n },\n });\n }\n});\n\nconst app = await createHonoServer(mastra, { tools: getToolExports(tools) });\n\nexport const GET = handle(app);\nexport const POST = handle(app);\nexport const PUT = handle(app);\nexport const DELETE = handle(app);\nexport const PATCH = handle(app);\nexport const OPTIONS = handle(app);\nexport const HEAD = handle(app);\n`;\n }\n\n private writeVercelJSON(outputDirectory: string) {\n writeFileSync(\n join(outputDirectory, 'config.json'),\n JSON.stringify({\n version: 3,\n routes: [\n {\n src: '/(.*)',\n dest: '/',\n },\n ],\n }),\n );\n }\n\n async bundle(\n entryFile: string,\n outputDirectory: string,\n { toolsPaths, projectRoot }: { toolsPaths: (string | string[])[]; projectRoot: string },\n ): Promise<void> {\n const result = await this._bundle(\n this.getEntry(),\n entryFile,\n { outputDirectory, projectRoot },\n toolsPaths,\n join(outputDirectory, this.outputDir),\n );\n\n const nodeVersion = process.version?.split('.')?.[0]?.replace('v', '') ?? '22';\n\n const vcConfig: VcConfig = {\n handler: 'index.mjs',\n launcherType: 'Nodejs',\n runtime: `nodejs${nodeVersion}.x`,\n shouldAddHelpers: true,\n };\n\n // Merge supported overrides\n const { maxDuration, memory, regions } = this.vcConfigOverrides;\n if (typeof maxDuration === 'number') vcConfig.maxDuration = maxDuration;\n if (typeof memory === 'number') vcConfig.memory = memory;\n if (Array.isArray(regions) && regions.length > 0) vcConfig.regions = regions;\n\n writeFileSync(join(outputDirectory, this.outputDir, '.vc-config.json'), JSON.stringify(vcConfig, null, 2));\n\n await move(join(outputDirectory, '.vercel', 'output'), join(process.cwd(), '.vercel', 'output'), {\n overwrite: true,\n });\n\n return result;\n }\n\n async deploy(): Promise<void> {\n this.logger?.info('Deploying to Vercel is deprecated. Please use the Vercel dashboard to deploy.');\n }\n\n async lint(entryFile: string, outputDirectory: string, toolsPaths: (string | string[])[]): Promise<void> {\n await super.lint(entryFile, outputDirectory, toolsPaths);\n\n const hasLibsql = (await this.deps.checkDependencies(['@mastra/libsql'])) === `ok`;\n\n if (hasLibsql) {\n this.logger.error(\n `Vercel Deployer does not support @libsql/client(which may have been installed by @mastra/libsql) as a dependency. \n\t\t\t\tUse other Mastra Storage options instead e.g @mastra/pg`,\n );\n process.exit(1);\n }\n }\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -1 +1,16 @@
1
- export { VercelDeployer } from './_tsup-dts-rollup.js';
1
+ import { Deployer } from '@mastra/deployer';
2
+ import type { VercelDeployerOptions } from './types.js';
3
+ export declare class VercelDeployer extends Deployer {
4
+ private vcConfigOverrides;
5
+ constructor(options?: VercelDeployerOptions);
6
+ prepare(outputDirectory: string): Promise<void>;
7
+ private getEntry;
8
+ private writeVercelJSON;
9
+ bundle(entryFile: string, outputDirectory: string, { toolsPaths, projectRoot }: {
10
+ toolsPaths: (string | string[])[];
11
+ projectRoot: string;
12
+ }): Promise<void>;
13
+ deploy(): Promise<void>;
14
+ lint(entryFile: string, outputDirectory: string, toolsPaths: (string | string[])[]): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,KAAK,EAA+B,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAElF,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,OAAO,CAAC,iBAAiB,CAAyB;gBAEtC,OAAO,GAAE,qBAA0B;IAQzC,OAAO,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrD,OAAO,CAAC,QAAQ;IAkEhB,OAAO,CAAC,eAAe;IAejB,MAAM,CACV,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE;QAAE,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GACtF,OAAO,CAAC,IAAI,CAAC;IAiCV,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAazG"}
package/dist/index.js CHANGED
@@ -6,9 +6,11 @@ import { move } from 'fs-extra/esm';
6
6
 
7
7
  // src/index.ts
8
8
  var VercelDeployer = class extends Deployer {
9
- constructor() {
9
+ vcConfigOverrides = {};
10
+ constructor(options = {}) {
10
11
  super({ name: "VERCEL" });
11
12
  this.outputDir = join(".vercel", "output", "functions", "index.func");
13
+ this.vcConfigOverrides = { ...options };
12
14
  }
13
15
  async prepare(outputDirectory) {
14
16
  await super.prepare(outputDirectory);
@@ -18,10 +20,12 @@ var VercelDeployer = class extends Deployer {
18
20
  return `
19
21
  import { handle } from 'hono/vercel'
20
22
  import { mastra } from '#mastra';
21
- import { createHonoServer } from '#server';
23
+ import { createHonoServer, getToolExports } from '#server';
24
+ import { tools } from '#tools';
22
25
  import { evaluate } from '@mastra/core/eval';
23
26
  import { AvailableHooks, registerHook } from '@mastra/core/hooks';
24
27
  import { TABLE_EVALS } from '@mastra/core/storage';
28
+ import { scoreTracesWorkflow } from '@mastra/core/scores/scoreTraces';
25
29
  import { checkEvalStorageFields } from '@mastra/core/utils';
26
30
 
27
31
  registerHook(AvailableHooks.ON_GENERATION, ({ input, output, metric, runId, agentName, instructions }) => {
@@ -36,6 +40,10 @@ registerHook(AvailableHooks.ON_GENERATION, ({ input, output, metric, runId, agen
36
40
  });
37
41
  });
38
42
 
43
+ if (mastra.getStorage()) {
44
+ mastra.__registerInternalWorkflow(scoreTracesWorkflow);
45
+ }
46
+
39
47
  registerHook(AvailableHooks.ON_EVALUATION, async traceObject => {
40
48
  const storage = mastra.getStorage();
41
49
  if (storage) {
@@ -62,12 +70,13 @@ registerHook(AvailableHooks.ON_EVALUATION, async traceObject => {
62
70
  }
63
71
  });
64
72
 
65
- const app = await createHonoServer(mastra);
73
+ const app = await createHonoServer(mastra, { tools: getToolExports(tools) });
66
74
 
67
75
  export const GET = handle(app);
68
76
  export const POST = handle(app);
69
77
  export const PUT = handle(app);
70
78
  export const DELETE = handle(app);
79
+ export const PATCH = handle(app);
71
80
  export const OPTIONS = handle(app);
72
81
  export const HEAD = handle(app);
73
82
  `;
@@ -86,28 +95,26 @@ export const HEAD = handle(app);
86
95
  })
87
96
  );
88
97
  }
89
- async bundle(entryFile, outputDirectory, toolsPaths) {
98
+ async bundle(entryFile, outputDirectory, { toolsPaths, projectRoot }) {
90
99
  const result = await this._bundle(
91
100
  this.getEntry(),
92
101
  entryFile,
93
- outputDirectory,
102
+ { outputDirectory, projectRoot },
94
103
  toolsPaths,
95
104
  join(outputDirectory, this.outputDir)
96
105
  );
97
106
  const nodeVersion = process.version?.split(".")?.[0]?.replace("v", "") ?? "22";
98
- writeFileSync(
99
- join(outputDirectory, this.outputDir, ".vc-config.json"),
100
- JSON.stringify(
101
- {
102
- handler: "index.mjs",
103
- launcherType: "Nodejs",
104
- runtime: `nodejs${nodeVersion}.x`,
105
- shouldAddHelpers: true
106
- },
107
- null,
108
- 2
109
- )
110
- );
107
+ const vcConfig = {
108
+ handler: "index.mjs",
109
+ launcherType: "Nodejs",
110
+ runtime: `nodejs${nodeVersion}.x`,
111
+ shouldAddHelpers: true
112
+ };
113
+ const { maxDuration, memory, regions } = this.vcConfigOverrides;
114
+ if (typeof maxDuration === "number") vcConfig.maxDuration = maxDuration;
115
+ if (typeof memory === "number") vcConfig.memory = memory;
116
+ if (Array.isArray(regions) && regions.length > 0) vcConfig.regions = regions;
117
+ writeFileSync(join(outputDirectory, this.outputDir, ".vc-config.json"), JSON.stringify(vcConfig, null, 2));
111
118
  await move(join(outputDirectory, ".vercel", "output"), join(process.cwd(), ".vercel", "output"), {
112
119
  overwrite: true
113
120
  });
@@ -122,7 +129,7 @@ export const HEAD = handle(app);
122
129
  if (hasLibsql) {
123
130
  this.logger.error(
124
131
  `Vercel Deployer does not support @libsql/client(which may have been installed by @mastra/libsql) as a dependency.
125
- Use other Mastra Storage options instead e.g @mastra/pg`
132
+ Use other Mastra Storage options instead e.g @mastra/pg`
126
133
  );
127
134
  process.exit(1);
128
135
  }
@@ -130,3 +137,5 @@ export const HEAD = handle(app);
130
137
  };
131
138
 
132
139
  export { VercelDeployer };
140
+ //# sourceMappingURL=index.js.map
141
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { writeFileSync } from 'fs';\nimport { join } from 'path';\nimport process from 'process';\nimport { Deployer } from '@mastra/deployer';\nimport { move } from 'fs-extra/esm';\nimport type { VcConfig, VcConfigOverrides, VercelDeployerOptions } from './types';\n\nexport class VercelDeployer extends Deployer {\n private vcConfigOverrides: VcConfigOverrides = {};\n\n constructor(options: VercelDeployerOptions = {}) {\n super({ name: 'VERCEL' });\n this.outputDir = join('.vercel', 'output', 'functions', 'index.func');\n\n // Store all overrides centrally\n this.vcConfigOverrides = { ...options };\n }\n\n async prepare(outputDirectory: string): Promise<void> {\n await super.prepare(outputDirectory);\n\n this.writeVercelJSON(join(outputDirectory, this.outputDir, '..', '..'));\n }\n\n private getEntry(): string {\n return `\nimport { handle } from 'hono/vercel'\nimport { mastra } from '#mastra';\nimport { createHonoServer, getToolExports } from '#server';\nimport { tools } from '#tools';\nimport { evaluate } from '@mastra/core/eval';\nimport { AvailableHooks, registerHook } from '@mastra/core/hooks';\nimport { TABLE_EVALS } from '@mastra/core/storage';\nimport { scoreTracesWorkflow } from '@mastra/core/scores/scoreTraces';\nimport { checkEvalStorageFields } from '@mastra/core/utils';\n\nregisterHook(AvailableHooks.ON_GENERATION, ({ input, output, metric, runId, agentName, instructions }) => {\n evaluate({\n agentName,\n input,\n metric,\n output,\n runId,\n globalRunId: runId,\n instructions,\n });\n});\n\nif (mastra.getStorage()) {\n mastra.__registerInternalWorkflow(scoreTracesWorkflow);\n}\n\nregisterHook(AvailableHooks.ON_EVALUATION, async traceObject => {\n const storage = mastra.getStorage();\n if (storage) {\n // Check for required fields\n const logger = mastra?.getLogger();\n const areFieldsValid = checkEvalStorageFields(traceObject, logger);\n if (!areFieldsValid) return;\n\n await storage.insert({\n tableName: TABLE_EVALS,\n record: {\n input: traceObject.input,\n output: traceObject.output,\n result: JSON.stringify(traceObject.result || {}),\n agent_name: traceObject.agentName,\n metric_name: traceObject.metricName,\n instructions: traceObject.instructions,\n test_info: null,\n global_run_id: traceObject.globalRunId,\n run_id: traceObject.runId,\n created_at: new Date().toISOString(),\n },\n });\n }\n});\n\nconst app = await createHonoServer(mastra, { tools: getToolExports(tools) });\n\nexport const GET = handle(app);\nexport const POST = handle(app);\nexport const PUT = handle(app);\nexport const DELETE = handle(app);\nexport const PATCH = handle(app);\nexport const OPTIONS = handle(app);\nexport const HEAD = handle(app);\n`;\n }\n\n private writeVercelJSON(outputDirectory: string) {\n writeFileSync(\n join(outputDirectory, 'config.json'),\n JSON.stringify({\n version: 3,\n routes: [\n {\n src: '/(.*)',\n dest: '/',\n },\n ],\n }),\n );\n }\n\n async bundle(\n entryFile: string,\n outputDirectory: string,\n { toolsPaths, projectRoot }: { toolsPaths: (string | string[])[]; projectRoot: string },\n ): Promise<void> {\n const result = await this._bundle(\n this.getEntry(),\n entryFile,\n { outputDirectory, projectRoot },\n toolsPaths,\n join(outputDirectory, this.outputDir),\n );\n\n const nodeVersion = process.version?.split('.')?.[0]?.replace('v', '') ?? '22';\n\n const vcConfig: VcConfig = {\n handler: 'index.mjs',\n launcherType: 'Nodejs',\n runtime: `nodejs${nodeVersion}.x`,\n shouldAddHelpers: true,\n };\n\n // Merge supported overrides\n const { maxDuration, memory, regions } = this.vcConfigOverrides;\n if (typeof maxDuration === 'number') vcConfig.maxDuration = maxDuration;\n if (typeof memory === 'number') vcConfig.memory = memory;\n if (Array.isArray(regions) && regions.length > 0) vcConfig.regions = regions;\n\n writeFileSync(join(outputDirectory, this.outputDir, '.vc-config.json'), JSON.stringify(vcConfig, null, 2));\n\n await move(join(outputDirectory, '.vercel', 'output'), join(process.cwd(), '.vercel', 'output'), {\n overwrite: true,\n });\n\n return result;\n }\n\n async deploy(): Promise<void> {\n this.logger?.info('Deploying to Vercel is deprecated. Please use the Vercel dashboard to deploy.');\n }\n\n async lint(entryFile: string, outputDirectory: string, toolsPaths: (string | string[])[]): Promise<void> {\n await super.lint(entryFile, outputDirectory, toolsPaths);\n\n const hasLibsql = (await this.deps.checkDependencies(['@mastra/libsql'])) === `ok`;\n\n if (hasLibsql) {\n this.logger.error(\n `Vercel Deployer does not support @libsql/client(which may have been installed by @mastra/libsql) as a dependency. \n\t\t\t\tUse other Mastra Storage options instead e.g @mastra/pg`,\n );\n process.exit(1);\n }\n }\n}\n"]}
@@ -0,0 +1,13 @@
1
+ export type VcConfig = {
2
+ handler: string;
3
+ launcherType: 'Nodejs';
4
+ runtime: string;
5
+ shouldAddHelpers: boolean;
6
+ maxDuration?: number;
7
+ memory?: number;
8
+ regions?: string[];
9
+ };
10
+ export type VcConfigOverrides = Pick<VcConfig, 'maxDuration' | 'memory' | 'regions'>;
11
+ export interface VercelDeployerOptions extends VcConfigOverrides {
12
+ }
13
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,QAAQ,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,EAAE,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAC;AAErF,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;CAAG"}
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "@mastra/deployer-vercel",
3
- "version": "0.0.0-share-agent-metadata-with-cloud-20250718110128",
3
+ "version": "0.0.0-sidebar-window-undefined-fix-20251029233656",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "files": [
7
- "dist"
7
+ "dist",
8
+ "CHANGELOG.md"
8
9
  ],
9
10
  "main": "dist/index.js",
10
11
  "types": "dist/index.d.ts",
@@ -15,7 +16,7 @@
15
16
  "default": "./dist/index.js"
16
17
  },
17
18
  "require": {
18
- "types": "./dist/index.d.cts",
19
+ "types": "./dist/index.d.ts",
19
20
  "default": "./dist/index.cjs"
20
21
  }
21
22
  },
@@ -25,27 +26,37 @@
25
26
  "author": "",
26
27
  "license": "Apache-2.0",
27
28
  "dependencies": {
28
- "@rollup/plugin-virtual": "^3.0.2",
29
- "fs-extra": "^11.3.0",
30
- "@mastra/deployer": "0.0.0-share-agent-metadata-with-cloud-20250718110128"
29
+ "@rollup/plugin-virtual": "3.0.2",
30
+ "fs-extra": "^11.3.2",
31
+ "@mastra/deployer": "0.0.0-sidebar-window-undefined-fix-20251029233656"
31
32
  },
32
33
  "devDependencies": {
33
34
  "@microsoft/api-extractor": "^7.52.8",
34
35
  "@types/fs-extra": "^11.0.4",
35
36
  "@types/node": "^20.19.0",
36
- "eslint": "^9.30.1",
37
+ "eslint": "^9.37.0",
37
38
  "tsup": "^8.5.0",
38
39
  "typescript": "^5.8.3",
39
40
  "vitest": "^3.2.4",
40
- "@internal/lint": "0.0.0-share-agent-metadata-with-cloud-20250718110128",
41
- "@mastra/core": "0.0.0-share-agent-metadata-with-cloud-20250718110128"
41
+ "@mastra/core": "0.0.0-sidebar-window-undefined-fix-20251029233656",
42
+ "@internal/lint": "0.0.0-sidebar-window-undefined-fix-20251029233656",
43
+ "@internal/types-builder": "0.0.0-sidebar-window-undefined-fix-20251029233656"
44
+ },
45
+ "homepage": "https://mastra.ai",
46
+ "repository": {
47
+ "type": "git",
48
+ "url": "git+https://github.com/mastra-ai/mastra.git",
49
+ "directory": "deployers/vercel"
50
+ },
51
+ "bugs": {
52
+ "url": "https://github.com/mastra-ai/mastra/issues"
42
53
  },
43
54
  "peerDependencies": {
44
- "@mastra/core": "0.0.0-share-agent-metadata-with-cloud-20250718110128"
55
+ "@mastra/core": "0.0.0-sidebar-window-undefined-fix-20251029233656"
45
56
  },
46
57
  "scripts": {
47
- "build": "tsup src/index.ts --format esm,cjs --experimental-dts --clean --treeshake=smallest --splitting",
48
- "build:watch": "pnpm build --watch",
58
+ "build": "tsup --silent --config tsup.config.ts",
59
+ "build:watch": "tsup --watch --silent --config tsup.config.ts",
49
60
  "test": "vitest run",
50
61
  "lint": "eslint ."
51
62
  }
@@ -1,13 +0,0 @@
1
- import { Deployer } from '@mastra/deployer';
2
-
3
- export declare class VercelDeployer extends Deployer {
4
- constructor();
5
- prepare(outputDirectory: string): Promise<void>;
6
- private getEntry;
7
- private writeVercelJSON;
8
- bundle(entryFile: string, outputDirectory: string, toolsPaths: string[]): Promise<void>;
9
- deploy(): Promise<void>;
10
- lint(entryFile: string, outputDirectory: string, toolsPaths: string[]): Promise<void>;
11
- }
12
-
13
- export { }
@@ -1,13 +0,0 @@
1
- import { Deployer } from '@mastra/deployer';
2
-
3
- export declare class VercelDeployer extends Deployer {
4
- constructor();
5
- prepare(outputDirectory: string): Promise<void>;
6
- private getEntry;
7
- private writeVercelJSON;
8
- bundle(entryFile: string, outputDirectory: string, toolsPaths: string[]): Promise<void>;
9
- deploy(): Promise<void>;
10
- lint(entryFile: string, outputDirectory: string, toolsPaths: string[]): Promise<void>;
11
- }
12
-
13
- export { }
package/dist/index.d.cts DELETED
@@ -1 +0,0 @@
1
- export { VercelDeployer } from './_tsup-dts-rollup.cjs';