@das-fed/utils 7.0.5-beta.8.2 → 7.0.5-beta.9

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 (65) hide show
  1. package/api-services/index.js +396 -395
  2. package/api-services/index.js.gz +0 -0
  3. package/api-services/modules/app-manage/index.js +799 -780
  4. package/api-services/modules/app-manage/index.js.gz +0 -0
  5. package/api-services/modules/authentication/index.js +353 -352
  6. package/api-services/modules/authentication/index.js.gz +0 -0
  7. package/api-services/modules/bems/index.js +803 -784
  8. package/api-services/modules/bems/index.js.gz +0 -0
  9. package/api-services/modules/contract/index.js +799 -780
  10. package/api-services/modules/contract/index.js.gz +0 -0
  11. package/api-services/modules/duty-manage/index.js +353 -352
  12. package/api-services/modules/duty-manage/index.js.gz +0 -0
  13. package/api-services/modules/enterpriseright/index.js +799 -780
  14. package/api-services/modules/enterpriseright/index.js.gz +0 -0
  15. package/api-services/modules/file/index.js +406 -405
  16. package/api-services/modules/file/index.js.gz +0 -0
  17. package/api-services/modules/gateway-edge/index.js +799 -780
  18. package/api-services/modules/gateway-edge/index.js.gz +0 -0
  19. package/api-services/modules/index.js +953 -966
  20. package/api-services/modules/index.js.gz +0 -0
  21. package/api-services/modules/iot/index.js +1051 -1032
  22. package/api-services/modules/iot/index.js.gz +0 -0
  23. package/api-services/modules/justauth/index.js +802 -783
  24. package/api-services/modules/justauth/index.js.gz +0 -0
  25. package/api-services/modules/knowledge/index.js +353 -352
  26. package/api-services/modules/knowledge/index.js.gz +0 -0
  27. package/api-services/modules/link/index.js +759 -772
  28. package/api-services/modules/link/index.js.gz +0 -0
  29. package/api-services/modules/permission/index.js +353 -352
  30. package/api-services/modules/permission/index.js.gz +0 -0
  31. package/api-services/modules/platformManage/index.js +357 -356
  32. package/api-services/modules/platformManage/index.js.gz +0 -0
  33. package/api-services/modules/portal/index.js +353 -352
  34. package/api-services/modules/portal/index.js.gz +0 -0
  35. package/api-services/modules/space-manage/index.js +799 -780
  36. package/api-services/modules/space-manage/index.js.gz +0 -0
  37. package/api-services/modules/super-admin/index.js +356 -355
  38. package/api-services/modules/super-admin/index.js.gz +0 -0
  39. package/api-services/modules/supplier/index.js +802 -783
  40. package/api-services/modules/supplier/index.js.gz +0 -0
  41. package/api-services/modules/supplychain-manage/index.js +799 -780
  42. package/api-services/modules/supplychain-manage/index.js.gz +0 -0
  43. package/api-services/modules/systemConfiguration/index.js +799 -780
  44. package/api-services/modules/systemConfiguration/index.js.gz +0 -0
  45. package/api-services/modules/tool/index.js +353 -352
  46. package/api-services/modules/tool/index.js.gz +0 -0
  47. package/api-services/src/create-service/index.js +798 -779
  48. package/api-services/src/create-service/index.js.gz +0 -0
  49. package/create-api-service/index.js +798 -779
  50. package/create-api-service/index.js.gz +0 -0
  51. package/create-api-service/sso/index.d.ts +10 -16
  52. package/create-api-service/sso/index.js +574 -554
  53. package/create-api-service/sso/index.js.gz +0 -0
  54. package/create-api-service/sso/utils.d.ts +6 -0
  55. package/create-api-service/thirdLogout/index.js +446 -409
  56. package/create-api-service/thirdLogout/index.js.gz +0 -0
  57. package/create-api-service/thirdLogout/sso/utils.d.ts +8 -0
  58. package/create-api-service/thirdLogout/{index.d.ts → thirdLogout/index.d.ts} +8 -2
  59. package/create-api-service/unauthorized-recovery/index.d.ts +6 -0
  60. package/create-api-service/unauthorized-recovery/index.js +14 -8
  61. package/esm-map.json +5 -1
  62. package/package.json +4 -4
  63. package/token-tools/index.d.ts +35 -0
  64. package/token-tools/index.js +59 -25
  65. package/token-tools/index.js.gz +0 -0
