@vurb/core 3.6.10 → 3.7.1
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 +83 -0
- package/dist/cli/args.d.ts +2 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +5 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/commands/create.d.ts.map +1 -1
- package/dist/cli/commands/create.js +46 -7
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/deploy.d.ts.map +1 -1
- package/dist/cli/commands/deploy.js +99 -11
- package/dist/cli/commands/deploy.js.map +1 -1
- package/dist/cli/constants.d.ts +1 -0
- package/dist/cli/constants.d.ts.map +1 -1
- package/dist/cli/constants.js +2 -0
- package/dist/cli/constants.js.map +1 -1
- package/dist/cli/scaffold.d.ts.map +1 -1
- package/dist/cli/scaffold.js +69 -1
- package/dist/cli/scaffold.js.map +1 -1
- package/dist/cli/templates/cloudflare.d.ts +30 -0
- package/dist/cli/templates/cloudflare.d.ts.map +1 -0
- package/dist/cli/templates/cloudflare.js +344 -0
- package/dist/cli/templates/cloudflare.js.map +1 -0
- package/dist/cli/templates/constants.d.ts +2 -0
- package/dist/cli/templates/constants.d.ts.map +1 -1
- package/dist/cli/templates/constants.js +2 -0
- package/dist/cli/templates/constants.js.map +1 -1
- package/dist/cli/templates/index.d.ts +2 -0
- package/dist/cli/templates/index.d.ts.map +1 -1
- package/dist/cli/templates/index.js +4 -0
- package/dist/cli/templates/index.js.map +1 -1
- package/dist/cli/templates/vercel.d.ts +30 -0
- package/dist/cli/templates/vercel.d.ts.map +1 -0
- package/dist/cli/templates/vercel.js +311 -0
- package/dist/cli/templates/vercel.js.map +1 -0
- package/dist/cli/types.d.ts +4 -0
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/server/startServer.d.ts +32 -0
- package/dist/server/startServer.d.ts.map +1 -1
- package/dist/server/startServer.js +34 -1
- package/dist/server/startServer.js.map +1 -1
- package/package.json +1 -1
package/dist/cli/scaffold.js
CHANGED
|
@@ -19,7 +19,11 @@ import * as tpl from './templates/index.js';
|
|
|
19
19
|
* @returns Array of relative file paths written
|
|
20
20
|
*/
|
|
21
21
|
export function scaffold(targetDir, config) {
|
|
22
|
-
const files =
|
|
22
|
+
const files = config.target === 'vercel'
|
|
23
|
+
? buildVercelFileList(config)
|
|
24
|
+
: config.target === 'cloudflare'
|
|
25
|
+
? buildCloudflareFileList(config)
|
|
26
|
+
: buildFileList(config);
|
|
23
27
|
try {
|
|
24
28
|
for (const file of files) {
|
|
25
29
|
const fullPath = join(targetDir, file.path);
|
|
@@ -104,4 +108,68 @@ function addVectorFiles(files, config) {
|
|
|
104
108
|
break;
|
|
105
109
|
}
|
|
106
110
|
}
|
|
111
|
+
// ── Vercel File List Builder ────────────────────────────
|
|
112
|
+
function buildVercelFileList(config) {
|
|
113
|
+
const files = [];
|
|
114
|
+
// ── Root config ──
|
|
115
|
+
files.push({ path: 'package.json', content: tpl.vercelPackageJson(config) });
|
|
116
|
+
files.push({ path: 'tsconfig.json', content: tpl.vercelTsconfig() });
|
|
117
|
+
files.push({ path: 'next.config.ts', content: tpl.vercelNextConfig() });
|
|
118
|
+
files.push({ path: '.gitignore', content: tpl.vercelGitignore() });
|
|
119
|
+
files.push({ path: '.env.example', content: tpl.vercelEnvExample(config) });
|
|
120
|
+
files.push({ path: 'README.md', content: tpl.vercelReadme(config) });
|
|
121
|
+
// ── Next.js route handler ──
|
|
122
|
+
files.push({ path: 'app/api/mcp/route.ts', content: tpl.vercelRouteTs(config) });
|
|
123
|
+
// ── MCP source (under src/mcp/) ──
|
|
124
|
+
files.push({ path: 'src/mcp/vurb.ts', content: tpl.vercelVurbTs() });
|
|
125
|
+
files.push({ path: 'src/mcp/context.ts', content: tpl.vercelContextTs() });
|
|
126
|
+
files.push({ path: 'src/mcp/registry.ts', content: tpl.vercelRegistryTs() });
|
|
127
|
+
// ── Tools ──
|
|
128
|
+
files.push({ path: 'src/mcp/tools/system/health.ts', content: tpl.healthToolTs() });
|
|
129
|
+
files.push({ path: 'src/mcp/tools/system/echo.ts', content: tpl.echoToolTs() });
|
|
130
|
+
// ── Model + Presenter ──
|
|
131
|
+
files.push({ path: 'src/mcp/models/SystemModel.ts', content: tpl.systemModelTs() });
|
|
132
|
+
files.push({ path: 'src/mcp/presenters/SystemPresenter.ts', content: tpl.systemPresenterTs() });
|
|
133
|
+
// ── Testing ──
|
|
134
|
+
if (config.testing) {
|
|
135
|
+
files.push({ path: 'vitest.config.ts', content: tpl.vitestConfig() });
|
|
136
|
+
files.push({ path: 'tests/setup.ts', content: tpl.testSetupTs() });
|
|
137
|
+
files.push({ path: 'tests/system.test.ts', content: tpl.systemTestTs() });
|
|
138
|
+
}
|
|
139
|
+
// ── Vector-specific ──
|
|
140
|
+
addVectorFiles(files, config);
|
|
141
|
+
return files;
|
|
142
|
+
}
|
|
143
|
+
// ── Cloudflare File List Builder ─────────────────────────
|
|
144
|
+
function buildCloudflareFileList(config) {
|
|
145
|
+
const files = [];
|
|
146
|
+
// ── Root config ──
|
|
147
|
+
files.push({ path: 'package.json', content: tpl.cloudflarePackageJson(config) });
|
|
148
|
+
files.push({ path: 'tsconfig.json', content: tpl.cloudflareTsconfig() });
|
|
149
|
+
files.push({ path: 'wrangler.toml', content: tpl.cloudflareWranglerToml(config) });
|
|
150
|
+
files.push({ path: '.gitignore', content: tpl.cloudflareGitignore() });
|
|
151
|
+
files.push({ path: '.env.example', content: tpl.cloudflareEnvExample(config) });
|
|
152
|
+
files.push({ path: 'README.md', content: tpl.cloudflareReadme(config) });
|
|
153
|
+
// ── Worker entry point ──
|
|
154
|
+
files.push({ path: 'src/worker.ts', content: tpl.cloudflareWorkerTs(config) });
|
|
155
|
+
// ── MCP source ──
|
|
156
|
+
files.push({ path: 'src/vurb.ts', content: tpl.cloudflareVurbTs() });
|
|
157
|
+
files.push({ path: 'src/context.ts', content: tpl.cloudflareContextTs() });
|
|
158
|
+
files.push({ path: 'src/registry.ts', content: tpl.cloudflareRegistryTs() });
|
|
159
|
+
// ── Tools ──
|
|
160
|
+
files.push({ path: 'src/tools/system/health.ts', content: tpl.healthToolTs() });
|
|
161
|
+
files.push({ path: 'src/tools/system/echo.ts', content: tpl.echoToolTs() });
|
|
162
|
+
// ── Model + Presenter ──
|
|
163
|
+
files.push({ path: 'src/models/SystemModel.ts', content: tpl.systemModelTs() });
|
|
164
|
+
files.push({ path: 'src/presenters/SystemPresenter.ts', content: tpl.systemPresenterTs() });
|
|
165
|
+
// ── Testing ──
|
|
166
|
+
if (config.testing) {
|
|
167
|
+
files.push({ path: 'vitest.config.ts', content: tpl.vitestConfig() });
|
|
168
|
+
files.push({ path: 'tests/setup.ts', content: tpl.testSetupTs() });
|
|
169
|
+
files.push({ path: 'tests/system.test.ts', content: tpl.systemTestTs() });
|
|
170
|
+
}
|
|
171
|
+
// ── Vector-specific ──
|
|
172
|
+
addVectorFiles(files, config);
|
|
173
|
+
return files;
|
|
174
|
+
}
|
|
107
175
|
//# sourceMappingURL=scaffold.js.map
|
package/dist/cli/scaffold.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/cli/scaffold.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,GAAG,MAAM,sBAAsB,CAAC;AAS5C,4DAA4D;AAE5D;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,SAAiB,EAAE,MAAqB;IAC7D,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/cli/scaffold.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare Templates — Workers scaffold for @vurb/cloudflare
|
|
3
|
+
*
|
|
4
|
+
* Generates a complete Cloudflare Worker project that exposes an MCP
|
|
5
|
+
* server via `cloudflareWorkersAdapter()`. Deploy with `wrangler deploy`.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
import type { ProjectConfig } from '../types.js';
|
|
10
|
+
/** Generate `package.json` for Cloudflare Workers project */
|
|
11
|
+
export declare function cloudflarePackageJson(config: ProjectConfig): string;
|
|
12
|
+
/** Generate `tsconfig.json` for Cloudflare Workers */
|
|
13
|
+
export declare function cloudflareTsconfig(): string;
|
|
14
|
+
/** Generate `wrangler.toml` */
|
|
15
|
+
export declare function cloudflareWranglerToml(config: ProjectConfig): string;
|
|
16
|
+
/** Generate `src/worker.ts` — The Worker entry point */
|
|
17
|
+
export declare function cloudflareWorkerTs(config: ProjectConfig): string;
|
|
18
|
+
/** Generate `src/registry.ts` — Tool registry (cold-start) */
|
|
19
|
+
export declare function cloudflareRegistryTs(): string;
|
|
20
|
+
/** Generate `src/vurb.ts` — initVurb instance */
|
|
21
|
+
export declare function cloudflareVurbTs(): string;
|
|
22
|
+
/** Generate `src/context.ts` — Application context */
|
|
23
|
+
export declare function cloudflareContextTs(): string;
|
|
24
|
+
/** Generate `.env.example` for Cloudflare */
|
|
25
|
+
export declare function cloudflareEnvExample(config: ProjectConfig): string;
|
|
26
|
+
/** Generate `.gitignore` for Cloudflare Workers */
|
|
27
|
+
export declare function cloudflareGitignore(): string;
|
|
28
|
+
/** Generate `README.md` for Cloudflare project */
|
|
29
|
+
export declare function cloudflareReadme(config: ProjectConfig): string;
|
|
30
|
+
//# sourceMappingURL=cloudflare.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/cloudflare.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,6DAA6D;AAC7D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CA2DnE;AAED,sDAAsD;AACtD,wBAAgB,kBAAkB,IAAI,MAAM,CAyB3C;AAED,+BAA+B;AAC/B,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAyBpE;AAED,wDAAwD;AACxD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAwBhE;AAED,8DAA8D;AAC9D,wBAAgB,oBAAoB,IAAI,MAAM,CAe7C;AAED,iDAAiD;AACjD,wBAAgB,gBAAgB,IAAI,MAAM,CAYzC;AAED,sDAAsD;AACtD,wBAAgB,mBAAmB,IAAI,MAAM,CA6B5C;AAED,6CAA6C;AAC7C,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAgBlE;AAED,mDAAmD;AACnD,wBAAgB,mBAAmB,IAAI,MAAM,CAS5C;AAED,kDAAkD;AAClD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAqH9D"}
|
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
import { CORE_VERSION, MCP_SDK_VERSION, CLOUDFLARE_ADAPTER_VERSION, ZOD_VERSION, TESTING_VERSION } from './constants.js';
|
|
2
|
+
/** Generate `package.json` for Cloudflare Workers project */
|
|
3
|
+
export function cloudflarePackageJson(config) {
|
|
4
|
+
const deps = {
|
|
5
|
+
'@modelcontextprotocol/sdk': MCP_SDK_VERSION,
|
|
6
|
+
'@vurb/core': CORE_VERSION,
|
|
7
|
+
'@vurb/cloudflare': CLOUDFLARE_ADAPTER_VERSION,
|
|
8
|
+
'zod': ZOD_VERSION,
|
|
9
|
+
};
|
|
10
|
+
if (config.vector === 'prisma') {
|
|
11
|
+
deps['@prisma/client'] = '^6.0.0';
|
|
12
|
+
deps['@vurb/prisma-gen'] = '^1.0.0';
|
|
13
|
+
}
|
|
14
|
+
if (config.vector === 'oauth') {
|
|
15
|
+
deps['@vurb/oauth'] = '^1.0.0';
|
|
16
|
+
}
|
|
17
|
+
const devDeps = {
|
|
18
|
+
'typescript': '^5.7.3',
|
|
19
|
+
'@types/node': '^22.0.0',
|
|
20
|
+
'@cloudflare/workers-types': '^4.0.0',
|
|
21
|
+
'wrangler': '^3.0.0',
|
|
22
|
+
};
|
|
23
|
+
if (config.vector === 'prisma') {
|
|
24
|
+
devDeps['prisma'] = '^6.0.0';
|
|
25
|
+
}
|
|
26
|
+
if (config.testing) {
|
|
27
|
+
devDeps['vitest'] = '^3.0.5';
|
|
28
|
+
devDeps['@vurb/testing'] = TESTING_VERSION;
|
|
29
|
+
}
|
|
30
|
+
const scripts = {
|
|
31
|
+
'dev': 'wrangler dev',
|
|
32
|
+
'deploy': 'wrangler deploy',
|
|
33
|
+
'build': 'tsc',
|
|
34
|
+
'typecheck': 'tsc --noEmit',
|
|
35
|
+
};
|
|
36
|
+
if (config.testing) {
|
|
37
|
+
scripts['test'] = 'vitest run';
|
|
38
|
+
scripts['test:watch'] = 'vitest';
|
|
39
|
+
}
|
|
40
|
+
if (config.vector === 'prisma') {
|
|
41
|
+
scripts['db:generate'] = 'prisma generate';
|
|
42
|
+
scripts['db:push'] = 'prisma db push';
|
|
43
|
+
}
|
|
44
|
+
const pkg = {
|
|
45
|
+
name: config.name,
|
|
46
|
+
version: '0.1.0',
|
|
47
|
+
private: true,
|
|
48
|
+
type: 'module',
|
|
49
|
+
scripts,
|
|
50
|
+
dependencies: deps,
|
|
51
|
+
devDependencies: devDeps,
|
|
52
|
+
engines: { node: '>=18.0.0' },
|
|
53
|
+
};
|
|
54
|
+
return JSON.stringify(pkg, null, 4) + '\n';
|
|
55
|
+
}
|
|
56
|
+
/** Generate `tsconfig.json` for Cloudflare Workers */
|
|
57
|
+
export function cloudflareTsconfig() {
|
|
58
|
+
return JSON.stringify({
|
|
59
|
+
compilerOptions: {
|
|
60
|
+
target: 'es2022',
|
|
61
|
+
module: 'es2022',
|
|
62
|
+
moduleResolution: 'bundler',
|
|
63
|
+
declaration: true,
|
|
64
|
+
sourceMap: true,
|
|
65
|
+
strict: true,
|
|
66
|
+
noUncheckedIndexedAccess: true,
|
|
67
|
+
noFallthroughCasesInSwitch: true,
|
|
68
|
+
exactOptionalPropertyTypes: true,
|
|
69
|
+
noImplicitOverride: true,
|
|
70
|
+
noPropertyAccessFromIndexSignature: true,
|
|
71
|
+
forceConsistentCasingInFileNames: true,
|
|
72
|
+
resolveJsonModule: true,
|
|
73
|
+
skipLibCheck: true,
|
|
74
|
+
lib: ['es2022'],
|
|
75
|
+
types: ['@cloudflare/workers-types'],
|
|
76
|
+
rootDir: './src',
|
|
77
|
+
outDir: './dist',
|
|
78
|
+
},
|
|
79
|
+
include: ['src/**/*'],
|
|
80
|
+
exclude: ['node_modules', 'dist', 'tests'],
|
|
81
|
+
}, null, 4) + '\n';
|
|
82
|
+
}
|
|
83
|
+
/** Generate `wrangler.toml` */
|
|
84
|
+
export function cloudflareWranglerToml(config) {
|
|
85
|
+
return `name = "${config.name}"
|
|
86
|
+
main = "src/worker.ts"
|
|
87
|
+
compatibility_date = "2024-12-01"
|
|
88
|
+
compatibility_flags = ["nodejs_compat"]
|
|
89
|
+
|
|
90
|
+
# ── Bindings ────────────────────────────────────────
|
|
91
|
+
# Uncomment to enable Cloudflare services:
|
|
92
|
+
|
|
93
|
+
# [vars]
|
|
94
|
+
# MY_SECRET = "value"
|
|
95
|
+
|
|
96
|
+
# [[d1_databases]]
|
|
97
|
+
# binding = "DB"
|
|
98
|
+
# database_name = "${config.name}-db"
|
|
99
|
+
# database_id = "<your-database-id>"
|
|
100
|
+
|
|
101
|
+
# [[kv_namespaces]]
|
|
102
|
+
# binding = "KV"
|
|
103
|
+
# id = "<your-kv-namespace-id>"
|
|
104
|
+
|
|
105
|
+
# [[r2_buckets]]
|
|
106
|
+
# binding = "BUCKET"
|
|
107
|
+
# bucket_name = "${config.name}-bucket"
|
|
108
|
+
`;
|
|
109
|
+
}
|
|
110
|
+
/** Generate `src/worker.ts` — The Worker entry point */
|
|
111
|
+
export function cloudflareWorkerTs(config) {
|
|
112
|
+
return `/**
|
|
113
|
+
* Cloudflare Worker — MCP Server
|
|
114
|
+
*
|
|
115
|
+
* Exposes your Vurb tools as a stateless MCP endpoint.
|
|
116
|
+
* Connect any MCP client to: POST https://your-worker.workers.dev/
|
|
117
|
+
*/
|
|
118
|
+
import { cloudflareWorkersAdapter } from '@vurb/cloudflare';
|
|
119
|
+
import { registry } from './registry.js';
|
|
120
|
+
import { createContext } from './context.js';
|
|
121
|
+
|
|
122
|
+
export interface Env {
|
|
123
|
+
// Add your Cloudflare bindings here:
|
|
124
|
+
// DB: D1Database;
|
|
125
|
+
// KV: KVNamespace;
|
|
126
|
+
// BUCKET: R2Bucket;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export default cloudflareWorkersAdapter<Env, ReturnType<typeof createContext>>({
|
|
130
|
+
registry,
|
|
131
|
+
serverName: '${config.name}',
|
|
132
|
+
contextFactory: async (req, env) => createContext(),
|
|
133
|
+
});
|
|
134
|
+
`;
|
|
135
|
+
}
|
|
136
|
+
/** Generate `src/registry.ts` — Tool registry (cold-start) */
|
|
137
|
+
export function cloudflareRegistryTs() {
|
|
138
|
+
return `/**
|
|
139
|
+
* Tool Registry — Cold Start Initialization
|
|
140
|
+
*
|
|
141
|
+
* Registered tools are compiled once during cold start.
|
|
142
|
+
* Warm requests only instantiate McpServer + Transport.
|
|
143
|
+
*/
|
|
144
|
+
import { f } from './vurb.js';
|
|
145
|
+
import healthTool from './tools/system/health.js';
|
|
146
|
+
import echoTool from './tools/system/echo.js';
|
|
147
|
+
|
|
148
|
+
export const registry = f.registry();
|
|
149
|
+
registry.register(healthTool);
|
|
150
|
+
registry.register(echoTool);
|
|
151
|
+
`;
|
|
152
|
+
}
|
|
153
|
+
/** Generate `src/vurb.ts` — initVurb instance */
|
|
154
|
+
export function cloudflareVurbTs() {
|
|
155
|
+
return `/**
|
|
156
|
+
* Vurb Instance — Context Initialization
|
|
157
|
+
*
|
|
158
|
+
* Define your context type ONCE. Every f.query(), f.mutation(),
|
|
159
|
+
* and f.presenter() call inherits AppContext.
|
|
160
|
+
*/
|
|
161
|
+
import { initVurb } from '@vurb/core';
|
|
162
|
+
import type { AppContext } from './context.js';
|
|
163
|
+
|
|
164
|
+
export const f = initVurb<AppContext>();
|
|
165
|
+
`;
|
|
166
|
+
}
|
|
167
|
+
/** Generate `src/context.ts` — Application context */
|
|
168
|
+
export function cloudflareContextTs() {
|
|
169
|
+
return `/**
|
|
170
|
+
* Application Context — Shared State for Every Tool Handler
|
|
171
|
+
*
|
|
172
|
+
* Every f.query() / f.mutation() handler receives (input, ctx)
|
|
173
|
+
* where ctx is this AppContext.
|
|
174
|
+
*/
|
|
175
|
+
|
|
176
|
+
export interface AppContext {
|
|
177
|
+
/** Current user role for RBAC checks */
|
|
178
|
+
role: 'ADMIN' | 'USER' | 'GUEST';
|
|
179
|
+
|
|
180
|
+
/** Tenant identifier (multi-tenancy) */
|
|
181
|
+
tenantId: string;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Create the application context for each tool invocation.
|
|
186
|
+
*
|
|
187
|
+
* In production, hydrate from Cloudflare env bindings,
|
|
188
|
+
* request headers, or secrets.
|
|
189
|
+
*/
|
|
190
|
+
export function createContext(): AppContext {
|
|
191
|
+
return {
|
|
192
|
+
role: 'ADMIN',
|
|
193
|
+
tenantId: 'default',
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
`;
|
|
197
|
+
}
|
|
198
|
+
/** Generate `.env.example` for Cloudflare */
|
|
199
|
+
export function cloudflareEnvExample(config) {
|
|
200
|
+
let env = `# ── Vurb + Cloudflare Workers Environment ─────
|
|
201
|
+
# Secrets are managed via wrangler:
|
|
202
|
+
# wrangler secret put MY_SECRET
|
|
203
|
+
|
|
204
|
+
NODE_ENV=development
|
|
205
|
+
`;
|
|
206
|
+
if (config.vector === 'prisma') {
|
|
207
|
+
env += `
|
|
208
|
+
# Database (Prisma — Hyperdrive or external)
|
|
209
|
+
DATABASE_URL="postgresql://user:password@localhost:5432/mydb?schema=public"
|
|
210
|
+
`;
|
|
211
|
+
}
|
|
212
|
+
return env;
|
|
213
|
+
}
|
|
214
|
+
/** Generate `.gitignore` for Cloudflare Workers */
|
|
215
|
+
export function cloudflareGitignore() {
|
|
216
|
+
return `node_modules/
|
|
217
|
+
dist/
|
|
218
|
+
.wrangler/
|
|
219
|
+
*.tsbuildinfo
|
|
220
|
+
.env
|
|
221
|
+
.dev.vars
|
|
222
|
+
coverage/
|
|
223
|
+
`;
|
|
224
|
+
}
|
|
225
|
+
/** Generate `README.md` for Cloudflare project */
|
|
226
|
+
export function cloudflareReadme(config) {
|
|
227
|
+
return `# ${config.name}
|
|
228
|
+
|
|
229
|
+
MCP Server built with [Vurb](https://vurb.vinkius.com/) — deployed to Cloudflare Workers.
|
|
230
|
+
|
|
231
|
+
## Quick Start
|
|
232
|
+
|
|
233
|
+
\`\`\`bash
|
|
234
|
+
npm install
|
|
235
|
+
npm run dev
|
|
236
|
+
\`\`\`
|
|
237
|
+
|
|
238
|
+
The MCP endpoint is available at \`POST http://localhost:8787/\`.
|
|
239
|
+
|
|
240
|
+
## Deploy to Cloudflare
|
|
241
|
+
|
|
242
|
+
\`\`\`bash
|
|
243
|
+
npm run deploy
|
|
244
|
+
\`\`\`
|
|
245
|
+
|
|
246
|
+
Or directly:
|
|
247
|
+
|
|
248
|
+
\`\`\`bash
|
|
249
|
+
npx wrangler deploy
|
|
250
|
+
\`\`\`
|
|
251
|
+
|
|
252
|
+
## Client Configuration
|
|
253
|
+
|
|
254
|
+
### Cursor / VS Code
|
|
255
|
+
|
|
256
|
+
\`\`\`json
|
|
257
|
+
{
|
|
258
|
+
"mcpServers": {
|
|
259
|
+
"${config.name}": {
|
|
260
|
+
"url": "https://${config.name}.your-subdomain.workers.dev/"
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
\`\`\`
|
|
265
|
+
|
|
266
|
+
### Claude Desktop
|
|
267
|
+
|
|
268
|
+
Add to your \`claude_desktop_config.json\`:
|
|
269
|
+
|
|
270
|
+
\`\`\`json
|
|
271
|
+
{
|
|
272
|
+
"mcpServers": {
|
|
273
|
+
"${config.name}": {
|
|
274
|
+
"url": "https://${config.name}.your-subdomain.workers.dev/"
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
\`\`\`
|
|
279
|
+
|
|
280
|
+
## Project Structure
|
|
281
|
+
|
|
282
|
+
\`\`\`
|
|
283
|
+
src/
|
|
284
|
+
├── worker.ts # Worker entry → cloudflareWorkersAdapter()
|
|
285
|
+
├── vurb.ts # initVurb<AppContext>()
|
|
286
|
+
├── context.ts # AppContext type + factory
|
|
287
|
+
├── registry.ts # Tool registry (cold-start)
|
|
288
|
+
└── tools/
|
|
289
|
+
└── system/
|
|
290
|
+
├── health.ts # Health check
|
|
291
|
+
└── echo.ts # Echo tool
|
|
292
|
+
wrangler.toml # Cloudflare configuration
|
|
293
|
+
\`\`\`
|
|
294
|
+
|
|
295
|
+
## Cloudflare Bindings
|
|
296
|
+
|
|
297
|
+
Uncomment bindings in \`wrangler.toml\` and update \`Env\` in \`worker.ts\`:
|
|
298
|
+
|
|
299
|
+
\`\`\`typescript
|
|
300
|
+
// worker.ts
|
|
301
|
+
export interface Env {
|
|
302
|
+
DB: D1Database;
|
|
303
|
+
KV: KVNamespace;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
export default cloudflareWorkersAdapter<Env, MyContext>({
|
|
307
|
+
registry,
|
|
308
|
+
contextFactory: async (req, env) => ({
|
|
309
|
+
db: env.DB,
|
|
310
|
+
tenantId: req.headers.get('x-tenant-id') || 'public',
|
|
311
|
+
}),
|
|
312
|
+
});
|
|
313
|
+
\`\`\`
|
|
314
|
+
|
|
315
|
+
## Adding New Tools
|
|
316
|
+
|
|
317
|
+
1. Create a tool in \`src/tools/\`:
|
|
318
|
+
|
|
319
|
+
\`\`\`typescript
|
|
320
|
+
import { f } from '../../vurb.js';
|
|
321
|
+
|
|
322
|
+
export default f.query('my_tool')
|
|
323
|
+
.describe('What this tool does')
|
|
324
|
+
.withString('query', 'Search query')
|
|
325
|
+
.handle(async (input, ctx) => {
|
|
326
|
+
return { result: input.query };
|
|
327
|
+
});
|
|
328
|
+
\`\`\`
|
|
329
|
+
|
|
330
|
+
2. Register it in \`src/registry.ts\`:
|
|
331
|
+
|
|
332
|
+
\`\`\`typescript
|
|
333
|
+
import myTool from './tools/my-domain/my-tool.js';
|
|
334
|
+
registry.register(myTool);
|
|
335
|
+
\`\`\`
|
|
336
|
+
|
|
337
|
+
## Documentation
|
|
338
|
+
|
|
339
|
+
- [Vurb Docs](https://vurb.vinkius.com/)
|
|
340
|
+
- [Cloudflare Adapter](https://vurb.vinkius.com/cloudflare-adapter)
|
|
341
|
+
- [Presenter — Egress Firewall](https://vurb.vinkius.com/presenter)
|
|
342
|
+
`;
|
|
343
|
+
}
|
|
344
|
+
//# sourceMappingURL=cloudflare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../../../src/cli/templates/cloudflare.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,4 +6,6 @@ export declare const CORE_VERSION = "^3.2.0";
|
|
|
6
6
|
export declare const TESTING_VERSION = "^3.2.0";
|
|
7
7
|
export declare const MCP_SDK_VERSION = "^1.12.1";
|
|
8
8
|
export declare const ZOD_VERSION = "^3.25.1";
|
|
9
|
+
export declare const VERCEL_ADAPTER_VERSION = "^3.2.0";
|
|
10
|
+
export declare const CLOUDFLARE_ADAPTER_VERSION = "^3.2.0";
|
|
9
11
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,YAAY,WAAW,CAAC;AACrC,eAAO,MAAM,eAAe,WAAW,CAAC;AACxC,eAAO,MAAM,eAAe,YAAY,CAAC;AACzC,eAAO,MAAM,WAAW,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,YAAY,WAAW,CAAC;AACrC,eAAO,MAAM,eAAe,WAAW,CAAC;AACxC,eAAO,MAAM,eAAe,YAAY,CAAC;AACzC,eAAO,MAAM,WAAW,YAAY,CAAC;AACrC,eAAO,MAAM,sBAAsB,WAAW,CAAC;AAC/C,eAAO,MAAM,0BAA0B,WAAW,CAAC"}
|
|
@@ -6,4 +6,6 @@ export const CORE_VERSION = '^3.2.0';
|
|
|
6
6
|
export const TESTING_VERSION = '^3.2.0';
|
|
7
7
|
export const MCP_SDK_VERSION = '^1.12.1';
|
|
8
8
|
export const ZOD_VERSION = '^3.25.1';
|
|
9
|
+
export const VERCEL_ADAPTER_VERSION = '^3.2.0';
|
|
10
|
+
export const CLOUDFLARE_ADAPTER_VERSION = '^3.2.0';
|
|
9
11
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/cli/templates/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;AACrC,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC;AACxC,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC;AACzC,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/cli/templates/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;AACrC,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC;AACxC,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC;AACzC,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;AACrC,MAAM,CAAC,MAAM,sBAAsB,GAAG,QAAQ,CAAC;AAC/C,MAAM,CAAC,MAAM,0BAA0B,GAAG,QAAQ,CAAC"}
|
|
@@ -15,4 +15,6 @@ export { vitestConfig, testSetupTs, systemTestTs } from './testing.js';
|
|
|
15
15
|
export { readme } from './readme.js';
|
|
16
16
|
export { cursorMcpJson } from './cursor.js';
|
|
17
17
|
export { prismaSchema, dbUsersToolTs, n8nConnectorTs, openapiYaml, openapiSetupMd, oauthSetupTs, oauthMiddlewareTs } from './vectors/index.js';
|
|
18
|
+
export { vercelPackageJson, vercelTsconfig, vercelNextConfig, vercelRouteTs, vercelRegistryTs, vercelVurbTs, vercelContextTs, vercelEnvExample, vercelGitignore, vercelReadme, } from './vercel.js';
|
|
19
|
+
export { cloudflarePackageJson, cloudflareTsconfig, cloudflareWranglerToml, cloudflareWorkerTs, cloudflareRegistryTs, cloudflareVurbTs, cloudflareContextTs, cloudflareEnvExample, cloudflareGitignore, cloudflareReadme, } from './cloudflare.js';
|
|
18
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG3E,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGtD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGnD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGvE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG3E,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGtD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGnD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGvE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG/I,OAAO,EACH,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAClE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EACjE,eAAe,EAAE,YAAY,GAChC,MAAM,aAAa,CAAC;AAGrB,OAAO,EACH,qBAAqB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,kBAAkB,EACrF,oBAAoB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,oBAAoB,EACjF,mBAAmB,EAAE,gBAAgB,GACxC,MAAM,iBAAiB,CAAC"}
|
|
@@ -26,4 +26,8 @@ export { readme } from './readme.js';
|
|
|
26
26
|
export { cursorMcpJson } from './cursor.js';
|
|
27
27
|
// Vector-specific
|
|
28
28
|
export { prismaSchema, dbUsersToolTs, n8nConnectorTs, openapiYaml, openapiSetupMd, oauthSetupTs, oauthMiddlewareTs } from './vectors/index.js';
|
|
29
|
+
// Target: Vercel
|
|
30
|
+
export { vercelPackageJson, vercelTsconfig, vercelNextConfig, vercelRouteTs, vercelRegistryTs, vercelVurbTs, vercelContextTs, vercelEnvExample, vercelGitignore, vercelReadme, } from './vercel.js';
|
|
31
|
+
// Target: Cloudflare
|
|
32
|
+
export { cloudflarePackageJson, cloudflareTsconfig, cloudflareWranglerToml, cloudflareWorkerTs, cloudflareRegistryTs, cloudflareVurbTs, cloudflareContextTs, cloudflareEnvExample, cloudflareGitignore, cloudflareReadme, } from './cloudflare.js';
|
|
29
33
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/templates/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wCAAwC;AACxC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE3E,+CAA+C;AAC/C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAExD,QAAQ;AACR,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEtD,QAAQ;AACR,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,YAAY;AACZ,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,SAAS;AACT,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,aAAa;AACb,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,UAAU;AACV,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEvE,SAAS;AACT,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,qBAAqB;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,kBAAkB;AAClB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/templates/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wCAAwC;AACxC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE3E,+CAA+C;AAC/C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAExD,QAAQ;AACR,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEtD,QAAQ;AACR,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,YAAY;AACZ,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,SAAS;AACT,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,aAAa;AACb,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,UAAU;AACV,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEvE,SAAS;AACT,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,qBAAqB;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,kBAAkB;AAClB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE/I,iBAAiB;AACjB,OAAO,EACH,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAClE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EACjE,eAAe,EAAE,YAAY,GAChC,MAAM,aAAa,CAAC;AAErB,qBAAqB;AACrB,OAAO,EACH,qBAAqB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,kBAAkB,EACrF,oBAAoB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,oBAAoB,EACjF,mBAAmB,EAAE,gBAAgB,GACxC,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vercel Templates — Next.js App Router scaffold for @vurb/vercel
|
|
3
|
+
*
|
|
4
|
+
* Generates a complete Next.js project that exposes an MCP server
|
|
5
|
+
* via `vercelAdapter()`. Deploy with `vercel deploy`.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
import type { ProjectConfig } from '../types.js';
|
|
10
|
+
/** Generate `package.json` for Vercel/Next.js project */
|
|
11
|
+
export declare function vercelPackageJson(config: ProjectConfig): string;
|
|
12
|
+
/** Generate `tsconfig.json` for Next.js */
|
|
13
|
+
export declare function vercelTsconfig(): string;
|
|
14
|
+
/** Generate `next.config.ts` */
|
|
15
|
+
export declare function vercelNextConfig(): string;
|
|
16
|
+
/** Generate `app/api/mcp/route.ts` — The MCP endpoint */
|
|
17
|
+
export declare function vercelRouteTs(config: ProjectConfig): string;
|
|
18
|
+
/** Generate `src/mcp/registry.ts` — Tool registry (cold-start) */
|
|
19
|
+
export declare function vercelRegistryTs(): string;
|
|
20
|
+
/** Generate `src/mcp/vurb.ts` — initVurb instance */
|
|
21
|
+
export declare function vercelVurbTs(): string;
|
|
22
|
+
/** Generate `src/mcp/context.ts` — Application context */
|
|
23
|
+
export declare function vercelContextTs(): string;
|
|
24
|
+
/** Generate `.env.example` for Vercel */
|
|
25
|
+
export declare function vercelEnvExample(config: ProjectConfig): string;
|
|
26
|
+
/** Generate `.gitignore` for Next.js */
|
|
27
|
+
export declare function vercelGitignore(): string;
|
|
28
|
+
/** Generate `README.md` for Vercel project */
|
|
29
|
+
export declare function vercelReadme(config: ProjectConfig): string;
|
|
30
|
+
//# sourceMappingURL=vercel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/vercel.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,yDAAyD;AACzD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CA6D/D;AAED,2CAA2C;AAC3C,wBAAgB,cAAc,IAAI,MAAM,CAsBvC;AAED,gCAAgC;AAChC,wBAAgB,gBAAgB,IAAI,MAAM,CAOzC;AAED,yDAAyD;AACzD,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAiB3D;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,IAAI,MAAM,CAezC;AAED,qDAAqD;AACrD,wBAAgB,YAAY,IAAI,MAAM,CAYrC;AAED,0DAA0D;AAC1D,wBAAgB,eAAe,IAAI,MAAM,CA6BxC;AAED,yCAAyC;AACzC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAuB9D;AAED,wCAAwC;AACxC,wBAAgB,eAAe,IAAI,MAAM,CAUxC;AAED,8CAA8C;AAC9C,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAsG1D"}
|