UNPKG

@nosecone/sveltekit

Version:

Protect your SvelteKit application with secure headers

116 lines (115 loc) 4 kB
import nosecone from "nosecone"; import type { CspDirectives, Options } from "nosecone"; import type { Handle, KitConfig } from "@sveltejs/kit"; export { withVercelToolbar, type Options, type NoseconeOptions, } from "nosecone"; /** * Nosecone SvelteKit defaults. */ export declare const defaults: { readonly directives: { readonly scriptSrc: readonly ["'strict-dynamic'"]; readonly baseUri: readonly ["'none'"]; readonly childSrc: readonly ["'none'"]; readonly connectSrc: readonly ["'self'"]; readonly defaultSrc: readonly ["'self'"]; readonly fontSrc: readonly ["'self'"]; readonly formAction: readonly ["'self'"]; readonly frameAncestors: readonly ["'none'"]; readonly frameSrc: readonly ["'none'"]; readonly imgSrc: readonly ["'self'", "blob:", "data:"]; readonly manifestSrc: readonly ["'self'"]; readonly mediaSrc: readonly ["'self'"]; readonly objectSrc: readonly ["'none'"]; readonly styleSrc: readonly ["'self'"]; readonly workerSrc: readonly ["'self'"]; }; readonly contentSecurityPolicy: { readonly directives: { readonly baseUri: readonly ["'none'"]; readonly childSrc: readonly ["'none'"]; readonly connectSrc: readonly ["'self'"]; readonly defaultSrc: readonly ["'self'"]; readonly fontSrc: readonly ["'self'"]; readonly formAction: readonly ["'self'"]; readonly frameAncestors: readonly ["'none'"]; readonly frameSrc: readonly ["'none'"]; readonly imgSrc: readonly ["'self'", "blob:", "data:"]; readonly manifestSrc: readonly ["'self'"]; readonly mediaSrc: readonly ["'self'"]; readonly objectSrc: readonly ["'none'"]; readonly scriptSrc: readonly ["'self'"]; readonly styleSrc: readonly ["'self'"]; readonly workerSrc: readonly ["'self'"]; }; }; readonly crossOriginEmbedderPolicy: { readonly policy: "require-corp"; }; readonly crossOriginOpenerPolicy: { readonly policy: "same-origin"; }; readonly crossOriginResourcePolicy: { readonly policy: "same-origin"; }; readonly originAgentCluster: true; readonly referrerPolicy: { readonly policy: readonly ["no-referrer"]; }; readonly strictTransportSecurity: { readonly maxAge: number; readonly includeSubDomains: true; readonly preload: false; }; readonly xContentTypeOptions: true; readonly xDnsPrefetchControl: { readonly allow: false; }; readonly xDownloadOptions: true; readonly xFrameOptions: { readonly action: "sameorigin"; }; readonly xPermittedCrossDomainPolicies: { readonly permittedPolicies: "none"; }; readonly xXssProtection: true; }; export { nosecone }; /** * Create security headers. * * @deprecated * Use the named export `nosecone` instead. */ export default nosecone; /** * Create a SvelteKit hook that sets secure headers on every request. * * @param options * Configuration to provide to Nosecone. * @returns * SvelteKit hook that sets secure headers. */ export declare function createHook(options?: Options): Handle; type SvelteKitCsp = Exclude<KitConfig["csp"], undefined>; /** * Content Security Policy configuration for SvelteKit. */ export type ContentSecurityPolicyConfig = { /** * Mode of the `Content-Security-Policy` header. */ mode?: SvelteKitCsp["mode"] | undefined; /** * Directives to use in the `Content-Security-Policy` header. */ directives?: CspDirectives | undefined; }; /** * Create a SvelteKit Content Security Policy configuration. * * @param options * Configuration. * @returns * SvelteKit Content Security Policy configuration. */ export declare function csp(options?: ContentSecurityPolicyConfig | undefined): SvelteKitCsp;