@eggjs/security 5.0.0-beta.20 → 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 (113) hide show
  1. package/dist/agent.d.ts +5 -9
  2. package/dist/agent.js +11 -15
  3. package/dist/app/extend/agent.d.ts +4 -9
  4. package/dist/app/extend/agent.js +8 -12
  5. package/dist/app/extend/application.d.ts +8 -4
  6. package/dist/app/extend/application.js +32 -4
  7. package/dist/app/extend/context.d.ts +58 -4
  8. package/dist/app/extend/context.js +244 -4
  9. package/dist/app/extend/helper.d.ts +10 -22
  10. package/dist/app/extend/helper.js +5 -17
  11. package/dist/app/extend/response.d.ts +35 -4
  12. package/dist/app/extend/response.js +83 -5
  13. package/dist/app/middleware/securities.d.ts +4 -8
  14. package/dist/app/middleware/securities.js +52 -49
  15. package/dist/app.d.ts +5 -9
  16. package/dist/app.js +26 -24
  17. package/dist/config/config.default.d.ts +867 -2
  18. package/dist/config/config.default.js +366 -3
  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 -5
  22. package/dist/index.js +5 -8
  23. package/dist/lib/extend/safe_curl.d.ts +16 -3
  24. package/dist/lib/extend/safe_curl.js +25 -3
  25. package/dist/lib/helper/cliFilter.d.ts +4 -2
  26. package/dist/lib/helper/cliFilter.js +17 -3
  27. package/dist/lib/helper/escape.d.ts +2 -2
  28. package/dist/lib/helper/escape.js +3 -3
  29. package/dist/lib/helper/escapeShellArg.d.ts +1 -2
  30. package/dist/lib/helper/escapeShellArg.js +5 -3
  31. package/dist/lib/helper/escapeShellCmd.d.ts +1 -2
  32. package/dist/lib/helper/escapeShellCmd.js +14 -3
  33. package/dist/lib/helper/index.d.ts +19 -22
  34. package/dist/lib/helper/index.js +21 -13
  35. package/dist/lib/helper/shtml.d.ts +2 -2
  36. package/dist/lib/helper/shtml.js +69 -4
  37. package/dist/lib/helper/sjs.d.ts +4 -2
  38. package/dist/lib/helper/sjs.js +49 -3
  39. package/dist/lib/helper/sjson.d.ts +1 -2
  40. package/dist/lib/helper/sjson.js +39 -4
  41. package/dist/lib/helper/spath.d.ts +5 -2
  42. package/dist/lib/helper/spath.js +25 -3
  43. package/dist/lib/helper/surl.d.ts +2 -2
  44. package/dist/lib/helper/surl.js +30 -3
  45. package/dist/lib/middlewares/csp.d.ts +3 -6
  46. package/dist/lib/middlewares/csp.js +57 -4
  47. package/dist/lib/middlewares/csrf.d.ts +3 -6
  48. package/dist/lib/middlewares/csrf.js +37 -4
  49. package/dist/lib/middlewares/dta.d.ts +2 -5
  50. package/dist/lib/middlewares/dta.js +12 -4
  51. package/dist/lib/middlewares/hsts.d.ts +3 -6
  52. package/dist/lib/middlewares/hsts.js +21 -4
  53. package/dist/lib/middlewares/index.d.ts +11 -16
  54. package/dist/lib/middlewares/index.js +23 -14
  55. package/dist/lib/middlewares/methodnoallow.d.ts +2 -5
  56. package/dist/lib/middlewares/methodnoallow.js +20 -3
  57. package/dist/lib/middlewares/noopen.d.ts +3 -6
  58. package/dist/lib/middlewares/noopen.js +15 -4
  59. package/dist/lib/middlewares/nosniff.d.ts +3 -6
  60. package/dist/lib/middlewares/nosniff.js +28 -4
  61. package/dist/lib/middlewares/referrerPolicy.d.ts +3 -6
  62. package/dist/lib/middlewares/referrerPolicy.js +35 -4
  63. package/dist/lib/middlewares/xframe.d.ts +3 -6
  64. package/dist/lib/middlewares/xframe.js +17 -4
  65. package/dist/lib/middlewares/xssProtection.d.ts +3 -6
  66. package/dist/lib/middlewares/xssProtection.js +14 -4
  67. package/dist/lib/utils.d.ts +12 -17
  68. package/dist/lib/utils.js +192 -3
  69. package/dist/types.d.ts +36 -3
  70. package/dist/types.js +2 -3
  71. package/package.json +6 -6
  72. package/dist/application-COC0mYEe.js +0 -32
  73. package/dist/application-n5bk2L_z.d.ts +0 -12
  74. package/dist/cliFilter-7BSD8Nc_.js +0 -18
  75. package/dist/cliFilter-DKZxCxSe.d.ts +0 -7
  76. package/dist/config.default-AcwQOAG0.js +0 -166
  77. package/dist/config.default-D8v08Vox.d.ts +0 -870
  78. package/dist/context-C-N1IY85.d.ts +0 -95
  79. package/dist/context-e-QJTKfq.js +0 -191
  80. package/dist/csp-BW5AJd_f.js +0 -46
  81. package/dist/csrf-9aSLHiby.js +0 -33
  82. package/dist/dta-DVAKEpJ3.js +0 -13
  83. package/dist/escape-Dex_Pk9e.d.ts +0 -2
  84. package/dist/escape-p8-cW8c_.js +0 -7
  85. package/dist/escapeShellArg-BnzDicAC.d.ts +0 -4
  86. package/dist/escapeShellArg-C0v1ZeCl.js +0 -7
  87. package/dist/escapeShellCmd-CkAdyhtO.js +0 -15
  88. package/dist/escapeShellCmd-DQZZIHde.d.ts +0 -4
  89. package/dist/helper-DylzfQ_5.js +0 -25
  90. package/dist/hsts-CWMKNTEh.js +0 -19
  91. package/dist/methodnoallow-BAZONArS.js +0 -15
  92. package/dist/middlewares-CkQjv8t0.js +0 -27
  93. package/dist/noopen-C3jUBwoH.js +0 -17
  94. package/dist/nosniff-CcLkhX2I.js +0 -27
  95. package/dist/referrerPolicy-D4Uafq6c.js +0 -31
  96. package/dist/response-BFnHAJrV.js +0 -69
  97. package/dist/safe_curl-UlViaxoF.js +0 -19
  98. package/dist/safe_curl-mqZZv_YQ.d.ts +0 -20
  99. package/dist/shtml-CAquTzgV.d.ts +0 -6
  100. package/dist/shtml-CgF4kOx-.js +0 -53
  101. package/dist/sjs-Cbmkk5xS.js +0 -36
  102. package/dist/sjs-QZIJYS71.d.ts +0 -7
  103. package/dist/sjson-BetFnVR6.js +0 -32
  104. package/dist/sjson-O-vKJPws.d.ts +0 -4
  105. package/dist/spath-Bu9sy6Kz.js +0 -16
  106. package/dist/spath-DseDPHxf.d.ts +0 -7
  107. package/dist/surl-ClleTea7.js +0 -25
  108. package/dist/surl-JV70X_RZ.d.ts +0 -6
  109. package/dist/types-BZR2U30p.d.ts +0 -38
  110. package/dist/types-DnJpiSJb.js +0 -1
  111. package/dist/utils-Cajs5P8M.js +0 -127
  112. package/dist/xframe-q9fEZkVI.js +0 -18
  113. package/dist/xssProtection-D5QsHX-e.js +0 -17
@@ -1,166 +0,0 @@
1
- import z from "zod";
2
- import { Context } from "egg";
3
-
4
- //#region src/config/config.default.ts
5
- const CSRFSupportRequestItem = z.object({
6
- path: z.instanceof(RegExp),
7
- methods: z.array(z.string())
8
- });
9
- const LookupAddress = z.object({
10
- address: z.string(),
11
- family: z.number()
12
- });
13
- 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"
29
- ]);
30
- /**
31
- * (ctx) => boolean
32
- */
33
- 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
- ]);
39
- 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()
153
- });
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({})
163
- };
164
-
165
- //#endregion
166
- export { LookupAddress, SecurityConfig, SecurityHelperConfig, SecurityMiddlewareName, config_default_default };