@vlian/framework 1.2.25 → 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 (213) 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/router/monitoring/RouterMonitoring.cjs +1 -1
  7. package/dist/core/router/monitoring/RouterMonitoring.cjs.map +1 -1
  8. package/dist/core/router/monitoring/RouterMonitoring.js +1 -1
  9. package/dist/core/router/monitoring/RouterMonitoring.js.map +1 -1
  10. package/dist/core/router/utils/adapters/react-router/transform.cjs +4 -0
  11. package/dist/core/router/utils/adapters/react-router/transform.cjs.map +1 -1
  12. package/dist/core/router/utils/adapters/react-router/transform.js +4 -0
  13. package/dist/core/router/utils/adapters/react-router/transform.js.map +1 -1
  14. package/dist/core/startup/initializeServices.cjs +1 -1
  15. package/dist/core/startup/initializeServices.cjs.map +1 -1
  16. package/dist/core/startup/initializeServices.d.ts +1 -1
  17. package/dist/core/startup/initializeServices.js +1 -1
  18. package/dist/core/startup/initializeServices.js.map +1 -1
  19. package/dist/core/startup/performanceTracker.cjs.map +1 -1
  20. package/dist/core/startup/performanceTracker.d.ts +1 -1
  21. package/dist/core/startup/performanceTracker.js.map +1 -1
  22. package/dist/core/startup/renderApp.cjs +1 -1
  23. package/dist/core/startup/renderApp.cjs.map +1 -1
  24. package/dist/core/startup/renderApp.d.ts +1 -1
  25. package/dist/core/startup/renderApp.js +1 -1
  26. package/dist/core/startup/renderApp.js.map +1 -1
  27. package/dist/core/startup/startApp.cjs +2 -2
  28. package/dist/core/startup/startApp.cjs.map +1 -1
  29. package/dist/core/startup/startApp.js +3 -3
  30. package/dist/core/startup/startApp.js.map +1 -1
  31. package/dist/core/types.d.ts +1 -1
  32. package/dist/core/types.js.map +1 -1
  33. package/dist/index.cjs +15 -2
  34. package/dist/index.cjs.map +1 -1
  35. package/dist/index.d.ts +6 -4
  36. package/dist/index.js +5 -4
  37. package/dist/index.js.map +1 -1
  38. package/dist/index.umd.js +11648 -32616
  39. package/dist/index.umd.js.map +1 -1
  40. package/dist/kernel/constants.cjs +67 -0
  41. package/dist/kernel/constants.cjs.map +1 -0
  42. package/dist/kernel/constants.d.ts +5 -0
  43. package/dist/kernel/constants.js +43 -0
  44. package/dist/kernel/constants.js.map +1 -0
  45. package/dist/kernel/index.cjs +40 -0
  46. package/dist/kernel/index.cjs.map +1 -0
  47. package/dist/kernel/index.d.ts +3 -0
  48. package/dist/kernel/index.js +4 -0
  49. package/dist/kernel/index.js.map +1 -0
  50. package/dist/kernel/kernel.cjs +296 -0
  51. package/dist/kernel/kernel.cjs.map +1 -0
  52. package/dist/kernel/kernel.d.ts +40 -0
  53. package/dist/kernel/kernel.js +272 -0
  54. package/dist/kernel/kernel.js.map +1 -0
  55. package/dist/kernel/manager/cacheManager.cjs +46 -0
  56. package/dist/kernel/manager/cacheManager.cjs.map +1 -0
  57. package/dist/kernel/manager/cacheManager.d.ts +6 -0
  58. package/dist/kernel/manager/cacheManager.js +36 -0
  59. package/dist/kernel/manager/cacheManager.js.map +1 -0
  60. package/dist/kernel/manager/i18nManager.cjs +68 -0
  61. package/dist/kernel/manager/i18nManager.cjs.map +1 -0
  62. package/dist/kernel/manager/i18nManager.d.ts +8 -0
  63. package/dist/kernel/manager/i18nManager.js +58 -0
  64. package/dist/kernel/manager/i18nManager.js.map +1 -0
  65. package/dist/kernel/manager/index.cjs +30 -0
  66. package/dist/kernel/manager/index.cjs.map +1 -0
  67. package/dist/kernel/manager/index.d.ts +4 -0
  68. package/dist/kernel/manager/index.js +6 -0
  69. package/dist/kernel/manager/index.js.map +1 -0
  70. package/dist/kernel/manager/loggerManager.cjs +70 -0
  71. package/dist/kernel/manager/loggerManager.cjs.map +1 -0
  72. package/dist/kernel/manager/loggerManager.d.ts +14 -0
  73. package/dist/kernel/manager/loggerManager.js +60 -0
  74. package/dist/kernel/manager/loggerManager.js.map +1 -0
  75. package/dist/kernel/manager/persistence.cjs +93 -0
  76. package/dist/kernel/manager/persistence.cjs.map +1 -0
  77. package/dist/kernel/manager/persistence.d.ts +3 -0
  78. package/dist/kernel/manager/persistence.js +75 -0
  79. package/dist/kernel/manager/persistence.js.map +1 -0
  80. package/dist/kernel/manager/themeManager.cjs +85 -0
  81. package/dist/kernel/manager/themeManager.cjs.map +1 -0
  82. package/dist/kernel/manager/themeManager.d.ts +9 -0
  83. package/dist/kernel/manager/themeManager.js +75 -0
  84. package/dist/kernel/manager/themeManager.js.map +1 -0
  85. package/dist/kernel/types.cjs +6 -0
  86. package/dist/kernel/types.cjs.map +1 -0
  87. package/dist/kernel/types.d.ts +72 -0
  88. package/dist/kernel/types.js +3 -0
  89. package/dist/kernel/types.js.map +1 -0
  90. package/dist/request/adapter.d.ts +1 -0
  91. package/dist/request/core.d.ts +1 -0
  92. package/dist/request/index.d.ts +1 -42
  93. package/dist/request/plugin/csrfPlugin.d.ts +2 -2
  94. package/dist/request/plugin/queue.d.ts +2 -2
  95. package/dist/request/plugin.d.ts +1 -0
  96. package/dist/request/runtime.d.ts +1 -0
  97. package/dist/request/types.d.ts +1 -394
  98. package/dist/request/utils.d.ts +1 -0
  99. package/dist/state.umd.js +1 -1
  100. package/dist/utils/csrf.cjs +13 -152
  101. package/dist/utils/csrf.cjs.map +1 -1
  102. package/dist/utils/csrf.d.ts +1 -72
  103. package/dist/utils/csrf.js +1 -142
  104. package/dist/utils/csrf.js.map +1 -1
  105. package/dist/utils/errors/ErrorCodes.cjs +6 -76
  106. package/dist/utils/errors/ErrorCodes.cjs.map +1 -1
  107. package/dist/utils/errors/ErrorCodes.d.ts +1 -45
  108. package/dist/utils/errors/ErrorCodes.js +1 -84
  109. package/dist/utils/errors/ErrorCodes.js.map +1 -1
  110. package/dist/utils/errors.cjs +15 -344
  111. package/dist/utils/errors.cjs.map +1 -1
  112. package/dist/utils/errors.d.ts +1 -183
  113. package/dist/utils/errors.js +1 -352
  114. package/dist/utils/errors.js.map +1 -1
  115. package/dist/utils/logger.cjs +5 -374
  116. package/dist/utils/logger.cjs.map +1 -1
  117. package/dist/utils/logger.d.ts +2 -189
  118. package/dist/utils/logger.js +1 -379
  119. package/dist/utils/logger.js.map +1 -1
  120. package/dist/utils/logger.types.cjs +3 -12
  121. package/dist/utils/logger.types.cjs.map +1 -1
  122. package/dist/utils/logger.types.d.ts +2 -57
  123. package/dist/utils/logger.types.js +1 -10
  124. package/dist/utils/logger.types.js.map +1 -1
  125. package/dist/utils/monitoring.cjs +11 -302
  126. package/dist/utils/monitoring.cjs.map +1 -1
  127. package/dist/utils/monitoring.d.ts +1 -163
  128. package/dist/utils/monitoring.js +1 -294
  129. package/dist/utils/monitoring.js.map +1 -1
  130. package/dist/utils/performance.cjs +5 -352
  131. package/dist/utils/performance.cjs.map +1 -1
  132. package/dist/utils/performance.d.ts +2 -246
  133. package/dist/utils/performance.js +1 -354
  134. package/dist/utils/performance.js.map +1 -1
  135. package/dist/utils/resourceLoader.cjs +5 -303
  136. package/dist/utils/resourceLoader.cjs.map +1 -1
  137. package/dist/utils/resourceLoader.d.ts +2 -130
  138. package/dist/utils/resourceLoader.js +1 -305
  139. package/dist/utils/resourceLoader.js.map +1 -1
  140. package/dist/utils/runtimeSecurity.cjs +2 -140
  141. package/dist/utils/runtimeSecurity.cjs.map +1 -1
  142. package/dist/utils/runtimeSecurity.d.ts +2 -104
  143. package/dist/utils/runtimeSecurity.js +1 -141
  144. package/dist/utils/runtimeSecurity.js.map +1 -1
  145. package/dist/utils/security.cjs +3 -314
  146. package/dist/utils/security.cjs.map +1 -1
  147. package/dist/utils/security.d.ts +2 -80
  148. package/dist/utils/security.js +1 -311
  149. package/dist/utils/security.js.map +1 -1
  150. package/dist/utils/traceId.cjs +10 -111
  151. package/dist/utils/traceId.cjs.map +1 -1
  152. package/dist/utils/traceId.d.ts +1 -63
  153. package/dist/utils/traceId.js +1 -116
  154. package/dist/utils/traceId.js.map +1 -1
  155. package/dist/utils/validation.cjs +3 -173
  156. package/dist/utils/validation.cjs.map +1 -1
  157. package/dist/utils/validation.d.ts +2 -110
  158. package/dist/utils/validation.js +1 -175
  159. package/dist/utils/validation.js.map +1 -1
  160. package/package.json +15 -24
  161. package/dist/lazy/index.cjs +0 -104
  162. package/dist/lazy/index.cjs.map +0 -1
  163. package/dist/lazy/index.d.ts +0 -19
  164. package/dist/lazy/index.js +0 -24
  165. package/dist/lazy/index.js.map +0 -1
  166. package/dist/request/adapter/RequestAdapter.cjs +0 -78
  167. package/dist/request/adapter/RequestAdapter.cjs.map +0 -1
  168. package/dist/request/adapter/axiosAdapter.cjs +0 -164
  169. package/dist/request/adapter/axiosAdapter.cjs.map +0 -1
  170. package/dist/request/adapter/fetchAdapter.cjs +0 -134
  171. package/dist/request/adapter/fetchAdapter.cjs.map +0 -1
  172. package/dist/request/adapter/index.cjs +0 -80
  173. package/dist/request/adapter/index.cjs.map +0 -1
  174. package/dist/request/adapter/kyAdapter.cjs +0 -191
  175. package/dist/request/adapter/kyAdapter.cjs.map +0 -1
  176. package/dist/request/adapter/undiciAdapter.cjs +0 -213
  177. package/dist/request/adapter/undiciAdapter.cjs.map +0 -1
  178. package/dist/request/core/RequestClient.cjs +0 -558
  179. package/dist/request/core/RequestClient.cjs.map +0 -1
  180. package/dist/request/core/index.cjs +0 -15
  181. package/dist/request/core/index.cjs.map +0 -1
  182. package/dist/request/index.cjs +0 -149
  183. package/dist/request/index.cjs.map +0 -1
  184. package/dist/request/plugin/RequestPlugin.cjs +0 -218
  185. package/dist/request/plugin/RequestPlugin.cjs.map +0 -1
  186. package/dist/request/plugin/cache.cjs +0 -269
  187. package/dist/request/plugin/cache.cjs.map +0 -1
  188. package/dist/request/plugin/csrfPlugin.cjs +0 -40
  189. package/dist/request/plugin/csrfPlugin.cjs.map +0 -1
  190. package/dist/request/plugin/index.cjs +0 -53
  191. package/dist/request/plugin/index.cjs.map +0 -1
  192. package/dist/request/plugin/monitoring.cjs +0 -216
  193. package/dist/request/plugin/monitoring.cjs.map +0 -1
  194. package/dist/request/plugin/queue.cjs +0 -140
  195. package/dist/request/plugin/queue.cjs.map +0 -1
  196. package/dist/request/plugin/retry.cjs +0 -98
  197. package/dist/request/plugin/retry.cjs.map +0 -1
  198. package/dist/request/plugin/validation.cjs +0 -121
  199. package/dist/request/plugin/validation.cjs.map +0 -1
  200. package/dist/request/runtime/RequestContext.cjs +0 -77
  201. package/dist/request/runtime/RequestContext.cjs.map +0 -1
  202. package/dist/request/runtime/index.cjs +0 -32
  203. package/dist/request/runtime/index.cjs.map +0 -1
  204. package/dist/request/types.cjs +0 -112
  205. package/dist/request/types.cjs.map +0 -1
  206. package/dist/request/utils/RequestQueueManager.cjs +0 -168
  207. package/dist/request/utils/RequestQueueManager.cjs.map +0 -1
  208. package/dist/request/utils/dependencyCheck.cjs +0 -237
  209. package/dist/request/utils/dependencyCheck.cjs.map +0 -1
  210. package/dist/request/utils/index.cjs +0 -30
  211. package/dist/request/utils/index.cjs.map +0 -1
  212. package/dist/request.umd.js +0 -5392
  213. package/dist/request.umd.js.map +0 -1