@@ -0,0 +1,8 @@
1
+ export declare const getQuery: (name: string) => any;
2
+ /**
3
+ * 获取当前登录类型。
4
+ * 优先读取 URL 参数并同步到 localStorage,避免首屏 401 早于路由监听时读不到 loginType。
5
+ * @returns 当前登录类型
6
+ */
7
+ export declare const getLoginType: () => any;
8
+ export declare const removeQueryParams: (paramsToRemove: any[]) => void;
@@ -1,8 +1,14 @@
1
+ /**
2
+ * 写入第三方退出来源,仅保存经过校验的有效值。
3
+ * @param value 待写入的第三方退出来源
4
+ * @returns 是否成功写入
5
+ */
6
+ export declare const setThirdLogoutSource: (value: unknown) => boolean;
1
7
  /**
2
8
  * 判断当前是否使用需要定制退出流程的第三方登录。
3
9
  * @returns 是否需要执行第三方退出
4
10
  */
5
- export declare const isThirdLogin: () => boolean;
11
+ export declare const isThirdLogin: () => any;
6
12
  /**
7
13
  * 执行中深项目的第三方退出登录。
8
14
  * @param redirctToUrl 平台退出完成后的回调地址
@@ -16,4 +22,4 @@ export declare const jmcLogout: () => any;
16
22
  * 根据第三方登录来源调用对应的退出方法。
17
23
  * @param redirctToUrl 平台退出地址
18
24
  */
19
- export declare const thirdLogout: (redirctToUrl: string) => any;
25
+ export declare const thirdLogout: (redirctToUrl?: string) => any;
@@ -14,6 +14,12 @@ export interface UnauthorizedRecoveryContext {
14
14
  }
15
15
  /** 项目可注册的 401 恢复处理器。 */
16
16
  export type UnauthorizedRecoveryHandler = (context: UnauthorizedRecoveryContext) => Promise<UnauthorizedRecoveryResult | null>;
17
+ /**
18
+ * 判断当前是否已经注册项目级 401 恢复处理器。
19
+ * 框架默认刷新返回 401 后据此判断是否交由项目恢复,避免直接触发退出登录。
20
+ * @returns 是否存在项目级恢复处理器
21
+ */
22
+ export declare const hasUnauthorizedRecovery: () => boolean;
17
23
  /**
18
24
  * 注册项目自定义的 401 恢复处理器。
19
25
  * 后注册的处理器会覆盖之前的处理器,避免不同项目逻辑同时接管认证流程。
@@ -1,10 +1,16 @@
1
- let e = null, l = null;
2
- const n = (r) => (e = r, () => {
3
- e === r && (e = null);
4
- }), o = async (r) => e ? (l || (l = Promise.resolve(e(r)).finally(() => {
5
- l = null;
6
- })), l) : null;
1
+ const n = Symbol.for("@das-fed/utils/unauthorized-recovery-state"), o = () => {
2
+ const r = globalThis;
3
+ return r[n] || (r[n] = {
4
+ handler: null,
5
+ promise: null
6
+ }), r[n];
7
+ }, e = o(), l = () => e.handler !== null, t = (r) => (e.handler = r, () => {
8
+ e.handler === r && (e.handler = null);
9
+ }), s = async (r) => e.handler ? (e.promise || (e.promise = Promise.resolve(e.handler(r)).finally(() => {
10
+ e.promise = null;
11
+ })), e.promise) : null;
7
12
  export {
8
- o as recoverUnauthorized,
9
- n as registerUnauthorizedRecovery
13
+ l as hasUnauthorizedRecovery,
14
+ s as recoverUnauthorized,
15
+ t as registerUnauthorizedRecovery
10
16
  };
package/esm-map.json CHANGED
@@ -124,6 +124,7 @@
124
124
  "getTokenParams": "/create-api-service/sso/index",
125
125
  "getTokenFromCode": "/create-api-service/sso/index",
126
126
  "real_uri": "/create-api-service/sso/index",
127
+ "getLoginType": "/create-api-service/sso/index",
127
128
  "getQuery": "/create-api-service/sso/index",
128
129
  "tokenStorage": "/create-api-service/sso/index",
129
130
  "login": "/create-api-service/sso/index",
@@ -151,5 +152,8 @@
151
152
  "zhongshenLogout": "/create-api-service/thirdLogout/index",
152
153
  "jmcLogout": "/create-api-service/thirdLogout/index",
153
154
  "registerUnauthorizedRecovery": "/create-api-service/unauthorized-recovery/index",
154
- "recoverUnauthorized": "/create-api-service/unauthorized-recovery/index"
155
+ "recoverUnauthorized": "/create-api-service/unauthorized-recovery/index",
156
+ "hasUnauthorizedRecovery": "/create-api-service/unauthorized-recovery/index",
157
+ "clearPlatformAuthStorage": "/token-tools/index",
158
+ "setThirdLogoutSource": "/create-api-service/thirdLogout/index"
155
159
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@das-fed/utils",
3
- "version": "7.0.5-beta.8.2",
3
+ "version": "7.0.5-beta.9",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -9,7 +9,7 @@
9
9
  "license": "ISC",
10
10
  "dependencies": {
11
11
  "@antv/x6": "^2.18.1",
12
- "@das-fed/utils": "7.0.5-beta.8.2",
12
+ "@das-fed/utils": "7.0.5-beta.9",
13
13
  "@vue/shared": "^3.4.21",
14
14
  "@vueuse/core": "^9.6.0",
15
15
  "axios": "^1.6.7",
@@ -21,8 +21,8 @@
21
21
  "vue": "^3.4.21"
22
22
  },
23
23
  "devDependencies": {
24
- "@das-fed/cli": "7.0.5-beta.8.2",
25
- "@das-fed/web": "7.0.5-beta.8.2",
24
+ "@das-fed/cli": "7.0.5-beta.9",
25
+ "@das-fed/web": "7.0.5-beta.9",
26
26
  "@types/js-cookie": "^3.0.6",
27
27
  "@types/lodash-es": "^4.17.12",
28
28
  "@types/qs": "^6.9.15",
@@ -19,4 +19,39 @@ export declare const getAccessTokenInfo: (key: TokenInfoKey) => any;
19
19
  */
