@eggjs/security 4.0.1 → 5.0.0-beta.17

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 (252) hide show
  1. package/README.md +46 -66
  2. package/README.zh-CN.md +56 -68
  3. package/dist/agent.d.ts +10 -0
  4. package/dist/agent.js +15 -0
  5. package/dist/app/extend/agent.d.ts +9 -0
  6. package/dist/app/extend/agent.js +12 -0
  7. package/dist/app/extend/application.d.ts +12 -0
  8. package/dist/app/extend/application.js +32 -0
  9. package/dist/app/extend/context.d.ts +61 -0
  10. package/dist/app/extend/context.js +191 -0
  11. package/dist/app/extend/helper.d.ts +24 -0
  12. package/dist/app/extend/helper.js +7 -0
  13. package/dist/app/extend/response.d.ts +39 -0
  14. package/dist/app/extend/response.js +70 -0
  15. package/dist/app/middleware/securities.d.ts +8 -0
  16. package/dist/app/middleware/securities.js +39 -0
  17. package/dist/app.d.ts +10 -0
  18. package/dist/app.js +24 -0
  19. package/dist/config/config.default.d.ts +870 -0
  20. package/dist/config/config.default.js +166 -0
  21. package/dist/config/config.local.d.ts +6 -0
  22. package/dist/config/config.local.js +5 -0
  23. package/dist/index.d.ts +1 -0
  24. package/dist/index.js +5 -0
  25. package/dist/lib/extend/safe_curl.d.ts +20 -0
  26. package/dist/lib/extend/safe_curl.js +19 -0
  27. package/dist/lib/helper/cliFilter.d.ts +7 -0
  28. package/dist/lib/helper/cliFilter.js +18 -0
  29. package/dist/lib/helper/escape.d.ts +2 -0
  30. package/dist/lib/helper/escape.js +7 -0
  31. package/dist/lib/helper/escapeShellArg.d.ts +4 -0
  32. package/dist/lib/helper/escapeShellArg.js +7 -0
  33. package/dist/lib/helper/escapeShellCmd.d.ts +4 -0
  34. package/dist/lib/helper/escapeShellCmd.js +15 -0
  35. package/dist/lib/helper/index.d.ts +24 -0
  36. package/dist/lib/helper/index.js +25 -0
  37. package/dist/lib/helper/shtml.d.ts +6 -0
  38. package/dist/lib/helper/shtml.js +53 -0
  39. package/dist/lib/helper/sjs.d.ts +7 -0
  40. package/dist/lib/helper/sjs.js +36 -0
  41. package/dist/lib/helper/sjson.d.ts +4 -0
  42. package/dist/lib/helper/sjson.js +32 -0
  43. package/dist/lib/helper/spath.d.ts +7 -0
  44. package/dist/lib/helper/spath.js +16 -0
  45. package/dist/lib/helper/surl.d.ts +6 -0
  46. package/dist/lib/helper/surl.js +25 -0
  47. package/dist/lib/middlewares/csp.d.ts +7 -0
  48. package/dist/lib/middlewares/csp.js +46 -0
  49. package/dist/lib/middlewares/csrf.d.ts +7 -0
  50. package/dist/lib/middlewares/csrf.js +33 -0
  51. package/dist/lib/middlewares/dta.d.ts +6 -0
  52. package/dist/lib/middlewares/dta.js +13 -0
  53. package/dist/lib/middlewares/hsts.d.ts +7 -0
  54. package/dist/lib/middlewares/hsts.js +19 -0
  55. package/dist/lib/middlewares/index.d.ts +18 -0
  56. package/dist/lib/middlewares/index.js +27 -0
  57. package/dist/lib/middlewares/methodnoallow.d.ts +6 -0
  58. package/dist/lib/middlewares/methodnoallow.js +15 -0
  59. package/dist/lib/middlewares/noopen.d.ts +7 -0
  60. package/dist/lib/middlewares/noopen.js +17 -0
  61. package/dist/lib/middlewares/nosniff.d.ts +7 -0
  62. package/dist/lib/middlewares/nosniff.js +27 -0
  63. package/dist/lib/middlewares/referrerPolicy.d.ts +7 -0
  64. package/dist/lib/middlewares/referrerPolicy.js +31 -0
  65. package/dist/lib/middlewares/xframe.d.ts +7 -0
  66. package/dist/lib/middlewares/xframe.js +18 -0
  67. package/dist/lib/middlewares/xssProtection.d.ts +7 -0
  68. package/dist/lib/middlewares/xssProtection.js +17 -0
  69. package/dist/lib/utils.d.ts +24 -0
  70. package/dist/lib/utils.js +127 -0
  71. package/dist/types.d.ts +38 -0
  72. package/dist/types.js +1 -0
  73. package/package.json +75 -71
  74. package/dist/commonjs/agent.d.ts +0 -6
  75. package/dist/commonjs/agent.js +0 -14
  76. package/dist/commonjs/app/extend/agent.d.ts +0 -5
  77. package/dist/commonjs/app/extend/agent.js +0 -11
  78. package/dist/commonjs/app/extend/application.d.ts +0 -16
  79. package/dist/commonjs/app/extend/application.js +0 -35
  80. package/dist/commonjs/app/extend/context.d.ts +0 -68
  81. package/dist/commonjs/app/extend/context.js +0 -283
  82. package/dist/commonjs/app/extend/helper.d.ts +0 -12
  83. package/dist/commonjs/app/extend/helper.js +0 -10
  84. package/dist/commonjs/app/extend/response.d.ts +0 -41
  85. package/dist/commonjs/app/extend/response.js +0 -85
  86. package/dist/commonjs/app/middleware/securities.d.ts +0 -4
  87. package/dist/commonjs/app/middleware/securities.js +0 -55
  88. package/dist/commonjs/app.d.ts +0 -6
  89. package/dist/commonjs/app.js +0 -29
  90. package/dist/commonjs/config/config.default.d.ts +0 -871
  91. package/dist/commonjs/config/config.default.js +0 -357
  92. package/dist/commonjs/config/config.local.d.ts +0 -5
  93. package/dist/commonjs/config/config.local.js +0 -10
  94. package/dist/commonjs/index.d.ts +0 -1
  95. package/dist/commonjs/index.js +0 -4
  96. package/dist/commonjs/lib/extend/safe_curl.d.ts +0 -16
  97. package/dist/commonjs/lib/extend/safe_curl.js +0 -28
  98. package/dist/commonjs/lib/helper/cliFilter.d.ts +0 -4
  99. package/dist/commonjs/lib/helper/cliFilter.js +0 -20
  100. package/dist/commonjs/lib/helper/escape.d.ts +0 -2
  101. package/dist/commonjs/lib/helper/escape.js +0 -8
  102. package/dist/commonjs/lib/helper/escapeShellArg.d.ts +0 -1
  103. package/dist/commonjs/lib/helper/escapeShellArg.js +0 -8
  104. package/dist/commonjs/lib/helper/escapeShellCmd.d.ts +0 -1
  105. package/dist/commonjs/lib/helper/escapeShellCmd.js +0 -17
  106. package/dist/commonjs/lib/helper/index.d.ts +0 -21
  107. package/dist/commonjs/lib/helper/index.js +0 -26
  108. package/dist/commonjs/lib/helper/shtml.d.ts +0 -2
  109. package/dist/commonjs/lib/helper/shtml.js +0 -76
  110. package/dist/commonjs/lib/helper/sjs.d.ts +0 -4
  111. package/dist/commonjs/lib/helper/sjs.js +0 -52
  112. package/dist/commonjs/lib/helper/sjson.d.ts +0 -1
  113. package/dist/commonjs/lib/helper/sjson.js +0 -45
  114. package/dist/commonjs/lib/helper/spath.d.ts +0 -5
  115. package/dist/commonjs/lib/helper/spath.js +0 -28
  116. package/dist/commonjs/lib/helper/surl.d.ts +0 -2
  117. package/dist/commonjs/lib/helper/surl.js +0 -33
  118. package/dist/commonjs/lib/middlewares/csp.d.ts +0 -4
  119. package/dist/commonjs/lib/middlewares/csp.js +0 -68
  120. package/dist/commonjs/lib/middlewares/csrf.d.ts +0 -4
  121. package/dist/commonjs/lib/middlewares/csrf.js +0 -42
  122. package/dist/commonjs/lib/middlewares/dta.d.ts +0 -3
  123. package/dist/commonjs/lib/middlewares/dta.js +0 -14
  124. package/dist/commonjs/lib/middlewares/hsts.d.ts +0 -4
  125. package/dist/commonjs/lib/middlewares/hsts.js +0 -23
  126. package/dist/commonjs/lib/middlewares/index.d.ts +0 -13
  127. package/dist/commonjs/lib/middlewares/index.js +0 -28
  128. package/dist/commonjs/lib/middlewares/methodnoallow.d.ts +0 -3
  129. package/dist/commonjs/lib/middlewares/methodnoallow.js +0 -22
  130. package/dist/commonjs/lib/middlewares/noopen.d.ts +0 -4
  131. package/dist/commonjs/lib/middlewares/noopen.js +0 -17
  132. package/dist/commonjs/lib/middlewares/nosniff.d.ts +0 -4
  133. package/dist/commonjs/lib/middlewares/nosniff.js +0 -30
  134. package/dist/commonjs/lib/middlewares/referrerPolicy.d.ts +0 -4
  135. package/dist/commonjs/lib/middlewares/referrerPolicy.js +0 -36
  136. package/dist/commonjs/lib/middlewares/xframe.d.ts +0 -4
  137. package/dist/commonjs/lib/middlewares/xframe.js +0 -19
  138. package/dist/commonjs/lib/middlewares/xssProtection.d.ts +0 -4
  139. package/dist/commonjs/lib/middlewares/xssProtection.js +0 -16
  140. package/dist/commonjs/lib/utils.d.ts +0 -19
  141. package/dist/commonjs/lib/utils.js +0 -206
  142. package/dist/commonjs/package.json +0 -3
  143. package/dist/commonjs/types.d.ts +0 -10
  144. package/dist/commonjs/types.js +0 -5
  145. package/dist/esm/agent.d.ts +0 -6
  146. package/dist/esm/agent.js +0 -11
  147. package/dist/esm/app/extend/agent.d.ts +0 -5
  148. package/dist/esm/app/extend/agent.js +0 -8
  149. package/dist/esm/app/extend/application.d.ts +0 -16
  150. package/dist/esm/app/extend/application.js +0 -32
  151. package/dist/esm/app/extend/context.d.ts +0 -68
  152. package/dist/esm/app/extend/context.js +0 -244
  153. package/dist/esm/app/extend/helper.d.ts +0 -12
  154. package/dist/esm/app/extend/helper.js +0 -5
  155. package/dist/esm/app/extend/response.d.ts +0 -41
  156. package/dist/esm/app/extend/response.js +0 -82
  157. package/dist/esm/app/middleware/securities.d.ts +0 -4
  158. package/dist/esm/app/middleware/securities.js +0 -50
  159. package/dist/esm/app.d.ts +0 -6
  160. package/dist/esm/app.js +0 -26
  161. package/dist/esm/config/config.default.d.ts +0 -871
  162. package/dist/esm/config/config.default.js +0 -351
  163. package/dist/esm/config/config.local.d.ts +0 -5
  164. package/dist/esm/config/config.local.js +0 -8
  165. package/dist/esm/index.d.ts +0 -1
  166. package/dist/esm/index.js +0 -2
  167. package/dist/esm/lib/extend/safe_curl.d.ts +0 -16
  168. package/dist/esm/lib/extend/safe_curl.js +0 -25
  169. package/dist/esm/lib/helper/cliFilter.d.ts +0 -4
  170. package/dist/esm/lib/helper/cliFilter.js +0 -17
  171. package/dist/esm/lib/helper/escape.d.ts +0 -2
  172. package/dist/esm/lib/helper/escape.js +0 -3
  173. package/dist/esm/lib/helper/escapeShellArg.d.ts +0 -1
  174. package/dist/esm/lib/helper/escapeShellArg.js +0 -5
  175. package/dist/esm/lib/helper/escapeShellCmd.d.ts +0 -1
  176. package/dist/esm/lib/helper/escapeShellCmd.js +0 -14
  177. package/dist/esm/lib/helper/index.d.ts +0 -21
  178. package/dist/esm/lib/helper/index.js +0 -21
  179. package/dist/esm/lib/helper/shtml.d.ts +0 -2
  180. package/dist/esm/lib/helper/shtml.js +0 -70
  181. package/dist/esm/lib/helper/sjs.d.ts +0 -4
  182. package/dist/esm/lib/helper/sjs.js +0 -49
  183. package/dist/esm/lib/helper/sjson.d.ts +0 -1
  184. package/dist/esm/lib/helper/sjson.js +0 -39
  185. package/dist/esm/lib/helper/spath.d.ts +0 -5
  186. package/dist/esm/lib/helper/spath.js +0 -25
  187. package/dist/esm/lib/helper/surl.d.ts +0 -2
  188. package/dist/esm/lib/helper/surl.js +0 -30
  189. package/dist/esm/lib/middlewares/csp.d.ts +0 -4
  190. package/dist/esm/lib/middlewares/csp.js +0 -63
  191. package/dist/esm/lib/middlewares/csrf.d.ts +0 -4
  192. package/dist/esm/lib/middlewares/csrf.js +0 -37
  193. package/dist/esm/lib/middlewares/dta.d.ts +0 -3
  194. package/dist/esm/lib/middlewares/dta.js +0 -12
  195. package/dist/esm/lib/middlewares/hsts.d.ts +0 -4
  196. package/dist/esm/lib/middlewares/hsts.js +0 -21
  197. package/dist/esm/lib/middlewares/index.d.ts +0 -13
  198. package/dist/esm/lib/middlewares/index.js +0 -23
  199. package/dist/esm/lib/middlewares/methodnoallow.d.ts +0 -3
  200. package/dist/esm/lib/middlewares/methodnoallow.js +0 -20
  201. package/dist/esm/lib/middlewares/noopen.d.ts +0 -4
  202. package/dist/esm/lib/middlewares/noopen.js +0 -15
  203. package/dist/esm/lib/middlewares/nosniff.d.ts +0 -4
  204. package/dist/esm/lib/middlewares/nosniff.js +0 -28
  205. package/dist/esm/lib/middlewares/referrerPolicy.d.ts +0 -4
  206. package/dist/esm/lib/middlewares/referrerPolicy.js +0 -34
  207. package/dist/esm/lib/middlewares/xframe.d.ts +0 -4
  208. package/dist/esm/lib/middlewares/xframe.js +0 -17
  209. package/dist/esm/lib/middlewares/xssProtection.d.ts +0 -4
  210. package/dist/esm/lib/middlewares/xssProtection.js +0 -14
  211. package/dist/esm/lib/utils.d.ts +0 -19
  212. package/dist/esm/lib/utils.js +0 -194
  213. package/dist/esm/package.json +0 -3
  214. package/dist/esm/types.d.ts +0 -10
  215. package/dist/esm/types.js +0 -3
  216. package/dist/package.json +0 -4
  217. package/src/agent.ts +0 -14
  218. package/src/app/extend/agent.ts +0 -14
  219. package/src/app/extend/application.ts +0 -51
  220. package/src/app/extend/context.ts +0 -285
  221. package/src/app/extend/helper.ts +0 -5
  222. package/src/app/extend/response.ts +0 -95
  223. package/src/app/middleware/securities.ts +0 -63
  224. package/src/app.ts +0 -31
  225. package/src/config/config.default.ts +0 -379
  226. package/src/config/config.local.ts +0 -9
  227. package/src/index.ts +0 -1
  228. package/src/lib/extend/safe_curl.ts +0 -35
  229. package/src/lib/helper/cliFilter.ts +0 -20
  230. package/src/lib/helper/escape.ts +0 -3
  231. package/src/lib/helper/escapeShellArg.ts +0 -4
  232. package/src/lib/helper/escapeShellCmd.ts +0 -16
  233. package/src/lib/helper/index.ts +0 -21
  234. package/src/lib/helper/shtml.ts +0 -77
  235. package/src/lib/helper/sjs.ts +0 -57
  236. package/src/lib/helper/sjson.ts +0 -35
  237. package/src/lib/helper/spath.ts +0 -27
  238. package/src/lib/helper/surl.ts +0 -35
  239. package/src/lib/middlewares/csp.ts +0 -70
  240. package/src/lib/middlewares/csrf.ts +0 -44
  241. package/src/lib/middlewares/dta.ts +0 -13
  242. package/src/lib/middlewares/hsts.ts +0 -24
  243. package/src/lib/middlewares/index.ts +0 -23
  244. package/src/lib/middlewares/methodnoallow.ts +0 -23
  245. package/src/lib/middlewares/noopen.ts +0 -18
  246. package/src/lib/middlewares/nosniff.ts +0 -32
  247. package/src/lib/middlewares/referrerPolicy.ts +0 -39
  248. package/src/lib/middlewares/xframe.ts +0 -20
  249. package/src/lib/middlewares/xssProtection.ts +0 -17
  250. package/src/lib/utils.ts +0 -208
  251. package/src/types.ts +0 -16
  252. package/src/typings/index.d.ts +0 -4
