@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,381 +1,3 @@
1
- function _define_property(obj, key, value) {
2
- if (key in obj) {
3
- Object.defineProperty(obj, key, {
4
- value: value,
5
- enumerable: true,
6
- configurable: true,
7
- writable: true
8
- });
9
- } else {
10
- obj[key] = value;
11
- }
12
- return obj;
13
- }
14
- import { LogLevel } from "./logger.types";
15
- import { SecurityUtils } from "./security";
16
- import { getCurrentTraceId } from "./traceId";
17
- /**
18
- * 检测运行环境是否为浏览器
19
- */ const isBrowser = ()=>{
20
- return typeof window !== 'undefined' && typeof window.document !== 'undefined';
21
- };
22
- /**
23
- * ANSI 颜色代码(用于 Node.js 环境)
24
- */ const ANSI_COLORS = {
25
- reset: '\x1b[0m',
26
- bright: '\x1b[1m',
27
- dim: '\x1b[2m',
28
- red: '\x1b[31m',
29
- green: '\x1b[32m',
30
- yellow: '\x1b[33m',
31
- blue: '\x1b[34m',
32
- magenta: '\x1b[35m',
33
- cyan: '\x1b[36m',
34
- white: '\x1b[37m',
35
- bgRed: '\x1b[41m',
36
- bgGreen: '\x1b[42m',
37
- bgYellow: '\x1b[43m',
38
- bgBlue: '\x1b[44m',
39
- bgMagenta: '\x1b[45m',
40
- bgCyan: '\x1b[46m',
41
- bgWhite: '\x1b[47m'
42
- };
43
- /**
44
- * 浏览器控制台样式(用于浏览器环境)
45
- */ const BROWSER_STYLES = {
46
- debug: 'color: #888; font-weight: normal;',
47
- info: 'color: #2196F3; font-weight: normal;',
48
- warn: 'color: #FF9800; font-weight: bold;',
49
- error: 'color: #F44336; font-weight: bold;'
50
- };
51
- /**
52
- * 日志级别对应的颜色配置
53
- */ const LEVEL_COLORS = {
54
- [LogLevel.DEBUG]: {
55
- node: ANSI_COLORS.dim + ANSI_COLORS.white,
56
- browser: BROWSER_STYLES.debug
57
- },
58
- [LogLevel.INFO]: {
59
- node: ANSI_COLORS.cyan,
60
- browser: BROWSER_STYLES.info
61
- },
62
- [LogLevel.WARN]: {
63
- node: ANSI_COLORS.yellow,
64
- browser: BROWSER_STYLES.warn
65
- },
66
- [LogLevel.ERROR]: {
67
- node: ANSI_COLORS.red + ANSI_COLORS.bright,
68
- browser: BROWSER_STYLES.error
69
- },
70
- [LogLevel.NONE]: {
71
- node: '',
72
- browser: ''
73
- }
74
- };
75
- /**
76
- * 日志级别标签
77
- */ const LEVEL_LABELS = {
78
- [LogLevel.DEBUG]: 'DEBUG',
79
- [LogLevel.INFO]: 'INFO',
80
- [LogLevel.WARN]: 'WARN',
81
- [LogLevel.ERROR]: 'ERROR',
82
- [LogLevel.NONE]: ''
83
- };
84
- /**
85
- * 日志格式类型
86
- */ export var LogFormat = /*#__PURE__*/ function(LogFormat) {
87
- /**
88
- * 文本格式(默认)
89
- */ LogFormat["TEXT"] = "text";
90
- /**
91
- * JSON 格式(用于日志聚合)
92
- */ LogFormat["JSON"] = "json";
93
- /**
94
- * 结构化格式(用于分析)
95
- */ LogFormat["STRUCTURED"] = "structured";
96
- return LogFormat;
97
- }({});
98
- /**
99
- * Logger 类
100
- */ let Logger = class Logger {
101
- /**
102
- * 设置日志级别
103
- */ setLevel(level) {
104
- this.level = level;
105
- }
106
- /**
107
- * 获取当前日志级别
108
- */ getLevel() {
109
- return this.level;
110
- }
111
- /**
112
- * 格式化时间戳
113
- */ formatTimestamp() {
114
- const now = new Date();
115
- const year = now.getFullYear();
116
- const month = String(now.getMonth() + 1).padStart(2, '0');
117
- const day = String(now.getDate()).padStart(2, '0');
118
- const hours = String(now.getHours()).padStart(2, '0');
119
- const minutes = String(now.getMinutes()).padStart(2, '0');
120
- const seconds = String(now.getSeconds()).padStart(2, '0');
121
- const milliseconds = String(now.getMilliseconds()).padStart(3, '0');
122
- return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}.${milliseconds}`;
123
- }
124
- /**
125
- * 构建日志前缀
126
- */ buildPrefix(logLevel) {
127
- const parts = [];
128
- if (this.showTimestamp) {
129
- parts.push(`[${this.formatTimestamp()}]`);
130
- }
131
- if (this.showLevel) {
132
- parts.push(`[${LEVEL_LABELS[logLevel]}]`);
133
- }
134
- // 添加追踪 ID(如果存在)
135
- const traceId = getCurrentTraceId();
136
- if (traceId) {
137
- parts.push(`[Trace:${traceId.substring(0, 8)}]`);
138
- }
139
- if (this.prefix) {
140
- parts.push(`[${this.prefix}]`);
141
- }
142
- return parts.join(' ');
143
- }
144
- /**
145
- * 输出日志(Node.js 环境)
146
- */ logNode(level, ...args) {
147
- if (level < this.level) {
148
- return;
149
- }
150
- const prefix = this.buildPrefix(level);
151
- const colorConfig = LEVEL_COLORS[level];
152
- const reset = this.enableColors ? ANSI_COLORS.reset : '';
153
- if (this.enableColors && colorConfig.node) {
154
- console.log(`${colorConfig.node}${prefix}${reset}`, ...args);
155
- } else {
156
- console.log(prefix, ...args);
157
- }
158
- }
159
- /**
160
- * 输出日志(浏览器环境)
161
- */ logBrowser(level, ...args) {
162
- if (level < this.level) {
163
- return;
164
- }
165
- const prefix = this.buildPrefix(level);
166
- const colorConfig = LEVEL_COLORS[level];
167
- if (this.enableColors && colorConfig.browser) {
168
- console.log(`%c${prefix}`, colorConfig.browser, ...args);
169
- } else {
170
- console.log(prefix, ...args);
171
- }
172
- }
173
- /**
174
- * 脱敏处理
175
- */ sanitizeValue(value) {
176
- if (!this.enableSanitization) {
177
- return value;
178
- }
179
- if (typeof value === 'string') {
180
- // 检查是否包含敏感内容
181
- if (SecurityUtils.containsDangerousContent(value)) {
182
- return SecurityUtils.sanitizeText(value);
183
- }
184
- return value;
185
- }
186
- if (value && typeof value === 'object') {
187
- if (Array.isArray(value)) {
188
- return value.map((item)=>this.sanitizeValue(item));
189
- }
190
- const sanitized = {};
191
- for (const [key, val] of Object.entries(value)){
192
- // 检查是否为敏感字段
193
- if (SecurityUtils.isSensitiveField(key)) {
194
- sanitized[key] = '***';
195
- } else {
196
- sanitized[key] = this.sanitizeValue(val);
197
- }
198
- }
199
- return sanitized;
200
- }
201
- return value;
202
- }
203
- /**
204
- * 处理日志参数(脱敏、过滤等)
205
- */ processLogArgs(...args) {
206
- // 生产环境自动禁用 DEBUG 级别
207
- if (this.isProduction && this.level === LogLevel.DEBUG) {
208
- return [];
209
- }
210
- return args.map((arg)=>this.sanitizeValue(arg));
211
- }
212
- /**
213
- * 设置日志格式
214
- */ setFormat(format) {
215
- this.format = format;
216
- }
217
- /**
218
- * 设置日志上下文
219
- */ setContext(context) {
220
- this.context = {
221
- ...this.context,
222
- ...context
223
- };
224
- }
225
- /**
226
- * 更新日志上下文
227
- */ updateContext(context) {
228
- this.context = {
229
- ...this.context,
230
- ...context
231
- };
232
- }
233
- /**
234
- * 获取日志上下文
235
- */ getContext() {
236
- return {
237
- ...this.context
238
- };
239
- }
240
- /**
241
- * 清除日志上下文
242
- */ clearContext() {
243
- this.context = {};
244
- }
245
- /**
246
- * 注册日志处理器(用于日志聚合)
247
- */ addLogHandler(handler) {
248
- this.logHandlers.push(handler);
249
- return ()=>{
250
- const index = this.logHandlers.indexOf(handler);
251
- if (index > -1) {
252
- this.logHandlers.splice(index, 1);
253
- }
254
- };
255
- }
256
- /**
257
- * 创建结构化日志条目
258
- */ createStructuredEntry(level, message, data) {
259
- const traceId = getCurrentTraceId();
260
- const entry = {
261
- timestamp: new Date().toISOString(),
262
- level,
263
- message,
264
- context: {
265
- ...this.context,
266
- traceId: traceId || this.context.traceId
267
- },
268
- source: this.prefix || 'framework'
269
- };
270
- if (data !== undefined) {
271
- entry.data = this.sanitizeValue(data);
272
- }
273
- // 如果是错误,提取堆栈信息
274
- if (data instanceof Error) {
275
- entry.stack = data.stack;
276
- entry.message = data.message || message;
277
- }
278
- return entry;
279
- }
280
- /**
281
- * 输出结构化日志
282
- */ outputStructured(entry) {
283
- // 调用日志处理器
284
- this.logHandlers.forEach((handler)=>{
285
- try {
286
- handler(entry);
287
- } catch (error) {
288
- // 忽略处理器错误,避免循环
289
- }
290
- });
291
- // 根据格式输出
292
- if (this.format === "json") {
293
- console.log(JSON.stringify(entry));
294
- } else if (this.format === "structured") {
295
- console.log(entry);
296
- } else {
297
- // TEXT 格式使用原有输出方式
298
- const args = entry.data !== undefined ? [
299
- entry.data
300
- ] : [];
301
- if (isBrowser()) {
302
- this.logBrowser(entry.level, entry.message, ...args);
303
- } else {
304
- this.logNode(entry.level, entry.message, ...args);
305
- }
306
- }
307
- }
308
- /**
309
- * 通用日志输出方法
310
- */ log(level, ...args) {
311
- if (level < this.level) {
312
- return;
313
- }
314
- const processedArgs = this.processLogArgs(...args);
315
- // 如果处理后没有参数(被过滤),则不输出
316
- if (processedArgs.length === 0) {
317
- return;
318
- }
319
- // 提取消息和数据
320
- const message = typeof processedArgs[0] === 'string' ? processedArgs[0] : 'Log message';
321
- const data = processedArgs.length > 1 ? processedArgs.slice(1) : typeof processedArgs[0] === 'string' ? undefined : processedArgs[0];
322
- // 创建结构化日志条目
323
- const entry = this.createStructuredEntry(level, message, data);
324
- // 输出日志
325
- this.outputStructured(entry);
326
- }
327
- /**
328
- * 输出 DEBUG 级别日志
329
- */ debug(...args) {
330
- this.log(LogLevel.DEBUG, ...args);
331
- }
332
- /**
333
- * 输出 INFO 级别日志
334
- */ info(...args) {
335
- this.log(LogLevel.INFO, ...args);
336
- }
337
- /**
338
- * 输出 WARN 级别日志
339
- */ warn(...args) {
340
- this.log(LogLevel.WARN, ...args);
341
- }
342
- /**
343
- * 输出 ERROR 级别日志
344
- */ error(...args) {
345
- this.log(LogLevel.ERROR, ...args);
346
- }
347
- constructor(options = {}){
348
- _define_property(this, "level", void 0);
349
- _define_property(this, "enableColors", void 0);
350
- _define_property(this, "showTimestamp", void 0);
351
- _define_property(this, "showLevel", void 0);
352
- _define_property(this, "prefix", void 0);
353
- _define_property(this, "enableSanitization", void 0);
354
- _define_property(this, "isProduction", void 0);
355
- _define_property(this, "format", void 0);
356
- _define_property(this, "context", {});
357
- _define_property(this, "logHandlers", []);
358
- this.level = options.level ?? LogLevel.INFO;
359
- this.enableColors = options.enableColors ?? true;
360
- this.showTimestamp = options.showTimestamp ?? true;
361
- this.showLevel = options.showLevel ?? true;
362
- this.prefix = options.prefix ?? '';
363
- this.enableSanitization = options.enableSanitization ?? true;
364
- this.isProduction = typeof process !== 'undefined' && process.env.NODE_ENV === 'production';
365
- this.format = options.format ?? "text";
366
- this.context = options.context ?? {};
367
- }
368
- };
369
- /**
370
- * 创建 Logger 实例
371
- */ export const createLogger = (options)=>{
372
- return new Logger(options);
373
- };
374
- /**
375
- * 默认 Logger 实例
376
- */ export const logger = createLogger();
377
- /**
378
- * 导出 Logger 类
379
- */ export { Logger };
1
+ export { logger, createLogger, Logger, LogFormat } from "@vlian/logger";
380
2
 
381
3
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/logger.ts"],"sourcesContent":["import type { LoggerOptions } from './logger.types';\nimport { LogLevel } from './logger.types';\nimport { SecurityUtils } from './security';\nimport { getCurrentTraceId } from './traceId';\n\n/**\n * 检测运行环境是否为浏览器\n */\nconst isBrowser = (): boolean => {\n return typeof window !== 'undefined' && typeof window.document !== 'undefined';\n};\n\n/**\n * ANSI 颜色代码(用于 Node.js 环境)\n */\nconst ANSI_COLORS = {\n reset: '\\x1b[0m',\n bright: '\\x1b[1m',\n dim: '\\x1b[2m',\n red: '\\x1b[31m',\n green: '\\x1b[32m',\n yellow: '\\x1b[33m',\n blue: '\\x1b[34m',\n magenta: '\\x1b[35m',\n cyan: '\\x1b[36m',\n white: '\\x1b[37m',\n bgRed: '\\x1b[41m',\n bgGreen: '\\x1b[42m',\n bgYellow: '\\x1b[43m',\n bgBlue: '\\x1b[44m',\n bgMagenta: '\\x1b[45m',\n bgCyan: '\\x1b[46m',\n bgWhite: '\\x1b[47m',\n} as const;\n\n/**\n * 浏览器控制台样式(用于浏览器环境)\n */\nconst BROWSER_STYLES = {\n debug: 'color: #888; font-weight: normal;',\n info: 'color: #2196F3; font-weight: normal;',\n warn: 'color: #FF9800; font-weight: bold;',\n error: 'color: #F44336; font-weight: bold;',\n} as const;\n\n/**\n * 日志级别对应的颜色配置\n */\nconst LEVEL_COLORS: Record<LogLevel, { node: string; browser: string }> = {\n [LogLevel.DEBUG]: {\n node: ANSI_COLORS.dim + ANSI_COLORS.white,\n browser: BROWSER_STYLES.debug,\n },\n [LogLevel.INFO]: {\n node: ANSI_COLORS.cyan,\n browser: BROWSER_STYLES.info,\n },\n [LogLevel.WARN]: {\n node: ANSI_COLORS.yellow,\n browser: BROWSER_STYLES.warn,\n },\n [LogLevel.ERROR]: {\n node: ANSI_COLORS.red + ANSI_COLORS.bright,\n browser: BROWSER_STYLES.error,\n },\n [LogLevel.NONE]: {\n node: '',\n browser: '',\n },\n};\n\n/**\n * 日志级别标签\n */\nconst LEVEL_LABELS: Record<LogLevel, string> = {\n [LogLevel.DEBUG]: 'DEBUG',\n [LogLevel.INFO]: 'INFO',\n [LogLevel.WARN]: 'WARN',\n [LogLevel.ERROR]: 'ERROR',\n [LogLevel.NONE]: '',\n};\n\n/**\n * 日志格式类型\n */\nexport enum LogFormat {\n /**\n * 文本格式(默认)\n */\n TEXT = 'text',\n /**\n * JSON 格式(用于日志聚合)\n */\n JSON = 'json',\n /**\n * 结构化格式(用于分析)\n */\n STRUCTURED = 'structured',\n}\n\n/**\n * 日志上下文\n */\nexport interface LogContext {\n /**\n * 追踪 ID\n */\n traceId?: string;\n /**\n * 用户 ID\n */\n userId?: string;\n /**\n * 会话 ID\n */\n sessionId?: string;\n /**\n * 请求 ID\n */\n requestId?: string;\n /**\n * 自定义上下文\n */\n [key: string]: unknown;\n}\n\n/**\n * 结构化日志条目\n */\nexport interface StructuredLogEntry {\n /**\n * 时间戳\n */\n timestamp: string;\n /**\n * 日志级别\n */\n level: LogLevel;\n /**\n * 日志消息\n */\n message: string;\n /**\n * 日志数据\n */\n data?: unknown;\n /**\n * 日志上下文\n */\n context?: LogContext;\n /**\n * 日志来源\n */\n source?: string;\n /**\n * 错误堆栈(如果是错误日志)\n */\n stack?: string;\n}\n\n/**\n * Logger 类\n */\nclass Logger {\n private level: LogLevel;\n private enableColors: boolean;\n private showTimestamp: boolean;\n private showLevel: boolean;\n private prefix: string;\n private enableSanitization: boolean;\n private isProduction: boolean;\n private format: LogFormat;\n private context: LogContext = {};\n private logHandlers: Array<(entry: StructuredLogEntry) => void> = [];\n\n constructor(options: LoggerOptions = {}) {\n this.level = options.level ?? LogLevel.INFO;\n this.enableColors = options.enableColors ?? true;\n this.showTimestamp = options.showTimestamp ?? true;\n this.showLevel = options.showLevel ?? true;\n this.prefix = options.prefix ?? '';\n this.enableSanitization = options.enableSanitization ?? true;\n this.isProduction = typeof process !== 'undefined' && process.env.NODE_ENV === 'production';\n this.format = (options as any).format ?? LogFormat.TEXT;\n this.context = (options as any).context ?? {};\n }\n\n /**\n * 设置日志级别\n */\n setLevel(level: LogLevel): void {\n this.level = level;\n }\n\n /**\n * 获取当前日志级别\n */\n getLevel(): LogLevel {\n return this.level;\n }\n\n /**\n * 格式化时间戳\n */\n private formatTimestamp(): string {\n const now = new Date();\n const year = now.getFullYear();\n const month = String(now.getMonth() + 1).padStart(2, '0');\n const day = String(now.getDate()).padStart(2, '0');\n const hours = String(now.getHours()).padStart(2, '0');\n const minutes = String(now.getMinutes()).padStart(2, '0');\n const seconds = String(now.getSeconds()).padStart(2, '0');\n const milliseconds = String(now.getMilliseconds()).padStart(3, '0');\n return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}.${milliseconds}`;\n }\n\n /**\n * 构建日志前缀\n */\n private buildPrefix(logLevel: LogLevel): string {\n const parts: string[] = [];\n\n if (this.showTimestamp) {\n parts.push(`[${this.formatTimestamp()}]`);\n }\n\n if (this.showLevel) {\n parts.push(`[${LEVEL_LABELS[logLevel]}]`);\n }\n\n // 添加追踪 ID(如果存在)\n const traceId = getCurrentTraceId();\n if (traceId) {\n parts.push(`[Trace:${traceId.substring(0, 8)}]`);\n }\n\n if (this.prefix) {\n parts.push(`[${this.prefix}]`);\n }\n\n return parts.join(' ');\n }\n\n /**\n * 输出日志(Node.js 环境)\n */\n private logNode(level: LogLevel, ...args: unknown[]): void {\n if (level < this.level) {\n return;\n }\n\n const prefix = this.buildPrefix(level);\n const colorConfig = LEVEL_COLORS[level];\n const reset = this.enableColors ? ANSI_COLORS.reset : '';\n\n if (this.enableColors && colorConfig.node) {\n console.log(`${colorConfig.node}${prefix}${reset}`, ...args);\n } else {\n console.log(prefix, ...args);\n }\n }\n\n /**\n * 输出日志(浏览器环境)\n */\n private logBrowser(level: LogLevel, ...args: unknown[]): void {\n if (level < this.level) {\n return;\n }\n\n const prefix = this.buildPrefix(level);\n const colorConfig = LEVEL_COLORS[level];\n\n if (this.enableColors && colorConfig.browser) {\n console.log(`%c${prefix}`, colorConfig.browser, ...args);\n } else {\n console.log(prefix, ...args);\n }\n }\n\n /**\n * 脱敏处理\n */\n private sanitizeValue(value: unknown): unknown {\n if (!this.enableSanitization) {\n return value;\n }\n\n if (typeof value === 'string') {\n // 检查是否包含敏感内容\n if (SecurityUtils.containsDangerousContent(value)) {\n return SecurityUtils.sanitizeText(value);\n }\n return value;\n }\n\n if (value && typeof value === 'object') {\n if (Array.isArray(value)) {\n return value.map((item) => this.sanitizeValue(item));\n }\n\n const sanitized: Record<string, unknown> = {};\n for (const [key, val] of Object.entries(value)) {\n // 检查是否为敏感字段\n if (SecurityUtils.isSensitiveField(key)) {\n sanitized[key] = '***';\n } else {\n sanitized[key] = this.sanitizeValue(val);\n }\n }\n return sanitized;\n }\n\n return value;\n }\n\n /**\n * 处理日志参数(脱敏、过滤等)\n */\n private processLogArgs(...args: unknown[]): unknown[] {\n // 生产环境自动禁用 DEBUG 级别\n if (this.isProduction && this.level === LogLevel.DEBUG) {\n return [];\n }\n\n return args.map((arg) => this.sanitizeValue(arg));\n }\n\n /**\n * 设置日志格式\n */\n setFormat(format: LogFormat): void {\n this.format = format;\n }\n\n /**\n * 设置日志上下文\n */\n setContext(context: LogContext): void {\n this.context = { ...this.context, ...context };\n }\n\n /**\n * 更新日志上下文\n */\n updateContext(context: Partial<LogContext>): void {\n this.context = { ...this.context, ...context };\n }\n\n /**\n * 获取日志上下文\n */\n getContext(): LogContext {\n return { ...this.context };\n }\n\n /**\n * 清除日志上下文\n */\n clearContext(): void {\n this.context = {};\n }\n\n /**\n * 注册日志处理器(用于日志聚合)\n */\n addLogHandler(handler: (entry: StructuredLogEntry) => void): () => void {\n this.logHandlers.push(handler);\n return () => {\n const index = this.logHandlers.indexOf(handler);\n if (index > -1) {\n this.logHandlers.splice(index, 1);\n }\n };\n }\n\n /**\n * 创建结构化日志条目\n */\n private createStructuredEntry(\n level: LogLevel,\n message: string,\n data?: unknown\n ): StructuredLogEntry {\n const traceId = getCurrentTraceId();\n const entry: StructuredLogEntry = {\n timestamp: new Date().toISOString(),\n level,\n message,\n context: {\n ...this.context,\n traceId: traceId || this.context.traceId,\n },\n source: this.prefix || 'framework',\n };\n\n if (data !== undefined) {\n entry.data = this.sanitizeValue(data);\n }\n\n // 如果是错误,提取堆栈信息\n if (data instanceof Error) {\n entry.stack = data.stack;\n entry.message = data.message || message;\n }\n\n return entry;\n }\n\n /**\n * 输出结构化日志\n */\n private outputStructured(entry: StructuredLogEntry): void {\n // 调用日志处理器\n this.logHandlers.forEach((handler) => {\n try {\n handler(entry);\n } catch (error) {\n // 忽略处理器错误,避免循环\n }\n });\n\n // 根据格式输出\n if (this.format === LogFormat.JSON) {\n console.log(JSON.stringify(entry));\n } else if (this.format === LogFormat.STRUCTURED) {\n console.log(entry);\n } else {\n // TEXT 格式使用原有输出方式\n const args = entry.data !== undefined ? [entry.data] : [];\n if (isBrowser()) {\n this.logBrowser(entry.level, entry.message, ...args);\n } else {\n this.logNode(entry.level, entry.message, ...args);\n }\n }\n }\n\n /**\n * 通用日志输出方法\n */\n private log(level: LogLevel, ...args: unknown[]): void {\n if (level < this.level) {\n return;\n }\n\n const processedArgs = this.processLogArgs(...args);\n \n // 如果处理后没有参数(被过滤),则不输出\n if (processedArgs.length === 0) {\n return;\n }\n\n // 提取消息和数据\n const message = typeof processedArgs[0] === 'string' \n ? processedArgs[0] \n : 'Log message';\n const data = processedArgs.length > 1 \n ? processedArgs.slice(1) \n : (typeof processedArgs[0] === 'string' ? undefined : processedArgs[0]);\n\n // 创建结构化日志条目\n const entry = this.createStructuredEntry(level, message, data);\n\n // 输出日志\n this.outputStructured(entry);\n }\n\n /**\n * 输出 DEBUG 级别日志\n */\n debug(...args: unknown[]): void {\n this.log(LogLevel.DEBUG, ...args);\n }\n\n /**\n * 输出 INFO 级别日志\n */\n info(...args: unknown[]): void {\n this.log(LogLevel.INFO, ...args);\n }\n\n /**\n * 输出 WARN 级别日志\n */\n warn(...args: unknown[]): void {\n this.log(LogLevel.WARN, ...args);\n }\n\n /**\n * 输出 ERROR 级别日志\n */\n error(...args: unknown[]): void {\n this.log(LogLevel.ERROR, ...args);\n }\n}\n\n/**\n * 创建 Logger 实例\n */\nexport const createLogger = (options?: LoggerOptions): Logger => {\n return new Logger(options);\n};\n\n/**\n * 默认 Logger 实例\n */\nexport const logger = createLogger();\n\n/**\n * 导出 Logger 类\n */\nexport { Logger };\n"],"names":["LogLevel","SecurityUtils","getCurrentTraceId","isBrowser","window","document","ANSI_COLORS","reset","bright","dim","red","green","yellow","blue","magenta","cyan","white","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","BROWSER_STYLES","debug","info","warn","error","LEVEL_COLORS","DEBUG","node","browser","INFO","WARN","ERROR","NONE","LEVEL_LABELS","LogFormat","Logger","setLevel","level","getLevel","formatTimestamp","now","Date","year","getFullYear","month","String","getMonth","padStart","day","getDate","hours","getHours","minutes","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds","buildPrefix","logLevel","parts","showTimestamp","push","showLevel","traceId","substring","prefix","join","logNode","args","colorConfig","enableColors","console","log","logBrowser","sanitizeValue","value","enableSanitization","containsDangerousContent","sanitizeText","Array","isArray","map","item","sanitized","key","val","Object","entries","isSensitiveField","processLogArgs","isProduction","arg","setFormat","format","setContext","context","updateContext","getContext","clearContext","addLogHandler","handler","logHandlers","index","indexOf","splice","createStructuredEntry","message","data","entry","timestamp","toISOString","source","undefined","Error","stack","outputStructured","forEach","JSON","stringify","processedArgs","length","slice","options","process","env","NODE_ENV","createLogger","logger"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utils/logger.ts"],"sourcesContent":["export { logger, createLogger, Logger, LogFormat } from '@vlian/logger';\nexport type { LogContext, StructuredLogEntry } from '@vlian/logger';\n"],"names":["logger","createLogger","Logger","LogFormat"],"mappings":"AAAA,SAASA,MAAM,EAAEC,YAAY,EAAEC,MAAM,EAAEC,SAAS,QAAQ,gBAAgB"}
@@ -1,22 +1,13 @@
1
- /**
2
- * 日志级别枚举
3
- */ "use strict";
1
+ "use strict";
4
2
  Object.defineProperty(exports, "__esModule", {
5
3
  value: true
6
4
  });
7
5
  Object.defineProperty(exports, "LogLevel", {
8
6
  enumerable: true,
9
7
  get: function() {
10
- return LogLevel;
8
+ return _logger.LogLevel;
11
9
  }
12
10
  });
13
- var LogLevel = /*#__PURE__*/ function(LogLevel) {
14
- LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG";
15
- LogLevel[LogLevel["INFO"] = 1] = "INFO";
16
- LogLevel[LogLevel["WARN"] = 2] = "WARN";
17
- LogLevel[LogLevel["ERROR"] = 3] = "ERROR";
18
- LogLevel[LogLevel["NONE"] = 4] = "NONE";
19
- return LogLevel;
20
- }({});
11
+ const _logger = require("@vlian/logger");
21
12
 
22
13
  //# sourceMappingURL=logger.types.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/logger.types.ts"],"sourcesContent":["/**\n * 日志级别枚举\n */\nexport enum LogLevel {\n DEBUG = 0,\n INFO = 1,\n WARN = 2,\n ERROR = 3,\n NONE = 4,\n}\n\n/**\n * 日志配置选项\n */\nexport interface LoggerOptions {\n /**\n * 日志级别,低于此级别的日志将不会输出\n * @default LogLevel.INFO\n */\n level?: LogLevel;\n\n /**\n * 是否启用彩色输出\n * @default true\n */\n enableColors?: boolean;\n\n /**\n * 是否显示时间戳\n * @default true\n */\n showTimestamp?: boolean;\n\n /**\n * 是否显示日志级别标签\n * @default true\n */\n showLevel?: boolean;\n\n /**\n * 自定义前缀\n */\n prefix?: string;\n\n /**\n * 是否启用日志脱敏\n * @default true\n */\n enableSanitization?: boolean;\n}\n\n/**\n * 颜色配置\n */\nexport interface ColorConfig {\n /**\n * 前景色(文字颜色)\n */\n foreground?: string;\n\n /**\n * 背景色\n */\n background?: string;\n}\n"],"names":["LogLevel"],"mappings":"AAAA;;CAEC;;;;+BACWA;;;eAAAA;;;AAAL,IAAA,AAAKA,kCAAAA;;;;;;WAAAA"}
1
+ {"version":3,"sources":["../../src/utils/logger.types.ts"],"sourcesContent":["export { LogLevel } from '@vlian/logger';\nexport type { LoggerOptions, ColorConfig } from '@vlian/logger';\n"],"names":["LogLevel"],"mappings":";;;;+BAASA;;;eAAAA,gBAAQ;;;wBAAQ"}
@@ -1,57 +1,2 @@
1
- /**
2
- * 日志级别枚举
3
- */
4
- export declare enum LogLevel {
5
- DEBUG = 0,
6
- INFO = 1,
7
- WARN = 2,
8
- ERROR = 3,
9
- NONE = 4
10
- }
11
- /**
12
- * 日志配置选项
13
- */
14
- export interface LoggerOptions {
15
- /**
16
- * 日志级别,低于此级别的日志将不会输出
17
- * @default LogLevel.INFO
18
- */
19
- level?: LogLevel;
20
- /**
21
- * 是否启用彩色输出
22
- * @default true
23
- */
24
- enableColors?: boolean;
25
- /**
26
- * 是否显示时间戳
27
- * @default true
28
- */
29
- showTimestamp?: boolean;
30
- /**
31
- * 是否显示日志级别标签
32
- * @default true
33
- */
34
- showLevel?: boolean;
35
- /**
36
- * 自定义前缀
37
- */
38
- prefix?: string;
39
- /**
40
- * 是否启用日志脱敏
41
- * @default true
42
- */
43
- enableSanitization?: boolean;
44
- }
45
- /**
46
- * 颜色配置
47
- */
48
- export interface ColorConfig {
49
- /**
50
- * 前景色(文字颜色)
51
- */
52
- foreground?: string;
53
- /**
54
- * 背景色
55
- */
56
- background?: string;
57
- }
1
+ export { LogLevel } from '@vlian/logger';
2
+ export type { LoggerOptions, ColorConfig } from '@vlian/logger';
@@ -1,12 +1,3 @@
1
- /**
2
- * 日志级别枚举
3
- */ export var LogLevel = /*#__PURE__*/ function(LogLevel) {
4
- LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG";
5
- LogLevel[LogLevel["INFO"] = 1] = "INFO";
6
- LogLevel[LogLevel["WARN"] = 2] = "WARN";
7
- LogLevel[LogLevel["ERROR"] = 3] = "ERROR";
8
- LogLevel[LogLevel["NONE"] = 4] = "NONE";
9
- return LogLevel;
10
- }({});
1
+ export { LogLevel } from "@vlian/logger";
11
2
 
12
3
  //# sourceMappingURL=logger.types.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/logger.types.ts"],"sourcesContent":["/**\n * 日志级别枚举\n */\nexport enum LogLevel {\n DEBUG = 0,\n INFO = 1,\n WARN = 2,\n ERROR = 3,\n NONE = 4,\n}\n\n/**\n * 日志配置选项\n */\nexport interface LoggerOptions {\n /**\n * 日志级别,低于此级别的日志将不会输出\n * @default LogLevel.INFO\n */\n level?: LogLevel;\n\n /**\n * 是否启用彩色输出\n * @default true\n */\n enableColors?: boolean;\n\n /**\n * 是否显示时间戳\n * @default true\n */\n showTimestamp?: boolean;\n\n /**\n * 是否显示日志级别标签\n * @default true\n */\n showLevel?: boolean;\n\n /**\n * 自定义前缀\n */\n prefix?: string;\n\n /**\n * 是否启用日志脱敏\n * @default true\n */\n enableSanitization?: boolean;\n}\n\n/**\n * 颜色配置\n */\nexport interface ColorConfig {\n /**\n * 前景色(文字颜色)\n */\n foreground?: string;\n\n /**\n * 背景色\n */\n background?: string;\n}\n"],"names":["LogLevel"],"mappings":"AAAA;;CAEC,GACD,OAAO,IAAA,AAAKA,kCAAAA;;;;;;WAAAA;MAMX"}
1
+ {"version":3,"sources":["../../src/utils/logger.types.ts"],"sourcesContent":["export { LogLevel } from '@vlian/logger';\nexport type { LoggerOptions, ColorConfig } from '@vlian/logger';\n"],"names":["LogLevel"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,gBAAgB"}