Repository: withastro/astro
File: packages/astro/src/types/public/integrations.ts (TypeScript)

Code before:
	 * or the default message might cause confusion and conflict with a custom one.
	 */
	suppress?: 'all' | 'default';
};

export type AdapterSupport = AdapterSupportsKind | AdapterSupportWithMessage;

export interface AstroAdapterFeatures {
	/**
	 * Defines whether any on-demand rendering middleware code will be bundled when built. When enabled, this prevents
	 * middleware code from being bundled and imported by all pages during the build.
	 */
	edgeMiddleware: boolean;

	/**
	 * Allows you to force a specific output shape for the build. This can be useful for adapters that only work with
	 * a specific output type. For example, your adapter might expect a static website, but uses an adapter to create
	 * host-specific files. Defaults to `server` if not specified.
	 */
	buildOutput?: 'static' | 'server';

	/**
	 * Whether or not the adapter provides experimental support for setting response headers for static pages. When this
	 * feature is enabled, Astro will return a map of the `Headers` emitted by the static pages. This map `routeToHeaders`
	 * is available in the `astro:build:generated` hook for generating files such as a `_headers` that allows you to make
	 * changes to the default HTTP header.
	 */
	staticHeaders?: boolean;
}

/**
 * @internal
 * Configuration for Astro's client-side code from adapters.
 * This is used internally to inject adapter-specific behavior into client code.
 */
export interface AstroAdapterClientConfig {
	/**
	 * Headers to inject into Astro's internal fetch calls (Actions, View Transitions, Server Islands, Prefetch).
	 * Can be an object of headers or a function that returns headers.
	 */
	internalFetchHeaders?: Record<string, string> | (() => Record<string, string>);

	/**
	 * Query parameters to append to all asset URLs (images, stylesheets, scripts, etc.).
	 * Useful for adapters that need to track deployment versions or other metadata.
	 */
	assetQueryParams?: URLSearchParams;
}

interface AdapterExplicitProperties {
	/**

Review comment (bug):
Small suggestion here:

```suggestion
	 * Whether or not the adapter provides experimental support for setting response headers for static pages. When this
	 * feature is enabled, Astro will return a map of the `Headers` emitted by the static pages. This map is available
	 * as `routeToHeaders` in the `astro:build:generated` hook and can be used to generate platform-specific output that controls HTTP headers,
	 * for example, to create a `_headers` file for platforms that support it.
```

(probably the wrong line lengths but what can you do 😄)

Code after:
	 * or the default message might cause confusion and conflict with a custom one.
	 */
	suppress?: 'all' | 'default';
};

export type AdapterSupport = AdapterSupportsKind | AdapterSupportWithMessage;

export interface AstroAdapterFeatures {
	/**
	 * Defines whether any on-demand rendering middleware code will be bundled when built. When enabled, this prevents
	 * middleware code from being bundled and imported by all pages during the build.
	 */
	edgeMiddleware: boolean;

	/**
	 * Allows you to force a specific output shape for the build. This can be useful for adapters that only work with
	 * a specific output type. For example, your adapter might expect a static website so it can create host-specific
	 * files. Defaults to `server` if not specified.
	 */
	buildOutput?: 'static' | 'server';

	/**
	 * Whether or not the adapter provides support for setting response headers for static pages. When this feature is
	 * enabled, Astro will return a map of the `Headers` emitted by the static pages. This map is available as `routeToHeaders`
	 * in the `astro:build:generated` hook and can be used to generate platform-specific output that controls HTTP headers,
	 * for example, to create a `_headers` file for platforms that support it.
	 */
	staticHeaders?: boolean;
}

/**
 * @internal
 * Configuration for Astro's client-side code from adapters.
 * This is used internally to inject adapter-specific behavior into client code.
 */
export interface AstroAdapterClientConfig {
	/**
	 * Headers to inject into Astro's internal fetch calls (Actions, View Transitions, Server Islands, Prefetch).
	 * Can be an object of headers or a function that returns headers.
	 */
	internalFetchHeaders?: Record<string, string> | (() => Record<string, string>);

	/**
	 * Query parameters to append to all asset URLs (images, stylesheets, scripts, etc.).
	 * Useful for adapters that need to track deployment versions or other metadata.
	 */
	assetQueryParams?: URLSearchParams;
}

interface AdapterExplicitProperties {
	/**