@@ -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
+ type?: "ctoken" | "referer" | "all" | "any" | undefined;
222
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | 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
+ value?: string | undefined;
292
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | 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
+ value?: string | undefined;
411
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | 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
+ value?: string | undefined;
475
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | 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
+ domainWhiteList: string[];
549
+ protocolWhiteList: string[];
550
+ csrf: {
551
+ type: "ctoken" | "referer" | "all" | "any";
552
+ enable: boolean;
553
+ ignoreJSON: boolean;
554
+ cookieName: string | string[];
555
+ sessionName: string;
556
+ headerName: string;
557
+ bodyName: string | string[];
558
+ queryName: string | string[];
559
+ rotateWhenInvalid: boolean;
560
+ useSession: boolean;
561
+ supportedRequests: {
562
+ path: RegExp;
563
+ methods: string[];
564
+ }[];
565
+ refererWhiteList: string[];
566
+ cookieOptions: {
567
+ signed: boolean;
568
+ httpOnly: boolean;
569
+ overwrite: boolean;
570
+ };
571
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
572
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
573
+ cookieDomain?: string | ((args_0: Context, ...args: unknown[]) => string) | undefined;
574
+ };
575
+ hsts: {
576
+ enable: boolean;
577
+ maxAge: number;
578
+ includeSubdomains: boolean;
579
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
580
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
581
+ };
582
+ methodnoallow: {
583
+ enable: boolean;
584
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
585
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
586
+ };
587
+ noopen: {
588
+ enable: boolean;
589
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
590
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
591
+ };
592
+ nosniff: {
593
+ enable: boolean;
594
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
595
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
596
+ };
597
+ csp: {
598
+ enable: boolean;
599
+ policy: Record<string, string | boolean | string[]>;
600
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
601
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
602
+ reportOnly?: boolean | undefined;
603
+ supportIE?: boolean | undefined;
604
+ };
605
+ xssProtection: {
606
+ value: string;
607
+ enable: boolean;
608
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
609
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
610
+ };
611
+ xframe: {
612
+ value: string;
613
+ enable: boolean;
614
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
615
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
616
+ };
617
+ dta: {
618
+ enable: boolean;
619
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
620
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
621
+ };
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
+ domainWhiteList?: string[] | undefined;
646
+ protocolWhiteList?: string[] | undefined;
647
+ csrf?: unknown;
648
+ hsts?: {
649
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
650
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
651
+ enable?: boolean | undefined;
652
+ maxAge?: number | undefined;
653
+ includeSubdomains?: boolean | undefined;
654
+ } | undefined;
655
+ methodnoallow?: {
656
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
657
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
658
+ enable?: boolean | undefined;
659
+ } | undefined;
660
+ noopen?: {
661
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
662
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
663
+ enable?: boolean | undefined;
664
+ } | undefined;
665
+ nosniff?: {
666
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
667
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
668
+ enable?: boolean | undefined;
669
+ } | undefined;
670
+ csp?: {
671
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
672
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
673
+ enable?: boolean | undefined;
674
+ policy?: Record<string, string | boolean | string[]> | undefined;
675
+ reportOnly?: boolean | undefined;
676
+ supportIE?: boolean | undefined;
677
+ } | undefined;
678
+ xssProtection?: {
679
+ value?: string | undefined;
680
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
681
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
682
+ enable?: boolean | undefined;
683
+ } | undefined;
684
+ xframe?: {
685
+ value?: string | undefined;
686
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
687
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
688
+ enable?: boolean | undefined;
689
+ } | undefined;
690
+ dta?: {
691
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
692
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
693
+ enable?: boolean | undefined;
694
+ } | undefined;
695
+ defaultMiddleware?: string | ("csrf" | "hsts" | "methodnoallow" | "noopen" | "nosniff" | "csp" | "xssProtection" | "xframe" | "dta")[] | undefined;
696
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
697
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
698
+ referrerPolicy?: {
699
+ value?: string | undefined;
700
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | 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
+ whiteList?: Record<string, string[]> | undefined;
741
+ domainWhiteList?: string[] | undefined;
742
+ onTagAttr?: ((args_0: string, args_1: string, args_2: string, args_3: boolean, ...args: unknown[]) => string | void) | undefined;
743
+ }, {
744
+ whiteList?: Record<string, string[]> | undefined;
745
+ domainWhiteList?: 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
+ whiteList?: Record<string, string[]> | undefined;
751
+ domainWhiteList?: 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
+ whiteList?: Record<string, string[]> | undefined;
757
+ domainWhiteList?: 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
+ domainWhiteList: string[];
765
+ protocolWhiteList: string[];
766
+ csrf: {
767
+ type: "ctoken" | "referer" | "all" | "any";
768
+ enable: boolean;
769
+ ignoreJSON: boolean;
770
+ cookieName: string | string[];
771
+ sessionName: string;
772
+ headerName: string;
773
+ bodyName: string | string[];
774
+ queryName: string | string[];
775
+ rotateWhenInvalid: boolean;
776
+ useSession: boolean;
777
+ supportedRequests: {
778
+ path: RegExp;
779
+ methods: string[];
780
+ }[];
781
+ refererWhiteList: string[];
782
+ cookieOptions: {
783
+ signed: boolean;
784
+ httpOnly: boolean;
785
+ overwrite: boolean;
786
+ };
787
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
788
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
789
+ cookieDomain?: string | ((args_0: Context, ...args: unknown[]) => string) | undefined;
790
+ };
791
+ hsts: {
792
+ enable: boolean;
793
+ maxAge: number;
794
+ includeSubdomains: boolean;
795
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
796
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
797
+ };
798
+ methodnoallow: {
799
+ enable: boolean;
800
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
801
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
802
+ };
803
+ noopen: {
804
+ enable: boolean;
805
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
806
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
807
+ };
808
+ nosniff: {
809
+ enable: boolean;
810
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
811
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
812
+ };
813
+ csp: {
814
+ enable: boolean;
815
+ policy: Record<string, string | boolean | string[]>;
816
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
817
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
818
+ reportOnly?: boolean | undefined;
819
+ supportIE?: boolean | undefined;
820
+ };
821
+ xssProtection: {
822
+ value: string;
823
+ enable: boolean;
824
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
825
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
826
+ };
827
+ xframe: {
828
+ value: string;
829
+ enable: boolean;
830
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
831
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
832
+ };
833
+ dta: {
834
+ enable: boolean;
835
+ match?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
836
+ ignore?: string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean) | (string | RegExp | ((args_0: Context, ...args: unknown[]) => boolean))[] | undefined;
837
+ };
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
+ whiteList?: Record<string, string[]> | undefined;
864
+ domainWhiteList?: 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 as default };