@vlian/framework 1.2.19 → 1.2.37

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 (252) hide show
  1. package/dist/analytics.umd.js +208 -2395
  2. package/dist/analytics.umd.js.map +1 -1
  3. package/dist/core/error/ErrorHandler.cjs.map +1 -1
  4. package/dist/core/error/ErrorHandler.d.ts +1 -1
  5. package/dist/core/error/ErrorHandler.js.map +1 -1
  6. package/dist/core/index.cjs +0 -1
  7. package/dist/core/index.cjs.map +1 -1
  8. package/dist/core/index.d.ts +1 -2
  9. package/dist/core/index.js +0 -1
  10. package/dist/core/index.js.map +1 -1
  11. package/dist/core/initialization/index.cjs.map +1 -1
  12. package/dist/core/initialization/index.d.ts +1 -1
  13. package/dist/core/initialization/index.js.map +1 -1
  14. package/dist/core/initialization/initialization.cjs +2 -147
  15. package/dist/core/initialization/initialization.cjs.map +1 -1
  16. package/dist/core/initialization/initialization.d.ts +0 -57
  17. package/dist/core/initialization/initialization.js +2 -148
  18. package/dist/core/initialization/initialization.js.map +1 -1
  19. package/dist/core/kernel/startKernel.cjs +1 -2
  20. package/dist/core/kernel/startKernel.cjs.map +1 -1
  21. package/dist/core/kernel/startKernel.js +1 -2
  22. package/dist/core/kernel/startKernel.js.map +1 -1
  23. package/dist/core/plugin.cjs +16 -16
  24. package/dist/core/plugin.cjs.map +1 -1
  25. package/dist/core/plugin.d.ts +5 -1
  26. package/dist/core/plugin.js +17 -17
  27. package/dist/core/plugin.js.map +1 -1
  28. package/dist/core/router/monitoring/RouterMonitoring.cjs +1 -1
  29. package/dist/core/router/monitoring/RouterMonitoring.cjs.map +1 -1
  30. package/dist/core/router/monitoring/RouterMonitoring.js +1 -1
  31. package/dist/core/router/monitoring/RouterMonitoring.js.map +1 -1
  32. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs +13 -8
  33. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs.map +1 -1
  34. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js +13 -8
  35. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js.map +1 -1
  36. package/dist/core/router/utils/adapters/react-router/transform.cjs +4 -0
  37. package/dist/core/router/utils/adapters/react-router/transform.cjs.map +1 -1
  38. package/dist/core/router/utils/adapters/react-router/transform.js +4 -0
  39. package/dist/core/router/utils/adapters/react-router/transform.js.map +1 -1
  40. package/dist/core/startup/initializeServices.cjs +1 -1
  41. package/dist/core/startup/initializeServices.cjs.map +1 -1
  42. package/dist/core/startup/initializeServices.d.ts +1 -1
  43. package/dist/core/startup/initializeServices.js +1 -1
  44. package/dist/core/startup/initializeServices.js.map +1 -1
  45. package/dist/core/startup/performanceTracker.cjs.map +1 -1
  46. package/dist/core/startup/performanceTracker.d.ts +1 -1
  47. package/dist/core/startup/performanceTracker.js.map +1 -1
  48. package/dist/core/startup/renderApp.cjs +1 -1
  49. package/dist/core/startup/renderApp.cjs.map +1 -1
  50. package/dist/core/startup/renderApp.d.ts +1 -1
  51. package/dist/core/startup/renderApp.js +1 -1
  52. package/dist/core/startup/renderApp.js.map +1 -1
  53. package/dist/core/startup/startApp.cjs +2 -4
  54. package/dist/core/startup/startApp.cjs.map +1 -1
  55. package/dist/core/startup/startApp.js +3 -5
  56. package/dist/core/startup/startApp.js.map +1 -1
  57. package/dist/core/types.d.ts +2 -6
  58. package/dist/core/types.js.map +1 -1
  59. package/dist/index.cjs +15 -2
  60. package/dist/index.cjs.map +1 -1
  61. package/dist/index.d.ts +6 -4
  62. package/dist/index.js +5 -4
  63. package/dist/index.js.map +1 -1
  64. package/dist/index.umd.js +11758 -32895
  65. package/dist/index.umd.js.map +1 -1
  66. package/dist/kernel/constants.cjs +67 -0
  67. package/dist/kernel/constants.cjs.map +1 -0
  68. package/dist/kernel/constants.d.ts +5 -0
  69. package/dist/kernel/constants.js +43 -0
  70. package/dist/kernel/constants.js.map +1 -0
  71. package/dist/kernel/index.cjs +40 -0
  72. package/dist/kernel/index.cjs.map +1 -0
  73. package/dist/kernel/index.d.ts +3 -0
  74. package/dist/kernel/index.js +4 -0
  75. package/dist/kernel/index.js.map +1 -0
  76. package/dist/kernel/kernel.cjs +296 -0
  77. package/dist/kernel/kernel.cjs.map +1 -0
  78. package/dist/kernel/kernel.d.ts +40 -0
  79. package/dist/kernel/kernel.js +272 -0
  80. package/dist/kernel/kernel.js.map +1 -0
  81. package/dist/kernel/manager/cacheManager.cjs +46 -0
  82. package/dist/kernel/manager/cacheManager.cjs.map +1 -0
  83. package/dist/kernel/manager/cacheManager.d.ts +6 -0
  84. package/dist/kernel/manager/cacheManager.js +36 -0
  85. package/dist/kernel/manager/cacheManager.js.map +1 -0
  86. package/dist/kernel/manager/i18nManager.cjs +68 -0
  87. package/dist/kernel/manager/i18nManager.cjs.map +1 -0
  88. package/dist/kernel/manager/i18nManager.d.ts +8 -0
  89. package/dist/kernel/manager/i18nManager.js +58 -0
  90. package/dist/kernel/manager/i18nManager.js.map +1 -0
  91. package/dist/kernel/manager/index.cjs +30 -0
  92. package/dist/kernel/manager/index.cjs.map +1 -0
  93. package/dist/kernel/manager/index.d.ts +4 -0
  94. package/dist/kernel/manager/index.js +6 -0
  95. package/dist/kernel/manager/index.js.map +1 -0
  96. package/dist/kernel/manager/loggerManager.cjs +70 -0
  97. package/dist/kernel/manager/loggerManager.cjs.map +1 -0
  98. package/dist/kernel/manager/loggerManager.d.ts +14 -0
  99. package/dist/kernel/manager/loggerManager.js +60 -0
  100. package/dist/kernel/manager/loggerManager.js.map +1 -0
  101. package/dist/kernel/manager/persistence.cjs +93 -0
  102. package/dist/kernel/manager/persistence.cjs.map +1 -0
  103. package/dist/kernel/manager/persistence.d.ts +3 -0
  104. package/dist/kernel/manager/persistence.js +75 -0
  105. package/dist/kernel/manager/persistence.js.map +1 -0
  106. package/dist/kernel/manager/themeManager.cjs +85 -0
  107. package/dist/kernel/manager/themeManager.cjs.map +1 -0
  108. package/dist/kernel/manager/themeManager.d.ts +9 -0
  109. package/dist/kernel/manager/themeManager.js +75 -0
  110. package/dist/kernel/manager/themeManager.js.map +1 -0
  111. package/dist/kernel/types.cjs.map +1 -0
  112. package/dist/kernel/types.d.ts +72 -0
  113. package/dist/kernel/types.js.map +1 -0
  114. package/dist/library/storage/index.cjs +1 -1
  115. package/dist/library/storage/index.cjs.map +1 -1
  116. package/dist/library/storage/index.d.ts +1 -0
  117. package/dist/library/storage/index.js +1 -1
  118. package/dist/library/storage/index.js.map +1 -1
  119. package/dist/request/adapter.d.ts +1 -0
  120. package/dist/request/core.d.ts +1 -0
  121. package/dist/request/index.d.ts +1 -42
  122. package/dist/request/plugin/csrfPlugin.d.ts +2 -2
  123. package/dist/request/plugin/queue.d.ts +2 -2
  124. package/dist/request/plugin.d.ts +1 -0
  125. package/dist/request/runtime.d.ts +1 -0
  126. package/dist/request/types.d.ts +1 -394
  127. package/dist/request/utils.d.ts +1 -0
  128. package/dist/state.umd.js +1 -1
  129. package/dist/utils/csrf.cjs +13 -152
  130. package/dist/utils/csrf.cjs.map +1 -1
  131. package/dist/utils/csrf.d.ts +1 -72
  132. package/dist/utils/csrf.js +1 -142
  133. package/dist/utils/csrf.js.map +1 -1
  134. package/dist/utils/errors/ErrorCodes.cjs +6 -76
  135. package/dist/utils/errors/ErrorCodes.cjs.map +1 -1
  136. package/dist/utils/errors/ErrorCodes.d.ts +1 -45
  137. package/dist/utils/errors/ErrorCodes.js +1 -84
  138. package/dist/utils/errors/ErrorCodes.js.map +1 -1
  139. package/dist/utils/errors.cjs +15 -344
  140. package/dist/utils/errors.cjs.map +1 -1
  141. package/dist/utils/errors.d.ts +1 -183
  142. package/dist/utils/errors.js +1 -352
  143. package/dist/utils/errors.js.map +1 -1
  144. package/dist/utils/logger.cjs +5 -374
  145. package/dist/utils/logger.cjs.map +1 -1
  146. package/dist/utils/logger.d.ts +2 -189
  147. package/dist/utils/logger.js +1 -379
  148. package/dist/utils/logger.js.map +1 -1
  149. package/dist/utils/logger.types.cjs +3 -12
  150. package/dist/utils/logger.types.cjs.map +1 -1
  151. package/dist/utils/logger.types.d.ts +2 -57
  152. package/dist/utils/logger.types.js +1 -10
  153. package/dist/utils/logger.types.js.map +1 -1
  154. package/dist/utils/monitoring.cjs +11 -302
  155. package/dist/utils/monitoring.cjs.map +1 -1
  156. package/dist/utils/monitoring.d.ts +1 -163
  157. package/dist/utils/monitoring.js +1 -294
  158. package/dist/utils/monitoring.js.map +1 -1
  159. package/dist/utils/performance.cjs +5 -352
  160. package/dist/utils/performance.cjs.map +1 -1
  161. package/dist/utils/performance.d.ts +2 -246
  162. package/dist/utils/performance.js +1 -354
  163. package/dist/utils/performance.js.map +1 -1
  164. package/dist/utils/resourceLoader.cjs +5 -303
  165. package/dist/utils/resourceLoader.cjs.map +1 -1
  166. package/dist/utils/resourceLoader.d.ts +2 -130
  167. package/dist/utils/resourceLoader.js +1 -305
  168. package/dist/utils/resourceLoader.js.map +1 -1
  169. package/dist/utils/runtimeSecurity.cjs +2 -140
  170. package/dist/utils/runtimeSecurity.cjs.map +1 -1
  171. package/dist/utils/runtimeSecurity.d.ts +2 -104
  172. package/dist/utils/runtimeSecurity.js +1 -141
  173. package/dist/utils/runtimeSecurity.js.map +1 -1
  174. package/dist/utils/security.cjs +3 -314
  175. package/dist/utils/security.cjs.map +1 -1
  176. package/dist/utils/security.d.ts +2 -80
  177. package/dist/utils/security.js +1 -311
  178. package/dist/utils/security.js.map +1 -1
  179. package/dist/utils/traceId.cjs +10 -111
  180. package/dist/utils/traceId.cjs.map +1 -1
  181. package/dist/utils/traceId.d.ts +1 -63
  182. package/dist/utils/traceId.js +1 -116
  183. package/dist/utils/traceId.js.map +1 -1
  184. package/dist/utils/validation.cjs +3 -173
  185. package/dist/utils/validation.cjs.map +1 -1
  186. package/dist/utils/validation.d.ts +2 -110
  187. package/dist/utils/validation.js +1 -175
  188. package/dist/utils/validation.js.map +1 -1
  189. package/package.json +98 -13
  190. package/dist/core/ui-adapter/adapters.cjs +0 -45
  191. package/dist/core/ui-adapter/adapters.cjs.map +0 -1
  192. package/dist/core/ui-adapter/adapters.d.ts +0 -4
  193. package/dist/core/ui-adapter/adapters.js +0 -27
  194. package/dist/core/ui-adapter/adapters.js.map +0 -1
  195. package/dist/core/ui-adapter/index.cjs +0 -21
  196. package/dist/core/ui-adapter/index.cjs.map +0 -1
  197. package/dist/core/ui-adapter/index.d.ts +0 -2
  198. package/dist/core/ui-adapter/index.js +0 -3
  199. package/dist/core/ui-adapter/index.js.map +0 -1
  200. package/dist/core/ui-adapter/types.cjs.map +0 -1
  201. package/dist/core/ui-adapter/types.d.ts +0 -24
  202. package/dist/core/ui-adapter/types.js.map +0 -1
  203. package/dist/request/adapter/RequestAdapter.cjs +0 -78
  204. package/dist/request/adapter/RequestAdapter.cjs.map +0 -1
  205. package/dist/request/adapter/axiosAdapter.cjs +0 -164
  206. package/dist/request/adapter/axiosAdapter.cjs.map +0 -1
  207. package/dist/request/adapter/fetchAdapter.cjs +0 -134
  208. package/dist/request/adapter/fetchAdapter.cjs.map +0 -1
  209. package/dist/request/adapter/index.cjs +0 -80
  210. package/dist/request/adapter/index.cjs.map +0 -1
  211. package/dist/request/adapter/kyAdapter.cjs +0 -191
  212. package/dist/request/adapter/kyAdapter.cjs.map +0 -1
  213. package/dist/request/adapter/undiciAdapter.cjs +0 -213
  214. package/dist/request/adapter/undiciAdapter.cjs.map +0 -1
  215. package/dist/request/core/RequestClient.cjs +0 -558
  216. package/dist/request/core/RequestClient.cjs.map +0 -1
  217. package/dist/request/core/index.cjs +0 -15
  218. package/dist/request/core/index.cjs.map +0 -1
  219. package/dist/request/index.cjs +0 -149
  220. package/dist/request/index.cjs.map +0 -1
  221. package/dist/request/plugin/RequestPlugin.cjs +0 -218
  222. package/dist/request/plugin/RequestPlugin.cjs.map +0 -1
  223. package/dist/request/plugin/cache.cjs +0 -269
  224. package/dist/request/plugin/cache.cjs.map +0 -1
  225. package/dist/request/plugin/csrfPlugin.cjs +0 -40
  226. package/dist/request/plugin/csrfPlugin.cjs.map +0 -1
  227. package/dist/request/plugin/index.cjs +0 -53
  228. package/dist/request/plugin/index.cjs.map +0 -1
  229. package/dist/request/plugin/monitoring.cjs +0 -216
  230. package/dist/request/plugin/monitoring.cjs.map +0 -1
  231. package/dist/request/plugin/queue.cjs +0 -140
  232. package/dist/request/plugin/queue.cjs.map +0 -1
  233. package/dist/request/plugin/retry.cjs +0 -98
  234. package/dist/request/plugin/retry.cjs.map +0 -1
  235. package/dist/request/plugin/validation.cjs +0 -121
  236. package/dist/request/plugin/validation.cjs.map +0 -1
  237. package/dist/request/runtime/RequestContext.cjs +0 -77
  238. package/dist/request/runtime/RequestContext.cjs.map +0 -1
  239. package/dist/request/runtime/index.cjs +0 -32
  240. package/dist/request/runtime/index.cjs.map +0 -1
  241. package/dist/request/types.cjs +0 -112
  242. package/dist/request/types.cjs.map +0 -1
  243. package/dist/request/utils/RequestQueueManager.cjs +0 -168
  244. package/dist/request/utils/RequestQueueManager.cjs.map +0 -1
  245. package/dist/request/utils/dependencyCheck.cjs +0 -237
  246. package/dist/request/utils/dependencyCheck.cjs.map +0 -1
  247. package/dist/request/utils/index.cjs +0 -30
  248. package/dist/request/utils/index.cjs.map +0 -1
  249. package/dist/request.umd.js +0 -5392
  250. package/dist/request.umd.js.map +0 -1
  251. /package/dist/{core/ui-adapter → kernel}/types.cjs +0 -0
  252. /package/dist/{core/ui-adapter → kernel}/types.js +0 -0
