@vlian/framework 1.2.57 → 1.2.60

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 (685) hide show
  1. package/README.md +15 -3
  2. package/dist/analytics/index.cjs +1 -24
  3. package/dist/analytics/index.js +1 -3
  4. package/dist/analytics.umd.js +8 -208
  5. package/dist/components/LocaleSwitch.cjs +1 -118
  6. package/dist/components/LocaleSwitch.js +1 -103
  7. package/dist/components/ThemeSwitch.cjs +1 -117
  8. package/dist/components/ThemeSwitch.js +1 -102
  9. package/dist/components/index.cjs +1 -22
  10. package/dist/components/index.js +1 -4
  11. package/dist/components/persistence.cjs +1 -60
  12. package/dist/components/persistence.js +1 -39
  13. package/dist/core/Test.cjs +1 -66
  14. package/dist/core/Test.js +1 -15
  15. package/dist/core/app/AppContext.cjs +1 -350
  16. package/dist/core/app/AppContext.js +1 -339
  17. package/dist/core/app/AppContext.types.cjs +1 -6
  18. package/dist/core/app/AppContext.types.js +1 -5
  19. package/dist/core/app/BasicLayout.cjs +1 -124
  20. package/dist/core/app/BasicLayout.js +1 -74
  21. package/dist/core/app/DefaultApp.cjs +1 -152
  22. package/dist/core/app/DefaultApp.js +1 -143
  23. package/dist/core/app/index.cjs +1 -43
  24. package/dist/core/app/index.js +1 -7
  25. package/dist/core/config/AppConfig.cjs +1 -141
  26. package/dist/core/config/AppConfig.js +1 -133
  27. package/dist/core/config/ConfigLoader.cjs +1 -325
  28. package/dist/core/config/ConfigLoader.js +1 -311
  29. package/dist/core/config/ConfigValidator.cjs +2 -135
  30. package/dist/core/config/ConfigValidator.js +2 -121
  31. package/dist/core/config/index.cjs +1 -30
  32. package/dist/core/config/index.js +1 -7
  33. package/dist/core/dev/DevTools.cjs +1 -228
  34. package/dist/core/dev/DevTools.js +1 -210
  35. package/dist/core/error/ErrorBoundary.cjs +1 -403
  36. package/dist/core/error/ErrorBoundary.js +1 -399
  37. package/dist/core/error/ErrorHandler.cjs +1 -277
  38. package/dist/core/error/ErrorHandler.js +1 -261
  39. package/dist/core/error/index.cjs +1 -36
  40. package/dist/core/error/index.js +1 -6
  41. package/dist/core/event/AppEventBus.cjs +1 -446
  42. package/dist/core/event/AppEventBus.js +1 -438
  43. package/dist/core/event/frameworkEvents.cjs +1 -143
  44. package/dist/core/event/frameworkEvents.js +1 -135
  45. package/dist/core/event/hooks.cjs +1 -71
  46. package/dist/core/event/hooks.js +1 -95
  47. package/dist/core/event/index.cjs +1 -43
  48. package/dist/core/event/index.js +1 -10
  49. package/dist/core/event/types.cjs +1 -64
  50. package/dist/core/event/types.js +1 -56
  51. package/dist/core/event/useEventBus.cjs +1 -27
  52. package/dist/core/event/useEventBus.js +1 -39
  53. package/dist/core/index.cjs +1 -142
  54. package/dist/core/index.js +1 -69
  55. package/dist/core/initialization/InitializationErrorThrower.cjs +1 -77
  56. package/dist/core/initialization/InitializationErrorThrower.js +1 -30
  57. package/dist/core/initialization/index.cjs +1 -28
  58. package/dist/core/initialization/index.js +1 -7
  59. package/dist/core/initialization/initialization.cjs +1 -66
  60. package/dist/core/initialization/initialization.js +1 -78
  61. package/dist/core/initialization/initializationErrorState.cjs +1 -68
  62. package/dist/core/initialization/initializationErrorState.js +1 -60
  63. package/dist/core/kernel/defaultAdapters.cjs +1 -186
  64. package/dist/core/kernel/defaultAdapters.js +1 -176
  65. package/dist/core/kernel/errors.cjs +1 -71
  66. package/dist/core/kernel/errors.js +1 -53
  67. package/dist/core/kernel/index.cjs +1 -22
  68. package/dist/core/kernel/index.js +1 -4
  69. package/dist/core/kernel/startKernel.cjs +1 -202
  70. package/dist/core/kernel/startKernel.js +1 -192
  71. package/dist/core/kernel/types.cjs +1 -6
  72. package/dist/core/kernel/types.js +1 -3
  73. package/dist/core/middleware.cjs +1 -75
  74. package/dist/core/middleware.js +1 -61
  75. package/dist/core/plugin/PluginEventBus.cjs +1 -300
  76. package/dist/core/plugin/PluginEventBus.js +1 -286
  77. package/dist/core/plugin/PluginSandbox.cjs +1 -139
  78. package/dist/core/plugin/PluginSandbox.js +1 -125
  79. package/dist/core/plugin.cjs +1 -496
  80. package/dist/core/plugin.js +1 -438
  81. package/dist/core/router/RouterManager.cjs +1 -288
  82. package/dist/core/router/RouterManager.js +1 -272
  83. package/dist/core/router/adapter/AdapterManager.cjs +1 -237
  84. package/dist/core/router/adapter/AdapterManager.js +1 -221
  85. package/dist/core/router/adapter/index.cjs +1 -24
  86. package/dist/core/router/adapter/index.js +1 -7
  87. package/dist/core/router/adapter/react-router/ReactRouterAdapter.cjs +1 -130
  88. package/dist/core/router/adapter/react-router/ReactRouterAdapter.js +1 -116
  89. package/dist/core/router/adapter/react-router/index.cjs +1 -22
  90. package/dist/core/router/adapter/react-router/index.js +1 -5
  91. package/dist/core/router/adapter/types.cjs +1 -8
  92. package/dist/core/router/adapter/types.js +1 -7
  93. package/dist/core/router/dev/RouterDevTools.cjs +1 -262
  94. package/dist/core/router/dev/RouterDevTools.js +1 -211
  95. package/dist/core/router/dev/index.cjs +1 -22
  96. package/dist/core/router/dev/index.js +1 -5
  97. package/dist/core/router/dynamic/DynamicRouteManager.cjs +1 -195
  98. package/dist/core/router/dynamic/DynamicRouteManager.js +1 -179
  99. package/dist/core/router/dynamic/index.cjs +1 -22
  100. package/dist/core/router/dynamic/index.js +1 -5
  101. package/dist/core/router/errors/RouterError.cjs +1 -63
  102. package/dist/core/router/errors/RouterError.js +1 -48
  103. package/dist/core/router/errors/index.cjs +1 -22
  104. package/dist/core/router/errors/index.js +1 -5
  105. package/dist/core/router/index.cjs +1 -38
  106. package/dist/core/router/index.js +1 -32
  107. package/dist/core/router/lifecycle/RouterLifecycleManager.cjs +1 -146
  108. package/dist/core/router/lifecycle/RouterLifecycleManager.js +1 -130
  109. package/dist/core/router/lifecycle/index.cjs +1 -22
  110. package/dist/core/router/lifecycle/index.js +1 -5
  111. package/dist/core/router/middleware/RouterMiddlewareManager.cjs +1 -195
  112. package/dist/core/router/middleware/RouterMiddlewareManager.js +1 -179
  113. package/dist/core/router/middleware/auth.cjs +1 -68
  114. package/dist/core/router/middleware/auth.js +1 -63
  115. package/dist/core/router/middleware/index.cjs +1 -24
  116. package/dist/core/router/middleware/index.js +1 -7
  117. package/dist/core/router/middleware/types.cjs +1 -8
  118. package/dist/core/router/middleware/types.js +1 -7
  119. package/dist/core/router/monitoring/RouterMonitoring.cjs +1 -229
  120. package/dist/core/router/monitoring/RouterMonitoring.js +1 -213
  121. package/dist/core/router/monitoring/index.cjs +1 -22
  122. package/dist/core/router/monitoring/index.js +1 -5
  123. package/dist/core/router/navigation/RouterNavigation.cjs +1 -241
  124. package/dist/core/router/navigation/RouterNavigation.js +1 -192
  125. package/dist/core/router/navigation/index.cjs +1 -22
  126. package/dist/core/router/navigation/index.js +1 -5
  127. package/dist/core/router/performance/RouteCache.cjs +1 -307
  128. package/dist/core/router/performance/RouteCache.js +1 -291
  129. package/dist/core/router/performance/RoutePreloader.cjs +1 -294
  130. package/dist/core/router/performance/RoutePreloader.js +1 -277
  131. package/dist/core/router/performance/index.cjs +1 -23
  132. package/dist/core/router/performance/index.js +1 -6
  133. package/dist/core/router/plugin/RouterPluginManager.cjs +1 -264
  134. package/dist/core/router/plugin/RouterPluginManager.js +1 -248
  135. package/dist/core/router/plugin/index.cjs +1 -23
  136. package/dist/core/router/plugin/index.js +1 -6
  137. package/dist/core/router/plugin/types.cjs +1 -41
  138. package/dist/core/router/plugin/types.js +1 -33
  139. package/dist/core/router/types.cjs +1 -6
  140. package/dist/core/router/types.js +1 -5
  141. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs +1 -131
  142. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js +1 -121
  143. package/dist/core/router/utils/adapters/react-router/transform.cjs +1 -252
  144. package/dist/core/router/utils/adapters/react-router/transform.js +1 -242
  145. package/dist/core/router/utils/transform.cjs +1 -782
  146. package/dist/core/router/utils/transform.js +1 -791
  147. package/dist/core/router/validation/RouterConfigValidator.cjs +2 -85
  148. package/dist/core/router/validation/RouterConfigValidator.js +2 -77
  149. package/dist/core/router/validation/index.cjs +1 -23
  150. package/dist/core/router/validation/index.js +1 -6
  151. package/dist/core/router/validation/schema.cjs +1 -161
  152. package/dist/core/router/validation/schema.js +1 -151
  153. package/dist/core/router/version/RouteVersionManager.cjs +1 -207
  154. package/dist/core/router/version/RouteVersionManager.js +1 -191
  155. package/dist/core/router/version/index.cjs +1 -22
  156. package/dist/core/router/version/index.js +1 -5
  157. package/dist/core/splash/SplashScreen.cjs +1 -343
  158. package/dist/core/splash/SplashScreen.js +1 -293
  159. package/dist/core/splash/index.cjs +1 -24
  160. package/dist/core/splash/index.js +1 -6
  161. package/dist/core/splash/splashScreenUtils.cjs +1 -40
  162. package/dist/core/splash/splashScreenUtils.js +1 -30
  163. package/dist/core/startup/AppInstance.cjs +1 -241
  164. package/dist/core/startup/AppInstance.js +1 -226
  165. package/dist/core/startup/environment.cjs +1 -171
  166. package/dist/core/startup/environment.js +1 -154
  167. package/dist/core/startup/index.cjs +1 -25
  168. package/dist/core/startup/index.js +1 -8
  169. package/dist/core/startup/initializeServices.cjs +1 -228
  170. package/dist/core/startup/initializeServices.js +1 -188
  171. package/dist/core/startup/performanceTracker.cjs +1 -181
  172. package/dist/core/startup/performanceTracker.js +1 -167
  173. package/dist/core/startup/renderApp.cjs +1 -316
  174. package/dist/core/startup/renderApp.js +1 -267
  175. package/dist/core/startup/startApp.cjs +1 -319
  176. package/dist/core/startup/startApp.js +1 -315
  177. package/dist/core/types.cjs +1 -6
  178. package/dist/core/types.js +1 -5
  179. package/dist/index.cjs +1 -54
  180. package/dist/index.js +1 -11
  181. package/dist/index.umd.cjs +1 -29
  182. package/dist/index.umd.js +362 -13233
  183. package/dist/kernel/constants.cjs +1 -67
  184. package/dist/kernel/constants.js +1 -43
  185. package/dist/kernel/index.cjs +1 -40
  186. package/dist/kernel/index.js +1 -4
  187. package/dist/kernel/kernel.cjs +1 -297
  188. package/dist/kernel/kernel.js +1 -273
  189. package/dist/kernel/manager/cacheManager.cjs +1 -48
  190. package/dist/kernel/manager/cacheManager.js +1 -38
  191. package/dist/kernel/manager/i18n/I18nManager.cjs +1 -93
  192. package/dist/kernel/manager/i18n/I18nManager.js +1 -83
  193. package/dist/kernel/manager/i18n/i18n.persistence.cjs +1 -62
  194. package/dist/kernel/manager/i18n/i18n.persistence.js +1 -41
  195. package/dist/kernel/manager/i18n/i18n.schema.cjs +1 -88
  196. package/dist/kernel/manager/i18n/i18n.schema.js +1 -64
  197. package/dist/kernel/manager/i18n/index.cjs +1 -13
  198. package/dist/kernel/manager/i18n/index.js +1 -3
  199. package/dist/kernel/manager/i18nManager.cjs +1 -13
  200. package/dist/kernel/manager/i18nManager.js +1 -3
  201. package/dist/kernel/manager/index.cjs +1 -30
  202. package/dist/kernel/manager/index.js +1 -6
  203. package/dist/kernel/manager/logger/LoggerManager.cjs +1 -109
  204. package/dist/kernel/manager/logger/LoggerManager.js +1 -99
  205. package/dist/kernel/manager/logger/index.cjs +1 -13
  206. package/dist/kernel/manager/logger/index.js +1 -3
  207. package/dist/kernel/manager/logger/logger.persistence.cjs +1 -64
  208. package/dist/kernel/manager/logger/logger.persistence.js +1 -43
  209. package/dist/kernel/manager/logger/logger.schema.cjs +1 -76
  210. package/dist/kernel/manager/logger/logger.schema.js +1 -55
  211. package/dist/kernel/manager/loggerManager.cjs +1 -13
  212. package/dist/kernel/manager/loggerManager.js +1 -3
  213. package/dist/kernel/manager/theme/ThemeManager.cjs +1 -86
  214. package/dist/kernel/manager/theme/ThemeManager.js +1 -76
  215. package/dist/kernel/manager/theme/index.cjs +1 -13
  216. package/dist/kernel/manager/theme/index.js +1 -3
  217. package/dist/kernel/manager/theme/theme.dom.cjs +1 -63
  218. package/dist/kernel/manager/theme/theme.dom.js +1 -45
  219. package/dist/kernel/manager/theme/theme.persistence.cjs +1 -59
  220. package/dist/kernel/manager/theme/theme.persistence.js +1 -38
  221. package/dist/kernel/manager/theme/theme.schema.cjs +1 -124
  222. package/dist/kernel/manager/theme/theme.schema.js +1 -97
  223. package/dist/kernel/manager/themeManager.cjs +1 -13
  224. package/dist/kernel/manager/themeManager.js +1 -3
  225. package/dist/kernel/types.cjs +1 -6
  226. package/dist/kernel/types.js +1 -3
  227. package/dist/library/index.cjs +1 -21
  228. package/dist/library/index.js +1 -4
  229. package/dist/library/locale/index.cjs +1 -41
  230. package/dist/library/locale/index.js +1 -12
  231. package/dist/library/locale/langs/en-us/index.cjs +1 -34
  232. package/dist/library/locale/langs/en-us/index.js +1 -24
  233. package/dist/library/locale/langs/zh-cn/index.cjs +1 -34
  234. package/dist/library/locale/langs/zh-cn/index.js +1 -24
  235. package/dist/library/locale/types.cjs +1 -6
  236. package/dist/library/locale/types.js +1 -3
  237. package/dist/library/storage/cache.cjs +1 -245
  238. package/dist/library/storage/cache.js +1 -237
  239. package/dist/library/storage/encryption.cjs +1 -149
  240. package/dist/library/storage/encryption.js +1 -141
  241. package/dist/library/storage/index.cjs +1 -126
  242. package/dist/library/storage/index.js +1 -106
  243. package/dist/state/StateManager.cjs +1 -168
  244. package/dist/state/StateManager.js +1 -160
  245. package/dist/state/adapters/AdapterFactory.cjs +1 -91
  246. package/dist/state/adapters/AdapterFactory.js +1 -85
  247. package/dist/state/adapters/DefaultAdapter.cjs +1 -77
  248. package/dist/state/adapters/DefaultAdapter.js +1 -71
  249. package/dist/state/adapters/ReduxAdapter.cjs +1 -445
  250. package/dist/state/adapters/ReduxAdapter.js +1 -439
  251. package/dist/state/adapters/ZustandAdapter.cjs +1 -71
  252. package/dist/state/adapters/ZustandAdapter.js +1 -70
  253. package/dist/state/adapters/index.cjs +1 -46
  254. package/dist/state/adapters/index.js +1 -9
  255. package/dist/state/adapters/types.cjs +1 -22
  256. package/dist/state/adapters/types.js +1 -5
  257. package/dist/state/core/DerivedStateInstance.cjs +1 -176
  258. package/dist/state/core/DerivedStateInstance.js +1 -173
  259. package/dist/state/core/StateInstance.cjs +1 -172
  260. package/dist/state/core/StateInstance.js +1 -168
  261. package/dist/state/core/StateRegistry.cjs +1 -112
  262. package/dist/state/core/StateRegistry.js +1 -106
  263. package/dist/state/core/StateScope.cjs +1 -139
  264. package/dist/state/core/StateScope.js +1 -133
  265. package/dist/state/core/index.cjs +1 -32
  266. package/dist/state/core/index.js +1 -8
  267. package/dist/state/index.cjs +1 -32
  268. package/dist/state/index.js +1 -12
  269. package/dist/state/types.cjs +1 -14
  270. package/dist/state/types.js +1 -13
  271. package/dist/state.umd.js +22 -1395
  272. package/dist/types.cjs +1 -6
  273. package/dist/types.js +1 -3
  274. package/dist/utils/analytics.cjs +1 -219
  275. package/dist/utils/analytics.js +1 -204
  276. package/dist/utils/configSecurity.cjs +3 -184
  277. package/dist/utils/configSecurity.js +3 -176
  278. package/dist/utils/csrf.cjs +1 -20
  279. package/dist/utils/csrf.js +1 -3
  280. package/dist/utils/errors/ErrorCodes.cjs +1 -27
  281. package/dist/utils/errors/ErrorCodes.js +1 -3
  282. package/dist/utils/errors.cjs +1 -113
  283. package/dist/utils/errors.js +1 -18
  284. package/dist/utils/index.cjs +1 -137
  285. package/dist/utils/index.js +1 -48
  286. package/dist/utils/logger.cjs +1 -27
  287. package/dist/utils/logger.js +1 -3
  288. package/dist/utils/logger.types.cjs +1 -13
  289. package/dist/utils/logger.types.js +1 -3
  290. package/dist/utils/monitoring.cjs +1 -20
  291. package/dist/utils/monitoring.js +1 -3
  292. package/dist/utils/performance.cjs +1 -24
  293. package/dist/utils/performance.js +1 -3
  294. package/dist/utils/resourceLoader.cjs +1 -24
  295. package/dist/utils/resourceLoader.js +1 -3
  296. package/dist/utils/runtimeSecurity.cjs +1 -13
  297. package/dist/utils/runtimeSecurity.js +1 -3
  298. package/dist/utils/security.cjs +1 -21
  299. package/dist/utils/security.js +1 -3
  300. package/dist/utils/traceId.cjs +1 -39
  301. package/dist/utils/traceId.js +1 -3
  302. package/dist/utils/validation.cjs +1 -21
  303. package/dist/utils/validation.js +1 -3
  304. package/package.json +9 -6
  305. package/dist/analytics/index.cjs.map +0 -1
  306. package/dist/analytics/index.js.map +0 -1
  307. package/dist/analytics.umd.js.map +0 -1
  308. package/dist/components/LocaleSwitch.cjs.map +0 -1
  309. package/dist/components/LocaleSwitch.js.map +0 -1
  310. package/dist/components/ThemeSwitch.cjs.map +0 -1
  311. package/dist/components/ThemeSwitch.js.map +0 -1
  312. package/dist/components/index.cjs.map +0 -1
  313. package/dist/components/index.js.map +0 -1
  314. package/dist/components/persistence.cjs.map +0 -1
  315. package/dist/components/persistence.js.map +0 -1
  316. package/dist/core/Test.cjs.map +0 -1
  317. package/dist/core/Test.js.map +0 -1
  318. package/dist/core/app/AppContext.cjs.map +0 -1
  319. package/dist/core/app/AppContext.js.map +0 -1
  320. package/dist/core/app/AppContext.types.cjs.map +0 -1
  321. package/dist/core/app/AppContext.types.js.map +0 -1
  322. package/dist/core/app/BasicLayout.cjs.map +0 -1
  323. package/dist/core/app/BasicLayout.js.map +0 -1
  324. package/dist/core/app/DefaultApp.cjs.map +0 -1
  325. package/dist/core/app/DefaultApp.js.map +0 -1
  326. package/dist/core/app/index.cjs.map +0 -1
  327. package/dist/core/app/index.js.map +0 -1
  328. package/dist/core/config/AppConfig.cjs.map +0 -1
  329. package/dist/core/config/AppConfig.js.map +0 -1
  330. package/dist/core/config/ConfigLoader.cjs.map +0 -1
  331. package/dist/core/config/ConfigLoader.js.map +0 -1
  332. package/dist/core/config/ConfigValidator.cjs.map +0 -1
  333. package/dist/core/config/ConfigValidator.js.map +0 -1
  334. package/dist/core/config/index.cjs.map +0 -1
  335. package/dist/core/config/index.js.map +0 -1
  336. package/dist/core/dev/DevTools.cjs.map +0 -1
  337. package/dist/core/dev/DevTools.js.map +0 -1
  338. package/dist/core/error/ErrorBoundary.cjs.map +0 -1
  339. package/dist/core/error/ErrorBoundary.js.map +0 -1
  340. package/dist/core/error/ErrorHandler.cjs.map +0 -1
  341. package/dist/core/error/ErrorHandler.js.map +0 -1
  342. package/dist/core/error/index.cjs.map +0 -1
  343. package/dist/core/error/index.js.map +0 -1
  344. package/dist/core/event/AppEventBus.cjs.map +0 -1
  345. package/dist/core/event/AppEventBus.js.map +0 -1
  346. package/dist/core/event/frameworkEvents.cjs.map +0 -1
  347. package/dist/core/event/frameworkEvents.js.map +0 -1
  348. package/dist/core/event/hooks.cjs.map +0 -1
  349. package/dist/core/event/hooks.js.map +0 -1
  350. package/dist/core/event/index.cjs.map +0 -1
  351. package/dist/core/event/index.js.map +0 -1
  352. package/dist/core/event/types.cjs.map +0 -1
  353. package/dist/core/event/types.js.map +0 -1
  354. package/dist/core/event/useEventBus.cjs.map +0 -1
  355. package/dist/core/event/useEventBus.js.map +0 -1
  356. package/dist/core/index.cjs.map +0 -1
  357. package/dist/core/index.js.map +0 -1
  358. package/dist/core/initialization/InitializationErrorThrower.cjs.map +0 -1
  359. package/dist/core/initialization/InitializationErrorThrower.js.map +0 -1
  360. package/dist/core/initialization/index.cjs.map +0 -1
  361. package/dist/core/initialization/index.js.map +0 -1
  362. package/dist/core/initialization/initialization.cjs.map +0 -1
  363. package/dist/core/initialization/initialization.js.map +0 -1
  364. package/dist/core/initialization/initializationErrorState.cjs.map +0 -1
  365. package/dist/core/initialization/initializationErrorState.js.map +0 -1
  366. package/dist/core/kernel/defaultAdapters.cjs.map +0 -1
  367. package/dist/core/kernel/defaultAdapters.js.map +0 -1
  368. package/dist/core/kernel/errors.cjs.map +0 -1
  369. package/dist/core/kernel/errors.js.map +0 -1
  370. package/dist/core/kernel/index.cjs.map +0 -1
  371. package/dist/core/kernel/index.js.map +0 -1
  372. package/dist/core/kernel/startKernel.cjs.map +0 -1
  373. package/dist/core/kernel/startKernel.js.map +0 -1
  374. package/dist/core/kernel/types.cjs.map +0 -1
  375. package/dist/core/kernel/types.js.map +0 -1
  376. package/dist/core/middleware.cjs.map +0 -1
  377. package/dist/core/middleware.js.map +0 -1
  378. package/dist/core/plugin/PluginEventBus.cjs.map +0 -1
  379. package/dist/core/plugin/PluginEventBus.js.map +0 -1
  380. package/dist/core/plugin/PluginSandbox.cjs.map +0 -1
  381. package/dist/core/plugin/PluginSandbox.js.map +0 -1
  382. package/dist/core/plugin.cjs.map +0 -1
  383. package/dist/core/plugin.js.map +0 -1
  384. package/dist/core/router/RouterManager.cjs.map +0 -1
  385. package/dist/core/router/RouterManager.js.map +0 -1
  386. package/dist/core/router/adapter/AdapterManager.cjs.map +0 -1
  387. package/dist/core/router/adapter/AdapterManager.js.map +0 -1
  388. package/dist/core/router/adapter/index.cjs.map +0 -1
  389. package/dist/core/router/adapter/index.js.map +0 -1
  390. package/dist/core/router/adapter/react-router/ReactRouterAdapter.cjs.map +0 -1
  391. package/dist/core/router/adapter/react-router/ReactRouterAdapter.js.map +0 -1
  392. package/dist/core/router/adapter/react-router/index.cjs.map +0 -1
  393. package/dist/core/router/adapter/react-router/index.js.map +0 -1
  394. package/dist/core/router/adapter/types.cjs.map +0 -1
  395. package/dist/core/router/adapter/types.js.map +0 -1
  396. package/dist/core/router/dev/RouterDevTools.cjs.map +0 -1
  397. package/dist/core/router/dev/RouterDevTools.js.map +0 -1
  398. package/dist/core/router/dev/index.cjs.map +0 -1
  399. package/dist/core/router/dev/index.js.map +0 -1
  400. package/dist/core/router/dynamic/DynamicRouteManager.cjs.map +0 -1
  401. package/dist/core/router/dynamic/DynamicRouteManager.js.map +0 -1
  402. package/dist/core/router/dynamic/index.cjs.map +0 -1
  403. package/dist/core/router/dynamic/index.js.map +0 -1
  404. package/dist/core/router/errors/RouterError.cjs.map +0 -1
  405. package/dist/core/router/errors/RouterError.js.map +0 -1
  406. package/dist/core/router/errors/index.cjs.map +0 -1
  407. package/dist/core/router/errors/index.js.map +0 -1
  408. package/dist/core/router/index.cjs.map +0 -1
  409. package/dist/core/router/index.js.map +0 -1
  410. package/dist/core/router/lifecycle/RouterLifecycleManager.cjs.map +0 -1
  411. package/dist/core/router/lifecycle/RouterLifecycleManager.js.map +0 -1
  412. package/dist/core/router/lifecycle/index.cjs.map +0 -1
  413. package/dist/core/router/lifecycle/index.js.map +0 -1
  414. package/dist/core/router/middleware/RouterMiddlewareManager.cjs.map +0 -1
  415. package/dist/core/router/middleware/RouterMiddlewareManager.js.map +0 -1
  416. package/dist/core/router/middleware/auth.cjs.map +0 -1
  417. package/dist/core/router/middleware/auth.js.map +0 -1
  418. package/dist/core/router/middleware/index.cjs.map +0 -1
  419. package/dist/core/router/middleware/index.js.map +0 -1
  420. package/dist/core/router/middleware/types.cjs.map +0 -1
  421. package/dist/core/router/middleware/types.js.map +0 -1
  422. package/dist/core/router/monitoring/RouterMonitoring.cjs.map +0 -1
  423. package/dist/core/router/monitoring/RouterMonitoring.js.map +0 -1
  424. package/dist/core/router/monitoring/index.cjs.map +0 -1
  425. package/dist/core/router/monitoring/index.js.map +0 -1
  426. package/dist/core/router/navigation/RouterNavigation.cjs.map +0 -1
  427. package/dist/core/router/navigation/RouterNavigation.js.map +0 -1
  428. package/dist/core/router/navigation/index.cjs.map +0 -1
  429. package/dist/core/router/navigation/index.js.map +0 -1
  430. package/dist/core/router/performance/RouteCache.cjs.map +0 -1
  431. package/dist/core/router/performance/RouteCache.js.map +0 -1
  432. package/dist/core/router/performance/RoutePreloader.cjs.map +0 -1
  433. package/dist/core/router/performance/RoutePreloader.js.map +0 -1
  434. package/dist/core/router/performance/index.cjs.map +0 -1
  435. package/dist/core/router/performance/index.js.map +0 -1
  436. package/dist/core/router/plugin/RouterPluginManager.cjs.map +0 -1
  437. package/dist/core/router/plugin/RouterPluginManager.js.map +0 -1
  438. package/dist/core/router/plugin/index.cjs.map +0 -1
  439. package/dist/core/router/plugin/index.js.map +0 -1
  440. package/dist/core/router/plugin/types.cjs.map +0 -1
  441. package/dist/core/router/plugin/types.js.map +0 -1
  442. package/dist/core/router/types.cjs.map +0 -1
  443. package/dist/core/router/types.js.map +0 -1
  444. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs.map +0 -1
  445. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js.map +0 -1
  446. package/dist/core/router/utils/adapters/react-router/transform.cjs.map +0 -1
  447. package/dist/core/router/utils/adapters/react-router/transform.js.map +0 -1
  448. package/dist/core/router/utils/transform.cjs.map +0 -1
  449. package/dist/core/router/utils/transform.js.map +0 -1
  450. package/dist/core/router/validation/RouterConfigValidator.cjs.map +0 -1
  451. package/dist/core/router/validation/RouterConfigValidator.js.map +0 -1
  452. package/dist/core/router/validation/index.cjs.map +0 -1
  453. package/dist/core/router/validation/index.js.map +0 -1
  454. package/dist/core/router/validation/schema.cjs.map +0 -1
  455. package/dist/core/router/validation/schema.js.map +0 -1
  456. package/dist/core/router/version/RouteVersionManager.cjs.map +0 -1
  457. package/dist/core/router/version/RouteVersionManager.js.map +0 -1
  458. package/dist/core/router/version/index.cjs.map +0 -1
  459. package/dist/core/router/version/index.js.map +0 -1
  460. package/dist/core/splash/SplashScreen.cjs.map +0 -1
  461. package/dist/core/splash/SplashScreen.js.map +0 -1
  462. package/dist/core/splash/index.cjs.map +0 -1
  463. package/dist/core/splash/index.js.map +0 -1
  464. package/dist/core/splash/splashScreenUtils.cjs.map +0 -1
  465. package/dist/core/splash/splashScreenUtils.js.map +0 -1
  466. package/dist/core/startup/AppInstance.cjs.map +0 -1
  467. package/dist/core/startup/AppInstance.js.map +0 -1
  468. package/dist/core/startup/environment.cjs.map +0 -1
  469. package/dist/core/startup/environment.js.map +0 -1
  470. package/dist/core/startup/index.cjs.map +0 -1
  471. package/dist/core/startup/index.js.map +0 -1
  472. package/dist/core/startup/initializeServices.cjs.map +0 -1
  473. package/dist/core/startup/initializeServices.js.map +0 -1
  474. package/dist/core/startup/performanceTracker.cjs.map +0 -1
  475. package/dist/core/startup/performanceTracker.js.map +0 -1
  476. package/dist/core/startup/renderApp.cjs.map +0 -1
  477. package/dist/core/startup/renderApp.js.map +0 -1
  478. package/dist/core/startup/startApp.cjs.map +0 -1
  479. package/dist/core/startup/startApp.js.map +0 -1
  480. package/dist/core/types.cjs.map +0 -1
  481. package/dist/core/types.js.map +0 -1
  482. package/dist/index.cjs.map +0 -1
  483. package/dist/index.js.map +0 -1
  484. package/dist/index.umd.cjs.map +0 -1
  485. package/dist/index.umd.js.map +0 -1
  486. package/dist/kernel/constants.cjs.map +0 -1
  487. package/dist/kernel/constants.js.map +0 -1
  488. package/dist/kernel/index.cjs.map +0 -1
  489. package/dist/kernel/index.js.map +0 -1
  490. package/dist/kernel/kernel.cjs.map +0 -1
  491. package/dist/kernel/kernel.js.map +0 -1
  492. package/dist/kernel/manager/cacheManager.cjs.map +0 -1
  493. package/dist/kernel/manager/cacheManager.js.map +0 -1
  494. package/dist/kernel/manager/i18n/I18nManager.cjs.map +0 -1
  495. package/dist/kernel/manager/i18n/I18nManager.js.map +0 -1
  496. package/dist/kernel/manager/i18n/i18n.persistence.cjs.map +0 -1
  497. package/dist/kernel/manager/i18n/i18n.persistence.js.map +0 -1
  498. package/dist/kernel/manager/i18n/i18n.schema.cjs.map +0 -1
  499. package/dist/kernel/manager/i18n/i18n.schema.js.map +0 -1
  500. package/dist/kernel/manager/i18n/index.cjs.map +0 -1
  501. package/dist/kernel/manager/i18n/index.js.map +0 -1
  502. package/dist/kernel/manager/i18nManager.cjs.map +0 -1
  503. package/dist/kernel/manager/i18nManager.js.map +0 -1
  504. package/dist/kernel/manager/index.cjs.map +0 -1
  505. package/dist/kernel/manager/index.js.map +0 -1
  506. package/dist/kernel/manager/logger/LoggerManager.cjs.map +0 -1
  507. package/dist/kernel/manager/logger/LoggerManager.js.map +0 -1
  508. package/dist/kernel/manager/logger/index.cjs.map +0 -1
  509. package/dist/kernel/manager/logger/index.js.map +0 -1
  510. package/dist/kernel/manager/logger/logger.persistence.cjs.map +0 -1
  511. package/dist/kernel/manager/logger/logger.persistence.js.map +0 -1
  512. package/dist/kernel/manager/logger/logger.schema.cjs.map +0 -1
  513. package/dist/kernel/manager/logger/logger.schema.js.map +0 -1
  514. package/dist/kernel/manager/loggerManager.cjs.map +0 -1
  515. package/dist/kernel/manager/loggerManager.js.map +0 -1
  516. package/dist/kernel/manager/persistence.cjs +0 -78
  517. package/dist/kernel/manager/persistence.cjs.map +0 -1
  518. package/dist/kernel/manager/persistence.d.ts +0 -3
  519. package/dist/kernel/manager/persistence.js +0 -60
  520. package/dist/kernel/manager/persistence.js.map +0 -1
  521. package/dist/kernel/manager/theme/ThemeManager.cjs.map +0 -1
  522. package/dist/kernel/manager/theme/ThemeManager.js.map +0 -1
  523. package/dist/kernel/manager/theme/index.cjs.map +0 -1
  524. package/dist/kernel/manager/theme/index.js.map +0 -1
  525. package/dist/kernel/manager/theme/theme.dom.cjs.map +0 -1
  526. package/dist/kernel/manager/theme/theme.dom.js.map +0 -1
  527. package/dist/kernel/manager/theme/theme.persistence.cjs.map +0 -1
  528. package/dist/kernel/manager/theme/theme.persistence.js.map +0 -1
  529. package/dist/kernel/manager/theme/theme.schema.cjs.map +0 -1
  530. package/dist/kernel/manager/theme/theme.schema.js.map +0 -1
  531. package/dist/kernel/manager/themeManager.cjs.map +0 -1
  532. package/dist/kernel/manager/themeManager.js.map +0 -1
  533. package/dist/kernel/types.cjs.map +0 -1
  534. package/dist/kernel/types.js.map +0 -1
  535. package/dist/library/index.cjs.map +0 -1
  536. package/dist/library/index.js.map +0 -1
  537. package/dist/library/locale/index.cjs.map +0 -1
  538. package/dist/library/locale/index.js.map +0 -1
  539. package/dist/library/locale/langs/en-us/index.cjs.map +0 -1
  540. package/dist/library/locale/langs/en-us/index.js.map +0 -1
  541. package/dist/library/locale/langs/zh-cn/index.cjs.map +0 -1
  542. package/dist/library/locale/langs/zh-cn/index.js.map +0 -1
  543. package/dist/library/locale/types.cjs.map +0 -1
  544. package/dist/library/locale/types.js.map +0 -1
  545. package/dist/library/storage/cache.cjs.map +0 -1
  546. package/dist/library/storage/cache.js.map +0 -1
  547. package/dist/library/storage/encryption.cjs.map +0 -1
  548. package/dist/library/storage/encryption.js.map +0 -1
  549. package/dist/library/storage/index.cjs.map +0 -1
  550. package/dist/library/storage/index.js.map +0 -1
  551. package/dist/request/adapter/RequestAdapter.d.ts +0 -85
  552. package/dist/request/adapter/RequestAdapter.js +0 -70
  553. package/dist/request/adapter/RequestAdapter.js.map +0 -1
  554. package/dist/request/adapter/axiosAdapter.d.ts +0 -10
  555. package/dist/request/adapter/axiosAdapter.js +0 -115
  556. package/dist/request/adapter/axiosAdapter.js.map +0 -1
  557. package/dist/request/adapter/fetchAdapter.d.ts +0 -10
  558. package/dist/request/adapter/fetchAdapter.js +0 -126
  559. package/dist/request/adapter/fetchAdapter.js.map +0 -1
  560. package/dist/request/adapter/index.d.ts +0 -9
  561. package/dist/request/adapter/index.js +0 -14
  562. package/dist/request/adapter/index.js.map +0 -1
  563. package/dist/request/adapter/kyAdapter.d.ts +0 -10
  564. package/dist/request/adapter/kyAdapter.js +0 -142
  565. package/dist/request/adapter/kyAdapter.js.map +0 -1
  566. package/dist/request/adapter/undiciAdapter.d.ts +0 -10
  567. package/dist/request/adapter/undiciAdapter.js +0 -164
  568. package/dist/request/adapter/undiciAdapter.js.map +0 -1
  569. package/dist/request/adapter.d.ts +0 -1
  570. package/dist/request/core/RequestClient.d.ts +0 -134
  571. package/dist/request/core/RequestClient.js +0 -509
  572. package/dist/request/core/RequestClient.js.map +0 -1
  573. package/dist/request/core/index.d.ts +0 -5
  574. package/dist/request/core/index.js +0 -5
  575. package/dist/request/core/index.js.map +0 -1
  576. package/dist/request/core.d.ts +0 -1
  577. package/dist/request/index.d.ts +0 -1
  578. package/dist/request/index.js +0 -50
  579. package/dist/request/index.js.map +0 -1
  580. package/dist/request/plugin/RequestPlugin.d.ts +0 -170
  581. package/dist/request/plugin/RequestPlugin.js +0 -203
  582. package/dist/request/plugin/RequestPlugin.js.map +0 -1
  583. package/dist/request/plugin/cache.d.ts +0 -33
  584. package/dist/request/plugin/cache.js +0 -264
  585. package/dist/request/plugin/cache.js.map +0 -1
  586. package/dist/request/plugin/csrfPlugin.d.ts +0 -21
  587. package/dist/request/plugin/csrfPlugin.js +0 -44
  588. package/dist/request/plugin/csrfPlugin.js.map +0 -1
  589. package/dist/request/plugin/index.d.ts +0 -11
  590. package/dist/request/plugin/index.js +0 -12
  591. package/dist/request/plugin/index.js.map +0 -1
  592. package/dist/request/plugin/monitoring.d.ts +0 -112
  593. package/dist/request/plugin/monitoring.js +0 -205
  594. package/dist/request/plugin/monitoring.js.map +0 -1
  595. package/dist/request/plugin/queue.d.ts +0 -91
  596. package/dist/request/plugin/queue.js +0 -156
  597. package/dist/request/plugin/queue.js.map +0 -1
  598. package/dist/request/plugin/retry.d.ts +0 -34
  599. package/dist/request/plugin/retry.js +0 -93
  600. package/dist/request/plugin/retry.js.map +0 -1
  601. package/dist/request/plugin/validation.d.ts +0 -26
  602. package/dist/request/plugin/validation.js +0 -116
  603. package/dist/request/plugin/validation.js.map +0 -1
  604. package/dist/request/plugin.d.ts +0 -1
  605. package/dist/request/runtime/RequestContext.d.ts +0 -50
  606. package/dist/request/runtime/RequestContext.js +0 -86
  607. package/dist/request/runtime/RequestContext.js.map +0 -1
  608. package/dist/request/runtime/index.d.ts +0 -4
  609. package/dist/request/runtime/index.js +0 -5
  610. package/dist/request/runtime/index.js.map +0 -1
  611. package/dist/request/runtime.d.ts +0 -1
  612. package/dist/request/types.d.ts +0 -1
  613. package/dist/request/types.js +0 -97
  614. package/dist/request/types.js.map +0 -1
  615. package/dist/request/utils/RequestQueueManager.d.ts +0 -74
  616. package/dist/request/utils/RequestQueueManager.js +0 -160
  617. package/dist/request/utils/RequestQueueManager.js.map +0 -1
  618. package/dist/request/utils/dependencyCheck.d.ts +0 -63
  619. package/dist/request/utils/dependencyCheck.js +0 -192
  620. package/dist/request/utils/dependencyCheck.js.map +0 -1
  621. package/dist/request/utils/index.d.ts +0 -5
  622. package/dist/request/utils/index.js +0 -6
  623. package/dist/request/utils/index.js.map +0 -1
  624. package/dist/request/utils.d.ts +0 -1
  625. package/dist/state/StateManager.cjs.map +0 -1
  626. package/dist/state/StateManager.js.map +0 -1
  627. package/dist/state/adapters/AdapterFactory.cjs.map +0 -1
  628. package/dist/state/adapters/AdapterFactory.js.map +0 -1
  629. package/dist/state/adapters/DefaultAdapter.cjs.map +0 -1
  630. package/dist/state/adapters/DefaultAdapter.js.map +0 -1
  631. package/dist/state/adapters/ReduxAdapter.cjs.map +0 -1
  632. package/dist/state/adapters/ReduxAdapter.js.map +0 -1
  633. package/dist/state/adapters/ZustandAdapter.cjs.map +0 -1
  634. package/dist/state/adapters/ZustandAdapter.js.map +0 -1
  635. package/dist/state/adapters/index.cjs.map +0 -1
  636. package/dist/state/adapters/index.js.map +0 -1
  637. package/dist/state/adapters/types.cjs.map +0 -1
  638. package/dist/state/adapters/types.js.map +0 -1
  639. package/dist/state/core/DerivedStateInstance.cjs.map +0 -1
  640. package/dist/state/core/DerivedStateInstance.js.map +0 -1
  641. package/dist/state/core/StateInstance.cjs.map +0 -1
  642. package/dist/state/core/StateInstance.js.map +0 -1
  643. package/dist/state/core/StateRegistry.cjs.map +0 -1
  644. package/dist/state/core/StateRegistry.js.map +0 -1
  645. package/dist/state/core/StateScope.cjs.map +0 -1
  646. package/dist/state/core/StateScope.js.map +0 -1
  647. package/dist/state/core/index.cjs.map +0 -1
  648. package/dist/state/core/index.js.map +0 -1
  649. package/dist/state/index.cjs.map +0 -1
  650. package/dist/state/index.js.map +0 -1
  651. package/dist/state/types.cjs.map +0 -1
  652. package/dist/state/types.js.map +0 -1
  653. package/dist/state.umd.js.map +0 -1
  654. package/dist/types.cjs.map +0 -1
  655. package/dist/types.js.map +0 -1
  656. package/dist/utils/analytics.cjs.map +0 -1
  657. package/dist/utils/analytics.js.map +0 -1
  658. package/dist/utils/configSecurity.cjs.map +0 -1
  659. package/dist/utils/configSecurity.js.map +0 -1
  660. package/dist/utils/csrf.cjs.map +0 -1
  661. package/dist/utils/csrf.js.map +0 -1
  662. package/dist/utils/errors/ErrorCodes.cjs.map +0 -1
  663. package/dist/utils/errors/ErrorCodes.js.map +0 -1
  664. package/dist/utils/errors.cjs.map +0 -1
  665. package/dist/utils/errors.js.map +0 -1
  666. package/dist/utils/index.cjs.map +0 -1
  667. package/dist/utils/index.js.map +0 -1
  668. package/dist/utils/logger.cjs.map +0 -1
  669. package/dist/utils/logger.js.map +0 -1
  670. package/dist/utils/logger.types.cjs.map +0 -1
  671. package/dist/utils/logger.types.js.map +0 -1
  672. package/dist/utils/monitoring.cjs.map +0 -1
  673. package/dist/utils/monitoring.js.map +0 -1
  674. package/dist/utils/performance.cjs.map +0 -1
  675. package/dist/utils/performance.js.map +0 -1
  676. package/dist/utils/resourceLoader.cjs.map +0 -1
  677. package/dist/utils/resourceLoader.js.map +0 -1
  678. package/dist/utils/runtimeSecurity.cjs.map +0 -1
  679. package/dist/utils/runtimeSecurity.js.map +0 -1
  680. package/dist/utils/security.cjs.map +0 -1
  681. package/dist/utils/security.js.map +0 -1
  682. package/dist/utils/traceId.cjs.map +0 -1
  683. package/dist/utils/traceId.js.map +0 -1
  684. package/dist/utils/validation.cjs.map +0 -1
  685. package/dist/utils/validation.js.map +0 -1
