@eggjs/security 5.0.0-beta.35 → 5.0.0-beta.36

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 +9 -5
  2. package/dist/agent.js +14 -10
  3. package/dist/app/extend/agent.d.ts +8 -4
  4. package/dist/app/extend/agent.js +12 -8
  5. package/dist/app/extend/application.d.ts +11 -7
  6. package/dist/app/extend/application.js +32 -32
  7. package/dist/app/extend/context.d.ts +55 -51
  8. package/dist/app/extend/context.js +185 -240
  9. package/dist/app/extend/helper.d.ts +5 -2
  10. package/dist/app/extend/helper.js +8 -6
  11. package/dist/app/extend/response.d.ts +38 -34
  12. package/dist/app/extend/response.js +69 -82
  13. package/dist/app/middleware/securities.d.ts +5 -2
  14. package/dist/app/middleware/securities.js +38 -52
  15. package/dist/app.d.ts +9 -5
  16. package/dist/app.js +23 -25
  17. package/dist/config/config.default.d.ts +34 -45
  18. package/dist/config/config.default.js +158 -362
  19. package/dist/config/config.local.d.ts +6 -3
  20. package/dist/config/config.local.js +6 -8
  21. package/dist/index.d.ts +20 -16
  22. package/dist/index.js +24 -21
  23. package/dist/lib/extend/safe_curl.d.ts +16 -13
  24. package/dist/lib/extend/safe_curl.js +17 -23
  25. package/dist/lib/helper/cliFilter.d.ts +4 -4
  26. package/dist/lib/helper/cliFilter.js +16 -15
  27. package/dist/lib/helper/escape.d.ts +2 -2
  28. package/dist/lib/helper/escape.js +7 -3
  29. package/dist/lib/helper/escapeShellArg.d.ts +4 -1
  30. package/dist/lib/helper/escapeShellArg.js +6 -4
  31. package/dist/lib/helper/escapeShellCmd.d.ts +4 -1
  32. package/dist/lib/helper/escapeShellCmd.js +14 -13
  33. package/dist/lib/helper/index.d.ts +22 -19
  34. package/dist/lib/helper/index.js +19 -15
  35. package/dist/lib/helper/shtml.d.ts +6 -2
  36. package/dist/lib/helper/shtml.js +52 -68
  37. package/dist/lib/helper/sjs.d.ts +4 -4
  38. package/dist/lib/helper/sjs.js +31 -44
  39. package/dist/lib/helper/sjson.d.ts +4 -1
  40. package/dist/lib/helper/sjson.js +28 -35
  41. package/dist/lib/helper/spath.d.ts +7 -5
  42. package/dist/lib/helper/spath.js +15 -24
  43. package/dist/lib/helper/surl.d.ts +6 -2
  44. package/dist/lib/helper/surl.js +22 -27
  45. package/dist/lib/middlewares/csp.d.ts +6 -3
  46. package/dist/lib/middlewares/csp.js +43 -54
  47. package/dist/lib/middlewares/csrf.d.ts +6 -3
  48. package/dist/lib/middlewares/csrf.js +31 -35
  49. package/dist/lib/middlewares/dta.d.ts +5 -2
  50. package/dist/lib/middlewares/dta.js +11 -10
  51. package/dist/lib/middlewares/hsts.d.ts +6 -3
  52. package/dist/lib/middlewares/hsts.js +17 -19
  53. package/dist/lib/middlewares/index.d.ts +24 -21
  54. package/dist/lib/middlewares/index.js +26 -22
  55. package/dist/lib/middlewares/methodnoallow.d.ts +5 -2
  56. package/dist/lib/middlewares/methodnoallow.js +13 -18
  57. package/dist/lib/middlewares/noopen.d.ts +6 -3
  58. package/dist/lib/middlewares/noopen.js +14 -13
  59. package/dist/lib/middlewares/nosniff.d.ts +6 -3
  60. package/dist/lib/middlewares/nosniff.js +22 -24
  61. package/dist/lib/middlewares/referrerPolicy.d.ts +6 -3
  62. package/dist/lib/middlewares/referrerPolicy.js +27 -30
  63. package/dist/lib/middlewares/xframe.d.ts +6 -3
  64. package/dist/lib/middlewares/xframe.js +16 -15
  65. package/dist/lib/middlewares/xssProtection.d.ts +6 -3
  66. package/dist/lib/middlewares/xssProtection.js +15 -12
  67. package/dist/lib/utils.d.ts +22 -17
  68. package/dist/lib/utils.js +112 -177
  69. package/dist/types.d.ts +38 -36
  70. package/dist/types.js +1 -2
  71. package/package.json +31 -37