20
20
  export declare const setAccessToken: (token: string, info?: any) => void;
21
21
  export declare const removeAccessToken: () => void;
22
+ /**
23
+ * 获取、保存和清理平台 token 相关数据。
24
+ * 统一放在 token-tools 中,便于 SSO 与业务模块复用同一套 token 存储规则。
25
+ * @returns token 存储操作集合
26
+ */
27
+ export declare const tokenStorage: () => {
28
+ /**
29
+ * 获取当前平台 token 数据。
30
+ * @returns token、过期时间和 refresh token
31
+ */
32
+ getData: () => {
33
+ accessToken: string;
34
+ accessTokenExpiredAt: any;
35
+ refreshToken: any;
36
+ };
37
+ /**
38
+ * 保存平台 token 数据。
39
+ * @param data token 信息
40
+ */
41
+ save: (data: {
42
+ accessToken: string | null;
43
+ accessTokenExpiredAt: number;
44
+ refreshToken: string | null;
45
+ info: any;
46
+ }) => void;
47
+ /**
48
+ * 清理平台 token 数据。
49
+ */
50
+ remove: () => void;
51
+ };
52
+ /**
53
+ * 清理平台退出相关的本地认证数据。
54
+ * 统一封装退出清理动作,避免各退出入口遗漏 idelTime、sessionStorage 或流程引擎 token。
55
+ */
56
+ export declare const clearPlatformAuthStorage: () => void;
22
57
  export {};
@@ -1,13 +1,14 @@
1
+ import { removeProcessEngineToken as I, setProcessEngineToken as h } from "@das-fed/utils/process-engine-info";
1
2
  /*! js-cookie v3.0.5 | MIT */
