diff --git a/types/helmet/helmet-tests.ts b/types/helmet/helmet-tests.ts index 1ec548e49b..8b4c5634ac 100644 --- a/types/helmet/helmet-tests.ts +++ b/types/helmet/helmet-tests.ts @@ -58,7 +58,8 @@ function contentSecurityPolicyTest() { disableAndroid: false }; - function reportCb(req: express.Request, res: express.Response) { return '/some-uri'; } + function reportUriCb(req: express.Request, res: express.Response) { return '/some-uri'; } + function reportOnlyCb(req: express.Request, res: express.Response) { return false; } app.use(helmet.contentSecurityPolicy()); app.use(helmet.contentSecurityPolicy({})); @@ -66,11 +67,12 @@ function contentSecurityPolicyTest() { app.use(helmet.contentSecurityPolicy({ directives: { defaultSrc: ["'self'"], - reportUri: reportCb, - 'report-uri': reportCb, - reportTo: reportCb, - 'report-to': reportCb + reportUri: reportUriCb, + 'report-uri': reportUriCb, + reportTo: reportUriCb, + 'report-to': reportUriCb }, + reportOnly: reportOnlyCb, loose: false, setAllHeaders: true })); diff --git a/types/helmet/index.d.ts b/types/helmet/index.d.ts index bdee793cdb..c5048d390f 100644 --- a/types/helmet/index.d.ts +++ b/types/helmet/index.d.ts @@ -105,8 +105,12 @@ declare namespace helmet { 'worker-src'?: HelmetCspDirectiveValue; } + export interface IHelmetContentSecurityReportOnlyFunction { + (req: express.Request, res: express.Response): boolean; + } + export interface IHelmetContentSecurityPolicyConfiguration { - reportOnly?: boolean; + reportOnly?: boolean | IHelmetContentSecurityReportOnlyFunction; setAllHeaders?: boolean; disableAndroid?: boolean; browserSniff?: boolean;