@bascik/adapter-cloudflare 1.0.0-rc.10 → 1.0.0-rc.12

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
@@ -7,7 +7,7 @@ Cloudflare Workers with Static Assets and Cloudflare Pages hosting adapter for [
7
7
 
8
8
  ## Overview
9
9
 
10
- This adapter compiles Bascik request-time scripts and API routes into a Cloudflare Workers deployment bundle with static asset routing. Install it in a Bascik project that deploys to Cloudflare (Node.js 22.22 or newer), or start one with `npm create bascik@rc my-site -- --template cloudflare`:
10
+ This adapter compiles Bascik request-time scripts and API routes into a Cloudflare Workers deployment bundle with static asset routing. Install it in a Bascik project that deploys to Cloudflare (Node.js 24.21 or newer), or start one with `npm create bascik@rc my-site -- --template cloudflare`:
11
11
 
12
12
  ```sh
13
13
  npm install --save-dev @bascik/adapter-cloudflare wrangler
@@ -15,7 +15,7 @@ npm install --save-dev @bascik/adapter-cloudflare wrangler
15
15
 
16
16
  See the [Cloudflare deployment guide](https://bascik.dev/deployment/cloudflare) for setup instructions, recipes, and limits.
17
17
 
18
- See it live: [cloudflare-adapter.bascik.dev](https://cloudflare-adapter.bascik.dev/) is a Bascik site deployed with this adapter. Its [product catalog](https://cloudflare-adapter.bascik.dev/catalog?q=frother) renders the `<product-card>` tags a server script returns, and the [streamed catalog](https://cloudflare-adapter.bascik.dev/catalog-stream) streams them in batches from the Worker.
18
+ See it live: [cloudflare-adapter.bascik.dev](https://cloudflare-adapter.bascik.dev/) is a Bascik site deployed with this adapter. Its [book catalog](https://cloudflare-adapter.bascik.dev/catalog?q=monolith) renders the `<book-card>` tags a server script returns, and the [streamed catalog](https://cloudflare-adapter.bascik.dev/catalog-stream) streams them in batches from the Worker.
19
19
 
20
20
  ## Targets and Variants
21
21
 
@@ -24,13 +24,21 @@ See it live: [cloudflare-adapter.bascik.dev](https://cloudflare-adapter.bascik.d
24
24
 
25
25
  ## Quickstart
26
26
 
27
+ Develop in Cloudflare's local runtime (workerd), with source watching and browser live reload:
28
+
29
+ ```sh
30
+ bascik --target cloudflare
31
+ ```
32
+
33
+ Open `http://127.0.0.1:8787`; use `--port` and `--host` to override the public address. Bascik runs full production adapter builds, starts Wrangler, and proxies the runtime over local HTTP. Source edits rebuild the bundle and reload connected browsers. Requests can receive 503 while rebuilding or after a failed build; the watcher stays alive and retries after the next edit. The proxy is HTTP only, regardless of the Node server's TLS configuration. Live reload is injected by the local proxy, never written into production artifacts. Bare `bascik` remains the Node development server.
34
+
27
35
  Build for Cloudflare Workers with Static Assets:
28
36
 
29
37
  ```sh
30
38
  bascik --build --target cloudflare
31
39
  ```
32
40
 
33
- Preview locally with Wrangler from the emitted target directory:
41
+ Preview a production build locally with Wrangler from the emitted target directory (without Bascik's source watcher or live reload):
34
42
 
35
43
  ```sh
36
44
  cd dist/.bascik/cloudflare
@@ -67,12 +75,15 @@ From the repo root:
67
75
 
68
76
  ```sh
69
77
  yarn adapter:cf:demo:build # build pkg, the adapter, then the fixture with --target cloudflare
70
- yarn adapter:cf:demo:dev # build, then wrangler dev in local workerd
78
+ yarn adapter:cf:demo:dev # watched adapter dev in local workerd on port 8787
71
79
  yarn adapter:cf:demo:preview # build, then wrangler preview (a Preview named after the git branch)
72
80
  yarn adapter:cf:demo:deploy # build, then wrangler deploy to production
73
81
  ```
74
82
 
75
- The workspace scripts `demo:build`, `demo:dev`, `demo:preview`, and `demo:deploy` run one step each, for a CI that builds and deploys in separate commands.
83
+ The workspace script `demo:dev` runs `bascik --target cloudflare` from the fixture root. `demo:build`, `demo:preview`, and `demo:deploy` remain separate production steps for CI.
84
+
85
+ Watched development launches Wrangler from the project root, pointing it at the generated Worker config or Pages public directory by absolute path. Its working directory stays valid even when another build replaces the generated output.
86
+ Local bindings persist under the project's `.wrangler/state/`, outside generated output, so source rebuilds do not delete KV, D1, R2, or Durable Object data.
76
87
 
77
88
  ## Development
78
89
 
@@ -84,8 +95,20 @@ yarn adapter:cf:typecheck # TypeScript type check
84
95
  yarn adapter:cf:unit # unit tests
85
96
  yarn adapter:cf:coverage # unit tests with coverage, written to test-coverage.json
86
97
  yarn adapter:cf:e2e # build the fixture and run Playwright against it in local workerd
98
+ yarn adapter:cf:e2e:dev # real watched platform runtime and browser reload tests
87
99
  ```
88
100
 
89
- The E2E lane uses the built compiler and adapter, so run `yarn pkg:build && yarn adapter:cf:build` first.
101
+ The E2E lanes use the built compiler and adapter, so run `yarn pkg:build && yarn adapter:cf:build` first. The watched lane runs `adapters/e2e/playwright.dev.config.ts` against the real Wrangler runtime; CI runs it separately from production acceptance. `yarn adapter:e2e:dev` runs both platforms after building both adapters.
102
+
103
+ Cloudflare and Netlify run the same [demo browser contract](https://github.com/bascikdev/bascik/blob/main/adapters/e2e/demo-contract.test.ts)
104
+ against their real runtimes. Both demos expose `/`, `/server?name=collin`,
105
+ `/stream`, `/stream-append`, `/mixed`, `/catalog`, `/catalog-stream`, `/api-demo`,
106
+ `/errors`, and `/static` with matching titles and navigation. The `/static`
107
+ page demonstrates scoped client scripts and independent counters; the overview
108
+ only links to the demos. The contract checks static
109
+ client scripts, escaped input, book rendering and filtering, API dispatch,
110
+ no-JavaScript stream ordering, and safe failures. Platform-specific context and
111
+ routing assertions remain in this adapter's own suite. Error-demo requests
112
+ intentionally generate diagnostics.
90
113
 
91
- CI deploys the demo Worker after every other stage passes, and posts a preview URL on pull requests. [DEPLOYMENT.md](../../DEPLOYMENT.md) is the runbook.
114
+ CI deploys the demo Worker after every other stage passes, and posts a preview URL on pull requests. [DEPLOYMENT.md](https://github.com/bascikdev/bascik/blob/main/DEPLOYMENT.md) is the runbook.
package/dist/build.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @module build\n *\n * Cloudflare adapter build implementation.\n */\n\nimport {\n pageAliasesFor,\n type AdapterBuildContext,\n type AdapterBuildResult,\n type SiteGraphJob,\n} from \"@bascik/bascik/adapter\";\nimport { resolve, dirname, join, relative, sep } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { createRequire } from \"node:module\";\nimport { existsSync, realpathSync } from \"node:fs\";\nimport {\n mkdir,\n copyFile,\n readFile,\n realpath,\n writeFile,\n} from \"node:fs/promises\";\nimport {\n CLOUDFLARE_COMPATIBILITY_DATE,\n CLOUDFLARE_COMPATIBILITY_FLAGS,\n PAGES_ROUTES_LIMIT,\n classifyNodeBuiltin,\n formatUnsupportedImport,\n type CompatSettings,\n} from \"./compat.js\";\nimport {\n deploymentCompatSettings,\n discoverWranglerConfig,\n generateWranglerConfig,\n resolveWorkerName,\n} from \"./config.js\";\nimport { buildHeadersFile, workerPageHeaderOverrides } from \"./headers-file.js\";\nimport { build as esbuildBuild, type BuildResult, type Message } from \"esbuild\";\nimport {\n isBascikFolderName,\n manifestHasComponents,\n} from \"@bascik/bascik/runtime\";\n\nexport { pageAliasesFor };\n\nexport interface InvocationRoutes {\n include: string[];\n exclude: string[];\n overflowed: boolean;\n}\n\nconst withBasePath = (path: string, base: string): string => {\n if (base === \"/\" || !base) return path;\n const cleanBase = base.replace(/\\/$/, \"\");\n return path.startsWith(\"/\") ? `${cleanBase}${path}` : `${cleanBase}/${path}`;\n};\n\nexport const buildInvocationRoutes = (input: {\n base: string;\n dynamicPagePaths: string[];\n hasApiRoutes: boolean;\n /** A static 404.html exists; its URLs must reach the worker to answer 404. */\n hasStaticNotFoundPage?: boolean;\n}): InvocationRoutes => {\n const include = new Set<string>();\n for (const path of input.dynamicPagePaths)\n for (const alias of pageAliasesFor(path, input.base)) include.add(alias);\n if (input.hasStaticNotFoundPage)\n for (const alias of pageAliasesFor(\"/404\", input.base)) include.add(alias);\n if (input.hasApiRoutes) include.add(withBasePath(\"/api/*\", input.base));\n include.add(withBasePath(\"/_routes.json\", input.base));\n include.add(withBasePath(\"/_worker.js\", input.base));\n const sorted = Array.from(include).sort();\n if (sorted.length > PAGES_ROUTES_LIMIT) {\n return {\n include: [withBasePath(\"/*\", input.base)],\n exclude: [],\n overflowed: true,\n };\n }\n return { include: sorted, exclude: [], overflowed: false };\n};\n\n/**\n * Public paths a deployment reserves. Pages reads `_worker.js` and\n * `_routes.json` from the public root; the Worker answers 404 for both on\n * every target (runtime.ts, GENERATED_CONTROL_PATHS), so on Workers an\n * authored one would deploy and never be served. The Workers variant's\n * worker.js and wrangler.jsonc sit beside public/, never in it.\n */\nconst CONTROL_FILES: Record<string, string[]> = {\n pages: [\"_worker.js\", \"_routes.json\"],\n workers: [\"_worker.js\", \"_routes.json\"],\n};\nconst ASSET_CONTROL_FILES = new Set([\"_headers\", \"_redirects\"]);\n\nexport const detectControlCollisions = (\n publicPaths: string[],\n variant: string,\n): string[] => {\n const control = new Set(CONTROL_FILES[variant] ?? []);\n const problems: string[] = [];\n for (const path of [...publicPaths].sort()) {\n if (control.has(path)) {\n problems.push(\n variant === \"pages\"\n ? `[bascik] --target cloudflare-${variant}: authored file \"${path}\" collides with a generated control file. Rename it or remove it from directory.pages.`\n : `[bascik] --target cloudflare-${variant}: authored file \"${path}\" would never be served: the Worker answers 404 for it, a Cloudflare control path. Rename it or remove it from directory.pages.`,\n );\n }\n }\n return problems;\n};\n\n/**\n * Whether the authored `assets.run_worker_first` sends every request of the\n * site to the Worker first: `true`, or a list with `/*` (or the base's\n * `/shop/*`) and no `!` exclusion.\n */\nexport const runsWorkerFirst = (assets: unknown, base: string): boolean => {\n if (typeof assets !== \"object\" || assets === null) return false;\n const value = (assets as { run_worker_first?: unknown }).run_worker_first;\n if (value === true) return true;\n if (!Array.isArray(value)) return false;\n if (value.some((p) => typeof p !== \"string\" || p.startsWith(\"!\")))\n return false;\n return value.includes(\"/*\") || value.includes(withBasePath(\"/*\", base));\n};\n\n/**\n * The wrangler/config-schema.json installed for the project, for the\n * generated config's `$schema` (editor help only; Wrangler ignores it).\n * Undefined when wrangler is not installed where the project resolves it.\n */\nconst wranglerSchemaPath = (projectRoot: string): string | undefined => {\n try {\n const pkg = createRequire(join(projectRoot, \"package.json\")).resolve(\n \"wrangler/package.json\",\n );\n const schema = join(dirname(pkg), \"config-schema.json\");\n return existsSync(schema) ? schema : undefined;\n } catch {\n return undefined;\n }\n};\n\nconst NO_COMPONENTS = \"bascik-no-components\";\n\n/**\n * component-host.ts's exports for a site without components: nothing to\n * render. Output scoping stays in runtime.ts, since page jobs carry a scope\n * without any renderable manifest.\n */\nconst COMPONENT_HOST_STUB = \"export const componentExecution = () => null;\";\n\nexport const build = async (\n context: AdapterBuildContext,\n): Promise<AdapterBuildResult> => {\n const { graph, distDir, outDir, projectRoot, variant = \"workers\" } = context;\n if (variant !== \"pages\" && variant !== \"workers\") {\n throw new Error(\n `[bascik] --target cloudflare: unknown variant \"${variant}\". Valid variants are \"pages\" and \"workers\".`,\n );\n }\n\n const publicDir = join(outDir, \"public\");\n await mkdir(publicDir, { recursive: true });\n\n // Discover authored user config and resolve worker name in priority order:\n // 1. Environment variables (CLOUDFLARE_WORKER_NAME, WORKER_NAME, CF_PAGES_PROJECT_NAME)\n // 2. Authored wrangler.jsonc / wrangler.json / wrangler.toml in project root\n // 3. Project package.json \"name\"\n // 4. Fallback to \"bascik-site\"\n // The config is discovered even when the name comes from the\n // environment: its other keys are carried into the generated config.\n const workerConfig =\n variant === \"workers\"\n ? await resolveWorkerName(\n projectRoot,\n await discoverWranglerConfig(projectRoot),\n )\n : undefined;\n // The author asked for the Worker before every static file: it sends the\n // static files' headers itself, so nothing is written into _headers for\n // them (Cloudflare's rule and line limits no longer apply).\n const workerFirst =\n variant === \"workers\" &&\n runsWorkerFirst(workerConfig?.discoveredConfig?.values?.assets, graph.base);\n\n const collisions = detectControlCollisions(graph.publicFiles, variant);\n if (collisions.length) throw new Error(collisions.join(\"\\n\"));\n\n // esbuild names importers by their real path: a project reached through\n // a symlinked folder (macOS tmpdir, a linked workspace) is keyed and\n // reported by it too, or no import chain would find its owner.\n const realRoot = await realpath(projectRoot).catch(() => projectRoot);\n const owners = new Map<string, Set<string>>();\n const addOwnerAt = (file: string, owner: string) => {\n let set = owners.get(file);\n if (!set) {\n set = new Set();\n owners.set(file, set);\n }\n set.add(owner);\n };\n const addOwner = (file: string, owner: string) => {\n addOwnerAt(file, owner);\n let real = file;\n try {\n real = realpathSync(file);\n } catch {\n // Not on disk (yet): only the spelling the graph gave is known.\n }\n if (real !== file) addOwnerAt(real, owner);\n };\n\n // A dynamic /404 page already answers 404 from the worker. A static one is\n // served by the asset layer, which answers 200 at its own URL.\n const hasStaticNotFoundPage =\n graph.publicFiles.includes(\"404.html\") && graph.pages[\"/404\"] === undefined;\n\n const here = fileURLToPath(import.meta.url);\n const runtimeFile = resolve(\n here,\n `../runtime${here.endsWith(\".ts\") ? \".ts\" : \".js\"}`,\n );\n\n const lines: string[] = [];\n lines.push(\n `import { createCloudflareWorker } from ${JSON.stringify(runtimeFile)};`,\n );\n\n const specifierOf = (job: SiteGraphJob): string =>\n job.source.kind === \"module\" ? job.source.path : job.source.stagedPath;\n // `outputScope` and `owner` are written only when given, so a site\n // without component scripts emits the entry it always did. The owner goes\n // with component jobs only: the Worker's log of a failing one names the\n // component file from it, since the bundled stack never does.\n const jobLiteral = (\n id: string,\n mode: SiteGraphJob[\"mode\"],\n outputScope: string | undefined,\n specifier: string,\n owner?: string,\n ): string =>\n // codeql[js/bad-code-sanitization] Emits a standalone JS module (never inline HTML), and JSON.stringify yields valid JS string literals.\n `${JSON.stringify(id)}: { id: ${JSON.stringify(id)}, mode: ${JSON.stringify(mode)}, ${outputScope ? `outputScope: ${JSON.stringify(outputScope)}, ` : \"\"}${owner ? `owner: ${JSON.stringify(owner)}, ` : \"\"}load: () => import(${JSON.stringify(specifier)}) }`;\n\n // Request-time components (prompt 157): the manifest and the component\n // scripts it names, emitted only when the manifest has a component the\n // renderer can expand (the runtime's own predicate, so the bundle never\n // carries a renderer the Worker would never call). A static site, or one\n // whose components are all unsupported, keeps its entry byte for byte.\n // The scripts are owned by their component file, so an unsupported import\n // is reported there.\n const components = manifestHasComponents(graph.components?.manifest)\n ? graph.components\n : undefined;\n let manifestLiteral: string | undefined;\n if (components) {\n const manifestScopes = new Map<string, string | undefined>();\n for (const entry of Object.values(components.manifest.components))\n for (const job of entry.jobs) manifestScopes.set(job.id, job.outputScope);\n const componentJobLiterals: string[] = [];\n for (const [id, job] of Object.entries(components.jobs)) {\n const specifier = specifierOf(job);\n addOwner(specifier, job.owner);\n componentJobLiterals.push(\n jobLiteral(\n id,\n job.mode,\n job.outputScope ?? manifestScopes.get(id),\n specifier,\n job.owner,\n ),\n );\n }\n manifestLiteral = JSON.stringify(components.manifest);\n lines.push(`const componentManifest = ${manifestLiteral};`);\n lines.push(\n `const componentJobs = { ${componentJobLiterals.join(\",\\n \")} };`,\n );\n }\n\n const pageLiterals: string[] = [];\n for (const [httpPath, page] of Object.entries(graph.pages).sort(([a], [b]) =>\n a < b ? -1 : a > b ? 1 : 0,\n )) {\n const jobLiterals: string[] = [];\n for (const [id, job] of Object.entries(page.jobs)) {\n const specifier = specifierOf(job);\n addOwner(specifier, job.owner);\n jobLiterals.push(jobLiteral(id, job.mode, job.outputScope, specifier));\n }\n pageLiterals.push(\n `${JSON.stringify(httpPath)}: { path: ${JSON.stringify(httpPath)}, is404: ${page.is404}, segments: ${JSON.stringify(page.segments)}, jobs: { ${jobLiterals.join(\", \")} } }`,\n );\n }\n\n const routeLiterals = graph.apiRoutes.map((r) => {\n addOwner(r.filePath, `API route ${r.path}`);\n // codeql[js/bad-code-sanitization] Emits a standalone JS module (never inline HTML), and JSON.stringify yields valid JS string literals.\n return `{ path: ${JSON.stringify(r.path)}, filePath: ${JSON.stringify(relative(projectRoot, r.filePath).replace(/\\\\/g, \"/\"))}, paramNames: ${JSON.stringify(r.paramNames)}, isDynamic: ${r.isDynamic}, load: () => import(${JSON.stringify(r.filePath)}) }`;\n });\n\n lines.push(`const graph = {`);\n lines.push(` base: ${JSON.stringify(graph.base)},`);\n lines.push(` scriptTimeoutMs: ${graph.scriptTimeoutMs},`);\n lines.push(` apiTimeoutMs: ${graph.apiTimeoutMs},`);\n lines.push(\n ` onServerScriptError: ${JSON.stringify(graph.onServerScriptError)},`,\n );\n lines.push(` release: ${JSON.stringify(graph.release)},`);\n if (graph.custom500 !== undefined)\n lines.push(` custom500: ${JSON.stringify(graph.custom500)},`);\n if (hasStaticNotFoundPage) lines.push(` staticNotFoundPage: true,`);\n lines.push(` pages: { ${pageLiterals.join(\",\\n \")} },`);\n lines.push(` apiRoutes: [ ${routeLiterals.join(\",\\n \")} ],`);\n if (components)\n lines.push(\n ` components: { manifest: componentManifest, jobs: componentJobs },`,\n );\n // Opt-in contentSecurityPolicy: the policy and the hashes of the pages\n // the Worker renders (static pages get _headers rules below, or, when the\n // Worker runs first, theirs too).\n const csp = graph.contentSecurityPolicy;\n if (csp) {\n const workerHashes: Record<string, unknown> = {};\n const paths = [\n ...Object.keys(graph.pages),\n ...(workerFirst ? csp.staticRoutes : []),\n ];\n for (const path of paths)\n if (csp.hashes[path]) workerHashes[path] = csp.hashes[path];\n lines.push(\n ` contentSecurityPolicy: { policy: ${JSON.stringify(csp.policy)}, hashes: ${JSON.stringify(workerHashes)} },`,\n );\n }\n if (workerFirst)\n lines.push(\n ` assetHeaders: { cspRoutes: ${JSON.stringify(csp ? csp.staticRoutes : [])} },`,\n );\n // A static 404.html's policy goes into an exact-path _headers rule, which\n // the asset layer matches on the request path: a miss for any other URL\n // is answered with the page but without its policy. Only a Worker in front\n // of every static file can send it there (runtime.ts, withAssetHeaders).\n const staticNotFoundRoutes = (csp?.staticRoutes ?? []).filter(\n (route) => route === \"/404\" || route.endsWith(\"/404\"),\n );\n if (csp && !workerFirst && staticNotFoundRoutes.length)\n context.log(\n `[bascik] --target cloudflare-${variant}: the Content-Security-Policy of the static 404 page ` +\n `(${staticNotFoundRoutes.map((route) => withBasePath(route, graph.base)).join(\", \")}) is sent at its own URL only. ` +\n `Cloudflare's _headers rules match the request path, not the response status, so a 404 for any other URL ` +\n `is served with the page but without its policy. ` +\n (variant === \"workers\"\n ? `Set \"assets\": { \"run_worker_first\": true } in your wrangler config to have the Worker send it on every 404.`\n : `Cloudflare Pages cannot run the Worker before static files: build with --target cloudflare-workers and ` +\n `\"assets\": { \"run_worker_first\": true } to send it on every 404.`),\n );\n // The build's security headers, dotfile rule, ANSI handling and render\n // limits (Collin 2026-10-29): the Worker has no config of its own, so it\n // applies what the build resolved. A graph without them is today's Worker.\n // codeql[js/bad-code-sanitization] Emits a standalone JS module (never inline HTML), and JSON.stringify yields valid JS literals.\n if (graph.responseSecurity !== undefined)\n lines.push(\n ` responseSecurity: ${JSON.stringify(graph.responseSecurity)},`,\n );\n if (graph.hideDotfiles !== undefined)\n lines.push(\n ` hideDotfiles: ${graph.hideDotfiles === false ? \"false\" : \"true\"},`,\n );\n if (graph.stripAnsi !== undefined)\n lines.push(` stripAnsi: ${graph.stripAnsi === false ? \"false\" : \"true\"},`);\n if (graph.renderLimits !== undefined)\n lines.push(` renderLimits: ${JSON.stringify(graph.renderLimits)},`);\n lines.push(`};`);\n lines.push(`export default createCloudflareWorker(graph);`);\n\n const invocationRoutes = buildInvocationRoutes({\n base: graph.base,\n dynamicPagePaths: Object.keys(graph.pages),\n hasApiRoutes: graph.apiRoutes.length > 0,\n hasStaticNotFoundPage,\n });\n\n // The Workers variant's config is generated before bundling: node:*\n // imports are checked against the compatibility date and flags it deploys\n // with (the authored ones when set), not only the adapter's pinned date.\n // Pages takes them from the Pages project's settings, which the adapter\n // cannot read: the pinned ones are what the docs tell you to set there.\n const pinned: CompatSettings = {\n compatibilityDate: CLOUDFLARE_COMPATIBILITY_DATE,\n compatibilityFlags: CLOUDFLARE_COMPATIBILITY_FLAGS,\n };\n let wrangler: Record<string, unknown> | undefined;\n let deploymentCompat: CompatSettings[] = [pinned];\n if (variant === \"workers\") {\n const { workerName, discoveredConfig } =\n workerConfig ?? (await resolveWorkerName(projectRoot));\n // The authored config is carried over whole: the adapter owns only the\n // keys it must (config.ts, generateWranglerConfig).\n const generated = generateWranglerConfig({\n authored: discoveredConfig,\n projectRoot,\n outDir,\n workerName,\n runWorkerFirst: workerFirst ? true : invocationRoutes.include,\n schemaPath: wranglerSchemaPath(projectRoot),\n compatibilityDate: CLOUDFLARE_COMPATIBILITY_DATE,\n compatibilityFlags: CLOUDFLARE_COMPATIBILITY_FLAGS,\n });\n wrangler = generated.config;\n for (const warning of generated.warnings) context.log(warning);\n deploymentCompat = deploymentCompatSettings(\n wrangler,\n discoveredConfig?.filename,\n pinned,\n );\n }\n\n const stagingDir = join(outDir, \".staging\");\n await mkdir(stagingDir, { recursive: true });\n const entryPath = join(stagingDir, \"worker-entry.mjs\");\n await writeFile(entryPath, lines.join(\"\\n\"), \"utf8\");\n\n // Bundle with esbuild owned by this adapter\n const unsupported: string[] = [];\n // esbuild rejects when a build has errors (a missing import, a syntax\n // error past the core's checks): its own message names only the staging\n // path, so the errors are formatted here with the authored owner.\n const bundlingFailed = (errors: Message[]): Error =>\n new Error(\n `[bascik] --target cloudflare-${variant}: bundling failed:\\n${errors\n .map((e) => {\n const at = e.location\n ? `${e.location.file}:${e.location.line}:${e.location.column}: `\n : \"\";\n const owned = e.location\n ? owners.get(resolve(projectRoot, e.location.file))\n : undefined;\n const from = owned?.size\n ? `\\n Reached from: ${[...owned].join(\", \")}`\n : \"\";\n return ` ${at}${e.text}${from}`;\n })\n .join(\"\\n\")}`,\n );\n let result: BuildResult;\n try {\n result = await esbuildBuild({\n entryPoints: [entryPath],\n bundle: true,\n write: false,\n format: \"esm\",\n platform: \"neutral\",\n target: \"es2022\",\n mainFields: [\"workerd\", \"worker\", \"browser\", \"module\", \"main\"],\n conditions: [\n \"workerd\",\n \"worker\",\n \"browser\",\n \"import\",\n \"module\",\n \"default\",\n ],\n logLevel: \"silent\",\n metafile: true,\n absWorkingDir: projectRoot,\n plugins: [\n {\n name: \"bascik-request-time-graph\",\n setup(buildInstance) {\n // A site whose manifest has nothing to render never renders a\n // component, so its Worker gets a stub in place of the component\n // host (prompt 157): no renderer and no `node:crypto` in its\n // bundle. (Not byte for byte the bundle before prompt 157:\n // runtime.ts itself changed.)\n if (!components) {\n buildInstance.onResolve(\n { filter: /^\\.\\/component-host\\.js$/ },\n (args) =>\n args.importer === runtimeFile\n ? { path: \"component-host\", namespace: NO_COMPONENTS }\n : undefined,\n );\n buildInstance.onLoad(\n { filter: /.*/, namespace: NO_COMPONENTS },\n () => ({ contents: COMPONENT_HOST_STUB, loader: \"js\" }),\n );\n }\n buildInstance.onResolve({ filter: /^@\\// }, (args) => ({\n errors: [\n {\n text:\n `\"${args.path}\" cannot be resolved from a module file. The @/ alias is available inside ` +\n `<script> blocks only; in ${relative(realRoot, args.importer).replace(/\\\\/g, \"/\")} use a relative import.`,\n },\n ],\n }));\n buildInstance.onResolve({ filter: /^file:/ }, (args) => {\n const resolved = fileURLToPath(args.path);\n for (const owner of owners.get(args.importer) ?? [])\n addOwner(resolved, owner);\n return { path: resolved };\n });\n buildInstance.onResolve({ filter: /^\\.\\.?\\// }, (args) => {\n const resolved = resolve(dirname(args.importer), args.path);\n for (const owner of owners.get(args.importer) ?? [])\n addOwner(resolved, owner);\n return undefined;\n });\n // Digits too: `node:http2` and `v8` are builtins, and esbuild's\n // own error for them would suggest `platform: \"node\"`.\n buildInstance.onResolve(\n { filter: /^(node:)?[a-z0-9_/]+$/ },\n (args) => {\n if (classifyNodeBuiltin(args.path) === \"not-builtin\")\n return undefined;\n // Every deployment of the config (the top level and each\n // env.<name>) must provide it.\n const missingIn = deploymentCompat.find(\n (compat) =>\n classifyNodeBuiltin(args.path, compat) !== \"provided\",\n );\n if (!missingIn)\n return {\n path: args.path.startsWith(\"node:\")\n ? args.path\n : `node:${args.path}`,\n external: true,\n };\n const ownerList = [...(owners.get(args.importer) ?? [])];\n unsupported.push(\n formatUnsupportedImport({\n specifier: args.path,\n importer: args.importer,\n projectRoot: realRoot,\n owners: ownerList,\n compat: missingIn,\n }),\n );\n return { path: args.path, external: true };\n },\n );\n },\n },\n ],\n });\n } catch (err) {\n // A failure to bundle (not a crash of esbuild itself) carries its errors.\n const errors = (err as { errors?: Message[] }).errors;\n if (!Array.isArray(errors) || !errors.length) throw err;\n // An unsupported builtin found on the way is reported too.\n throw new Error(\n [...new Set(unsupported), bundlingFailed(errors).message].join(\"\\n\"),\n );\n }\n\n if (unsupported.length) throw new Error([...new Set(unsupported)].join(\"\\n\"));\n if (result.errors.length) throw bundlingFailed(result.errors);\n const workerCode = result.outputFiles?.[0]?.text ?? \"\";\n\n // Copy public files. The asset layer maps a request URL straight to a file\n // under public/, and every URL of a non-root base site carries the prefix,\n // so assets are staged below it. Control files stay at the public root,\n // where the platform reads them.\n const assetRoot =\n graph.base && graph.base !== \"/\"\n ? join(publicDir, ...graph.base.split(\"/\").filter(Boolean))\n : publicDir;\n for (const rel of graph.publicFiles) {\n // Bascik's private build folder is never deployed, whatever the graph\n // lists and however a case-insensitive filesystem spells it.\n if (isBascikFolderName(rel.split(\"/\")[0] ?? \"\")) continue;\n const from = join(distDir, rel);\n const to = join(ASSET_CONTROL_FILES.has(rel) ? publicDir : assetRoot, rel);\n if (!resolve(to).startsWith(publicDir + sep)) continue;\n await mkdir(dirname(to), { recursive: true });\n await copyFile(from, to);\n }\n\n // Static files are served without the Worker: the security headers (one\n // site-wide rule) and each static page's CSP header go into\n // public/_headers, merged with the author's own rules (headers-file.ts).\n // When the Worker runs first it sends them, and the file stays the author's.\n {\n const headersPath = join(publicDir, \"_headers\");\n let authored = \"\";\n try {\n authored = await readFile(headersPath, \"utf8\");\n } catch {\n authored = \"\";\n }\n if (!workerFirst) {\n const text = buildHeadersFile({\n authored,\n security: graph.responseSecurity,\n base: graph.base,\n csp: csp\n ? {\n policy: csp.policy,\n hashes: csp.hashes,\n staticRoutes: csp.staticRoutes,\n }\n : undefined,\n variant,\n });\n if (text !== \"\" && text !== authored)\n await writeFile(headersPath, text, \"utf8\");\n }\n // _headers reaches static files only: say so where an author's rule\n // would change a security header on a page the Worker renders.\n for (const warning of workerPageHeaderOverrides({\n authored,\n security: graph.responseSecurity,\n base: graph.base,\n workerPages: Object.keys(graph.pages),\n }))\n context.log(warning);\n }\n\n let workerPath: string;\n if (variant === \"pages\") {\n workerPath = join(publicDir, \"_worker.js\");\n await writeFile(workerPath, workerCode, \"utf8\");\n await writeFile(\n join(publicDir, \"_routes.json\"),\n JSON.stringify(\n {\n version: 1,\n include: invocationRoutes.include,\n exclude: invocationRoutes.exclude,\n },\n null,\n 2,\n ),\n \"utf8\",\n );\n } else {\n workerPath = join(outDir, \"worker.js\");\n await writeFile(workerPath, workerCode, \"utf8\");\n await writeFile(\n join(outDir, \"wrangler.jsonc\"),\n `${JSON.stringify(wrangler, null, 2)}\\n`,\n \"utf8\",\n );\n }\n\n const bundleBytes = Buffer.byteLength(workerCode, \"utf8\");\n // What the Worker deploys with: the generated config's top level for\n // Workers (tools such as e2e/fixture/serve.ts read these notes), the\n // pinned settings Pages projects are told to use.\n const notes = [\n `compatibility date: ${deploymentCompat[0].compatibilityDate}`,\n `compatibility flags: ${deploymentCompat[0].compatibilityFlags.join(\", \")}`,\n workerFirst\n ? \"invocation routes: every request (run_worker_first: true); the Worker sends the static files' headers\"\n : `invocation routes: ${invocationRoutes.include.length} rules`,\n ];\n // Pages reads the compatibility date and flags from the project, not the\n // upload, and `wrangler pages deploy` has no option for them: without\n // nodejs_compat, every page routed to the Worker fails at request time.\n if (variant === \"pages\")\n notes.push(\n `Pages project settings: compatibility date ${CLOUDFLARE_COMPATIBILITY_DATE} or later and the ` +\n `${CLOUDFLARE_COMPATIBILITY_FLAGS.join(\", \")} flag, for Production and Preview. wrangler pages deploy ` +\n `does not set them: set them in the Pages project's settings in the Cloudflare dashboard before the first deploy.`,\n );\n // The manifest is part of the bundle; its share of bundleBytes is shown so\n // a growing component library is visible against the Worker size limit.\n if (components && manifestLiteral !== undefined) {\n const count = Object.keys(components.manifest.components).length;\n notes.push(\n `component manifest: ${Buffer.byteLength(manifestLiteral, \"utf8\")} bytes (${count} ${count === 1 ? \"component\" : \"components\"})`,\n );\n }\n return {\n workerPath,\n publicDir,\n bundleBytes,\n notes,\n // The runtime renders component tags in script output (prompt 157).\n components: true,\n };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"compat.js","sourceRoot":"","sources":["../src/compat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compat.js","sourceRoot":"","sources":["../src/compat.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @module compat\n *\n * Pinned Cloudflare runtime constants and node builtin classifications.\n */\n\nimport { relative } from \"node:path\";\n\nexport const CLOUDFLARE_COMPATIBILITY_DATE = \"2026-08-01\";\nexport const CLOUDFLARE_COMPATIBILITY_FLAGS = [\"nodejs_compat\"] as const;\nexport const PAGES_ROUTES_LIMIT = 100;\n\nexport const WORKERS_SUPPORTED_NODE_BUILTINS: ReadonlySet<string> = new Set([\n \"assert\",\n \"async_hooks\",\n \"buffer\",\n \"crypto\",\n \"diagnostics_channel\",\n \"dns\",\n \"events\",\n \"fs\",\n \"fs/promises\",\n \"http\",\n \"https\",\n \"net\",\n \"os\",\n \"path\",\n \"path/posix\",\n \"path/win32\",\n \"perf_hooks\",\n \"process\",\n \"querystring\",\n \"stream\",\n \"stream/consumers\",\n \"stream/promises\",\n \"stream/web\",\n \"string_decoder\",\n \"timers\",\n \"timers/promises\",\n \"tls\",\n \"url\",\n \"util\",\n \"util/types\",\n \"zlib\",\n]);\n\nconst ALL_NODE_BUILTINS: ReadonlySet<string> = new Set([\n ...WORKERS_SUPPORTED_NODE_BUILTINS,\n \"child_process\",\n \"cluster\",\n \"console\",\n \"constants\",\n \"dgram\",\n \"domain\",\n \"http2\",\n \"inspector\",\n \"module\",\n \"punycode\",\n \"readline\",\n \"readline/promises\",\n \"repl\",\n \"sys\",\n \"trace_events\",\n \"tty\",\n \"v8\",\n \"vm\",\n \"wasi\",\n \"worker_threads\",\n]);\n\nexport type NodeBuiltinClass = \"provided\" | \"unsupported\" | \"not-builtin\";\n\n/** The compatibility settings a Worker deploys with. */\nexport interface CompatSettings {\n compatibilityDate: string;\n compatibilityFlags: readonly string[];\n /** Where they come from, for messages (`wrangler.jsonc env.staging`). */\n source?: string;\n}\n\nconst PINNED: CompatSettings = {\n compatibilityDate: CLOUDFLARE_COMPATIBILITY_DATE,\n compatibilityFlags: CLOUDFLARE_COMPATIBILITY_FLAGS,\n};\n\ninterface DateGate {\n /** The first compatibility date that provides the module. */\n since: string;\n /** The flag that provides it before then. */\n enable: string;\n /** The flag that removes it at any date. */\n disable: string;\n}\n\nconst gate = (since: string, flag: string): DateGate => ({\n since,\n enable: `enable_${flag}`,\n disable: `disable_${flag}`,\n});\n\n/**\n * Supported modules that workerd (with `nodejs_compat`) provides only from a\n * compatibility date on: the dates and flags of `@cloudflare/unenv-preset`,\n * which Wrangler bundles with, checked against workerd itself\n * (authored-wrangler.test.ts loads each one at its date). An older date\n * fails at deploy or at the first request with `No such module`, so the\n * build classifies against the date the Worker deploys with.\n */\nexport const NODE_BUILTIN_DATE_GATES: Readonly<Record<string, DateGate>> = {\n http: gate(\"2025-08-15\", \"nodejs_http_modules\"),\n https: gate(\"2025-08-15\", \"nodejs_http_modules\"),\n fs: gate(\"2025-09-15\", \"nodejs_fs_module\"),\n \"fs/promises\": gate(\"2025-09-15\", \"nodejs_fs_module\"),\n os: gate(\"2025-09-15\", \"nodejs_os_module\"),\n perf_hooks: gate(\"2026-03-17\", \"nodejs_perf_hooks_module\"),\n};\n\nconst bareName = (specifier: string): string =>\n specifier.startsWith(\"node:\") ? specifier.slice(5) : specifier;\n\n/** Whether `compat` provides a supported module (its date gate, if any). */\nconst providedAt = (bare: string, compat: CompatSettings): boolean => {\n const dateGate = NODE_BUILTIN_DATE_GATES[bare];\n if (!dateGate) return true;\n if (compat.compatibilityFlags.includes(dateGate.disable)) return false;\n return (\n compat.compatibilityDate >= dateGate.since ||\n compat.compatibilityFlags.includes(dateGate.enable)\n );\n};\n\n/**\n * Whether the Workers runtime provides a `node:*` import (or its bare\n * spelling) under `compat`, the adapter's pinned settings by default.\n */\nexport const classifyNodeBuiltin = (\n specifier: string,\n compat: CompatSettings = PINNED,\n): NodeBuiltinClass => {\n const bare = bareName(specifier);\n if (!ALL_NODE_BUILTINS.has(bare)) return \"not-builtin\";\n return WORKERS_SUPPORTED_NODE_BUILTINS.has(bare) && providedAt(bare, compat)\n ? \"provided\"\n : \"unsupported\";\n};\n\nexport const formatUnsupportedImport = (input: {\n specifier: string;\n importer: string;\n projectRoot: string;\n owners: string[];\n /** The settings the Worker deploys with; the pinned ones by default. */\n compat?: CompatSettings;\n}): string => {\n const compat = input.compat ?? PINNED;\n const rel = relative(input.projectRoot, input.importer).replace(/\\\\/g, \"/\");\n const owners = input.owners.length\n ? `\\n Reached from: ${input.owners.join(\", \")}`\n : \"\";\n const bare = bareName(input.specifier);\n const dateGate = WORKERS_SUPPORTED_NODE_BUILTINS.has(bare)\n ? NODE_BUILTIN_DATE_GATES[bare]\n : undefined;\n const needs = dateGate\n ? compat.compatibilityFlags.includes(dateGate.disable)\n ? `\\n \"${input.specifier}\" is turned off by the ${dateGate.disable} flag. Remove the flag.`\n : `\\n \"${input.specifier}\" needs compatibility_date \"${dateGate.since}\" or later, or the ${dateGate.enable} flag.`\n : \"\";\n const supported = Array.from(WORKERS_SUPPORTED_NODE_BUILTINS)\n .filter((name) => providedAt(name, compat))\n .sort();\n return (\n `[bascik] --target: \"${input.specifier}\" (imported by ${rel}) is not available in the Cloudflare Workers runtime ` +\n `for compatibility date ${compat.compatibilityDate}${compat.source ? ` (${compat.source})` : \"\"}.${owners}${needs}\\n` +\n ` Supported node:* modules are: ${supported.join(\", \")}.\\n` +\n ` Replace it with a Web standard API or a pure-JS package.`\n );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"component-host.js","sourceRoot":"","sources":["../src/component-host.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,GAKX,MAAM,wBAAwB,CAAC;AAGhC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAElC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC;AAElD,MAAM,SAAS,GAAG,CAAC,KAAa,EAAU,EAAE,CAC1C,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAEnD;;;;;;;;GAQG;AACH,MAAM,UAAU,GAAG,IAAI,OAAO,EAAgD,CAAC;AAC/E,MAAM,WAAW,GAAG,CAClB,QAA2B,EACE,EAAE;IAC/B,IAAI,CAAC,QAAQ,CAAC,WAAW;QAAE,OAAO,QAAQ,CAAC;IAC3C,IAAI,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE,CAChC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAC5C,CAAC;QACF,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAaF,MAAM,YAAY,GAAG,IAAI,OAAO,EAA0B,CAAC;AAC3D,MAAM,cAAc,GAAG,CAAC,IAAe,EAAe,EAAE;IACtD,IAAI,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAuB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;YACpE,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ;gBAC3B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;YACvE,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,EAAG,CAAC;YACxB,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAG,CAAC,CAAC,IAAI;gBACjC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;aACd,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,GAAG;YACR,IAAI,EAAE;gBACJ,QAAQ;gBACR,gBAAgB,EAAE,QAAQ,CAAC,SAAS,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAClD;aACF;YACD,MAAM;SACP,CAAC;QACF,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,IAAe,EACf,KAAgB,EAChB,OAAgB,EAChB,GAAoB,EACpB,eAA8C,EAC9C,GAA8B,EACwB,EAAE;IACxD,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC;IAC5C,IAAI,CAAC,QAAQ,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/D,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CACjD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9C,OAAO;QACL,IAAI;QACJ,GAAG,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE;YAC7B,QAAQ;YACR,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC;YAC/B,OAAO,EAAE,SAAS;YAClB,kEAAkE;YAClE,iEAAiE;YACjE,QAAQ,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC;YACvC,SAAS,EAAE,KAAK,CAAC,eAAe;YAChC,eAAe;YACf,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK;YACzB,2DAA2D;YAC3D,MAAM,EAAE,KAAK,CAAC,YAAY;YAC1B,mEAAmE;YACnE,oEAAoE;YACpE,oEAAoE;YACpE,sCAAsC;YACtC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvB,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;gBACzD,IAAI,KAAK,CAAC,mBAAmB,KAAK,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;gBACpE,IAAI,KAAK,CAAC,mBAAmB,KAAK,MAAM;oBAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YACzD,CAAC;SACF,CAAC;KACH,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"component-host.js","sourceRoot":"","sources":["../src/component-host.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @module adapters/cloudflare-component-host\n *\n * The Worker's render host for request-time components (prompt 157, D4):\n * what runtime.ts needs to render component tags returned by server and\n * stream scripts, kept in its own module so a site without components does\n * not carry it. build.ts bundles this file only when the graph's manifest\n * has a component the renderer can expand; otherwise it substitutes a stub\n * with the same exports (nothing to render), so the\n * Worker of a static or component-free site carries no renderer and no\n * `node:crypto`.\n *\n * Uses `node:crypto`, which `nodejs_compat` provides: the renderer's ids and\n * the build's scoped names are both sha256-based, and must come out exactly\n * as `bascik --server` computes them for the two hosts to send the same\n * bytes.\n */\nimport { createHash } from \"node:crypto\";\nimport {\n createNameHasher,\n manifestHasComponents,\n renderFailureMessage,\n requestRoutePath,\n wrapRunner,\n type ExecutionPlan,\n type ExecutionSegment,\n type RenderHost,\n type ScriptJobRunner,\n} from \"@bascik/bascik/runtime\";\nimport type { ComponentManifest, GraphPage, SiteGraph } from \"./runtime.js\";\n\nconst encoder = new TextEncoder();\n\nconst identity = (input: string): string => input;\n\nconst sha256Hex = (input: string): string =>\n createHash(\"sha256\").update(input).digest(\"hex\");\n\n/**\n * The scoped-name hash the manifest was built with: the build's\n * attribute-name hash under `minify.identifiers` (the portable algorithm,\n * from this isolate's sha256), identity otherwise. The wrong one would\n * render class names the emitted stylesheet does not define. One hasher per\n * manifest for the isolate's life, with the bounded memo Node's host uses:\n * the names a template replays embed the request instance id, so an\n * unbounded memo would grow with the requests an isolate serves.\n */\nconst nameHashes = new WeakMap<ComponentManifest, (input: string) => string>();\nconst hashNameFor = (\n manifest: ComponentManifest,\n): ((input: string) => string) => {\n if (!manifest.identifiers) return identity;\n let hash = nameHashes.get(manifest);\n if (!hash) {\n hash = createNameHasher((input) =>\n createHash(\"sha256\").update(input).digest(),\n );\n nameHashes.set(manifest, hash);\n }\n return hash;\n};\n\n/**\n * The plan the renderer sees, with script segments keyed by their index in\n * the page as on Node (`server-scripts.ts` addresses jobs that way). The\n * renderer hashes the job key into every request-time instance id, so the\n * same key is what makes a Worker's bytes equal to `bascik --server`'s. One\n * per page: the renderer caches the page's fragment contexts per plan.\n */\ninterface IndexedPlan {\n plan: ExecutionPlan;\n jobIds: string[];\n}\nconst indexedPlans = new WeakMap<GraphPage, IndexedPlan>();\nconst indexedPlanFor = (page: GraphPage): IndexedPlan => {\n let indexed = indexedPlans.get(page);\n if (!indexed) {\n const jobIds: string[] = [];\n const segments: ExecutionSegment[] = page.segments.map((segment, i) => {\n if (segment.kind === \"static\")\n return { kind: \"static\", bytes: encoder.encode(segment.text ?? \"\") };\n jobIds[i] = segment.id!;\n return {\n kind: \"script\",\n mode: page.jobs[segment.id!].mode,\n id: String(i),\n };\n });\n indexed = {\n plan: {\n segments,\n firstStreamIndex: segments.findIndex(\n (s) => s.kind === \"script\" && s.mode === \"stream\",\n ),\n },\n jobIds,\n };\n indexedPlans.set(page, indexed);\n }\n return indexed;\n};\n\n/**\n * The page's plan and a runner that renders component tags in job output,\n * with this Worker as the render host: names and ids from `node:crypto`, the\n * graph's script deadline, and `runComponentJob` (the graph's component\n * scripts, run like page jobs with the parent's remaining budget).\n * Production logs nothing per request, so the host has no `warnOnce`, and\n * `components.external` (which only silences that log) is not needed.\n * Null when the manifest has nothing to render: the caller keeps its own\n * plan and runner.\n */\nexport const componentExecution = (\n page: GraphPage,\n graph: SiteGraph,\n request: Request,\n run: ScriptJobRunner,\n runComponentJob: RenderHost[\"runComponentJob\"],\n log: (message: string) => void,\n): { plan: ExecutionPlan; run: ScriptJobRunner } | null => {\n const manifest = graph.components?.manifest;\n if (!manifest || !manifestHasComponents(manifest)) return null;\n const { plan, jobIds } = indexedPlanFor(page);\n const byIndex: ScriptJobRunner = (index, signal) =>\n run(jobIds[Number(index)] ?? index, signal);\n return {\n plan,\n run: wrapRunner(byIndex, plan, {\n manifest,\n hashName: hashNameFor(manifest),\n hashHex: sha256Hex,\n // Decoded as on Node: workerd may hand over a normalized pathname\n // where Node sees the client's spelling, and the ids must agree.\n httpPath: requestRoutePath(request.url),\n timeoutMs: graph.scriptTimeoutMs,\n runComponentJob,\n externalTags: () => false,\n // The build's scripts.renderLimits (absent: the defaults).\n limits: graph.renderLimits,\n // D4.6, as on Node and as runGraphJob treats a failing script: the\n // located message fails the job under \"error\" (a 500 before commit,\n // the stream error log after), is logged under \"warn\", and the slot\n // is empty under \"warn\" and \"ignore\".\n onRenderError: (error) => {\n const message = renderFailureMessage(error, request.url);\n if (graph.onServerScriptError === \"error\") throw new Error(message);\n if (graph.onServerScriptError === \"warn\") log(message);\n },\n }),\n };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @module config\n *\n * Structured configuration discovery and parsing for Cloudflare Wrangler configuration files.\n * Supports jsonc (comments and trailing commas), json, and toml with safe error reporting.\n */\n\nimport { isAbsolute, join, relative, resolve } from \"node:path\";\nimport { readFile } from \"node:fs/promises\";\nimport {\n parse as parseJsoncRaw,\n printParseErrorCode,\n type ParseError,\n} from \"jsonc-parser\";\nimport { parse as parseTomlRaw, TomlError } from \"smol-toml\";\nimport {\n CLOUDFLARE_COMPATIBILITY_DATE,\n CLOUDFLARE_COMPATIBILITY_FLAGS,\n type CompatSettings,\n} from \"./compat.js\";\n\n/**\n * Wrangler configuration file discovery order according to Cloudflare Wrangler documentation:\n * 1. wrangler.jsonc\n * 2. wrangler.json\n * 3. wrangler.toml\n */\nexport const WRANGLER_CONFIG_FILES = [\n \"wrangler.jsonc\",\n \"wrangler.json\",\n \"wrangler.toml\",\n] as const;\n\nexport type WranglerConfigFile = (typeof WRANGLER_CONFIG_FILES)[number];\n\nexport interface ParsedWranglerConfig {\n name?: string;\n compatibility_date?: string;\n compatibility_flags?: string[];\n [key: string]: unknown;\n}\n\nexport interface DiscoveredConfig {\n filename: WranglerConfigFile;\n filePath: string;\n values: ParsedWranglerConfig;\n}\n\n/**\n * Parses JSONC (JSON with comments and trailing commas) using the maintained\n * jsonc-parser library (Microsoft, used by VS Code). The parser is fault\n * tolerant and returns partial data on errors, so the errors array is always\n * checked and any parse error rejects the input.\n */\nexport function parseJsonc(\n text: string,\n filename = \"wrangler.jsonc\",\n): ParsedWranglerConfig {\n const errors: ParseError[] = [];\n const parsed = parseJsoncRaw(text, errors, { allowTrailingComma: true });\n\n if (errors.length > 0) {\n const first = errors[0];\n const { line, character } = lineAndCharacterAt(text, first.offset);\n const reason = printParseErrorCode(first.error);\n throw new Error(\n `[bascik] Failed to parse ${filename} at line ${line}, column ${character}: ${reason}.`,\n );\n }\n\n if (typeof parsed !== \"object\" || parsed === null || Array.isArray(parsed)) {\n throw new Error(\n `[bascik] Failed to parse ${filename}: expected a top-level JSON object.`,\n );\n }\n\n return parsed as ParsedWranglerConfig;\n}\n\n/**\n * Computes a 1-based line and column for a character offset within text.\n */\nfunction lineAndCharacterAt(\n text: string,\n offset: number,\n): { line: number; character: number } {\n let line = 1;\n let character = 1;\n const end = Math.min(offset, text.length);\n for (let i = 0; i < end; i++) {\n if (text[i] === \"\\n\") {\n line++;\n character = 1;\n } else {\n character++;\n }\n }\n return { line, character };\n}\n\n/**\n * Parses TOML syntax using the maintained smol-toml library (BSD-3-Clause).\n * The parser is strict: duplicate keys, duplicate tables, malformed values,\n * and unclosed constructs all throw. Error messages are built from the first\n * line of the parser message only, which never contains source excerpts or\n * raw configuration values.\n */\nexport function parseToml(\n text: string,\n filename = \"wrangler.toml\",\n): ParsedWranglerConfig {\n try {\n const parsed = parseTomlRaw(text);\n if (\n typeof parsed !== \"object\" ||\n parsed === null ||\n Array.isArray(parsed)\n ) {\n throw new Error(\n `[bascik] Failed to parse ${filename}: expected a top-level TOML table.`,\n );\n }\n return parsed as ParsedWranglerConfig;\n } catch (err) {\n if (err instanceof TomlError) {\n // TomlError.message includes a codeblock with source excerpts and raw\n // values. Only the first line is safe to surface.\n const reason = err.message.split(\"\\n\")[0];\n throw new Error(\n `[bascik] Failed to parse ${filename} at line ${err.line}: ${reason}.`,\n );\n }\n const msg = err instanceof Error ? err.message : String(err);\n throw new Error(`[bascik] Failed to parse ${filename}: ${msg}`);\n }\n}\n\n/**\n * Parses package.json as strict JSON (no comments, no trailing commas, as\n * npm reads it). An error is located by line and column and, like the\n * Wrangler parsers, never quotes the file: `JSON.parse`'s own message\n * includes a source excerpt. A value that is not an object has no name.\n */\nfunction parsePackageJson(text: string): { name?: unknown } | null {\n const errors: ParseError[] = [];\n const parsed: unknown = parseJsoncRaw(text, errors, {\n allowTrailingComma: false,\n disallowComments: true,\n });\n if (errors.length > 0) {\n const first = errors[0];\n const { line, character } = lineAndCharacterAt(text, first.offset);\n throw new Error(\n `[bascik] Failed to parse package.json at line ${line}, column ${character}: ${printParseErrorCode(first.error)}.`,\n );\n }\n return typeof parsed === \"object\" && parsed !== null && !Array.isArray(parsed)\n ? (parsed as { name?: unknown })\n : null;\n}\n\n/**\n * Discovers and parses the highest precedence Wrangler configuration file in the project root.\n * Returns null if no Wrangler configuration file exists.\n * Throws an actionable error if the discovered configuration file is malformed.\n */\nexport async function discoverWranglerConfig(\n projectRoot: string,\n): Promise<DiscoveredConfig | null> {\n for (const filename of WRANGLER_CONFIG_FILES) {\n const filePath = join(projectRoot, filename);\n let raw: string;\n try {\n raw = await readFile(filePath, \"utf8\");\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code === \"ENOENT\") {\n continue;\n }\n // The bare fs message (EISDIR, EACCES) names no file.\n const msg = err instanceof Error ? err.message : String(err);\n throw new Error(`[bascik] Failed to read ${filename}: ${msg}`);\n }\n\n // The file exists: parse it according to its extension\n if (filename.endsWith(\".toml\")) {\n const values = parseToml(raw, filename);\n return { filename, filePath, values };\n } else {\n const values = parseJsonc(raw, filename);\n return { filename, filePath, values };\n }\n }\n\n return null;\n}\n\n/**\n * Resolves the Worker name from candidate sources in strict priority order:\n * 1. Environment variables (CLOUDFLARE_WORKER_NAME, WORKER_NAME, CF_PAGES_PROJECT_NAME)\n * 2. Authored Wrangler config (wrangler.jsonc, wrangler.json, wrangler.toml in discovery order)\n * 3. Root package.json \"name\" field (with @scope/ stripped)\n * 4. Fallback default: \"bascik-site\"\n */\nexport async function resolveWorkerName(\n projectRoot: string,\n discoveredConfig?: DiscoveredConfig | null,\n): Promise<{\n workerName: string;\n source: \"env\" | \"config\" | \"package\" | \"default\";\n discoveredConfig?: DiscoveredConfig | null;\n}> {\n const envName =\n process.env.CLOUDFLARE_WORKER_NAME ||\n process.env.WORKER_NAME ||\n process.env.CF_PAGES_PROJECT_NAME;\n\n if (envName && envName.trim()) {\n return { workerName: envName.trim(), source: \"env\", discoveredConfig };\n }\n\n const discovered =\n discoveredConfig !== undefined\n ? discoveredConfig\n : await discoverWranglerConfig(projectRoot);\n if (\n discovered &&\n discovered.values.name &&\n typeof discovered.values.name === \"string\" &&\n discovered.values.name.trim()\n ) {\n return {\n workerName: discovered.values.name.trim(),\n source: \"config\",\n discoveredConfig: discovered,\n };\n }\n\n let pkgJsonRaw: string | undefined;\n try {\n pkgJsonRaw = await readFile(join(projectRoot, \"package.json\"), \"utf8\");\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code !== \"ENOENT\") {\n const msg = err instanceof Error ? err.message : String(err);\n throw new Error(`[bascik] Failed to read package.json: ${msg}`);\n }\n }\n if (pkgJsonRaw !== undefined) {\n const pkgJson = parsePackageJson(pkgJsonRaw);\n if (\n pkgJson?.name &&\n typeof pkgJson.name === \"string\" &&\n pkgJson.name.trim()\n ) {\n const name = pkgJson.name.replace(/^@[^/]+\\//, \"\").trim();\n if (name) {\n return {\n workerName: name,\n source: \"package\",\n discoveredConfig: discovered,\n };\n }\n }\n }\n\n return {\n workerName: \"bascik-site\",\n source: \"default\",\n discoveredConfig: discovered,\n };\n}\n\n/** The Worker entry the adapter generates beside the generated config. */\nexport const GENERATED_WORKER_MAIN = \"worker.js\";\n/** The binding the generated Worker serves static files through (runtime.ts). */\nexport const ASSETS_BINDING = \"ASSETS\";\n\nexport interface GenerateWranglerConfigInput {\n /** The authored config discovered in the project root, if any. */\n authored: DiscoveredConfig | null | undefined;\n projectRoot: string;\n /** Where the generated wrangler.jsonc is written (dist/.bascik/<target>/). */\n outDir: string;\n workerName: string;\n /** `true`, or the computed invocation routes. */\n runWorkerFirst: true | string[];\n /** The installed wrangler/config-schema.json, when it resolves. */\n schemaPath?: string;\n compatibilityDate?: string;\n compatibilityFlags?: readonly string[];\n}\n\ntype Json = Record<string, unknown>;\n\nconst isObject = (value: unknown): value is Json =>\n typeof value === \"object\" && value !== null && !Array.isArray(value);\n\nconst toPosix = (path: string): string => path.replace(/\\\\/g, \"/\");\n\n/**\n * Generates the wrangler.jsonc written beside worker.js. The adapter owns\n * `name` (resolved by resolveWorkerName), `main`, `assets.directory`,\n * `assets.binding` and `assets.run_worker_first` (computed from the routes,\n * unioned with an authored list); `compatibility_flags` are the union of the\n * authored flags and the adapter's. Every other authored key, top level or\n * nested, is carried over verbatim, except that path-valued keys Wrangler\n * reads relative to the config file are rebased from the project root to the\n * output directory, so they name the same files. An authored key the adapter\n * replaces is reported as a warning naming the file and key; an authored\n * `assets.binding` other than `ASSETS` is an error, since the generated\n * Worker reads `env.ASSETS`. Unknown keys are carried over without checks:\n * Wrangler validates its own config.\n */\nexport function generateWranglerConfig(input: GenerateWranglerConfigInput): {\n config: Json;\n warnings: string[];\n} {\n const {\n authored,\n projectRoot,\n outDir,\n workerName,\n runWorkerFirst,\n schemaPath,\n compatibilityDate = CLOUDFLARE_COMPATIBILITY_DATE,\n compatibilityFlags = CLOUDFLARE_COMPATIBILITY_FLAGS,\n } = input;\n const filename = authored?.filename ?? \"wrangler.jsonc\";\n const values: Json = authored?.values ?? {};\n const warnings: string[] = [];\n const at = (key: string) => `[bascik] ${filename}: \"${key}\"`;\n\n const rebase = (value: unknown): unknown => {\n if (typeof value !== \"string\" || value === \"\") return value;\n if (isAbsolute(value) || /^[a-z][a-z0-9+.-]*:/i.test(value)) return value;\n return toPosix(relative(outDir, resolve(projectRoot, value))) || \".\";\n };\n const rebaseList = (value: unknown): unknown =>\n Array.isArray(value) ? value.map(rebase) : rebase(value);\n const rebaseMap = (value: unknown): unknown =>\n isObject(value)\n ? Object.fromEntries(\n Object.entries(value).map(([k, v]) => [k, rebase(v)]),\n )\n : value;\n const rebaseItems = (value: unknown, fn: (item: Json) => Json): unknown =>\n Array.isArray(value)\n ? value.map((item) => (isObject(item) ? fn(item) : item))\n : value;\n const rebaseD1 = (item: Json): Json => {\n const out = { ...item };\n if (\"migrations_dir\" in out)\n out.migrations_dir = rebase(out.migrations_dir);\n // Wrangler defaults migrations_dir to ./migrations beside the config file;\n // the generated config sits elsewhere, so the authored folder is named.\n // A migrations_pattern without migrations_dir is left for Wrangler to\n // report, as it would from the project root.\n else if (!(\"migrations_pattern\" in out))\n out.migrations_dir = rebase(\"migrations\");\n if (\"migrations_pattern\" in out)\n out.migrations_pattern = rebase(out.migrations_pattern);\n return out;\n };\n const rebaseContainer = (item: Json): Json => {\n const out = { ...item };\n // `image` is a Dockerfile path or a registry reference: only a path\n // spelled as one is rebased.\n if (\n typeof out.image === \"string\" &&\n (/^\\.\\.?[\\\\/]/.test(out.image) || /dockerfile/i.test(out.image)) &&\n !/^[a-z][a-z0-9+.-]*:/i.test(out.image)\n )\n out.image = rebase(out.image);\n if (\"image_build_context\" in out)\n out.image_build_context = rebase(out.image_build_context);\n // Named images of a Durable Object-managed container.\n if (isObject(out.images))\n out.images = Object.fromEntries(\n Object.entries(out.images).map(([imageName, image]) => {\n if (!isObject(image)) return [imageName, image];\n const rebased = { ...image };\n if (\"dockerfile\" in rebased)\n rebased.dockerfile = rebase(rebased.dockerfile);\n if (\"build_context\" in rebased)\n rebased.build_context = rebase(rebased.build_context);\n return [imageName, rebased];\n }),\n );\n return out;\n };\n\n /** The assets block the adapter writes, merged with an authored one. */\n const mergeAssets = (assets: unknown, keyPrefix: string): Json => {\n const authoredAssets = isObject(assets) ? assets : {};\n if (assets !== undefined && !isObject(assets))\n warnings.push(\n `${at(`${keyPrefix}assets`)} is not an object and is ignored: the adapter writes its own assets block.`,\n );\n const {\n directory,\n binding,\n run_worker_first: authoredFirst,\n not_found_handling,\n ...rest\n } = authoredAssets;\n if (directory !== undefined)\n warnings.push(\n `${at(`${keyPrefix}assets.directory`)} is ignored: the adapter stages the site's files in ./public beside the generated worker.js. Remove the key.`,\n );\n if (binding !== undefined && binding !== ASSETS_BINDING)\n throw new Error(\n `${at(`${keyPrefix}assets.binding`)} must be \"${ASSETS_BINDING}\" or left out: the generated Worker serves static files through env.${ASSETS_BINDING}.`,\n );\n // Wrangler takes a boolean or a list of route patterns. Anything else\n // (a string \"true\", a number in the list) never reaches Wrangler: say\n // so, since the Worker would silently run first for fewer paths.\n const strayFirst =\n authoredFirst === undefined || typeof authoredFirst === \"boolean\"\n ? []\n : Array.isArray(authoredFirst)\n ? authoredFirst.filter((p) => typeof p !== \"string\")\n : [authoredFirst];\n if (strayFirst.length)\n warnings.push(\n `${at(`${keyPrefix}assets.run_worker_first`)} must be true or a list of route patterns: ${strayFirst.map((v) => JSON.stringify(v)).join(\", \")} is ignored, and the Worker runs first only for the routes the build computes${Array.isArray(authoredFirst) ? \" and your other patterns\" : \"\"}.`,\n );\n let first: true | string[];\n // The top-level `true` is resolved by build.ts (it also decides who\n // sends the static files' headers); an env section's own `true` is\n // kept for that environment, as Wrangler would read it.\n if (runWorkerFirst === true || authoredFirst === true) first = true;\n else {\n const extra = Array.isArray(authoredFirst)\n ? authoredFirst.filter((p): p is string => typeof p === \"string\")\n : [];\n first = [...new Set([...runWorkerFirst, ...extra])];\n }\n return {\n directory: \"./public\",\n binding: ASSETS_BINDING,\n ...rest,\n not_found_handling: not_found_handling ?? \"404-page\",\n run_worker_first: first,\n };\n };\n\n const unionFlags = (flags: unknown): string[] => [\n ...new Set([\n ...(Array.isArray(flags)\n ? flags.filter(\n (f): f is string => typeof f === \"string\" && f.trim().length > 0,\n )\n : []),\n ...compatibilityFlags,\n ]),\n ];\n\n /** Rebases the path-valued keys of a top-level or env section. */\n const rebaseSection = (section: Json): Json => {\n const out = { ...section };\n if (\"tsconfig\" in out) out.tsconfig = rebase(out.tsconfig);\n if (\"base_dir\" in out) out.base_dir = rebase(out.base_dir);\n if (isObject(out.build)) {\n const build = { ...out.build };\n // Wrangler runs build.command in the config's folder by default: the\n // generated config sits elsewhere, so the authored folder is named.\n if (\"cwd\" in build) build.cwd = rebase(build.cwd);\n else if (build.command !== undefined) build.cwd = rebase(\".\");\n if (\"watch_dir\" in build) build.watch_dir = rebaseList(build.watch_dir);\n out.build = build;\n }\n if (\"d1_databases\" in out)\n out.d1_databases = rebaseItems(out.d1_databases, rebaseD1);\n if (\"containers\" in out)\n out.containers = rebaseItems(out.containers, rebaseContainer);\n if (isObject(out.site) && \"bucket\" in out.site)\n out.site = { ...out.site, bucket: rebase(out.site.bucket) };\n for (const key of [\"wasm_modules\", \"text_blobs\", \"data_blobs\"])\n if (key in out) out[key] = rebaseMap(out[key]);\n if (isObject(out.previews)) out.previews = rebaseSection(out.previews);\n return out;\n };\n\n const {\n $schema: authoredSchema,\n name: _name,\n main,\n compatibility_date,\n compatibility_flags,\n assets,\n env,\n ...rest\n } = values;\n if (main !== undefined)\n warnings.push(\n `${at(\"main\")} is ignored: the adapter generates the Worker entry (${GENERATED_WORKER_MAIN}) from your pages and API routes. Remove the key.`,\n );\n const checkDate = (value: unknown, key: string) => {\n if (value !== undefined && !isCompatibilityDate(value))\n warnings.push(\n `${at(key)} must be a date like \"${compatibilityDate}\", but is ${JSON.stringify(value)}: Wrangler will reject it, and the build checks node:* imports against ${compatibilityDate} instead.`,\n );\n };\n checkDate(compatibility_date, \"compatibility_date\");\n\n let schema: unknown;\n if (typeof authoredSchema === \"string\") schema = rebase(authoredSchema);\n else if (authoredSchema !== undefined) schema = authoredSchema;\n else if (schemaPath)\n schema = toPosix(relative(outDir, schemaPath)) || undefined;\n\n let envOut: unknown = env;\n if (isObject(env)) {\n envOut = Object.fromEntries(\n Object.entries(env).map(([envName, section]) => {\n if (!isObject(section)) return [envName, section];\n const prefix = `env.${envName}.`;\n const { main: envMain, ...envRest } = section;\n if (envMain !== undefined)\n warnings.push(\n `${at(`${prefix}main`)} is ignored: every environment runs the generated ${GENERATED_WORKER_MAIN}. Remove the key.`,\n );\n checkDate(envRest.compatibility_date, `${prefix}compatibility_date`);\n const out = rebaseSection(envRest);\n if (\"compatibility_flags\" in out)\n out.compatibility_flags = unionFlags(out.compatibility_flags);\n if (\"assets\" in out) out.assets = mergeAssets(out.assets, prefix);\n return [envName, out];\n }),\n );\n }\n\n const config: Json = {\n ...(schema !== undefined ? { $schema: schema } : {}),\n name: workerName,\n main: GENERATED_WORKER_MAIN,\n compatibility_date: compatibility_date ?? compatibilityDate,\n compatibility_flags: unionFlags(compatibility_flags),\n ...rebaseSection(rest),\n ...(env !== undefined ? { env: envOut } : {}),\n assets: mergeAssets(assets, \"\"),\n };\n return { config, warnings };\n}\n\n/** A compatibility date as Wrangler takes it: `YYYY-MM-DD`. */\nconst isCompatibilityDate = (value: unknown): value is string =>\n typeof value === \"string\" && /^\\d{4}-\\d{2}-\\d{2}$/.test(value);\n\n/**\n * The compatibility settings each deployment of a generated config runs\n * under: the top level, then every `env.<name>` section (its own date and\n * flags, or the top level's, which Wrangler gives a section without them).\n * A malformed date (reported by generateWranglerConfig) counts as `fallback`.\n */\nexport const deploymentCompatSettings = (\n config: Json,\n filename: string | undefined,\n fallback: CompatSettings,\n): CompatSettings[] => {\n const flagsOf = (value: unknown): string[] | undefined =>\n Array.isArray(value)\n ? value.filter((f): f is string => typeof f === \"string\")\n : undefined;\n const top: CompatSettings = {\n compatibilityDate: isCompatibilityDate(config.compatibility_date)\n ? config.compatibility_date\n : fallback.compatibilityDate,\n compatibilityFlags:\n flagsOf(config.compatibility_flags) ?? fallback.compatibilityFlags,\n ...(filename ? { source: filename } : {}),\n };\n const settings = [top];\n if (isObject(config.env))\n for (const [envName, section] of Object.entries(config.env)) {\n if (!isObject(section)) continue;\n settings.push({\n compatibilityDate: isCompatibilityDate(section.compatibility_date)\n ? section.compatibility_date\n : top.compatibilityDate,\n compatibilityFlags:\n flagsOf(section.compatibility_flags) ?? top.compatibilityFlags,\n source: `${filename ?? \"wrangler.jsonc\"} env.${envName}`,\n });\n }\n return settings;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"headers-file.js","sourceRoot":"","sources":["../src/headers-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"headers-file.js","sourceRoot":"","sources":["../src/headers-file.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The generated public/_headers on Cloudflare.\n *\n * Static files are served by the asset layer without the Worker, so the\n * headers the Worker sends on what it answers have to be written here for\n * them: the security headers (`security.headers`, `security.hsts`) as one\n * site-wide `/*` rule, and the opt-in `contentSecurityPolicy` as one\n * exact-path rule per static page (from the same pkg function the Node\n * servers and the Worker use, with the build's hashes). Responses the Worker\n * makes itself never get `_headers` rules, and an asset it forwards gets them\n * once, from the asset layer, so no header is sent twice.\n *\n * How Cloudflare reads the file (workers-shared, which miniflare runs): rules\n * are a record keyed by path, so a second rule with a path the author used\n * replaces the author's, at the place of the first; the rules that match a\n * URL apply in file order; a header two of them set is joined with a comma;\n * `! Name` in a rule removes what earlier rules set, before that rule's own\n * values; a line over 2000 characters is skipped; and it stops reading at the\n * 101st path line.\n *\n * So, whenever Bascik writes anything into the file:\n * 1. the site-wide rule comes first (Bascik's, or the author's own `/*`\n * moved to the top with Bascik's headers it does not set added);\n * 2. the static pages' CSP rules come next, never as a second rule for a\n * path the author has (the line goes into the author's rule), and not at\n * all for a page an author rule already sets or removes the CSP header\n * on: the author's value wins there;\n * 3. the author's other rules follow, and each one that sets a security\n * header (any Bascik can write, whatever the toggles say) or a header\n * the author's `/*` sets gets a `! Name` line first: a later, more\n * specific rule replaces the value instead of being joined to it, the\n * same way under every security setting.\n * When Bascik writes nothing (headers, HSTS and CSP all off), the author's\n * file ships as written.\n */\nimport {\n contentSecurityPolicyHeader,\n DEFAULT_RESPONSE_SECURITY,\n SECURITY_HEADERS,\n type ContentSecurityPolicyConfig,\n type CspRouteHashes,\n type ResponseSecurity,\n} from \"@bascik/bascik/runtime\";\n\n/** Cloudflare reads at most this many rules (path lines) from _headers. */\nexport const CLOUDFLARE_HEADERS_RULE_LIMIT = 100;\n\n/** Cloudflare skips any _headers line longer than this, with no error. */\nexport const CLOUDFLARE_HEADERS_LINE_LIMIT = 2000;\n\nconst SITE_WIDE_PATH = \"/*\";\n\n/** How Cloudflare tells a path line from a header line (its own pattern). */\nconst PATH_LINE = /^([^\\s]+:\\/\\/|\\/)/;\nconst UNSET_PREFIX = \"! \";\n\nconst CSP_NAMES = [\n \"content-security-policy\",\n \"content-security-policy-report-only\",\n];\n\n/**\n * Every header Bascik can write here, whatever `security` turns on or off:\n * an author's rule that sets one replaces the earlier value under every\n * setting, so a toggle never changes how the author's own rules combine.\n */\nconst MANAGED_HEADERS: ReadonlySet<string> = new Set([\n ...Object.keys(SECURITY_HEADERS),\n \"strict-transport-security\",\n ...CSP_NAMES,\n]);\n\n/** `x-frame-options` -> `X-Frame-Options`. Cloudflare matches names in any case. */\nconst headerName = (lower: string): string =>\n lower.replace(\n /(^|-)([a-z])/g,\n (_, dash: string, c: string) => `${dash}${c.toUpperCase()}`,\n );\n\ninterface Rule {\n path: string;\n /** Index of the path line in the authored lines. */\n line: number;\n /** Index just past the rule's last line. */\n end: number;\n /** Header names the rule sets, lowercased, in the order written. */\n sets: Set<string>;\n /** Header names the rule removes with `! Name`, lowercased. */\n unsets: Set<string>;\n}\n\n/** The rules of a _headers text, as Cloudflare reads them (indentation is not significant). */\nconst parseRules = (lines: string[]): Rule[] => {\n const rules: Rule[] = [];\n let rule: Rule | undefined;\n lines.forEach((raw, index) => {\n const line = raw.trim();\n if (line === \"\" || line.startsWith(\"#\")) return;\n if (PATH_LINE.test(line)) {\n if (rule) rule.end = index;\n rule = {\n path: line,\n line: index,\n end: lines.length,\n sets: new Set(),\n unsets: new Set(),\n };\n rules.push(rule);\n return;\n }\n if (!rule) return;\n if (line.startsWith(UNSET_PREFIX))\n rule.unsets.add(line.slice(UNSET_PREFIX.length).trim().toLowerCase());\n else if (line.includes(\":\"))\n rule.sets.add(line.slice(0, line.indexOf(\":\")).trim().toLowerCase());\n });\n return rules;\n};\n\nconst linesOf = (text: string): string[] =>\n text === \"\" ? [] : text.replace(/\\s*$/, \"\").split(/\\r?\\n/);\n\n/**\n * How many rules Cloudflare reads from a _headers text: one per path line\n * that has a header or a `! Name` under it. A path written twice counts\n * twice, because Cloudflare stops at a count of path lines, not of paths.\n */\nexport const countHeadersRules = (text: string): number =>\n parseRules(linesOf(text)).filter((rule) => rule.sets.size + rule.unsets.size)\n .length;\n\n/** Cloudflare's own pattern match (workers-shared generateRuleRegExp), for path rules. */\nconst ruleMatches = (rulePath: string, path: string): boolean => {\n if (!rulePath.startsWith(\"/\")) return false;\n const source = rulePath\n .split(\"*\")\n .map((part) => part.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\"))\n .join(\".*\")\n .replace(/:[A-Za-z]\\w*/g, \"[^/]+\");\n try {\n return new RegExp(`^${source}$`).test(path);\n } catch {\n return false;\n }\n};\n\nexport interface HeadersFileCsp {\n policy: ContentSecurityPolicyConfig;\n hashes: Record<string, CspRouteHashes>;\n /** HTTP paths of the static pages (`/`, `/docs`, `/blog/`). */\n staticRoutes: readonly string[];\n}\n\nexport interface HeadersFileInput {\n /** The author's _headers (copied from dist/), or \"\" when there is none. */\n authored: string;\n /** The build's resolved `security` headers. Absent: every default, as in the Worker. */\n security?: ResponseSecurity;\n /** Normalized base path (`/` or `/shop/`). */\n base: string;\n /** The opt-in `contentSecurityPolicy`, for the static pages. */\n csp?: HeadersFileCsp;\n /** Which deploy the file is for; it decides the fix an error suggests. */\n variant?: \"pages\" | \"workers\";\n}\n\n/** What to do when the static headers do not fit in _headers, for this variant. */\nconst remedy = (variant: \"pages\" | \"workers\"): string =>\n variant === \"workers\"\n ? `Let the Worker send the headers on every response instead: in your wrangler.jsonc (or wrangler.json or wrangler.toml) set ` +\n `\"assets\": { \"run_worker_first\": true }, and Bascik writes no _headers rules for them.`\n : `Cloudflare Pages cannot run the Worker before static files, so build with --target cloudflare-workers and set ` +\n `\"assets\": { \"run_worker_first\": true } in your wrangler.jsonc; the Worker then sends the headers on every response.`;\n\n/**\n * The whole public/_headers text: the site-wide security rule, the static\n * pages' CSP rules, and the author's rules. The author's text unchanged when\n * Bascik has nothing to write; \"\" when there is no file at all.\n */\nexport const buildHeadersFile = ({\n authored,\n security = DEFAULT_RESPONSE_SECURITY,\n base,\n csp,\n variant = \"workers\",\n}: HeadersFileInput): string => {\n const lines = linesOf(authored);\n const rules = parseRules(lines);\n // Cloudflare keeps the last rule written for a path, at the place of the first.\n const effective = new Map<string, Rule>();\n for (const rule of rules) effective.set(rule.path, rule);\n const authorSiteWide = effective.get(SITE_WIDE_PATH);\n\n // name (lowercase) -> value, in the order Node sends them.\n const siteWide = new Map<string, string>(Object.entries(security.headers));\n if (security.hsts !== null)\n siteWide.set(\"strict-transport-security\", security.hsts);\n\n /** Lines to add right after a rule's path line, by that line's index. */\n const additions = new Map<number, string[]>();\n const add = (rule: Rule, line: string) => {\n const list = additions.get(rule.line) ?? [];\n list.push(line);\n additions.set(rule.line, list);\n };\n\n // The static pages' CSP.\n const prefix = base === \"/\" ? \"\" : base.replace(/\\/$/, \"\");\n const cspRules: string[] = [];\n const cspInAuthorRules: [Rule, string][] = [];\n const cspRoutes = new Map<string, string>();\n if (csp) {\n for (const route of csp.staticRoutes) {\n const { name, value } = contentSecurityPolicyHeader(\n csp.policy,\n csp.hashes[route],\n );\n const path = `${prefix}${route}`;\n const line = ` ${headerName(name)}: ${value}`;\n // An author's rule that sets or removes this header on the page wins.\n const authorDecides = [...effective.values()].some(\n (rule) =>\n (rule.sets.has(name) || rule.unsets.has(name)) &&\n ruleMatches(rule.path, path),\n );\n if (authorDecides) continue;\n if (line.trim().length > CLOUDFLARE_HEADERS_LINE_LIMIT)\n throw new Error(\n `[bascik] --target cloudflare: the ${headerName(name)} line for the static page ${path} is ` +\n `${line.trim().length} characters (one hash for each of its inline scripts and styles), but Cloudflare ` +\n `skips any _headers line over ${CLOUDFLARE_HEADERS_LINE_LIMIT} characters, so the page would ship with no ` +\n `policy and no error. ${remedy(variant)} Or move some of the page's inline scripts and styles into files.`,\n );\n cspRoutes.set(path, route);\n const own = effective.get(path);\n // Never a second rule for the author's path: it would replace theirs.\n if (own) cspInAuthorRules.push([own, line]);\n else cspRules.push(path, line);\n }\n }\n\n if (siteWide.size === 0 && cspRoutes.size === 0) return authored;\n\n // A later rule replaces a security header (or one the author's `/*` sets)\n // instead of joining it.\n const replaced = new Set([\n ...MANAGED_HEADERS,\n ...siteWide.keys(),\n ...(authorSiteWide?.sets ?? []),\n ]);\n for (const rule of effective.values()) {\n if (rule === authorSiteWide) {\n // The author's own `/*`: their values and removals stand.\n for (const [name, value] of siteWide)\n if (!rule.sets.has(name) && !rule.unsets.has(name))\n add(rule, ` ${headerName(name)}: ${value}`);\n continue;\n }\n for (const name of rule.sets)\n if (replaced.has(name) && !rule.unsets.has(name))\n add(rule, ` ${UNSET_PREFIX}${headerName(name)}`);\n }\n for (const [rule, line] of cspInAuthorRules) add(rule, line);\n\n const skip = new Set<number>();\n const rendered = (from: number, to: number): string[] => {\n const out: string[] = [];\n for (let i = from; i < to; i++) {\n if (skip.has(i)) continue;\n out.push(lines[i]);\n const extra = additions.get(i);\n if (extra) out.push(...extra);\n }\n while (out.length && out[out.length - 1].trim() === \"\") out.pop();\n return out;\n };\n\n const blocks: string[][] = [];\n if (authorSiteWide) {\n // First: the author's `/*` (with the comments above it when it is their\n // first rule). An earlier `/*` rule Cloudflare already ignores (the last\n // one written wins) is left out, or it would take the moved rule's place.\n const from = authorSiteWide === rules[0] ? 0 : authorSiteWide.line;\n blocks.push(rendered(from, authorSiteWide.end));\n for (let i = from; i < authorSiteWide.end; i++) skip.add(i);\n for (const rule of rules)\n if (rule.path === SITE_WIDE_PATH)\n for (let i = rule.line; i < rule.end; i++) skip.add(i);\n } else if (siteWide.size > 0) {\n blocks.push([\n SITE_WIDE_PATH,\n ...[...siteWide].map(\n ([name, value]) => ` ${headerName(name)}: ${value}`,\n ),\n ]);\n }\n if (cspRules.length) blocks.push(cspRules);\n const rest = rendered(0, lines.length);\n if (rest.length) blocks.push(rest);\n const text = `${blocks.map((b) => b.join(\"\\n\")).join(\"\\n\\n\")}\\n`;\n\n const tooLong = text\n .split(\"\\n\")\n .findIndex((line) => line.trim().length > CLOUDFLARE_HEADERS_LINE_LIMIT);\n if (tooLong !== -1) {\n const line = text.split(\"\\n\")[tooLong].trim();\n throw new Error(\n `[bascik] --target cloudflare: a line in your _headers is ${line.length} characters ` +\n `(${line.slice(0, 60)}...), but Cloudflare skips any _headers line over ${CLOUDFLARE_HEADERS_LINE_LIMIT} ` +\n `characters with no error. Shorten it.`,\n );\n }\n\n const total = countHeadersRules(text);\n if (total > CLOUDFLARE_HEADERS_RULE_LIMIT) {\n const newSiteWide = !authorSiteWide && siteWide.size > 0 ? 1 : 0;\n const cspPages = cspRules.length / 2;\n const authoredRules = total - newSiteWide - cspPages;\n const parts = [\n ...(cspPages\n ? [`${cspPages} for contentSecurityPolicy, one for each static page`]\n : []),\n ...(newSiteWide\n ? [\"1 site-wide rule for security.headers and security.hsts\"]\n : []),\n ...(authoredRules ? [`${authoredRules} already in your _headers`] : []),\n ];\n throw new Error(\n `[bascik] --target cloudflare: public/_headers needs ${total} rules (${parts.join(\", \")}), but Cloudflare ` +\n `reads at most ${CLOUDFLARE_HEADERS_RULE_LIMIT} and drops the rest with no error. ${remedy(variant)} ` +\n `Or remove rules from your _headers (a path written twice counts twice).`,\n );\n }\n return text;\n};\n\n/**\n * The author's _headers rules that set or remove a security header on a page\n * the Worker renders. `_headers` reaches static files only, so on those pages\n * the Worker keeps `security.headers`' value: one warning per rule, naming a\n * page, so the author can move the value into the config.\n */\nexport const workerPageHeaderOverrides = ({\n authored,\n security = DEFAULT_RESPONSE_SECURITY,\n base,\n workerPages,\n}: {\n authored: string;\n security?: ResponseSecurity;\n base: string;\n /** HTTP paths of the pages the Worker renders, without the base. */\n workerPages: readonly string[];\n}): string[] => {\n const prefix = base === \"/\" ? \"\" : base.replace(/\\/$/, \"\");\n const watched = new Set([\n ...MANAGED_HEADERS,\n ...Object.keys(security.headers),\n ]);\n const warnings: string[] = [];\n const effective = new Map<string, Rule>();\n for (const rule of parseRules(linesOf(authored)))\n effective.set(rule.path, rule);\n for (const rule of effective.values()) {\n const names = [...rule.sets, ...rule.unsets].filter((n) => watched.has(n));\n if (!names.length) continue;\n const page = workerPages\n .map((p) => `${prefix}${p}`)\n .find((p) => ruleMatches(rule.path, p));\n if (!page) continue;\n warnings.push(\n `[bascik] --target cloudflare: your _headers rule ${rule.path} sets ${[...new Set(names)].map(headerName).join(\", \")}, ` +\n `but ${page} is rendered by the Worker and _headers rules reach static files only, so that page keeps ` +\n `Bascik's value. To change the header on every page, set it in security.headers.`,\n );\n }\n return warnings;\n};\n"]}
package/dist/index.js CHANGED
@@ -3,12 +3,42 @@
3
3
  *
4
4
  * Default export of @bascik/adapter-cloudflare.
5
5
  */
6
- import { defineAdapter } from "@bascik/bascik/adapter";
6
+ import { defineAdapter, resolvePlatformCli, availableDevPort, } from "@bascik/bascik/adapter";
7
7
  import { build } from "./build.js";
8
+ import { join } from "node:path";
8
9
  export { CLOUDFLARE_COMPATIBILITY_DATE, CLOUDFLARE_COMPATIBILITY_FLAGS, } from "./compat.js";
9
10
  export { buildInvocationRoutes } from "./build.js";
10
11
  export default defineAdapter({
11
12
  name: "cloudflare",
12
13
  build,
14
+ async dev({ projectRoot, outDir, variant, port }) {
15
+ const cli = await resolvePlatformCli(projectRoot, "wrangler", "wrangler");
16
+ const inspectorPort = await availableDevPort();
17
+ return {
18
+ command: process.execPath,
19
+ args: [
20
+ cli,
21
+ ...(variant === "pages"
22
+ ? [
23
+ "pages",
24
+ "dev",
25
+ join(outDir, "public"),
26
+ "--compatibility-flag",
27
+ "nodejs_compat",
28
+ ]
29
+ : ["dev", "--config", join(outDir, "wrangler.jsonc")]),
30
+ "--ip",
31
+ "127.0.0.1",
32
+ "--port",
33
+ String(port),
34
+ "--inspector-port",
35
+ String(inspectorPort),
36
+ "--persist-to",
37
+ join(projectRoot, ".wrangler", "state"),
38
+ ],
39
+ cwd: projectRoot,
40
+ env: { WRANGLER_SEND_METRICS: "false" },
41
+ };
42
+ },
13
43
  });
14
44
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,eAAe,aAAa,CAAC;IAC3B,IAAI,EAAE,YAAY;IAClB,KAAK;CACN,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,eAAe,aAAa,CAAC;IAC3B,IAAI,EAAE,YAAY;IAClB,KAAK;IACL,KAAK,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;QAC9C,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAC1E,MAAM,aAAa,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC/C,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,QAAQ;YACzB,IAAI,EAAE;gBACJ,GAAG;gBACH,GAAG,CAAC,OAAO,KAAK,OAAO;oBACrB,CAAC,CAAC;wBACE,OAAO;wBACP,KAAK;wBACL,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;wBACtB,sBAAsB;wBACtB,eAAe;qBAChB;oBACH,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;gBACxD,MAAM;gBACN,WAAW;gBACX,QAAQ;gBACR,MAAM,CAAC,IAAI,CAAC;gBACZ,kBAAkB;gBAClB,MAAM,CAAC,aAAa,CAAC;gBACrB,cAAc;gBACd,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC;aACxC;YACD,GAAG,EAAE,WAAW;YAChB,GAAG,EAAE,EAAE,qBAAqB,EAAE,OAAO,EAAE;SACxC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC","sourcesContent":["/**\n * @module index\n *\n * Default export of @bascik/adapter-cloudflare.\n */\n\nimport {\n defineAdapter,\n resolvePlatformCli,\n availableDevPort,\n} from \"@bascik/bascik/adapter\";\nimport { build } from \"./build.js\";\nimport { join } from \"node:path\";\n\nexport {\n CLOUDFLARE_COMPATIBILITY_DATE,\n CLOUDFLARE_COMPATIBILITY_FLAGS,\n} from \"./compat.js\";\nexport { buildInvocationRoutes } from \"./build.js\";\n\nexport default defineAdapter({\n name: \"cloudflare\",\n build,\n async dev({ projectRoot, outDir, variant, port }) {\n const cli = await resolvePlatformCli(projectRoot, \"wrangler\", \"wrangler\");\n const inspectorPort = await availableDevPort();\n return {\n command: process.execPath,\n args: [\n cli,\n ...(variant === \"pages\"\n ? [\n \"pages\",\n \"dev\",\n join(outDir, \"public\"),\n \"--compatibility-flag\",\n \"nodejs_compat\",\n ]\n : [\"dev\", \"--config\", join(outDir, \"wrangler.jsonc\")]),\n \"--ip\",\n \"127.0.0.1\",\n \"--port\",\n String(port),\n \"--inspector-port\",\n String(inspectorPort),\n \"--persist-to\",\n join(projectRoot, \".wrangler\", \"state\"),\n ],\n cwd: projectRoot,\n env: { WRANGLER_SEND_METRICS: \"false\" },\n };\n },\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @module adapters/cloudflare-runtime\n *\n * The request handler that runs inside a Cloudflare Worker (prompt 134).\n * ─────────────────────────────────────────────────────────────────────────────\n *\n * Portable: no Node imports (the request-time component host,\n * component-host.ts, uses `node:crypto` under `nodejs_compat` and is bundled\n * only for sites with components, prompt 157). It is bundled into the\n * generated `_worker.js` together with the site graph emitted by\n * `serverless-artifacts.ts`, and it drives the same execution core the Node\n * server uses (`lib/request-execution.ts`).\n *\n * Request flow inside the Worker:\n *\n * fetch(request, env, ctx)\n * ├─ unsafe or hidden path -> 400 / 404\n * ├─ outside `base` -> 404\n * ├─ API route match -> dispatchApiHandler(...)\n * ├─ dynamic page alias match -> compose from private template\n * │ ├─ no stream jobs or HEAD -> buffered body, content-length\n * │ └─ stream jobs -> Response(ReadableStream) before body completes\n * └─ anything else -> env.ASSETS.fetch(request)\n *\n * Every dynamic page template lives in the private graph, never in the public\n * asset tree, so a routing failure that lets a request fall through to assets\n * yields a 404, not an inert-placeholder document.\n *\n * Bindings and execution context reach handlers as `context.platform`\n * (`{ name: \"cloudflare\", env, waitUntil }`). Nothing is copied onto globals\n * and `process.env` is never touched.\n */\n\nimport { componentExecution } from \"./component-host.js\";\nimport {\n applyOutputScope,\n decodeOutputScope,\n composeBufferedResponse,\n dispatchApiHandler,\n invokeLoadedWithDeadline,\n scriptTimeoutError,\n streamComposedResponse,\n type ApiHandlerContext,\n type ApiHandlerModule,\n type ExecutionPlan,\n type ExecutionSegment,\n type PlatformContext,\n type RenderHost,\n type ScriptJobRunner,\n dynamicPageHeaders,\n errorResponse,\n internalErrorPage,\n mergeHandlerHeaders,\n stripRepresentationHeaders,\n GENERATED_CONTROL_PATHS,\n isPrivatePathname,\n isUnsafePathname,\n InvalidApiPathError,\n matchApiRoute,\n pageLookupCandidates,\n stripAnsiEscapeCodes,\n serverScriptOutput,\n serverScriptOutputErrorMessage,\n contentSecurityPolicyHeader,\n DEFAULT_RESPONSE_SECURITY,\n type ApiRouteDefinition,\n type ContentSecurityPolicyConfig,\n type CspRouteHashes,\n type RequestRenderLimits,\n type ResponseSecurity,\n} from \"@bascik/bascik/runtime\";\n\n/**\n * A job's output with its component's element classes applied, when the job\n * carries an output scope, as `runServerScriptJob` does on Node. It lives\n * here, not in component-host.ts, because page jobs carry a scope too (that\n * of a component placed statically on the page) whether or not the manifest\n * has anything renderable: a Worker built with the component-host stub must\n * still scope them. Both helpers are portable (no `node:crypto`).\n */\nconst scopeJobOutput = (job: GraphScriptJob, output: string): string => {\n const scope = decodeOutputScope(job.outputScope);\n return scope ? applyOutputScope(output, scope) : output;\n};\n\n// ─── Site graph contract (emitted by serverless-artifacts.ts) ────────────────\n\n/** A request-time script job inside a dynamic page template. */\nexport interface GraphScriptJob {\n id: string;\n mode: \"server\" | \"stream\";\n /**\n * The component's element classes for this job's output (prompt 157):\n * set on component scripts, and on a page job a component placed\n * statically, so their returned markup is styled like the component's own.\n */\n outputScope?: string;\n /**\n * Where a component script is authored (`server script in\n * src/components/x.html:12`), set on component jobs (prompt 157): the\n * bundled stack names only the Worker file, so a failure is located from\n * this instead.\n */\n owner?: string;\n /** Loader for the compiled module; `default` is the handler. */\n load: () => Promise<{ default: unknown }>;\n}\n\n/** The build's component manifest, as the portable renderer reads it. */\nexport type ComponentManifest = NonNullable<RenderHost[\"manifest\"]>;\n\n/**\n * Request-time components (prompt 157): the manifest, emitted by build.ts\n * only when it lists a component, and the component scripts it names, keyed\n * by job id. They belong to no page: any page's script may return any\n * component.\n */\nexport interface GraphComponents {\n manifest: ComponentManifest;\n jobs: Record<string, GraphScriptJob>;\n}\n\nexport interface GraphPageSegment {\n kind: \"static\" | \"script\";\n /** UTF-8 text for static segments. */\n text?: string;\n /** Job id for script segments. */\n id?: string;\n}\n\nexport interface GraphPage {\n /** Canonical HTTP path (`/`, `/blog/`, `/about`). */\n path: string;\n /** Whether this page is the authored 404 page. */\n is404: boolean;\n segments: GraphPageSegment[];\n jobs: Record<string, GraphScriptJob>;\n}\n\nexport interface GraphApiRoute extends ApiRouteDefinition {\n load: () => Promise<ApiHandlerModule>;\n}\n\nexport interface SiteGraph {\n /** Normalized base path, always starting and ending with `/`. */\n base: string;\n /** Script deadline for server/stream jobs, ms. */\n scriptTimeoutMs: number;\n /** Deadline for API handlers, ms. */\n apiTimeoutMs: number;\n /** `scripts.onServerScriptError` at build time. */\n onServerScriptError: \"error\" | \"warn\" | \"ignore\";\n /** Dynamic pages by canonical path. */\n pages: Record<string, GraphPage>;\n /** Sorted API routes (static, then `[param]`, then catch-all). */\n apiRoutes: GraphApiRoute[];\n /** Optional authored 500 page body. */\n custom500?: string;\n /** A static `404.html` is deployed; its own URLs answer 404, as on Node. */\n staticNotFoundPage?: boolean;\n /** Release identity for diagnostics headers. */\n release: string;\n /** Present when the site renders component tags in script output. */\n components?: GraphComponents;\n /**\n * Opt-in `contentSecurityPolicy`: the policy and the build hashes of each\n * page the Worker renders (static pages carry theirs in _headers).\n */\n contentSecurityPolicy?: {\n policy: ContentSecurityPolicyConfig;\n hashes: Record<string, CspRouteHashes>;\n };\n /**\n * The build's `security.headers`, `security.hsts` and\n * `security.privateDynamicPages`, resolved. Absent: the defaults.\n */\n responseSecurity?: ResponseSecurity;\n /**\n * Set when the Worker runs before every static file (`run_worker_first:\n * true` in the authored wrangler config): the build writes no `_headers`\n * rules, and the Worker adds the security headers, and each listed static\n * page's CSP, to what the asset layer returns. A header the response\n * already has (from the author's own `_headers`) is kept.\n */\n assetHeaders?: {\n /** Static pages (paths without the base) whose CSP the Worker sends. */\n cspRoutes: string[];\n };\n /** The build's `security.hideDotfiles`. Absent: true. */\n hideDotfiles?: boolean;\n /** The build's `scripts.stripAnsi`. Absent: true. */\n stripAnsi?: boolean;\n /** The build's `scripts.renderLimits`. Absent: the defaults. */\n renderLimits?: Partial<RequestRenderLimits>;\n}\n\n// ─── Cloudflare runtime types (subset, kept local to avoid a type dependency) ─\n\nexport interface CloudflareAssetsBinding {\n fetch(request: Request): Promise<Response>;\n}\n\nexport interface CloudflareEnv {\n ASSETS?: CloudflareAssetsBinding;\n [binding: string]: unknown;\n}\n\nexport interface CloudflareExecutionContext {\n waitUntil(promise: Promise<unknown>): void;\n passThroughOnException?(): void;\n}\n\nexport interface CloudflareWorker {\n fetch(\n request: Request,\n env: CloudflareEnv,\n ctx: CloudflareExecutionContext,\n ): Promise<Response>;\n}\n\n// ─── Helpers ─────────────────────────────────────────────────────────────────\n\nconst encoder = new TextEncoder();\n\nconst CONTROL_PATHS: ReadonlySet<string> = new Set(GENERATED_CONTROL_PATHS);\n\n/** `stripBasePath` from `lib/base-path.ts`, inlined to keep this graph free of the shielding import. */\nexport const stripBase = (pathname: string, base: string): string | null => {\n if (base === \"/\") return pathname;\n const prefix = base.endsWith(\"/\") ? base.slice(0, -1) : base;\n if (pathname === prefix) return \"/\";\n if (!pathname.startsWith(`${prefix}/`)) return null;\n return pathname.slice(prefix.length);\n};\n\n/** Derive the client IP from Cloudflare's trusted header; never from X-Forwarded-For. */\nexport const cloudflareRemoteIp = (request: Request): string =>\n request.headers.get(\"cf-connecting-ip\") ?? \"\";\n\nconst isHttps = (request: Request): boolean =>\n new URL(request.url).protocol === \"https:\";\n\nconst toExecutionPlan = (page: GraphPage): ExecutionPlan => {\n const segments: ExecutionSegment[] = page.segments.map((segment) =>\n segment.kind === \"static\"\n ? { kind: \"static\", bytes: encoder.encode(segment.text ?? \"\") }\n : { kind: \"script\", mode: page.jobs[segment.id!].mode, id: segment.id! },\n );\n return {\n segments,\n firstStreamIndex: segments.findIndex(\n (s) => s.kind === \"script\" && s.mode === \"stream\",\n ),\n };\n};\n\nconst findPage = (\n graph: SiteGraph,\n pathname: string,\n): GraphPage | undefined => {\n for (const candidate of pageLookupCandidates(pathname)) {\n const page = graph.pages[candidate];\n if (page) return page;\n }\n return undefined;\n};\n\nconst missingJob = (id: string): Error =>\n new Error(\n `[bascik] server script job \"${id}\" is missing from the deployment graph.`,\n );\n\n/** Jobs whose refused return value was already logged in this isolate. */\nconst warnedRefused = new WeakSet<GraphScriptJob>();\n\n/**\n * Run one graph job under `timeoutMs`. Output handling mirrors\n * `runServerScriptJob`: what `serverScriptOutput` prints is the fragment,\n * stripped of ANSI escapes, and a job carrying an output scope (a\n * component's script, prompt 157) gets the component's element classes\n * applied; a failing job with an owner is located by it; failure under\n * `onServerScriptError: \"error\"` throws (500 before commit, empty after),\n * `warn` logs and yields empty, `ignore` yields empty.\n */\nconst runGraphJob = async (\n job: GraphScriptJob,\n id: string,\n graph: SiteGraph,\n request: Request,\n context: { remoteIp: string; platform: PlatformContext },\n log: (message: string) => void,\n signal: AbortSignal,\n timeoutMs: number,\n): Promise<string> => {\n // The load and the handler run under one deadline, and the handler's own\n // promise is settled by the shared rule: once the deadline fires or the\n // client aborts, that is the outcome, exactly as on Node. Calling the\n // handler directly (not from an async wrapper) keeps a value settled just\n // before the deadline from being mistaken for a timeout.\n const result = await invokeLoadedWithDeadline(\n () => job.load(),\n (mod, { signal: jobSignal }) => {\n const handler = mod.default;\n if (typeof handler !== \"function\") {\n throw new TypeError(\n `Server script \"${id}\" does not export a default function.`,\n );\n }\n return handler(request, context, { signal: jobSignal });\n },\n // Node's message, so a log reads the same on both hosts.\n { timeoutMs, signal, timeoutError: scriptTimeoutError },\n );\n // The rule Node applies (F060): an array is joined with no separator; an\n // object, a Response, an unawaited Promise in an array, a function or a\n // symbol is refused. A Worker is production, so a refused return never\n // fails the page: the slot is empty and, unless the policy is \"ignore\",\n // the warning is logged once per script for the isolate's life. A throw\n // from the author's own toString is the script failing, as on Node.\n let printed: ReturnType<typeof serverScriptOutput> | undefined;\n let failure: Error | undefined;\n if (result.ok) {\n try {\n printed = serverScriptOutput(result.value);\n } catch (thrown) {\n failure = thrown instanceof Error ? thrown : new Error(String(thrown));\n }\n }\n if (printed) {\n if (printed.error) {\n if (graph.onServerScriptError !== \"ignore\" && !warnedRefused.has(job)) {\n warnedRefused.add(job);\n log(\n serverScriptOutputErrorMessage(\n printed.error,\n request.url,\n // A page job carries no owner in the graph (only component jobs\n // do); the route in the message names its page.\n job.owner ?? `${job.mode} script`,\n { production: true },\n ),\n );\n }\n return \"\";\n }\n // scripts.stripAnsi off: the codes reach the page as printed.\n return scopeJobOutput(\n job,\n graph.stripAnsi === false\n ? printed.text\n : stripAnsiEscapeCodes(printed.text),\n );\n }\n if (!failure && !result.ok && result.aborted && !result.timedOut) return \"\";\n const error =\n failure ??\n (!result.ok ? result.error : undefined) ??\n new Error(\"Server script failed\");\n // Node maps the stack to the authored file; here it names only the bundle,\n // so a component job (a timeout, a throw or a missing default export deep\n // inside a rendered tag) is placed by the owner the build recorded.\n const where = job.owner ? `\\n in the ${job.owner}` : \"\";\n const message = `[bascik] server script error at \"${new URL(request.url).pathname}\":\\n${error.stack ?? error.message}${where}`;\n if (graph.onServerScriptError === \"error\") throw new Error(message);\n if (graph.onServerScriptError === \"warn\") log(message);\n return \"\";\n};\n\n/**\n * Build a `ScriptJobRunner` for one request: the page's own jobs, then the\n * component scripts of `graph.components` (prompt 157), under the graph's\n * script deadline and error policy (see `runGraphJob`).\n */\nexport const createGraphJobRunner = (\n page: GraphPage,\n graph: SiteGraph,\n request: Request,\n context: { remoteIp: string; platform: PlatformContext },\n log: (message: string) => void,\n): ScriptJobRunner => {\n return async (id, signal) => {\n const job = page.jobs[id] ?? graph.components?.jobs[id];\n if (!job) throw missingJob(id);\n return runGraphJob(\n job,\n id,\n graph,\n request,\n context,\n log,\n signal,\n graph.scriptTimeoutMs,\n );\n };\n};\n\n/**\n * The page's plan and runner for one request. With a component manifest\n * that has something to render (prompt 157), the runner is wrapped so\n * component tags in job output are rendered (component-host.ts), and the\n * component scripts run like page jobs with the parent's remaining budget.\n * Without one, plan and runner are exactly what they always were.\n */\nexport const createPageExecution = (\n page: GraphPage,\n graph: SiteGraph,\n request: Request,\n context: { remoteIp: string; platform: PlatformContext },\n log: (message: string) => void,\n): { plan: ExecutionPlan; run: ScriptJobRunner } => {\n const run = createGraphJobRunner(page, graph, request, context, log);\n const components = graph.components;\n const rendered = components\n ? componentExecution(\n page,\n graph,\n request,\n run,\n (id, signal, budgetMs) => {\n const job = components.jobs[id];\n if (!job) return Promise.reject(missingJob(id));\n return runGraphJob(\n job,\n id,\n graph,\n request,\n context,\n log,\n signal,\n budgetMs,\n );\n },\n log,\n )\n : null;\n return rendered ?? { plan: toExecutionPlan(page), run };\n};\n\nexport interface CreateWorkerOptions {\n /** Diagnostics sink; defaults to `console.error`. Never reaches the client. */\n log?: (message: string) => void;\n}\n\n/**\n * Build the Module Worker `fetch` handler for a site graph. The returned\n * object is what `_worker.js` exports as `default`.\n */\nexport const createCloudflareWorker = (\n graph: SiteGraph,\n options: CreateWorkerOptions = {},\n): CloudflareWorker => {\n const log = options.log ?? ((message: string) => console.error(message));\n // The build's response security (absent: every default); passed to every\n // response builder so pages, API responses and errors agree with Node.\n const security = graph.responseSecurity;\n const hideDotfiles = graph.hideDotfiles !== false;\n const assetCspRoutes = new Set(graph.assetHeaders?.cspRoutes ?? []);\n\n /** The opt-in CSP header, from the build's hashes for this page (never its body). */\n const setPageCsp = (headers: Headers, path: string): void => {\n const csp = graph.contentSecurityPolicy;\n if (!csp) return;\n const { name, value } = contentSecurityPolicyHeader(\n csp.policy,\n csp.hashes[path],\n );\n headers.set(name, value);\n };\n\n const forwardToAssets = async (\n request: Request,\n env: CloudflareEnv,\n ): Promise<Response> => {\n if (!env.ASSETS) {\n log(\n \"[bascik] ASSETS binding is missing: static requests cannot be served.\",\n );\n return errorResponse(500, \"Internal Server Error\", {\n https: isHttps(request),\n security,\n });\n }\n const response = await env.ASSETS.fetch(request);\n return graph.assetHeaders ? withAssetHeaders(request, response) : response;\n };\n\n /** The listed static 404 page nearest to `path`, as the asset layer looks one up. */\n const notFoundRouteFor = (path: string): string | undefined => {\n const segments = path.split(\"/\").slice(1, -1);\n for (let depth = segments.length; depth >= 0; depth--) {\n const dir = segments.slice(0, depth).join(\"/\");\n const route = dir ? `/${dir}/404` : \"/404\";\n if (assetCspRoutes.has(route)) return route;\n }\n return undefined;\n };\n\n /** The headers _headers would have given a static file, sent by the Worker instead. */\n const withAssetHeaders = (request: Request, response: Response): Response => {\n const headers = new Headers(response.headers);\n const resolved = security ?? DEFAULT_RESPONSE_SECURITY;\n for (const [name, value] of Object.entries(resolved.headers))\n if (!headers.has(name)) headers.set(name, value);\n if (\n isHttps(request) &&\n resolved.hsts !== null &&\n !headers.has(\"strict-transport-security\")\n )\n headers.set(\"strict-transport-security\", resolved.hsts);\n const csp = graph.contentSecurityPolicy;\n let path: string | null = null;\n try {\n path = stripBase(\n decodeURIComponent(new URL(request.url).pathname),\n graph.base,\n );\n } catch {\n path = null;\n }\n // A miss answered with a 404.html carries that page's policy, as the\n // Node server sends the 404 page's own: the asset layer serves the\n // nearest 404.html up the path (`/docs/nope` gets `/docs/404.html`).\n const route =\n path === null\n ? undefined\n : assetCspRoutes.has(path)\n ? path\n : response.status === 404\n ? notFoundRouteFor(path)\n : undefined;\n if (csp && route !== undefined) {\n const { name, value } = contentSecurityPolicyHeader(\n csp.policy,\n csp.hashes[route],\n );\n if (!headers.has(name)) headers.set(name, value);\n }\n return new Response(response.body, {\n status: response.status,\n statusText: response.statusText,\n headers,\n });\n };\n\n const fetchHandler = async (\n request: Request,\n env: CloudflareEnv,\n ctx: CloudflareExecutionContext,\n ): Promise<Response> => {\n const https = isHttps(request);\n const url = new URL(request.url);\n let pathname: string;\n try {\n pathname = decodeURIComponent(url.pathname);\n } catch {\n return errorResponse(400, \"Bad Request\", { https, security });\n }\n if (isUnsafePathname(pathname))\n return errorResponse(400, \"Bad Request\", { https, security });\n // Same rule as the Node server: dot segments are private except a leading\n // RFC 8615 /.well-known/ below the site root, which the asset layer serves\n // (with security.hideDotfiles off, only a first `.bascik` segment is).\n if (isPrivatePathname(pathname, graph.base, hideDotfiles))\n return errorResponse(404, \"Not Found\", { https, security });\n\n const baseRelative = stripBase(pathname, graph.base);\n if (baseRelative === null)\n return errorResponse(404, \"Not Found\", { https, security });\n // The bundle and its routing table are deployment control files, never\n // content. Refusing them here makes the guarantee independent of how a\n // host treats underscore-prefixed uploads.\n if (CONTROL_PATHS.has(baseRelative))\n return errorResponse(404, \"Not Found\", { https, security });\n\n const platform: PlatformContext = {\n name: \"cloudflare\",\n env,\n waitUntil: (promise) => ctx.waitUntil(promise),\n };\n const remoteIp = cloudflareRemoteIp(request);\n\n // ── API routes (before the method guard so every method reaches them) ──\n let apiMatch: ReturnType<typeof matchApiRoute<GraphApiRoute>>;\n try {\n // Catch-all routes split and decode the raw path themselves, so an\n // encoded separator cannot forge a segment boundary.\n apiMatch = matchApiRoute(graph.apiRoutes, pathname, url.pathname);\n } catch (err) {\n if (!(err instanceof InvalidApiPathError)) throw err;\n return errorResponse(400, \"Bad Request\", { https, security });\n }\n if (apiMatch) {\n const route = apiMatch.route as GraphApiRoute;\n let mod: ApiHandlerModule;\n try {\n mod = await route.load();\n } catch (err) {\n log(\n `[bascik] Failed to load API route module ${route.filePath}: ${(err as Error).stack ?? String(err)}`,\n );\n return errorResponse(500, \"Internal Server Error\", { https, security });\n }\n const context: ApiHandlerContext = {\n params: apiMatch.params,\n remoteIp,\n platform,\n };\n const response = await dispatchApiHandler(mod, request, context, {\n timeoutMs: graph.apiTimeoutMs,\n signal: request.signal,\n onError: (message, error) =>\n log(\n `[bascik] ${message}${error ? `\\n${(error as Error).stack ?? String(error)}` : \"\"}`,\n ),\n });\n // A WebSocket upgrade (`new Response(null, { status: 101, webSocket })`,\n // the platform's pattern) goes back as the handler made it: a copy\n // would lose the socket, and the constructor refuses status 101\n // without one, so the request would end in an uncaught RangeError.\n if (\n response.status === 101 ||\n (response as Response & { webSocket?: unknown }).webSocket\n )\n return response;\n const headers = mergeHandlerHeaders(response.headers, {\n https,\n security,\n });\n // A HEAD answer sends no body: release the one an explicit HEAD\n // handler returned (a derived HEAD's GET body is released by the core).\n if (request.method === \"HEAD\" && response.body && !response.body.locked)\n response.body.cancel().catch(() => {});\n return new Response(request.method === \"HEAD\" ? null : response.body, {\n status: response.status,\n statusText: response.statusText,\n headers,\n });\n }\n\n // ── Dynamic pages ─────────────────────────────────────────────────────\n const page = findPage(graph, baseRelative);\n if (!page) {\n if (\n graph.staticNotFoundPage &&\n pageLookupCandidates(baseRelative).includes(\"/404\")\n ) {\n if (request.method !== \"GET\" && request.method !== \"HEAD\") {\n const headers = new Headers(\n errorResponse(405, \"\", { https, security }).headers,\n );\n headers.set(\"allow\", \"GET, HEAD\");\n return new Response(\"Method Not Allowed\", { status: 405, headers });\n }\n // The asset layer serves 404.html at its own URL with 200 (and\n // redirects its aliases). Fetch the canonical asset and answer with\n // the status the Node server uses for the custom 404 page. Through\n // the binding, html_handling resolves `/404` without a redirect,\n // except `\"none\"`, where only the file name finds the page.\n const fetchNotFoundAsset = (pathname: string) => {\n const assetUrl = new URL(request.url);\n assetUrl.pathname = pathname;\n assetUrl.search = \"\";\n return forwardToAssets(\n new Request(assetUrl, {\n method: request.method === \"HEAD\" ? \"HEAD\" : \"GET\",\n headers: request.headers,\n }),\n env,\n );\n };\n let asset = await fetchNotFoundAsset(\n graph.base === \"/\" ? \"/404\" : `${graph.base}404`,\n );\n if (asset.status !== 200) {\n const byFileName = await fetchNotFoundAsset(`${graph.base}404.html`);\n if (byFileName.status === 200) {\n asset.body?.cancel().catch(() => {});\n asset = byFileName;\n } else byFileName.body?.cancel().catch(() => {});\n }\n if (asset.status !== 200) return asset;\n return new Response(request.method === \"HEAD\" ? null : asset.body, {\n status: 404,\n headers: asset.headers,\n });\n }\n return forwardToAssets(request, env);\n }\n\n const isHead = request.method === \"HEAD\";\n if (request.method !== \"GET\" && !isHead) {\n const headers = new Headers(\n errorResponse(405, \"\", { https, security }).headers,\n );\n headers.set(\"allow\", \"GET, HEAD\");\n return new Response(\"Method Not Allowed\", { status: 405, headers });\n }\n\n const status = page.is404 ? 404 : 200;\n const { plan, run } = createPageExecution(\n page,\n graph,\n request,\n { remoteIp, platform },\n log,\n );\n\n if (plan.firstStreamIndex === -1 || isHead) {\n let body: Uint8Array;\n try {\n body = await composeBufferedResponse(plan, run, request.signal);\n } catch (err) {\n log(err instanceof Error ? err.message : String(err));\n return internalErrorPage(graph.custom500, { https, security });\n }\n const headers = dynamicPageHeaders({\n https,\n security,\n contentLength: body.byteLength,\n });\n setPageCsp(headers, page.path);\n return new Response(isHead ? null : body, { status, headers });\n }\n\n // Early flush: every `server` job settles before headers commit; the\n // Response carries a demand-gated ReadableStream and is returned BEFORE\n // the body completes. Stream failures are logged, never a status change.\n const streamer = streamComposedResponse(plan, run, undefined, {\n signal: request.signal,\n onStreamError: (err) =>\n log(err instanceof Error ? err.message : String(err)),\n });\n try {\n await streamer.ready;\n } catch (err) {\n log(err instanceof Error ? err.message : String(err));\n return internalErrorPage(graph.custom500, { https, security });\n }\n const headers = stripRepresentationHeaders(\n dynamicPageHeaders({ https, security }),\n );\n setPageCsp(headers, page.path);\n // The edge compresses Worker responses on the fly and, for a streamed\n // body, holds every byte until the stream closes (observed in workerd:\n // only the gzip header leaves early). An explicit identity encoding opts\n // this response out so the static prefix reaches the browser now. Static\n // assets keep edge compression; only progressively rendered documents pay\n // the uncompressed cost, which is the price of early paint.\n headers.set(\"content-encoding\", \"identity\");\n // Keep the isolate alive until the last fragment is written even if the\n // platform would otherwise consider the request finished.\n ctx.waitUntil(streamer.done);\n return new Response(streamer.toReadableStream(), { status, headers });\n };\n\n return { fetch: fetchHandler };\n};\n"]}
package/package.json CHANGED
@@ -1,12 +1,22 @@
1
1
  {
2
2
  "name": "@bascik/adapter-cloudflare",
3
- "version": "1.0.0-rc.10",
3
+ "version": "1.0.0-rc.12",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/bascikdev/bascik.git",
7
7
  "directory": "adapters/cloudflare"
8
8
  },
9
9
  "description": "Cloudflare Pages and Workers adapter for Bascik",
10
+ "keywords": [
11
+ "bascik",
12
+ "adapter",
13
+ "cloudflare",
14
+ "cloudflare workers",
15
+ "html components",
16
+ "serverless"
17
+ ],
18
+ "homepage": "https://bascik.dev",
19
+ "author": "Collin Thomas",
10
20
  "license": "MIT",
11
21
  "type": "module",
12
22
  "exports": {
@@ -21,7 +31,7 @@
21
31
  "README.md"
22
32
  ],
23
33
  "scripts": {
24
- "build": "tsc -p tsconfig.build.json",
34
+ "build": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.build.json",
25
35
  "cover": "yarn coverage",
26
36
  "coverage": "vitest run --coverage.enabled && node bin/update-coverage.ts",
27
37
  "prepack": "cp ../../LICENSE LICENSE",
@@ -34,31 +44,31 @@
34
44
  "demo:build": "cd e2e/fixture && bascik --build --target cloudflare",
35
45
  "demo:deploy": "cd e2e/fixture/dist/.bascik/cloudflare && wrangler deploy",
36
46
  "demo:preview": "cd e2e/fixture/dist/.bascik/cloudflare && wrangler preview",
37
- "demo:dev": "cd e2e/fixture/dist/.bascik/cloudflare && wrangler dev"
47
+ "demo:dev": "cd e2e/fixture && bascik --target cloudflare --port 8787"
38
48
  },
39
49
  "dependencies": {
40
50
  "esbuild": "^0.28.2",
41
51
  "jsonc-parser": "^3.3.1",
42
- "smol-toml": "^1.9.0"
52
+ "smol-toml": "^1.9.1"
43
53
  },
44
54
  "peerDependencies": {
45
- "@bascik/bascik": "^1.0.0-rc.10"
55
+ "@bascik/bascik": "^1.0.0-rc.12"
46
56
  },
47
57
  "devDependencies": {
48
- "@bascik/bascik": "^1.0.0-rc.10",
49
- "@playwright/test": "^1.63.0",
58
+ "@bascik/bascik": "^1.0.0-rc.12",
59
+ "@playwright/test": "^1.64.1",
50
60
  "@types/node": "^24.19.1",
51
- "@vitest/coverage-v8": "^5.0.3",
61
+ "@vitest/coverage-v8": "^5.1.0",
52
62
  "miniflare": "4.20260730.0",
53
63
  "typescript": "^7.0.2",
54
- "vite": "^8.3.4",
55
- "vitest": "^5.0.3",
56
- "wrangler": "^4.152.0"
64
+ "vite": "^8.3.5",
65
+ "vitest": "^5.1.0",
66
+ "wrangler": "^4.157.0"
57
67
  },
58
68
  "publishConfig": {
59
69
  "access": "public"
60
70
  },
61
71
  "engines": {
62
- "node": ">=22.22.0"
72
+ "node": ">=24.21.0"
63
73
  }
64
74
  }