@eggjs/security 4.0.1 → 5.0.0-beta.15

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