@eggjs/security 5.0.0-beta.19 → 5.0.0-beta.20

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