@next-core/easyops-runtime 0.13.8 → 0.14.0
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/cjs/auth-v2.js +1 -1
- package/dist/cjs/auth-v2.js.map +1 -1
- package/dist/cjs/auth.js +13 -3
- package/dist/cjs/auth.js.map +1 -1
- package/dist/esm/auth-v2.js +1 -1
- package/dist/esm/auth-v2.js.map +1 -1
- package/dist/esm/auth.js +12 -3
- package/dist/esm/auth.js.map +1 -1
- package/dist/types/auth.d.ts +4 -0
- package/package.json +5 -5
package/dist/cjs/auth-v2.js
CHANGED
|
@@ -11,7 +11,7 @@ var _lodash = require("lodash");
|
|
|
11
11
|
function authV2Factory() {
|
|
12
12
|
const v2Kit = (0, _runtime.getV2RuntimeFromDll)();
|
|
13
13
|
if (v2Kit) {
|
|
14
|
-
return Object.freeze((0, _lodash.pick)(v2Kit, ["authenticate", "getAuth", "isLoggedIn", "logout", "isBlockedPath", "isBlockedUrl", "isBlockedHref"]));
|
|
14
|
+
return Object.freeze((0, _lodash.pick)(v2Kit, ["authenticate", "getAuth", "isLoggedIn", "logout", "addPathToBlackList", "isBlockedPath", "isBlockedUrl", "isBlockedHref"]));
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
//# sourceMappingURL=auth-v2.js.map
|
package/dist/cjs/auth-v2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-v2.js","names":["_runtime","require","_lodash","authV2Factory","v2Kit","getV2RuntimeFromDll","Object","freeze","pick"],"sources":["../../src/auth-v2.ts"],"sourcesContent":["// istanbul ignore file\nimport { getV2RuntimeFromDll } from \"@next-core/runtime\";\nimport { pick } from \"lodash\";\nimport type * as auth from \"./auth.js\";\n\nexport function authV2Factory() {\n const v2Kit = getV2RuntimeFromDll();\n if (v2Kit) {\n return Object.freeze(\n pick(v2Kit, [\n \"authenticate\",\n \"getAuth\",\n \"isLoggedIn\",\n \"logout\",\n \"isBlockedPath\",\n \"isBlockedUrl\",\n \"isBlockedHref\",\n ])\n ) as typeof auth;\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAFA;;AAKO,SAASE,aAAaA,CAAA,EAAG;EAC9B,MAAMC,KAAK,GAAG,IAAAC,4BAAmB,EAAC,CAAC;EACnC,IAAID,KAAK,EAAE;IACT,OAAOE,MAAM,CAACC,MAAM,CAClB,IAAAC,YAAI,EAACJ,KAAK,EAAE,CACV,cAAc,EACd,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,cAAc,EACd,eAAe,CAChB,CACH,CAAC;EACH;AACF","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"auth-v2.js","names":["_runtime","require","_lodash","authV2Factory","v2Kit","getV2RuntimeFromDll","Object","freeze","pick"],"sources":["../../src/auth-v2.ts"],"sourcesContent":["// istanbul ignore file\nimport { getV2RuntimeFromDll } from \"@next-core/runtime\";\nimport { pick } from \"lodash\";\nimport type * as auth from \"./auth.js\";\n\nexport function authV2Factory() {\n const v2Kit = getV2RuntimeFromDll();\n if (v2Kit) {\n return Object.freeze(\n pick(v2Kit, [\n \"authenticate\",\n \"getAuth\",\n \"isLoggedIn\",\n \"logout\",\n \"addPathToBlackList\",\n \"isBlockedPath\",\n \"isBlockedUrl\",\n \"isBlockedHref\",\n ])\n ) as typeof auth;\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAFA;;AAKO,SAASE,aAAaA,CAAA,EAAG;EAC9B,MAAMC,KAAK,GAAG,IAAAC,4BAAmB,EAAC,CAAC;EACnC,IAAID,KAAK,EAAE;IACT,OAAOE,MAAM,CAACC,MAAM,CAClB,IAAAC,YAAI,EAACJ,KAAK,EAAE,CACV,cAAc,EACd,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,eAAe,CAChB,CACH,CAAC;EACH;AACF","ignoreList":[]}
|
package/dist/cjs/auth.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.addPathToBlackList = addPathToBlackList;
|
|
6
7
|
exports.authenticate = authenticate;
|
|
7
8
|
exports.getAuth = getAuth;
|
|
8
9
|
exports.isBlockedHref = isBlockedHref;
|
|
@@ -14,11 +15,13 @@ var _runtime = require("@next-core/runtime");
|
|
|
14
15
|
var _history = require("history");
|
|
15
16
|
var _checkPermissions = require("./checkPermissions.js");
|
|
16
17
|
const auth = {};
|
|
18
|
+
let pathBlackListSet = new Set();
|
|
17
19
|
|
|
18
20
|
/** @internal */
|
|
19
21
|
|
|
20
22
|
/** @internal */
|
|
21
23
|
function authenticate(newAuth) {
|
|
24
|
+
var _newAuth$license;
|
|
22
25
|
Object.assign(auth, {
|
|
23
26
|
org: newAuth.org,
|
|
24
27
|
username: newAuth.username,
|
|
@@ -31,6 +34,7 @@ function authenticate(newAuth) {
|
|
|
31
34
|
accessToken: newAuth.accessToken,
|
|
32
35
|
userShowValue: newAuth.userShowValue
|
|
33
36
|
});
|
|
37
|
+
pathBlackListSet = new Set((_newAuth$license = newAuth.license) === null || _newAuth$license === void 0 ? void 0 : _newAuth$license.blackList);
|
|
34
38
|
}
|
|
35
39
|
|
|
36
40
|
/**
|
|
@@ -61,14 +65,20 @@ function isLoggedIn() {
|
|
|
61
65
|
return auth.username !== undefined;
|
|
62
66
|
}
|
|
63
67
|
|
|
68
|
+
/**
|
|
69
|
+
* 增加路径黑名单
|
|
70
|
+
*/
|
|
71
|
+
function addPathToBlackList(path) {
|
|
72
|
+
pathBlackListSet.add(path);
|
|
73
|
+
}
|
|
74
|
+
|
|
64
75
|
/**
|
|
65
76
|
* 判断一个内部 URL 路径是否被屏蔽。
|
|
66
77
|
*/
|
|
67
78
|
function isBlockedPath(pathname) {
|
|
68
|
-
|
|
69
|
-
return !!((_auth$license = auth.license) !== null && _auth$license !== void 0 && (_auth$license = _auth$license.blackList) !== null && _auth$license !== void 0 && _auth$license.some(path => (0, _runtime.matchPath)(pathname, {
|
|
79
|
+
return [...pathBlackListSet].some(path => (0, _runtime.matchPath)(pathname, {
|
|
70
80
|
path
|
|
71
|
-
}))
|
|
81
|
+
}));
|
|
72
82
|
}
|
|
73
83
|
|
|
74
84
|
/**
|
package/dist/cjs/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","names":["_runtime","require","_history","_checkPermissions","auth","authenticate","newAuth","Object","assign","org","username","userInstanceId","loginFrom","accessRule","isAdmin","csrfToken","license","accessToken","userShowValue","getAuth","logout","key","keys","undefined","resetPermissionPreChecks","isLoggedIn","
|
|
1
|
+
{"version":3,"file":"auth.js","names":["_runtime","require","_history","_checkPermissions","auth","pathBlackListSet","Set","authenticate","newAuth","_newAuth$license","Object","assign","org","username","userInstanceId","loginFrom","accessRule","isAdmin","csrfToken","license","accessToken","userShowValue","blackList","getAuth","logout","key","keys","undefined","resetPermissionPreChecks","isLoggedIn","addPathToBlackList","path","add","isBlockedPath","pathname","some","matchPath","isBlockedUrl","url","createLocation","isBlockedHref","href","basePath","getBasePath","URL","location","origin","startsWith","substring","length"],"sources":["../../src/auth.ts"],"sourcesContent":["import { getBasePath, matchPath } from \"@next-core/runtime\";\nimport type { AuthApi_CheckLoginResponseBody } from \"@next-api-sdk/api-gateway-sdk\";\nimport { createLocation, type LocationDescriptor } from \"history\";\nimport { resetPermissionPreChecks } from \"./checkPermissions.js\";\n\nconst auth: AuthInfo = {};\nlet pathBlackListSet = new Set<string>();\n\n/** @internal */\nexport type AuthInfo = Omit<AuthApi_CheckLoginResponseBody, \"loggedIn\">;\n\n/** @internal */\nexport function authenticate(newAuth: AuthInfo): void {\n Object.assign(auth, {\n org: newAuth.org,\n username: newAuth.username,\n userInstanceId: newAuth.userInstanceId,\n loginFrom: newAuth.loginFrom,\n accessRule: newAuth.accessRule,\n isAdmin: newAuth.isAdmin,\n csrfToken: newAuth.csrfToken,\n license: newAuth.license,\n accessToken: newAuth.accessToken,\n userShowValue: newAuth.userShowValue,\n });\n\n pathBlackListSet = new Set(newAuth.license?.blackList);\n}\n\n/**\n * 获取当前登录认证信息。\n *\n * @returns 当前登录认证信息。\n */\nexport function getAuth(): AuthInfo {\n return {\n ...auth,\n };\n}\n\n/** @internal */\nexport function logout(): void {\n for (const key of Object.keys(auth) as (keyof AuthInfo)[]) {\n auth[key] = undefined;\n }\n resetPermissionPreChecks();\n}\n\n/**\n * 查看当前是否已登录。\n *\n * @returns 当前是否已登录。\n */\nexport function isLoggedIn(): boolean {\n return auth.username !== undefined;\n}\n\n/**\n * 增加路径黑名单\n */\nexport function addPathToBlackList(path: string): void {\n pathBlackListSet.add(path);\n}\n\n/**\n * 判断一个内部 URL 路径是否被屏蔽。\n */\nexport function isBlockedPath(pathname: string): boolean {\n return [...pathBlackListSet].some((path) => matchPath(pathname, { path }));\n}\n\n/**\n * 判断一个内部 URL 是否被屏蔽。\n */\nexport function isBlockedUrl(url: string | LocationDescriptor): boolean {\n const pathname = (typeof url === \"string\" ? createLocation(url) : url)\n .pathname;\n if (typeof pathname !== \"string\") {\n return false;\n }\n return isBlockedPath(pathname);\n}\n\n/**\n * 判断一个 href 是否被屏蔽。\n */\nexport function isBlockedHref(href: string): boolean {\n const basePath = getBasePath();\n const url = new URL(href, `${location.origin}${basePath}`);\n // 忽略外链地址\n if (url.origin !== location.origin || !url.pathname.startsWith(basePath)) {\n return false;\n }\n // 转换为内部路径\n return isBlockedPath(url.pathname.substring(basePath.length - 1));\n}\n"],"mappings":"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","ignoreList":[]}
|
package/dist/esm/auth-v2.js
CHANGED
|
@@ -4,7 +4,7 @@ import { pick } from "lodash";
|
|
|
4
4
|
export function authV2Factory() {
|
|
5
5
|
const v2Kit = getV2RuntimeFromDll();
|
|
6
6
|
if (v2Kit) {
|
|
7
|
-
return Object.freeze(pick(v2Kit, ["authenticate", "getAuth", "isLoggedIn", "logout", "isBlockedPath", "isBlockedUrl", "isBlockedHref"]));
|
|
7
|
+
return Object.freeze(pick(v2Kit, ["authenticate", "getAuth", "isLoggedIn", "logout", "addPathToBlackList", "isBlockedPath", "isBlockedUrl", "isBlockedHref"]));
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
//# sourceMappingURL=auth-v2.js.map
|
package/dist/esm/auth-v2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-v2.js","names":["getV2RuntimeFromDll","pick","authV2Factory","v2Kit","Object","freeze"],"sources":["../../src/auth-v2.ts"],"sourcesContent":["// istanbul ignore file\nimport { getV2RuntimeFromDll } from \"@next-core/runtime\";\nimport { pick } from \"lodash\";\nimport type * as auth from \"./auth.js\";\n\nexport function authV2Factory() {\n const v2Kit = getV2RuntimeFromDll();\n if (v2Kit) {\n return Object.freeze(\n pick(v2Kit, [\n \"authenticate\",\n \"getAuth\",\n \"isLoggedIn\",\n \"logout\",\n \"isBlockedPath\",\n \"isBlockedUrl\",\n \"isBlockedHref\",\n ])\n ) as typeof auth;\n }\n}\n"],"mappings":"AAAA;AACA,SAASA,mBAAmB,QAAQ,oBAAoB;AACxD,SAASC,IAAI,QAAQ,QAAQ;AAG7B,OAAO,SAASC,aAAaA,CAAA,EAAG;EAC9B,MAAMC,KAAK,GAAGH,mBAAmB,CAAC,CAAC;EACnC,IAAIG,KAAK,EAAE;IACT,OAAOC,MAAM,CAACC,MAAM,CAClBJ,IAAI,CAACE,KAAK,EAAE,CACV,cAAc,EACd,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,cAAc,EACd,eAAe,CAChB,CACH,CAAC;EACH;AACF","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"auth-v2.js","names":["getV2RuntimeFromDll","pick","authV2Factory","v2Kit","Object","freeze"],"sources":["../../src/auth-v2.ts"],"sourcesContent":["// istanbul ignore file\nimport { getV2RuntimeFromDll } from \"@next-core/runtime\";\nimport { pick } from \"lodash\";\nimport type * as auth from \"./auth.js\";\n\nexport function authV2Factory() {\n const v2Kit = getV2RuntimeFromDll();\n if (v2Kit) {\n return Object.freeze(\n pick(v2Kit, [\n \"authenticate\",\n \"getAuth\",\n \"isLoggedIn\",\n \"logout\",\n \"addPathToBlackList\",\n \"isBlockedPath\",\n \"isBlockedUrl\",\n \"isBlockedHref\",\n ])\n ) as typeof auth;\n }\n}\n"],"mappings":"AAAA;AACA,SAASA,mBAAmB,QAAQ,oBAAoB;AACxD,SAASC,IAAI,QAAQ,QAAQ;AAG7B,OAAO,SAASC,aAAaA,CAAA,EAAG;EAC9B,MAAMC,KAAK,GAAGH,mBAAmB,CAAC,CAAC;EACnC,IAAIG,KAAK,EAAE;IACT,OAAOC,MAAM,CAACC,MAAM,CAClBJ,IAAI,CAACE,KAAK,EAAE,CACV,cAAc,EACd,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,eAAe,CAChB,CACH,CAAC;EACH;AACF","ignoreList":[]}
|
package/dist/esm/auth.js
CHANGED
|
@@ -2,11 +2,13 @@ import { getBasePath, matchPath } from "@next-core/runtime";
|
|
|
2
2
|
import { createLocation } from "history";
|
|
3
3
|
import { resetPermissionPreChecks } from "./checkPermissions.js";
|
|
4
4
|
const auth = {};
|
|
5
|
+
let pathBlackListSet = new Set();
|
|
5
6
|
|
|
6
7
|
/** @internal */
|
|
7
8
|
|
|
8
9
|
/** @internal */
|
|
9
10
|
export function authenticate(newAuth) {
|
|
11
|
+
var _newAuth$license;
|
|
10
12
|
Object.assign(auth, {
|
|
11
13
|
org: newAuth.org,
|
|
12
14
|
username: newAuth.username,
|
|
@@ -19,6 +21,7 @@ export function authenticate(newAuth) {
|
|
|
19
21
|
accessToken: newAuth.accessToken,
|
|
20
22
|
userShowValue: newAuth.userShowValue
|
|
21
23
|
});
|
|
24
|
+
pathBlackListSet = new Set((_newAuth$license = newAuth.license) === null || _newAuth$license === void 0 ? void 0 : _newAuth$license.blackList);
|
|
22
25
|
}
|
|
23
26
|
|
|
24
27
|
/**
|
|
@@ -49,14 +52,20 @@ export function isLoggedIn() {
|
|
|
49
52
|
return auth.username !== undefined;
|
|
50
53
|
}
|
|
51
54
|
|
|
55
|
+
/**
|
|
56
|
+
* 增加路径黑名单
|
|
57
|
+
*/
|
|
58
|
+
export function addPathToBlackList(path) {
|
|
59
|
+
pathBlackListSet.add(path);
|
|
60
|
+
}
|
|
61
|
+
|
|
52
62
|
/**
|
|
53
63
|
* 判断一个内部 URL 路径是否被屏蔽。
|
|
54
64
|
*/
|
|
55
65
|
export function isBlockedPath(pathname) {
|
|
56
|
-
|
|
57
|
-
return !!((_auth$license = auth.license) !== null && _auth$license !== void 0 && (_auth$license = _auth$license.blackList) !== null && _auth$license !== void 0 && _auth$license.some(path => matchPath(pathname, {
|
|
66
|
+
return [...pathBlackListSet].some(path => matchPath(pathname, {
|
|
58
67
|
path
|
|
59
|
-
}))
|
|
68
|
+
}));
|
|
60
69
|
}
|
|
61
70
|
|
|
62
71
|
/**
|
package/dist/esm/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","names":["getBasePath","matchPath","createLocation","resetPermissionPreChecks","auth","authenticate","newAuth","Object","assign","org","username","userInstanceId","loginFrom","accessRule","isAdmin","csrfToken","license","accessToken","userShowValue","getAuth","logout","key","keys","undefined","isLoggedIn","
|
|
1
|
+
{"version":3,"file":"auth.js","names":["getBasePath","matchPath","createLocation","resetPermissionPreChecks","auth","pathBlackListSet","Set","authenticate","newAuth","_newAuth$license","Object","assign","org","username","userInstanceId","loginFrom","accessRule","isAdmin","csrfToken","license","accessToken","userShowValue","blackList","getAuth","logout","key","keys","undefined","isLoggedIn","addPathToBlackList","path","add","isBlockedPath","pathname","some","isBlockedUrl","url","isBlockedHref","href","basePath","URL","location","origin","startsWith","substring","length"],"sources":["../../src/auth.ts"],"sourcesContent":["import { getBasePath, matchPath } from \"@next-core/runtime\";\nimport type { AuthApi_CheckLoginResponseBody } from \"@next-api-sdk/api-gateway-sdk\";\nimport { createLocation, type LocationDescriptor } from \"history\";\nimport { resetPermissionPreChecks } from \"./checkPermissions.js\";\n\nconst auth: AuthInfo = {};\nlet pathBlackListSet = new Set<string>();\n\n/** @internal */\nexport type AuthInfo = Omit<AuthApi_CheckLoginResponseBody, \"loggedIn\">;\n\n/** @internal */\nexport function authenticate(newAuth: AuthInfo): void {\n Object.assign(auth, {\n org: newAuth.org,\n username: newAuth.username,\n userInstanceId: newAuth.userInstanceId,\n loginFrom: newAuth.loginFrom,\n accessRule: newAuth.accessRule,\n isAdmin: newAuth.isAdmin,\n csrfToken: newAuth.csrfToken,\n license: newAuth.license,\n accessToken: newAuth.accessToken,\n userShowValue: newAuth.userShowValue,\n });\n\n pathBlackListSet = new Set(newAuth.license?.blackList);\n}\n\n/**\n * 获取当前登录认证信息。\n *\n * @returns 当前登录认证信息。\n */\nexport function getAuth(): AuthInfo {\n return {\n ...auth,\n };\n}\n\n/** @internal */\nexport function logout(): void {\n for (const key of Object.keys(auth) as (keyof AuthInfo)[]) {\n auth[key] = undefined;\n }\n resetPermissionPreChecks();\n}\n\n/**\n * 查看当前是否已登录。\n *\n * @returns 当前是否已登录。\n */\nexport function isLoggedIn(): boolean {\n return auth.username !== undefined;\n}\n\n/**\n * 增加路径黑名单\n */\nexport function addPathToBlackList(path: string): void {\n pathBlackListSet.add(path);\n}\n\n/**\n * 判断一个内部 URL 路径是否被屏蔽。\n */\nexport function isBlockedPath(pathname: string): boolean {\n return [...pathBlackListSet].some((path) => matchPath(pathname, { path }));\n}\n\n/**\n * 判断一个内部 URL 是否被屏蔽。\n */\nexport function isBlockedUrl(url: string | LocationDescriptor): boolean {\n const pathname = (typeof url === \"string\" ? createLocation(url) : url)\n .pathname;\n if (typeof pathname !== \"string\") {\n return false;\n }\n return isBlockedPath(pathname);\n}\n\n/**\n * 判断一个 href 是否被屏蔽。\n */\nexport function isBlockedHref(href: string): boolean {\n const basePath = getBasePath();\n const url = new URL(href, `${location.origin}${basePath}`);\n // 忽略外链地址\n if (url.origin !== location.origin || !url.pathname.startsWith(basePath)) {\n return false;\n }\n // 转换为内部路径\n return isBlockedPath(url.pathname.substring(basePath.length - 1));\n}\n"],"mappings":"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","ignoreList":[]}
|
package/dist/types/auth.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-core/easyops-runtime",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"homepage": "https://github.com/easyops-cn/next-core/tree/v3/packages/easyops-runtime",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"repository": {
|
|
@@ -48,9 +48,9 @@
|
|
|
48
48
|
"@next-core/cook": "^2.5.8",
|
|
49
49
|
"@next-core/http": "^1.2.12",
|
|
50
50
|
"@next-core/pipes": "^2.0.32",
|
|
51
|
-
"@next-core/runtime": "^1.
|
|
52
|
-
"@next-core/types": "^1.
|
|
53
|
-
"@next-core/utils": "^1.7.
|
|
51
|
+
"@next-core/runtime": "^1.62.0",
|
|
52
|
+
"@next-core/types": "^1.15.0",
|
|
53
|
+
"@next-core/utils": "^1.7.35",
|
|
54
54
|
"js-yaml": "^3.14.1",
|
|
55
55
|
"lodash": "^4.17.21"
|
|
56
56
|
},
|
|
@@ -60,5 +60,5 @@
|
|
|
60
60
|
"jest-websocket-mock": "^2.5.0",
|
|
61
61
|
"whatwg-fetch": "^3.6.20"
|
|
62
62
|
},
|
|
63
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "476cb2d4ed1a01da364c06c182516ca6d7718116"
|
|
64
64
|
}
|