@@ -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":";;;;;;;;;;;;;AACA,SAASA,QAAQ,QAAQ,iBAAiB;AAC1C,SAASC,aAAa,QAAQ,aAAa;AAC3C,SAASC,iBAAiB,QAAQ,YAAY;AAE9C;;CAEC,GACD,MAAMC,YAAY;IAChB,OAAO,OAAOC,WAAW,eAAe,OAAOA,OAAOC,QAAQ,KAAK;AACrE;AAEA;;CAEC,GACD,MAAMC,cAAc;IAClBC,OAAO;IACPC,QAAQ;IACRC,KAAK;IACLC,KAAK;IACLC,OAAO;IACPC,QAAQ;IACRC,MAAM;IACNC,SAAS;IACTC,MAAM;IACNC,OAAO;IACPC,OAAO;IACPC,SAAS;IACTC,UAAU;IACVC,QAAQ;IACRC,WAAW;IACXC,QAAQ;IACRC,SAAS;AACX;AAEA;;CAEC,GACD,MAAMC,iBAAiB;IACrBC,OAAO;IACPC,MAAM;IACNC,MAAM;IACNC,OAAO;AACT;AAEA;;CAEC,GACD,MAAMC,eAAoE;IACxE,CAAC7B,SAAS8B,KAAK,CAAC,EAAE;QAChBC,MAAMzB,YAAYG,GAAG,GAAGH,YAAYU,KAAK;QACzCgB,SAASR,eAAeC,KAAK;IAC/B;IACA,CAACzB,SAASiC,IAAI,CAAC,EAAE;QACfF,MAAMzB,YAAYS,IAAI;QACtBiB,SAASR,eAAeE,IAAI;IAC9B;IACA,CAAC1B,SAASkC,IAAI,CAAC,EAAE;QACfH,MAAMzB,YAAYM,MAAM;QACxBoB,SAASR,eAAeG,IAAI;IAC9B;IACA,CAAC3B,SAASmC,KAAK,CAAC,EAAE;QAChBJ,MAAMzB,YAAYI,GAAG,GAAGJ,YAAYE,MAAM;QAC1CwB,SAASR,eAAeI,KAAK;IAC/B;IACA,CAAC5B,SAASoC,IAAI,CAAC,EAAE;QACfL,MAAM;QACNC,SAAS;IACX;AACF;AAEA;;CAEC,GACD,MAAMK,eAAyC;IAC7C,CAACrC,SAAS8B,KAAK,CAAC,EAAE;IAClB,CAAC9B,SAASiC,IAAI,CAAC,EAAE;IACjB,CAACjC,SAASkC,IAAI,CAAC,EAAE;IACjB,CAAClC,SAASmC,KAAK,CAAC,EAAE;IAClB,CAACnC,SAASoC,IAAI,CAAC,EAAE;AACnB;AAEA;;CAEC,GACD,OAAO,IAAA,AAAKE,mCAAAA;IACV;;GAEC;IAED;;GAEC;IAED;;GAEC;WAXSA;MAaX;AA8DD;;CAEC,GACD,IAAA,AAAMC,SAAN,MAAMA;IAwBJ;;GAEC,GACDC,SAASC,KAAe,EAAQ;QAC9B,IAAI,CAACA,KAAK,GAAGA;IACf;IAEA;;GAEC,GACDC,WAAqB;QACnB,OAAO,IAAI,CAACD,KAAK;IACnB;IAEA;;GAEC,GACD,AAAQE,kBAA0B;QAChC,MAAMC,MAAM,IAAIC;QAChB,MAAMC,OAAOF,IAAIG,WAAW;QAC5B,MAAMC,QAAQC,OAAOL,IAAIM,QAAQ,KAAK,GAAGC,QAAQ,CAAC,GAAG;QACrD,MAAMC,MAAMH,OAAOL,IAAIS,OAAO,IAAIF,QAAQ,CAAC,GAAG;QAC9C,MAAMG,QAAQL,OAAOL,IAAIW,QAAQ,IAAIJ,QAAQ,CAAC,GAAG;QACjD,MAAMK,UAAUP,OAAOL,IAAIa,UAAU,IAAIN,QAAQ,CAAC,GAAG;QACrD,MAAMO,UAAUT,OAAOL,IAAIe,UAAU,IAAIR,QAAQ,CAAC,GAAG;QACrD,MAAMS,eAAeX,OAAOL,IAAIiB,eAAe,IAAIV,QAAQ,CAAC,GAAG;QAC/D,OAAO,GAAGL,KAAK,CAAC,EAAEE,MAAM,CAAC,EAAEI,IAAI,CAAC,EAAEE,MAAM,CAAC,EAAEE,QAAQ,CAAC,EAAEE,QAAQ,CAAC,EAAEE,cAAc;IACjF;IAEA;;GAEC,GACD,AAAQE,YAAYC,QAAkB,EAAU;QAC9C,MAAMC,QAAkB,EAAE;QAE1B,IAAI,IAAI,CAACC,aAAa,EAAE;YACtBD,MAAME,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAACvB,eAAe,GAAG,CAAC,CAAC;QAC1C;QAEA,IAAI,IAAI,CAACwB,SAAS,EAAE;YAClBH,MAAME,IAAI,CAAC,CAAC,CAAC,EAAE7B,YAAY,CAAC0B,SAAS,CAAC,CAAC,CAAC;QAC1C;QAEA,gBAAgB;QAChB,MAAMK,UAAUlE;QAChB,IAAIkE,SAAS;YACXJ,MAAME,IAAI,CAAC,CAAC,OAAO,EAAEE,QAAQC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC;QACjD;QAEA,IAAI,IAAI,CAACC,MAAM,EAAE;YACfN,MAAME,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAACI,MAAM,CAAC,CAAC,CAAC;QAC/B;QAEA,OAAON,MAAMO,IAAI,CAAC;IACpB;IAEA;;GAEC,GACD,AAAQC,QAAQ/B,KAAe,EAAE,GAAGgC,IAAe,EAAQ;QACzD,IAAIhC,QAAQ,IAAI,CAACA,KAAK,EAAE;YACtB;QACF;QAEA,MAAM6B,SAAS,IAAI,CAACR,WAAW,CAACrB;QAChC,MAAMiC,cAAc7C,YAAY,CAACY,MAAM;QACvC,MAAMlC,QAAQ,IAAI,CAACoE,YAAY,GAAGrE,YAAYC,KAAK,GAAG;QAEtD,IAAI,IAAI,CAACoE,YAAY,IAAID,YAAY3C,IAAI,EAAE;YACzC6C,QAAQC,GAAG,CAAC,GAAGH,YAAY3C,IAAI,GAAGuC,SAAS/D,OAAO,KAAKkE;QACzD,OAAO;YACLG,QAAQC,GAAG,CAACP,WAAWG;QACzB;IACF;IAEA;;GAEC,GACD,AAAQK,WAAWrC,KAAe,EAAE,GAAGgC,IAAe,EAAQ;QAC5D,IAAIhC,QAAQ,IAAI,CAACA,KAAK,EAAE;YACtB;QACF;QAEA,MAAM6B,SAAS,IAAI,CAACR,WAAW,CAACrB;QAChC,MAAMiC,cAAc7C,YAAY,CAACY,MAAM;QAEvC,IAAI,IAAI,CAACkC,YAAY,IAAID,YAAY1C,OAAO,EAAE;YAC5C4C,QAAQC,GAAG,CAAC,CAAC,EAAE,EAAEP,QAAQ,EAAEI,YAAY1C,OAAO,KAAKyC;QACrD,OAAO;YACLG,QAAQC,GAAG,CAACP,WAAWG;QACzB;IACF;IAEA;;GAEC,GACD,AAAQM,cAAcC,KAAc,EAAW;QAC7C,IAAI,CAAC,IAAI,CAACC,kBAAkB,EAAE;YAC5B,OAAOD;QACT;QAEA,IAAI,OAAOA,UAAU,UAAU;YAC7B,aAAa;YACb,IAAI/E,cAAciF,wBAAwB,CAACF,QAAQ;gBACjD,OAAO/E,cAAckF,YAAY,CAACH;YACpC;YACA,OAAOA;QACT;QAEA,IAAIA,SAAS,OAAOA,UAAU,UAAU;YACtC,IAAII,MAAMC,OAAO,CAACL,QAAQ;gBACxB,OAAOA,MAAMM,GAAG,CAAC,CAACC,OAAS,IAAI,CAACR,aAAa,CAACQ;YAChD;YAEA,MAAMC,YAAqC,CAAC;YAC5C,KAAK,MAAM,CAACC,KAAKC,IAAI,IAAIC,OAAOC,OAAO,CAACZ,OAAQ;gBAC9C,YAAY;gBACZ,IAAI/E,cAAc4F,gBAAgB,CAACJ,MAAM;oBACvCD,SAAS,CAACC,IAAI,GAAG;gBACnB,OAAO;oBACLD,SAAS,CAACC,IAAI,GAAG,IAAI,CAACV,aAAa,CAACW;gBACtC;YACF;YACA,OAAOF;QACT;QAEA,OAAOR;IACT;IAEA;;GAEC,GACD,AAAQc,eAAe,GAAGrB,IAAe,EAAa;QACpD,oBAAoB;QACpB,IAAI,IAAI,CAACsB,YAAY,IAAI,IAAI,CAACtD,KAAK,KAAKzC,SAAS8B,KAAK,EAAE;YACtD,OAAO,EAAE;QACX;QAEA,OAAO2C,KAAKa,GAAG,CAAC,CAACU,MAAQ,IAAI,CAACjB,aAAa,CAACiB;IAC9C;IAEA;;GAEC,GACDC,UAAUC,MAAiB,EAAQ;QACjC,IAAI,CAACA,MAAM,GAAGA;IAChB;IAEA;;GAEC,GACDC,WAAWC,OAAmB,EAAQ;QACpC,IAAI,CAACA,OAAO,GAAG;YAAE,GAAG,IAAI,CAACA,OAAO;YAAE,GAAGA,OAAO;QAAC;IAC/C;IAEA;;GAEC,GACDC,cAAcD,OAA4B,EAAQ;QAChD,IAAI,CAACA,OAAO,GAAG;YAAE,GAAG,IAAI,CAACA,OAAO;YAAE,GAAGA,OAAO;QAAC;IAC/C;IAEA;;GAEC,GACDE,aAAyB;QACvB,OAAO;YAAE,GAAG,IAAI,CAACF,OAAO;QAAC;IAC3B;IAEA;;GAEC,GACDG,eAAqB;QACnB,IAAI,CAACH,OAAO,GAAG,CAAC;IAClB;IAEA;;GAEC,GACDI,cAAcC,OAA4C,EAAc;QACtE,IAAI,CAACC,WAAW,CAACxC,IAAI,CAACuC;QACtB,OAAO;YACL,MAAME,QAAQ,IAAI,CAACD,WAAW,CAACE,OAAO,CAACH;YACvC,IAAIE,QAAQ,CAAC,GAAG;gBACd,IAAI,CAACD,WAAW,CAACG,MAAM,CAACF,OAAO;YACjC;QACF;IACF;IAEA;;GAEC,GACD,AAAQG,sBACNrE,KAAe,EACfsE,OAAe,EACfC,IAAc,EACM;QACpB,MAAM5C,UAAUlE;QAChB,MAAM+G,QAA4B;YAChCC,WAAW,IAAIrE,OAAOsE,WAAW;YACjC1E;YACAsE;YACAX,SAAS;gBACP,GAAG,IAAI,CAACA,OAAO;gBACfhC,SAASA,WAAW,IAAI,CAACgC,OAAO,CAAChC,OAAO;YAC1C;YACAgD,QAAQ,IAAI,CAAC9C,MAAM,IAAI;QACzB;QAEA,IAAI0C,SAASK,WAAW;YACtBJ,MAAMD,IAAI,GAAG,IAAI,CAACjC,aAAa,CAACiC;QAClC;QAEA,eAAe;QACf,IAAIA,gBAAgBM,OAAO;YACzBL,MAAMM,KAAK,GAAGP,KAAKO,KAAK;YACxBN,MAAMF,OAAO,GAAGC,KAAKD,OAAO,IAAIA;QAClC;QAEA,OAAOE;IACT;IAEA;;GAEC,GACD,AAAQO,iBAAiBP,KAAyB,EAAQ;QACxD,UAAU;QACV,IAAI,CAACP,WAAW,CAACe,OAAO,CAAC,CAAChB;YACxB,IAAI;gBACFA,QAAQQ;YACV,EAAE,OAAOrF,OAAO;YACd,eAAe;YACjB;QACF;QAEA,SAAS;QACT,IAAI,IAAI,CAACsE,MAAM,aAAqB;YAClCtB,QAAQC,GAAG,CAAC6C,KAAKC,SAAS,CAACV;QAC7B,OAAO,IAAI,IAAI,CAACf,MAAM,mBAA2B;YAC/CtB,QAAQC,GAAG,CAACoC;QACd,OAAO;YACL,kBAAkB;YAClB,MAAMxC,OAAOwC,MAAMD,IAAI,KAAKK,YAAY;gBAACJ,MAAMD,IAAI;aAAC,GAAG,EAAE;YACzD,IAAI7G,aAAa;gBACf,IAAI,CAAC2E,UAAU,CAACmC,MAAMxE,KAAK,EAAEwE,MAAMF,OAAO,KAAKtC;YACjD,OAAO;gBACL,IAAI,CAACD,OAAO,CAACyC,MAAMxE,KAAK,EAAEwE,MAAMF,OAAO,KAAKtC;YAC9C;QACF;IACF;IAEA;;GAEC,GACD,AAAQI,IAAIpC,KAAe,EAAE,GAAGgC,IAAe,EAAQ;QACrD,IAAIhC,QAAQ,IAAI,CAACA,KAAK,EAAE;YACtB;QACF;QAEA,MAAMmF,gBAAgB,IAAI,CAAC9B,cAAc,IAAIrB;QAE7C,sBAAsB;QACtB,IAAImD,cAAcC,MAAM,KAAK,GAAG;YAC9B;QACF;QAEA,UAAU;QACV,MAAMd,UAAU,OAAOa,aAAa,CAAC,EAAE,KAAK,WACxCA,aAAa,CAAC,EAAE,GAChB;QACJ,MAAMZ,OAAOY,cAAcC,MAAM,GAAG,IAChCD,cAAcE,KAAK,CAAC,KACnB,OAAOF,aAAa,CAAC,EAAE,KAAK,WAAWP,YAAYO,aAAa,CAAC,EAAE;QAExE,YAAY;QACZ,MAAMX,QAAQ,IAAI,CAACH,qBAAqB,CAACrE,OAAOsE,SAASC;QAEzD,OAAO;QACP,IAAI,CAACQ,gBAAgB,CAACP;IACxB;IAEA;;GAEC,GACDxF,MAAM,GAAGgD,IAAe,EAAQ;QAC9B,IAAI,CAACI,GAAG,CAAC7E,SAAS8B,KAAK,KAAK2C;IAC9B;IAEA;;GAEC,GACD/C,KAAK,GAAG+C,IAAe,EAAQ;QAC7B,IAAI,CAACI,GAAG,CAAC7E,SAASiC,IAAI,KAAKwC;IAC7B;IAEA;;GAEC,GACD9C,KAAK,GAAG8C,IAAe,EAAQ;QAC7B,IAAI,CAACI,GAAG,CAAC7E,SAASkC,IAAI,KAAKuC;IAC7B;IAEA;;GAEC,GACD7C,MAAM,GAAG6C,IAAe,EAAQ;QAC9B,IAAI,CAACI,GAAG,CAAC7E,SAASmC,KAAK,KAAKsC;IAC9B;IA/TA,YAAYsD,UAAyB,CAAC,CAAC,CAAE;QAXzC,uBAAQtF,SAAR,KAAA;QACA,uBAAQkC,gBAAR,KAAA;QACA,uBAAQV,iBAAR,KAAA;QACA,uBAAQE,aAAR,KAAA;QACA,uBAAQG,UAAR,KAAA;QACA,uBAAQW,sBAAR,KAAA;QACA,uBAAQc,gBAAR,KAAA;QACA,uBAAQG,UAAR,KAAA;QACA,uBAAQE,WAAsB,CAAC;QAC/B,uBAAQM,eAA0D,EAAE;QAGlE,IAAI,CAACjE,KAAK,GAAGsF,QAAQtF,KAAK,IAAIzC,SAASiC,IAAI;QAC3C,IAAI,CAAC0C,YAAY,GAAGoD,QAAQpD,YAAY,IAAI;QAC5C,IAAI,CAACV,aAAa,GAAG8D,QAAQ9D,aAAa,IAAI;QAC9C,IAAI,CAACE,SAAS,GAAG4D,QAAQ5D,SAAS,IAAI;QACtC,IAAI,CAACG,MAAM,GAAGyD,QAAQzD,MAAM,IAAI;QAChC,IAAI,CAACW,kBAAkB,GAAG8C,QAAQ9C,kBAAkB,IAAI;QACxD,IAAI,CAACc,YAAY,GAAG,OAAOiC,YAAY,eAAeA,QAAQC,GAAG,CAACC,QAAQ,KAAK;QAC/E,IAAI,CAAChC,MAAM,GAAG,AAAC6B,QAAgB7B,MAAM;QACrC,IAAI,CAACE,OAAO,GAAG,AAAC2B,QAAgB3B,OAAO,IAAI,CAAC;IAC9C;AAsTF;AAEA;;CAEC,GACD,OAAO,MAAM+B,eAAe,CAACJ;IAC3B,OAAO,IAAIxF,OAAOwF;AACpB,EAAE;AAEF;;CAEC,GACD,OAAO,MAAMK,SAASD,eAAe;AAErC;;CAEC,GACD,SAAS5F,MAAM,GAAG"}
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"}