@eggjs/security 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +569 -0
  3. package/README.zh-CN.md +441 -0
  4. package/dist/commonjs/agent.d.ts +6 -0
  5. package/dist/commonjs/agent.js +14 -0
  6. package/dist/commonjs/app/extend/agent.d.ts +5 -0
  7. package/dist/commonjs/app/extend/agent.js +11 -0
  8. package/dist/commonjs/app/extend/application.d.ts +16 -0
  9. package/dist/commonjs/app/extend/application.js +35 -0
  10. package/dist/commonjs/app/extend/context.d.ts +68 -0
  11. package/dist/commonjs/app/extend/context.js +283 -0
  12. package/dist/commonjs/app/extend/helper.d.ts +12 -0
  13. package/dist/commonjs/app/extend/helper.js +10 -0
  14. package/dist/commonjs/app/extend/response.d.ts +41 -0
  15. package/dist/commonjs/app/extend/response.js +85 -0
  16. package/dist/commonjs/app/middleware/securities.d.ts +4 -0
  17. package/dist/commonjs/app/middleware/securities.js +55 -0
  18. package/dist/commonjs/app.d.ts +6 -0
  19. package/dist/commonjs/app.js +29 -0
  20. package/dist/commonjs/config/config.default.d.ts +871 -0
  21. package/dist/commonjs/config/config.default.js +357 -0
  22. package/dist/commonjs/config/config.local.d.ts +5 -0
  23. package/dist/commonjs/config/config.local.js +10 -0
  24. package/dist/commonjs/index.d.ts +1 -0
  25. package/dist/commonjs/index.js +14 -0
  26. package/dist/commonjs/lib/extend/safe_curl.d.ts +16 -0
  27. package/dist/commonjs/lib/extend/safe_curl.js +28 -0
  28. package/dist/commonjs/lib/helper/cliFilter.d.ts +4 -0
  29. package/dist/commonjs/lib/helper/cliFilter.js +20 -0
  30. package/dist/commonjs/lib/helper/escape.d.ts +2 -0
  31. package/dist/commonjs/lib/helper/escape.js +8 -0
  32. package/dist/commonjs/lib/helper/escapeShellArg.d.ts +1 -0
  33. package/dist/commonjs/lib/helper/escapeShellArg.js +8 -0
  34. package/dist/commonjs/lib/helper/escapeShellCmd.d.ts +1 -0
  35. package/dist/commonjs/lib/helper/escapeShellCmd.js +17 -0
  36. package/dist/commonjs/lib/helper/index.d.ts +21 -0
  37. package/dist/commonjs/lib/helper/index.js +26 -0
  38. package/dist/commonjs/lib/helper/shtml.d.ts +2 -0
  39. package/dist/commonjs/lib/helper/shtml.js +76 -0
  40. package/dist/commonjs/lib/helper/sjs.d.ts +4 -0
  41. package/dist/commonjs/lib/helper/sjs.js +52 -0
  42. package/dist/commonjs/lib/helper/sjson.d.ts +1 -0
  43. package/dist/commonjs/lib/helper/sjson.js +45 -0
  44. package/dist/commonjs/lib/helper/spath.d.ts +5 -0
  45. package/dist/commonjs/lib/helper/spath.js +28 -0
  46. package/dist/commonjs/lib/helper/surl.d.ts +2 -0
  47. package/dist/commonjs/lib/helper/surl.js +33 -0
  48. package/dist/commonjs/lib/middlewares/csp.d.ts +4 -0
  49. package/dist/commonjs/lib/middlewares/csp.js +68 -0
  50. package/dist/commonjs/lib/middlewares/csrf.d.ts +4 -0
  51. package/dist/commonjs/lib/middlewares/csrf.js +42 -0
  52. package/dist/commonjs/lib/middlewares/dta.d.ts +3 -0
  53. package/dist/commonjs/lib/middlewares/dta.js +14 -0
  54. package/dist/commonjs/lib/middlewares/hsts.d.ts +4 -0
  55. package/dist/commonjs/lib/middlewares/hsts.js +23 -0
  56. package/dist/commonjs/lib/middlewares/index.d.ts +13 -0
  57. package/dist/commonjs/lib/middlewares/index.js +28 -0
  58. package/dist/commonjs/lib/middlewares/methodnoallow.d.ts +3 -0
  59. package/dist/commonjs/lib/middlewares/methodnoallow.js +22 -0
  60. package/dist/commonjs/lib/middlewares/noopen.d.ts +4 -0
  61. package/dist/commonjs/lib/middlewares/noopen.js +17 -0
  62. package/dist/commonjs/lib/middlewares/nosniff.d.ts +4 -0
  63. package/dist/commonjs/lib/middlewares/nosniff.js +30 -0
  64. package/dist/commonjs/lib/middlewares/referrerPolicy.d.ts +4 -0
  65. package/dist/commonjs/lib/middlewares/referrerPolicy.js +36 -0
  66. package/dist/commonjs/lib/middlewares/xframe.d.ts +4 -0
  67. package/dist/commonjs/lib/middlewares/xframe.js +19 -0
  68. package/dist/commonjs/lib/middlewares/xssProtection.d.ts +4 -0
  69. package/dist/commonjs/lib/middlewares/xssProtection.js +16 -0
  70. package/dist/commonjs/lib/utils.d.ts +19 -0
  71. package/dist/commonjs/lib/utils.js +206 -0
  72. package/dist/commonjs/package.json +3 -0
  73. package/dist/commonjs/types.d.ts +10 -0
  74. package/dist/commonjs/types.js +5 -0
  75. package/dist/esm/agent.d.ts +6 -0
  76. package/dist/esm/agent.js +11 -0
  77. package/dist/esm/app/extend/agent.d.ts +5 -0
  78. package/dist/esm/app/extend/agent.js +8 -0
  79. package/dist/esm/app/extend/application.d.ts +16 -0
  80. package/dist/esm/app/extend/application.js +32 -0
  81. package/dist/esm/app/extend/context.d.ts +68 -0
  82. package/dist/esm/app/extend/context.js +244 -0
  83. package/dist/esm/app/extend/helper.d.ts +12 -0
  84. package/dist/esm/app/extend/helper.js +5 -0
  85. package/dist/esm/app/extend/response.d.ts +41 -0
  86. package/dist/esm/app/extend/response.js +82 -0
  87. package/dist/esm/app/middleware/securities.d.ts +4 -0
  88. package/dist/esm/app/middleware/securities.js +50 -0
  89. package/dist/esm/app.d.ts +6 -0
  90. package/dist/esm/app.js +26 -0
  91. package/dist/esm/config/config.default.d.ts +871 -0
  92. package/dist/esm/config/config.default.js +351 -0
  93. package/dist/esm/config/config.local.d.ts +5 -0
  94. package/dist/esm/config/config.local.js +8 -0
  95. package/dist/esm/index.d.ts +1 -0
  96. package/dist/esm/index.js +12 -0
  97. package/dist/esm/lib/extend/safe_curl.d.ts +16 -0
  98. package/dist/esm/lib/extend/safe_curl.js +25 -0
  99. package/dist/esm/lib/helper/cliFilter.d.ts +4 -0
  100. package/dist/esm/lib/helper/cliFilter.js +17 -0
  101. package/dist/esm/lib/helper/escape.d.ts +2 -0
  102. package/dist/esm/lib/helper/escape.js +3 -0
  103. package/dist/esm/lib/helper/escapeShellArg.d.ts +1 -0
  104. package/dist/esm/lib/helper/escapeShellArg.js +5 -0
  105. package/dist/esm/lib/helper/escapeShellCmd.d.ts +1 -0
  106. package/dist/esm/lib/helper/escapeShellCmd.js +14 -0
  107. package/dist/esm/lib/helper/index.d.ts +21 -0
  108. package/dist/esm/lib/helper/index.js +21 -0
  109. package/dist/esm/lib/helper/shtml.d.ts +2 -0
  110. package/dist/esm/lib/helper/shtml.js +70 -0
  111. package/dist/esm/lib/helper/sjs.d.ts +4 -0
  112. package/dist/esm/lib/helper/sjs.js +49 -0
  113. package/dist/esm/lib/helper/sjson.d.ts +1 -0
  114. package/dist/esm/lib/helper/sjson.js +39 -0
  115. package/dist/esm/lib/helper/spath.d.ts +5 -0
  116. package/dist/esm/lib/helper/spath.js +25 -0
  117. package/dist/esm/lib/helper/surl.d.ts +2 -0
  118. package/dist/esm/lib/helper/surl.js +30 -0
  119. package/dist/esm/lib/middlewares/csp.d.ts +4 -0
  120. package/dist/esm/lib/middlewares/csp.js +63 -0
  121. package/dist/esm/lib/middlewares/csrf.d.ts +4 -0
  122. package/dist/esm/lib/middlewares/csrf.js +37 -0
  123. package/dist/esm/lib/middlewares/dta.d.ts +3 -0
  124. package/dist/esm/lib/middlewares/dta.js +12 -0
  125. package/dist/esm/lib/middlewares/hsts.d.ts +4 -0
  126. package/dist/esm/lib/middlewares/hsts.js +21 -0
  127. package/dist/esm/lib/middlewares/index.d.ts +13 -0
  128. package/dist/esm/lib/middlewares/index.js +23 -0
  129. package/dist/esm/lib/middlewares/methodnoallow.d.ts +3 -0
  130. package/dist/esm/lib/middlewares/methodnoallow.js +20 -0
  131. package/dist/esm/lib/middlewares/noopen.d.ts +4 -0
  132. package/dist/esm/lib/middlewares/noopen.js +15 -0
  133. package/dist/esm/lib/middlewares/nosniff.d.ts +4 -0
  134. package/dist/esm/lib/middlewares/nosniff.js +28 -0
  135. package/dist/esm/lib/middlewares/referrerPolicy.d.ts +4 -0
  136. package/dist/esm/lib/middlewares/referrerPolicy.js +34 -0
  137. package/dist/esm/lib/middlewares/xframe.d.ts +4 -0
  138. package/dist/esm/lib/middlewares/xframe.js +17 -0
  139. package/dist/esm/lib/middlewares/xssProtection.d.ts +4 -0
  140. package/dist/esm/lib/middlewares/xssProtection.js +14 -0
  141. package/dist/esm/lib/utils.d.ts +19 -0
  142. package/dist/esm/lib/utils.js +194 -0
  143. package/dist/esm/package.json +3 -0
  144. package/dist/esm/types.d.ts +10 -0
  145. package/dist/esm/types.js +3 -0
  146. package/dist/package.json +4 -0
  147. package/package.json +116 -0
  148. package/src/agent.ts +14 -0
  149. package/src/app/extend/agent.ts +14 -0
  150. package/src/app/extend/application.ts +51 -0
  151. package/src/app/extend/context.ts +282 -0
  152. package/src/app/extend/helper.ts +5 -0
  153. package/src/app/extend/response.ts +95 -0
  154. package/src/app/middleware/securities.ts +63 -0
  155. package/src/app.ts +31 -0
  156. package/src/config/config.default.ts +379 -0
  157. package/src/config/config.local.ts +9 -0
  158. package/src/index.ts +12 -0
  159. package/src/lib/extend/safe_curl.ts +35 -0
  160. package/src/lib/helper/cliFilter.ts +20 -0
  161. package/src/lib/helper/escape.ts +3 -0
  162. package/src/lib/helper/escapeShellArg.ts +4 -0
  163. package/src/lib/helper/escapeShellCmd.ts +16 -0
  164. package/src/lib/helper/index.ts +21 -0
  165. package/src/lib/helper/shtml.ts +77 -0
  166. package/src/lib/helper/sjs.ts +57 -0
  167. package/src/lib/helper/sjson.ts +35 -0
  168. package/src/lib/helper/spath.ts +27 -0
  169. package/src/lib/helper/surl.ts +35 -0
  170. package/src/lib/middlewares/csp.ts +70 -0
  171. package/src/lib/middlewares/csrf.ts +44 -0
  172. package/src/lib/middlewares/dta.ts +13 -0
  173. package/src/lib/middlewares/hsts.ts +24 -0
  174. package/src/lib/middlewares/index.ts +23 -0
  175. package/src/lib/middlewares/methodnoallow.ts +23 -0
  176. package/src/lib/middlewares/noopen.ts +18 -0
  177. package/src/lib/middlewares/nosniff.ts +32 -0
  178. package/src/lib/middlewares/referrerPolicy.ts +39 -0
  179. package/src/lib/middlewares/xframe.ts +20 -0
  180. package/src/lib/middlewares/xssProtection.ts +17 -0
  181. package/src/lib/utils.ts +208 -0
  182. package/src/types.ts +16 -0
  183. package/src/typings/index.d.ts +4 -0