@@ -1,325 +1 @@
1
- /**
2
- * 配置文件加载模块
3
- * 支持从JSON/YAML文件加载配置
4
- * 优化:支持环境变量配置、配置热更新
5
- */ "use strict";
6
- Object.defineProperty(exports, "__esModule", {
7
- value: true
8
- });
9
- function _export(target, all) {
10
- for(var name in all)Object.defineProperty(target, name, {
11
- enumerable: true,
12
- get: Object.getOwnPropertyDescriptor(all, name).get
13
- });
14
- }
15
- _export(exports, {
16
- get ConfigFileFormat () {
17
- return ConfigFileFormat;
18
- },
19
- get ConfigLoader () {
20
- return ConfigLoader;
21
- }
22
- });
23
- const _logger = require("@vlian/logger");
24
- function _define_property(obj, key, value) {
25
- if (key in obj) {
26
- Object.defineProperty(obj, key, {
27
- value: value,
28
- enumerable: true,
29
- configurable: true,
30
- writable: true
31
- });
32
- } else {
33
- obj[key] = value;
34
- }
35
- return obj;
36
- }
37
- var ConfigFileFormat = /*#__PURE__*/ function(ConfigFileFormat) {
38
- ConfigFileFormat["JSON"] = "json";
39
- ConfigFileFormat["YAML"] = "yaml";
40
- return ConfigFileFormat;
41
- }({});
42
- /**
43
- * 配置变更通知管理器
44
- */ let ConfigChangeNotifier = class ConfigChangeNotifier {
45
- /**
46
- * 添加配置变更监听器
47
- */ addListener(listener) {
48
- this.listeners.add(listener);
49
- // 返回取消监听的函数
50
- return ()=>{
51
- this.listeners.delete(listener);
52
- };
53
- }
54
- /**
55
- * 移除配置变更监听器
56
- */ removeListener(listener) {
57
- this.listeners.delete(listener);
58
- }
59
- /**
60
- * 通知配置变更
61
- */ notify(newConfig, oldConfig) {
62
- this.listeners.forEach((listener)=>{
63
- try {
64
- listener(newConfig, oldConfig);
65
- } catch (error) {
66
- _logger.logger.warn('配置变更监听器执行失败:', error);
67
- }
68
- });
69
- }
70
- /**
71
- * 清除所有监听器
72
- */ clear() {
73
- this.listeners.clear();
74
- }
75
- constructor(){
76
- _define_property(this, "listeners", new Set());
77
- }
78
- };
79
- /**
80
- * 全局配置变更通知器实例
81
- */ const configChangeNotifier = new ConfigChangeNotifier();
82
- let ConfigLoader = class ConfigLoader {
83
- /**
84
- * 从JSON文件加载配置
85
- *
86
- * @param path - 文件路径
87
- * @returns 配置对象
88
- */ static async loadFromJSON(path) {
89
- try {
90
- // 在浏览器环境中,需要通过网络请求加载
91
- if (typeof window !== 'undefined') {
92
- const response = await fetch(path);
93
- if (!response.ok) {
94
- throw new Error(`无法加载配置文件: ${path} (${response.status})`);
95
- }
96
- return await response.json();
97
- }
98
- // 在Node.js环境中,使用fs模块
99
- if (typeof require !== 'undefined') {
100
- const fs = require('fs');
101
- const content = fs.readFileSync(path, 'utf-8');
102
- return JSON.parse(content);
103
- }
104
- throw new Error('不支持的环境:无法加载配置文件');
105
- } catch (error) {
106
- _logger.logger.error(`加载JSON配置文件失败: ${path}`, error);
107
- throw error;
108
- }
109
- }
110
- /**
111
- * 从YAML文件加载配置
112
- *
113
- * @param path - 文件路径
114
- * @returns 配置对象
115
- */ static async loadFromYAML(path) {
116
- try {
117
- // 在浏览器环境中,需要通过网络请求加载
118
- if (typeof window !== 'undefined') {
119
- const response = await fetch(path);
120
- if (!response.ok) {
121
- throw new Error(`无法加载配置文件: ${path} (${response.status})`);
122
- }
123
- const text = await response.text();
124
- // 需要YAML解析库,这里假设有yaml库
125
- // 如果没有,可以提示用户安装
126
- if (typeof window.YAML !== 'undefined') {
127
- return window.YAML.parse(text);
128
- }
129
- // 降级:尝试作为JSON解析(如果YAML格式简单)
130
- try {
131
- return JSON.parse(text);
132
- } catch {
133
- throw new Error('需要YAML解析库,请安装 yaml 包');
134
- }
135
- }
136
- // 在Node.js环境中,使用fs模块和yaml库
137
- if (typeof require !== 'undefined') {
138
- const fs = require('fs');
139
- const yaml = require('yaml');
140
- const content = fs.readFileSync(path, 'utf-8');
141
- return yaml.parse(content);
142
- }
143
- throw new Error('不支持的环境:无法加载配置文件');
144
- } catch (error) {
145
- _logger.logger.error(`加载YAML配置文件失败: ${path}`, error);
146
- throw error;
147
- }
148
- }
149
- /**
150
- * 从文件加载配置
151
- *
152
- * @param options - 加载选项
153
- * @returns 配置对象
154
- */ static async loadFromFile(options) {
155
- const { path, format = "json", required = false, defaultConfig = {} } = options;
156
- if (!path) {
157
- if (required) {
158
- throw new Error('配置文件路径未指定');
159
- }
160
- return defaultConfig;
161
- }
162
- try {
163
- let config;
164
- switch(format){
165
- case "json":
166
- config = await this.loadFromJSON(path);
167
- break;
168
- case "yaml":
169
- config = await this.loadFromYAML(path);
170
- break;
171
- default:
172
- throw new Error(`不支持的配置文件格式: ${format}`);
173
- }
174
- _logger.logger.info(`成功加载配置文件: ${path}`);
175
- return config;
176
- } catch (error) {
177
- if (required) {
178
- throw error;
179
- }
180
- _logger.logger.warn(`配置文件加载失败,使用默认配置: ${path}`, error);
181
- return defaultConfig;
182
- }
183
- }
184
- /**
185
- * 合并配置(深度合并)
186
- *
187
- * @param base - 基础配置
188
- * @param override - 覆盖配置
189
- * @returns 合并后的配置
190
- */ static mergeConfig(base, override) {
191
- const merged = {
192
- ...base
193
- };
194
- for(const key in override){
195
- if (!Object.prototype.hasOwnProperty.call(override, key)) {
196
- continue;
197
- }
198
- const baseValue = merged[key];
199
- const overrideValue = override[key];
200
- if (baseValue && overrideValue && typeof baseValue === 'object' && typeof overrideValue === 'object' && !Array.isArray(baseValue) && !Array.isArray(overrideValue)) {
201
- // 深度合并对象
202
- merged[key] = this.mergeConfig(baseValue, overrideValue);
203
- } else {
204
- // 直接覆盖
205
- merged[key] = overrideValue;
206
- }
207
- }
208
- return merged;
209
- }
210
- /**
211
- * 从多个源加载并合并配置
212
- *
213
- * @param sources - 配置源列表(按优先级从低到高)
214
- * @returns 合并后的配置
215
- */ static async loadFromMultipleSources(sources) {
216
- let merged = {};
217
- for (const source of sources){
218
- if ('path' in source && 'format' in source) {
219
- // 配置文件
220
- const fileConfig = await this.loadFromFile(source);
221
- merged = this.mergeConfig(merged, fileConfig);
222
- } else if (!('path' in source) && !('format' in source)) {
223
- // 配置对象
224
- merged = this.mergeConfig(merged, source);
225
- }
226
- }
227
- return merged;
228
- }
229
- /**
230
- * 从环境变量加载配置
231
- *
232
- * 支持以下环境变量格式:
233
- * - FRAMEWORK_LOGGER_LEVEL=DEBUG
234
- * - FRAMEWORK_SHOW_SPLASH_SCREEN=always
235
- * - FRAMEWORK_MIN_SPLASH_SCREEN_TIME=1000
236
- *
237
- * @param prefix - 环境变量前缀,默认为 'FRAMEWORK_'
238
- * @returns 配置对象
239
- */ static loadFromEnv(prefix = 'FRAMEWORK_') {
240
- const config = {};
241
- if (typeof process === 'undefined' || !process.env) {
242
- return config;
243
- }
244
- // 遍历所有环境变量
245
- for (const [key, value] of Object.entries(process.env)){
246
- if (!key.startsWith(prefix)) {
247
- continue;
248
- }
249
- // 移除前缀并转换为驼峰命名
250
- const configKey = key.slice(prefix.length).toLowerCase().split('_').map((part, index)=>index === 0 ? part : part.charAt(0).toUpperCase() + part.slice(1)).join('');
251
- // 尝试解析值
252
- let parsedValue = value;
253
- if (value === 'true' || value === 'false') {
254
- parsedValue = value === 'true';
255
- } else if (!isNaN(Number(value))) {
256
- parsedValue = Number(value);
257
- } else if (value?.startsWith('{') || value?.startsWith('[')) {
258
- try {
259
- parsedValue = JSON.parse(value);
260
- } catch {
261
- // 解析失败,使用原始值
262
- }
263
- }
264
- // 设置配置值
265
- config[configKey] = parsedValue;
266
- }
267
- _logger.logger.debug('从环境变量加载配置:', config);
268
- return config;
269
- }
270
- /**
271
- * 从多个源加载配置(包括环境变量)
272
- *
273
- * 优化:明确优先级,从低到高:
274
- * 1. 默认配置
275
- * 2. 配置文件
276
- * 3. 环境变量
277
- * 4. 代码配置(通过 sources 参数传入)
278
- *
279
- * @param sources - 配置源列表(代码配置,优先级最高)
280
- * @param defaultConfig - 默认配置(优先级最低)
281
- * @param includeEnv - 是否包含环境变量,默认为 true
282
- * @param envPrefix - 环境变量前缀,默认为 'FRAMEWORK_'
283
- * @returns 合并后的配置
284
- */ static async loadFromAllSources(sources = [], defaultConfig = {}, includeEnv = true, envPrefix = 'FRAMEWORK_') {
285
- // 保存旧配置用于变更通知
286
- const oldConfig = {
287
- ...defaultConfig
288
- };
289
- // 1. 从默认配置开始
290
- let merged = {
291
- ...defaultConfig
292
- };
293
- // 2. 加载配置文件(优先级高于默认配置)
294
- const fileConfigs = await this.loadFromMultipleSources(sources.filter((source)=>typeof source === 'object' && 'path' in source));
295
- merged = this.mergeConfig(merged, fileConfigs);
296
- // 3. 加载环境变量(优先级高于配置文件)
297
- if (includeEnv) {
298
- const envConfig = this.loadFromEnv(envPrefix);
299
- merged = this.mergeConfig(merged, envConfig);
300
- }
301
- // 4. 合并代码配置(优先级最高)
302
- const codeConfigs = sources.filter((source)=>typeof source === 'object' && !('path' in source));
303
- for (const codeConfig of codeConfigs){
304
- merged = this.mergeConfig(merged, codeConfig);
305
- }
306
- // 通知配置变更
307
- configChangeNotifier.notify(merged, oldConfig);
308
- return merged;
309
- }
310
- /**
311
- * 添加配置变更监听器
312
- *
313
- * @param listener - 配置变更监听器
314
- * @returns 取消监听的函数
315
- */ static onConfigChange(listener) {
316
- return configChangeNotifier.addListener(listener);
317
- }
318
- /**
319
- * 移除配置变更监听器
320
- */ static removeConfigChangeListener(listener) {
321
- configChangeNotifier.removeListener(listener);
322
- }
323
- };
324
-
325
- //# sourceMappingURL=ConfigLoader.js.map
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get ConfigFileFormat(){return ConfigFileFormat},get ConfigLoader(){return ConfigLoader}});const _logger=require("@vlian/logger");function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}var ConfigFileFormat=/*#__PURE__*/function(ConfigFileFormat){ConfigFileFormat["JSON"]="json";ConfigFileFormat["YAML"]="yaml";return ConfigFileFormat}({});let ConfigChangeNotifier=class ConfigChangeNotifier{addListener(listener){this.listeners.add(listener);return()=>{this.listeners.delete(listener)}}removeListener(listener){this.listeners.delete(listener)}notify(newConfig,oldConfig){this.listeners.forEach(listener=>{try{listener(newConfig,oldConfig)}catch(error){_logger.logger.warn("配置变更监听器执行失败:",error)}})}clear(){this.listeners.clear()}constructor(){_define_property(this,"listeners",new Set)}};const configChangeNotifier=new ConfigChangeNotifier;let ConfigLoader=class ConfigLoader{static async loadFromJSON(path){try{if(typeof window!=="undefined"){const response=await fetch(path);if(!response.ok){throw new Error(`无法加载配置文件: ${path} (${response.status})`)}return await response.json()}if(typeof require!=="undefined"){const fs=require("fs");const content=fs.readFileSync(path,"utf-8");return JSON.parse(content)}throw new Error("不支持的环境:无法加载配置文件")}catch(error){_logger.logger.error(`加载JSON配置文件失败: ${path}`,error);throw error}}static async loadFromYAML(path){try{if(typeof window!=="undefined"){const response=await fetch(path);if(!response.ok){throw new Error(`无法加载配置文件: ${path} (${response.status})`)}const text=await response.text();if(typeof window.YAML!=="undefined"){return window.YAML.parse(text)}try{return JSON.parse(text)}catch{throw new Error("需要YAML解析库,请安装 yaml 包")}}if(typeof require!=="undefined"){const fs=require("fs");const yaml=require("yaml");const content=fs.readFileSync(path,"utf-8");return yaml.parse(content)}throw new Error("不支持的环境:无法加载配置文件")}catch(error){_logger.logger.error(`加载YAML配置文件失败: ${path}`,error);throw error}}static async loadFromFile(options){const{path,format="json",required=false,defaultConfig={}}=options;if(!path){if(required){throw new Error("配置文件路径未指定")}return defaultConfig}try{let config;switch(format){case"json":config=await this.loadFromJSON(path);break;case"yaml":config=await this.loadFromYAML(path);break;default:throw new Error(`不支持的配置文件格式: ${format}`)}_logger.logger.info(`成功加载配置文件: ${path}`);return config}catch(error){if(required){throw error}_logger.logger.warn(`配置文件加载失败,使用默认配置: ${path}`,error);return defaultConfig}}static mergeConfig(base,override){const merged={...base};for(const key in override){if(!Object.prototype.hasOwnProperty.call(override,key)){continue}const baseValue=merged[key];const overrideValue=override[key];if(baseValue&&overrideValue&&typeof baseValue==="object"&&typeof overrideValue==="object"&&!Array.isArray(baseValue)&&!Array.isArray(overrideValue)){merged[key]=this.mergeConfig(baseValue,overrideValue)}else{merged[key]=overrideValue}}return merged}static async loadFromMultipleSources(sources){let merged={};for(const source of sources){if("path"in source&&"format"in source){const fileConfig=await this.loadFromFile(source);merged=this.mergeConfig(merged,fileConfig)}else if(!("path"in source)&&!("format"in source)){merged=this.mergeConfig(merged,source)}}return merged}static loadFromEnv(prefix="FRAMEWORK_"){const config={};if(typeof process==="undefined"||!process.env){return config}for(const[key,value]of Object.entries(process.env)){if(!key.startsWith(prefix)){continue}const configKey=key.slice(prefix.length).toLowerCase().split("_").map((part,index)=>index===0?part:part.charAt(0).toUpperCase()+part.slice(1)).join("");let parsedValue=value;if(value==="true"||value==="false"){parsedValue=value==="true"}else if(!isNaN(Number(value))){parsedValue=Number(value)}else if(value?.startsWith("{")||value?.startsWith("[")){try{parsedValue=JSON.parse(value)}catch{}}config[configKey]=parsedValue}_logger.logger.debug("从环境变量加载配置:",config);return config}static async loadFromAllSources(sources=[],defaultConfig={},includeEnv=true,envPrefix="FRAMEWORK_"){const oldConfig={...defaultConfig};let merged={...defaultConfig};const fileConfigs=await this.loadFromMultipleSources(sources.filter(source=>typeof source==="object"&&"path"in source));merged=this.mergeConfig(merged,fileConfigs);if(includeEnv){const envConfig=this.loadFromEnv(envPrefix);merged=this.mergeConfig(merged,envConfig)}const codeConfigs=sources.filter(source=>typeof source==="object"&&!("path"in source));for(const codeConfig of codeConfigs){merged=this.mergeConfig(merged,codeConfig)}configChangeNotifier.notify(merged,oldConfig);return merged}static onConfigChange(listener){return configChangeNotifier.addListener(listener)}static removeConfigChangeListener(listener){configChangeNotifier.removeListener(listener)}};
@@ -1,311 +1 @@
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
- /**
15
- * 配置文件加载模块
16
- * 支持从JSON/YAML文件加载配置
17
- * 优化:支持环境变量配置、配置热更新
18
- */ import { logger } from "@vlian/logger";
19
- /**
20
- * 配置文件格式
21
- */ export var ConfigFileFormat = /*#__PURE__*/ function(ConfigFileFormat) {
22
- ConfigFileFormat["JSON"] = "json";
23
- ConfigFileFormat["YAML"] = "yaml";
24
- return ConfigFileFormat;
25
- }({});
26
- /**
27
- * 配置变更通知管理器
28
- */ let ConfigChangeNotifier = class ConfigChangeNotifier {
29
- /**
30
- * 添加配置变更监听器
31
- */ addListener(listener) {
32
- this.listeners.add(listener);
33
- // 返回取消监听的函数
34
- return ()=>{
35
- this.listeners.delete(listener);
36
- };
37
- }
38
- /**
39
- * 移除配置变更监听器
40
- */ removeListener(listener) {
41
- this.listeners.delete(listener);
42
- }
43
- /**
44
- * 通知配置变更
45
- */ notify(newConfig, oldConfig) {
46
- this.listeners.forEach((listener)=>{
47
- try {
48
- listener(newConfig, oldConfig);
49
- } catch (error) {
50
- logger.warn('配置变更监听器执行失败:', error);
51
- }
52
- });
53
- }
54
- /**
55
- * 清除所有监听器
56
- */ clear() {
57
- this.listeners.clear();
58
- }
59
- constructor(){
60
- _define_property(this, "listeners", new Set());
61
- }
62
- };
63
- /**
64
- * 全局配置变更通知器实例
65
- */ const configChangeNotifier = new ConfigChangeNotifier();
66
- /**
67
- * 配置加载器
68
- */ export class ConfigLoader {
69
- /**
70
- * 从JSON文件加载配置
71
- *
72
- * @param path - 文件路径
73
- * @returns 配置对象
74
- */ static async loadFromJSON(path) {
75
- try {
76
- // 在浏览器环境中,需要通过网络请求加载
77
- if (typeof window !== 'undefined') {
78
- const response = await fetch(path);
79
- if (!response.ok) {
80
- throw new Error(`无法加载配置文件: ${path} (${response.status})`);
81
- }
82
- return await response.json();
83
- }
84
- // 在Node.js环境中,使用fs模块
85
- if (typeof require !== 'undefined') {
86
- const fs = require('fs');
87
- const content = fs.readFileSync(path, 'utf-8');
88
- return JSON.parse(content);
89
- }
90
- throw new Error('不支持的环境:无法加载配置文件');
91
- } catch (error) {
92
- logger.error(`加载JSON配置文件失败: ${path}`, error);
93
- throw error;
94
- }
95
- }
96
- /**
97
- * 从YAML文件加载配置
98
- *
99
- * @param path - 文件路径
100
- * @returns 配置对象
101
- */ static async loadFromYAML(path) {
102
- try {
103
- // 在浏览器环境中,需要通过网络请求加载
104
- if (typeof window !== 'undefined') {
105
- const response = await fetch(path);
106
- if (!response.ok) {
107
- throw new Error(`无法加载配置文件: ${path} (${response.status})`);
108
- }
109
- const text = await response.text();
110
- // 需要YAML解析库,这里假设有yaml库
111
- // 如果没有,可以提示用户安装
112
- if (typeof window.YAML !== 'undefined') {
113
- return window.YAML.parse(text);
114
- }
115
- // 降级:尝试作为JSON解析(如果YAML格式简单)
116
- try {
117
- return JSON.parse(text);
118
- } catch {
119
- throw new Error('需要YAML解析库,请安装 yaml 包');
120
- }
121
- }
122
- // 在Node.js环境中,使用fs模块和yaml库
123
- if (typeof require !== 'undefined') {
124
- const fs = require('fs');
125
- const yaml = require('yaml');
126
- const content = fs.readFileSync(path, 'utf-8');
127
- return yaml.parse(content);
128
- }
129
- throw new Error('不支持的环境:无法加载配置文件');
130
- } catch (error) {
131
- logger.error(`加载YAML配置文件失败: ${path}`, error);
132
- throw error;
133
- }
134
- }
135
- /**
136
- * 从文件加载配置
137
- *
138
- * @param options - 加载选项
139
- * @returns 配置对象
140
- */ static async loadFromFile(options) {
141
- const { path, format = "json", required = false, defaultConfig = {} } = options;
142
- if (!path) {
143
- if (required) {
144
- throw new Error('配置文件路径未指定');
145
- }
146
- return defaultConfig;
147
- }
148
- try {
149
- let config;
150
- switch(format){
151
- case "json":
152
- config = await this.loadFromJSON(path);
153
- break;
154
- case "yaml":
155
- config = await this.loadFromYAML(path);
156
- break;
157
- default:
158
- throw new Error(`不支持的配置文件格式: ${format}`);
159
- }
160
- logger.info(`成功加载配置文件: ${path}`);
161
- return config;
162
- } catch (error) {
163
- if (required) {
164
- throw error;
165
- }
166
- logger.warn(`配置文件加载失败,使用默认配置: ${path}`, error);
167
- return defaultConfig;
168
- }
169
- }
170
- /**
171
- * 合并配置(深度合并)
172
- *
173
- * @param base - 基础配置
174
- * @param override - 覆盖配置
175
- * @returns 合并后的配置
176
- */ static mergeConfig(base, override) {
177
- const merged = {
178
- ...base
179
- };
180
- for(const key in override){
181
- if (!Object.prototype.hasOwnProperty.call(override, key)) {
182
- continue;
183
- }
184
- const baseValue = merged[key];
185
- const overrideValue = override[key];
186
- if (baseValue && overrideValue && typeof baseValue === 'object' && typeof overrideValue === 'object' && !Array.isArray(baseValue) && !Array.isArray(overrideValue)) {
187
- // 深度合并对象
188
- merged[key] = this.mergeConfig(baseValue, overrideValue);
189
- } else {
190
- // 直接覆盖
191
- merged[key] = overrideValue;
192
- }
193
- }
194
- return merged;
195
- }
196
- /**
197
- * 从多个源加载并合并配置
198
- *
199
- * @param sources - 配置源列表(按优先级从低到高)
200
- * @returns 合并后的配置
201
- */ static async loadFromMultipleSources(sources) {
202
- let merged = {};
203
- for (const source of sources){
204
- if ('path' in source && 'format' in source) {
205
- // 配置文件
206
- const fileConfig = await this.loadFromFile(source);
207
- merged = this.mergeConfig(merged, fileConfig);
208
- } else if (!('path' in source) && !('format' in source)) {
209
- // 配置对象
210
- merged = this.mergeConfig(merged, source);
211
- }
212
- }
213
- return merged;
214
- }
215
- /**
216
- * 从环境变量加载配置
217
- *
218
- * 支持以下环境变量格式:
219
- * - FRAMEWORK_LOGGER_LEVEL=DEBUG
220
- * - FRAMEWORK_SHOW_SPLASH_SCREEN=always
221
- * - FRAMEWORK_MIN_SPLASH_SCREEN_TIME=1000
222
- *
223
- * @param prefix - 环境变量前缀,默认为 'FRAMEWORK_'
224
- * @returns 配置对象
225
- */ static loadFromEnv(prefix = 'FRAMEWORK_') {
226
- const config = {};
227
- if (typeof process === 'undefined' || !process.env) {
228
- return config;
229
- }
230
- // 遍历所有环境变量
231
- for (const [key, value] of Object.entries(process.env)){
232
- if (!key.startsWith(prefix)) {
233
- continue;
234
- }
235
- // 移除前缀并转换为驼峰命名
236
- const configKey = key.slice(prefix.length).toLowerCase().split('_').map((part, index)=>index === 0 ? part : part.charAt(0).toUpperCase() + part.slice(1)).join('');
237
- // 尝试解析值
238
- let parsedValue = value;
239
- if (value === 'true' || value === 'false') {
240
- parsedValue = value === 'true';
241
- } else if (!isNaN(Number(value))) {
242
- parsedValue = Number(value);
243
- } else if (value?.startsWith('{') || value?.startsWith('[')) {
244
- try {
245
- parsedValue = JSON.parse(value);
246
- } catch {
247
- // 解析失败,使用原始值
248
- }
249
- }
250
- // 设置配置值
251
- config[configKey] = parsedValue;
252
- }
253
- logger.debug('从环境变量加载配置:', config);
254
- return config;
255
- }
256
- /**
257
- * 从多个源加载配置(包括环境变量)
258
- *
259
- * 优化:明确优先级,从低到高:
260
- * 1. 默认配置
261
- * 2. 配置文件
262
- * 3. 环境变量
263
- * 4. 代码配置(通过 sources 参数传入)
264
- *
265
- * @param sources - 配置源列表(代码配置,优先级最高)
266
- * @param defaultConfig - 默认配置(优先级最低)
267
- * @param includeEnv - 是否包含环境变量,默认为 true
268
- * @param envPrefix - 环境变量前缀,默认为 'FRAMEWORK_'
269
- * @returns 合并后的配置
270
- */ static async loadFromAllSources(sources = [], defaultConfig = {}, includeEnv = true, envPrefix = 'FRAMEWORK_') {
271
- // 保存旧配置用于变更通知
272
- const oldConfig = {
273
- ...defaultConfig
274
- };
275
- // 1. 从默认配置开始
276
- let merged = {
277
- ...defaultConfig
278
- };
279
- // 2. 加载配置文件(优先级高于默认配置)
280
- const fileConfigs = await this.loadFromMultipleSources(sources.filter((source)=>typeof source === 'object' && 'path' in source));
281
- merged = this.mergeConfig(merged, fileConfigs);
282
- // 3. 加载环境变量(优先级高于配置文件)
283
- if (includeEnv) {
284
- const envConfig = this.loadFromEnv(envPrefix);
285
- merged = this.mergeConfig(merged, envConfig);
286
- }
287
- // 4. 合并代码配置(优先级最高)
288
- const codeConfigs = sources.filter((source)=>typeof source === 'object' && !('path' in source));
289
- for (const codeConfig of codeConfigs){
290
- merged = this.mergeConfig(merged, codeConfig);
291
- }
292
- // 通知配置变更
293
- configChangeNotifier.notify(merged, oldConfig);
294
- return merged;
295
- }
296
- /**
297
- * 添加配置变更监听器
298
- *
299
- * @param listener - 配置变更监听器
300
- * @returns 取消监听的函数
301
- */ static onConfigChange(listener) {
302
- return configChangeNotifier.addListener(listener);
303
- }
304
- /**
305
- * 移除配置变更监听器
306
- */ static removeConfigChangeListener(listener) {
307
- configChangeNotifier.removeListener(listener);
308
- }
309
- }
310
-
311
- //# sourceMappingURL=ConfigLoader.js.map
1
+ function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}import{logger}from"@vlian/logger";export var ConfigFileFormat=/*#__PURE__*/function(ConfigFileFormat){ConfigFileFormat["JSON"]="json";ConfigFileFormat["YAML"]="yaml";return ConfigFileFormat}({});let ConfigChangeNotifier=class ConfigChangeNotifier{addListener(listener){this.listeners.add(listener);return()=>{this.listeners.delete(listener)}}removeListener(listener){this.listeners.delete(listener)}notify(newConfig,oldConfig){this.listeners.forEach(listener=>{try{listener(newConfig,oldConfig)}catch(error){logger.warn("配置变更监听器执行失败:",error)}})}clear(){this.listeners.clear()}constructor(){_define_property(this,"listeners",new Set)}};const configChangeNotifier=new ConfigChangeNotifier;export class ConfigLoader{static async loadFromJSON(path){try{if(typeof window!=="undefined"){const response=await fetch(path);if(!response.ok){throw new Error(`无法加载配置文件: ${path} (${response.status})`)}return await response.json()}if(typeof require!=="undefined"){const fs=require("fs");const content=fs.readFileSync(path,"utf-8");return JSON.parse(content)}throw new Error("不支持的环境:无法加载配置文件")}catch(error){logger.error(`加载JSON配置文件失败: ${path}`,error);throw error}}static async loadFromYAML(path){try{if(typeof window!=="undefined"){const response=await fetch(path);if(!response.ok){throw new Error(`无法加载配置文件: ${path} (${response.status})`)}const text=await response.text();if(typeof window.YAML!=="undefined"){return window.YAML.parse(text)}try{return JSON.parse(text)}catch{throw new Error("需要YAML解析库,请安装 yaml 包")}}if(typeof require!=="undefined"){const fs=require("fs");const yaml=require("yaml");const content=fs.readFileSync(path,"utf-8");return yaml.parse(content)}throw new Error("不支持的环境:无法加载配置文件")}catch(error){logger.error(`加载YAML配置文件失败: ${path}`,error);throw error}}static async loadFromFile(options){const{path,format="json",required=false,defaultConfig={}}=options;if(!path){if(required){throw new Error("配置文件路径未指定")}return defaultConfig}try{let config;switch(format){case"json":config=await this.loadFromJSON(path);break;case"yaml":config=await this.loadFromYAML(path);break;default:throw new Error(`不支持的配置文件格式: ${format}`)}logger.info(`成功加载配置文件: ${path}`);return config}catch(error){if(required){throw error}logger.warn(`配置文件加载失败,使用默认配置: ${path}`,error);return defaultConfig}}static mergeConfig(base,override){const merged={...base};for(const key in override){if(!Object.prototype.hasOwnProperty.call(override,key)){continue}const baseValue=merged[key];const overrideValue=override[key];if(baseValue&&overrideValue&&typeof baseValue==="object"&&typeof overrideValue==="object"&&!Array.isArray(baseValue)&&!Array.isArray(overrideValue)){merged[key]=this.mergeConfig(baseValue,overrideValue)}else{merged[key]=overrideValue}}return merged}static async loadFromMultipleSources(sources){let merged={};for(const source of sources){if("path"in source&&"format"in source){const fileConfig=await this.loadFromFile(source);merged=this.mergeConfig(merged,fileConfig)}else if(!("path"in source)&&!("format"in source)){merged=this.mergeConfig(merged,source)}}return merged}static loadFromEnv(prefix="FRAMEWORK_"){const config={};if(typeof process==="undefined"||!process.env){return config}for(const[key,value]of Object.entries(process.env)){if(!key.startsWith(prefix)){continue}const configKey=key.slice(prefix.length).toLowerCase().split("_").map((part,index)=>index===0?part:part.charAt(0).toUpperCase()+part.slice(1)).join("");let parsedValue=value;if(value==="true"||value==="false"){parsedValue=value==="true"}else if(!isNaN(Number(value))){parsedValue=Number(value)}else if(value?.startsWith("{")||value?.startsWith("[")){try{parsedValue=JSON.parse(value)}catch{}}config[configKey]=parsedValue}logger.debug("从环境变量加载配置:",config);return config}static async loadFromAllSources(sources=[],defaultConfig={},includeEnv=true,envPrefix="FRAMEWORK_"){const oldConfig={...defaultConfig};let merged={...defaultConfig};const fileConfigs=await this.loadFromMultipleSources(sources.filter(source=>typeof source==="object"&&"path"in source));merged=this.mergeConfig(merged,fileConfigs);if(includeEnv){const envConfig=this.loadFromEnv(envPrefix);merged=this.mergeConfig(merged,envConfig)}const codeConfigs=sources.filter(source=>typeof source==="object"&&!("path"in source));for(const codeConfig of codeConfigs){merged=this.mergeConfig(merged,codeConfig)}configChangeNotifier.notify(merged,oldConfig);return merged}static onConfigChange(listener){return configChangeNotifier.addListener(listener)}static removeConfigChangeListener(listener){configChangeNotifier.removeListener(listener)}}