|
2 | 2 | // Project: https://github.com/venables/koa-helmet#readme
|
3 | 3 | // Definitions by: Nick Simmons <https://github.com/nsimmons>
|
4 | 4 | // Jan Dolezel <https://github.com/dolezel>
|
5 |
| -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped |
| 5 | +// Julien Wajsberg <https://github.com/julienw> |
6 | 6 | // TypeScript Version: 2.3
|
7 | 7 |
|
8 |
| -import helmet from "helmet"; |
9 |
| -import { Middleware, Context } from "koa"; |
| 8 | +import type { default as helmet, HelmetOptions } from "helmet"; |
| 9 | +import { Middleware } from "koa"; |
10 | 10 |
|
11 |
| -type HelmetOptions = helmet.HelmetOptions; |
| 11 | +type Helmet = typeof helmet; |
12 | 12 |
|
13 |
| -declare namespace koaHelmet { |
14 |
| - type KoaHelmetContentSecurityPolicyDirectiveFunction = ( |
15 |
| - req?: Context["req"], |
16 |
| - res?: Context["res"], |
17 |
| - ) => string; |
| 13 | +type KoaHelmet = { |
| 14 | + [HelmetMiddleware in keyof Helmet]: ( |
| 15 | + ...options: Parameters<Helmet[HelmetMiddleware]> |
| 16 | + ) => Middleware; |
| 17 | +} & ((options?: HelmetOptions) => Middleware); |
18 | 18 |
|
19 |
| - type KoaHelmetCspDirectiveValue = |
20 |
| - | string |
21 |
| - | KoaHelmetContentSecurityPolicyDirectiveFunction; |
22 |
| - |
23 |
| - interface KoaHelmetContentSecurityPolicyDirectives { |
24 |
| - baseUri?: KoaHelmetCspDirectiveValue[]; |
25 |
| - childSrc?: KoaHelmetCspDirectiveValue[]; |
26 |
| - connectSrc?: KoaHelmetCspDirectiveValue[]; |
27 |
| - defaultSrc?: KoaHelmetCspDirectiveValue[]; |
28 |
| - fontSrc?: KoaHelmetCspDirectiveValue[]; |
29 |
| - formAction?: KoaHelmetCspDirectiveValue[]; |
30 |
| - frameAncestors?: KoaHelmetCspDirectiveValue[]; |
31 |
| - frameSrc?: KoaHelmetCspDirectiveValue[]; |
32 |
| - imgSrc?: KoaHelmetCspDirectiveValue[]; |
33 |
| - mediaSrc?: KoaHelmetCspDirectiveValue[]; |
34 |
| - objectSrc?: KoaHelmetCspDirectiveValue[]; |
35 |
| - pluginTypes?: KoaHelmetCspDirectiveValue[]; |
36 |
| - prefetchSrc?: KoaHelmetCspDirectiveValue[]; |
37 |
| - reportTo?: string; |
38 |
| - reportUri?: string; |
39 |
| - sandbox?: KoaHelmetCspDirectiveValue[]; |
40 |
| - scriptSrc?: KoaHelmetCspDirectiveValue[]; |
41 |
| - scriptSrcAttr?: KoaHelmetCspDirectiveValue[]; |
42 |
| - scriptSrcElem?: KoaHelmetCspDirectiveValue[]; |
43 |
| - styleSrc?: KoaHelmetCspDirectiveValue[]; |
44 |
| - styleSrcAttr?: KoaHelmetCspDirectiveValue[]; |
45 |
| - styleSrcElem?: KoaHelmetCspDirectiveValue[]; |
46 |
| - workerSrc?: KoaHelmetCspDirectiveValue[]; |
47 |
| - } |
48 |
| - |
49 |
| - interface KoaHelmetContentSecurityPolicyConfiguration { |
50 |
| - reportOnly?: boolean; |
51 |
| - useDefaults?: boolean; |
52 |
| - directives?: KoaHelmetContentSecurityPolicyDirectives; |
53 |
| - } |
54 |
| - |
55 |
| - interface KoaHelmet { |
56 |
| - (options?: HelmetOptions): Middleware; |
57 |
| - contentSecurityPolicy( |
58 |
| - options?: KoaHelmetContentSecurityPolicyConfiguration, |
59 |
| - ): Middleware; |
60 |
| - crossOriginEmbedderPolicy( |
61 |
| - options?: HelmetOptions["crossOriginEmbedderPolicy"], |
62 |
| - ): Middleware; |
63 |
| - crossOriginOpenerPolicy( |
64 |
| - options?: HelmetOptions["crossOriginOpenerPolicy"], |
65 |
| - ): Middleware; |
66 |
| - crossOriginResourcePolicy( |
67 |
| - options?: HelmetOptions["crossOriginResourcePolicy"], |
68 |
| - ): Middleware; |
69 |
| - dnsPrefetchControl( |
70 |
| - options?: HelmetOptions["dnsPrefetchControl"], |
71 |
| - ): Middleware; |
72 |
| - expectCt(options?: HelmetOptions["expectCt"]): Middleware; |
73 |
| - frameguard(options?: HelmetOptions["frameguard"]): Middleware; |
74 |
| - hidePoweredBy(options?: HelmetOptions["hidePoweredBy"]): Middleware; |
75 |
| - hsts(options?: HelmetOptions["hsts"]): Middleware; |
76 |
| - ieNoOpen(options?: HelmetOptions["ieNoOpen"]): Middleware; |
77 |
| - noSniff(options?: HelmetOptions["noSniff"]): Middleware; |
78 |
| - permittedCrossDomainPolicies( |
79 |
| - options?: HelmetOptions["permittedCrossDomainPolicies"], |
80 |
| - ): Middleware; |
81 |
| - referrerPolicy(options?: HelmetOptions["referrerPolicy"]): Middleware; |
82 |
| - xssFilter(options?: HelmetOptions["xssFilter"]): Middleware; |
83 |
| - } |
84 |
| -} |
85 |
| - |
86 |
| -declare const koaHelmet: koaHelmet.KoaHelmet; |
87 |
| -export = koaHelmet; |
| 19 | +const koaHelmet: KoaHelmet; |
| 20 | +export default koaHelmet; |
0 commit comments