@@ -0,0 +1,871 @@
1
+ import z from 'zod';
2
+ import { Context } from '@eggjs/core';
3
+ declare const CSRFSupportRequestItem: z.ZodObject<{
4
+ path: z.ZodType<RegExp, z.ZodTypeDef, RegExp>;
5
+ methods: z.ZodArray<z.ZodString, "many">;
6
+ }, "strip", z.ZodTypeAny, {
7
+ path: RegExp;
8
+ methods: string[];
9
+ }, {
10
+ path: RegExp;
11
+ methods: string[];
12
+ }>;
13
+ export type CSRFSupportRequestItem = z.infer<typeof CSRFSupportRequestItem>;
14
+ export declare const LookupAddress: z.ZodObject<{
15
+ address: z.ZodString;
16
+ family: z.ZodNumber;
17
+ }, "strip", z.ZodTypeAny, {
18
+ address: string;
19
+ family: number;
20
+ }, {
21
+ address: string;
22
+ family: number;
23
+ }>;
24
+ export type LookupAddress = z.infer<typeof LookupAddress>;
25
+ declare const SSRFCheckAddressFunction: z.ZodFunction<z.ZodTuple<[z.ZodUnion<[z.ZodString, z.ZodObject<{
26
+ address: z.ZodString;
27
+ family: z.ZodNumber;
28
+ }, "strip", z.ZodTypeAny, {
29
+ address: string;
30
+ family: number;
31
+ }, {
32
+ address: string;
33
+ family: number;
34
+ }>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{
35
+ address: z.ZodString;
36
+ family: z.ZodNumber;
37
+ }, "strip", z.ZodTypeAny, {
38
+ address: string;
39
+ family: number;
40
+ }, {
41
+ address: string;
42
+ family: number;
43
+ }>]>, "many">]>, z.ZodUnion<[z.ZodNumber, z.ZodString]>, z.ZodString], z.ZodUnknown>, z.ZodBoolean>;
44
+ /**
45
+ * SSRF check address function
46
+ * `(address, family, hostname) => boolean`
47
+ */
48
+ export type SSRFCheckAddressFunction = z.infer<typeof SSRFCheckAddressFunction>;
49
+ export declare const SecurityMiddlewareName: z.ZodEnum<["csrf", "hsts", "methodnoallow", "noopen", "nosniff", "csp", "xssProtection", "xframe", "dta"]>;
50
+ export type SecurityMiddlewareName = z.infer<typeof SecurityMiddlewareName>;
51
+ /**
52
+ * (ctx) => boolean
53
+ */
54
+ declare const IgnoreOrMatchHandler: z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>;
55
+ export type IgnoreOrMatchHandler = z.infer<typeof IgnoreOrMatchHandler>;
56
+ declare const IgnoreOrMatch: z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>;
57
+ export type IgnoreOrMatch = z.infer<typeof IgnoreOrMatch>;
58
+ declare const IgnoreOrMatchOption: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, "many">]>>;
59
+ export type IgnoreOrMatchOption = z.infer<typeof IgnoreOrMatchOption>;
60
+ /**
61
+ * security options
62
+ * @member Config#security
63
+ */
64
+ export declare const SecurityConfig: z.ZodObject<{
65
+ /**
66
+ * domain white list
67
+ *
68
+ * Default to `[]`
69
+ */
70
+ domainWhiteList: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
71
+ /**
72
+ * protocol white list
73
+ *
74
+ * Default to `[]`
75
+ */
76
+ protocolWhiteList: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
77
+ /**
78
+ * default open security middleware
79
+ *
80
+ * Default to `'csrf,hsts,methodnoallow,noopen,nosniff,csp,xssProtection,xframe,dta'`
81
+ */
82
+ defaultMiddleware: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodEnum<["csrf", "hsts", "methodnoallow", "noopen", "nosniff", "csp", "xssProtection", "xframe", "dta"]>, "many">]>>;
83
+ /**
84
+ * whether defend csrf attack
85
+ */
86
+ csrf: z.ZodEffects<z.ZodDefault<z.ZodObject<{
87
+ match: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, "many">]>>;
88
+ ignore: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, "many">]>>;
89
+ /**
90
+ * Default to `true`
91
+ */
92
+ enable: z.ZodDefault<z.ZodBoolean>;
93
+ /**
94
+ * csrf token detect source type
95
+ *
96
+ * Default to `'ctoken'`
97
+ */
98
+ type: z.ZodDefault<z.ZodEnum<["ctoken", "referer", "all", "any"]>>;
99
+ /**
100
+ * ignore json request
101
+ *
102
+ * Default to `false`
103
+ *
104
+ * @deprecated is not safe now, don't use it
105
+ */
106
+ ignoreJSON: z.ZodDefault<z.ZodBoolean>;
107
+ /**
108
+ * csrf token cookie name
109
+ *
110
+ * Default to `'csrfToken'`
111
+ */
112
+ cookieName: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
113
+ /**
114
+ * csrf token session name
115
+ *
116
+ * Default to `'csrfToken'`
117
+ */
118
+ sessionName: z.ZodDefault<z.ZodString>;
119
+ /**
120
+ * csrf token request header name
121
+ *
122
+ * Default to `'x-csrf-token'`
123
+ */
124
+ headerName: z.ZodDefault<z.ZodString>;
125
+ /**
126
+ * csrf token request body field name
127
+ *
128
+ * Default to `'_csrf'`
129
+ */
130
+ bodyName: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
131
+ /**
132
+ * csrf token request query field name
133
+ *
134
+ * Default to `'_csrf'`
135
+ */
136
+ queryName: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
137
+ /**
138
+ * rotate csrf token when it is invalid
139
+ *
140
+ * Default to `false`
141
+ */
142
+ rotateWhenInvalid: z.ZodDefault<z.ZodBoolean>;
143
+ /**
144
+ * These config works when using `'ctoken'` type
145
+ *
146
+ * Default to `false`
147
+ */
148
+ useSession: z.ZodDefault<z.ZodBoolean>;
149
+ /**
150
+ * csrf token cookie domain setting,
151
+ * can be `(ctx) => string` or `string`
152
+ *
153
+ * Default to `undefined`, auto set the cookie domain in the safe way
154
+ */
155
+ cookieDomain: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodString>]>>;
156
+ /**
157
+ * csrf token check requests config
158
+ */
159
+ supportedRequests: z.ZodDefault<z.ZodArray<z.ZodObject<{
160
+ path: z.ZodType<RegExp, z.ZodTypeDef, RegExp>;
161
+ methods: z.ZodArray<z.ZodString, "many">;
162
+ }, "strip", z.ZodTypeAny, {
163
+ path: RegExp;
164
+ methods: string[];
165
+ }, {
166
+ path: RegExp;
167
+ methods: string[];
168
+ }>, "many">>;
169
+ /**
170
+ * referer or origin header white list.
171
+ * It only works when using `'referer'` type
172
+ *
173
+ * Default to `[]`
174
+ */
175
+ refererWhiteList: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
176
+ /**
177
+ * csrf token cookie options
178
+ *
179
+ * Default to `{
180
+ * signed: false,
181
+ * httpOnly: false,
182
+ * overwrite: true,
183
+ * }`
184
+ */
185
+ cookieOptions: z.ZodDefault<z.ZodObject<{
186
+ signed: z.ZodBoolean;
187
+ httpOnly: z.ZodBoolean;
188
+ overwrite: z.ZodBoolean;
189
+ }, "strip", z.ZodTypeAny, {
190
+ signed: boolean;
191
+ httpOnly: boolean;
192
+ overwrite: boolean;
193
+ }, {
194
+ signed: boolean;
195
+ httpOnly: boolean;
196
+ overwrite: boolean;
197
+ }>>;
198
+ }, "strip", z.ZodTypeAny, {
199
+ type: "ctoken" | "referer" | "all" | "any";
200
+ enable: boolean;
201
+ ignoreJSON: boolean;
202
+ cookieName: string | string[];
203
+ sessionName: string;
204
+ headerName: string;
205
+ bodyName: string | string[];
206
+ queryName: string | string[];
207
+ rotateWhenInvalid: boolean;
208
+ useSession: boolean;
209
+ supportedRequests: {
210
+ path: RegExp;
211
+ methods: string[];
212
+ }[];
213
+ refererWhiteList: string[];
214
+ cookieOptions: {
215
+ signed: boolean;
216
+ httpOnly: boolean;
217
+ overwrite: boolean;
218
+ };
219
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
220
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
221
+ cookieDomain?: string | ((args_0: Context, ...args: unknown[]) => string) | undefined;
222
+ }, {
223
+ type?: "ctoken" | "referer" | "all" | "any" | undefined;
224
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
225
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
226
+ enable?: boolean | undefined;
227
+ ignoreJSON?: boolean | undefined;
228
+ cookieName?: string | string[] | undefined;
229
+ sessionName?: string | undefined;
230
+ headerName?: string | undefined;
231
+ bodyName?: string | string[] | undefined;
232
+ queryName?: string | string[] | undefined;
233
+ rotateWhenInvalid?: boolean | undefined;
234
+ useSession?: boolean | undefined;
235
+ cookieDomain?: string | ((args_0: Context, ...args: unknown[]) => string) | undefined;
236
+ supportedRequests?: {
237
+ path: RegExp;
238
+ methods: string[];
239
+ }[] | undefined;
240
+ refererWhiteList?: string[] | undefined;
241
+ cookieOptions?: {
242
+ signed: boolean;
243
+ httpOnly: boolean;
244
+ overwrite: boolean;
245
+ } | undefined;
246
+ }>>, {
247
+ type: "ctoken" | "referer" | "all" | "any";
248
+ enable: boolean;
249
+ ignoreJSON: boolean;
250
+ cookieName: string | string[];
251
+ sessionName: string;
252
+ headerName: string;
253
+ bodyName: string | string[];
254
+ queryName: string | string[];
255
+ rotateWhenInvalid: boolean;
256
+ useSession: boolean;
257
+ supportedRequests: {
258
+ path: RegExp;
259
+ methods: string[];
260
+ }[];
261
+ refererWhiteList: string[];
262
+ cookieOptions: {
263
+ signed: boolean;
264
+ httpOnly: boolean;
265
+ overwrite: boolean;
266
+ };
267
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
268
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
269
+ cookieDomain?: string | ((args_0: Context, ...args: unknown[]) => string) | undefined;
270
+ }, unknown>;
271
+ /**
272
+ * whether enable X-Frame-Options response header
273
+ */
274
+ xframe: z.ZodDefault<z.ZodObject<{
275
+ match: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, "many">]>>;
276
+ ignore: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, "many">]>>;
277
+ /**
278
+ * Default to `true`
279
+ */
280
+ enable: z.ZodDefault<z.ZodBoolean>;
281
+ /**
282
+ * X-Frame-Options value, can be `'DENY'`, `'SAMEORIGIN'`, `'ALLOW-FROM https://example.com'`
283
+ *
284
+ * Default to `'SAMEORIGIN'`
285
+ */
286
+ value: z.ZodDefault<z.ZodString>;
287
+ }, "strip", z.ZodTypeAny, {
288
+ value: string;
289
+ enable: boolean;
290
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
291
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
292
+ }, {
293
+ value?: string | undefined;
294
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
295
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
296
+ enable?: boolean | undefined;
297
+ }>>;
298
+ /**
299
+ * whether enable Strict-Transport-Security response header
300
+ */
301
+ hsts: z.ZodDefault<z.ZodObject<{
302
+ match: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, "many">]>>;
303
+ ignore: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, "many">]>>;
304
+ /**
305
+ * Default to `false`
306
+ */
307
+ enable: z.ZodDefault<z.ZodBoolean>;
308
+ /**
309
+ * Max age of Strict-Transport-Security in seconds
310
+ *
311
+ * Default to `365 * 24 * 3600`
312
+ */
313
+ maxAge: z.ZodDefault<z.ZodNumber>;
314
+ /**
315
+ * Whether include sub domains
316
+ *
317
+ * Default to `false`
318
+ */
319
+ includeSubdomains: z.ZodDefault<z.ZodBoolean>;
320
+ }, "strip", z.ZodTypeAny, {
321
+ enable: boolean;
322
+ maxAge: number;
323
+ includeSubdomains: boolean;
324
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
325
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
326
+ }, {
327
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
328
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
329
+ enable?: boolean | undefined;
330
+ maxAge?: number | undefined;
331
+ includeSubdomains?: boolean | undefined;
332
+ }>>;
333
+ /**
334
+ * whether enable Http Method filter
335
+ */
336
+ methodnoallow: z.ZodDefault<z.ZodObject<{
337
+ match: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, "many">]>>;
338
+ ignore: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, "many">]>>;
339
+ /**
340
+ * Default to `true`
341
+ */
342
+ enable: z.ZodDefault<z.ZodBoolean>;
343
+ }, "strip", z.ZodTypeAny, {
344
+ enable: boolean;
345
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
346
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
347
+ }, {
348
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
349
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
350
+ enable?: boolean | undefined;
351
+ }>>;
352
+ /**
353
+ * whether enable IE automatically download open
354
+ */
355
+ noopen: z.ZodDefault<z.ZodObject<{
356
+ match: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, "many">]>>;
357
+ ignore: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, "many">]>>;
358
+ /**
359
+ * Default to `true`
360
+ */
361
+ enable: z.ZodDefault<z.ZodBoolean>;
362
+ }, "strip", z.ZodTypeAny, {
363
+ enable: boolean;
364
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
365
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
366
+ }, {
367
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
368
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
369
+ enable?: boolean | undefined;
370
+ }>>;
371
+ /**
372
+ * whether enable IE8 automatically detect mime
373
+ */
374
+ nosniff: z.ZodDefault<z.ZodObject<{
375
+ match: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, "many">]>>;
376
+ ignore: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, "many">]>>;
377
+ /**
378
+ * Default to `true`
379
+ */
380
+ enable: z.ZodDefault<z.ZodBoolean>;
381
+ }, "strip", z.ZodTypeAny, {
382
+ enable: boolean;
383
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
384
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
385
+ }, {
386
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
387
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
388
+ enable?: boolean | undefined;
389
+ }>>;
390
+ /**
391
+ * whether enable IE8 XSS Filter
392
+ */
393
+ xssProtection: z.ZodDefault<z.ZodObject<{
394
+ match: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, "many">]>>;
395
+ ignore: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, "many">]>>;
396
+ /**
397
+ * Default to `true`
398
+ */
399
+ enable: z.ZodDefault<z.ZodBoolean>;
400
+ /**
401
+ * X-XSS-Protection response header value
402
+ *
403
+ * Default to `'1; mode=block'`
404
+ */
405
+ value: z.ZodDefault<z.ZodString>;
406
+ }, "strip", z.ZodTypeAny, {
407
+ value: string;
408
+ enable: boolean;
409
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
410
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
411
+ }, {
412
+ value?: string | undefined;
413
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
414
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
415
+ enable?: boolean | undefined;
416
+ }>>;
417
+ /**
418
+ * content security policy config
419
+ */
420
+ csp: z.ZodDefault<z.ZodObject<{
421
+ match: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, "many">]>>;
422
+ ignore: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, "many">]>>;
423
+ /**
424
+ * Default to `false`
425
+ */
426
+ enable: z.ZodDefault<z.ZodBoolean>;
427
+ policy: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">, z.ZodBoolean]>>>;
428
+ /**
429
+ * whether enable report only mode
430
+ * Default to `undefined`
431
+ */
432
+ reportOnly: z.ZodOptional<z.ZodBoolean>;
433
+ /**
434
+ * whether support IE
435
+ * Default to `undefined`
436
+ */
437
+ supportIE: z.ZodOptional<z.ZodBoolean>;
438
+ }, "strip", z.ZodTypeAny, {
439
+ enable: boolean;
440
+ policy: Record<string, string | boolean | string[]>;
441
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
442
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
443
+ reportOnly?: boolean | undefined;
444
+ supportIE?: boolean | undefined;
445
+ }, {
446
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
447
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
448
+ enable?: boolean | undefined;
449
+ policy?: Record<string, string | boolean | string[]> | undefined;
450
+ reportOnly?: boolean | undefined;
451
+ supportIE?: boolean | undefined;
452
+ }>>;
453
+ /**
454
+ * whether enable referrer policy
455
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy
456
+ */
457
+ referrerPolicy: z.ZodDefault<z.ZodObject<{
458
+ match: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, "many">]>>;
459
+ ignore: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, "many">]>>;
460
+ /**
461
+ * Default to `false`
462
+ */
463
+ enable: z.ZodDefault<z.ZodBoolean>;
464
+ /**
465
+ * referrer policy value
466
+ *
467
+ * Default to `'no-referrer-when-downgrade'`
468
+ */
469
+ value: z.ZodDefault<z.ZodString>;
470
+ }, "strip", z.ZodTypeAny, {
471
+ value: string;
472
+ enable: boolean;
473
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
474
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
475
+ }, {
476
+ value?: string | undefined;
477
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
478
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
479
+ enable?: boolean | undefined;
480
+ }>>;
481
+ /**
482
+ * whether enable auto avoid directory traversal attack
483
+ */
484
+ dta: z.ZodDefault<z.ZodObject<{
485
+ match: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, "many">]>>;
486
+ ignore: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, "many">]>>;
487
+ /**
488
+ * Default to `true`
489
+ */
490
+ enable: z.ZodDefault<z.ZodBoolean>;
491
+ }, "strip", z.ZodTypeAny, {
492
+ enable: boolean;
493
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
494
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
495
+ }, {
496
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
497
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
498
+ enable?: boolean | undefined;
499
+ }>>;
500
+ ssrf: z.ZodDefault<z.ZodObject<{
501
+ ipBlackList: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
502
+ ipExceptionList: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
503
+ hostnameExceptionList: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
504
+ checkAddress: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodUnion<[z.ZodString, z.ZodObject<{
505
+ address: z.ZodString;
506
+ family: z.ZodNumber;
507
+ }, "strip", z.ZodTypeAny, {
508
+ address: string;
509
+ family: number;
510
+ }, {
511
+ address: string;
512
+ family: number;
513
+ }>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{
514
+ address: z.ZodString;
515
+ family: z.ZodNumber;
516
+ }, "strip", z.ZodTypeAny, {
517
+ address: string;
518
+ family: number;
519
+ }, {
520
+ address: string;
521
+ family: number;
522
+ }>]>, "many">]>, z.ZodUnion<[z.ZodNumber, z.ZodString]>, z.ZodString], z.ZodUnknown>, z.ZodBoolean>>;
523
+ }, "strip", z.ZodTypeAny, {
524
+ ipBlackList?: string[] | undefined;
525
+ ipExceptionList?: string[] | undefined;
526
+ hostnameExceptionList?: string[] | undefined;
527
+ checkAddress?: ((args_0: string | {
528
+ address: string;
529
+ family: number;
530
+ } | (string | {
531
+ address: string;
532
+ family: number;
533
+ })[], args_1: string | number, args_2: string, ...args: unknown[]) => boolean) | undefined;
534
+ }, {
535
+ ipBlackList?: string[] | undefined;
536
+ ipExceptionList?: string[] | undefined;
537
+ hostnameExceptionList?: string[] | undefined;
538
+ checkAddress?: ((args_0: string | {
539
+ address: string;
540
+ family: number;
541
+ } | (string | {
542
+ address: string;
543
+ family: number;
544
+ })[], args_1: string | number, args_2: string, ...args: unknown[]) => boolean) | undefined;
545
+ }>>;
546
+ match: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, "many">]>>;
547
+ ignore: z.ZodOptional<z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodFunction<z.ZodTuple<[z.ZodType<Context, z.ZodTypeDef, Context>], z.ZodUnknown>, z.ZodBoolean>]>, "many">]>>;
548
+ __protocolWhiteListSet: z.ZodReadonly<z.ZodOptional<z.ZodSet<z.ZodString>>>;
549
+ }, "strip", z.ZodTypeAny, {
550
+ domainWhiteList: string[];
551
+ protocolWhiteList: string[];
552
+ csrf: {
553
+ type: "ctoken" | "referer" | "all" | "any";
554
+ enable: boolean;
555
+ ignoreJSON: boolean;
556
+ cookieName: string | string[];
557
+ sessionName: string;
558
+ headerName: string;
559
+ bodyName: string | string[];
560
+ queryName: string | string[];
561
+ rotateWhenInvalid: boolean;
562
+ useSession: boolean;
563
+ supportedRequests: {
564
+ path: RegExp;
565
+ methods: string[];
566
+ }[];
567
+ refererWhiteList: string[];
568
+ cookieOptions: {
569
+ signed: boolean;
570
+ httpOnly: boolean;
571
+ overwrite: boolean;
572
+ };
573
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
574
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
575
+ cookieDomain?: string | ((args_0: Context, ...args: unknown[]) => string) | undefined;
576
+ };
577
+ hsts: {
578
+ enable: boolean;
579
+ maxAge: number;
580
+ includeSubdomains: boolean;
581
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
582
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
583
+ };
584
+ methodnoallow: {
585
+ enable: boolean;
586
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
587
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
588
+ };
589
+ noopen: {
590
+ enable: boolean;
591
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
592
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
593
+ };
594
+ nosniff: {
595
+ enable: boolean;
596
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
597
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
598
+ };
599
+ csp: {
600
+ enable: boolean;
601
+ policy: Record<string, string | boolean | string[]>;
602
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
603
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
604
+ reportOnly?: boolean | undefined;
605
+ supportIE?: boolean | undefined;
606
+ };
607
+ xssProtection: {
608
+ value: string;
609
+ enable: boolean;
610
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
611
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
612
+ };
613
+ xframe: {
614
+ value: string;
615
+ enable: boolean;
616
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
617
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
618
+ };
619
+ dta: {
620
+ enable: boolean;
621
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
622
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
623
+ };
624
+ defaultMiddleware: string | ("csrf" | "hsts" | "methodnoallow" | "noopen" | "nosniff" | "csp" | "xssProtection" | "xframe" | "dta")[];
625
+ referrerPolicy: {
626
+ value: string;
627
+ enable: boolean;
628
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
629
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
630
+ };
631
+ ssrf: {
632
+ ipBlackList?: string[] | undefined;
633
+ ipExceptionList?: string[] | undefined;
634
+ hostnameExceptionList?: string[] | undefined;
635
+ checkAddress?: ((args_0: string | {
636
+ address: string;
637
+ family: number;
638
+ } | (string | {
639
+ address: string;
640
+ family: number;
641
+ })[], args_1: string | number, args_2: string, ...args: unknown[]) => boolean) | undefined;
642
+ };
643
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
644
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
645
+ __protocolWhiteListSet?: ReadonlySet<string> | undefined;
646
+ }, {
647
+ domainWhiteList?: string[] | undefined;
648
+ protocolWhiteList?: string[] | undefined;
649
+ csrf?: unknown;
650
+ hsts?: {
651
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
652
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
653
+ enable?: boolean | undefined;
654
+ maxAge?: number | undefined;
655
+ includeSubdomains?: boolean | undefined;
656
+ } | undefined;
657
+ methodnoallow?: {
658
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
659
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
660
+ enable?: boolean | undefined;
661
+ } | undefined;
662
+ noopen?: {
663
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
664
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
665
+ enable?: boolean | undefined;
666
+ } | undefined;
667
+ nosniff?: {
668
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
669
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
670
+ enable?: boolean | undefined;
671
+ } | undefined;
672
+ csp?: {
673
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
674
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
675
+ enable?: boolean | undefined;
676
+ policy?: Record<string, string | boolean | string[]> | undefined;
677
+ reportOnly?: boolean | undefined;
678
+ supportIE?: boolean | undefined;
679
+ } | undefined;
680
+ xssProtection?: {
681
+ value?: string | undefined;
682
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
683
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
684
+ enable?: boolean | undefined;
685
+ } | undefined;
686
+ xframe?: {
687
+ value?: string | undefined;
688
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
689
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
690
+ enable?: boolean | undefined;
691
+ } | undefined;
692
+ dta?: {
693
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
694
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
695
+ enable?: boolean | undefined;
696
+ } | undefined;
697
+ defaultMiddleware?: string | ("csrf" | "hsts" | "methodnoallow" | "noopen" | "nosniff" | "csp" | "xssProtection" | "xframe" | "dta")[] | undefined;
698
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
699
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
700
+ referrerPolicy?: {
701
+ value?: string | undefined;
702
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
703
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
704
+ enable?: boolean | undefined;
705
+ } | undefined;
706
+ ssrf?: {
707
+ ipBlackList?: string[] | undefined;
708
+ ipExceptionList?: string[] | undefined;
709
+ hostnameExceptionList?: string[] | undefined;
710
+ checkAddress?: ((args_0: string | {
711
+ address: string;
712
+ family: number;
713
+ } | (string | {
714
+ address: string;
715
+ family: number;
716
+ })[], args_1: string | number, args_2: string, ...args: unknown[]) => boolean) | undefined;
717
+ } | undefined;
718
+ __protocolWhiteListSet?: ReadonlySet<string> | undefined;
719
+ }>;
720
+ export type SecurityConfig = z.infer<typeof SecurityConfig>;
721
+ declare const SecurityHelperOnTagAttrHandler: z.ZodFunction<z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString, z.ZodBoolean], z.ZodUnknown>, z.ZodUnion<[z.ZodString, z.ZodVoid]>>;
722
+ /**
723
+ * (tag: string, name: string, value: string, isWhiteAttr: boolean) => string | void
724
+ */
725
+ export type SecurityHelperOnTagAttrHandler = z.infer<typeof SecurityHelperOnTagAttrHandler>;
726
+ export declare const SecurityHelperConfig: z.ZodObject<{
727
+ shtml: z.ZodDefault<z.ZodObject<{
728
+ /**
729
+ * tag attribute white list
730
+ */
731
+ whiteList: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
732
+ /**
733
+ * domain white list
734
+ * @deprecated use `config.security.domainWhiteList` instead
735
+ */
736
+ domainWhiteList: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
737
+ /**
738
+ * tag attribute handler
739
+ */
740
+ onTagAttr: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString, z.ZodBoolean], z.ZodUnknown>, z.ZodUnion<[z.ZodString, z.ZodVoid]>>>;
741
+ }, "strip", z.ZodTypeAny, {
742
+ domainWhiteList?: string[] | undefined;
743
+ whiteList?: Record<string, string[]> | undefined;
744
+ onTagAttr?: ((args_0: string, args_1: string, args_2: string, args_3: boolean, ...args: unknown[]) => string | void) | undefined;
745
+ }, {
746
+ domainWhiteList?: string[] | undefined;
747
+ whiteList?: Record<string, string[]> | undefined;
748
+ onTagAttr?: ((args_0: string, args_1: string, args_2: string, args_3: boolean, ...args: unknown[]) => string | void) | undefined;
749
+ }>>;
750
+ }, "strip", z.ZodTypeAny, {
751
+ shtml: {
752
+ domainWhiteList?: string[] | undefined;
753
+ whiteList?: Record<string, string[]> | undefined;
754
+ onTagAttr?: ((args_0: string, args_1: string, args_2: string, args_3: boolean, ...args: unknown[]) => string | void) | undefined;
755
+ };
756
+ }, {
757
+ shtml?: {
758
+ domainWhiteList?: string[] | undefined;
759
+ whiteList?: Record<string, string[]> | undefined;
760
+ onTagAttr?: ((args_0: string, args_1: string, args_2: string, args_3: boolean, ...args: unknown[]) => string | void) | undefined;
761
+ } | undefined;
762
+ }>;
763
+ export type SecurityHelperConfig = z.infer<typeof SecurityHelperConfig>;
764
+ declare const _default: {
765
+ security: {
766
+ domainWhiteList: string[];
767
+ protocolWhiteList: string[];
768
+ csrf: {
769
+ type: "ctoken" | "referer" | "all" | "any";
770
+ enable: boolean;
771
+ ignoreJSON: boolean;
772
+ cookieName: string | string[];
773
+ sessionName: string;
774
+ headerName: string;
775
+ bodyName: string | string[];
776
+ queryName: string | string[];
777
+ rotateWhenInvalid: boolean;
778
+ useSession: boolean;
779
+ supportedRequests: {
780
+ path: RegExp;
781
+ methods: string[];
782
+ }[];
783
+ refererWhiteList: string[];
784
+ cookieOptions: {
785
+ signed: boolean;
786
+ httpOnly: boolean;
787
+ overwrite: boolean;
788
+ };
789
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
790
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
791
+ cookieDomain?: string | ((args_0: Context, ...args: unknown[]) => string) | undefined;
792
+ };
793
+ hsts: {
794
+ enable: boolean;
795
+ maxAge: number;
796
+ includeSubdomains: boolean;
797
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
798
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
799
+ };
800
+ methodnoallow: {
801
+ enable: boolean;
802
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
803
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
804
+ };
805
+ noopen: {
806
+ enable: boolean;
807
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
808
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
809
+ };
810
+ nosniff: {
811
+ enable: boolean;
812
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
813
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
814
+ };
815
+ csp: {
816
+ enable: boolean;
817
+ policy: Record<string, string | boolean | string[]>;
818
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
819
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
820
+ reportOnly?: boolean | undefined;
821
+ supportIE?: boolean | undefined;
822
+ };
823
+ xssProtection: {
824
+ value: string;
825
+ enable: boolean;
826
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
827
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
828
+ };
829
+ xframe: {
830
+ value: string;
831
+ enable: boolean;
832
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
833
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
834
+ };
835
+ dta: {
836
+ enable: boolean;
837
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
838
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
839
+ };
840
+ defaultMiddleware: string | ("csrf" | "hsts" | "methodnoallow" | "noopen" | "nosniff" | "csp" | "xssProtection" | "xframe" | "dta")[];
841
+ referrerPolicy: {
842
+ value: string;
843
+ enable: boolean;
844
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
845
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
846
+ };
847
+ ssrf: {
848
+ ipBlackList?: string[] | undefined;
849
+ ipExceptionList?: string[] | undefined;
850
+ hostnameExceptionList?: string[] | undefined;
851
+ checkAddress?: ((args_0: string | {
852
+ address: string;
853
+ family: number;
854
+ } | (string | {
855
+ address: string;
856
+ family: number;
857
+ })[], args_1: string | number, args_2: string, ...args: unknown[]) => boolean) | undefined;
858
+ };
859
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
860
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
861
+ __protocolWhiteListSet?: ReadonlySet<string> | undefined;
862
+ };
863
+ helper: {
864
+ shtml: {
865
+ domainWhiteList?: string[] | undefined;
866
+ whiteList?: Record<string, string[]> | undefined;
867
+ onTagAttr?: ((args_0: string, args_1: string, args_2: string, args_3: boolean, ...args: unknown[]) => string | void) | undefined;
868
+ };
869
+ };
870
+ };
871
+ export default _default;