// Generated by scripts/generate-manifest.mjs. Do not edit by hand. import type { AddOnCompiled } from '../../../../../types.js' type TemplateRecord = Record type TemplateAddOn = TemplateRecord & { integrations?: Array routes?: Array } type TemplateRenderContext = { [key: string]: any packageManager: any projectName: any typescript: any tailwind: any blank: any js: any jsx: any fileRouter: any codeRouter: any routerOnly: any includeExamples: any addOnEnabled: Record addOnOption: Record addOns: Array integrations: Array routes: Array getPackageManagerAddScript: (...args: Array) => string getPackageManagerRunScript: (...args: Array) => string getPackageManagerExecuteScript: (...args: Array) => string relativePath: (...args: Array) => string integrationImportContent: (...args: Array) => string integrationImportCode: (...args: Array) => string | undefined renderTemplate: (content: string) => string ignoreFile: () => never } type TemplateRenderer = (context: TemplateRenderContext) => string | undefined function __escapeXML(value: unknown) { if (value === undefined || value === null) { return '' } return String(value).replace(/[&<>'"]/g, (character) => { switch (character) { case '&': return '&' case '<': return '<' case '>': return '>' case '"': return '"' case "'": return ''' default: return character } }) } export function getManifestTemplateKey(template: string) { let hash = 0x811c9dc5 for (let i = 0; i < template.length; i++) { hash ^= template.charCodeAt(i) hash = Math.imul(hash, 0x01000193) >>> 0 } return `${hash.toString(16).padStart(8, '0')}:${template.length}` } function __render_7480f519_277(context: TemplateRenderContext) { const { packageManager, projectName, typescript, tailwind, blank, js, jsx, fileRouter, codeRouter, routerOnly, includeExamples, addOnEnabled, addOnOption, addOns, integrations, routes, getPackageManagerAddScript, getPackageManagerRunScript, getPackageManagerExecuteScript, relativePath, integrationImportContent, integrationImportCode, renderTemplate, ignoreFile, } = context let __output = '' const __append = (value: unknown) => { if (value !== undefined && value !== null) { __output += String(value) } } __append("{\n \"scripts\": {\n \"deploy\": \"") __append(__escapeXML(packageManager)) __append(" run build && wrangler deploy\"\n },\n \"dependencies\": {\n \"@cloudflare/vite-plugin\": \"^1.26.0\"\n },\n \"devDependencies\": {\n \"wrangler\": \"^4.70.0\"\n },\n \"pnpm\": {\n \"onlyBuiltDependencies\": [\"sharp\", \"workerd\"]\n }\n}\n") return __output } const templateRenderers: Record = { "7480f519:277": __render_7480f519_277, } export function hasManifestTemplate(template: string) { return getManifestTemplateKey(template) in templateRenderers } export function renderManifestTemplate( template: string, context: TemplateRenderContext, ) { const key = getManifestTemplateKey(template) const renderer = templateRenderers[key] if (!renderer) { throw new Error(`Template ${key} was not precompiled into the manifest`) } return renderer(context) ?? '' } export const addOn = { "name": "Cloudflare", "description": "Deploy to Cloudflare Workers (edge runtime, KV/D1/R2 bindings).", "link": "https://developers.cloudflare.com/workers/vite-plugin/", "phase": "add-on", "modes": [ "file-router", "code-router" ], "type": "deployment", "category": "deploy", "exclusive": [ "deploy" ], "color": "#F38020", "priority": 200, "partner": { "id": "cloudflare", "tier": "gold" }, "integrations": [ { "type": "vite-plugin", "import": "import { cloudflare } from '@cloudflare/vite-plugin'", "code": "cloudflare({ viteEnvironment: { name: 'ssr' } })" } ], "id": "cloudflare", "version": "0.0.0", "packageAdditions": {}, "packageTemplate": "{\n \"scripts\": {\n \"deploy\": \"<%= packageManager %> run build && wrangler deploy\"\n },\n \"dependencies\": {\n \"@cloudflare/vite-plugin\": \"^1.26.0\"\n },\n \"devDependencies\": {\n \"wrangler\": \"^4.70.0\"\n },\n \"pnpm\": {\n \"onlyBuiltDependencies\": [\"sharp\", \"workerd\"]\n }\n}\n", "readme": "## Deploy to Cloudflare Workers\n\nThis project uses the Cloudflare Vite plugin (configured in `vite.config.ts`) and `wrangler.jsonc`:\n\n1. Install Wrangler: `npm install -g wrangler`\n2. Authenticate: `wrangler login`\n3. Deploy: `npx wrangler deploy`\n\nFor production env vars, run `wrangler secret put MY_VAR` for each secret listed in `.env.example`. Public (non-secret) vars go in `wrangler.jsonc` under `vars`.\n\nKV, D1, R2, and Durable Object bindings are configured in `wrangler.jsonc` — see https://developers.cloudflare.com/workers/wrangler/configuration/.\n", "readmeIsEjs": false, "files": { "wrangler.jsonc": "{\n \"$schema\": \"node_modules/wrangler/config-schema.json\",\n \"name\": \"tanstack-start-app\",\n \"compatibility_date\": \"2025-09-02\",\n \"compatibility_flags\": [\n \"nodejs_compat\"\n ],\n \"main\": \"@tanstack/solid-start/server-entry\"\n}" }, "deletedFiles": [], "smallLogo": "" } satisfies AddOnCompiled