@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.
- package/dist/agent.d.ts +5 -9
- package/dist/agent.js +10 -14
- package/dist/app/extend/agent.d.ts +4 -8
- package/dist/app/extend/agent.js +8 -12
- package/dist/app/extend/application.d.ts +7 -11
- package/dist/app/extend/application.js +32 -32
- package/dist/app/extend/context.d.ts +52 -55
- package/dist/app/extend/context.js +241 -188
- package/dist/app/extend/helper.d.ts +10 -22
- package/dist/app/extend/helper.js +5 -7
- package/dist/app/extend/response.d.ts +34 -38
- package/dist/app/extend/response.js +82 -69
- package/dist/app/middleware/securities.d.ts +4 -8
- package/dist/app/middleware/securities.js +52 -38
- package/dist/app.d.ts +5 -9
- package/dist/app.js +24 -22
- package/dist/config/config.default.d.ts +784 -787
- package/dist/config/config.default.js +356 -156
- package/dist/config/config.local.d.ts +2 -5
- package/dist/config/config.local.js +8 -5
- package/dist/index.d.ts +4 -1
- package/dist/index.js +2 -2
- package/dist/lib/extend/safe_curl.d.ts +9 -13
- package/dist/lib/extend/safe_curl.js +23 -17
- package/dist/lib/helper/cliFilter.d.ts +1 -4
- package/dist/lib/helper/cliFilter.js +15 -16
- package/dist/lib/helper/escape.d.ts +2 -2
- package/dist/lib/helper/escape.js +3 -7
- package/dist/lib/helper/escapeShellArg.d.ts +1 -4
- package/dist/lib/helper/escapeShellArg.js +4 -6
- package/dist/lib/helper/escapeShellCmd.d.ts +1 -4
- package/dist/lib/helper/escapeShellCmd.js +13 -14
- package/dist/lib/helper/index.d.ts +19 -22
- package/dist/lib/helper/index.js +15 -19
- package/dist/lib/helper/shtml.d.ts +2 -6
- package/dist/lib/helper/shtml.js +68 -52
- package/dist/lib/helper/sjs.d.ts +1 -4
- package/dist/lib/helper/sjs.js +44 -31
- package/dist/lib/helper/sjson.d.ts +1 -4
- package/dist/lib/helper/sjson.js +35 -28
- package/dist/lib/helper/spath.d.ts +5 -7
- package/dist/lib/helper/spath.js +24 -15
- package/dist/lib/helper/surl.d.ts +2 -6
- package/dist/lib/helper/surl.js +27 -22
- package/dist/lib/middlewares/csp.d.ts +3 -6
- package/dist/lib/middlewares/csp.js +54 -43
- package/dist/lib/middlewares/csrf.d.ts +3 -6
- package/dist/lib/middlewares/csrf.js +35 -31
- package/dist/lib/middlewares/dta.d.ts +2 -5
- package/dist/lib/middlewares/dta.js +10 -11
- package/dist/lib/middlewares/hsts.d.ts +3 -6
- package/dist/lib/middlewares/hsts.js +19 -17
- package/dist/lib/middlewares/index.d.ts +11 -16
- package/dist/lib/middlewares/index.js +22 -26
- package/dist/lib/middlewares/methodnoallow.d.ts +2 -5
- package/dist/lib/middlewares/methodnoallow.js +18 -13
- package/dist/lib/middlewares/noopen.d.ts +3 -6
- package/dist/lib/middlewares/noopen.js +13 -15
- package/dist/lib/middlewares/nosniff.d.ts +3 -6
- package/dist/lib/middlewares/nosniff.js +24 -23
- package/dist/lib/middlewares/referrerPolicy.d.ts +3 -6
- package/dist/lib/middlewares/referrerPolicy.js +31 -27
- package/dist/lib/middlewares/xframe.d.ts +3 -6
- package/dist/lib/middlewares/xframe.js +15 -16
- package/dist/lib/middlewares/xssProtection.d.ts +3 -6
- package/dist/lib/middlewares/xssProtection.js +12 -15
- package/dist/lib/utils.d.ts +12 -17
- package/dist/lib/utils.js +177 -112
- package/dist/types.d.ts +35 -37
- package/dist/types.js +2 -1
- package/package.json +6 -6
|
@@ -1,18 +1,17 @@
|
|
|
1
|
-
//#region src/lib/helper/cliFilter.ts
|
|
2
1
|
/**
|
|
3
|
-
* remote command execution
|
|
4
|
-
*/
|
|
5
|
-
const BASIC_ALPHABETS = new Set(
|
|
6
|
-
function cliFilter(text) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
2
|
+
* remote command execution
|
|
3
|
+
*/
|
|
4
|
+
const BASIC_ALPHABETS = new Set('abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ.-_'.split(''));
|
|
5
|
+
export default function cliFilter(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;
|
|
15
16
|
}
|
|
16
|
-
|
|
17
|
-
//#endregion
|
|
18
|
-
export { cliFilter as default };
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpRmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9oZWxwZXIvY2xpRmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLENBQUMsbUVBQW1FLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFL0csTUFBTSxDQUFDLE9BQU8sVUFBVSxTQUFTLENBQUMsSUFBWTtJQUM1QyxNQUFNLEdBQUcsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUNiLElBQUksS0FBSyxDQUFDO0lBRVYsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNoRCxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25CLElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLEdBQUcsSUFBSSxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyJ9
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import escapeHTML from
|
|
2
|
-
export
|
|
1
|
+
import escapeHTML from 'escape-html';
|
|
2
|
+
export default escapeHTML;
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import escapeHTML from
|
|
2
|
-
|
|
3
|
-
//#
|
|
4
|
-
var escape_default = escapeHTML;
|
|
5
|
-
|
|
6
|
-
//#endregion
|
|
7
|
-
export { escape_default as default };
|
|
1
|
+
import escapeHTML from 'escape-html';
|
|
2
|
+
export default escapeHTML;
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9oZWxwZXIvZXNjYXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sVUFBVSxNQUFNLGFBQWEsQ0FBQztBQUVyQyxlQUFlLFVBQVUsQ0FBQyJ9
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
export default function escapeShellArg(text) {
|
|
2
|
+
const str = '' + text;
|
|
3
|
+
return "'" + str.replace(/\\/g, '\\\\').replace(/'/g, "\\'") + "'";
|
|
4
4
|
}
|
|
5
|
-
|
|
6
|
-
//#endregion
|
|
7
|
-
export { escapeShellArg as default };
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBlU2hlbGxBcmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2hlbHBlci9lc2NhcGVTaGVsbEFyZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsT0FBTyxVQUFVLGNBQWMsQ0FBQyxJQUFZO0lBQ2pELE1BQU0sR0FBRyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDdEIsT0FBTyxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDckUsQ0FBQyJ9
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
const BASIC_ALPHABETS = new Set('#&;`|*?~<>^()[]{}$;\'",\x0A\xFF'.split(''));
|
|
2
|
+
export default function escapeShellCmd(text) {
|
|
3
|
+
const str = '' + text;
|
|
4
|
+
let res = '';
|
|
5
|
+
let ascii;
|
|
6
|
+
for (let index = 0; index < str.length; index++) {
|
|
7
|
+
ascii = str[index];
|
|
8
|
+
if (!BASIC_ALPHABETS.has(ascii)) {
|
|
9
|
+
res += ascii;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return res;
|
|
12
13
|
}
|
|
13
|
-
|
|
14
|
-
//#endregion
|
|
15
|
-
export { escapeShellCmd as default };
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBlU2hlbGxDbWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2hlbHBlci9lc2NhcGVTaGVsbENtZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxpQ0FBaUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUU3RSxNQUFNLENBQUMsT0FBTyxVQUFVLGNBQWMsQ0FBQyxJQUFZO0lBQ2pELE1BQU0sR0FBRyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDdEIsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ2IsSUFBSSxLQUFLLENBQUM7SUFFVixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ2hELEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxHQUFHLElBQUksS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMifQ==
|
|
@@ -1,24 +1,21 @@
|
|
|
1
|
-
import cliFilter from
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
|
|
11
|
-
//#region src/lib/helper/index.d.ts
|
|
1
|
+
import cliFilter from './cliFilter.ts';
|
|
2
|
+
import escape from './escape.ts';
|
|
3
|
+
import escapeShellArg from './escapeShellArg.ts';
|
|
4
|
+
import escapeShellCmd from './escapeShellCmd.ts';
|
|
5
|
+
import shtml from './shtml.ts';
|
|
6
|
+
import sjs from './sjs.ts';
|
|
7
|
+
import sjson from './sjson.ts';
|
|
8
|
+
import spath from './spath.ts';
|
|
9
|
+
import surl from './surl.ts';
|
|
12
10
|
declare const _default: {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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;
|
|
22
20
|
};
|
|
23
|
-
|
|
24
|
-
export { _default as default };
|
|
21
|
+
export default _default;
|
package/dist/lib/helper/index.js
CHANGED
|
@@ -1,25 +1,21 @@
|
|
|
1
1
|
import cliFilter from "./cliFilter.js";
|
|
2
|
-
import
|
|
2
|
+
import escape from "./escape.js";
|
|
3
3
|
import escapeShellArg from "./escapeShellArg.js";
|
|
4
4
|
import escapeShellCmd from "./escapeShellCmd.js";
|
|
5
5
|
import shtml from "./shtml.js";
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
6
|
+
import sjs from "./sjs.js";
|
|
7
|
+
import sjson from "./sjson.js";
|
|
8
|
+
import spath from "./spath.js";
|
|
9
9
|
import surl from "./surl.js";
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
spath: pathFilter,
|
|
21
|
-
surl
|
|
10
|
+
export default {
|
|
11
|
+
cliFilter,
|
|
12
|
+
escape,
|
|
13
|
+
escapeShellArg,
|
|
14
|
+
escapeShellCmd,
|
|
15
|
+
shtml,
|
|
16
|
+
sjs,
|
|
17
|
+
sjson,
|
|
18
|
+
spath,
|
|
19
|
+
surl,
|
|
22
20
|
};
|
|
23
|
-
|
|
24
|
-
//#endregion
|
|
25
|
-
export { helper_default as default };
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2hlbHBlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFNBQVMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxjQUFjLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxjQUFjLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQy9CLE9BQU8sR0FBRyxNQUFNLFVBQVUsQ0FBQztBQUMzQixPQUFPLEtBQUssTUFBTSxZQUFZLENBQUM7QUFDL0IsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQy9CLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUU3QixlQUFlO0lBQ2IsU0FBUztJQUNULE1BQU07SUFDTixjQUFjO0lBQ2QsY0FBYztJQUNkLEtBQUs7SUFDTCxHQUFHO0lBQ0gsS0FBSztJQUNMLEtBQUs7SUFDTCxJQUFJO0NBQ0wsQ0FBQyJ9
|
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
import { BaseContextClass } from
|
|
2
|
-
|
|
3
|
-
//#region src/lib/helper/shtml.d.ts
|
|
4
|
-
declare function shtml(this: BaseContextClass, val: string): string;
|
|
5
|
-
//#endregion
|
|
6
|
-
export { shtml as default };
|
|
1
|
+
import type { BaseContextClass } from 'egg';
|
|
2
|
+
export default function shtml(this: BaseContextClass, val: string): string;
|
package/dist/lib/helper/shtml.js
CHANGED
|
@@ -1,53 +1,69 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
1
|
+
import xss from 'xss';
|
|
2
|
+
import { isSafeDomain, getFromUrl } from "../utils.js";
|
|
3
|
+
const BUILD_IN_ON_TAG_ATTR = Symbol('buildInOnTagAttr');
|
|
4
|
+
// default rule: https://github.com/leizongmin/js-xss/blob/master/lib/default.js
|
|
5
|
+
// add domain filter based on xss module
|
|
6
|
+
// custom options http://jsxss.com/zh/options.html
|
|
7
|
+
// eg: support a tag,filter attributes except for title : whiteList: {a: ['title']}
|
|
8
|
+
export default function shtml(val) {
|
|
9
|
+
if (typeof val !== 'string') {
|
|
10
|
+
return val;
|
|
11
|
+
}
|
|
12
|
+
const securityOptions = this.ctx.securityOptions;
|
|
13
|
+
const shtmlConfig = {
|
|
14
|
+
...this.app.config.helper.shtml,
|
|
15
|
+
...securityOptions.shtml,
|
|
16
|
+
[BUILD_IN_ON_TAG_ATTR]: undefined,
|
|
17
|
+
};
|
|
18
|
+
const domainWhiteList = this.app.config.security.domainWhiteList;
|
|
19
|
+
const app = this.app;
|
|
20
|
+
// filter href and src attribute if not in domain white list
|
|
21
|
+
if (!shtmlConfig[BUILD_IN_ON_TAG_ATTR]) {
|
|
22
|
+
shtmlConfig[BUILD_IN_ON_TAG_ATTR] = (_tag, name, value, isWhiteAttr) => {
|
|
23
|
+
if (isWhiteAttr && (name === 'href' || name === 'src')) {
|
|
24
|
+
if (!value) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
value = String(value);
|
|
28
|
+
if (value[0] === '/' || value[0] === '#') {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const hostname = getFromUrl(value, 'hostname');
|
|
32
|
+
if (!hostname) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
// If we don't have our hostname in the app.security.domainWhiteList,
|
|
36
|
+
// Just check for `shtmlConfig.domainWhiteList` and `ctx.whiteList`.
|
|
37
|
+
if (!isSafeDomain(hostname, domainWhiteList)) {
|
|
38
|
+
// Check for `shtmlConfig.domainWhiteList` first (duplicated now)
|
|
39
|
+
if (shtmlConfig.domainWhiteList && shtmlConfig.domainWhiteList.length > 0) {
|
|
40
|
+
app.deprecate('[@eggjs/security/lib/helper/shtml] `config.helper.shtml.domainWhiteList` has been deprecate. Please use `config.security.domainWhiteList` instead.');
|
|
41
|
+
if (!isSafeDomain(hostname, shtmlConfig.domainWhiteList)) {
|
|
42
|
+
return '';
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
return '';
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
// avoid overriding user configuration 'onTagAttr'
|
|
52
|
+
if (shtmlConfig.onTagAttr) {
|
|
53
|
+
const customOnTagAttrHandler = shtmlConfig.onTagAttr;
|
|
54
|
+
shtmlConfig.onTagAttr = function (tag, name, value, isWhiteAttr) {
|
|
55
|
+
const result = customOnTagAttrHandler.apply(this, [tag, name, value, isWhiteAttr]);
|
|
56
|
+
if (result !== undefined) {
|
|
57
|
+
return result;
|
|
58
|
+
}
|
|
59
|
+
// fallback to build-in handler
|
|
60
|
+
return shtmlConfig[BUILD_IN_ON_TAG_ATTR].apply(this, [tag, name, value, isWhiteAttr]);
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
shtmlConfig.onTagAttr = shtmlConfig[BUILD_IN_ON_TAG_ATTR];
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return xss(val, shtmlConfig);
|
|
50
68
|
}
|
|
51
|
-
|
|
52
|
-
//#endregion
|
|
53
|
-
export { shtml as default };
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2h0bWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2hlbHBlci9zaHRtbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUM7QUFFdEIsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHdkQsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUV4RCxnRkFBZ0Y7QUFDaEYsd0NBQXdDO0FBQ3hDLGtEQUFrRDtBQUNsRCxtRkFBbUY7QUFDbkYsTUFBTSxDQUFDLE9BQU8sVUFBVSxLQUFLLENBQXlCLEdBQVc7SUFDL0QsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM1QixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQztJQUNqRCxNQUFNLFdBQVcsR0FBRztRQUNsQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLO1FBQy9CLEdBQUcsZUFBZSxDQUFDLEtBQUs7UUFDeEIsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLFNBQXVEO0tBQ2hGLENBQUM7SUFDRixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO0lBQ2pFLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDckIsNERBQTREO0lBQzVELElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDO1FBQ3ZDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUU7WUFDckUsSUFBSSxXQUFXLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN2RCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ1gsT0FBTztnQkFDVCxDQUFDO2dCQUVELEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3RCLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7b0JBQ3pDLE9BQU87Z0JBQ1QsQ0FBQztnQkFFRCxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUMvQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ2QsT0FBTztnQkFDVCxDQUFDO2dCQUVELHFFQUFxRTtnQkFDckUsb0VBQW9FO2dCQUNwRSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUMsRUFBRSxDQUFDO29CQUM3QyxpRUFBaUU7b0JBQ2pFLElBQUksV0FBVyxDQUFDLGVBQWUsSUFBSSxXQUFXLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQzt3QkFDMUUsR0FBRyxDQUFDLFNBQVMsQ0FDWCxvSkFBb0osQ0FDckosQ0FBQzt3QkFDRixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQzs0QkFDekQsT0FBTyxFQUFFLENBQUM7d0JBQ1osQ0FBQztvQkFDSCxDQUFDO3lCQUFNLENBQUM7d0JBQ04sT0FBTyxFQUFFLENBQUM7b0JBQ1osQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQztRQUVGLGtEQUFrRDtRQUNsRCxJQUFJLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMxQixNQUFNLHNCQUFzQixHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUM7WUFDckQsV0FBVyxDQUFDLFNBQVMsR0FBRyxVQUFVLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVc7Z0JBQzdELE1BQU0sTUFBTSxHQUFHLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUNuRixJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDekIsT0FBTyxNQUFNLENBQUM7Z0JBQ2hCLENBQUM7Z0JBQ0QsK0JBQStCO2dCQUMvQixPQUFPLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3pGLENBQUMsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sV0FBVyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUM1RCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUMvQixDQUFDIn0=
|
package/dist/lib/helper/sjs.d.ts
CHANGED
package/dist/lib/helper/sjs.js
CHANGED
|
@@ -1,36 +1,49 @@
|
|
|
1
|
-
//#region src/lib/helper/sjs.ts
|
|
2
1
|
/**
|
|
3
|
-
* Escape JavaScript to \xHH format
|
|
4
|
-
*/
|
|
2
|
+
* Escape JavaScript to \xHH format
|
|
3
|
+
*/
|
|
4
|
+
// escape \x00-\x7f
|
|
5
|
+
// except 0-9,A-Z,a-z(\x2f-\x3a \x40-\x5b \x60-\x7b)
|
|
6
|
+
// eslint-disable-next-line
|
|
5
7
|
const MATCH_VULNERABLE_REGEXP = /[\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]/;
|
|
6
|
-
|
|
8
|
+
// eslint-enable-next-line
|
|
9
|
+
const BASIC_ALPHABETS = new Set('abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split(''));
|
|
7
10
|
const map = {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
'\t': '\\t',
|
|
12
|
+
'\n': '\\n',
|
|
13
|
+
'\r': '\\r',
|
|
11
14
|
};
|
|
12
|
-
function escapeJavaScript(text) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
15
|
+
export default function escapeJavaScript(text) {
|
|
16
|
+
const str = '' + text;
|
|
17
|
+
const match = MATCH_VULNERABLE_REGEXP.exec(str);
|
|
18
|
+
if (!match) {
|
|
19
|
+
return str;
|
|
20
|
+
}
|
|
21
|
+
let res = '';
|
|
22
|
+
let index = 0;
|
|
23
|
+
let lastIndex = 0;
|
|
24
|
+
let ascii;
|
|
25
|
+
for (index = match.index; index < str.length; index++) {
|
|
26
|
+
ascii = str[index];
|
|
27
|
+
if (BASIC_ALPHABETS.has(ascii)) {
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
if (map[ascii] === undefined) {
|
|
32
|
+
const code = ascii.charCodeAt(0);
|
|
33
|
+
if (code > 127) {
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
map[ascii] = '\\x' + code.toString(16);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (lastIndex !== index) {
|
|
42
|
+
res += str.substring(lastIndex, index);
|
|
43
|
+
}
|
|
44
|
+
lastIndex = index + 1;
|
|
45
|
+
res += map[ascii];
|
|
46
|
+
}
|
|
47
|
+
return lastIndex !== index ? res + str.substring(lastIndex, index) : res;
|
|
33
48
|
}
|
|
34
|
-
|
|
35
|
-
//#endregion
|
|
36
|
-
export { escapeJavaScript as default };
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2pzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9oZWxwZXIvc2pzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsbUJBQW1CO0FBQ25CLG9EQUFvRDtBQUVwRCwyQkFBMkI7QUFDM0IsTUFBTSx1QkFBdUIsR0FBRyx3Q0FBd0MsQ0FBQztBQUN6RSwwQkFBMEI7QUFFMUIsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLENBQUMsZ0VBQWdFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFNUcsTUFBTSxHQUFHLEdBQTJCO0lBQ2xDLElBQUksRUFBRSxLQUFLO0lBQ1gsSUFBSSxFQUFFLEtBQUs7SUFDWCxJQUFJLEVBQUUsS0FBSztDQUNaLENBQUM7QUFFRixNQUFNLENBQUMsT0FBTyxVQUFVLGdCQUFnQixDQUFDLElBQVk7SUFDbkQsTUFBTSxHQUFHLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztJQUN0QixNQUFNLEtBQUssR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFaEQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ2IsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLElBQUksS0FBSyxDQUFDO0lBRVYsS0FBSyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ3RELEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkIsSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0IsU0FBUztRQUNYLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pDLElBQUksSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO29CQUNmLFNBQVM7Z0JBQ1gsQ0FBQztxQkFBTSxDQUFDO29CQUNOLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDekMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxTQUFTLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDeEIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxTQUFTLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUN0QixHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxPQUFPLFNBQVMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQzNFLENBQUMifQ==
|
package/dist/lib/helper/sjson.js
CHANGED
|
@@ -1,32 +1,39 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
//#region src/lib/helper/sjson.ts
|
|
1
|
+
import sjs from "./sjs.js";
|
|
4
2
|
/**
|
|
5
|
-
* escape json
|
|
6
|
-
* for output json in script
|
|
7
|
-
*/
|
|
3
|
+
* escape json
|
|
4
|
+
* for output json in script
|
|
5
|
+
*/
|
|
8
6
|
function sanitizeKey(obj) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
7
|
+
if (typeof obj !== 'object')
|
|
8
|
+
return obj;
|
|
9
|
+
if (Array.isArray(obj))
|
|
10
|
+
return obj;
|
|
11
|
+
if (obj === null)
|
|
12
|
+
return null;
|
|
13
|
+
if (typeof obj === 'boolean')
|
|
14
|
+
return obj;
|
|
15
|
+
if (typeof obj === 'number')
|
|
16
|
+
return obj;
|
|
17
|
+
if (Buffer.isBuffer(obj))
|
|
18
|
+
return obj.toString();
|
|
19
|
+
for (const k in obj) {
|
|
20
|
+
const escapedK = sjs(k);
|
|
21
|
+
if (escapedK !== k) {
|
|
22
|
+
obj[escapedK] = sanitizeKey(obj[k]);
|
|
23
|
+
obj[k] = undefined;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
obj[k] = sanitizeKey(obj[k]);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return obj;
|
|
23
30
|
}
|
|
24
|
-
function jsonEscape(obj) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
31
|
+
export default function jsonEscape(obj) {
|
|
32
|
+
return JSON.stringify(sanitizeKey(obj), (_k, v) => {
|
|
33
|
+
if (typeof v === 'string') {
|
|
34
|
+
return sjs(v);
|
|
35
|
+
}
|
|
36
|
+
return v;
|
|
37
|
+
});
|
|
29
38
|
}
|
|
30
|
-
|
|
31
|
-
//#endregion
|
|
32
|
-
export { jsonEscape as default };
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2pzb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2hlbHBlci9zanNvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEdBQUcsTUFBTSxVQUFVLENBQUM7QUFFM0I7OztHQUdHO0FBRUgsU0FBUyxXQUFXLENBQUMsR0FBUTtJQUMzQixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVE7UUFBRSxPQUFPLEdBQUcsQ0FBQztJQUN4QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQUUsT0FBTyxHQUFHLENBQUM7SUFDbkMsSUFBSSxHQUFHLEtBQUssSUFBSTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQzlCLElBQUksT0FBTyxHQUFHLEtBQUssU0FBUztRQUFFLE9BQU8sR0FBRyxDQUFDO0lBQ3pDLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUTtRQUFFLE9BQU8sR0FBRyxDQUFDO0lBQ3hDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUVoRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QixJQUFJLFFBQVEsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuQixHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUM7UUFDckIsQ0FBQzthQUFNLENBQUM7WUFDTixHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsTUFBTSxDQUFDLE9BQU8sVUFBVSxVQUFVLENBQUMsR0FBUTtJQUN6QyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ2hELElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDMUIsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIn0=
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
//#endregion
|
|
7
|
-
export { pathFilter as default };
|
|
1
|
+
/**
|
|
2
|
+
* File Inclusion
|
|
3
|
+
*/
|
|
4
|
+
import type { BaseContextClass } from 'egg';
|
|
5
|
+
export default function pathFilter(this: BaseContextClass, path: string): string | null;
|
package/dist/lib/helper/spath.js
CHANGED
|
@@ -1,16 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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;
|
|
13
24
|
}
|
|
14
|
-
|
|
15
|
-
//#endregion
|
|
16
|
-
export { pathFilter as default };
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2hlbHBlci9zcGF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUlILE1BQU0sQ0FBQyxPQUFPLFVBQVUsVUFBVSxDQUF5QixJQUFZO0lBQ3JFLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRTFDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQztJQUV4QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUM7WUFDSCxJQUFJLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssWUFBWSxFQUFFLENBQUM7Z0JBQzFDLDBDQUEwQztnQkFDMUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGtFQUFrRSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3JHLENBQUM7WUFDRCxNQUFNO1FBQ1IsQ0FBQztJQUNILENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2pELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMifQ==
|
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
import { BaseContextClass } from
|
|
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
|
+
import type { BaseContextClass } from 'egg';
|
|
2
|
+
export default function surl(this: BaseContextClass, val: string): string;
|