@eggjs/security 4.0.0 → 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 +47 -67
  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 -14
  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 -12
  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 -282
  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 -12
  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
@@ -1,357 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.SecurityHelperConfig = exports.SecurityConfig = exports.SecurityMiddlewareName = exports.LookupAddress = void 0;
7
- const zod_1 = __importDefault(require("zod"));
8
- const core_1 = require("@eggjs/core");
9
- const CSRFSupportRequestItem = zod_1.default.object({
10
- path: zod_1.default.instanceof(RegExp),
11
- methods: zod_1.default.array(zod_1.default.string()),
12
- });
13
- exports.LookupAddress = zod_1.default.object({
14
- address: zod_1.default.string(),
15
- family: zod_1.default.number(),
16
- });
17
- const LookupAddressAndStringArray = zod_1.default.union([zod_1.default.string(), exports.LookupAddress]).array();
18
- const SSRFCheckAddressFunction = zod_1.default.function()
19
- .args(zod_1.default.union([zod_1.default.string(), exports.LookupAddress, LookupAddressAndStringArray]), zod_1.default.union([zod_1.default.number(), zod_1.default.string()]), zod_1.default.string())
20
- .returns(zod_1.default.boolean());
21
- exports.SecurityMiddlewareName = zod_1.default.enum([
22
- 'csrf',
23
- 'hsts',
24
- 'methodnoallow',
25
- 'noopen',
26
- 'nosniff',
27
- 'csp',
28
- 'xssProtection',
29
- 'xframe',
30
- 'dta',
31
- ]);
32
- /**
33
- * (ctx) => boolean
34
- */
35
- const IgnoreOrMatchHandler = zod_1.default.function().args(zod_1.default.instanceof(core_1.Context)).returns(zod_1.default.boolean());
36
- const IgnoreOrMatch = zod_1.default.union([
37
- zod_1.default.string(), zod_1.default.instanceof(RegExp), IgnoreOrMatchHandler,
38
- ]);
39
- const IgnoreOrMatchOption = zod_1.default.union([IgnoreOrMatch, IgnoreOrMatch.array()]).optional();
40
- /**
41
- * security options
42
- * @member Config#security
43
- */
44
- exports.SecurityConfig = zod_1.default.object({
45
- /**
46
- * domain white list
47
- *
48
- * Default to `[]`
49
- */
50
- domainWhiteList: zod_1.default.array(zod_1.default.string()).default([]),
51
- /**
52
- * protocol white list
53
- *
54
- * Default to `[]`
55
- */
56
- protocolWhiteList: zod_1.default.array(zod_1.default.string()).default([]),
57
- /**
58
- * default open security middleware
59
- *
60
- * Default to `'csrf,hsts,methodnoallow,noopen,nosniff,csp,xssProtection,xframe,dta'`
61
- */
62
- defaultMiddleware: zod_1.default.union([zod_1.default.string(), zod_1.default.array(exports.SecurityMiddlewareName)])
63
- .default(exports.SecurityMiddlewareName.options),
64
- /**
65
- * whether defend csrf attack
66
- */
67
- csrf: zod_1.default.preprocess(val => {
68
- // transform old config, `csrf: false` to `csrf: { enable: false }`
69
- if (typeof val === 'boolean') {
70
- return { enable: val };
71
- }
72
- return val;
73
- }, zod_1.default.object({
74
- match: IgnoreOrMatchOption,
75
- ignore: IgnoreOrMatchOption,
76
- /**
77
- * Default to `true`
78
- */
79
- enable: zod_1.default.boolean().default(true),
80
- /**
81
- * csrf token detect source type
82
- *
83
- * Default to `'ctoken'`
84
- */
85
- type: zod_1.default.enum(['ctoken', 'referer', 'all', 'any']).default('ctoken'),
86
- /**
87
- * ignore json request
88
- *
89
- * Default to `false`
90
- *
91
- * @deprecated is not safe now, don't use it
92
- */
93
- ignoreJSON: zod_1.default.boolean().default(false),
94
- /**
95
- * csrf token cookie name
96
- *
97
- * Default to `'csrfToken'`
98
- */
99
- cookieName: zod_1.default.union([zod_1.default.string(), zod_1.default.array(zod_1.default.string())]).default('csrfToken'),
100
- /**
101
- * csrf token session name
102
- *
103
- * Default to `'csrfToken'`
104
- */
105
- sessionName: zod_1.default.string().default('csrfToken'),
106
- /**
107
- * csrf token request header name
108
- *
109
- * Default to `'x-csrf-token'`
110
- */
111
- headerName: zod_1.default.string().default('x-csrf-token'),
112
- /**
113
- * csrf token request body field name
114
- *
115
- * Default to `'_csrf'`
116
- */
117
- bodyName: zod_1.default.union([zod_1.default.string(), zod_1.default.array(zod_1.default.string())]).default('_csrf'),
118
- /**
119
- * csrf token request query field name
120
- *
121
- * Default to `'_csrf'`
122
- */
123
- queryName: zod_1.default.union([zod_1.default.string(), zod_1.default.array(zod_1.default.string())]).default('_csrf'),
124
- /**
125
- * rotate csrf token when it is invalid
126
- *
127
- * Default to `false`
128
- */
129
- rotateWhenInvalid: zod_1.default.boolean().default(false),
130
- /**
131
- * These config works when using `'ctoken'` type
132
- *
133
- * Default to `false`
134
- */
135
- useSession: zod_1.default.boolean().default(false),
136
- /**
137
- * csrf token cookie domain setting,
138
- * can be `(ctx) => string` or `string`
139
- *
140
- * Default to `undefined`, auto set the cookie domain in the safe way
141
- */
142
- cookieDomain: zod_1.default.union([
143
- zod_1.default.string(),
144
- zod_1.default.function()
145
- .args(zod_1.default.instanceof(core_1.Context))
146
- .returns(zod_1.default.string()),
147
- ]).optional(),
148
- /**
149
- * csrf token check requests config
150
- */
151
- supportedRequests: zod_1.default.array(CSRFSupportRequestItem)
152
- .default([
153
- { path: /^\//, methods: ['POST', 'PATCH', 'DELETE', 'PUT', 'CONNECT'] },
154
- ]),
155
- /**
156
- * referer or origin header white list.
157
- * It only works when using `'referer'` type
158
- *
159
- * Default to `[]`
160
- */
161
- refererWhiteList: zod_1.default.array(zod_1.default.string()).default([]),
162
- /**
163
- * csrf token cookie options
164
- *
165
- * Default to `{
166
- * signed: false,
167
- * httpOnly: false,
168
- * overwrite: true,
169
- * }`
170
- */
171
- cookieOptions: zod_1.default.object({
172
- signed: zod_1.default.boolean(),
173
- httpOnly: zod_1.default.boolean(),
174
- overwrite: zod_1.default.boolean(),
175
- }).default({
176
- signed: false,
177
- httpOnly: false,
178
- overwrite: true,
179
- }),
180
- }).default({})),
181
- /**
182
- * whether enable X-Frame-Options response header
183
- */
184
- xframe: zod_1.default.object({
185
- match: IgnoreOrMatchOption,
186
- ignore: IgnoreOrMatchOption,
187
- /**
188
- * Default to `true`
189
- */
190
- enable: zod_1.default.boolean().default(true),
191
- /**
192
- * X-Frame-Options value, can be `'DENY'`, `'SAMEORIGIN'`, `'ALLOW-FROM https://example.com'`
193
- *
194
- * Default to `'SAMEORIGIN'`
195
- */
196
- value: zod_1.default.string().default('SAMEORIGIN'),
197
- }).default({}),
198
- /**
199
- * whether enable Strict-Transport-Security response header
200
- */
201
- hsts: zod_1.default.object({
202
- match: IgnoreOrMatchOption,
203
- ignore: IgnoreOrMatchOption,
204
- /**
205
- * Default to `false`
206
- */
207
- enable: zod_1.default.boolean().default(false),
208
- /**
209
- * Max age of Strict-Transport-Security in seconds
210
- *
211
- * Default to `365 * 24 * 3600`
212
- */
213
- maxAge: zod_1.default.number().default(365 * 24 * 3600),
214
- /**
215
- * Whether include sub domains
216
- *
217
- * Default to `false`
218
- */
219
- includeSubdomains: zod_1.default.boolean().default(false),
220
- }).default({}),
221
- /**
222
- * whether enable Http Method filter
223
- */
224
- methodnoallow: zod_1.default.object({
225
- match: IgnoreOrMatchOption,
226
- ignore: IgnoreOrMatchOption,
227
- /**
228
- * Default to `true`
229
- */
230
- enable: zod_1.default.boolean().default(true),
231
- }).default({}),
232
- /**
233
- * whether enable IE automatically download open
234
- */
235
- noopen: zod_1.default.object({
236
- match: IgnoreOrMatchOption,
237
- ignore: IgnoreOrMatchOption,
238
- /**
239
- * Default to `true`
240
- */
241
- enable: zod_1.default.boolean().default(true),
242
- }).default({}),
243
- /**
244
- * whether enable IE8 automatically detect mime
245
- */
246
- nosniff: zod_1.default.object({
247
- match: IgnoreOrMatchOption,
248
- ignore: IgnoreOrMatchOption,
249
- /**
250
- * Default to `true`
251
- */
252
- enable: zod_1.default.boolean().default(true),
253
- }).default({}),
254
- /**
255
- * whether enable IE8 XSS Filter
256
- */
257
- xssProtection: zod_1.default.object({
258
- match: IgnoreOrMatchOption,
259
- ignore: IgnoreOrMatchOption,
260
- /**
261
- * Default to `true`
262
- */
263
- enable: zod_1.default.boolean().default(true),
264
- /**
265
- * X-XSS-Protection response header value
266
- *
267
- * Default to `'1; mode=block'`
268
- */
269
- value: zod_1.default.coerce.string().default('1; mode=block'),
270
- }).default({}),
271
- /**
272
- * content security policy config
273
- */
274
- csp: zod_1.default.object({
275
- match: IgnoreOrMatchOption,
276
- ignore: IgnoreOrMatchOption,
277
- /**
278
- * Default to `false`
279
- */
280
- enable: zod_1.default.boolean().default(false),
281
- // https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP#csp_overview
282
- policy: zod_1.default.record(zod_1.default.union([zod_1.default.string(), zod_1.default.array(zod_1.default.string()), zod_1.default.boolean()])).default({}),
283
- /**
284
- * whether enable report only mode
285
- * Default to `undefined`
286
- */
287
- reportOnly: zod_1.default.boolean().optional(),
288
- /**
289
- * whether support IE
290
- * Default to `undefined`
291
- */
292
- supportIE: zod_1.default.boolean().optional(),
293
- }).default({}),
294
- /**
295
- * whether enable referrer policy
296
- * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy
297
- */
298
- referrerPolicy: zod_1.default.object({
299
- match: IgnoreOrMatchOption,
300
- ignore: IgnoreOrMatchOption,
301
- /**
302
- * Default to `false`
303
- */
304
- enable: zod_1.default.boolean().default(false),
305
- /**
306
- * referrer policy value
307
- *
308
- * Default to `'no-referrer-when-downgrade'`
309
- */
310
- value: zod_1.default.string().default('no-referrer-when-downgrade'),
311
- }).default({}),
312
- /**
313
- * whether enable auto avoid directory traversal attack
314
- */
315
- dta: zod_1.default.object({
316
- match: IgnoreOrMatchOption,
317
- ignore: IgnoreOrMatchOption,
318
- /**
319
- * Default to `true`
320
- */
321
- enable: zod_1.default.boolean().default(true),
322
- }).default({}),
323
- ssrf: zod_1.default.object({
324
- ipBlackList: zod_1.default.array(zod_1.default.string()).optional(),
325
- ipExceptionList: zod_1.default.array(zod_1.default.string()).optional(),
326
- hostnameExceptionList: zod_1.default.array(zod_1.default.string()).optional(),
327
- checkAddress: SSRFCheckAddressFunction.optional(),
328
- }).default({}),
329
- match: zod_1.default.union([IgnoreOrMatch, IgnoreOrMatch.array()]).optional(),
330
- ignore: zod_1.default.union([IgnoreOrMatch, IgnoreOrMatch.array()]).optional(),
331
- __protocolWhiteListSet: zod_1.default.set(zod_1.default.string()).optional().readonly(),
332
- });
333
- const SecurityHelperOnTagAttrHandler = zod_1.default.function()
334
- .args(zod_1.default.string(), zod_1.default.string(), zod_1.default.string(), zod_1.default.boolean())
335
- .returns(zod_1.default.union([zod_1.default.string(), zod_1.default.void()]));
336
- exports.SecurityHelperConfig = zod_1.default.object({
337
- shtml: zod_1.default.object({
338
- /**
339
- * tag attribute white list
340
- */
341
- whiteList: zod_1.default.record(zod_1.default.array(zod_1.default.string())).optional(),
342
- /**
343
- * domain white list
344
- * @deprecated use `config.security.domainWhiteList` instead
345
- */
346
- domainWhiteList: zod_1.default.array(zod_1.default.string()).optional(),
347
- /**
348
- * tag attribute handler
349
- */
350
- onTagAttr: SecurityHelperOnTagAttrHandler.optional(),
351
- }).default({}),
352
- });
353
- exports.default = {
354
- security: exports.SecurityConfig.parse({}),
355
- helper: exports.SecurityHelperConfig.parse({}),
356
- };
357
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uZmlnL2NvbmZpZy5kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhDQUFvQjtBQUNwQixzQ0FBc0M7QUFFdEMsTUFBTSxzQkFBc0IsR0FBRyxhQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3RDLElBQUksRUFBRSxhQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUMxQixPQUFPLEVBQUUsYUFBQyxDQUFDLEtBQUssQ0FBQyxhQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7Q0FDN0IsQ0FBQyxDQUFDO0FBR1UsUUFBQSxhQUFhLEdBQUcsYUFBQyxDQUFDLE1BQU0sQ0FBQztJQUNwQyxPQUFPLEVBQUUsYUFBQyxDQUFDLE1BQU0sRUFBRTtJQUNuQixNQUFNLEVBQUUsYUFBQyxDQUFDLE1BQU0sRUFBRTtDQUNuQixDQUFDLENBQUM7QUFHSCxNQUFNLDJCQUEyQixHQUFHLGFBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBRSxhQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUscUJBQWEsQ0FBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDbkYsTUFBTSx3QkFBd0IsR0FBRyxhQUFDLENBQUMsUUFBUSxFQUFFO0tBQzFDLElBQUksQ0FBQyxhQUFDLENBQUMsS0FBSyxDQUFDLENBQUUsYUFBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLHFCQUFhLEVBQUUsMkJBQTJCLENBQUUsQ0FBQyxFQUFFLGFBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBRSxhQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsYUFBQyxDQUFDLE1BQU0sRUFBRSxDQUFFLENBQUMsRUFBRSxhQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7S0FDMUgsT0FBTyxDQUFDLGFBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBT1gsUUFBQSxzQkFBc0IsR0FBRyxhQUFDLENBQUMsSUFBSSxD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
@@ -1,5 +0,0 @@
1
- import { SecurityConfig } from '../types.js';
2
- declare const _default: {
3
- security: SecurityConfig;
4
- };
5
- export default _default;
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = {
4
- security: {
5
- hsts: {
6
- enable: false,
7
- },
8
- },
9
- };
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmxvY2FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9jb25maWcubG9jYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSxrQkFBZTtJQUNiLFFBQVEsRUFBRTtRQUNSLElBQUksRUFBRTtZQUNKLE1BQU0sRUFBRSxLQUFLO1NBQ2Q7S0FDZ0I7Q0FDcEIsQ0FBQyJ9
@@ -1 +0,0 @@
1
- import './types.js';
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- require("./types.js");
4
- // module.exports = require('./app/middleware/securities');
5
- // module.exports.csp = require('./lib/middlewares/csp');
6
- // module.exports.csrf = require('./lib/middlewares/csrf');
7
- // module.exports.methodNoAllow = require('./lib/middlewares/methodnoallow');
8
- // module.exports.noopen = require('./lib/middlewares/noopen');
9
- // module.exports.nosniff = require('./lib/middlewares/nosniff');
10
- // module.exports.xssProtection = require('./lib/middlewares/xssProtection');
11
- // module.exports.xframe = require('./lib/middlewares/xframe');
12
- // module.exports.safeRedirect = require('./lib/safe_redirect');
13
- // module.exports.utils = require('./lib/utils');
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzQkFBb0I7QUFFcEIsMkRBQTJEO0FBQzNELHlEQUF5RDtBQUN6RCwyREFBMkQ7QUFDM0QsNkVBQTZFO0FBQzdFLCtEQUErRDtBQUMvRCxpRUFBaUU7QUFDakUsNkVBQTZFO0FBQzdFLCtEQUErRDtBQUMvRCxnRUFBZ0U7QUFDaEUsaURBQWlEIn0=
@@ -1,16 +0,0 @@
1
- import { EggCore } from '@eggjs/core';
2
- import type { SSRFCheckAddressFunction } from '../../types.js';
3
- type HttpClient = EggCore['HttpClient'];
4
- type HttpClientParameters = Parameters<HttpClient['prototype']['request']>;
5
- export type HttpClientRequestURL = HttpClientParameters[0];
6
- export type HttpClientOptions = HttpClientParameters[1] & {
7
- checkAddress?: SSRFCheckAddressFunction;
8
- };
9
- export type HttpClientResponse<T = any> = Awaited<ReturnType<HttpClient['prototype']['request']>> & {
10
- data: T;
11
- };
12
- /**
13
- * safe curl with ssrf protection
14
- */
15
- export declare function safeCurlForApplication<T = any>(app: EggCore, url: HttpClientRequestURL, options?: HttpClientOptions): Promise<import("urllib").HttpClientResponse<T>>;
16
- export {};
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.safeCurlForApplication = safeCurlForApplication;
4
- const SSRF_HTTPCLIENT = Symbol('SSRF_HTTPCLIENT');
5
- /**
6
- * safe curl with ssrf protection
7
- */
8
- async function safeCurlForApplication(app, url, options = {}) {
9
- const ssrfConfig = app.config.security.ssrf;
10
- if (ssrfConfig?.checkAddress) {
11
- options.checkAddress = ssrfConfig.checkAddress;
12
- }
13
- else {
14
- app.logger.warn('[@eggjs/security] please configure `config.security.ssrf` first');
15
- }
16
- if (ssrfConfig?.checkAddress) {
17
- let httpClient = app[SSRF_HTTPCLIENT];
18
- // use the new httpClient init with checkAddress
19
- if (!httpClient) {
20
- httpClient = app[SSRF_HTTPCLIENT] = app.createHttpClient({
21
- checkAddress: ssrfConfig.checkAddress,
22
- });
23
- }
24
- return await httpClient.request(url, options);
25
- }
26
- return await app.curl(url, options);
27
- }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZV9jdXJsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9leHRlbmQvc2FmZV9jdXJsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBY0Esd0RBb0JDO0FBL0JELE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBUWxEOztHQUVHO0FBQ0ksS0FBSyxVQUFVLHNCQUFzQixDQUFVLEdBQVksRUFBRSxHQUF5QixFQUFFLFVBQTZCLEVBQUU7SUFDNUgsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQzVDLElBQUksVUFBVSxFQUFFLFlBQVksRUFBRSxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQztJQUNqRCxDQUFDO1NBQU0sQ0FBQztRQUNOLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlFQUFpRSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELElBQUksVUFBVSxFQUFFLFlBQVksRUFBRSxDQUFDO1FBQzdCLElBQUksVUFBVSxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQTRDLENBQUM7UUFDakYsZ0RBQWdEO1FBQ2hELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixVQUFVLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDdkQsWUFBWSxFQUFFLFVBQVUsQ0FBQyxZQUFZO2FBQ3RDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLE1BQU0sVUFBVSxDQUFDLE9BQU8sQ0FBSSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELE9BQU8sTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFJLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN6QyxDQUFDIn0=
@@ -1,4 +0,0 @@
1
- /**
2
- * remote command execution
3
- */
4
- export default function cliFilter(text: string): string;
@@ -1,20 +0,0 @@
1
- "use strict";
2
- /**
3
- * remote command execution
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.default = cliFilter;
7
- const BASIC_ALPHABETS = new Set('abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ.-_'.split(''));
8
- function cliFilter(text) {
9
- const str = '' + text;
10
- let res = '';
11
- let ascii;
12
- for (let index = 0; index < str.length; index++) {
13
- ascii = str[index];
14
- if (BASIC_ALPHABETS.has(ascii)) {
15
- res += ascii;
16
- }
17
- }
18
- return res;
19
- }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpRmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9oZWxwZXIvY2xpRmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7QUFJSCw0QkFhQztBQWZELE1BQU0sZUFBZSxHQUFHLElBQUksR0FBRyxDQUFDLG1FQUFtRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRS9HLFNBQXdCLFNBQVMsQ0FBQyxJQUFZO0lBQzVDLE1BQU0sR0FBRyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDdEIsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ2IsSUFBSSxLQUFLLENBQUM7SUFFVixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ2hELEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkIsSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0IsR0FBRyxJQUFJLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIn0=
@@ -1,2 +0,0 @@
1
- import escapeHTML from 'escape-html';
2
- export default escapeHTML;
@@ -1,8 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const escape_html_1 = __importDefault(require("escape-html"));
7
- exports.default = escape_html_1.default;
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9oZWxwZXIvZXNjYXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsOERBQXFDO0FBRXJDLGtCQUFlLHFCQUFVLENBQUMifQ==
@@ -1 +0,0 @@
1
- export default function escapeShellArg(text: string): string;
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = escapeShellArg;
4
- function escapeShellArg(text) {
5
- const str = '' + text;
6
- return '\'' + str.replace(/\\/g, '\\\\').replace(/\'/g, '\\\'') + '\'';
7
- }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBlU2hlbGxBcmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2hlbHBlci9lc2NhcGVTaGVsbEFyZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGlDQUdDO0FBSEQsU0FBd0IsY0FBYyxDQUFDLElBQVk7SUFDakQsTUFBTSxHQUFHLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztJQUN0QixPQUFPLElBQUksR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztBQUN6RSxDQUFDIn0=
@@ -1 +0,0 @@
1
- export default function escapeShellCmd(text: string): string;
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = escapeShellCmd;
4
- const BASIC_ALPHABETS = new Set('#&;`|*?~<>^()[]{}$;\'",\x0A\xFF'.split(''));
5
- function escapeShellCmd(text) {
6
- const str = '' + text;
7
- let res = '';
8
- let ascii;
9
- for (let index = 0; index < str.length; index++) {
10
- ascii = str[index];
11
- if (!BASIC_ALPHABETS.has(ascii)) {
12
- res += ascii;
13
- }
14
- }
15
- return res;
16
- }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBlU2hlbGxDbWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2hlbHBlci9lc2NhcGVTaGVsbENtZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLGlDQWFDO0FBZkQsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLENBQUMsaUNBQWlDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFN0UsU0FBd0IsY0FBYyxDQUFDLElBQVk7SUFDakQsTUFBTSxHQUFHLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztJQUN0QixJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDYixJQUFJLEtBQUssQ0FBQztJQUVWLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDaEQsS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hDLEdBQUcsSUFBSSxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyJ9
@@ -1,21 +0,0 @@
1
- import cliFilter from './cliFilter.js';
2
- import escape from './escape.js';
3
- import escapeShellArg from './escapeShellArg.js';
4
- import escapeShellCmd from './escapeShellCmd.js';
5
- import shtml from './shtml.js';
6
- import sjs from './sjs.js';
7
- import sjson from './sjson.js';
8
- import spath from './spath.js';
9
- import surl from './surl.js';
10
- declare const _default: {
11
- cliFilter: typeof cliFilter;
12
- escape: typeof escape;
13
- escapeShellArg: typeof escapeShellArg;
14
- escapeShellCmd: typeof escapeShellCmd;
15
- shtml: typeof shtml;
16
- sjs: typeof sjs;
17
- sjson: typeof sjson;
18
- spath: typeof spath;
19
- surl: typeof surl;
20
- };
21
- export default _default;
@@ -1,26 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const cliFilter_js_1 = __importDefault(require("./cliFilter.js"));
7
- const escape_js_1 = __importDefault(require("./escape.js"));
8
- const escapeShellArg_js_1 = __importDefault(require("./escapeShellArg.js"));
9
- const escapeShellCmd_js_1 = __importDefault(require("./escapeShellCmd.js"));
10
- const shtml_js_1 = __importDefault(require("./shtml.js"));
11
- const sjs_js_1 = __importDefault(require("./sjs.js"));
12
- const sjson_js_1 = __importDefault(require("./sjson.js"));
13
- const spath_js_1 = __importDefault(require("./spath.js"));
14
- const surl_js_1 = __importDefault(require("./surl.js"));
15
- exports.default = {
16
- cliFilter: cliFilter_js_1.default,
17
- escape: escape_js_1.default,
18
- escapeShellArg: escapeShellArg_js_1.default,
19
- escapeShellCmd: escapeShellCmd_js_1.default,
20
- shtml: shtml_js_1.default,
21
- sjs: sjs_js_1.default,
22
- sjson: sjson_js_1.default,
23
- spath: spath_js_1.default,
24
- surl: surl_js_1.default,
25
- };
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2hlbHBlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGtFQUF1QztBQUN2Qyw0REFBaUM7QUFDakMsNEVBQWlEO0FBQ2pELDRFQUFpRDtBQUNqRCwwREFBK0I7QUFDL0Isc0RBQTJCO0FBQzNCLDBEQUErQjtBQUMvQiwwREFBK0I7QUFDL0Isd0RBQTZCO0FBRTdCLGtCQUFlO0lBQ2IsU0FBUyxFQUFULHNCQUFTO0lBQ1QsTUFBTSxFQUFOLG1CQUFNO0lBQ04sY0FBYyxFQUFkLDJCQUFjO0lBQ2QsY0FBYyxFQUFkLDJCQUFjO0lBQ2QsS0FBSyxFQUFMLGtCQUFLO0lBQ0wsR0FBRyxFQUFILGdCQUFHO0lBQ0gsS0FBSyxFQUFMLGtCQUFLO0lBQ0wsS0FBSyxFQUFMLGtCQUFLO0lBQ0wsSUFBSSxFQUFKLGlCQUFJO0NBQ0wsQ0FBQyJ9
@@ -1,2 +0,0 @@
1
- import type { BaseContextClass } from '@eggjs/core';
2
- export default function shtml(this: BaseContextClass, val: string): string;