2
3
  function l(e) {
3
- for (var t = 1; t < arguments.length; t++) {
4
- var n = arguments[t];
5
- for (var g in n)
6
- e[g] = n[g];
4
+ for (var n = 1; n < arguments.length; n++) {
5
+ var t = arguments[n];
6
+ for (var g in t)
7
+ e[g] = t[g];
7
8
  }
8
9
  return e;
9
10
  }
10
- var k = {
11
+ var S = {
11
12
  read: function(e) {
12
13
  return e[0] === '"' && (e = e.slice(1, -1)), e.replace(/(%[\dA-F]{2})+/gi, decodeURIComponent);
13
14
  },
@@ -18,10 +19,10 @@ var k = {
18
19
  );
19
20
  }
20
21
  };
21
- function d(e, t) {
22
- function n(r, i, o) {
22
+ function m(e, n) {
23
+ function t(r, i, o) {
23
24
  if (!(typeof document > "u")) {
24
- o = l({}, t, o), typeof o.expires == "number" && (o.expires = new Date(Date.now() + o.expires * 864e5)), o.expires && (o.expires = o.expires.toUTCString()), r = encodeURIComponent(r).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent).replace(/[()]/g, escape);
25
+ o = l({}, n, o), typeof o.expires == "number" && (o.expires = new Date(Date.now() + o.expires * 864e5)), o.expires && (o.expires = o.expires.toUTCString()), r = encodeURIComponent(r).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent).replace(/[()]/g, escape);
25
26
  var c = "";
26
27
  for (var s in o)
27
28
  o[s] && (c += "; " + s, o[s] !== !0 && (c += "=" + o[s].split(";")[0]));
@@ -31,10 +32,10 @@ function d(e, t) {
31
32
  function g(r) {
32
33
  if (!(typeof document > "u" || arguments.length && !r)) {
33
34
  for (var i = document.cookie ? document.cookie.split("; ") : [], o = {}, c = 0; c < i.length; c++) {
34
- var s = i[c].split("="), I = s.slice(1).join("=");
35
+ var s = i[c].split("="), u = s.slice(1).join("=");
35
36
  try {
36
37
  var f = decodeURIComponent(s[0]);
37
- if (o[f] = e.read(I, f), r === f)
38
+ if (o[f] = e.read(u, f), r === f)
38
39
  break;
39
40
  } catch {
40
41
  }
@@ -44,10 +45,10 @@ function d(e, t) {
44
45
  }
45
46
  return Object.create(
46
47
  {
47
- set: n,
48
+ set: t,
48
49
  get: g,
49
50
  remove: function(r, i) {
50
- n(
51
+ t(
51
52
  r,
52
53
  "",
53
54
  l({}, i, {
@@ -56,28 +57,61 @@ function d(e, t) {
56
57
  );
57
58
  },
58
59
  withAttributes: function(r) {
59
- return d(this.converter, l({}, this.attributes, r));
60
+ return m(this.converter, l({}, this.attributes, r));
60
61
  },
61
62
  withConverter: function(r) {
62
- return d(l({}, this.converter, r), this.attributes);
63
+ return m(l({}, this.converter, r), this.attributes);
63
64
  }
64
65
  },
65
66
  {
66
- attributes: { value: Object.freeze(t) },
67
+ attributes: { value: Object.freeze(n) },
67
68
  converter: { value: Object.freeze(e) }
68
69
  }
69
70
  );
70
71
  }
71
- var p = d(k, { path: "/" });
72
- const a = "accessToken", m = "accessTokenExpiredAt", v = "refreshToken", u = "redirectUri", S = "csrf-token", h = () => localStorage.getItem(a) ?? p.get(a) ?? sessionStorage.getItem(a) ?? "", C = (e) => localStorage.getItem(e) ?? p.get(e) ?? sessionStorage.getItem(e) ?? "", x = (e, t = {}) => {
73
- var n;
74
- (n = window.webConfig) != null && n.disableSaveToken || (localStorage.setItem(a, e), localStorage.setItem(m, t.accessTokenExpiredAt ?? 0), localStorage.setItem(v, t.refreshToken ?? 0), t.redirectUri && localStorage.setItem(u, t.redirectUri));
75
- }, U = () => {
76
- localStorage.removeItem(a), localStorage.removeItem(m), localStorage.removeItem(v), localStorage.removeItem(u), localStorage.removeItem(S);
72
+ var d = m(S, { path: "/" });
73
+ const a = "accessToken", k = "accessTokenExpiredAt", T = "refreshToken", v = "redirectUri", x = "csrf-token", A = () => localStorage.getItem(a) ?? d.get(a) ?? sessionStorage.getItem(a) ?? "", p = (e) => localStorage.getItem(e) ?? d.get(e) ?? sessionStorage.getItem(e) ?? "", C = (e, n = {}) => {
74
+ var t;
75
+ (t = window.webConfig) != null && t.disableSaveToken || (localStorage.setItem(a, e), localStorage.setItem(k, n.accessTokenExpiredAt ?? 0), localStorage.setItem(T, n.refreshToken ?? 0), n.redirectUri && localStorage.setItem(v, n.redirectUri));
76
+ }, E = () => {
77
+ localStorage.removeItem(a), localStorage.removeItem(k), localStorage.removeItem(T), localStorage.removeItem(v), localStorage.removeItem(x);
78
+ }, U = () => ({
79
+ /**
80
+ * 获取当前平台 token 数据。
81
+ * @returns token、过期时间和 refresh token
82
+ */
83
+ getData: () => {
84
+ const e = p("accessTokenExpiredAt");
85
+ return {
86
+ accessToken: A(),
87
+ accessTokenExpiredAt: e ? Number(e) : 0,
88
+ refreshToken: p("refreshToken")
89
+ };
90
+ },
91
+ /**
92
+ * 保存平台 token 数据。
93
+ * @param data token 信息
94
+ */
95
+ save: (e) => {
96
+ C(e.accessToken ?? "", {
97
+ accessTokenExpiredAt: e.accessTokenExpiredAt,
98
+ refreshToken: e.refreshToken
99
+ }), h(e);
100
+ },
101
+ /**
102
+ * 清理平台 token 数据。
103
+ */
104
+ remove: () => {
105
+ E(), I();
106
+ }
107
+ }), R = () => {
108
+ localStorage.removeItem("idelTime"), sessionStorage.clear(), U().remove();
77
109
  };
78
110
  export {
79
- h as getAccessToken,
80
- C as getAccessTokenInfo,
81
- U as removeAccessToken,
82
- x as setAccessToken
111
+ R as clearPlatformAuthStorage,
112
+ A as getAccessToken,
113
+ p as getAccessTokenInfo,
114
+ E as removeAccessToken,
115
+ C as setAccessToken,
116
+ U as tokenStorage
83
117
  };
Binary file