1// @ts-check
2import { defineConfig } from "astro/config";
3
4// On-demand SSR by default; individual pages opt into prerendering
5// (`about.astro`). Loaded natively by the integration — the config file is
6// authoritative (the toolchain injects its adapter without overriding
7// `output`; before the user-config principle landed the integration pinned
8// `output: "server"` itself, which is why this file didn't exist).
9//
10// The extra settings are user-observable and asserted by the live test:
11// - `redirects` — the adapter emits `/old-about /about/ 301` into
12// `_redirects`; alchemy's asset upload must honor it so the asset layer
13// answers with a real 3xx.
14// - `security.checkOrigin: false` — the test POSTs the feedback form via a
15// direct fetch (no Origin header); Astro's default CSRF check would 403.
16// - `build.inlineStylesheets: "never"` — forces the stylesheet imported by
17// `about.astro` to emit as a hashed `/_astro/*.css` asset so the test can
18// pin the `_headers`-driven immutable Cache-Control on hashed assets.
19export default defineConfig({
20 output: "server",
21 redirects: { "/old-about": "/about/" },
22 security: { checkOrigin: false },
23 build: { inlineStylesheets: "never" },
24});