UNPKG

3.05 kBTypeScriptView Raw
1/// <reference types="node" />
2import { IncomingMessage, ServerResponse } from "http"
3import contentSecurityPolicy, { ContentSecurityPolicyOptions } from "./middlewares/content-security-policy"
4import crossOriginEmbedderPolicy from "./middlewares/cross-origin-embedder-policy"
5import crossOriginOpenerPolicy, { CrossOriginOpenerPolicyOptions } from "./middlewares/cross-origin-opener-policy"
6import crossOriginResourcePolicy, { CrossOriginResourcePolicyOptions } from "./middlewares/cross-origin-resource-policy"
7import expectCt, { ExpectCtOptions } from "./middlewares/expect-ct"
8import originAgentCluster from "./middlewares/origin-agent-cluster"
9import referrerPolicy, { ReferrerPolicyOptions } from "./middlewares/referrer-policy"
10import strictTransportSecurity, { StrictTransportSecurityOptions } from "./middlewares/strict-transport-security"
11import xContentTypeOptions from "./middlewares/x-content-type-options"
12import xDnsPrefetchControl, { XDnsPrefetchControlOptions } from "./middlewares/x-dns-prefetch-control"
13import xDownloadOptions from "./middlewares/x-download-options"
14import xFrameOptions, { XFrameOptionsOptions } from "./middlewares/x-frame-options"
15import xPermittedCrossDomainPolicies, { XPermittedCrossDomainPoliciesOptions } from "./middlewares/x-permitted-cross-domain-policies"
16import xPoweredBy from "./middlewares/x-powered-by"
17import xXssProtection from "./middlewares/x-xss-protection"
18interface HelmetOptions {
19 contentSecurityPolicy?: ContentSecurityPolicyOptions | boolean
20 crossOriginEmbedderPolicy?: boolean
21 crossOriginOpenerPolicy?: CrossOriginOpenerPolicyOptions | boolean
22 crossOriginResourcePolicy?: CrossOriginResourcePolicyOptions | boolean
23 dnsPrefetchControl?: XDnsPrefetchControlOptions | boolean
24 expectCt?: ExpectCtOptions | boolean
25 frameguard?: XFrameOptionsOptions | boolean
26 hidePoweredBy?: boolean
27 hsts?: StrictTransportSecurityOptions | boolean
28 ieNoOpen?: boolean
29 noSniff?: boolean
30 originAgentCluster?: boolean
31 permittedCrossDomainPolicies?: XPermittedCrossDomainPoliciesOptions | boolean
32 referrerPolicy?: ReferrerPolicyOptions | boolean
33 xssFilter?: boolean
34}
35interface Helmet {
36 (options?: Readonly<HelmetOptions>): (req: IncomingMessage, res: ServerResponse, next: (err?: unknown) => void) => void
37 contentSecurityPolicy: typeof contentSecurityPolicy
38 crossOriginEmbedderPolicy: typeof crossOriginEmbedderPolicy
39 crossOriginOpenerPolicy: typeof crossOriginOpenerPolicy
40 crossOriginResourcePolicy: typeof crossOriginResourcePolicy
41 dnsPrefetchControl: typeof xDnsPrefetchControl
42 expectCt: typeof expectCt
43 frameguard: typeof xFrameOptions
44 hidePoweredBy: typeof xPoweredBy
45 hsts: typeof strictTransportSecurity
46 ieNoOpen: typeof xDownloadOptions
47 noSniff: typeof xContentTypeOptions
48 originAgentCluster: typeof originAgentCluster
49 permittedCrossDomainPolicies: typeof xPermittedCrossDomainPolicies
50 referrerPolicy: typeof referrerPolicy
51 xssFilter: typeof xXssProtection
52 featurePolicy: () => never
53 hpkp: () => never
54 noCache: () => never
55}
56declare const helmet: Helmet
57export = helmet