forked from DefinitelyTyped/DefinitelyTyped
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhelmet.d.ts
126 lines (107 loc) · 4.06 KB
/
helmet.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
// Type definitions for helmet
// Project: https://github.com/helmetjs/helmet
// Definitions by: Cyril Schumacher <https://github.com/cyrilschumacher>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/// <reference path="../express/express.d.ts" />
declare module "helmet" {
import express = require("express");
interface IHelmetCspDirectiveFunction {
(req: express.Request, res: express.Response): string;
}
type HelmetCspDirectiveValue = string | IHelmetCspDirectiveFunction;
interface IHelmetCspDirectives {
baseUri? : HelmetCspDirectiveValue[],
childSrc? : HelmetCspDirectiveValue[],
connectSrc? : HelmetCspDirectiveValue[],
defaultSrc? : HelmetCspDirectiveValue[],
fontSrc? : HelmetCspDirectiveValue[],
formAction? : HelmetCspDirectiveValue[],
frameAncestors? : HelmetCspDirectiveValue[],
frameSrc? : HelmetCspDirectiveValue[],
imgSrc? : HelmetCspDirectiveValue[],
mediaSrc? : HelmetCspDirectiveValue[],
objectSrc? : HelmetCspDirectiveValue[],
pluginTypes? : HelmetCspDirectiveValue[],
reportUri?: string,
sandbox? : HelmetCspDirectiveValue[],
scriptSrc? : HelmetCspDirectiveValue[],
styleSrc? : HelmetCspDirectiveValue[]
}
interface IHelmetCspConfiguration {
reportOnly? : boolean;
setAllHeaders? : boolean;
disableAndroid? : boolean;
browserSniff?: boolean;
directives? : IHelmetCspDirectives
}
interface IHelmetXssFilterConfiguration {
setOnOldIE? : boolean;
}
/**
* @summary Interface for helmet class.
* @interface
*/
interface Helmet {
/**
* @summary Constructor.
* @return {RequestHandler} The Request handler.
*/
():express.RequestHandler;
/**
* @summary Prevent clickjacking.
* @param {string} header The header.
* @return {RequestHandler} The Request handler.
*/
frameguard(header ?: string):express.RequestHandler;
/**
* @summary Hide "X-Powered-By" header.
* @param {Object} options The options.
* @return {RequestHandler} The Request handler.
*/
hidePoweredBy(options ?: Object):express.RequestHandler;
/**
* @summary Adds the "Strict-Transport-Security" header.
* @param {Object} options The options.
* @return {RequestHandler} The Request handler.
*/
hsts(options ?: Object):express.RequestHandler;
/**
* @summary Add the "X-Download-Options" header.
* @return {RequestHandler} The Request handler.
*/
ieNoOpen():express.RequestHandler;
/**
* @summary Add the "Cache-Control" and "Pragma" headers to stop caching.
* @return {RequestHandler} The Request handler.
*/
noCache(options ?: Object):express.RequestHandler;
/**
* @summary Adds the "X-Content-Type-Options" header.
* @return {RequestHandler} The Request handler.
*/
noSniff():express.RequestHandler;
/**
* @summary Adds the "Public-Key-Pins" header.
* @return {RequestHandler} The Request handler.
*/
publicKeyPins(options ?: Object):express.RequestHandler;
/**
* @summary Mitigate cross-site scripting attacks with the "X-XSS-Protection" header.
* @return {RequestHandler} The Request handler.
* @param {Object} options The options.
*/
xssFilter(options ?: IHelmetXssFilterConfiguration):express.RequestHandler;
/**
* @summary Set policy around third-party content via headers
* @return {RequestHandler} The Request handler
* @param {Object} options The options
*/
csp(options ?: IHelmetCspConfiguration): express.RequestHandler;
/**
* @see csp
*/
contentSecurityPolicy(options ?: IHelmetCspConfiguration): express.RequestHandler;
}
var helmet: Helmet;
export = helmet;
}