@adonisjs/shield
Version:
A middleware for AdonisJS to keep web applications secure from common web attacks
23 lines (22 loc) • 1.23 kB
TypeScript
/**
* CREDITS
* https://github.com/helmetjs/helmet/blob/main/middlewares/content-security-policy/index.ts
*/
import type { IncomingMessage, ServerResponse } from 'node:http';
type ContentSecurityPolicyDirectiveValueFunction = (req: IncomingMessage, res: ServerResponse) => string;
type ContentSecurityPolicyDirectiveValue = string | ContentSecurityPolicyDirectiveValueFunction;
export interface ContentSecurityPolicyOptions {
useDefaults?: boolean;
directives?: Record<string, null | Iterable<ContentSecurityPolicyDirectiveValue> | typeof dangerouslyDisableDefaultSrc>;
reportOnly?: boolean;
}
interface ContentSecurityPolicy {
(options?: Readonly<ContentSecurityPolicyOptions>): (req: IncomingMessage, res: ServerResponse, next: (err?: Error) => void) => void;
getDefaultDirectives: typeof getDefaultDirectives;
dangerouslyDisableDefaultSrc: typeof dangerouslyDisableDefaultSrc;
}
declare const dangerouslyDisableDefaultSrc: unique symbol;
declare const getDefaultDirectives: () => Record<string, Iterable<ContentSecurityPolicyDirectiveValue>>;
declare const contentSecurityPolicy: ContentSecurityPolicy;
export default contentSecurityPolicy;
export { dangerouslyDisableDefaultSrc, getDefaultDirectives };