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

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