UNPKG

astro

Version:

Astro is a modern site builder with web best practices, performance, and DX front-of-mind.

32 lines (31 loc) 1.24 kB
import type { SSRManifestCSP } from '../app/types.js'; import type { CspDirective, CspHash, CspHashEntry, CspKind, CspResourceEntry } from './config.js'; export declare function normalizeCspResourceEntry(entry: CspResourceEntry): { resource: string; kind: CspKind; }; export declare function normalizeCspHashEntry(entry: CspHashEntry): { hash: CspHash; kind: CspKind; }; /** The resolved sources of a single CSP directive. */ export type CspDirectiveSources = { resources: string[]; hashes: string[]; }; /** * Groups a directive's `resources`/`hashes` entries by their `kind`. */ export declare function partitionByKind(directive: { resources: CspResourceEntry[]; hashes: CspHashEntry[]; }): Record<CspKind, CspDirectiveSources>; /** * `existingDirective` is something like `img-src 'self'`. Same as `newDirective`. * * Returns `undefined` if no directive has been deduped * @param existingDirective * @param newDirective */ export declare function deduplicateDirectiveValues(existingDirective: CspDirective, newDirective: CspDirective): CspDirective | undefined; export declare function pushDirective(directives: SSRManifestCSP['directives'], newDirective: CspDirective): SSRManifestCSP['directives'];