@@ -1,25 +1,16 @@
1
- /**
2
- * File Inclusion
3
- */
4
- export default function pathFilter(path) {
5
- if (typeof path !== 'string')
6
- return path;
7
- const pathSource = path;
8
- while (path.indexOf('%') !== -1) {
9
- try {
10
- path = decodeURIComponent(path);
11
- }
12
- catch {
13
- if (process.env.NODE_ENV !== 'production') {
14
- // Not a PROD env, logging with a warning.
15
- this.ctx.coreLogger.warn('[@eggjs/security/lib/helper/spath] : decode file path %j failed.', path);
16
- }
17
- break;
18
- }
19
- }
20
- if (path.indexOf('..') !== -1 || path[0] === '/') {
21
- return null;
22
- }
23
- return pathSource;
1
+ //#region src/lib/helper/spath.ts
2
+ function pathFilter(path) {
3
+ if (typeof path !== "string") return path;
4
+ const pathSource = path;
5
+ while (path.indexOf("%") !== -1) try {
6
+ path = decodeURIComponent(path);
7
+ } catch {
8
+ if (process.env.NODE_ENV !== "production") this.ctx.coreLogger.warn("[@eggjs/security/lib/helper/spath] : decode file path %j failed.", path);
9
+ break;
10
+ }
11
+ if (path.indexOf("..") !== -1 || path[0] === "/") return null;
12
+ return pathSource;
24
13
  }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2hlbHBlci9zcGF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUlILE1BQU0sQ0FBQyxPQUFPLFVBQVUsVUFBVSxDQUF5QixJQUFZO0lBQ3JFLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRTFDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQztJQUV4QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUM7WUFDSCxJQUFJLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssWUFBWSxFQUFFLENBQUM7Z0JBQzFDLDBDQUEwQztnQkFDMUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGtFQUFrRSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3JHLENBQUM7WUFDRCxNQUFNO1FBQ1IsQ0FBQztJQUNILENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2pELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMifQ==
14
+
15
+ //#endregion
16
+ export { pathFilter as default };
@@ -1,2 +1,6 @@
1
- import type { BaseContextClass } from 'egg';
2
- export default function surl(this: BaseContextClass, val: string): string;
1
+ import { BaseContextClass } from "egg";
2
+
3
+ //#region src/lib/helper/surl.d.ts
4
+ declare function surl(this: BaseContextClass, val: string): string;
5
+ //#endregion
6
+ export { surl as default };
@@ -1,30 +1,25 @@
1
+ //#region src/lib/helper/surl.ts
1
2
  const escapeMap = {
2
- '"': '"',
3
- '<': '&lt;',
4
- '>': '&gt;',
5
- "'": '&#x27;',
3
+ "\"": "&quot;",
4
+ "<": "&lt;",
5
+ ">": "&gt;",
6
+ "'": "&#x27;"
6
7
  };
7
- export default function surl(val) {
8
- // Just get the converted the protocolWhiteList in `Set` mode,
9
- // Avoid conversions in `foreach`
10
- const protocolWhiteListSet = this.app.config.security.__protocolWhiteListSet;
11
- if (typeof val !== 'string') {
12
- return val;
13
- }
14
- // only test on absolute path
15
- if (val[0] !== '/') {
16
- const arr = val.split('://', 2);
17
- const protocol = arr.length > 1 ? arr[0].toLowerCase() : '';
18
- if (protocol === '' || !protocolWhiteListSet.has(protocol)) {
19
- if (this.app.config.env === 'local') {
20
- this.ctx.coreLogger.warn('[@eggjs/security/surl] url: %j, protocol: %j, ' +
21
- 'protocol is empty or not in white list, convert to empty string', val, protocol);
22
- }
23
- return '';
24
- }
25
- }
26
- return val.replace(/["'<>]/g, (ch) => {
27
- return escapeMap[ch];
28
- });
8
+ function surl(val) {
9
+ const protocolWhiteListSet = this.app.config.security.__protocolWhiteListSet;
10
+ if (typeof val !== "string") return val;
11
+ if (val[0] !== "/") {
12
+ const arr = val.split("://", 2);
13
+ const protocol = arr.length > 1 ? arr[0].toLowerCase() : "";
14
+ if (protocol === "" || !protocolWhiteListSet.has(protocol)) {
15
+ if (this.app.config.env === "local") this.ctx.coreLogger.warn("[@eggjs/security/surl] url: %j, protocol: %j, protocol is empty or not in white list, convert to empty string", val, protocol);
16
+ return "";
17
+ }
18
+ }
19
+ return val.replace(/["'<>]/g, (ch) => {
20
+ return escapeMap[ch];
21
+ });
29
22
  }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VybC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvaGVscGVyL3N1cmwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxTQUFTLEdBQTJCO0lBQ3hDLEdBQUcsRUFBRSxRQUFRO0lBQ2IsR0FBRyxFQUFFLE1BQU07SUFDWCxHQUFHLEVBQUUsTUFBTTtJQUNYLEdBQUcsRUFBRSxRQUFRO0NBQ2QsQ0FBQztBQUVGLE1BQU0sQ0FBQyxPQUFPLFVBQVUsSUFBSSxDQUF5QixHQUFXO0lBQzlELDhEQUE4RDtJQUM5RCxpQ0FBaUM7SUFDakMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsc0JBQXVCLENBQUM7SUFFOUUsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM1QixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCw2QkFBNkI7SUFDN0IsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDbkIsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEMsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzVELElBQUksUUFBUSxLQUFLLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzNELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUNwQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ3RCLGdEQUFnRDtvQkFDOUMsaUVBQWlFLEVBQ25FLEdBQUcsRUFDSCxRQUFRLENBQ1QsQ0FBQztZQUNKLENBQUM7WUFDRCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO1FBQ25DLE9BQU8sU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyJ9
23
+
24
+ //#endregion
25
+ export { surl as default };
@@ -1,4 +1,7 @@
1
- import type { MiddlewareFunc } from 'egg';
2
- import type { SecurityConfig } from '../../config/config.default.ts';
1
+ import { SecurityConfig } from "../../config/config.default.js";
2
+ import { MiddlewareFunc } from "egg";
3
+
4
+ //#region src/lib/middlewares/csp.d.ts
3
5
  declare const _default: (options: SecurityConfig["csp"]) => MiddlewareFunc;
4
- export default _default;
6
+ //#endregion
7
+ export { _default as default };
@@ -1,57 +1,46 @@
1
- import extend from 'extend';
2
1
  import { checkIfIgnore } from "../utils.js";
3
- const HEADER = ['x-content-security-policy', 'content-security-policy'];
4
- const REPORT_ONLY_HEADER = ['x-content-security-policy-report-only', 'content-security-policy-report-only'];
5
- // Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
2
+ import extend from "extend";
3
+
4
+ //#region src/lib/middlewares/csp.ts
5
+ const HEADER = ["x-content-security-policy", "content-security-policy"];
6
+ const REPORT_ONLY_HEADER = ["x-content-security-policy-report-only", "content-security-policy-report-only"];
6
7
  const MSIE_REGEXP = / MSIE /i;
7
- export default (options) => {
8
- return async function csp(ctx, next) {
9
- await next();
10
- const opts = {
11
- ...options,
12
- ...ctx.securityOptions.csp,
13
- };
14
- if (checkIfIgnore(opts, ctx))
15
- return;
16
- let finalHeader;
17
- const matchedOption = extend(true, {}, opts.policy);
18
- const bufArray = [];
19
- const headers = opts.reportOnly ? REPORT_ONLY_HEADER : HEADER;
20
- if (opts.supportIE && MSIE_REGEXP.test(ctx.get('user-agent'))) {
21
- finalHeader = headers[0];
22
- }
23
- else {
24
- finalHeader = headers[1];
25
- }
26
- for (const key in matchedOption) {
27
- const value = matchedOption[key];
28
- // Other arrays are splitted into strings EXCEPT `sandbox`
29
- // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/sandbox
30
- if (key === 'sandbox' && value === true) {
31
- bufArray.push(key);
32
- }
33
- else {
34
- let values = (Array.isArray(value) ? value : [value]);
35
- if (key === 'script-src') {
36
- const hasNonce = values.some(function (val) {
37
- return val.indexOf('nonce-') !== -1;
38
- });
39
- if (!hasNonce) {
40
- values.push("'nonce-" + ctx.nonce + "'");
41
- }
42
- }
43
- values = values.map(function (d) {
44
- if (d.startsWith('.')) {
45
- d = '*' + d;
46
- }
47
- return d;
48
- });
49
- bufArray.push(key + ' ' + values.join(' '));
50
- }
51
- }
52
- const headerString = bufArray.join(';');
53
- ctx.set(finalHeader, headerString);
54
- ctx.set('x-csp-nonce', ctx.nonce);
55
- };
8
+ var csp_default = (options) => {
9
+ return async function csp(ctx, next) {
10
+ await next();
11
+ const opts = {
12
+ ...options,
13
+ ...ctx.securityOptions.csp
14
+ };
15
+ if (checkIfIgnore(opts, ctx)) return;
16
+ let finalHeader;
17
+ const matchedOption = extend(true, {}, opts.policy);
18
+ const bufArray = [];
19
+ const headers = opts.reportOnly ? REPORT_ONLY_HEADER : HEADER;
20
+ if (opts.supportIE && MSIE_REGEXP.test(ctx.get("user-agent"))) finalHeader = headers[0];
21
+ else finalHeader = headers[1];
22
+ for (const key in matchedOption) {
23
+ const value = matchedOption[key];
24
+ if (key === "sandbox" && value === true) bufArray.push(key);
25
+ else {
26
+ let values = Array.isArray(value) ? value : [value];
27
+ if (key === "script-src") {
28
+ if (!values.some(function(val) {
29
+ return val.indexOf("nonce-") !== -1;
30
+ })) values.push("'nonce-" + ctx.nonce + "'");
31
+ }
32
+ values = values.map(function(d) {
33
+ if (d.startsWith(".")) d = "*" + d;
34
+ return d;
35
+ });
36
+ bufArray.push(key + " " + values.join(" "));
37
+ }
38
+ }
39
+ const headerString = bufArray.join(";");
40
+ ctx.set(finalHeader, headerString);
41
+ ctx.set("x-csp-nonce", ctx.nonce);
42
+ };
56
43
  };
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9taWRkbGV3YXJlcy9jc3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRzVCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsTUFBTSxNQUFNLEdBQUcsQ0FBQywyQkFBMkIsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO0FBQ3hFLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyx1Q0FBdUMsRUFBRSxxQ0FBcUMsQ0FBQyxDQUFDO0FBRTVHLHFEQUFxRDtBQUNyRCxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUM7QUFFOUIsZUFBZSxDQUFDLE9BQThCLEVBQWtCLEVBQUU7SUFDaEUsT0FBTyxLQUFLLFVBQVUsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJO1FBQ2pDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFFYixNQUFNLElBQUksR0FBRztZQUNYLEdBQUcsT0FBTztZQUNWLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxHQUFHO1NBQzNCLENBQUM7UUFDRixJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDO1lBQUUsT0FBTztRQUVyQyxJQUFJLFdBQVcsQ0FBQztRQUNoQixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEQsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBRXBCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDOUQsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDOUQsV0FBVyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO2FBQU0sQ0FBQztZQUNOLFdBQVcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUVELEtBQUssTUFBTSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7WUFDaEMsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pDLDBEQUEwRDtZQUMxRCw0RkFBNEY7WUFDNUYsSUFBSSxHQUFHLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDeEMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQWEsQ0FBQztnQkFDbEUsSUFBSSxHQUFHLEtBQUssWUFBWSxFQUFFLENBQUM7b0JBQ3pCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHO3dCQUN4QyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7b0JBQ3RDLENBQUMsQ0FBQyxDQUFDO29CQUVILElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQzt3QkFDZCxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDO29CQUMzQyxDQUFDO2dCQUNILENBQUM7Z0JBRUQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO29CQUM3QixJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQzt3QkFDdEIsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7b0JBQ2QsQ0FBQztvQkFDRCxPQUFPLENBQUMsQ0FBQztnQkFDWCxDQUFDLENBQUMsQ0FBQztnQkFDSCxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzlDLENBQUM7UUFDSCxDQUFDO1FBQ0QsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QyxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNuQyxHQUFHLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIn0=
44
+
45
+ //#endregion
46
+ export { csp_default as default };
@@ -1,4 +1,7 @@
1
- import type { MiddlewareFunc } from 'egg';
2
- import type { SecurityConfig } from '../../config/config.default.ts';
1
+ import { SecurityConfig } from "../../config/config.default.js";
2
+ import { MiddlewareFunc } from "egg";
3
+
4
+ //#region src/lib/middlewares/csrf.d.ts
3
5
  declare const _default: (options: SecurityConfig["csrf"]) => MiddlewareFunc;
4
- export default _default;
6
+ //#endregion
7
+ export { _default as default };
@@ -1,37 +1,33 @@
1
- import { debuglog } from 'node:util';
2
- import typeis from 'type-is';
3
1
  import { checkIfIgnore } from "../utils.js";
4
- const debug = debuglog('egg/security/lib/middlewares/csrf');
5
- export default (options) => {
6
- return function csrf(ctx, next) {
7
- if (checkIfIgnore(options, ctx)) {
8
- return next();
9
- }
10
- // ensure csrf token exists
11
- if (['any', 'all', 'ctoken'].includes(options.type)) {
12
- ctx.ensureCsrfSecret();
13
- }
14
- // supported requests
15
- const method = ctx.method;
16
- let isSupported = false;
17
- for (const eachRule of options.supportedRequests) {
18
- if (eachRule.path.test(ctx.path)) {
19
- if (eachRule.methods.includes(method)) {
20
- isSupported = true;
21
- break;
22
- }
23
- }
24
- }
25
- if (!isSupported) {
26
- return next();
27
- }
28
- if (options.ignoreJSON && typeis.is(ctx.get('content-type'), 'json')) {
29
- return next();
30
- }
31
- const body = ctx.request.body;
32
- debug('%s %s, got %j', ctx.method, ctx.url, body);
33
- ctx.assertCsrf();
34
- return next();
35
- };
2
+ import { debuglog } from "node:util";
3
+ import typeis from "type-is";
4
+
5
+ //#region src/lib/middlewares/csrf.ts
6
+ const debug = debuglog("egg/security/lib/middlewares/csrf");
7
+ var csrf_default = (options) => {
8
+ return function csrf(ctx, next) {
9
+ if (checkIfIgnore(options, ctx)) return next();
10
+ if ([
11
+ "any",
12
+ "all",
13
+ "ctoken"
14
+ ].includes(options.type)) ctx.ensureCsrfSecret();
15
+ const method = ctx.method;
16
+ let isSupported = false;
17
+ for (const eachRule of options.supportedRequests) if (eachRule.path.test(ctx.path)) {
18
+ if (eachRule.methods.includes(method)) {
19
+ isSupported = true;
20
+ break;
21
+ }
22
+ }
23
+ if (!isSupported) return next();
24
+ if (options.ignoreJSON && typeis.is(ctx.get("content-type"), "json")) return next();
25
+ const body = ctx.request.body;
26
+ debug("%s %s, got %j", ctx.method, ctx.url, body);
27
+ ctx.assertCsrf();
28
+ return next();
29
+ };
36
30
  };
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NyZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbWlkZGxld2FyZXMvY3NyZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR3JDLE9BQU8sTUFBTSxNQUFNLFNBQVMsQ0FBQztBQUc3QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO0FBRTVELGVBQWUsQ0FBQyxPQUErQixFQUFrQixFQUFFO0lBQ2pFLE9BQU8sU0FBUyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUk7UUFDNUIsSUFBSSxhQUFhLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDaEMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNoQixDQUFDO1FBRUQsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwRCxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN6QixDQUFDO1FBRUQscUJBQXFCO1FBQ3JCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLEtBQUssTUFBTSxRQUFRLElBQUksT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDakQsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDakMsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUN0QyxXQUFXLEdBQUcsSUFBSSxDQUFDO29CQUNuQixNQUFNO2dCQUNSLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixPQUFPLElBQUksRUFBRSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDckUsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNoQixDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDOUIsS0FBSyxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEQsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2pCLE9BQU8sSUFBSSxFQUFFLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIn0=
31
+
32
+ //#endregion
33
+ export { csrf_default as default };
@@ -1,3 +1,6 @@
1
- import type { MiddlewareFunc } from 'egg';
1
+ import { MiddlewareFunc } from "egg";
2
+
3
+ //#region src/lib/middlewares/dta.d.ts
2
4
  declare const _default: () => MiddlewareFunc;
3
- export default _default;
5
+ //#endregion
6
+ export { _default as default };
@@ -1,12 +1,13 @@
1
1
  import { isSafePath } from "../utils.js";
2
- // https://en.wikipedia.org/wiki/Directory_traversal_attack
3
- export default () => {
4
- return function dta(ctx, next) {
5
- const path = ctx.path;
6
- if (!isSafePath(path, ctx)) {
7
- ctx.throw(400);
8
- }
9
- return next();
10
- };
2
+
3
+ //#region src/lib/middlewares/dta.ts
4
+ var dta_default = () => {
5
+ return function dta(ctx, next) {
6
+ const path = ctx.path;
7
+ if (!isSafePath(path, ctx)) ctx.throw(400);
8
+ return next();
9
+ };
11
10
  };
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9taWRkbGV3YXJlcy9kdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV6QywyREFBMkQ7QUFDM0QsZUFBZSxHQUFtQixFQUFFO0lBQ2xDLE9BQU8sU0FBUyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUk7UUFDM0IsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzNCLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakIsQ0FBQztRQUNELE9BQU8sSUFBSSxFQUFFLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIn0=
11
+
12
+ //#endregion
13
+ export { dta_default as default };
@@ -1,4 +1,7 @@
1
- import type { MiddlewareFunc } from 'egg';
2
- import type { SecurityConfig } from '../../config/config.default.ts';
1
+ import { SecurityConfig } from "../../config/config.default.js";
2
+ import { MiddlewareFunc } from "egg";
3
+
4
+ //#region src/lib/middlewares/hsts.d.ts
3
5
  declare const _default: (options: SecurityConfig["hsts"]) => MiddlewareFunc;
4
- export default _default;
6
+ //#endregion
7
+ export { _default as default };
@@ -1,21 +1,19 @@
1
1
  import { checkIfIgnore } from "../utils.js";
2
- // Set Strict-Transport-Security header
3
- export default (options) => {
4
- return async function hsts(ctx, next) {
5
- await next();
6
- const opts = {
7
- ...options,
8
- ...ctx.securityOptions.hsts,
9
- };
10
- if (checkIfIgnore(opts, ctx))
11
- return;
12
- let val = `max-age=${opts.maxAge}`;
13
- // If opts.includeSubdomains is defined,
14
- // the rule is also valid for all the sub domains of the website
15
- if (opts.includeSubdomains) {
16
- val = `${val}; includeSubdomains`;
17
- }
18
- ctx.set('strict-transport-security', val);
19
- };
2
+
3
+ //#region src/lib/middlewares/hsts.ts
4
+ var hsts_default = (options) => {
5
+ return async function hsts(ctx, next) {
6
+ await next();
7
+ const opts = {
8
+ ...options,
9
+ ...ctx.securityOptions.hsts
10
+ };
11
+ if (checkIfIgnore(opts, ctx)) return;
12
+ let val = `max-age=${opts.maxAge}`;
13
+ if (opts.includeSubdomains) val = `${val}; includeSubdomains`;
14
+ ctx.set("strict-transport-security", val);
15
+ };
20
16
  };
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbWlkZGxld2FyZXMvaHN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLHVDQUF1QztBQUN2QyxlQUFlLENBQUMsT0FBK0IsRUFBa0IsRUFBRTtJQUNqRSxPQUFPLEtBQUssVUFBVSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUk7UUFDbEMsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUViLE1BQU0sSUFBSSxHQUFHO1lBQ1gsR0FBRyxPQUFPO1lBQ1YsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUk7U0FDNUIsQ0FBQztRQUNGLElBQUksYUFBYSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUM7WUFBRSxPQUFPO1FBRXJDLElBQUksR0FBRyxHQUFHLFdBQVcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ25DLHdDQUF3QztRQUN4QyxnRUFBZ0U7UUFDaEUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixHQUFHLEdBQUcsR0FBRyxHQUFHLHFCQUFxQixDQUFDO1FBQ3BDLENBQUM7UUFDRCxHQUFHLENBQUMsR0FBRyxDQUFDLDJCQUEyQixFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
17
+
18
+ //#endregion
19
+ export { hsts_default as default };
@@ -1,23 +1,26 @@
1
- import csp from './csp.ts';
2
- import csrf from './csrf.ts';
3
- import dta from './dta.ts';
4
- import hsts from './hsts.ts';
5
- import methodnoallow from './methodnoallow.ts';
6
- import noopen from './noopen.ts';
7
- import nosniff from './nosniff.ts';
8
- import referrerPolicy from './referrerPolicy.ts';
9
- import xframe from './xframe.ts';
10
- import xssProtection from './xssProtection.ts';
1
+ import _default from "./csp.js";
2
+ import _default$1 from "./csrf.js";
3
+ import _default$2 from "./dta.js";
4
+ import _default$3 from "./hsts.js";
5
+ import _default$4 from "./methodnoallow.js";
6
+ import _default$5 from "./noopen.js";
7
+ import _default$6 from "./nosniff.js";
8
+ import _default$7 from "./referrerPolicy.js";
9
+ import _default$8 from "./xframe.js";
10
+ import _default$9 from "./xssProtection.js";
11
+
12
+ //#region src/lib/middlewares/index.d.ts
11
13
  declare const middlewares: {
12
- csp: typeof csp;
13
- csrf: typeof csrf;
14
- dta: typeof dta;
15
- hsts: typeof hsts;
16
- methodnoallow: typeof methodnoallow;
17
- noopen: typeof noopen;
18
- nosniff: typeof nosniff;
19
- referrerPolicy: typeof referrerPolicy;
20
- xframe: typeof xframe;
21
- xssProtection: typeof xssProtection;
14
+ csp: typeof _default;
15
+ csrf: typeof _default$1;
16
+ dta: typeof _default$2;
17
+ hsts: typeof _default$3;
18
+ methodnoallow: typeof _default$4;
19
+ noopen: typeof _default$5;
20
+ nosniff: typeof _default$6;
21
+ referrerPolicy: typeof _default$7;
22
+ xframe: typeof _default$8;
23
+ xssProtection: typeof _default$9;
22
24
  };
23
- export default middlewares;
25
+ //#endregion
26
+ export { middlewares as default };
@@ -1,24 +1,28 @@
1
- import csp from "./csp.js";
2
- import csrf from "./csrf.js";
3
- import dta from "./dta.js";
4
- import hsts from "./hsts.js";
5
- import methodnoallow from "./methodnoallow.js";
6
- import noopen from "./noopen.js";
7
- import nosniff from "./nosniff.js";
8
- import referrerPolicy from "./referrerPolicy.js";
9
- import xframe from "./xframe.js";
10
- import xssProtection from "./xssProtection.js";
1
+ import csp_default from "./csp.js";
2
+ import csrf_default from "./csrf.js";
3
+ import dta_default from "./dta.js";
4
+ import hsts_default from "./hsts.js";
5
+ import methodnoallow_default from "./methodnoallow.js";
6
+ import noopen_default from "./noopen.js";
7
+ import nosniff_default from "./nosniff.js";
8
+ import referrerPolicy_default from "./referrerPolicy.js";
9
+ import xframe_default from "./xframe.js";
10
+ import xssProtection_default from "./xssProtection.js";
11
+
12
+ //#region src/lib/middlewares/index.ts
11
13
  const middlewares = {
12
- csp,
13
- csrf,
14
- dta,
15
- hsts,
16
- methodnoallow,
17
- noopen,
18
- nosniff,
19
- referrerPolicy,
20
- xframe,
21
- xssProtection,
14
+ csp: csp_default,
15
+ csrf: csrf_default,
16
+ dta: dta_default,
17
+ hsts: hsts_default,
18
+ methodnoallow: methodnoallow_default,
19
+ noopen: noopen_default,
20
+ nosniff: nosniff_default,
21
+ referrerPolicy: referrerPolicy_default,
22
+ xframe: xframe_default,
23
+ xssProtection: xssProtection_default
22
24
  };
23
- export default middlewares;
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL21pZGRsZXdhcmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sR0FBRyxNQUFNLFVBQVUsQ0FBQztBQUMzQixPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFDN0IsT0FBTyxHQUFHLE1BQU0sVUFBVSxDQUFDO0FBQzNCLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUM3QixPQUFPLGFBQWEsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ25DLE9BQU8sY0FBYyxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQztBQUNqQyxPQUFPLGFBQWEsTUFBTSxvQkFBb0IsQ0FBQztBQUUvQyxNQUFNLFdBQVcsR0FXYjtJQUNGLEdBQUc7SUFDSCxJQUFJO0lBQ0osR0FBRztJQUNILElBQUk7SUFDSixhQUFhO0lBQ2IsTUFBTTtJQUNOLE9BQU87SUFDUCxjQUFjO0lBQ2QsTUFBTTtJQUNOLGFBQWE7Q0FDZCxDQUFDO0FBRUYsZUFBZSxXQUFXLENBQUMifQ==
25
+ var middlewares_default = middlewares;
26
+
27
+ //#endregion
28
+ export { middlewares_default as default };
@@ -1,3 +1,6 @@
1
- import type { MiddlewareFunc } from 'egg';
1
+ import { MiddlewareFunc } from "egg";
2
+
3
+ //#region src/lib/middlewares/methodnoallow.d.ts
2
4
  declare const _default: () => MiddlewareFunc;
3
- export default _default;
5
+ //#endregion
6
+ export { _default as default };
@@ -1,20 +1,15 @@
1
- import { METHODS } from 'node:http';
2
- const METHODS_NOT_ALLOWED = ['TRACE', 'TRACK'];
1
+ import { METHODS } from "node:http";
2
+
3
+ //#region src/lib/middlewares/methodnoallow.ts
4
+ const METHODS_NOT_ALLOWED = ["TRACE", "TRACK"];
3
5
  const safeHttpMethodsMap = {};
4
- for (const method of METHODS) {
5
- if (!METHODS_NOT_ALLOWED.includes(method)) {
6
- safeHttpMethodsMap[method.toUpperCase()] = true;
7
- }
8
- }
9
- // https://www.owasp.org/index.php/Cross_Site_Tracing
10
- // http://jsperf.com/find-by-map-with-find-by-array
11
- export default () => {
12
- return function notAllow(ctx, next) {
13
- // ctx.method is upper case
14
- if (!safeHttpMethodsMap[ctx.method]) {
15
- ctx.throw(405);
16
- }
17
- return next();
18
- };
6
+ for (const method of METHODS) if (!METHODS_NOT_ALLOWED.includes(method)) safeHttpMethodsMap[method.toUpperCase()] = true;
7
+ var methodnoallow_default = () => {
8
+ return function notAllow(ctx, next) {
9
+ if (!safeHttpMethodsMap[ctx.method]) ctx.throw(405);
10
+ return next();
11
+ };
19
12
  };
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0aG9kbm9hbGxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbWlkZGxld2FyZXMvbWV0aG9kbm9hbGxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBSXBDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDL0MsTUFBTSxrQkFBa0IsR0FBNEIsRUFBRSxDQUFDO0FBRXZELEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7SUFDN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNsRCxDQUFDO0FBQ0gsQ0FBQztBQUVELHFEQUFxRDtBQUNyRCxtREFBbUQ7QUFDbkQsZUFBZSxHQUFtQixFQUFFO0lBQ2xDLE9BQU8sU0FBUyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUk7UUFDaEMsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxPQUFPLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
13
+
14
+ //#endregion
15
+ export { methodnoallow_default as default };
@@ -1,4 +1,7 @@
1
- import type { MiddlewareFunc } from 'egg';
2
- import type { SecurityConfig } from '../../config/config.default.ts';
1
+ import { SecurityConfig } from "../../config/config.default.js";
2
+ import { MiddlewareFunc } from "egg";
3
+
4
+ //#region src/lib/middlewares/noopen.d.ts
3
5
  declare const _default: (options: SecurityConfig["noopen"]) => MiddlewareFunc;
4
- export default _default;
6
+ //#endregion
7
+ export { _default as default };
@@ -1,15 +1,16 @@
1
1
  import { checkIfIgnore } from "../utils.js";
2
- // @see http://blogs.msdn.com/b/ieinternals/archive/2009/06/30/internet-explorer-custom-http-headers.aspx
3
- export default (options) => {
4
- return async function noopen(ctx, next) {
5
- await next();
6
- const opts = {
7
- ...options,
8
- ...ctx.securityOptions.noopen,
9
- };
10
- if (checkIfIgnore(opts, ctx))
11
- return;
12
- ctx.set('x-download-options', 'noopen');
13
- };
2
+
3
+ //#region src/lib/middlewares/noopen.ts
4
+ var noopen_default = (options) => {
5
+ return async function noopen(ctx, next) {
6
+ await next();
7
+ if (checkIfIgnore({
8
+ ...options,
9
+ ...ctx.securityOptions.noopen
10
+ }, ctx)) return;
11
+ ctx.set("x-download-options", "noopen");
12
+ };
14
13
  };
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9vcGVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9taWRkbGV3YXJlcy9ub29wZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1Qyx5R0FBeUc7QUFDekcsZUFBZSxDQUFDLE9BQWlDLEVBQWtCLEVBQUU7SUFDbkUsT0FBTyxLQUFLLFVBQVUsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJO1FBQ3BDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFFYixNQUFNLElBQUksR0FBRztZQUNYLEdBQUcsT0FBTztZQUNWLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxNQUFNO1NBQzlCLENBQUM7UUFDRixJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDO1lBQUUsT0FBTztRQUVyQyxHQUFHLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
14
+
15
+ //#endregion
16
+ export { noopen_default as default };
@@ -1,4 +1,7 @@
1
- import type { MiddlewareFunc } from 'egg';
2
- import type { SecurityConfig } from '../../config/config.default.ts';
1
+ import { SecurityConfig } from "../../config/config.default.js";
2
+ import { MiddlewareFunc } from "egg";
3
+
4
+ //#region src/lib/middlewares/nosniff.d.ts
3
5
  declare const _default: (options: SecurityConfig["nosniff"]) => MiddlewareFunc;
4
- export default _default;
6
+ //#endregion
7
+ export { _default as default };