@@ -1,159 +1,20 @@
1
- /**
2
- * CSRF 防护工具
3
- * 提供 CSRF Token 的生成、存储和验证功能
4
- */ /**
5
- * CSRF Token 存储接口
6
- */ "use strict";
1
+ "use strict";
7
2
  Object.defineProperty(exports, "__esModule", {
8
3
  value: true
9
4
  });
10
- function _export(target, all) {
11
- for(var name in all)Object.defineProperty(target, name, {
12
- enumerable: true,
13
- get: Object.getOwnPropertyDescriptor(all, name).get
14
- });
15
- }
16
- _export(exports, {
17
- get CSRFTokenManager () {
18
- return CSRFTokenManager;
19
- },
20
- get getCSRFManager () {
21
- return getCSRFManager;
22
- },
23
- get initCSRFManager () {
24
- return initCSRFManager;
25
- }
26
- });
27
- function _define_property(obj, key, value) {
28
- if (key in obj) {
29
- Object.defineProperty(obj, key, {
30
- value: value,
31
- enumerable: true,
32
- configurable: true,
33
- writable: true
34
- });
35
- } else {
36
- obj[key] = value;
37
- }
38
- return obj;
39
- }
40
- /**
41
- * 默认 Token 存储(使用 Cookie)
42
- */ let CookieTokenStorage = class CookieTokenStorage {
43
- getToken() {
44
- if (typeof document === 'undefined') {
45
- return null;
46
- }
47
- const cookies = document.cookie.split(';');
48
- for (const cookie of cookies){
49
- const [name, value] = cookie.trim().split('=');
50
- if (name === this.cookieName) {
51
- return decodeURIComponent(value);
52
- }
53
- }
54
- return null;
55
- }
56
- setToken(token) {
57
- if (typeof document === 'undefined') {
58
- return;
5
+ _export_star(require("@vlian/csrf"), exports);
6
+ function _export_star(from, to) {
7
+ Object.keys(from).forEach(function(k) {
8
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
9
+ Object.defineProperty(to, k, {
10
+ enumerable: true,
11
+ get: function() {
12
+ return from[k];
13
+ }
14
+ });
59
15
  }
60
- // 设置 Cookie(HttpOnly 由服务端设置,这里只设置客户端可访问的)
61
- document.cookie = `${this.cookieName}=${encodeURIComponent(token)}; path=/; SameSite=Strict`;
62
- }
63
- clearToken() {
64
- if (typeof document === 'undefined') {
65
- return;
66
- }
67
- document.cookie = `${this.cookieName}=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT`;
68
- }
69
- constructor(cookieName = 'csrf-token'){
70
- _define_property(this, "cookieName", void 0);
71
- this.cookieName = cookieName;
72
- }
73
- };
74
- /**
75
- * 内存 Token 存储(用于 SSR 或测试)
76
- */ let MemoryTokenStorage = class MemoryTokenStorage {
77
- getToken() {
78
- return this.token;
79
- }
80
- setToken(token) {
81
- this.token = token;
82
- }
83
- clearToken() {
84
- this.token = null;
85
- }
86
- constructor(){
87
- _define_property(this, "token", null);
88
- }
89
- };
90
- let CSRFTokenManager = class CSRFTokenManager {
91
- /**
92
- * 获取 CSRF Token
93
- */ async getToken() {
94
- if (this.getTokenFn) {
95
- try {
96
- return await Promise.resolve(this.getTokenFn());
97
- } catch (error) {
98
- console.warn('CSRF Token 获取失败:', error);
99
- return null;
100
- }
101
- }
102
- // 从存储中获取
103
- return this.storage.getToken();
104
- }
105
- /**
106
- * 设置 CSRF Token
107
- */ setToken(token) {
108
- this.storage.setToken(token);
109
- }
110
- /**
111
- * 验证 CSRF Token
112
- */ async validateToken(token) {
113
- if (this.validateTokenFn) {
114
- try {
115
- return await Promise.resolve(this.validateTokenFn(token));
116
- } catch (error) {
117
- console.warn('CSRF Token 验证失败:', error);
118
- return false;
119
- }
120
- }
121
- // 默认验证:检查存储中的 Token 是否匹配
122
- const storedToken = this.storage.getToken();
123
- return storedToken !== null && storedToken === token;
124
- }
125
- /**
126
- * 清除 CSRF Token
127
- */ clearToken() {
128
- this.storage.clearToken();
129
- }
130
- /**
131
- * 获取请求头名称
132
- */ getHeaderName() {
133
- return this.headerName;
134
- }
135
- constructor(config){
136
- _define_property(this, "storage", void 0);
137
- _define_property(this, "headerName", void 0);
138
- _define_property(this, "cookieName", void 0);
139
- _define_property(this, "getTokenFn", void 0);
140
- _define_property(this, "validateTokenFn", void 0);
141
- this.headerName = config?.headerName ?? 'X-CSRF-Token';
142
- this.cookieName = config?.cookieName ?? 'csrf-token';
143
- this.storage = config?.storage ?? (typeof document !== 'undefined' ? new CookieTokenStorage(this.cookieName) : new MemoryTokenStorage());
144
- this.getTokenFn = config?.getToken;
145
- this.validateTokenFn = config?.validateToken;
146
- }
147
- };
148
- /**
149
- * 全局 CSRF Token 管理器实例
150
- */ let globalCSRFManager = null;
151
- function initCSRFManager(config) {
152
- globalCSRFManager = new CSRFTokenManager(config);
153
- return globalCSRFManager;
154
- }
155
- function getCSRFManager() {
156
- return globalCSRFManager;
16
+ });
17
+ return from;
157
18
  }
158
19
 
159
20
  //# sourceMappingURL=csrf.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/csrf.ts"],"sourcesContent":["/**\n * CSRF 防护工具\n * 提供 CSRF Token 的生成、存储和验证功能\n */\n\n/**\n * CSRF Token 存储接口\n */\nexport interface CSRFTokenStorage {\n /**\n * 获取 Token\n */\n getToken(): string | null;\n /**\n * 设置 Token\n */\n setToken(token: string): void;\n /**\n * 清除 Token\n */\n clearToken(): void;\n}\n\n/**\n * 默认 Token 存储(使用 Cookie)\n */\nclass CookieTokenStorage implements CSRFTokenStorage {\n private cookieName: string;\n\n constructor(cookieName: string = 'csrf-token') {\n this.cookieName = cookieName;\n }\n\n getToken(): string | null {\n if (typeof document === 'undefined') {\n return null;\n }\n\n const cookies = document.cookie.split(';');\n for (const cookie of cookies) {\n const [name, value] = cookie.trim().split('=');\n if (name === this.cookieName) {\n return decodeURIComponent(value);\n }\n }\n return null;\n }\n\n setToken(token: string): void {\n if (typeof document === 'undefined') {\n return;\n }\n\n // 设置 Cookie(HttpOnly 由服务端设置,这里只设置客户端可访问的)\n document.cookie = `${this.cookieName}=${encodeURIComponent(token)}; path=/; SameSite=Strict`;\n }\n\n clearToken(): void {\n if (typeof document === 'undefined') {\n return;\n }\n\n document.cookie = `${this.cookieName}=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT`;\n }\n}\n\n/**\n * 内存 Token 存储(用于 SSR 或测试)\n */\nclass MemoryTokenStorage implements CSRFTokenStorage {\n private token: string | null = null;\n\n getToken(): string | null {\n return this.token;\n }\n\n setToken(token: string): void {\n this.token = token;\n }\n\n clearToken(): void {\n this.token = null;\n }\n}\n\n/**\n * CSRF Token 管理器\n */\nexport class CSRFTokenManager {\n private storage: CSRFTokenStorage;\n private headerName: string;\n private cookieName: string;\n private getTokenFn?: () => string | Promise<string>;\n private validateTokenFn?: (token: string) => boolean | Promise<boolean>;\n\n constructor(config?: {\n storage?: CSRFTokenStorage;\n headerName?: string;\n cookieName?: string;\n getToken?: () => string | Promise<string>;\n validateToken?: (token: string) => boolean | Promise<boolean>;\n }) {\n this.headerName = config?.headerName ?? 'X-CSRF-Token';\n this.cookieName = config?.cookieName ?? 'csrf-token';\n this.storage = config?.storage ?? (typeof document !== 'undefined' \n ? new CookieTokenStorage(this.cookieName)\n : new MemoryTokenStorage());\n this.getTokenFn = config?.getToken;\n this.validateTokenFn = config?.validateToken;\n }\n\n /**\n * 获取 CSRF Token\n */\n async getToken(): Promise<string | null> {\n if (this.getTokenFn) {\n try {\n return await Promise.resolve(this.getTokenFn());\n } catch (error) {\n console.warn('CSRF Token 获取失败:', error);\n return null;\n }\n }\n\n // 从存储中获取\n return this.storage.getToken();\n }\n\n /**\n * 设置 CSRF Token\n */\n setToken(token: string): void {\n this.storage.setToken(token);\n }\n\n /**\n * 验证 CSRF Token\n */\n async validateToken(token: string): Promise<boolean> {\n if (this.validateTokenFn) {\n try {\n return await Promise.resolve(this.validateTokenFn(token));\n } catch (error) {\n console.warn('CSRF Token 验证失败:', error);\n return false;\n }\n }\n\n // 默认验证:检查存储中的 Token 是否匹配\n const storedToken = this.storage.getToken();\n return storedToken !== null && storedToken === token;\n }\n\n /**\n * 清除 CSRF Token\n */\n clearToken(): void {\n this.storage.clearToken();\n }\n\n /**\n * 获取请求头名称\n */\n getHeaderName(): string {\n return this.headerName;\n }\n}\n\n/**\n * 全局 CSRF Token 管理器实例\n */\nlet globalCSRFManager: CSRFTokenManager | null = null;\n\n/**\n * 初始化 CSRF Token 管理器\n */\nexport function initCSRFManager(config?: {\n storage?: CSRFTokenStorage;\n headerName?: string;\n cookieName?: string;\n getToken?: () => string | Promise<string>;\n validateToken?: (token: string) => boolean | Promise<boolean>;\n}): CSRFTokenManager {\n globalCSRFManager = new CSRFTokenManager(config);\n return globalCSRFManager;\n}\n\n/**\n * 获取全局 CSRF Token 管理器\n */\nexport function getCSRFManager(): CSRFTokenManager | null {\n return globalCSRFManager;\n}\n"],"names":["CSRFTokenManager","getCSRFManager","initCSRFManager","CookieTokenStorage","getToken","document","cookies","cookie","split","name","value","trim","cookieName","decodeURIComponent","setToken","token","encodeURIComponent","clearToken","MemoryTokenStorage","getTokenFn","Promise","resolve","error","console","warn","storage","validateToken","validateTokenFn","storedToken","getHeaderName","headerName","config","globalCSRFManager"],"mappings":"AAAA;;;CAGC,GAED;;CAEC;;;;;;;;;;;QAiFYA;eAAAA;;QAsGGC;eAAAA;;QAdAC;eAAAA;;;;;;;;;;;;;;;;AAzJhB;;CAEC,GACD,IAAA,AAAMC,qBAAN,MAAMA;IAOJC,WAA0B;QACxB,IAAI,OAAOC,aAAa,aAAa;YACnC,OAAO;QACT;QAEA,MAAMC,UAAUD,SAASE,MAAM,CAACC,KAAK,CAAC;QACtC,KAAK,MAAMD,UAAUD,QAAS;YAC5B,MAAM,CAACG,MAAMC,MAAM,GAAGH,OAAOI,IAAI,GAAGH,KAAK,CAAC;YAC1C,IAAIC,SAAS,IAAI,CAACG,UAAU,EAAE;gBAC5B,OAAOC,mBAAmBH;YAC5B;QACF;QACA,OAAO;IACT;IAEAI,SAASC,KAAa,EAAQ;QAC5B,IAAI,OAAOV,aAAa,aAAa;YACnC;QACF;QAEA,0CAA0C;QAC1CA,SAASE,MAAM,GAAG,GAAG,IAAI,CAACK,UAAU,CAAC,CAAC,EAAEI,mBAAmBD,OAAO,yBAAyB,CAAC;IAC9F;IAEAE,aAAmB;QACjB,IAAI,OAAOZ,aAAa,aAAa;YACnC;QACF;QAEAA,SAASE,MAAM,GAAG,GAAG,IAAI,CAACK,UAAU,CAAC,gDAAgD,CAAC;IACxF;IAlCA,YAAYA,aAAqB,YAAY,CAAE;QAF/C,uBAAQA,cAAR,KAAA;QAGE,IAAI,CAACA,UAAU,GAAGA;IACpB;AAiCF;AAEA;;CAEC,GACD,IAAA,AAAMM,qBAAN,MAAMA;IAGJd,WAA0B;QACxB,OAAO,IAAI,CAACW,KAAK;IACnB;IAEAD,SAASC,KAAa,EAAQ;QAC5B,IAAI,CAACA,KAAK,GAAGA;IACf;IAEAE,aAAmB;QACjB,IAAI,CAACF,KAAK,GAAG;IACf;;QAZA,uBAAQA,SAAuB;;AAajC;AAKO,IAAA,AAAMf,mBAAN,MAAMA;IAuBX;;GAEC,GACD,MAAMI,WAAmC;QACvC,IAAI,IAAI,CAACe,UAAU,EAAE;YACnB,IAAI;gBACF,OAAO,MAAMC,QAAQC,OAAO,CAAC,IAAI,CAACF,UAAU;YAC9C,EAAE,OAAOG,OAAO;gBACdC,QAAQC,IAAI,CAAC,oBAAoBF;gBACjC,OAAO;YACT;QACF;QAEA,SAAS;QACT,OAAO,IAAI,CAACG,OAAO,CAACrB,QAAQ;IAC9B;IAEA;;GAEC,GACDU,SAASC,KAAa,EAAQ;QAC5B,IAAI,CAACU,OAAO,CAACX,QAAQ,CAACC;IACxB;IAEA;;GAEC,GACD,MAAMW,cAAcX,KAAa,EAAoB;QACnD,IAAI,IAAI,CAACY,eAAe,EAAE;YACxB,IAAI;gBACF,OAAO,MAAMP,QAAQC,OAAO,CAAC,IAAI,CAACM,eAAe,CAACZ;YACpD,EAAE,OAAOO,OAAO;gBACdC,QAAQC,IAAI,CAAC,oBAAoBF;gBACjC,OAAO;YACT;QACF;QAEA,yBAAyB;QACzB,MAAMM,cAAc,IAAI,CAACH,OAAO,CAACrB,QAAQ;QACzC,OAAOwB,gBAAgB,QAAQA,gBAAgBb;IACjD;IAEA;;GAEC,GACDE,aAAmB;QACjB,IAAI,CAACQ,OAAO,CAACR,UAAU;IACzB;IAEA;;GAEC,GACDY,gBAAwB;QACtB,OAAO,IAAI,CAACC,UAAU;IACxB;IAtEA,YAAYC,MAMX,CAAE;QAZH,uBAAQN,WAAR,KAAA;QACA,uBAAQK,cAAR,KAAA;QACA,uBAAQlB,cAAR,KAAA;QACA,uBAAQO,cAAR,KAAA;QACA,uBAAQQ,mBAAR,KAAA;QASE,IAAI,CAACG,UAAU,GAAGC,QAAQD,cAAc;QACxC,IAAI,CAAClB,UAAU,GAAGmB,QAAQnB,cAAc;QACxC,IAAI,CAACa,OAAO,GAAGM,QAAQN,WAAY,CAAA,OAAOpB,aAAa,cACnD,IAAIF,mBAAmB,IAAI,CAACS,UAAU,IACtC,IAAIM,oBAAmB;QAC3B,IAAI,CAACC,UAAU,GAAGY,QAAQ3B;QAC1B,IAAI,CAACuB,eAAe,GAAGI,QAAQL;IACjC;AAyDF;AAEA;;CAEC,GACD,IAAIM,oBAA6C;AAK1C,SAAS9B,gBAAgB6B,MAM/B;IACCC,oBAAoB,IAAIhC,iBAAiB+B;IACzC,OAAOC;AACT;AAKO,SAAS/B;IACd,OAAO+B;AACT"}
1
+ {"version":3,"sources":["../../src/utils/csrf.ts"],"sourcesContent":["export * from '@vlian/csrf';\n"],"names":[],"mappings":";;;;qBAAc"}
@@ -1,72 +1 @@
1
- /**
2
- * CSRF 防护工具
3
- * 提供 CSRF Token 的生成、存储和验证功能
4
- */
5
- /**
6
- * CSRF Token 存储接口
7
- */
8
- export interface CSRFTokenStorage {
9
- /**
10
- * 获取 Token
11
- */
12
- getToken(): string | null;
13
- /**
14
- * 设置 Token
15
- */
16
- setToken(token: string): void;
17
- /**
18
- * 清除 Token
19
- */
20
- clearToken(): void;
21
- }
22
- /**
23
- * CSRF Token 管理器
24
- */
25
- export declare class CSRFTokenManager {
26
- private storage;
27
- private headerName;
28
- private cookieName;
29
- private getTokenFn?;
30
- private validateTokenFn?;
31
- constructor(config?: {
32
- storage?: CSRFTokenStorage;
33
- headerName?: string;
34
- cookieName?: string;
35
- getToken?: () => string | Promise<string>;
36
- validateToken?: (token: string) => boolean | Promise<boolean>;
37
- });
38
- /**
39
- * 获取 CSRF Token
40
- */
41
- getToken(): Promise<string | null>;
42
- /**
43
- * 设置 CSRF Token
44
- */
45
- setToken(token: string): void;
46
- /**
47
- * 验证 CSRF Token
48
- */
49
- validateToken(token: string): Promise<boolean>;
50
- /**
51
- * 清除 CSRF Token
52
- */
53
- clearToken(): void;
54
- /**
55
- * 获取请求头名称
56
- */
57
- getHeaderName(): string;
58
- }
59
- /**
60
- * 初始化 CSRF Token 管理器
61
- */
62
- export declare function initCSRFManager(config?: {
63
- storage?: CSRFTokenStorage;
64
- headerName?: string;
65
- cookieName?: string;
66
- getToken?: () => string | Promise<string>;
67
- validateToken?: (token: string) => boolean | Promise<boolean>;
68
- }): CSRFTokenManager;
69
- /**
70
- * 获取全局 CSRF Token 管理器
71
- */
72
- export declare function getCSRFManager(): CSRFTokenManager | null;
1
+ export * from '@vlian/csrf';
@@ -1,144 +1,3 @@
1
- /**
2
- * CSRF 防护工具
3
- * 提供 CSRF Token 的生成、存储和验证功能
4
- */ /**
5
- * CSRF Token 存储接口
6
- */ function _define_property(obj, key, value) {
7
- if (key in obj) {
8
- Object.defineProperty(obj, key, {
9
- value: value,
10
- enumerable: true,
11
- configurable: true,
12
- writable: true
13
- });
14
- } else {
15
- obj[key] = value;
16
- }
17
- return obj;
18
- }
19
- /**
20
- * 默认 Token 存储(使用 Cookie)
21
- */ let CookieTokenStorage = class CookieTokenStorage {
22
- getToken() {
23
- if (typeof document === 'undefined') {
24
- return null;
25
- }
26
- const cookies = document.cookie.split(';');
27
- for (const cookie of cookies){
28
- const [name, value] = cookie.trim().split('=');
29
- if (name === this.cookieName) {
30
- return decodeURIComponent(value);
31
- }
32
- }
33
- return null;
34
- }
35
- setToken(token) {
36
- if (typeof document === 'undefined') {
37
- return;
38
- }
39
- // 设置 Cookie(HttpOnly 由服务端设置,这里只设置客户端可访问的)
40
- document.cookie = `${this.cookieName}=${encodeURIComponent(token)}; path=/; SameSite=Strict`;
41
- }
42
- clearToken() {
43
- if (typeof document === 'undefined') {
44
- return;
45
- }
46
- document.cookie = `${this.cookieName}=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT`;
47
- }
48
- constructor(cookieName = 'csrf-token'){
49
- _define_property(this, "cookieName", void 0);
50
- this.cookieName = cookieName;
51
- }
52
- };
53
- /**
54
- * 内存 Token 存储(用于 SSR 或测试)
55
- */ let MemoryTokenStorage = class MemoryTokenStorage {
56
- getToken() {
57
- return this.token;
58
- }
59
- setToken(token) {
60
- this.token = token;
61
- }
62
- clearToken() {
63
- this.token = null;
64
- }
65
- constructor(){
66
- _define_property(this, "token", null);
67
- }
68
- };
69
- /**
70
- * CSRF Token 管理器
71
- */ export class CSRFTokenManager {
72
- /**
73
- * 获取 CSRF Token
74
- */ async getToken() {
75
- if (this.getTokenFn) {
76
- try {
77
- return await Promise.resolve(this.getTokenFn());
78
- } catch (error) {
79
- console.warn('CSRF Token 获取失败:', error);
80
- return null;
81
- }
82
- }
83
- // 从存储中获取
84
- return this.storage.getToken();
85
- }
86
- /**
87
- * 设置 CSRF Token
88
- */ setToken(token) {
89
- this.storage.setToken(token);
90
- }
91
- /**
92
- * 验证 CSRF Token
93
- */ async validateToken(token) {
94
- if (this.validateTokenFn) {
95
- try {
96
- return await Promise.resolve(this.validateTokenFn(token));
97
- } catch (error) {
98
- console.warn('CSRF Token 验证失败:', error);
99
- return false;
100
- }
101
- }
102
- // 默认验证:检查存储中的 Token 是否匹配
103
- const storedToken = this.storage.getToken();
104
- return storedToken !== null && storedToken === token;
105
- }
106
- /**
107
- * 清除 CSRF Token
108
- */ clearToken() {
109
- this.storage.clearToken();
110
- }
111
- /**
112
- * 获取请求头名称
113
- */ getHeaderName() {
114
- return this.headerName;
115
- }
116
- constructor(config){
117
- _define_property(this, "storage", void 0);
118
- _define_property(this, "headerName", void 0);
119
- _define_property(this, "cookieName", void 0);
120
- _define_property(this, "getTokenFn", void 0);
121
- _define_property(this, "validateTokenFn", void 0);
122
- this.headerName = config?.headerName ?? 'X-CSRF-Token';
123
- this.cookieName = config?.cookieName ?? 'csrf-token';
124
- this.storage = config?.storage ?? (typeof document !== 'undefined' ? new CookieTokenStorage(this.cookieName) : new MemoryTokenStorage());
125
- this.getTokenFn = config?.getToken;
126
- this.validateTokenFn = config?.validateToken;
127
- }
128
- }
129
- /**
130
- * 全局 CSRF Token 管理器实例
131
- */ let globalCSRFManager = null;
132
- /**
133
- * 初始化 CSRF Token 管理器
134
- */ export function initCSRFManager(config) {
135
- globalCSRFManager = new CSRFTokenManager(config);
136
- return globalCSRFManager;
137
- }
138
- /**
139
- * 获取全局 CSRF Token 管理器
140
- */ export function getCSRFManager() {
141
- return globalCSRFManager;
142
- }
1
+ export * from "@vlian/csrf";
143
2
 
144
3
  //# sourceMappingURL=csrf.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/csrf.ts"],"sourcesContent":["/**\n * CSRF 防护工具\n * 提供 CSRF Token 的生成、存储和验证功能\n */\n\n/**\n * CSRF Token 存储接口\n */\nexport interface CSRFTokenStorage {\n /**\n * 获取 Token\n */\n getToken(): string | null;\n /**\n * 设置 Token\n */\n setToken(token: string): void;\n /**\n * 清除 Token\n */\n clearToken(): void;\n}\n\n/**\n * 默认 Token 存储(使用 Cookie)\n */\nclass CookieTokenStorage implements CSRFTokenStorage {\n private cookieName: string;\n\n constructor(cookieName: string = 'csrf-token') {\n this.cookieName = cookieName;\n }\n\n getToken(): string | null {\n if (typeof document === 'undefined') {\n return null;\n }\n\n const cookies = document.cookie.split(';');\n for (const cookie of cookies) {\n const [name, value] = cookie.trim().split('=');\n if (name === this.cookieName) {\n return decodeURIComponent(value);\n }\n }\n return null;\n }\n\n setToken(token: string): void {\n if (typeof document === 'undefined') {\n return;\n }\n\n // 设置 Cookie(HttpOnly 由服务端设置,这里只设置客户端可访问的)\n document.cookie = `${this.cookieName}=${encodeURIComponent(token)}; path=/; SameSite=Strict`;\n }\n\n clearToken(): void {\n if (typeof document === 'undefined') {\n return;\n }\n\n document.cookie = `${this.cookieName}=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT`;\n }\n}\n\n/**\n * 内存 Token 存储(用于 SSR 或测试)\n */\nclass MemoryTokenStorage implements CSRFTokenStorage {\n private token: string | null = null;\n\n getToken(): string | null {\n return this.token;\n }\n\n setToken(token: string): void {\n this.token = token;\n }\n\n clearToken(): void {\n this.token = null;\n }\n}\n\n/**\n * CSRF Token 管理器\n */\nexport class CSRFTokenManager {\n private storage: CSRFTokenStorage;\n private headerName: string;\n private cookieName: string;\n private getTokenFn?: () => string | Promise<string>;\n private validateTokenFn?: (token: string) => boolean | Promise<boolean>;\n\n constructor(config?: {\n storage?: CSRFTokenStorage;\n headerName?: string;\n cookieName?: string;\n getToken?: () => string | Promise<string>;\n validateToken?: (token: string) => boolean | Promise<boolean>;\n }) {\n this.headerName = config?.headerName ?? 'X-CSRF-Token';\n this.cookieName = config?.cookieName ?? 'csrf-token';\n this.storage = config?.storage ?? (typeof document !== 'undefined' \n ? new CookieTokenStorage(this.cookieName)\n : new MemoryTokenStorage());\n this.getTokenFn = config?.getToken;\n this.validateTokenFn = config?.validateToken;\n }\n\n /**\n * 获取 CSRF Token\n */\n async getToken(): Promise<string | null> {\n if (this.getTokenFn) {\n try {\n return await Promise.resolve(this.getTokenFn());\n } catch (error) {\n console.warn('CSRF Token 获取失败:', error);\n return null;\n }\n }\n\n // 从存储中获取\n return this.storage.getToken();\n }\n\n /**\n * 设置 CSRF Token\n */\n setToken(token: string): void {\n this.storage.setToken(token);\n }\n\n /**\n * 验证 CSRF Token\n */\n async validateToken(token: string): Promise<boolean> {\n if (this.validateTokenFn) {\n try {\n return await Promise.resolve(this.validateTokenFn(token));\n } catch (error) {\n console.warn('CSRF Token 验证失败:', error);\n return false;\n }\n }\n\n // 默认验证:检查存储中的 Token 是否匹配\n const storedToken = this.storage.getToken();\n return storedToken !== null && storedToken === token;\n }\n\n /**\n * 清除 CSRF Token\n */\n clearToken(): void {\n this.storage.clearToken();\n }\n\n /**\n * 获取请求头名称\n */\n getHeaderName(): string {\n return this.headerName;\n }\n}\n\n/**\n * 全局 CSRF Token 管理器实例\n */\nlet globalCSRFManager: CSRFTokenManager | null = null;\n\n/**\n * 初始化 CSRF Token 管理器\n */\nexport function initCSRFManager(config?: {\n storage?: CSRFTokenStorage;\n headerName?: string;\n cookieName?: string;\n getToken?: () => string | Promise<string>;\n validateToken?: (token: string) => boolean | Promise<boolean>;\n}): CSRFTokenManager {\n globalCSRFManager = new CSRFTokenManager(config);\n return globalCSRFManager;\n}\n\n/**\n * 获取全局 CSRF Token 管理器\n */\nexport function getCSRFManager(): CSRFTokenManager | null {\n return globalCSRFManager;\n}\n"],"names":["CookieTokenStorage","getToken","document","cookies","cookie","split","name","value","trim","cookieName","decodeURIComponent","setToken","token","encodeURIComponent","clearToken","MemoryTokenStorage","CSRFTokenManager","getTokenFn","Promise","resolve","error","console","warn","storage","validateToken","validateTokenFn","storedToken","getHeaderName","headerName","config","globalCSRFManager","initCSRFManager","getCSRFManager"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utils/csrf.ts"],"sourcesContent":["export * from '@vlian/csrf';\n"],"names":[],"mappings":"AAAA,cAAc,cAAc"}
@@ -1,9 +1,4 @@
1
- /**
2
- * 错误码定义
3
- * 提供统一的错误码和错误信息映射
4
- */ /**
5
- * 错误码枚举
6
- */ "use strict";
1
+ "use strict";
7
2
  Object.defineProperty(exports, "__esModule", {
8
3
  value: true
9
4
  });
@@ -15,83 +10,18 @@ function _export(target, all) {
15
10
  }
16
11
  _export(exports, {
17
12
  get ErrorCode () {
18
- return ErrorCode;
13
+ return _utils.ErrorCode;
19
14
  },
20
15
  get ErrorMessages () {
21
- return ErrorMessages;
16
+ return _utils.ErrorMessages;
22
17
  },
23
18
  get getErrorMessage () {
24
- return getErrorMessage;
19
+ return _utils.getErrorMessage;
25
20
  },
26
21
  get getUserFriendlyMessage () {
27
- return getUserFriendlyMessage;
22
+ return _utils.getUserFriendlyMessage;
28
23
  }
29
24
  });
30
- var ErrorCode = /*#__PURE__*/ function(ErrorCode) {
31
- // 框架启动错误 (1000-1999)
32
- ErrorCode[ErrorCode["CONTAINER_NOT_FOUND"] = 1001] = "CONTAINER_NOT_FOUND";
33
- ErrorCode[ErrorCode["STARTUP_FAILED"] = 1002] = "STARTUP_FAILED";
34
- ErrorCode[ErrorCode["INITIALIZATION_FAILED"] = 1003] = "INITIALIZATION_FAILED";
35
- // 配置错误 (2000-2999)
36
- ErrorCode[ErrorCode["CONFIG_LOAD_FAILED"] = 2001] = "CONFIG_LOAD_FAILED";
37
- ErrorCode[ErrorCode["CONFIG_VALIDATION_FAILED"] = 2002] = "CONFIG_VALIDATION_FAILED";
38
- ErrorCode[ErrorCode["CONFIG_FILE_NOT_FOUND"] = 2003] = "CONFIG_FILE_NOT_FOUND";
39
- // 插件错误 (3000-3999)
40
- ErrorCode[ErrorCode["PLUGIN_REGISTER_FAILED"] = 3001] = "PLUGIN_REGISTER_FAILED";
41
- ErrorCode[ErrorCode["PLUGIN_EXECUTION_FAILED"] = 3002] = "PLUGIN_EXECUTION_FAILED";
42
- ErrorCode[ErrorCode["PLUGIN_PERMISSION_DENIED"] = 3003] = "PLUGIN_PERMISSION_DENIED";
43
- // 状态管理错误 (4000-4999)
44
- ErrorCode[ErrorCode["STATE_MANAGER_NOT_INITIALIZED"] = 4001] = "STATE_MANAGER_NOT_INITIALIZED";
45
- ErrorCode[ErrorCode["STATE_INSTANCE_NOT_FOUND"] = 4002] = "STATE_INSTANCE_NOT_FOUND";
46
- ErrorCode[ErrorCode["STATE_SCOPE_NOT_FOUND"] = 4003] = "STATE_SCOPE_NOT_FOUND";
47
- // 存储错误 (5000-5999)
48
- ErrorCode[ErrorCode["STORAGE_INITIALIZATION_FAILED"] = 5001] = "STORAGE_INITIALIZATION_FAILED";
49
- ErrorCode[ErrorCode["STORAGE_OPERATION_FAILED"] = 5002] = "STORAGE_OPERATION_FAILED";
50
- // 网络错误 (6000-6999)
51
- ErrorCode[ErrorCode["NETWORK_ERROR"] = 6001] = "NETWORK_ERROR";
52
- ErrorCode[ErrorCode["NETWORK_TIMEOUT"] = 6002] = "NETWORK_TIMEOUT";
53
- // 未知错误 (9999)
54
- ErrorCode[ErrorCode["UNKNOWN_ERROR"] = 9999] = "UNKNOWN_ERROR";
55
- return ErrorCode;
56
- }({});
57
- const ErrorMessages = {
58
- [1001]: '未找到挂载容器,请确保页面中存在 id="root" 的元素或通过 container 选项指定容器',
59
- [1002]: '框架启动失败',
60
- [1003]: '初始化失败',
61
- [2001]: '配置加载失败',
62
- [2002]: '配置验证失败',
63
- [2003]: '配置文件未找到',
64
- [3001]: '插件注册失败',
65
- [3002]: '插件执行失败',
66
- [3003]: '插件权限不足',
67
- [4001]: '状态管理器未初始化',
68
- [4002]: '状态实例未找到',
69
- [4003]: '状态作用域未找到',
70
- [5001]: '存储初始化失败',
71
- [5002]: '存储操作失败',
72
- [6001]: '网络错误',
73
- [6002]: '网络请求超时',
74
- [9999]: '未知错误'
75
- };
76
- function getErrorMessage(code) {
77
- return ErrorMessages[code] || ErrorMessages[9999];
78
- }
79
- function getUserFriendlyMessage(code, details) {
80
- const baseMessage = getErrorMessage(code);
81
- if (details) {
82
- return `${baseMessage}: ${details}`;
83
- }
84
- // 根据错误码提供修复建议
85
- const suggestions = {
86
- [1001]: '请检查HTML中是否存在id="root"的元素,或通过container选项指定容器',
87
- [2002]: '请检查配置文件格式是否正确,参考文档进行配置',
88
- [3003]: '请检查插件权限配置,确保插件有足够的权限'
89
- };
90
- const suggestion = suggestions[code];
91
- if (suggestion) {
92
- return `${baseMessage}\n建议: ${suggestion}`;
93
- }
94
- return baseMessage;
95
- }
25
+ const _utils = require("@vlian/utils");
96
26
 
97
27
  //# sourceMappingURL=ErrorCodes.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/errors/ErrorCodes.ts"],"sourcesContent":["/**\n * 错误码定义\n * 提供统一的错误码和错误信息映射\n */\n\n/**\n * 错误码枚举\n */\nexport enum ErrorCode {\n // 框架启动错误 (1000-1999)\n CONTAINER_NOT_FOUND = 1001,\n STARTUP_FAILED = 1002,\n INITIALIZATION_FAILED = 1003,\n\n // 配置错误 (2000-2999)\n CONFIG_LOAD_FAILED = 2001,\n CONFIG_VALIDATION_FAILED = 2002,\n CONFIG_FILE_NOT_FOUND = 2003,\n\n // 插件错误 (3000-3999)\n PLUGIN_REGISTER_FAILED = 3001,\n PLUGIN_EXECUTION_FAILED = 3002,\n PLUGIN_PERMISSION_DENIED = 3003,\n\n // 状态管理错误 (4000-4999)\n STATE_MANAGER_NOT_INITIALIZED = 4001,\n STATE_INSTANCE_NOT_FOUND = 4002,\n STATE_SCOPE_NOT_FOUND = 4003,\n\n // 存储错误 (5000-5999)\n STORAGE_INITIALIZATION_FAILED = 5001,\n STORAGE_OPERATION_FAILED = 5002,\n\n // 网络错误 (6000-6999)\n NETWORK_ERROR = 6001,\n NETWORK_TIMEOUT = 6002,\n\n // 未知错误 (9999)\n UNKNOWN_ERROR = 9999,\n}\n\n/**\n * 错误信息映射\n */\nexport const ErrorMessages: Record<ErrorCode, string> = {\n [ErrorCode.CONTAINER_NOT_FOUND]: '未找到挂载容器,请确保页面中存在 id=\"root\" 的元素或通过 container 选项指定容器',\n [ErrorCode.STARTUP_FAILED]: '框架启动失败',\n [ErrorCode.INITIALIZATION_FAILED]: '初始化失败',\n\n [ErrorCode.CONFIG_LOAD_FAILED]: '配置加载失败',\n [ErrorCode.CONFIG_VALIDATION_FAILED]: '配置验证失败',\n [ErrorCode.CONFIG_FILE_NOT_FOUND]: '配置文件未找到',\n\n [ErrorCode.PLUGIN_REGISTER_FAILED]: '插件注册失败',\n [ErrorCode.PLUGIN_EXECUTION_FAILED]: '插件执行失败',\n [ErrorCode.PLUGIN_PERMISSION_DENIED]: '插件权限不足',\n\n [ErrorCode.STATE_MANAGER_NOT_INITIALIZED]: '状态管理器未初始化',\n [ErrorCode.STATE_INSTANCE_NOT_FOUND]: '状态实例未找到',\n [ErrorCode.STATE_SCOPE_NOT_FOUND]: '状态作用域未找到',\n\n [ErrorCode.STORAGE_INITIALIZATION_FAILED]: '存储初始化失败',\n [ErrorCode.STORAGE_OPERATION_FAILED]: '存储操作失败',\n\n [ErrorCode.NETWORK_ERROR]: '网络错误',\n [ErrorCode.NETWORK_TIMEOUT]: '网络请求超时',\n\n [ErrorCode.UNKNOWN_ERROR]: '未知错误',\n};\n\n/**\n * 获取错误信息\n * \n * @param code - 错误码\n * @returns 错误信息\n */\nexport function getErrorMessage(code: ErrorCode): string {\n return ErrorMessages[code] || ErrorMessages[ErrorCode.UNKNOWN_ERROR];\n}\n\n/**\n * 获取用户友好的错误提示\n * \n * @param code - 错误码\n * @param details - 详细信息\n * @returns 用户友好的错误提示\n */\nexport function getUserFriendlyMessage(code: ErrorCode, details?: string): string {\n const baseMessage = getErrorMessage(code);\n \n if (details) {\n return `${baseMessage}: ${details}`;\n }\n\n // 根据错误码提供修复建议\n const suggestions: Partial<Record<ErrorCode, string>> = {\n [ErrorCode.CONTAINER_NOT_FOUND]: '请检查HTML中是否存在id=\"root\"的元素,或通过container选项指定容器',\n [ErrorCode.CONFIG_VALIDATION_FAILED]: '请检查配置文件格式是否正确,参考文档进行配置',\n [ErrorCode.PLUGIN_PERMISSION_DENIED]: '请检查插件权限配置,确保插件有足够的权限',\n };\n\n const suggestion = suggestions[code];\n if (suggestion) {\n return `${baseMessage}\\n建议: ${suggestion}`;\n }\n\n return baseMessage;\n}\n"],"names":["ErrorCode","ErrorMessages","getErrorMessage","getUserFriendlyMessage","code","details","baseMessage","suggestions","suggestion"],"mappings":"AAAA;;;CAGC,GAED;;CAEC;;;;;;;;;;;QACWA;eAAAA;;QAoCCC;eAAAA;;QAgCGC;eAAAA;;QAWAC;eAAAA;;;AA/ET,IAAA,AAAKH,mCAAAA;IACV,qBAAqB;;;;IAKrB,mBAAmB;;;;IAKnB,mBAAmB;;;;IAKnB,qBAAqB;;;;IAKrB,mBAAmB;;;IAInB,mBAAmB;;;IAInB,cAAc;;WA7BJA;;AAoCL,MAAMC,gBAA2C;IACtD,MAA+B,EAAE;IACjC,MAA0B,EAAE;IAC5B,MAAiC,EAAE;IAEnC,MAA8B,EAAE;IAChC,MAAoC,EAAE;IACtC,MAAiC,EAAE;IAEnC,MAAkC,EAAE;IACpC,MAAmC,EAAE;IACrC,MAAoC,EAAE;IAEtC,MAAyC,EAAE;IAC3C,MAAoC,EAAE;IACtC,MAAiC,EAAE;IAEnC,MAAyC,EAAE;IAC3C,MAAoC,EAAE;IAEtC,MAAyB,EAAE;IAC3B,MAA2B,EAAE;IAE7B,MAAyB,EAAE;AAC7B;AAQO,SAASC,gBAAgBE,IAAe;IAC7C,OAAOH,aAAa,CAACG,KAAK,IAAIH,aAAa,MAAyB;AACtE;AASO,SAASE,uBAAuBC,IAAe,EAAEC,OAAgB;IACtE,MAAMC,cAAcJ,gBAAgBE;IAEpC,IAAIC,SAAS;QACX,OAAO,GAAGC,YAAY,EAAE,EAAED,SAAS;IACrC;IAEA,cAAc;IACd,MAAME,cAAkD;QACtD,MAA+B,EAAE;QACjC,MAAoC,EAAE;QACtC,MAAoC,EAAE;IACxC;IAEA,MAAMC,aAAaD,WAAW,CAACH,KAAK;IACpC,IAAII,YAAY;QACd,OAAO,GAAGF,YAAY,MAAM,EAAEE,YAAY;IAC5C;IAEA,OAAOF;AACT"}
1
+ {"version":3,"sources":["../../../src/utils/errors/ErrorCodes.ts"],"sourcesContent":["export { ErrorCode, ErrorMessages, getErrorMessage, getUserFriendlyMessage } from '@vlian/utils';\n"],"names":["ErrorCode","ErrorMessages","getErrorMessage","getUserFriendlyMessage"],"mappings":";;;;;;;;;;;QAASA;eAAAA,gBAAS;;QAAEC;eAAAA,oBAAa;;QAAEC;eAAAA,sBAAe;;QAAEC;eAAAA,6BAAsB;;;uBAAQ"}
@@ -1,45 +1 @@
1
- /**
2
- * 错误码定义
3
- * 提供统一的错误码和错误信息映射
4
- */
5
- /**
6
- * 错误码枚举
7
- */
8
- export declare enum ErrorCode {
9
- CONTAINER_NOT_FOUND = 1001,
10
- STARTUP_FAILED = 1002,
11
- INITIALIZATION_FAILED = 1003,
12
- CONFIG_LOAD_FAILED = 2001,
13
- CONFIG_VALIDATION_FAILED = 2002,
14
- CONFIG_FILE_NOT_FOUND = 2003,
15
- PLUGIN_REGISTER_FAILED = 3001,
16
- PLUGIN_EXECUTION_FAILED = 3002,
17
- PLUGIN_PERMISSION_DENIED = 3003,
18
- STATE_MANAGER_NOT_INITIALIZED = 4001,
19
- STATE_INSTANCE_NOT_FOUND = 4002,
20
- STATE_SCOPE_NOT_FOUND = 4003,
21
- STORAGE_INITIALIZATION_FAILED = 5001,
22
- STORAGE_OPERATION_FAILED = 5002,
23
- NETWORK_ERROR = 6001,
24
- NETWORK_TIMEOUT = 6002,
25
- UNKNOWN_ERROR = 9999
26
- }
27
- /**
28
- * 错误信息映射
29
- */
30
- export declare const ErrorMessages: Record<ErrorCode, string>;
31
- /**
32
- * 获取错误信息
33
- *
34
- * @param code - 错误码
35
- * @returns 错误信息
36
- */
37
- export declare function getErrorMessage(code: ErrorCode): string;
38
- /**
39
- * 获取用户友好的错误提示
40
- *
41
- * @param code - 错误码
42
- * @param details - 详细信息
43
- * @returns 用户友好的错误提示
44
- */
45
- export declare function getUserFriendlyMessage(code: ErrorCode, details?: string): string;
1
+ export { ErrorCode, ErrorMessages, getErrorMessage, getUserFriendlyMessage } from '@vlian/utils';