@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 +0,0 @@
1
- {"version":3,"sources":["../../src/kernel/constants.ts"],"sourcesContent":["import { LogLevel } from '@vlian/logger';\nimport type { I18nSnapshot, KernelConfig, ThemeSnapshot } from './types';\n\nexport const DEFAULT_INSTANCE_ID = 'default';\nexport const DEFAULT_THEME: ThemeSnapshot = { mode: 'light' };\nexport const DEFAULT_I18N: I18nSnapshot = { locale: 'zh-CN' };\n\nexport const DEFAULT_CONFIG: KernelConfig = {\n logger: {\n level: LogLevel.INFO,\n persistence: { enabled: true, storage: 'localStorage', key: 'vlian:kernel:logger-level' },\n },\n cache: {\n enabled: true,\n storageOptions: {\n prefix: 'vlian',\n defaultExpire: 24 * 60 * 60 * 1000,\n },\n },\n theme: {\n initial: DEFAULT_THEME,\n persistence: { enabled: true, storage: 'localStorage', key: 'vlian:kernel:theme' },\n },\n i18n: {\n initial: DEFAULT_I18N,\n persistence: { enabled: true, storage: 'localStorage', key: 'vlian:kernel:i18n' },\n },\n};\n"],"names":["DEFAULT_CONFIG","DEFAULT_I18N","DEFAULT_INSTANCE_ID","DEFAULT_THEME","mode","locale","logger","level","LogLevel","INFO","persistence","enabled","storage","key","cache","storageOptions","prefix","defaultExpire","theme","initial","i18n"],"mappings":";;;;;;;;;;;QAOaA;eAAAA;;QAFAC;eAAAA;;QAFAC;eAAAA;;QACAC;eAAAA;;;wBAJY;AAGlB,MAAMD,sBAAsB;AAC5B,MAAMC,gBAA+B;IAAEC,MAAM;AAAQ;AACrD,MAAMH,eAA6B;IAAEI,QAAQ;AAAQ;AAErD,MAAML,iBAA+B;IAC1CM,QAAQ;QACNC,OAAOC,gBAAQ,CAACC,IAAI;QACpBC,aAAa;YAAEC,SAAS;YAAMC,SAAS;YAAgBC,KAAK;QAA4B;IAC1F;IACAC,OAAO;QACLH,SAAS;QACTI,gBAAgB;YACdC,QAAQ;YACRC,eAAe,KAAK,KAAK,KAAK;QAChC;IACF;IACAC,OAAO;QACLC,SAAShB;QACTO,aAAa;YAAEC,SAAS;YAAMC,SAAS;YAAgBC,KAAK;QAAqB;IACnF;IACAO,MAAM;QACJD,SAASlB;QACTS,aAAa;YAAEC,SAAS;YAAMC,SAAS;YAAgBC,KAAK;QAAoB;IAClF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/kernel/constants.ts"],"sourcesContent":["import { LogLevel } from '@vlian/logger';\nimport type { I18nSnapshot, KernelConfig, ThemeSnapshot } from './types';\n\nexport const DEFAULT_INSTANCE_ID = 'default';\nexport const DEFAULT_THEME: ThemeSnapshot = { mode: 'light' };\nexport const DEFAULT_I18N: I18nSnapshot = { locale: 'zh-CN' };\n\nexport const DEFAULT_CONFIG: KernelConfig = {\n logger: {\n level: LogLevel.INFO,\n persistence: { enabled: true, storage: 'localStorage', key: 'vlian:kernel:logger-level' },\n },\n cache: {\n enabled: true,\n storageOptions: {\n prefix: 'vlian',\n defaultExpire: 24 * 60 * 60 * 1000,\n },\n },\n theme: {\n initial: DEFAULT_THEME,\n persistence: { enabled: true, storage: 'localStorage', key: 'vlian:kernel:theme' },\n },\n i18n: {\n initial: DEFAULT_I18N,\n persistence: { enabled: true, storage: 'localStorage', key: 'vlian:kernel:i18n' },\n },\n};\n"],"names":["LogLevel","DEFAULT_INSTANCE_ID","DEFAULT_THEME","mode","DEFAULT_I18N","locale","DEFAULT_CONFIG","logger","level","INFO","persistence","enabled","storage","key","cache","storageOptions","prefix","defaultExpire","theme","initial","i18n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,gBAAgB;AAGzC,OAAO,MAAMC,sBAAsB,UAAU;AAC7C,OAAO,MAAMC,gBAA+B;IAAEC,MAAM;AAAQ,EAAE;AAC9D,OAAO,MAAMC,eAA6B;IAAEC,QAAQ;AAAQ,EAAE;AAE9D,OAAO,MAAMC,iBAA+B;IAC1CC,QAAQ;QACNC,OAAOR,SAASS,IAAI;QACpBC,aAAa;YAAEC,SAAS;YAAMC,SAAS;YAAgBC,KAAK;QAA4B;IAC1F;IACAC,OAAO;QACLH,SAAS;QACTI,gBAAgB;YACdC,QAAQ;YACRC,eAAe,KAAK,KAAK,KAAK;QAChC;IACF;IACAC,OAAO;QACLC,SAASjB;QACTQ,aAAa;YAAEC,SAAS;YAAMC,SAAS;YAAgBC,KAAK;QAAqB;IACnF;IACAO,MAAM;QACJD,SAASf;QACTM,aAAa;YAAEC,SAAS;YAAMC,SAAS;YAAgBC,KAAK;QAAoB;IAClF;AACF,EAAE"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/kernel/index.ts"],"sourcesContent":["export { Kernel, startup, getKernel, kernelStartApp } from './kernel';\nexport { LoggerManager, CacheManager, ThemeManager, I18nManager } from './manager';\nexport type {\n KernelInstanceId,\n KernelStorageDriver,\n ThemeSnapshot,\n I18nSnapshot,\n PersistenceOptions,\n LoggerManagerConfig,\n CacheManagerConfig,\n ThemeManagerConfig,\n I18nManagerConfig,\n KernelConfig,\n KernelTimingMetric,\n KernelManager,\n KernelManagerContext,\n KernelRenderContext,\n StartupHooks,\n StartOptions,\n KernelStartOptions,\n} from './types';\n"],"names":["CacheManager","I18nManager","Kernel","LoggerManager","ThemeManager","getKernel","kernelStartApp","startup"],"mappings":";;;;;;;;;;;QACwBA;eAAAA,qBAAY;;QAAgBC;eAAAA,oBAAW;;QADtDC;eAAAA,cAAM;;QACNC;eAAAA,sBAAa;;QAAgBC;eAAAA,qBAAY;;QADxBC;eAAAA,iBAAS;;QAAEC;eAAAA,sBAAc;;QAAlCC;eAAAA,eAAO;;;wBAAmC;yBACY"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/kernel/index.ts"],"sourcesContent":["export { Kernel, startup, getKernel, kernelStartApp } from './kernel';\nexport { LoggerManager, CacheManager, ThemeManager, I18nManager } from './manager';\nexport type {\n KernelInstanceId,\n KernelStorageDriver,\n ThemeSnapshot,\n I18nSnapshot,\n PersistenceOptions,\n LoggerManagerConfig,\n CacheManagerConfig,\n ThemeManagerConfig,\n I18nManagerConfig,\n KernelConfig,\n KernelTimingMetric,\n KernelManager,\n KernelManagerContext,\n KernelRenderContext,\n StartupHooks,\n StartOptions,\n KernelStartOptions,\n} from './types';\n"],"names":["Kernel","startup","getKernel","kernelStartApp","LoggerManager","CacheManager","ThemeManager","I18nManager"],"mappings":"AAAA,SAASA,MAAM,EAAEC,OAAO,EAAEC,SAAS,EAAEC,cAAc,QAAQ,WAAW;AACtE,SAASC,aAAa,EAAEC,YAAY,EAAEC,YAAY,EAAEC,WAAW,QAAQ,YAAY"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/kernel/kernel.tsx"],"sourcesContent":["import type {\n I18nSnapshot,\n KernelConfig,\n KernelInstanceId,\n KernelManager,\n KernelManagerContext,\n KernelTimingMetric,\n StartOptions,\n ThemeSnapshot,\n} from './types';\nimport { DEFAULT_CONFIG, DEFAULT_I18N, DEFAULT_INSTANCE_ID, DEFAULT_THEME } from './constants';\nimport { LoggerManager } from './manager/loggerManager';\nimport { CacheManager } from './manager/cacheManager';\nimport { ThemeManager } from './manager/themeManager';\nimport { I18nManager } from './manager/i18nManager';\n\nfunction now(): number {\n return typeof performance !== 'undefined' ? performance.now() : Date.now();\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null;\n}\n\nexport class Kernel {\n private static readonly instances = new Map<KernelInstanceId, Kernel>();\n\n public static getInstance(instanceId: KernelInstanceId = DEFAULT_INSTANCE_ID): Kernel {\n const existing = Kernel.instances.get(instanceId);\n if (existing) {\n return existing;\n }\n const created = new Kernel(instanceId);\n Kernel.instances.set(instanceId, created);\n return created;\n }\n\n private readonly instanceId: KernelInstanceId;\n private readonly metrics: KernelTimingMetric[] = [];\n private readonly managers = new Map<string, KernelManager>();\n private readonly managerInitPromises = new Map<string, Promise<void>>();\n private readonly initializedManagers = new Set<string>();\n private readonly loggerManager = new LoggerManager();\n private readonly cacheManager = new CacheManager();\n private readonly themeManager = new ThemeManager();\n private readonly i18nManager = new I18nManager();\n private config: KernelConfig = DEFAULT_CONFIG;\n private startupPromise: Promise<Kernel> | null = null;\n private started = false;\n\n private constructor(instanceId: KernelInstanceId) {\n this.instanceId = instanceId;\n this.managers.set('logger', this.loggerManager);\n this.managers.set('cache', this.cacheManager);\n this.managers.set('theme', this.themeManager);\n this.managers.set('i18n', this.i18nManager);\n }\n\n public getId(): string {\n return this.instanceId;\n }\n\n public getConfig(): KernelConfig {\n return this.config;\n }\n\n public getMetrics(): KernelTimingMetric[] {\n return [...this.metrics];\n }\n\n public getLoggerManager(): LoggerManager {\n return this.loggerManager;\n }\n\n public getCacheManager(): CacheManager {\n return this.cacheManager;\n }\n\n public getThemeManager(): ThemeManager {\n return this.themeManager;\n }\n\n public getI18nManager(): I18nManager {\n return this.i18nManager;\n }\n\n public getManager(name: string): KernelManager | undefined {\n return this.managers.get(name);\n }\n\n public registerManager(name: string, manager: KernelManager): void {\n if (this.managers.has(name)) {\n throw new Error(`Kernel manager \"${name}\" 已存在`);\n }\n this.managers.set(name, manager);\n }\n\n public async startup(options: StartOptions = {}): Promise<Kernel> {\n if (this.started) {\n this.logDebug('kernel.startup.skip.already-started', { instanceId: this.instanceId });\n return this;\n }\n\n if (this.startupPromise) {\n return this.startupPromise;\n }\n\n this.startupPromise = this.bootstrap(options).finally(() => {\n this.startupPromise = null;\n });\n return this.startupPromise;\n }\n\n private async bootstrap(options: StartOptions): Promise<Kernel> {\n await this.measurePhase('startup.begin', async () => {\n this.logDebug('kernel.startup.begin', { instanceId: this.instanceId });\n });\n\n await this.measurePhase('config.load', async () => {\n this.config = await this.resolveConfig(options);\n });\n\n await this.measurePhase('manager.register.custom', async () => {\n if (options.customManagers) {\n Object.entries(options.customManagers).forEach(([name, manager]) => {\n if (!this.managers.has(name)) {\n this.managers.set(name, manager);\n }\n });\n }\n });\n\n await this.measurePhase('manager.initialize.default', async () => {\n await this.initializeManager('cache');\n await Promise.all([\n this.initializeManager('logger'),\n this.initializeManager('theme'),\n this.initializeManager('i18n'),\n ]);\n });\n\n await this.measurePhase('manager.initialize.custom', async () => {\n const customManagerNames = [...this.managers.keys()].filter(\n (name) => name !== 'logger' && name !== 'cache' && name !== 'theme' && name !== 'i18n'\n );\n for (const name of customManagerNames) {\n await this.initializeManager(name);\n }\n });\n\n await this.measurePhase('hooks.initialize', async () => {\n await options.hooks?.initialize?.();\n await options.lifecycle?.initialization?.();\n });\n\n await this.measurePhase('render.custom', async () => {\n if (options.render) {\n await options.render({\n instanceId: this.instanceId,\n config: this.config,\n });\n }\n });\n\n this.started = true;\n this.logDebug('kernel.startup.end', { instanceId: this.instanceId, metrics: this.metrics });\n return this;\n }\n\n private async resolveConfig(options: StartOptions): Promise<KernelConfig> {\n let loaded: Partial<KernelConfig> = {};\n if (options.configLoader) {\n const loaderResult = await options.configLoader();\n loaded = loaderResult || {};\n }\n\n const loadedThemeInitial: Partial<ThemeSnapshot> = loaded.theme?.initial || {};\n const loadedI18nInitial: Partial<I18nSnapshot> = loaded.i18n?.initial || {};\n const optionTheme = options.theme || {};\n const optionLocale = options.locale;\n\n return {\n logger: {\n ...DEFAULT_CONFIG.logger,\n ...loaded.logger,\n ...(options.config?.logger || {}),\n level:\n options.loggerLevel ??\n options.config?.logger?.level ??\n loaded.logger?.level,\n },\n cache: {\n ...DEFAULT_CONFIG.cache,\n ...loaded.cache,\n ...(options.config?.cache || {}),\n storageOptions: {\n ...DEFAULT_CONFIG.cache.storageOptions,\n ...(loaded.cache?.storageOptions || {}),\n ...(options.config?.cache?.storageOptions || {}),\n ...(options.storageOptions || {}),\n },\n },\n theme: {\n ...DEFAULT_CONFIG.theme,\n ...loaded.theme,\n ...(options.config?.theme || {}),\n initial: {\n ...DEFAULT_THEME,\n ...loadedThemeInitial,\n ...(options.config?.theme?.initial || {}),\n ...(isRecord(optionTheme) ? optionTheme : {}),\n },\n },\n i18n: {\n ...DEFAULT_CONFIG.i18n,\n ...loaded.i18n,\n ...(options.config?.i18n || {}),\n initial: {\n ...DEFAULT_I18N,\n ...loadedI18nInitial,\n ...(options.config?.i18n?.initial || {}),\n resources: isRecord(optionLocale)\n ? (optionLocale as I18nSnapshot['resources'])\n : loadedI18nInitial.resources ?? options.config?.i18n?.initial?.resources,\n },\n },\n };\n }\n\n private async initializeManager(name: string): Promise<void> {\n if (this.initializedManagers.has(name)) {\n return;\n }\n\n const existingPromise = this.managerInitPromises.get(name);\n if (existingPromise) {\n await existingPromise;\n return;\n }\n\n const manager = this.managers.get(name);\n if (!manager) {\n throw new Error(`Kernel manager \"${name}\" 不存在`);\n }\n\n const context: KernelManagerContext = {\n instanceId: this.instanceId,\n config: this.config,\n cacheManager: this.cacheManager.cache!,\n };\n\n const initPromise = (async () => {\n await manager.initialize(context);\n this.initializedManagers.add(name);\n this.logDebug('kernel.manager.initialized', { name, instanceId: this.instanceId });\n })();\n\n this.managerInitPromises.set(name, initPromise);\n try {\n await initPromise;\n } finally {\n this.managerInitPromises.delete(name);\n }\n }\n\n private async measurePhase(phase: string, task: () => Promise<void>): Promise<void> {\n const startTime = now();\n this.logDebug('kernel.phase.start', { phase, startTime, instanceId: this.instanceId });\n await task();\n const endTime = now();\n const metric: KernelTimingMetric = {\n phase,\n startTime,\n endTime,\n duration: endTime - startTime,\n };\n this.metrics.push(metric);\n this.logDebug('kernel.phase.end', metric);\n }\n\n private logDebug(message: string, payload?: unknown): void {\n this.loggerManager.debug(message, payload);\n }\n}\n\nexport async function startup(\n options: StartOptions = {},\n instanceId: KernelInstanceId = DEFAULT_INSTANCE_ID\n): Promise<Kernel> {\n const kernel = Kernel.getInstance(instanceId);\n return kernel.startup(options);\n}\n\nexport function getKernel(instanceId: KernelInstanceId = DEFAULT_INSTANCE_ID): Kernel {\n return Kernel.getInstance(instanceId);\n}\n\nexport async function kernelStartApp(\n options: StartOptions = {},\n instanceId: KernelInstanceId = DEFAULT_INSTANCE_ID\n): Promise<Kernel> {\n return startup(options, instanceId);\n}\n"],"names":["Kernel","getKernel","kernelStartApp","startup","now","performance","Date","isRecord","value","getInstance","instanceId","DEFAULT_INSTANCE_ID","existing","instances","get","created","set","getId","getConfig","config","getMetrics","metrics","getLoggerManager","loggerManager","getCacheManager","cacheManager","getThemeManager","themeManager","getI18nManager","i18nManager","getManager","name","managers","registerManager","manager","has","Error","options","started","logDebug","startupPromise","bootstrap","finally","measurePhase","resolveConfig","customManagers","Object","entries","forEach","initializeManager","Promise","all","customManagerNames","keys","filter","hooks","initialize","lifecycle","initialization","render","loaded","configLoader","loaderResult","loadedThemeInitial","theme","initial","loadedI18nInitial","i18n","optionTheme","optionLocale","locale","logger","DEFAULT_CONFIG","level","loggerLevel","cache","storageOptions","DEFAULT_THEME","DEFAULT_I18N","resources","initializedManagers","existingPromise","managerInitPromises","context","initPromise","add","delete","phase","task","startTime","endTime","metric","duration","push","message","payload","debug","Map","Set","LoggerManager","CacheManager","ThemeManager","I18nManager","kernel"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/kernel/kernel.tsx"],"sourcesContent":["import type {\n I18nSnapshot,\n KernelConfig,\n KernelInstanceId,\n KernelManager,\n KernelManagerContext,\n KernelTimingMetric,\n StartOptions,\n ThemeSnapshot,\n} from './types';\nimport { DEFAULT_CONFIG, DEFAULT_I18N, DEFAULT_INSTANCE_ID, DEFAULT_THEME } from './constants';\nimport { LoggerManager } from './manager/loggerManager';\nimport { CacheManager } from './manager/cacheManager';\nimport { ThemeManager } from './manager/themeManager';\nimport { I18nManager } from './manager/i18nManager';\n\nfunction now(): number {\n return typeof performance !== 'undefined' ? performance.now() : Date.now();\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null;\n}\n\nexport class Kernel {\n private static readonly instances = new Map<KernelInstanceId, Kernel>();\n\n public static getInstance(instanceId: KernelInstanceId = DEFAULT_INSTANCE_ID): Kernel {\n const existing = Kernel.instances.get(instanceId);\n if (existing) {\n return existing;\n }\n const created = new Kernel(instanceId);\n Kernel.instances.set(instanceId, created);\n return created;\n }\n\n private readonly instanceId: KernelInstanceId;\n private readonly metrics: KernelTimingMetric[] = [];\n private readonly managers = new Map<string, KernelManager>();\n private readonly managerInitPromises = new Map<string, Promise<void>>();\n private readonly initializedManagers = new Set<string>();\n private readonly loggerManager = new LoggerManager();\n private readonly cacheManager = new CacheManager();\n private readonly themeManager = new ThemeManager();\n private readonly i18nManager = new I18nManager();\n private config: KernelConfig = DEFAULT_CONFIG;\n private startupPromise: Promise<Kernel> | null = null;\n private started = false;\n\n private constructor(instanceId: KernelInstanceId) {\n this.instanceId = instanceId;\n this.managers.set('logger', this.loggerManager);\n this.managers.set('cache', this.cacheManager);\n this.managers.set('theme', this.themeManager);\n this.managers.set('i18n', this.i18nManager);\n }\n\n public getId(): string {\n return this.instanceId;\n }\n\n public getConfig(): KernelConfig {\n return this.config;\n }\n\n public getMetrics(): KernelTimingMetric[] {\n return [...this.metrics];\n }\n\n public getLoggerManager(): LoggerManager {\n return this.loggerManager;\n }\n\n public getCacheManager(): CacheManager {\n return this.cacheManager;\n }\n\n public getThemeManager(): ThemeManager {\n return this.themeManager;\n }\n\n public getI18nManager(): I18nManager {\n return this.i18nManager;\n }\n\n public getManager(name: string): KernelManager | undefined {\n return this.managers.get(name);\n }\n\n public registerManager(name: string, manager: KernelManager): void {\n if (this.managers.has(name)) {\n throw new Error(`Kernel manager \"${name}\" 已存在`);\n }\n this.managers.set(name, manager);\n }\n\n public async startup(options: StartOptions = {}): Promise<Kernel> {\n if (this.started) {\n this.logDebug('kernel.startup.skip.already-started', { instanceId: this.instanceId });\n return this;\n }\n\n if (this.startupPromise) {\n return this.startupPromise;\n }\n\n this.startupPromise = this.bootstrap(options).finally(() => {\n this.startupPromise = null;\n });\n return this.startupPromise;\n }\n\n private async bootstrap(options: StartOptions): Promise<Kernel> {\n await this.measurePhase('startup.begin', async () => {\n this.logDebug('kernel.startup.begin', { instanceId: this.instanceId });\n });\n\n await this.measurePhase('config.load', async () => {\n this.config = await this.resolveConfig(options);\n });\n\n await this.measurePhase('manager.register.custom', async () => {\n if (options.customManagers) {\n Object.entries(options.customManagers).forEach(([name, manager]) => {\n if (!this.managers.has(name)) {\n this.managers.set(name, manager);\n }\n });\n }\n });\n\n await this.measurePhase('manager.initialize.default', async () => {\n await this.initializeManager('cache');\n await Promise.all([\n this.initializeManager('logger'),\n this.initializeManager('theme'),\n this.initializeManager('i18n'),\n ]);\n });\n\n await this.measurePhase('manager.initialize.custom', async () => {\n const customManagerNames = [...this.managers.keys()].filter(\n (name) => name !== 'logger' && name !== 'cache' && name !== 'theme' && name !== 'i18n'\n );\n for (const name of customManagerNames) {\n await this.initializeManager(name);\n }\n });\n\n await this.measurePhase('hooks.initialize', async () => {\n await options.hooks?.initialize?.();\n await options.lifecycle?.initialization?.();\n });\n\n await this.measurePhase('render.custom', async () => {\n if (options.render) {\n await options.render({\n instanceId: this.instanceId,\n config: this.config,\n });\n }\n });\n\n this.started = true;\n this.logDebug('kernel.startup.end', { instanceId: this.instanceId, metrics: this.metrics });\n return this;\n }\n\n private async resolveConfig(options: StartOptions): Promise<KernelConfig> {\n let loaded: Partial<KernelConfig> = {};\n if (options.configLoader) {\n const loaderResult = await options.configLoader();\n loaded = loaderResult || {};\n }\n\n const loadedThemeInitial: Partial<ThemeSnapshot> = loaded.theme?.initial || {};\n const loadedI18nInitial: Partial<I18nSnapshot> = loaded.i18n?.initial || {};\n const optionTheme = options.theme || {};\n const optionLocale = options.locale;\n\n return {\n logger: {\n ...DEFAULT_CONFIG.logger,\n ...loaded.logger,\n ...(options.config?.logger || {}),\n level:\n options.loggerLevel ??\n options.config?.logger?.level ??\n loaded.logger?.level,\n },\n cache: {\n ...DEFAULT_CONFIG.cache,\n ...loaded.cache,\n ...(options.config?.cache || {}),\n storageOptions: {\n ...DEFAULT_CONFIG.cache.storageOptions,\n ...(loaded.cache?.storageOptions || {}),\n ...(options.config?.cache?.storageOptions || {}),\n ...(options.storageOptions || {}),\n },\n },\n theme: {\n ...DEFAULT_CONFIG.theme,\n ...loaded.theme,\n ...(options.config?.theme || {}),\n initial: {\n ...DEFAULT_THEME,\n ...loadedThemeInitial,\n ...(options.config?.theme?.initial || {}),\n ...(isRecord(optionTheme) ? optionTheme : {}),\n },\n },\n i18n: {\n ...DEFAULT_CONFIG.i18n,\n ...loaded.i18n,\n ...(options.config?.i18n || {}),\n initial: {\n ...DEFAULT_I18N,\n ...loadedI18nInitial,\n ...(options.config?.i18n?.initial || {}),\n resources: isRecord(optionLocale)\n ? (optionLocale as I18nSnapshot['resources'])\n : loadedI18nInitial.resources ?? options.config?.i18n?.initial?.resources,\n },\n },\n };\n }\n\n private async initializeManager(name: string): Promise<void> {\n if (this.initializedManagers.has(name)) {\n return;\n }\n\n const existingPromise = this.managerInitPromises.get(name);\n if (existingPromise) {\n await existingPromise;\n return;\n }\n\n const manager = this.managers.get(name);\n if (!manager) {\n throw new Error(`Kernel manager \"${name}\" 不存在`);\n }\n\n const context: KernelManagerContext = {\n instanceId: this.instanceId,\n config: this.config,\n cacheManager: this.cacheManager.cache!,\n };\n\n const initPromise = (async () => {\n await manager.initialize(context);\n this.initializedManagers.add(name);\n this.logDebug('kernel.manager.initialized', { name, instanceId: this.instanceId });\n })();\n\n this.managerInitPromises.set(name, initPromise);\n try {\n await initPromise;\n } finally {\n this.managerInitPromises.delete(name);\n }\n }\n\n private async measurePhase(phase: string, task: () => Promise<void>): Promise<void> {\n const startTime = now();\n this.logDebug('kernel.phase.start', { phase, startTime, instanceId: this.instanceId });\n await task();\n const endTime = now();\n const metric: KernelTimingMetric = {\n phase,\n startTime,\n endTime,\n duration: endTime - startTime,\n };\n this.metrics.push(metric);\n this.logDebug('kernel.phase.end', metric);\n }\n\n private logDebug(message: string, payload?: unknown): void {\n this.loggerManager.debug(message, payload);\n }\n}\n\nexport async function startup(\n options: StartOptions = {},\n instanceId: KernelInstanceId = DEFAULT_INSTANCE_ID\n): Promise<Kernel> {\n const kernel = Kernel.getInstance(instanceId);\n return kernel.startup(options);\n}\n\nexport function getKernel(instanceId: KernelInstanceId = DEFAULT_INSTANCE_ID): Kernel {\n return Kernel.getInstance(instanceId);\n}\n\nexport async function kernelStartApp(\n options: StartOptions = {},\n instanceId: KernelInstanceId = DEFAULT_INSTANCE_ID\n): Promise<Kernel> {\n return startup(options, instanceId);\n}\n"],"names":["DEFAULT_CONFIG","DEFAULT_I18N","DEFAULT_INSTANCE_ID","DEFAULT_THEME","LoggerManager","CacheManager","ThemeManager","I18nManager","now","performance","Date","isRecord","value","Kernel","getInstance","instanceId","existing","instances","get","created","set","getId","getConfig","config","getMetrics","metrics","getLoggerManager","loggerManager","getCacheManager","cacheManager","getThemeManager","themeManager","getI18nManager","i18nManager","getManager","name","managers","registerManager","manager","has","Error","startup","options","started","logDebug","startupPromise","bootstrap","finally","measurePhase","resolveConfig","customManagers","Object","entries","forEach","initializeManager","Promise","all","customManagerNames","keys","filter","hooks","initialize","lifecycle","initialization","render","loaded","configLoader","loaderResult","loadedThemeInitial","theme","initial","loadedI18nInitial","i18n","optionTheme","optionLocale","locale","logger","level","loggerLevel","cache","storageOptions","resources","initializedManagers","existingPromise","managerInitPromises","context","initPromise","add","delete","phase","task","startTime","endTime","metric","duration","push","message","payload","debug","Map","Set","kernel","getKernel","kernelStartApp"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/kernel/manager/cacheManager.ts"],"sourcesContent":["import type {KernelConfig, KernelManager, KernelManagerContext} from '../types';\nimport {DEFAULT_CONFIG} from '../constants';\nimport type {StorageInstance} from \"@vlian/utils\";\nimport {createStorage} from \"@vlian/utils\";\n\nexport class CacheManager implements KernelManager<KernelConfig['cache']> {\n private snapshot: KernelConfig['cache'] = DEFAULT_CONFIG.cache;\n private cacheIn: StorageInstance | undefined;\n\n public initialize(context: KernelManagerContext): void {\n this.snapshot = context.config.cache;\n\n this.cacheIn = createStorage({\n type: this.snapshot.storageOptions?.type || 'local',\n prefix: this.snapshot.storageOptions?.prefix || 'vlian',\n defaultExpire: this.snapshot.storageOptions?.defaultExpire || 24 * 60 * 60 * 1000,\n dbName: this.snapshot.storageOptions?.tableName,\n });\n }\n\n get cache() {\n return this.cacheIn;\n }\n\n public getSnapshot(): KernelConfig['cache'] {\n return this.snapshot;\n }\n}\n"],"names":["CacheManager","initialize","context","snapshot","config","cache","cacheIn","createStorage","type","storageOptions","prefix","defaultExpire","dbName","tableName","getSnapshot","DEFAULT_CONFIG"],"mappings":";;;;+BAKaA;;;eAAAA;;;2BAJgB;uBAED;;;;;;;;;;;;;;AAErB,IAAA,AAAMA,eAAN,MAAMA;IAIFC,WAAWC,OAA6B,EAAQ;QACnD,IAAI,CAACC,QAAQ,GAAGD,QAAQE,MAAM,CAACC,KAAK;QAEpC,IAAI,CAACC,OAAO,GAAGC,IAAAA,oBAAa,EAAC;YACzBC,MAAM,IAAI,CAACL,QAAQ,CAACM,cAAc,EAAED,QAAQ;YAC5CE,QAAQ,IAAI,CAACP,QAAQ,CAACM,cAAc,EAAEC,UAAU;YAChDC,eAAe,IAAI,CAACR,QAAQ,CAACM,cAAc,EAAEE,iBAAiB,KAAK,KAAK,KAAK;YAC7EC,QAAQ,IAAI,CAACT,QAAQ,CAACM,cAAc,EAAEI;QAC1C;IACJ;IAEA,IAAIR,QAAQ;QACR,OAAO,IAAI,CAACC,OAAO;IACvB;IAEOQ,cAAqC;QACxC,OAAO,IAAI,CAACX,QAAQ;IACxB;;QApBA,uBAAQA,YAAkCY,yBAAc,CAACV,KAAK;QAC9D,uBAAQC,WAAR,KAAA;;AAoBJ"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/kernel/manager/cacheManager.ts"],"sourcesContent":["import type {KernelConfig, KernelManager, KernelManagerContext} from '../types';\nimport {DEFAULT_CONFIG} from '../constants';\nimport type {StorageInstance} from \"@vlian/utils\";\nimport {createStorage} from \"@vlian/utils\";\n\nexport class CacheManager implements KernelManager<KernelConfig['cache']> {\n private snapshot: KernelConfig['cache'] = DEFAULT_CONFIG.cache;\n private cacheIn: StorageInstance | undefined;\n\n public initialize(context: KernelManagerContext): void {\n this.snapshot = context.config.cache;\n\n this.cacheIn = createStorage({\n type: this.snapshot.storageOptions?.type || 'local',\n prefix: this.snapshot.storageOptions?.prefix || 'vlian',\n defaultExpire: this.snapshot.storageOptions?.defaultExpire || 24 * 60 * 60 * 1000,\n dbName: this.snapshot.storageOptions?.tableName,\n });\n }\n\n get cache() {\n return this.cacheIn;\n }\n\n public getSnapshot(): KernelConfig['cache'] {\n return this.snapshot;\n }\n}\n"],"names":["DEFAULT_CONFIG","createStorage","CacheManager","initialize","context","snapshot","config","cache","cacheIn","type","storageOptions","prefix","defaultExpire","dbName","tableName","getSnapshot"],"mappings":";;;;;;;;;;;;;AACA,SAAQA,cAAc,QAAO,eAAe;AAE5C,SAAQC,aAAa,QAAO,eAAe;AAE3C,OAAO,MAAMC;IAIFC,WAAWC,OAA6B,EAAQ;QACnD,IAAI,CAACC,QAAQ,GAAGD,QAAQE,MAAM,CAACC,KAAK;QAEpC,IAAI,CAACC,OAAO,GAAGP,cAAc;YACzBQ,MAAM,IAAI,CAACJ,QAAQ,CAACK,cAAc,EAAED,QAAQ;YAC5CE,QAAQ,IAAI,CAACN,QAAQ,CAACK,cAAc,EAAEC,UAAU;YAChDC,eAAe,IAAI,CAACP,QAAQ,CAACK,cAAc,EAAEE,iBAAiB,KAAK,KAAK,KAAK;YAC7EC,QAAQ,IAAI,CAACR,QAAQ,CAACK,cAAc,EAAEI;QAC1C;IACJ;IAEA,IAAIP,QAAQ;QACR,OAAO,IAAI,CAACC,OAAO;IACvB;IAEOO,cAAqC;QACxC,OAAO,IAAI,CAACV,QAAQ;IACxB;;QApBA,uBAAQA,YAAkCL,eAAeO,KAAK;QAC9D,uBAAQC,WAAR,KAAA;;AAoBJ"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/kernel/manager/i18n/I18nManager.ts"],"sourcesContent":["import type { StorageInstance } from '@vlian/utils';\nimport { setupI18n, setLang } from '../../../library';\nimport { DEFAULT_CONFIG, DEFAULT_I18N } from '../../constants';\nimport type { I18nSnapshot, KernelConfig, KernelManager, KernelManagerContext } from '../../types';\nimport { loadI18nFromCache, saveI18nToCache } from './i18n.persistence';\nimport {\n cloneI18nSnapshot,\n isI18nEqual,\n mergeI18nSnapshot,\n normalizeI18nSnapshot,\n type I18nListener,\n} from './i18n.schema';\n\nexport class I18nManager implements KernelManager<I18nSnapshot> {\n private snapshot: I18nSnapshot = cloneI18nSnapshot(DEFAULT_I18N);\n private config: KernelConfig['i18n'] = DEFAULT_CONFIG.i18n;\n private listeners = new Set<I18nListener>();\n private cacheManager: StorageInstance | null = null;\n private initialized = false;\n\n public async initialize(context: KernelManagerContext): Promise<void> {\n this.config = context.config.i18n;\n this.cacheManager = context.cacheManager;\n\n const initialSnapshot = normalizeI18nSnapshot(this.config.initial || {}, DEFAULT_I18N);\n this.snapshot = await loadI18nFromCache(this.cacheManager, this.config.persistence, initialSnapshot);\n\n await setupI18n({\n interpolation: {\n escapeValue: false,\n },\n lng: this.snapshot.locale || \"zh-CN\",\n resources: this.snapshot.resources\n });\n await setLang(this.snapshot.locale);\n this.initialized = true;\n }\n\n public getSnapshot(): I18nSnapshot {\n return cloneI18nSnapshot(this.snapshot);\n }\n\n public subscribe(listener: I18nListener): () => void {\n this.listeners.add(listener);\n\n return () => {\n this.listeners.delete(listener);\n };\n }\n\n public async setLocale(locale: I18nSnapshot['locale']): Promise<void> {\n this.ensureInitialized();\n\n const prevSnapshot = this.snapshot;\n const nextSnapshot = mergeI18nSnapshot(prevSnapshot, { locale });\n\n if (isI18nEqual(prevSnapshot, nextSnapshot)) {\n return;\n }\n\n this.snapshot = nextSnapshot;\n\n // set lang\n await setLang(this.snapshot.locale);\n\n if (this.cacheManager) {\n await saveI18nToCache(this.cacheManager, this.config.persistence, this.snapshot);\n }\n\n this.emit(this.snapshot, prevSnapshot);\n }\n\n private ensureInitialized(): void {\n if (!this.initialized) {\n throw new Error('I18nManager must be initialized before use.');\n }\n }\n\n private emit(next: I18nSnapshot, prev: I18nSnapshot): void {\n for (const listener of this.listeners) {\n try {\n listener(cloneI18nSnapshot(next), cloneI18nSnapshot(prev));\n } catch {\n // Keep notifying remaining listeners even if one fails.\n }\n }\n }\n}\n"],"names":["I18nManager","initialize","context","config","i18n","cacheManager","initialSnapshot","normalizeI18nSnapshot","initial","DEFAULT_I18N","snapshot","loadI18nFromCache","persistence","setupI18n","interpolation","escapeValue","lng","locale","resources","setLang","initialized","getSnapshot","cloneI18nSnapshot","subscribe","listener","listeners","add","delete","setLocale","ensureInitialized","prevSnapshot","nextSnapshot","mergeI18nSnapshot","isI18nEqual","saveI18nToCache","emit","Error","next","prev","DEFAULT_CONFIG","Set"],"mappings":";;;;+BAaaA;;;eAAAA;;;yBAZsB;2BACU;iCAEM;4BAO5C;;;;;;;;;;;;;;AAEA,IAAA,AAAMA,cAAN,MAAMA;IAOX,MAAaC,WAAWC,OAA6B,EAAiB;QACpE,IAAI,CAACC,MAAM,GAAGD,QAAQC,MAAM,CAACC,IAAI;QACjC,IAAI,CAACC,YAAY,GAAGH,QAAQG,YAAY;QAExC,MAAMC,kBAAkBC,IAAAA,iCAAqB,EAAC,IAAI,CAACJ,MAAM,CAACK,OAAO,IAAI,CAAC,GAAGC,uBAAY;QACrF,IAAI,CAACC,QAAQ,GAAG,MAAMC,IAAAA,kCAAiB,EAAC,IAAI,CAACN,YAAY,EAAE,IAAI,CAACF,MAAM,CAACS,WAAW,EAAEN;QAEpF,MAAMO,IAAAA,kBAAS,EAAC;YACdC,eAAe;gBACbC,aAAa;YACf;YACAC,KAAK,IAAI,CAACN,QAAQ,CAACO,MAAM,IAAI;YAC7BC,WAAW,IAAI,CAACR,QAAQ,CAACQ,SAAS;QACpC;QACA,MAAMC,IAAAA,gBAAO,EAAC,IAAI,CAACT,QAAQ,CAACO,MAAM;QAClC,IAAI,CAACG,WAAW,GAAG;IACrB;IAEOC,cAA4B;QACjC,OAAOC,IAAAA,6BAAiB,EAAC,IAAI,CAACZ,QAAQ;IACxC;IAEOa,UAAUC,QAAsB,EAAc;QACnD,IAAI,CAACC,SAAS,CAACC,GAAG,CAACF;QAEnB,OAAO;YACL,IAAI,CAACC,SAAS,CAACE,MAAM,CAACH;QACxB;IACF;IAEA,MAAaI,UAAUX,MAA8B,EAAiB;QACpE,IAAI,CAACY,iBAAiB;QAEtB,MAAMC,eAAe,IAAI,CAACpB,QAAQ;QAClC,MAAMqB,eAAeC,IAAAA,6BAAiB,EAACF,cAAc;YAAEb;QAAO;QAE9D,IAAIgB,IAAAA,uBAAW,EAACH,cAAcC,eAAe;YAC3C;QACF;QAEA,IAAI,CAACrB,QAAQ,GAAGqB;QAEhB,WAAW;QACX,MAAMZ,IAAAA,gBAAO,EAAC,IAAI,CAACT,QAAQ,CAACO,MAAM;QAElC,IAAI,IAAI,CAACZ,YAAY,EAAE;YACrB,MAAM6B,IAAAA,gCAAe,EAAC,IAAI,CAAC7B,YAAY,EAAE,IAAI,CAACF,MAAM,CAACS,WAAW,EAAE,IAAI,CAACF,QAAQ;QACjF;QAEA,IAAI,CAACyB,IAAI,CAAC,IAAI,CAACzB,QAAQ,EAAEoB;IAC3B;IAEQD,oBAA0B;QAChC,IAAI,CAAC,IAAI,CAACT,WAAW,EAAE;YACrB,MAAM,IAAIgB,MAAM;QAClB;IACF;IAEQD,KAAKE,IAAkB,EAAEC,IAAkB,EAAQ;QACzD,KAAK,MAAMd,YAAY,IAAI,CAACC,SAAS,CAAE;YACrC,IAAI;gBACFD,SAASF,IAAAA,6BAAiB,EAACe,OAAOf,IAAAA,6BAAiB,EAACgB;YACtD,EAAE,OAAM;YACN,wDAAwD;YAC1D;QACF;IACF;;QAxEA,uBAAQ5B,YAAyBY,IAAAA,6BAAiB,EAACb,uBAAY;QAC/D,uBAAQN,UAA+BoC,yBAAc,CAACnC,IAAI;QAC1D,uBAAQqB,aAAY,IAAIe;QACxB,uBAAQnC,gBAAuC;QAC/C,uBAAQe,eAAc;;AAqExB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/kernel/manager/i18n/I18nManager.ts"],"sourcesContent":["import type { StorageInstance } from '@vlian/utils';\nimport { setupI18n, setLang } from '../../../library';\nimport { DEFAULT_CONFIG, DEFAULT_I18N } from '../../constants';\nimport type { I18nSnapshot, KernelConfig, KernelManager, KernelManagerContext } from '../../types';\nimport { loadI18nFromCache, saveI18nToCache } from './i18n.persistence';\nimport {\n cloneI18nSnapshot,\n isI18nEqual,\n mergeI18nSnapshot,\n normalizeI18nSnapshot,\n type I18nListener,\n} from './i18n.schema';\n\nexport class I18nManager implements KernelManager<I18nSnapshot> {\n private snapshot: I18nSnapshot = cloneI18nSnapshot(DEFAULT_I18N);\n private config: KernelConfig['i18n'] = DEFAULT_CONFIG.i18n;\n private listeners = new Set<I18nListener>();\n private cacheManager: StorageInstance | null = null;\n private initialized = false;\n\n public async initialize(context: KernelManagerContext): Promise<void> {\n this.config = context.config.i18n;\n this.cacheManager = context.cacheManager;\n\n const initialSnapshot = normalizeI18nSnapshot(this.config.initial || {}, DEFAULT_I18N);\n this.snapshot = await loadI18nFromCache(this.cacheManager, this.config.persistence, initialSnapshot);\n\n await setupI18n({\n interpolation: {\n escapeValue: false,\n },\n lng: this.snapshot.locale || \"zh-CN\",\n resources: this.snapshot.resources\n });\n await setLang(this.snapshot.locale);\n this.initialized = true;\n }\n\n public getSnapshot(): I18nSnapshot {\n return cloneI18nSnapshot(this.snapshot);\n }\n\n public subscribe(listener: I18nListener): () => void {\n this.listeners.add(listener);\n\n return () => {\n this.listeners.delete(listener);\n };\n }\n\n public async setLocale(locale: I18nSnapshot['locale']): Promise<void> {\n this.ensureInitialized();\n\n const prevSnapshot = this.snapshot;\n const nextSnapshot = mergeI18nSnapshot(prevSnapshot, { locale });\n\n if (isI18nEqual(prevSnapshot, nextSnapshot)) {\n return;\n }\n\n this.snapshot = nextSnapshot;\n\n // set lang\n await setLang(this.snapshot.locale);\n\n if (this.cacheManager) {\n await saveI18nToCache(this.cacheManager, this.config.persistence, this.snapshot);\n }\n\n this.emit(this.snapshot, prevSnapshot);\n }\n\n private ensureInitialized(): void {\n if (!this.initialized) {\n throw new Error('I18nManager must be initialized before use.');\n }\n }\n\n private emit(next: I18nSnapshot, prev: I18nSnapshot): void {\n for (const listener of this.listeners) {\n try {\n listener(cloneI18nSnapshot(next), cloneI18nSnapshot(prev));\n } catch {\n // Keep notifying remaining listeners even if one fails.\n }\n }\n }\n}\n"],"names":["setupI18n","setLang","DEFAULT_CONFIG","DEFAULT_I18N","loadI18nFromCache","saveI18nToCache","cloneI18nSnapshot","isI18nEqual","mergeI18nSnapshot","normalizeI18nSnapshot","I18nManager","initialize","context","config","i18n","cacheManager","initialSnapshot","initial","snapshot","persistence","interpolation","escapeValue","lng","locale","resources","initialized","getSnapshot","subscribe","listener","listeners","add","delete","setLocale","ensureInitialized","prevSnapshot","nextSnapshot","emit","Error","next","prev","Set"],"mappings":";;;;;;;;;;;;;AACA,SAASA,SAAS,EAAEC,OAAO,QAAQ,mBAAmB;AACtD,SAASC,cAAc,EAAEC,YAAY,QAAQ,kBAAkB;AAE/D,SAASC,iBAAiB,EAAEC,eAAe,QAAQ,qBAAqB;AACxE,SACEC,iBAAiB,EACjBC,WAAW,EACXC,iBAAiB,EACjBC,qBAAqB,QAEhB,gBAAgB;AAEvB,OAAO,MAAMC;IAOX,MAAaC,WAAWC,OAA6B,EAAiB;QACpE,IAAI,CAACC,MAAM,GAAGD,QAAQC,MAAM,CAACC,IAAI;QACjC,IAAI,CAACC,YAAY,GAAGH,QAAQG,YAAY;QAExC,MAAMC,kBAAkBP,sBAAsB,IAAI,CAACI,MAAM,CAACI,OAAO,IAAI,CAAC,GAAGd;QACzE,IAAI,CAACe,QAAQ,GAAG,MAAMd,kBAAkB,IAAI,CAACW,YAAY,EAAE,IAAI,CAACF,MAAM,CAACM,WAAW,EAAEH;QAEpF,MAAMhB,UAAU;YACdoB,eAAe;gBACbC,aAAa;YACf;YACAC,KAAK,IAAI,CAACJ,QAAQ,CAACK,MAAM,IAAI;YAC7BC,WAAW,IAAI,CAACN,QAAQ,CAACM,SAAS;QACpC;QACA,MAAMvB,QAAQ,IAAI,CAACiB,QAAQ,CAACK,MAAM;QAClC,IAAI,CAACE,WAAW,GAAG;IACrB;IAEOC,cAA4B;QACjC,OAAOpB,kBAAkB,IAAI,CAACY,QAAQ;IACxC;IAEOS,UAAUC,QAAsB,EAAc;QACnD,IAAI,CAACC,SAAS,CAACC,GAAG,CAACF;QAEnB,OAAO;YACL,IAAI,CAACC,SAAS,CAACE,MAAM,CAACH;QACxB;IACF;IAEA,MAAaI,UAAUT,MAA8B,EAAiB;QACpE,IAAI,CAACU,iBAAiB;QAEtB,MAAMC,eAAe,IAAI,CAAChB,QAAQ;QAClC,MAAMiB,eAAe3B,kBAAkB0B,cAAc;YAAEX;QAAO;QAE9D,IAAIhB,YAAY2B,cAAcC,eAAe;YAC3C;QACF;QAEA,IAAI,CAACjB,QAAQ,GAAGiB;QAEhB,WAAW;QACX,MAAMlC,QAAQ,IAAI,CAACiB,QAAQ,CAACK,MAAM;QAElC,IAAI,IAAI,CAACR,YAAY,EAAE;YACrB,MAAMV,gBAAgB,IAAI,CAACU,YAAY,EAAE,IAAI,CAACF,MAAM,CAACM,WAAW,EAAE,IAAI,CAACD,QAAQ;QACjF;QAEA,IAAI,CAACkB,IAAI,CAAC,IAAI,CAAClB,QAAQ,EAAEgB;IAC3B;IAEQD,oBAA0B;QAChC,IAAI,CAAC,IAAI,CAACR,WAAW,EAAE;YACrB,MAAM,IAAIY,MAAM;QAClB;IACF;IAEQD,KAAKE,IAAkB,EAAEC,IAAkB,EAAQ;QACzD,KAAK,MAAMX,YAAY,IAAI,CAACC,SAAS,CAAE;YACrC,IAAI;gBACFD,SAAStB,kBAAkBgC,OAAOhC,kBAAkBiC;YACtD,EAAE,OAAM;YACN,wDAAwD;YAC1D;QACF;IACF;;QAxEA,uBAAQrB,YAAyBZ,kBAAkBH;QACnD,uBAAQU,UAA+BX,eAAeY,IAAI;QAC1D,uBAAQe,aAAY,IAAIW;QACxB,uBAAQzB,gBAAuC;QAC/C,uBAAQU,eAAc;;AAqExB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/kernel/manager/i18n/i18n.persistence.ts"],"sourcesContent":["import type { StorageInstance } from '@vlian/utils';\nimport type { I18nSnapshot, PersistenceOptions } from '../../types';\nimport { cloneI18nSnapshot, normalizeI18nSnapshot } from './i18n.schema';\n\nexport const DEFAULT_I18N_CACHE_KEY = 'vlian:kernel:i18n';\n\ntype ResolvedPersistenceContext = {\n key: string;\n};\n\ntype PersistedI18nSnapshot = Pick<I18nSnapshot, 'locale'>;\n\nfunction resolvePersistenceContext(\n persistence: PersistenceOptions | undefined\n): ResolvedPersistenceContext | null {\n if (persistence?.enabled !== true) {\n return null;\n }\n\n return {\n key: persistence.key || DEFAULT_I18N_CACHE_KEY,\n };\n}\n\nexport async function loadI18nFromCache(\n cacheManager: StorageInstance,\n persistence: PersistenceOptions | undefined,\n fallback: I18nSnapshot\n): Promise<I18nSnapshot> {\n const persistenceContext = resolvePersistenceContext(persistence);\n const safeFallback = cloneI18nSnapshot(fallback);\n\n if (!persistenceContext) {\n return safeFallback;\n }\n\n try {\n const cached = await cacheManager.get<I18nSnapshot>(persistenceContext.key, {\n defaultValue: safeFallback,\n });\n return normalizeI18nSnapshot(cached, safeFallback);\n } catch {\n return safeFallback;\n }\n}\n\nexport async function saveI18nToCache(\n cacheManager: StorageInstance,\n persistence: PersistenceOptions | undefined,\n snapshot: I18nSnapshot\n): Promise<void> {\n const persistenceContext = resolvePersistenceContext(persistence);\n\n if (!persistenceContext) {\n return;\n }\n\n try {\n const persistedSnapshot: PersistedI18nSnapshot = {\n locale: cloneI18nSnapshot(snapshot).locale,\n };\n await cacheManager.set(persistenceContext.key, persistedSnapshot);\n } catch {\n // Ignore persistence failures and keep i18n updates in memory.\n }\n}\n"],"names":["DEFAULT_I18N_CACHE_KEY","loadI18nFromCache","saveI18nToCache","resolvePersistenceContext","persistence","enabled","key","cacheManager","fallback","persistenceContext","safeFallback","cloneI18nSnapshot","cached","get","defaultValue","normalizeI18nSnapshot","snapshot","persistedSnapshot","locale","set"],"mappings":";;;;;;;;;;;QAIaA;eAAAA;;QAoBSC;eAAAA;;QAsBAC;eAAAA;;;4BA5CmC;AAElD,MAAMF,yBAAyB;AAQtC,SAASG,0BACPC,WAA2C;IAE3C,IAAIA,aAAaC,YAAY,MAAM;QACjC,OAAO;IACT;IAEA,OAAO;QACLC,KAAKF,YAAYE,GAAG,IAAIN;IAC1B;AACF;AAEO,eAAeC,kBACpBM,YAA6B,EAC7BH,WAA2C,EAC3CI,QAAsB;IAEtB,MAAMC,qBAAqBN,0BAA0BC;IACrD,MAAMM,eAAeC,IAAAA,6BAAiB,EAACH;IAEvC,IAAI,CAACC,oBAAoB;QACvB,OAAOC;IACT;IAEA,IAAI;QACF,MAAME,SAAS,MAAML,aAAaM,GAAG,CAAeJ,mBAAmBH,GAAG,EAAE;YAC1EQ,cAAcJ;QAChB;QACA,OAAOK,IAAAA,iCAAqB,EAACH,QAAQF;IACvC,EAAE,OAAM;QACN,OAAOA;IACT;AACF;AAEO,eAAeR,gBACpBK,YAA6B,EAC7BH,WAA2C,EAC3CY,QAAsB;IAEtB,MAAMP,qBAAqBN,0BAA0BC;IAErD,IAAI,CAACK,oBAAoB;QACvB;IACF;IAEA,IAAI;QACF,MAAMQ,oBAA2C;YAC/CC,QAAQP,IAAAA,6BAAiB,EAACK,UAAUE,MAAM;QAC5C;QACA,MAAMX,aAAaY,GAAG,CAACV,mBAAmBH,GAAG,EAAEW;IACjD,EAAE,OAAM;IACN,+DAA+D;IACjE;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/kernel/manager/i18n/i18n.persistence.ts"],"sourcesContent":["import type { StorageInstance } from '@vlian/utils';\nimport type { I18nSnapshot, PersistenceOptions } from '../../types';\nimport { cloneI18nSnapshot, normalizeI18nSnapshot } from './i18n.schema';\n\nexport const DEFAULT_I18N_CACHE_KEY = 'vlian:kernel:i18n';\n\ntype ResolvedPersistenceContext = {\n key: string;\n};\n\ntype PersistedI18nSnapshot = Pick<I18nSnapshot, 'locale'>;\n\nfunction resolvePersistenceContext(\n persistence: PersistenceOptions | undefined\n): ResolvedPersistenceContext | null {\n if (persistence?.enabled !== true) {\n return null;\n }\n\n return {\n key: persistence.key || DEFAULT_I18N_CACHE_KEY,\n };\n}\n\nexport async function loadI18nFromCache(\n cacheManager: StorageInstance,\n persistence: PersistenceOptions | undefined,\n fallback: I18nSnapshot\n): Promise<I18nSnapshot> {\n const persistenceContext = resolvePersistenceContext(persistence);\n const safeFallback = cloneI18nSnapshot(fallback);\n\n if (!persistenceContext) {\n return safeFallback;\n }\n\n try {\n const cached = await cacheManager.get<I18nSnapshot>(persistenceContext.key, {\n defaultValue: safeFallback,\n });\n return normalizeI18nSnapshot(cached, safeFallback);\n } catch {\n return safeFallback;\n }\n}\n\nexport async function saveI18nToCache(\n cacheManager: StorageInstance,\n persistence: PersistenceOptions | undefined,\n snapshot: I18nSnapshot\n): Promise<void> {\n const persistenceContext = resolvePersistenceContext(persistence);\n\n if (!persistenceContext) {\n return;\n }\n\n try {\n const persistedSnapshot: PersistedI18nSnapshot = {\n locale: cloneI18nSnapshot(snapshot).locale,\n };\n await cacheManager.set(persistenceContext.key, persistedSnapshot);\n } catch {\n // Ignore persistence failures and keep i18n updates in memory.\n }\n}\n"],"names":["cloneI18nSnapshot","normalizeI18nSnapshot","DEFAULT_I18N_CACHE_KEY","resolvePersistenceContext","persistence","enabled","key","loadI18nFromCache","cacheManager","fallback","persistenceContext","safeFallback","cached","get","defaultValue","saveI18nToCache","snapshot","persistedSnapshot","locale","set"],"mappings":"AAEA,SAASA,iBAAiB,EAAEC,qBAAqB,QAAQ,gBAAgB;AAEzE,OAAO,MAAMC,yBAAyB,oBAAoB;AAQ1D,SAASC,0BACPC,WAA2C;IAE3C,IAAIA,aAAaC,YAAY,MAAM;QACjC,OAAO;IACT;IAEA,OAAO;QACLC,KAAKF,YAAYE,GAAG,IAAIJ;IAC1B;AACF;AAEA,OAAO,eAAeK,kBACpBC,YAA6B,EAC7BJ,WAA2C,EAC3CK,QAAsB;IAEtB,MAAMC,qBAAqBP,0BAA0BC;IACrD,MAAMO,eAAeX,kBAAkBS;IAEvC,IAAI,CAACC,oBAAoB;QACvB,OAAOC;IACT;IAEA,IAAI;QACF,MAAMC,SAAS,MAAMJ,aAAaK,GAAG,CAAeH,mBAAmBJ,GAAG,EAAE;YAC1EQ,cAAcH;QAChB;QACA,OAAOV,sBAAsBW,QAAQD;IACvC,EAAE,OAAM;QACN,OAAOA;IACT;AACF;AAEA,OAAO,eAAeI,gBACpBP,YAA6B,EAC7BJ,WAA2C,EAC3CY,QAAsB;IAEtB,MAAMN,qBAAqBP,0BAA0BC;IAErD,IAAI,CAACM,oBAAoB;QACvB;IACF;IAEA,IAAI;QACF,MAAMO,oBAA2C;YAC/CC,QAAQlB,kBAAkBgB,UAAUE,MAAM;QAC5C;QACA,MAAMV,aAAaW,GAAG,CAACT,mBAAmBJ,GAAG,EAAEW;IACjD,EAAE,OAAM;IACN,+DAA+D;IACjE;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/kernel/manager/i18n/i18n.schema.ts"],"sourcesContent":["import type { LangType } from '../../../library/locale/types';\nimport type { I18nSnapshot } from '../../types';\nimport type { Resource } from \"i18next\";\n\nexport type I18nListener = (next: I18nSnapshot, prev: I18nSnapshot) => void;\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return Object.prototype.toString.call(value) === '[object Object]';\n}\n\nexport function cloneI18nSnapshot(snapshot: I18nSnapshot): I18nSnapshot {\n const resources = snapshot.resources\n ? Object.fromEntries(\n Object.entries(snapshot.resources).map(([locale, value]) => [locale, { ...value }])\n ) as Resource\n : undefined;\n\n return {\n locale: snapshot.locale,\n ...(resources ? { resources } : {}),\n };\n}\n\nexport function normalizeI18nSnapshot(\n value: unknown,\n fallback: I18nSnapshot\n): I18nSnapshot {\n const source = isPlainObject(value) ? value : {};\n const locale = typeof source.locale === 'string' && source.locale.trim()\n ? (source.locale as LangType)\n : fallback.locale;\n const fallbackResources = fallback.resources;\n const incomingResources = isPlainObject(source.resources)\n ? Object.fromEntries(\n Object.entries(source.resources)\n .filter(([, resourceValue]) => isPlainObject(resourceValue))\n .map(([locale, resourceValue]) => [locale, { ...(resourceValue as Record<string, unknown>) }])\n ) as Resource\n : undefined;\n const resources = incomingResources || fallbackResources\n ? {\n ...(fallbackResources || {}),\n ...(incomingResources || {}),\n } as Resource\n : undefined;\n\n return {\n locale,\n ...(resources ? { resources } : {}),\n };\n}\n\nexport function mergeI18nSnapshot(\n current: I18nSnapshot,\n next: Partial<I18nSnapshot>\n): I18nSnapshot {\n return normalizeI18nSnapshot(\n {\n locale: next.locale ?? current.locale,\n resources: next.resources ?? current.resources,\n },\n current\n );\n}\n\nexport function isI18nEqual(left: I18nSnapshot, right: I18nSnapshot): boolean {\n if (left.locale !== right.locale) {\n return false;\n }\n\n const leftResources: Record<string, Record<string, unknown>> = left.resources || {};\n const rightResources: Record<string, Record<string, unknown>> = right.resources || {};\n const leftLocales = Object.keys(leftResources);\n const rightLocales = Object.keys(rightResources);\n\n if (leftLocales.length !== rightLocales.length) {\n return false;\n }\n\n for (const locale of leftLocales) {\n if (leftResources[locale] !== rightResources[locale]) {\n return false;\n }\n }\n\n return true;\n}\n"],"names":["cloneI18nSnapshot","isI18nEqual","mergeI18nSnapshot","normalizeI18nSnapshot","isPlainObject","value","Object","prototype","toString","call","snapshot","resources","fromEntries","entries","map","locale","undefined","fallback","source","trim","fallbackResources","incomingResources","filter","resourceValue","current","next","left","right","leftResources","rightResources","leftLocales","keys","rightLocales","length"],"mappings":";;;;;;;;;;;QAUgBA;eAAAA;;QAuDAC;eAAAA;;QAbAC;eAAAA;;QA7BAC;eAAAA;;;AAjBhB,SAASC,cAAcC,KAAc;IACnC,OAAOC,OAAOC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACJ,WAAW;AACnD;AAEO,SAASL,kBAAkBU,QAAsB;IACtD,MAAMC,YAAYD,SAASC,SAAS,GAChCL,OAAOM,WAAW,CAClBN,OAAOO,OAAO,CAACH,SAASC,SAAS,EAAEG,GAAG,CAAC,CAAC,CAACC,QAAQV,MAAM,GAAK;YAACU;YAAQ;gBAAE,GAAGV,KAAK;YAAC;SAAE,KAElFW;IAEJ,OAAO;QACLD,QAAQL,SAASK,MAAM;QACvB,GAAIJ,YAAY;YAAEA;QAAU,IAAI,CAAC,CAAC;IACpC;AACF;AAEO,SAASR,sBACdE,KAAc,EACdY,QAAsB;IAEtB,MAAMC,SAASd,cAAcC,SAASA,QAAQ,CAAC;IAC/C,MAAMU,SAAS,OAAOG,OAAOH,MAAM,KAAK,YAAYG,OAAOH,MAAM,CAACI,IAAI,KACjED,OAAOH,MAAM,GACdE,SAASF,MAAM;IACnB,MAAMK,oBAAoBH,SAASN,SAAS;IAC5C,MAAMU,oBAAoBjB,cAAcc,OAAOP,SAAS,IACpDL,OAAOM,WAAW,CAClBN,OAAOO,OAAO,CAACK,OAAOP,SAAS,EAC5BW,MAAM,CAAC,CAAC,GAAGC,cAAc,GAAKnB,cAAcmB,gBAC5CT,GAAG,CAAC,CAAC,CAACC,QAAQQ,cAAc,GAAK;YAACR;YAAQ;gBAAE,GAAIQ,aAAa;YAA6B;SAAE,KAE/FP;IACJ,MAAML,YAAYU,qBAAqBD,oBACnC;QACA,GAAIA,qBAAqB,CAAC,CAAC;QAC3B,GAAIC,qBAAqB,CAAC,CAAC;IAC7B,IACEL;IAEJ,OAAO;QACLD;QACA,GAAIJ,YAAY;YAAEA;QAAU,IAAI,CAAC,CAAC;IACpC;AACF;AAEO,SAAST,kBACdsB,OAAqB,EACrBC,IAA2B;IAE3B,OAAOtB,sBACL;QACEY,QAAQU,KAAKV,MAAM,IAAIS,QAAQT,MAAM;QACrCJ,WAAWc,KAAKd,SAAS,IAAIa,QAAQb,SAAS;IAChD,GACAa;AAEJ;AAEO,SAASvB,YAAYyB,IAAkB,EAAEC,KAAmB;IACjE,IAAID,KAAKX,MAAM,KAAKY,MAAMZ,MAAM,EAAE;QAChC,OAAO;IACT;IAEA,MAAMa,gBAAyDF,KAAKf,SAAS,IAAI,CAAC;IAClF,MAAMkB,iBAA0DF,MAAMhB,SAAS,IAAI,CAAC;IACpF,MAAMmB,cAAcxB,OAAOyB,IAAI,CAACH;IAChC,MAAMI,eAAe1B,OAAOyB,IAAI,CAACF;IAEjC,IAAIC,YAAYG,MAAM,KAAKD,aAAaC,MAAM,EAAE;QAC9C,OAAO;IACT;IAEA,KAAK,MAAMlB,UAAUe,YAAa;QAChC,IAAIF,aAAa,CAACb,OAAO,KAAKc,cAAc,CAACd,OAAO,EAAE;YACpD,OAAO;QACT;IACF;IAEA,OAAO;AACT"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/kernel/manager/i18n/i18n.schema.ts"],"sourcesContent":["import type { LangType } from '../../../library/locale/types';\nimport type { I18nSnapshot } from '../../types';\nimport type { Resource } from \"i18next\";\n\nexport type I18nListener = (next: I18nSnapshot, prev: I18nSnapshot) => void;\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return Object.prototype.toString.call(value) === '[object Object]';\n}\n\nexport function cloneI18nSnapshot(snapshot: I18nSnapshot): I18nSnapshot {\n const resources = snapshot.resources\n ? Object.fromEntries(\n Object.entries(snapshot.resources).map(([locale, value]) => [locale, { ...value }])\n ) as Resource\n : undefined;\n\n return {\n locale: snapshot.locale,\n ...(resources ? { resources } : {}),\n };\n}\n\nexport function normalizeI18nSnapshot(\n value: unknown,\n fallback: I18nSnapshot\n): I18nSnapshot {\n const source = isPlainObject(value) ? value : {};\n const locale = typeof source.locale === 'string' && source.locale.trim()\n ? (source.locale as LangType)\n : fallback.locale;\n const fallbackResources = fallback.resources;\n const incomingResources = isPlainObject(source.resources)\n ? Object.fromEntries(\n Object.entries(source.resources)\n .filter(([, resourceValue]) => isPlainObject(resourceValue))\n .map(([locale, resourceValue]) => [locale, { ...(resourceValue as Record<string, unknown>) }])\n ) as Resource\n : undefined;\n const resources = incomingResources || fallbackResources\n ? {\n ...(fallbackResources || {}),\n ...(incomingResources || {}),\n } as Resource\n : undefined;\n\n return {\n locale,\n ...(resources ? { resources } : {}),\n };\n}\n\nexport function mergeI18nSnapshot(\n current: I18nSnapshot,\n next: Partial<I18nSnapshot>\n): I18nSnapshot {\n return normalizeI18nSnapshot(\n {\n locale: next.locale ?? current.locale,\n resources: next.resources ?? current.resources,\n },\n current\n );\n}\n\nexport function isI18nEqual(left: I18nSnapshot, right: I18nSnapshot): boolean {\n if (left.locale !== right.locale) {\n return false;\n }\n\n const leftResources: Record<string, Record<string, unknown>> = left.resources || {};\n const rightResources: Record<string, Record<string, unknown>> = right.resources || {};\n const leftLocales = Object.keys(leftResources);\n const rightLocales = Object.keys(rightResources);\n\n if (leftLocales.length !== rightLocales.length) {\n return false;\n }\n\n for (const locale of leftLocales) {\n if (leftResources[locale] !== rightResources[locale]) {\n return false;\n }\n }\n\n return true;\n}\n"],"names":["isPlainObject","value","Object","prototype","toString","call","cloneI18nSnapshot","snapshot","resources","fromEntries","entries","map","locale","undefined","normalizeI18nSnapshot","fallback","source","trim","fallbackResources","incomingResources","filter","resourceValue","mergeI18nSnapshot","current","next","isI18nEqual","left","right","leftResources","rightResources","leftLocales","keys","rightLocales","length"],"mappings":"AAMA,SAASA,cAAcC,KAAc;IACnC,OAAOC,OAAOC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACJ,WAAW;AACnD;AAEA,OAAO,SAASK,kBAAkBC,QAAsB;IACtD,MAAMC,YAAYD,SAASC,SAAS,GAChCN,OAAOO,WAAW,CAClBP,OAAOQ,OAAO,CAACH,SAASC,SAAS,EAAEG,GAAG,CAAC,CAAC,CAACC,QAAQX,MAAM,GAAK;YAACW;YAAQ;gBAAE,GAAGX,KAAK;YAAC;SAAE,KAElFY;IAEJ,OAAO;QACLD,QAAQL,SAASK,MAAM;QACvB,GAAIJ,YAAY;YAAEA;QAAU,IAAI,CAAC,CAAC;IACpC;AACF;AAEA,OAAO,SAASM,sBACdb,KAAc,EACdc,QAAsB;IAEtB,MAAMC,SAAShB,cAAcC,SAASA,QAAQ,CAAC;IAC/C,MAAMW,SAAS,OAAOI,OAAOJ,MAAM,KAAK,YAAYI,OAAOJ,MAAM,CAACK,IAAI,KACjED,OAAOJ,MAAM,GACdG,SAASH,MAAM;IACnB,MAAMM,oBAAoBH,SAASP,SAAS;IAC5C,MAAMW,oBAAoBnB,cAAcgB,OAAOR,SAAS,IACpDN,OAAOO,WAAW,CAClBP,OAAOQ,OAAO,CAACM,OAAOR,SAAS,EAC5BY,MAAM,CAAC,CAAC,GAAGC,cAAc,GAAKrB,cAAcqB,gBAC5CV,GAAG,CAAC,CAAC,CAACC,QAAQS,cAAc,GAAK;YAACT;YAAQ;gBAAE,GAAIS,aAAa;YAA6B;SAAE,KAE/FR;IACJ,MAAML,YAAYW,qBAAqBD,oBACnC;QACA,GAAIA,qBAAqB,CAAC,CAAC;QAC3B,GAAIC,qBAAqB,CAAC,CAAC;IAC7B,IACEN;IAEJ,OAAO;QACLD;QACA,GAAIJ,YAAY;YAAEA;QAAU,IAAI,CAAC,CAAC;IACpC;AACF;AAEA,OAAO,SAASc,kBACdC,OAAqB,EACrBC,IAA2B;IAE3B,OAAOV,sBACL;QACEF,QAAQY,KAAKZ,MAAM,IAAIW,QAAQX,MAAM;QACrCJ,WAAWgB,KAAKhB,SAAS,IAAIe,QAAQf,SAAS;IAChD,GACAe;AAEJ;AAEA,OAAO,SAASE,YAAYC,IAAkB,EAAEC,KAAmB;IACjE,IAAID,KAAKd,MAAM,KAAKe,MAAMf,MAAM,EAAE;QAChC,OAAO;IACT;IAEA,MAAMgB,gBAAyDF,KAAKlB,SAAS,IAAI,CAAC;IAClF,MAAMqB,iBAA0DF,MAAMnB,SAAS,IAAI,CAAC;IACpF,MAAMsB,cAAc5B,OAAO6B,IAAI,CAACH;IAChC,MAAMI,eAAe9B,OAAO6B,IAAI,CAACF;IAEjC,IAAIC,YAAYG,MAAM,KAAKD,aAAaC,MAAM,EAAE;QAC9C,OAAO;IACT;IAEA,KAAK,MAAMrB,UAAUkB,YAAa;QAChC,IAAIF,aAAa,CAAChB,OAAO,KAAKiB,cAAc,CAACjB,OAAO,EAAE;YACpD,OAAO;QACT;IACF;IAEA,OAAO;AACT"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/kernel/manager/i18n/index.ts"],"sourcesContent":["export { I18nManager } from './I18nManager';\n"],"names":["I18nManager"],"mappings":";;;;+BAASA;;;eAAAA,wBAAW;;;6BAAQ"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/kernel/manager/i18n/index.ts"],"sourcesContent":["export { I18nManager } from './I18nManager';\n"],"names":["I18nManager"],"mappings":"AAAA,SAASA,WAAW,QAAQ,gBAAgB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/kernel/manager/i18nManager.ts"],"sourcesContent":["export { I18nManager } from './i18n';\n"],"names":["I18nManager"],"mappings":";;;;+BAASA;;;eAAAA,iBAAW;;;sBAAQ"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/kernel/manager/i18nManager.ts"],"sourcesContent":["export { I18nManager } from './i18n';\n"],"names":["I18nManager"],"mappings":"AAAA,SAASA,WAAW,QAAQ,SAAS"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/kernel/manager/index.ts"],"sourcesContent":["export { LoggerManager } from './loggerManager';\nexport { CacheManager } from './cacheManager';\nexport { ThemeManager } from './themeManager';\nexport { I18nManager } from './i18nManager';\n"],"names":["CacheManager","I18nManager","LoggerManager","ThemeManager"],"mappings":";;;;;;;;;;;QACSA;eAAAA,0BAAY;;QAEZC;eAAAA,wBAAW;;QAHXC;eAAAA,4BAAa;;QAEbC;eAAAA,0BAAY;;;+BAFS;8BACD;8BACA;6BACD"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/kernel/manager/index.ts"],"sourcesContent":["export { LoggerManager } from './loggerManager';\nexport { CacheManager } from './cacheManager';\nexport { ThemeManager } from './themeManager';\nexport { I18nManager } from './i18nManager';\n"],"names":["LoggerManager","CacheManager","ThemeManager","I18nManager"],"mappings":"AAAA,SAASA,aAAa,QAAQ,kBAAkB;AAChD,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,WAAW,QAAQ,gBAAgB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/kernel/manager/logger/LoggerManager.ts"],"sourcesContent":["import { logger, LogLevel } from '@vlian/logger';\nimport type { Logger } from '@vlian/logger';\nimport type { StorageInstance } from '@vlian/utils';\nimport { DEFAULT_CONFIG } from '../../constants';\nimport type { KernelConfig, KernelManager, KernelManagerContext } from '../../types';\nimport {\n isLoggerEqual,\n normalizeLoggerSnapshot,\n type LoggerListener,\n type LoggerSnapshot,\n} from './logger.schema';\nimport { loadLoggerFromCache, saveLoggerToCache } from './logger.persistence';\n\nexport class LoggerManager implements KernelManager<LoggerSnapshot> {\n private snapshot: LoggerSnapshot = { level: LogLevel.INFO };\n private config: KernelConfig['logger'] = DEFAULT_CONFIG.logger;\n private listeners = new Set<LoggerListener>();\n private cacheManager: StorageInstance | null = null;\n private initialized = false;\n\n public async initialize(context: KernelManagerContext): Promise<void> {\n this.config = context.config.logger;\n this.cacheManager = context.cacheManager;\n\n const initialSnapshot = normalizeLoggerSnapshot(\n { level: this.config.level },\n { level: LogLevel.INFO }\n );\n\n this.snapshot = await loadLoggerFromCache(this.cacheManager, this.config.persistence, initialSnapshot);\n logger.setLevel(this.snapshot.level);\n this.initialized = true;\n }\n\n public subscribe(listener: LoggerListener): () => void {\n this.listeners.add(listener);\n\n return () => {\n this.listeners.delete(listener);\n };\n }\n\n public debug(...args: Parameters<Logger['debug']>): void {\n logger.debug(...args);\n }\n\n public info(...args: Parameters<Logger['info']>): void {\n logger.info(...args);\n }\n\n public warn(...args: Parameters<Logger['warn']>): void {\n logger.warn(...args);\n }\n\n public error(...args: Parameters<Logger['error']>): void {\n logger.error(...args);\n }\n\n public async setLevel(level: LogLevel): Promise<void> {\n this.ensureInitialized();\n\n const prevSnapshot = this.snapshot;\n const nextSnapshot = normalizeLoggerSnapshot({ level }, prevSnapshot);\n\n if (isLoggerEqual(prevSnapshot, nextSnapshot)) {\n return;\n }\n\n this.snapshot = nextSnapshot;\n logger.setLevel(this.snapshot.level);\n\n if (this.cacheManager) {\n await saveLoggerToCache(this.cacheManager, this.config.persistence, this.snapshot);\n }\n\n this.emit(this.snapshot, prevSnapshot);\n }\n\n public getSnapshot(): LoggerSnapshot {\n return { ...this.snapshot };\n }\n\n private ensureInitialized(): void {\n if (!this.initialized) {\n throw new Error('LoggerManager must be initialized before use.');\n }\n }\n\n private emit(next: LoggerSnapshot, prev: LoggerSnapshot): void {\n for (const listener of this.listeners) {\n try {\n listener({ ...next }, { ...prev });\n } catch {\n // Keep notifying remaining listeners even if one fails.\n }\n }\n }\n}\n"],"names":["LoggerManager","initialize","context","config","logger","cacheManager","initialSnapshot","normalizeLoggerSnapshot","level","LogLevel","INFO","snapshot","loadLoggerFromCache","persistence","setLevel","initialized","subscribe","listener","listeners","add","delete","debug","args","info","warn","error","ensureInitialized","prevSnapshot","nextSnapshot","isLoggerEqual","saveLoggerToCache","emit","getSnapshot","Error","next","prev","DEFAULT_CONFIG","Set"],"mappings":";;;;+BAaaA;;;eAAAA;;;wBAboB;2BAGF;8BAOxB;mCACgD;;;;;;;;;;;;;;AAEhD,IAAA,AAAMA,gBAAN,MAAMA;IAOX,MAAaC,WAAWC,OAA6B,EAAiB;QACpE,IAAI,CAACC,MAAM,GAAGD,QAAQC,MAAM,CAACC,MAAM;QACnC,IAAI,CAACC,YAAY,GAAGH,QAAQG,YAAY;QAExC,MAAMC,kBAAkBC,IAAAA,qCAAuB,EAC7C;YAAEC,OAAO,IAAI,CAACL,MAAM,CAACK,KAAK;QAAC,GAC3B;YAAEA,OAAOC,gBAAQ,CAACC,IAAI;QAAC;QAGzB,IAAI,CAACC,QAAQ,GAAG,MAAMC,IAAAA,sCAAmB,EAAC,IAAI,CAACP,YAAY,EAAE,IAAI,CAACF,MAAM,CAACU,WAAW,EAAEP;QACtFF,cAAM,CAACU,QAAQ,CAAC,IAAI,CAACH,QAAQ,CAACH,KAAK;QACnC,IAAI,CAACO,WAAW,GAAG;IACrB;IAEOC,UAAUC,QAAwB,EAAc;QACrD,IAAI,CAACC,SAAS,CAACC,GAAG,CAACF;QAEnB,OAAO;YACL,IAAI,CAACC,SAAS,CAACE,MAAM,CAACH;QACxB;IACF;IAEOI,MAAM,GAAGC,IAAiC,EAAQ;QACvDlB,cAAM,CAACiB,KAAK,IAAIC;IAClB;IAEOC,KAAK,GAAGD,IAAgC,EAAQ;QACrDlB,cAAM,CAACmB,IAAI,IAAID;IACjB;IAEOE,KAAK,GAAGF,IAAgC,EAAQ;QACrDlB,cAAM,CAACoB,IAAI,IAAIF;IACjB;IAEOG,MAAM,GAAGH,IAAiC,EAAQ;QACvDlB,cAAM,CAACqB,KAAK,IAAIH;IAClB;IAEA,MAAaR,SAASN,KAAe,EAAiB;QACpD,IAAI,CAACkB,iBAAiB;QAEtB,MAAMC,eAAe,IAAI,CAAChB,QAAQ;QAClC,MAAMiB,eAAerB,IAAAA,qCAAuB,EAAC;YAAEC;QAAM,GAAGmB;QAExD,IAAIE,IAAAA,2BAAa,EAACF,cAAcC,eAAe;YAC7C;QACF;QAEA,IAAI,CAACjB,QAAQ,GAAGiB;QAChBxB,cAAM,CAACU,QAAQ,CAAC,IAAI,CAACH,QAAQ,CAACH,KAAK;QAEnC,IAAI,IAAI,CAACH,YAAY,EAAE;YACrB,MAAMyB,IAAAA,oCAAiB,EAAC,IAAI,CAACzB,YAAY,EAAE,IAAI,CAACF,MAAM,CAACU,WAAW,EAAE,IAAI,CAACF,QAAQ;QACnF;QAEA,IAAI,CAACoB,IAAI,CAAC,IAAI,CAACpB,QAAQ,EAAEgB;IAC3B;IAEOK,cAA8B;QACnC,OAAO;YAAE,GAAG,IAAI,CAACrB,QAAQ;QAAC;IAC5B;IAEQe,oBAA0B;QAChC,IAAI,CAAC,IAAI,CAACX,WAAW,EAAE;YACrB,MAAM,IAAIkB,MAAM;QAClB;IACF;IAEQF,KAAKG,IAAoB,EAAEC,IAAoB,EAAQ;QAC7D,KAAK,MAAMlB,YAAY,IAAI,CAACC,SAAS,CAAE;YACrC,IAAI;gBACFD,SAAS;oBAAE,GAAGiB,IAAI;gBAAC,GAAG;oBAAE,GAAGC,IAAI;gBAAC;YAClC,EAAE,OAAM;YACN,wDAAwD;YAC1D;QACF;IACF;;QAlFA,uBAAQxB,YAA2B;YAAEH,OAAOC,gBAAQ,CAACC,IAAI;QAAC;QAC1D,uBAAQP,UAAiCiC,yBAAc,CAAChC,MAAM;QAC9D,uBAAQc,aAAY,IAAImB;QACxB,uBAAQhC,gBAAuC;QAC/C,uBAAQU,eAAc;;AA+ExB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/kernel/manager/logger/LoggerManager.ts"],"sourcesContent":["import { logger, LogLevel } from '@vlian/logger';\nimport type { Logger } from '@vlian/logger';\nimport type { StorageInstance } from '@vlian/utils';\nimport { DEFAULT_CONFIG } from '../../constants';\nimport type { KernelConfig, KernelManager, KernelManagerContext } from '../../types';\nimport {\n isLoggerEqual,\n normalizeLoggerSnapshot,\n type LoggerListener,\n type LoggerSnapshot,\n} from './logger.schema';\nimport { loadLoggerFromCache, saveLoggerToCache } from './logger.persistence';\n\nexport class LoggerManager implements KernelManager<LoggerSnapshot> {\n private snapshot: LoggerSnapshot = { level: LogLevel.INFO };\n private config: KernelConfig['logger'] = DEFAULT_CONFIG.logger;\n private listeners = new Set<LoggerListener>();\n private cacheManager: StorageInstance | null = null;\n private initialized = false;\n\n public async initialize(context: KernelManagerContext): Promise<void> {\n this.config = context.config.logger;\n this.cacheManager = context.cacheManager;\n\n const initialSnapshot = normalizeLoggerSnapshot(\n { level: this.config.level },\n { level: LogLevel.INFO }\n );\n\n this.snapshot = await loadLoggerFromCache(this.cacheManager, this.config.persistence, initialSnapshot);\n logger.setLevel(this.snapshot.level);\n this.initialized = true;\n }\n\n public subscribe(listener: LoggerListener): () => void {\n this.listeners.add(listener);\n\n return () => {\n this.listeners.delete(listener);\n };\n }\n\n public debug(...args: Parameters<Logger['debug']>): void {\n logger.debug(...args);\n }\n\n public info(...args: Parameters<Logger['info']>): void {\n logger.info(...args);\n }\n\n public warn(...args: Parameters<Logger['warn']>): void {\n logger.warn(...args);\n }\n\n public error(...args: Parameters<Logger['error']>): void {\n logger.error(...args);\n }\n\n public async setLevel(level: LogLevel): Promise<void> {\n this.ensureInitialized();\n\n const prevSnapshot = this.snapshot;\n const nextSnapshot = normalizeLoggerSnapshot({ level }, prevSnapshot);\n\n if (isLoggerEqual(prevSnapshot, nextSnapshot)) {\n return;\n }\n\n this.snapshot = nextSnapshot;\n logger.setLevel(this.snapshot.level);\n\n if (this.cacheManager) {\n await saveLoggerToCache(this.cacheManager, this.config.persistence, this.snapshot);\n }\n\n this.emit(this.snapshot, prevSnapshot);\n }\n\n public getSnapshot(): LoggerSnapshot {\n return { ...this.snapshot };\n }\n\n private ensureInitialized(): void {\n if (!this.initialized) {\n throw new Error('LoggerManager must be initialized before use.');\n }\n }\n\n private emit(next: LoggerSnapshot, prev: LoggerSnapshot): void {\n for (const listener of this.listeners) {\n try {\n listener({ ...next }, { ...prev });\n } catch {\n // Keep notifying remaining listeners even if one fails.\n }\n }\n }\n}\n"],"names":["logger","LogLevel","DEFAULT_CONFIG","isLoggerEqual","normalizeLoggerSnapshot","loadLoggerFromCache","saveLoggerToCache","LoggerManager","initialize","context","config","cacheManager","initialSnapshot","level","INFO","snapshot","persistence","setLevel","initialized","subscribe","listener","listeners","add","delete","debug","args","info","warn","error","ensureInitialized","prevSnapshot","nextSnapshot","emit","getSnapshot","Error","next","prev","Set"],"mappings":";;;;;;;;;;;;;AAAA,SAASA,MAAM,EAAEC,QAAQ,QAAQ,gBAAgB;AAGjD,SAASC,cAAc,QAAQ,kBAAkB;AAEjD,SACEC,aAAa,EACbC,uBAAuB,QAGlB,kBAAkB;AACzB,SAASC,mBAAmB,EAAEC,iBAAiB,QAAQ,uBAAuB;AAE9E,OAAO,MAAMC;IAOX,MAAaC,WAAWC,OAA6B,EAAiB;QACpE,IAAI,CAACC,MAAM,GAAGD,QAAQC,MAAM,CAACV,MAAM;QACnC,IAAI,CAACW,YAAY,GAAGF,QAAQE,YAAY;QAExC,MAAMC,kBAAkBR,wBACtB;YAAES,OAAO,IAAI,CAACH,MAAM,CAACG,KAAK;QAAC,GAC3B;YAAEA,OAAOZ,SAASa,IAAI;QAAC;QAGzB,IAAI,CAACC,QAAQ,GAAG,MAAMV,oBAAoB,IAAI,CAACM,YAAY,EAAE,IAAI,CAACD,MAAM,CAACM,WAAW,EAAEJ;QACtFZ,OAAOiB,QAAQ,CAAC,IAAI,CAACF,QAAQ,CAACF,KAAK;QACnC,IAAI,CAACK,WAAW,GAAG;IACrB;IAEOC,UAAUC,QAAwB,EAAc;QACrD,IAAI,CAACC,SAAS,CAACC,GAAG,CAACF;QAEnB,OAAO;YACL,IAAI,CAACC,SAAS,CAACE,MAAM,CAACH;QACxB;IACF;IAEOI,MAAM,GAAGC,IAAiC,EAAQ;QACvDzB,OAAOwB,KAAK,IAAIC;IAClB;IAEOC,KAAK,GAAGD,IAAgC,EAAQ;QACrDzB,OAAO0B,IAAI,IAAID;IACjB;IAEOE,KAAK,GAAGF,IAAgC,EAAQ;QACrDzB,OAAO2B,IAAI,IAAIF;IACjB;IAEOG,MAAM,GAAGH,IAAiC,EAAQ;QACvDzB,OAAO4B,KAAK,IAAIH;IAClB;IAEA,MAAaR,SAASJ,KAAe,EAAiB;QACpD,IAAI,CAACgB,iBAAiB;QAEtB,MAAMC,eAAe,IAAI,CAACf,QAAQ;QAClC,MAAMgB,eAAe3B,wBAAwB;YAAES;QAAM,GAAGiB;QAExD,IAAI3B,cAAc2B,cAAcC,eAAe;YAC7C;QACF;QAEA,IAAI,CAAChB,QAAQ,GAAGgB;QAChB/B,OAAOiB,QAAQ,CAAC,IAAI,CAACF,QAAQ,CAACF,KAAK;QAEnC,IAAI,IAAI,CAACF,YAAY,EAAE;YACrB,MAAML,kBAAkB,IAAI,CAACK,YAAY,EAAE,IAAI,CAACD,MAAM,CAACM,WAAW,EAAE,IAAI,CAACD,QAAQ;QACnF;QAEA,IAAI,CAACiB,IAAI,CAAC,IAAI,CAACjB,QAAQ,EAAEe;IAC3B;IAEOG,cAA8B;QACnC,OAAO;YAAE,GAAG,IAAI,CAAClB,QAAQ;QAAC;IAC5B;IAEQc,oBAA0B;QAChC,IAAI,CAAC,IAAI,CAACX,WAAW,EAAE;YACrB,MAAM,IAAIgB,MAAM;QAClB;IACF;IAEQF,KAAKG,IAAoB,EAAEC,IAAoB,EAAQ;QAC7D,KAAK,MAAMhB,YAAY,IAAI,CAACC,SAAS,CAAE;YACrC,IAAI;gBACFD,SAAS;oBAAE,GAAGe,IAAI;gBAAC,GAAG;oBAAE,GAAGC,IAAI;gBAAC;YAClC,EAAE,OAAM;YACN,wDAAwD;YAC1D;QACF;IACF;;QAlFA,uBAAQrB,YAA2B;YAAEF,OAAOZ,SAASa,IAAI;QAAC;QAC1D,uBAAQJ,UAAiCR,eAAeF,MAAM;QAC9D,uBAAQqB,aAAY,IAAIgB;QACxB,uBAAQ1B,gBAAuC;QAC/C,uBAAQO,eAAc;;AA+ExB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/kernel/manager/logger/index.ts"],"sourcesContent":["export { LoggerManager } from './LoggerManager';\n"],"names":["LoggerManager"],"mappings":";;;;+BAASA;;;eAAAA,4BAAa;;;+BAAQ"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/kernel/manager/logger/index.ts"],"sourcesContent":["export { LoggerManager } from './LoggerManager';\n"],"names":["LoggerManager"],"mappings":"AAAA,SAASA,aAAa,QAAQ,kBAAkB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/kernel/manager/logger/logger.persistence.ts"],"sourcesContent":["import type { StorageInstance } from '@vlian/utils';\nimport type { PersistenceOptions } from '../../types';\nimport { normalizeLoggerSnapshot, type LoggerSnapshot } from './logger.schema';\n\nexport const DEFAULT_LOGGER_CACHE_KEY = 'vlian:kernel:logger-level';\n\ntype ResolvedPersistenceContext = {\n key: string;\n};\n\nfunction resolvePersistenceContext(\n persistence: PersistenceOptions | undefined\n): ResolvedPersistenceContext | null {\n if (persistence?.enabled !== true) {\n return null;\n }\n\n return {\n key: persistence.key || DEFAULT_LOGGER_CACHE_KEY,\n };\n}\n\nexport async function loadLoggerFromCache(\n cacheManager: StorageInstance,\n persistence: PersistenceOptions | undefined,\n fallback: LoggerSnapshot\n): Promise<LoggerSnapshot> {\n const persistenceContext = resolvePersistenceContext(persistence);\n\n if (!persistenceContext) {\n return { ...fallback };\n }\n\n try {\n const cached = await cacheManager.get<LoggerSnapshot | string | number>(persistenceContext.key, {\n defaultValue: fallback,\n });\n return normalizeLoggerSnapshot(cached, fallback);\n } catch {\n return { ...fallback };\n }\n}\n\nexport async function saveLoggerToCache(\n cacheManager: StorageInstance,\n persistence: PersistenceOptions | undefined,\n snapshot: LoggerSnapshot\n): Promise<void> {\n const persistenceContext = resolvePersistenceContext(persistence);\n\n if (!persistenceContext) {\n return;\n }\n\n try {\n await cacheManager.set(persistenceContext.key, { ...snapshot });\n } catch {\n // Ignore persistence failures and keep logger updates in memory.\n }\n}\n"],"names":["DEFAULT_LOGGER_CACHE_KEY","loadLoggerFromCache","saveLoggerToCache","resolvePersistenceContext","persistence","enabled","key","cacheManager","fallback","persistenceContext","cached","get","defaultValue","normalizeLoggerSnapshot","snapshot","set"],"mappings":";;;;;;;;;;;QAIaA;eAAAA;;QAkBSC;eAAAA;;QAqBAC;eAAAA;;;8BAzCuC;AAEtD,MAAMF,2BAA2B;AAMxC,SAASG,0BACPC,WAA2C;IAE3C,IAAIA,aAAaC,YAAY,MAAM;QACjC,OAAO;IACT;IAEA,OAAO;QACLC,KAAKF,YAAYE,GAAG,IAAIN;IAC1B;AACF;AAEO,eAAeC,oBACpBM,YAA6B,EAC7BH,WAA2C,EAC3CI,QAAwB;IAExB,MAAMC,qBAAqBN,0BAA0BC;IAErD,IAAI,CAACK,oBAAoB;QACvB,OAAO;YAAE,GAAGD,QAAQ;QAAC;IACvB;IAEA,IAAI;QACF,MAAME,SAAS,MAAMH,aAAaI,GAAG,CAAmCF,mBAAmBH,GAAG,EAAE;YAC9FM,cAAcJ;QAChB;QACA,OAAOK,IAAAA,qCAAuB,EAACH,QAAQF;IACzC,EAAE,OAAM;QACN,OAAO;YAAE,GAAGA,QAAQ;QAAC;IACvB;AACF;AAEO,eAAeN,kBACpBK,YAA6B,EAC7BH,WAA2C,EAC3CU,QAAwB;IAExB,MAAML,qBAAqBN,0BAA0BC;IAErD,IAAI,CAACK,oBAAoB;QACvB;IACF;IAEA,IAAI;QACF,MAAMF,aAAaQ,GAAG,CAACN,mBAAmBH,GAAG,EAAE;YAAE,GAAGQ,QAAQ;QAAC;IAC/D,EAAE,OAAM;IACN,iEAAiE;IACnE;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/kernel/manager/logger/logger.persistence.ts"],"sourcesContent":["import type { StorageInstance } from '@vlian/utils';\nimport type { PersistenceOptions } from '../../types';\nimport { normalizeLoggerSnapshot, type LoggerSnapshot } from './logger.schema';\n\nexport const DEFAULT_LOGGER_CACHE_KEY = 'vlian:kernel:logger-level';\n\ntype ResolvedPersistenceContext = {\n key: string;\n};\n\nfunction resolvePersistenceContext(\n persistence: PersistenceOptions | undefined\n): ResolvedPersistenceContext | null {\n if (persistence?.enabled !== true) {\n return null;\n }\n\n return {\n key: persistence.key || DEFAULT_LOGGER_CACHE_KEY,\n };\n}\n\nexport async function loadLoggerFromCache(\n cacheManager: StorageInstance,\n persistence: PersistenceOptions | undefined,\n fallback: LoggerSnapshot\n): Promise<LoggerSnapshot> {\n const persistenceContext = resolvePersistenceContext(persistence);\n\n if (!persistenceContext) {\n return { ...fallback };\n }\n\n try {\n const cached = await cacheManager.get<LoggerSnapshot | string | number>(persistenceContext.key, {\n defaultValue: fallback,\n });\n return normalizeLoggerSnapshot(cached, fallback);\n } catch {\n return { ...fallback };\n }\n}\n\nexport async function saveLoggerToCache(\n cacheManager: StorageInstance,\n persistence: PersistenceOptions | undefined,\n snapshot: LoggerSnapshot\n): Promise<void> {\n const persistenceContext = resolvePersistenceContext(persistence);\n\n if (!persistenceContext) {\n return;\n }\n\n try {\n await cacheManager.set(persistenceContext.key, { ...snapshot });\n } catch {\n // Ignore persistence failures and keep logger updates in memory.\n }\n}\n"],"names":["normalizeLoggerSnapshot","DEFAULT_LOGGER_CACHE_KEY","resolvePersistenceContext","persistence","enabled","key","loadLoggerFromCache","cacheManager","fallback","persistenceContext","cached","get","defaultValue","saveLoggerToCache","snapshot","set"],"mappings":"AAEA,SAASA,uBAAuB,QAA6B,kBAAkB;AAE/E,OAAO,MAAMC,2BAA2B,4BAA4B;AAMpE,SAASC,0BACPC,WAA2C;IAE3C,IAAIA,aAAaC,YAAY,MAAM;QACjC,OAAO;IACT;IAEA,OAAO;QACLC,KAAKF,YAAYE,GAAG,IAAIJ;IAC1B;AACF;AAEA,OAAO,eAAeK,oBACpBC,YAA6B,EAC7BJ,WAA2C,EAC3CK,QAAwB;IAExB,MAAMC,qBAAqBP,0BAA0BC;IAErD,IAAI,CAACM,oBAAoB;QACvB,OAAO;YAAE,GAAGD,QAAQ;QAAC;IACvB;IAEA,IAAI;QACF,MAAME,SAAS,MAAMH,aAAaI,GAAG,CAAmCF,mBAAmBJ,GAAG,EAAE;YAC9FO,cAAcJ;QAChB;QACA,OAAOR,wBAAwBU,QAAQF;IACzC,EAAE,OAAM;QACN,OAAO;YAAE,GAAGA,QAAQ;QAAC;IACvB;AACF;AAEA,OAAO,eAAeK,kBACpBN,YAA6B,EAC7BJ,WAA2C,EAC3CW,QAAwB;IAExB,MAAML,qBAAqBP,0BAA0BC;IAErD,IAAI,CAACM,oBAAoB;QACvB;IACF;IAEA,IAAI;QACF,MAAMF,aAAaQ,GAAG,CAACN,mBAAmBJ,GAAG,EAAE;YAAE,GAAGS,QAAQ;QAAC;IAC/D,EAAE,OAAM;IACN,iEAAiE;IACnE;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/kernel/manager/logger/logger.schema.ts"],"sourcesContent":["import { LogLevel } from '@vlian/logger';\n\nexport type LoggerSnapshot = {\n level: LogLevel;\n};\n\nexport type LoggerListener = (next: LoggerSnapshot, prev: LoggerSnapshot) => void;\n\nexport function normalizeLogLevel(value: unknown, fallback: LogLevel): LogLevel {\n if (typeof value === 'number' && Number.isInteger(value)) {\n switch (value) {\n case LogLevel.DEBUG:\n case LogLevel.INFO:\n case LogLevel.WARN:\n case LogLevel.ERROR:\n case LogLevel.NONE:\n return value;\n default:\n return fallback;\n }\n }\n\n if (typeof value !== 'string') {\n return fallback;\n }\n\n const normalized = value.trim();\n if (!normalized) {\n return fallback;\n }\n\n if (/^\\d+$/.test(normalized)) {\n return normalizeLogLevel(Number(normalized), fallback);\n }\n\n switch (normalized.toUpperCase()) {\n case 'DEBUG':\n return LogLevel.DEBUG;\n case 'INFO':\n return LogLevel.INFO;\n case 'WARN':\n return LogLevel.WARN;\n case 'ERROR':\n return LogLevel.ERROR;\n case 'NONE':\n return LogLevel.NONE;\n default:\n return fallback;\n }\n}\n\nexport function normalizeLoggerSnapshot(\n value: unknown,\n fallback: LoggerSnapshot\n): LoggerSnapshot {\n if (typeof value === 'number' || typeof value === 'string') {\n return {\n level: normalizeLogLevel(value, fallback.level),\n };\n }\n\n const source = value && typeof value === 'object' ? (value as Partial<LoggerSnapshot>) : {};\n\n return {\n level: normalizeLogLevel(source.level, fallback.level),\n };\n}\n\nexport function isLoggerEqual(left: LoggerSnapshot, right: LoggerSnapshot): boolean {\n return left.level === right.level;\n}\n"],"names":["isLoggerEqual","normalizeLogLevel","normalizeLoggerSnapshot","value","fallback","Number","isInteger","LogLevel","DEBUG","INFO","WARN","ERROR","NONE","normalized","trim","test","toUpperCase","level","source","left","right"],"mappings":";;;;;;;;;;;QAoEgBA;eAAAA;;QA5DAC;eAAAA;;QA2CAC;eAAAA;;;wBAnDS;AAQlB,SAASD,kBAAkBE,KAAc,EAAEC,QAAkB;IAClE,IAAI,OAAOD,UAAU,YAAYE,OAAOC,SAAS,CAACH,QAAQ;QACxD,OAAQA;YACN,KAAKI,gBAAQ,CAACC,KAAK;YACnB,KAAKD,gBAAQ,CAACE,IAAI;YAClB,KAAKF,gBAAQ,CAACG,IAAI;YAClB,KAAKH,gBAAQ,CAACI,KAAK;YACnB,KAAKJ,gBAAQ,CAACK,IAAI;gBAChB,OAAOT;YACT;gBACE,OAAOC;QACX;IACF;IAEA,IAAI,OAAOD,UAAU,UAAU;QAC7B,OAAOC;IACT;IAEA,MAAMS,aAAaV,MAAMW,IAAI;IAC7B,IAAI,CAACD,YAAY;QACf,OAAOT;IACT;IAEA,IAAI,QAAQW,IAAI,CAACF,aAAa;QAC5B,OAAOZ,kBAAkBI,OAAOQ,aAAaT;IAC/C;IAEA,OAAQS,WAAWG,WAAW;QAC5B,KAAK;YACH,OAAOT,gBAAQ,CAACC,KAAK;QACvB,KAAK;YACH,OAAOD,gBAAQ,CAACE,IAAI;QACtB,KAAK;YACH,OAAOF,gBAAQ,CAACG,IAAI;QACtB,KAAK;YACH,OAAOH,gBAAQ,CAACI,KAAK;QACvB,KAAK;YACH,OAAOJ,gBAAQ,CAACK,IAAI;QACtB;YACE,OAAOR;IACX;AACF;AAEO,SAASF,wBACdC,KAAc,EACdC,QAAwB;IAExB,IAAI,OAAOD,UAAU,YAAY,OAAOA,UAAU,UAAU;QAC1D,OAAO;YACLc,OAAOhB,kBAAkBE,OAAOC,SAASa,KAAK;QAChD;IACF;IAEA,MAAMC,SAASf,SAAS,OAAOA,UAAU,WAAYA,QAAoC,CAAC;IAE1F,OAAO;QACLc,OAAOhB,kBAAkBiB,OAAOD,KAAK,EAAEb,SAASa,KAAK;IACvD;AACF;AAEO,SAASjB,cAAcmB,IAAoB,EAAEC,KAAqB;IACvE,OAAOD,KAAKF,KAAK,KAAKG,MAAMH,KAAK;AACnC"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/kernel/manager/logger/logger.schema.ts"],"sourcesContent":["import { LogLevel } from '@vlian/logger';\n\nexport type LoggerSnapshot = {\n level: LogLevel;\n};\n\nexport type LoggerListener = (next: LoggerSnapshot, prev: LoggerSnapshot) => void;\n\nexport function normalizeLogLevel(value: unknown, fallback: LogLevel): LogLevel {\n if (typeof value === 'number' && Number.isInteger(value)) {\n switch (value) {\n case LogLevel.DEBUG:\n case LogLevel.INFO:\n case LogLevel.WARN:\n case LogLevel.ERROR:\n case LogLevel.NONE:\n return value;\n default:\n return fallback;\n }\n }\n\n if (typeof value !== 'string') {\n return fallback;\n }\n\n const normalized = value.trim();\n if (!normalized) {\n return fallback;\n }\n\n if (/^\\d+$/.test(normalized)) {\n return normalizeLogLevel(Number(normalized), fallback);\n }\n\n switch (normalized.toUpperCase()) {\n case 'DEBUG':\n return LogLevel.DEBUG;\n case 'INFO':\n return LogLevel.INFO;\n case 'WARN':\n return LogLevel.WARN;\n case 'ERROR':\n return LogLevel.ERROR;\n case 'NONE':\n return LogLevel.NONE;\n default:\n return fallback;\n }\n}\n\nexport function normalizeLoggerSnapshot(\n value: unknown,\n fallback: LoggerSnapshot\n): LoggerSnapshot {\n if (typeof value === 'number' || typeof value === 'string') {\n return {\n level: normalizeLogLevel(value, fallback.level),\n };\n }\n\n const source = value && typeof value === 'object' ? (value as Partial<LoggerSnapshot>) : {};\n\n return {\n level: normalizeLogLevel(source.level, fallback.level),\n };\n}\n\nexport function isLoggerEqual(left: LoggerSnapshot, right: LoggerSnapshot): boolean {\n return left.level === right.level;\n}\n"],"names":["LogLevel","normalizeLogLevel","value","fallback","Number","isInteger","DEBUG","INFO","WARN","ERROR","NONE","normalized","trim","test","toUpperCase","normalizeLoggerSnapshot","level","source","isLoggerEqual","left","right"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,gBAAgB;AAQzC,OAAO,SAASC,kBAAkBC,KAAc,EAAEC,QAAkB;IAClE,IAAI,OAAOD,UAAU,YAAYE,OAAOC,SAAS,CAACH,QAAQ;QACxD,OAAQA;YACN,KAAKF,SAASM,KAAK;YACnB,KAAKN,SAASO,IAAI;YAClB,KAAKP,SAASQ,IAAI;YAClB,KAAKR,SAASS,KAAK;YACnB,KAAKT,SAASU,IAAI;gBAChB,OAAOR;YACT;gBACE,OAAOC;QACX;IACF;IAEA,IAAI,OAAOD,UAAU,UAAU;QAC7B,OAAOC;IACT;IAEA,MAAMQ,aAAaT,MAAMU,IAAI;IAC7B,IAAI,CAACD,YAAY;QACf,OAAOR;IACT;IAEA,IAAI,QAAQU,IAAI,CAACF,aAAa;QAC5B,OAAOV,kBAAkBG,OAAOO,aAAaR;IAC/C;IAEA,OAAQQ,WAAWG,WAAW;QAC5B,KAAK;YACH,OAAOd,SAASM,KAAK;QACvB,KAAK;YACH,OAAON,SAASO,IAAI;QACtB,KAAK;YACH,OAAOP,SAASQ,IAAI;QACtB,KAAK;YACH,OAAOR,SAASS,KAAK;QACvB,KAAK;YACH,OAAOT,SAASU,IAAI;QACtB;YACE,OAAOP;IACX;AACF;AAEA,OAAO,SAASY,wBACdb,KAAc,EACdC,QAAwB;IAExB,IAAI,OAAOD,UAAU,YAAY,OAAOA,UAAU,UAAU;QAC1D,OAAO;YACLc,OAAOf,kBAAkBC,OAAOC,SAASa,KAAK;QAChD;IACF;IAEA,MAAMC,SAASf,SAAS,OAAOA,UAAU,WAAYA,QAAoC,CAAC;IAE1F,OAAO;QACLc,OAAOf,kBAAkBgB,OAAOD,KAAK,EAAEb,SAASa,KAAK;IACvD;AACF;AAEA,OAAO,SAASE,cAAcC,IAAoB,EAAEC,KAAqB;IACvE,OAAOD,KAAKH,KAAK,KAAKI,MAAMJ,KAAK;AACnC"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/kernel/manager/loggerManager.ts"],"sourcesContent":["export { LoggerManager } from './logger';\n"],"names":["LoggerManager"],"mappings":";;;;+BAASA;;;eAAAA,qBAAa;;;wBAAQ"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/kernel/manager/loggerManager.ts"],"sourcesContent":["export { LoggerManager } from './logger';\n"],"names":["LoggerManager"],"mappings":"AAAA,SAASA,aAAa,QAAQ,WAAW"}
@@ -1,78 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: Object.getOwnPropertyDescriptor(all, name).get
9
- });
10
- }
11
- _export(exports, {
12
- get readPersistedValue () {
13
- return readPersistedValue;
14
- },
15
- get writePersistedValue () {
16
- return writePersistedValue;
17
- }
18
- });
19
- const _library = require("../../library");
20
- const _utils = require("@/utils");
21
- function resolveStorageInstance(driver) {
22
- if (driver === 'none' || typeof window === 'undefined') {
23
- return null;
24
- }
25
- const instance = driver === 'localStorage' ? _library.storage.local : driver === 'sessionStorage' ? _library.storage.session : _library.storage.indexedDB;
26
- if (!instance || typeof instance.get !== 'function' || typeof instance.set !== 'function') {
27
- return null;
28
- }
29
- return instance;
30
- }
31
- async function readPersistedValue(persistence) {
32
- if (!persistence || persistence.enabled === false) {
33
- return null;
34
- }
35
- const driver = persistence.storage ?? 'localStorage';
36
- const key = persistence.key;
37
- if (!key) {
38
- return null;
39
- }
40
- const targetStorage = resolveStorageInstance(driver);
41
- if (!targetStorage) {
42
- return null;
43
- }
44
- try {
45
- const value = await targetStorage.get(key);
46
- if (value === null || value === undefined) {
47
- return null;
48
- }
49
- if (typeof value === 'string') {
50
- return value;
51
- }
52
- return JSON.stringify(value);
53
- } catch {
54
- return null;
55
- }
56
- }
57
- async function writePersistedValue(persistence, value) {
58
- if (!persistence || persistence.enabled === false) {
59
- return;
60
- }
61
- const driver = persistence.storage ?? 'localStorage';
62
- const key = persistence.key;
63
- if (!key) {
64
- return;
65
- }
66
- const targetStorage = resolveStorageInstance(driver);
67
- if (!targetStorage) {
68
- return;
69
- }
70
- try {
71
- await targetStorage.set(key, value);
72
- } catch (e) {
73
- _utils.logger.error(e);
74
- // ignore persistence errors
75
- }
76
- }
77
-
78
- //# sourceMappingURL=persistence.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/kernel/manager/persistence.ts"],"sourcesContent":["import { storage } from '../../library';\nimport type { KernelStorageDriver, PersistenceOptions } from '../types';\nimport {logger} from \"@/utils\";\n\ntype StorageLike = {\n get: (key: string) => Promise<unknown>;\n set: (key: string, value: unknown) => Promise<void>;\n};\n\nfunction resolveStorageInstance(driver: KernelStorageDriver): StorageLike | null {\n if (driver === 'none' || typeof window === 'undefined') {\n return null;\n }\n\n const instance = driver === 'localStorage'\n ? storage.local\n : driver === 'sessionStorage'\n ? storage.session\n : storage.indexedDB;\n\n if (!instance || typeof (instance as any).get !== 'function' || typeof (instance as any).set !== 'function') {\n return null;\n }\n\n return instance as unknown as StorageLike;\n}\n\nexport async function readPersistedValue(\n persistence: PersistenceOptions | undefined\n): Promise<string | null> {\n if (!persistence || persistence.enabled === false) {\n return null;\n }\n\n const driver = persistence.storage ?? 'localStorage';\n const key = persistence.key;\n if (!key) {\n return null;\n }\n\n const targetStorage = resolveStorageInstance(driver);\n if (!targetStorage) {\n return null;\n }\n\n try {\n const value = await targetStorage.get(key);\n if (value === null || value === undefined) {\n return null;\n }\n if (typeof value === 'string') {\n return value;\n }\n return JSON.stringify(value);\n } catch {\n return null;\n }\n}\n\nexport async function writePersistedValue(\n persistence: PersistenceOptions | undefined,\n value: string\n): Promise<void> {\n if (!persistence || persistence.enabled === false) {\n return;\n }\n\n const driver = persistence.storage ?? 'localStorage';\n const key = persistence.key;\n if (!key) {\n return;\n }\n\n const targetStorage = resolveStorageInstance(driver);\n if (!targetStorage) {\n return;\n }\n\n try {\n await targetStorage.set(key, value);\n } catch(e) {\n logger.error(e);\n // ignore persistence errors\n }\n}\n"],"names":["readPersistedValue","writePersistedValue","resolveStorageInstance","driver","window","instance","storage","local","session","indexedDB","get","set","persistence","enabled","key","targetStorage","value","undefined","JSON","stringify","e","logger","error"],"mappings":";;;;;;;;;;;QA2BsBA;eAAAA;;QAgCAC;eAAAA;;;yBA3DE;uBAEH;AAOrB,SAASC,uBAAuBC,MAA2B;IACzD,IAAIA,WAAW,UAAU,OAAOC,WAAW,aAAa;QACtD,OAAO;IACT;IAEA,MAAMC,WAAWF,WAAW,iBACxBG,gBAAO,CAACC,KAAK,GACbJ,WAAW,mBACTG,gBAAO,CAACE,OAAO,GACfF,gBAAO,CAACG,SAAS;IAEvB,IAAI,CAACJ,YAAY,OAAO,AAACA,SAAiBK,GAAG,KAAK,cAAc,OAAO,AAACL,SAAiBM,GAAG,KAAK,YAAY;QAC3G,OAAO;IACT;IAEA,OAAON;AACT;AAEO,eAAeL,mBACpBY,WAA2C;IAE3C,IAAI,CAACA,eAAeA,YAAYC,OAAO,KAAK,OAAO;QACjD,OAAO;IACT;IAEA,MAAMV,SAASS,YAAYN,OAAO,IAAI;IACtC,MAAMQ,MAAMF,YAAYE,GAAG;IAC3B,IAAI,CAACA,KAAK;QACR,OAAO;IACT;IAEA,MAAMC,gBAAgBb,uBAAuBC;IAC7C,IAAI,CAACY,eAAe;QAClB,OAAO;IACT;IAEA,IAAI;QACF,MAAMC,QAAQ,MAAMD,cAAcL,GAAG,CAACI;QACtC,IAAIE,UAAU,QAAQA,UAAUC,WAAW;YACzC,OAAO;QACT;QACA,IAAI,OAAOD,UAAU,UAAU;YAC7B,OAAOA;QACT;QACA,OAAOE,KAAKC,SAAS,CAACH;IACxB,EAAE,OAAM;QACN,OAAO;IACT;AACF;AAEO,eAAef,oBACpBW,WAA2C,EAC3CI,KAAa;IAEb,IAAI,CAACJ,eAAeA,YAAYC,OAAO,KAAK,OAAO;QACjD;IACF;IAEA,MAAMV,SAASS,YAAYN,OAAO,IAAI;IACtC,MAAMQ,MAAMF,YAAYE,GAAG;IAC3B,IAAI,CAACA,KAAK;QACR;IACF;IAEA,MAAMC,gBAAgBb,uBAAuBC;IAC7C,IAAI,CAACY,eAAe;QAClB;IACF;IAEA,IAAI;QACF,MAAMA,cAAcJ,GAAG,CAACG,KAAKE;IAC/B,EAAE,OAAMI,GAAG;QACTC,aAAM,CAACC,KAAK,CAACF;IACb,4BAA4B;IAC9B;AACF"}
@@ -1,3 +0,0 @@
1
- import type { PersistenceOptions } from '../types';
2
- export declare function readPersistedValue(persistence: PersistenceOptions | undefined): Promise<string | null>;
3
- export declare function writePersistedValue(persistence: PersistenceOptions | undefined, value: string): Promise<void>;
@@ -1,60 +0,0 @@
1
- import { storage } from "../../library";
2
- import { logger } from "@/utils";
3
- function resolveStorageInstance(driver) {
4
- if (driver === 'none' || typeof window === 'undefined') {
5
- return null;
6
- }
7
- const instance = driver === 'localStorage' ? storage.local : driver === 'sessionStorage' ? storage.session : storage.indexedDB;
8
- if (!instance || typeof instance.get !== 'function' || typeof instance.set !== 'function') {
9
- return null;
10
- }
11
- return instance;
12
- }
13
- export async function readPersistedValue(persistence) {
14
- if (!persistence || persistence.enabled === false) {
15
- return null;
16
- }
17
- const driver = persistence.storage ?? 'localStorage';
18
- const key = persistence.key;
19
- if (!key) {
20
- return null;
21
- }
22
- const targetStorage = resolveStorageInstance(driver);
23
- if (!targetStorage) {
24
- return null;
25
- }
26
- try {
27
- const value = await targetStorage.get(key);
28
- if (value === null || value === undefined) {
29
- return null;
30
- }
31
- if (typeof value === 'string') {
32
- return value;
33
- }
34
- return JSON.stringify(value);
35
- } catch {
36
- return null;
37
- }
38
- }
39
- export async function writePersistedValue(persistence, value) {
40
- if (!persistence || persistence.enabled === false) {
41
- return;
42
- }
43
- const driver = persistence.storage ?? 'localStorage';
44
- const key = persistence.key;
45
- if (!key) {
46
- return;
47
- }
48
- const targetStorage = resolveStorageInstance(driver);
49
- if (!targetStorage) {
50
- return;
51
- }
52
- try {
53
- await targetStorage.set(key, value);
54
- } catch (e) {
55
- logger.error(e);
56
- // ignore persistence errors
57
- }
58
- }
59
-
60
- //# sourceMappingURL=persistence.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/kernel/manager/persistence.ts"],"sourcesContent":["import { storage } from '../../library';\nimport type { KernelStorageDriver, PersistenceOptions } from '../types';\nimport {logger} from \"@/utils\";\n\ntype StorageLike = {\n get: (key: string) => Promise<unknown>;\n set: (key: string, value: unknown) => Promise<void>;\n};\n\nfunction resolveStorageInstance(driver: KernelStorageDriver): StorageLike | null {\n if (driver === 'none' || typeof window === 'undefined') {\n return null;\n }\n\n const instance = driver === 'localStorage'\n ? storage.local\n : driver === 'sessionStorage'\n ? storage.session\n : storage.indexedDB;\n\n if (!instance || typeof (instance as any).get !== 'function' || typeof (instance as any).set !== 'function') {\n return null;\n }\n\n return instance as unknown as StorageLike;\n}\n\nexport async function readPersistedValue(\n persistence: PersistenceOptions | undefined\n): Promise<string | null> {\n if (!persistence || persistence.enabled === false) {\n return null;\n }\n\n const driver = persistence.storage ?? 'localStorage';\n const key = persistence.key;\n if (!key) {\n return null;\n }\n\n const targetStorage = resolveStorageInstance(driver);\n if (!targetStorage) {\n return null;\n }\n\n try {\n const value = await targetStorage.get(key);\n if (value === null || value === undefined) {\n return null;\n }\n if (typeof value === 'string') {\n return value;\n }\n return JSON.stringify(value);\n } catch {\n return null;\n }\n}\n\nexport async function writePersistedValue(\n persistence: PersistenceOptions | undefined,\n value: string\n): Promise<void> {\n if (!persistence || persistence.enabled === false) {\n return;\n }\n\n const driver = persistence.storage ?? 'localStorage';\n const key = persistence.key;\n if (!key) {\n return;\n }\n\n const targetStorage = resolveStorageInstance(driver);\n if (!targetStorage) {\n return;\n }\n\n try {\n await targetStorage.set(key, value);\n } catch(e) {\n logger.error(e);\n // ignore persistence errors\n }\n}\n"],"names":["storage","logger","resolveStorageInstance","driver","window","instance","local","session","indexedDB","get","set","readPersistedValue","persistence","enabled","key","targetStorage","value","undefined","JSON","stringify","writePersistedValue","e","error"],"mappings":"AAAA,SAASA,OAAO,QAAQ,gBAAgB;AAExC,SAAQC,MAAM,QAAO,UAAU;AAO/B,SAASC,uBAAuBC,MAA2B;IACzD,IAAIA,WAAW,UAAU,OAAOC,WAAW,aAAa;QACtD,OAAO;IACT;IAEA,MAAMC,WAAWF,WAAW,iBACxBH,QAAQM,KAAK,GACbH,WAAW,mBACTH,QAAQO,OAAO,GACfP,QAAQQ,SAAS;IAEvB,IAAI,CAACH,YAAY,OAAO,AAACA,SAAiBI,GAAG,KAAK,cAAc,OAAO,AAACJ,SAAiBK,GAAG,KAAK,YAAY;QAC3G,OAAO;IACT;IAEA,OAAOL;AACT;AAEA,OAAO,eAAeM,mBACpBC,WAA2C;IAE3C,IAAI,CAACA,eAAeA,YAAYC,OAAO,KAAK,OAAO;QACjD,OAAO;IACT;IAEA,MAAMV,SAASS,YAAYZ,OAAO,IAAI;IACtC,MAAMc,MAAMF,YAAYE,GAAG;IAC3B,IAAI,CAACA,KAAK;QACR,OAAO;IACT;IAEA,MAAMC,gBAAgBb,uBAAuBC;IAC7C,IAAI,CAACY,eAAe;QAClB,OAAO;IACT;IAEA,IAAI;QACF,MAAMC,QAAQ,MAAMD,cAAcN,GAAG,CAACK;QACtC,IAAIE,UAAU,QAAQA,UAAUC,WAAW;YACzC,OAAO;QACT;QACA,IAAI,OAAOD,UAAU,UAAU;YAC7B,OAAOA;QACT;QACA,OAAOE,KAAKC,SAAS,CAACH;IACxB,EAAE,OAAM;QACN,OAAO;IACT;AACF;AAEA,OAAO,eAAeI,oBACpBR,WAA2C,EAC3CI,KAAa;IAEb,IAAI,CAACJ,eAAeA,YAAYC,OAAO,KAAK,OAAO;QACjD;IACF;IAEA,MAAMV,SAASS,YAAYZ,OAAO,IAAI;IACtC,MAAMc,MAAMF,YAAYE,GAAG;IAC3B,IAAI,CAACA,KAAK;QACR;IACF;IAEA,MAAMC,gBAAgBb,uBAAuBC;IAC7C,IAAI,CAACY,eAAe;QAClB;IACF;IAEA,IAAI;QACF,MAAMA,cAAcL,GAAG,CAACI,KAAKE;IAC/B,EAAE,OAAMK,GAAG;QACTpB,OAAOqB,KAAK,CAACD;IACb,4BAA4B;IAC9B;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/kernel/manager/theme/ThemeManager.ts"],"sourcesContent":["import type { StorageInstance } from '@vlian/utils';\nimport { DEFAULT_CONFIG, DEFAULT_THEME } from '../../constants';\nimport type { KernelConfig, KernelManager, KernelManagerContext, ThemeSnapshot } from '../../types';\nimport { applyThemeToDocument } from './theme.dom';\nimport { loadThemeFromCache, saveThemeToCache } from './theme.persistence';\nimport { cloneTheme, isThemeEqual, mergeTheme, normalizeTheme, type ThemeListener } from './theme.schema';\n\nexport class ThemeManager implements KernelManager<ThemeSnapshot> {\n private theme: ThemeSnapshot = cloneTheme(DEFAULT_THEME);\n private config: KernelConfig['theme'] = DEFAULT_CONFIG.theme;\n private listeners = new Set<ThemeListener>();\n private cacheManager: StorageInstance | null = null;\n private initialized = false;\n\n public async initialize(context: KernelManagerContext): Promise<void> {\n this.config = context.config.theme;\n this.cacheManager = context.cacheManager;\n\n const initialTheme = normalizeTheme(this.config.initial || {}, DEFAULT_THEME);\n this.theme = await loadThemeFromCache(this.cacheManager, this.config.persistence, initialTheme);\n\n applyThemeToDocument(this.theme);\n this.initialized = true;\n }\n\n public getTheme(): ThemeSnapshot {\n return cloneTheme(this.theme);\n }\n\n public getSnapshot(): ThemeSnapshot {\n return this.getTheme();\n }\n\n public subscribe(listener: ThemeListener): () => void {\n this.listeners.add(listener);\n\n return () => {\n this.listeners.delete(listener);\n };\n }\n\n public async setTheme(nextTheme: ThemeSnapshot): Promise<void> {\n this.ensureInitialized();\n\n const prevTheme = this.theme;\n const mergedTheme = mergeTheme(prevTheme, nextTheme);\n\n if (isThemeEqual(prevTheme, mergedTheme)) {\n return;\n }\n\n this.theme = mergedTheme;\n applyThemeToDocument(this.theme, prevTheme);\n\n if (this.cacheManager) {\n await saveThemeToCache(this.cacheManager, this.config.persistence, this.theme);\n }\n\n this.emit(this.theme, prevTheme);\n }\n\n private ensureInitialized(): void {\n if (!this.initialized) {\n throw new Error('ThemeManager must be initialized before use.');\n }\n }\n\n private emit(next: ThemeSnapshot, prev: ThemeSnapshot): void {\n for (const listener of this.listeners) {\n try {\n listener(cloneTheme(next), cloneTheme(prev));\n } catch {\n // Keep notifying remaining listeners even if one fails.\n }\n }\n }\n}\n"],"names":["ThemeManager","initialize","context","config","theme","cacheManager","initialTheme","normalizeTheme","initial","DEFAULT_THEME","loadThemeFromCache","persistence","applyThemeToDocument","initialized","getTheme","cloneTheme","getSnapshot","subscribe","listener","listeners","add","delete","setTheme","nextTheme","ensureInitialized","prevTheme","mergedTheme","mergeTheme","isThemeEqual","saveThemeToCache","emit","Error","next","prev","DEFAULT_CONFIG","Set"],"mappings":";;;;+BAOaA;;;eAAAA;;;2BANiC;0BAET;kCACgB;6BACoC;;;;;;;;;;;;;;AAElF,IAAA,AAAMA,eAAN,MAAMA;IAOX,MAAaC,WAAWC,OAA6B,EAAiB;QACpE,IAAI,CAACC,MAAM,GAAGD,QAAQC,MAAM,CAACC,KAAK;QAClC,IAAI,CAACC,YAAY,GAAGH,QAAQG,YAAY;QAExC,MAAMC,eAAeC,IAAAA,2BAAc,EAAC,IAAI,CAACJ,MAAM,CAACK,OAAO,IAAI,CAAC,GAAGC,wBAAa;QAC5E,IAAI,CAACL,KAAK,GAAG,MAAMM,IAAAA,oCAAkB,EAAC,IAAI,CAACL,YAAY,EAAE,IAAI,CAACF,MAAM,CAACQ,WAAW,EAAEL;QAElFM,IAAAA,8BAAoB,EAAC,IAAI,CAACR,KAAK;QAC/B,IAAI,CAACS,WAAW,GAAG;IACrB;IAEOC,WAA0B;QAC/B,OAAOC,IAAAA,uBAAU,EAAC,IAAI,CAACX,KAAK;IAC9B;IAEOY,cAA6B;QAClC,OAAO,IAAI,CAACF,QAAQ;IACtB;IAEOG,UAAUC,QAAuB,EAAc;QACpD,IAAI,CAACC,SAAS,CAACC,GAAG,CAACF;QAEnB,OAAO;YACL,IAAI,CAACC,SAAS,CAACE,MAAM,CAACH;QACxB;IACF;IAEA,MAAaI,SAASC,SAAwB,EAAiB;QAC7D,IAAI,CAACC,iBAAiB;QAEtB,MAAMC,YAAY,IAAI,CAACrB,KAAK;QAC5B,MAAMsB,cAAcC,IAAAA,uBAAU,EAACF,WAAWF;QAE1C,IAAIK,IAAAA,yBAAY,EAACH,WAAWC,cAAc;YACxC;QACF;QAEA,IAAI,CAACtB,KAAK,GAAGsB;QACbd,IAAAA,8BAAoB,EAAC,IAAI,CAACR,KAAK,EAAEqB;QAEjC,IAAI,IAAI,CAACpB,YAAY,EAAE;YACrB,MAAMwB,IAAAA,kCAAgB,EAAC,IAAI,CAACxB,YAAY,EAAE,IAAI,CAACF,MAAM,CAACQ,WAAW,EAAE,IAAI,CAACP,KAAK;QAC/E;QAEA,IAAI,CAAC0B,IAAI,CAAC,IAAI,CAAC1B,KAAK,EAAEqB;IACxB;IAEQD,oBAA0B;QAChC,IAAI,CAAC,IAAI,CAACX,WAAW,EAAE;YACrB,MAAM,IAAIkB,MAAM;QAClB;IACF;IAEQD,KAAKE,IAAmB,EAAEC,IAAmB,EAAQ;QAC3D,KAAK,MAAMf,YAAY,IAAI,CAACC,SAAS,CAAE;YACrC,IAAI;gBACFD,SAASH,IAAAA,uBAAU,EAACiB,OAAOjB,IAAAA,uBAAU,EAACkB;YACxC,EAAE,OAAM;YACN,wDAAwD;YAC1D;QACF;IACF;;QAnEA,uBAAQ7B,SAAuBW,IAAAA,uBAAU,EAACN,wBAAa;QACvD,uBAAQN,UAAgC+B,yBAAc,CAAC9B,KAAK;QAC5D,uBAAQe,aAAY,IAAIgB;QACxB,uBAAQ9B,gBAAuC;QAC/C,uBAAQQ,eAAc;;AAgExB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/kernel/manager/theme/ThemeManager.ts"],"sourcesContent":["import type { StorageInstance } from '@vlian/utils';\nimport { DEFAULT_CONFIG, DEFAULT_THEME } from '../../constants';\nimport type { KernelConfig, KernelManager, KernelManagerContext, ThemeSnapshot } from '../../types';\nimport { applyThemeToDocument } from './theme.dom';\nimport { loadThemeFromCache, saveThemeToCache } from './theme.persistence';\nimport { cloneTheme, isThemeEqual, mergeTheme, normalizeTheme, type ThemeListener } from './theme.schema';\n\nexport class ThemeManager implements KernelManager<ThemeSnapshot> {\n private theme: ThemeSnapshot = cloneTheme(DEFAULT_THEME);\n private config: KernelConfig['theme'] = DEFAULT_CONFIG.theme;\n private listeners = new Set<ThemeListener>();\n private cacheManager: StorageInstance | null = null;\n private initialized = false;\n\n public async initialize(context: KernelManagerContext): Promise<void> {\n this.config = context.config.theme;\n this.cacheManager = context.cacheManager;\n\n const initialTheme = normalizeTheme(this.config.initial || {}, DEFAULT_THEME);\n this.theme = await loadThemeFromCache(this.cacheManager, this.config.persistence, initialTheme);\n\n applyThemeToDocument(this.theme);\n this.initialized = true;\n }\n\n public getTheme(): ThemeSnapshot {\n return cloneTheme(this.theme);\n }\n\n public getSnapshot(): ThemeSnapshot {\n return this.getTheme();\n }\n\n public subscribe(listener: ThemeListener): () => void {\n this.listeners.add(listener);\n\n return () => {\n this.listeners.delete(listener);\n };\n }\n\n public async setTheme(nextTheme: ThemeSnapshot): Promise<void> {\n this.ensureInitialized();\n\n const prevTheme = this.theme;\n const mergedTheme = mergeTheme(prevTheme, nextTheme);\n\n if (isThemeEqual(prevTheme, mergedTheme)) {\n return;\n }\n\n this.theme = mergedTheme;\n applyThemeToDocument(this.theme, prevTheme);\n\n if (this.cacheManager) {\n await saveThemeToCache(this.cacheManager, this.config.persistence, this.theme);\n }\n\n this.emit(this.theme, prevTheme);\n }\n\n private ensureInitialized(): void {\n if (!this.initialized) {\n throw new Error('ThemeManager must be initialized before use.');\n }\n }\n\n private emit(next: ThemeSnapshot, prev: ThemeSnapshot): void {\n for (const listener of this.listeners) {\n try {\n listener(cloneTheme(next), cloneTheme(prev));\n } catch {\n // Keep notifying remaining listeners even if one fails.\n }\n }\n }\n}\n"],"names":["DEFAULT_CONFIG","DEFAULT_THEME","applyThemeToDocument","loadThemeFromCache","saveThemeToCache","cloneTheme","isThemeEqual","mergeTheme","normalizeTheme","ThemeManager","initialize","context","config","theme","cacheManager","initialTheme","initial","persistence","initialized","getTheme","getSnapshot","subscribe","listener","listeners","add","delete","setTheme","nextTheme","ensureInitialized","prevTheme","mergedTheme","emit","Error","next","prev","Set"],"mappings":";;;;;;;;;;;;;AACA,SAASA,cAAc,EAAEC,aAAa,QAAQ,kBAAkB;AAEhE,SAASC,oBAAoB,QAAQ,cAAc;AACnD,SAASC,kBAAkB,EAAEC,gBAAgB,QAAQ,sBAAsB;AAC3E,SAASC,UAAU,EAAEC,YAAY,EAAEC,UAAU,EAAEC,cAAc,QAA4B,iBAAiB;AAE1G,OAAO,MAAMC;IAOX,MAAaC,WAAWC,OAA6B,EAAiB;QACpE,IAAI,CAACC,MAAM,GAAGD,QAAQC,MAAM,CAACC,KAAK;QAClC,IAAI,CAACC,YAAY,GAAGH,QAAQG,YAAY;QAExC,MAAMC,eAAeP,eAAe,IAAI,CAACI,MAAM,CAACI,OAAO,IAAI,CAAC,GAAGf;QAC/D,IAAI,CAACY,KAAK,GAAG,MAAMV,mBAAmB,IAAI,CAACW,YAAY,EAAE,IAAI,CAACF,MAAM,CAACK,WAAW,EAAEF;QAElFb,qBAAqB,IAAI,CAACW,KAAK;QAC/B,IAAI,CAACK,WAAW,GAAG;IACrB;IAEOC,WAA0B;QAC/B,OAAOd,WAAW,IAAI,CAACQ,KAAK;IAC9B;IAEOO,cAA6B;QAClC,OAAO,IAAI,CAACD,QAAQ;IACtB;IAEOE,UAAUC,QAAuB,EAAc;QACpD,IAAI,CAACC,SAAS,CAACC,GAAG,CAACF;QAEnB,OAAO;YACL,IAAI,CAACC,SAAS,CAACE,MAAM,CAACH;QACxB;IACF;IAEA,MAAaI,SAASC,SAAwB,EAAiB;QAC7D,IAAI,CAACC,iBAAiB;QAEtB,MAAMC,YAAY,IAAI,CAAChB,KAAK;QAC5B,MAAMiB,cAAcvB,WAAWsB,WAAWF;QAE1C,IAAIrB,aAAauB,WAAWC,cAAc;YACxC;QACF;QAEA,IAAI,CAACjB,KAAK,GAAGiB;QACb5B,qBAAqB,IAAI,CAACW,KAAK,EAAEgB;QAEjC,IAAI,IAAI,CAACf,YAAY,EAAE;YACrB,MAAMV,iBAAiB,IAAI,CAACU,YAAY,EAAE,IAAI,CAACF,MAAM,CAACK,WAAW,EAAE,IAAI,CAACJ,KAAK;QAC/E;QAEA,IAAI,CAACkB,IAAI,CAAC,IAAI,CAAClB,KAAK,EAAEgB;IACxB;IAEQD,oBAA0B;QAChC,IAAI,CAAC,IAAI,CAACV,WAAW,EAAE;YACrB,MAAM,IAAIc,MAAM;QAClB;IACF;IAEQD,KAAKE,IAAmB,EAAEC,IAAmB,EAAQ;QAC3D,KAAK,MAAMZ,YAAY,IAAI,CAACC,SAAS,CAAE;YACrC,IAAI;gBACFD,SAASjB,WAAW4B,OAAO5B,WAAW6B;YACxC,EAAE,OAAM;YACN,wDAAwD;YAC1D;QACF;IACF;;QAnEA,uBAAQrB,SAAuBR,WAAWJ;QAC1C,uBAAQW,UAAgCZ,eAAea,KAAK;QAC5D,uBAAQU,aAAY,IAAIY;QACxB,uBAAQrB,gBAAuC;QAC/C,uBAAQI,eAAc;;AAgExB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/kernel/manager/theme/index.ts"],"sourcesContent":["export { ThemeManager } from './ThemeManager';\n"],"names":["ThemeManager"],"mappings":";;;;+BAASA;;;eAAAA,0BAAY;;;8BAAQ"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/kernel/manager/theme/index.ts"],"sourcesContent":["export { ThemeManager } from './ThemeManager';\n"],"names":["ThemeManager"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/kernel/manager/theme/theme.dom.ts"],"sourcesContent":["import type { ThemeSnapshot } from '../../types';\n\nfunction canUseDom(): boolean {\n return typeof document !== 'undefined';\n}\n\nexport function resolveThemeMode(theme: ThemeSnapshot): 'light' | 'dark' {\n if (theme.mode !== 'system') {\n return theme.mode;\n }\n\n if (typeof window !== 'undefined' && window.matchMedia('(prefers-color-scheme: dark)').matches) {\n return 'dark';\n }\n\n return 'light';\n}\n\nexport function applyThemeToDocument(nextTheme: ThemeSnapshot, prevTheme?: ThemeSnapshot): void {\n if (!canUseDom()) {\n return;\n }\n\n const root = document.documentElement;\n const nextMode = resolveThemeMode(nextTheme);\n const prevMode = prevTheme ? resolveThemeMode(prevTheme) : undefined;\n\n if (!prevMode || prevMode !== nextMode) {\n root.classList.remove('light', 'dark');\n root.classList.add(nextMode);\n }\n\n if (!prevTheme || prevTheme.primaryColor !== nextTheme.primaryColor) {\n if (nextTheme.primaryColor) {\n root.style.setProperty('--app-primary-color', nextTheme.primaryColor);\n } else {\n root.style.removeProperty('--app-primary-color');\n }\n }\n\n const prevTokens = prevTheme?.tokens || {};\n const nextTokens = nextTheme.tokens || {};\n\n for (const token of Object.keys(prevTokens)) {\n if (!(token in nextTokens)) {\n root.style.removeProperty(`--${token}`);\n }\n }\n\n for (const [token, value] of Object.entries(nextTokens)) {\n if (!prevTheme || prevTokens[token] !== value) {\n root.style.setProperty(`--${token}`, String(value));\n }\n }\n}\n"],"names":["applyThemeToDocument","resolveThemeMode","canUseDom","document","theme","mode","window","matchMedia","matches","nextTheme","prevTheme","root","documentElement","nextMode","prevMode","undefined","classList","remove","add","primaryColor","style","setProperty","removeProperty","prevTokens","tokens","nextTokens","token","Object","keys","value","entries","String"],"mappings":";;;;;;;;;;;QAkBgBA;eAAAA;;QAZAC;eAAAA;;;AAJhB,SAASC;IACP,OAAO,OAAOC,aAAa;AAC7B;AAEO,SAASF,iBAAiBG,KAAoB;IACnD,IAAIA,MAAMC,IAAI,KAAK,UAAU;QAC3B,OAAOD,MAAMC,IAAI;IACnB;IAEA,IAAI,OAAOC,WAAW,eAAeA,OAAOC,UAAU,CAAC,gCAAgCC,OAAO,EAAE;QAC9F,OAAO;IACT;IAEA,OAAO;AACT;AAEO,SAASR,qBAAqBS,SAAwB,EAAEC,SAAyB;IACtF,IAAI,CAACR,aAAa;QAChB;IACF;IAEA,MAAMS,OAAOR,SAASS,eAAe;IACrC,MAAMC,WAAWZ,iBAAiBQ;IAClC,MAAMK,WAAWJ,YAAYT,iBAAiBS,aAAaK;IAE3D,IAAI,CAACD,YAAYA,aAAaD,UAAU;QACtCF,KAAKK,SAAS,CAACC,MAAM,CAAC,SAAS;QAC/BN,KAAKK,SAAS,CAACE,GAAG,CAACL;IACrB;IAEA,IAAI,CAACH,aAAaA,UAAUS,YAAY,KAAKV,UAAUU,YAAY,EAAE;QACnE,IAAIV,UAAUU,YAAY,EAAE;YAC1BR,KAAKS,KAAK,CAACC,WAAW,CAAC,uBAAuBZ,UAAUU,YAAY;QACtE,OAAO;YACLR,KAAKS,KAAK,CAACE,cAAc,CAAC;QAC5B;IACF;IAEA,MAAMC,aAAab,WAAWc,UAAU,CAAC;IACzC,MAAMC,aAAahB,UAAUe,MAAM,IAAI,CAAC;IAExC,KAAK,MAAME,SAASC,OAAOC,IAAI,CAACL,YAAa;QAC3C,IAAI,CAAEG,CAAAA,SAASD,UAAS,GAAI;YAC1Bd,KAAKS,KAAK,CAACE,cAAc,CAAC,CAAC,EAAE,EAAEI,OAAO;QACxC;IACF;IAEA,KAAK,MAAM,CAACA,OAAOG,MAAM,IAAIF,OAAOG,OAAO,CAACL,YAAa;QACvD,IAAI,CAACf,aAAaa,UAAU,CAACG,MAAM,KAAKG,OAAO;YAC7ClB,KAAKS,KAAK,CAACC,WAAW,CAAC,CAAC,EAAE,EAAEK,OAAO,EAAEK,OAAOF;QAC9C;IACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/kernel/manager/theme/theme.dom.ts"],"sourcesContent":["import type { ThemeSnapshot } from '../../types';\n\nfunction canUseDom(): boolean {\n return typeof document !== 'undefined';\n}\n\nexport function resolveThemeMode(theme: ThemeSnapshot): 'light' | 'dark' {\n if (theme.mode !== 'system') {\n return theme.mode;\n }\n\n if (typeof window !== 'undefined' && window.matchMedia('(prefers-color-scheme: dark)').matches) {\n return 'dark';\n }\n\n return 'light';\n}\n\nexport function applyThemeToDocument(nextTheme: ThemeSnapshot, prevTheme?: ThemeSnapshot): void {\n if (!canUseDom()) {\n return;\n }\n\n const root = document.documentElement;\n const nextMode = resolveThemeMode(nextTheme);\n const prevMode = prevTheme ? resolveThemeMode(prevTheme) : undefined;\n\n if (!prevMode || prevMode !== nextMode) {\n root.classList.remove('light', 'dark');\n root.classList.add(nextMode);\n }\n\n if (!prevTheme || prevTheme.primaryColor !== nextTheme.primaryColor) {\n if (nextTheme.primaryColor) {\n root.style.setProperty('--app-primary-color', nextTheme.primaryColor);\n } else {\n root.style.removeProperty('--app-primary-color');\n }\n }\n\n const prevTokens = prevTheme?.tokens || {};\n const nextTokens = nextTheme.tokens || {};\n\n for (const token of Object.keys(prevTokens)) {\n if (!(token in nextTokens)) {\n root.style.removeProperty(`--${token}`);\n }\n }\n\n for (const [token, value] of Object.entries(nextTokens)) {\n if (!prevTheme || prevTokens[token] !== value) {\n root.style.setProperty(`--${token}`, String(value));\n }\n }\n}\n"],"names":["canUseDom","document","resolveThemeMode","theme","mode","window","matchMedia","matches","applyThemeToDocument","nextTheme","prevTheme","root","documentElement","nextMode","prevMode","undefined","classList","remove","add","primaryColor","style","setProperty","removeProperty","prevTokens","tokens","nextTokens","token","Object","keys","value","entries","String"],"mappings":"AAEA,SAASA;IACP,OAAO,OAAOC,aAAa;AAC7B;AAEA,OAAO,SAASC,iBAAiBC,KAAoB;IACnD,IAAIA,MAAMC,IAAI,KAAK,UAAU;QAC3B,OAAOD,MAAMC,IAAI;IACnB;IAEA,IAAI,OAAOC,WAAW,eAAeA,OAAOC,UAAU,CAAC,gCAAgCC,OAAO,EAAE;QAC9F,OAAO;IACT;IAEA,OAAO;AACT;AAEA,OAAO,SAASC,qBAAqBC,SAAwB,EAAEC,SAAyB;IACtF,IAAI,CAACV,aAAa;QAChB;IACF;IAEA,MAAMW,OAAOV,SAASW,eAAe;IACrC,MAAMC,WAAWX,iBAAiBO;IAClC,MAAMK,WAAWJ,YAAYR,iBAAiBQ,aAAaK;IAE3D,IAAI,CAACD,YAAYA,aAAaD,UAAU;QACtCF,KAAKK,SAAS,CAACC,MAAM,CAAC,SAAS;QAC/BN,KAAKK,SAAS,CAACE,GAAG,CAACL;IACrB;IAEA,IAAI,CAACH,aAAaA,UAAUS,YAAY,KAAKV,UAAUU,YAAY,EAAE;QACnE,IAAIV,UAAUU,YAAY,EAAE;YAC1BR,KAAKS,KAAK,CAACC,WAAW,CAAC,uBAAuBZ,UAAUU,YAAY;QACtE,OAAO;YACLR,KAAKS,KAAK,CAACE,cAAc,CAAC;QAC5B;IACF;IAEA,MAAMC,aAAab,WAAWc,UAAU,CAAC;IACzC,MAAMC,aAAahB,UAAUe,MAAM,IAAI,CAAC;IAExC,KAAK,MAAME,SAASC,OAAOC,IAAI,CAACL,YAAa;QAC3C,IAAI,CAAEG,CAAAA,SAASD,UAAS,GAAI;YAC1Bd,KAAKS,KAAK,CAACE,cAAc,CAAC,CAAC,EAAE,EAAEI,OAAO;QACxC;IACF;IAEA,KAAK,MAAM,CAACA,OAAOG,MAAM,IAAIF,OAAOG,OAAO,CAACL,YAAa;QACvD,IAAI,CAACf,aAAaa,UAAU,CAACG,MAAM,KAAKG,OAAO;YAC7ClB,KAAKS,KAAK,CAACC,WAAW,CAAC,CAAC,EAAE,EAAEK,OAAO,EAAEK,OAAOF;QAC9C;IACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/kernel/manager/theme/theme.persistence.ts"],"sourcesContent":["import type { StorageInstance } from '@vlian/utils';\nimport type { PersistenceOptions, ThemeSnapshot } from '../../types';\nimport { cloneTheme, normalizeTheme } from './theme.schema';\n\nexport const DEFAULT_THEME_CACHE_KEY = 'vlian:kernel:theme';\n\ntype ResolvedPersistenceContext = {\n key: string;\n};\n\nfunction resolvePersistenceContext(\n persistence: PersistenceOptions | undefined\n): ResolvedPersistenceContext | null {\n if (persistence?.enabled !== true) {\n return null;\n }\n\n return {\n key: persistence.key || DEFAULT_THEME_CACHE_KEY,\n };\n}\n\nexport async function loadThemeFromCache(\n cacheManager: StorageInstance,\n persistence: PersistenceOptions | undefined,\n fallback: ThemeSnapshot\n): Promise<ThemeSnapshot> {\n const persistenceContext = resolvePersistenceContext(persistence);\n const safeFallback = cloneTheme(fallback);\n\n if (!persistenceContext) {\n return safeFallback;\n }\n\n try {\n const cached = await cacheManager.get<ThemeSnapshot>(persistenceContext.key, {\n defaultValue: safeFallback,\n });\n return normalizeTheme(cached, safeFallback);\n } catch {\n return safeFallback;\n }\n}\n\nexport async function saveThemeToCache(\n cacheManager: StorageInstance,\n persistence: PersistenceOptions | undefined,\n theme: ThemeSnapshot\n): Promise<void> {\n const persistenceContext = resolvePersistenceContext(persistence);\n\n if (!persistenceContext) {\n return;\n }\n\n try {\n await cacheManager.set(persistenceContext.key, cloneTheme(theme));\n } catch {\n // Ignore persistence failures and keep theme updates in memory.\n }\n}\n"],"names":["DEFAULT_THEME_CACHE_KEY","loadThemeFromCache","saveThemeToCache","resolvePersistenceContext","persistence","enabled","key","cacheManager","fallback","persistenceContext","safeFallback","cloneTheme","cached","get","defaultValue","normalizeTheme","theme","set"],"mappings":";;;;;;;;;;;QAIaA;eAAAA;;QAkBSC;eAAAA;;QAsBAC;eAAAA;;;6BA1CqB;AAEpC,MAAMF,0BAA0B;AAMvC,SAASG,0BACPC,WAA2C;IAE3C,IAAIA,aAAaC,YAAY,MAAM;QACjC,OAAO;IACT;IAEA,OAAO;QACLC,KAAKF,YAAYE,GAAG,IAAIN;IAC1B;AACF;AAEO,eAAeC,mBACpBM,YAA6B,EAC7BH,WAA2C,EAC3CI,QAAuB;IAEvB,MAAMC,qBAAqBN,0BAA0BC;IACrD,MAAMM,eAAeC,IAAAA,uBAAU,EAACH;IAEhC,IAAI,CAACC,oBAAoB;QACvB,OAAOC;IACT;IAEA,IAAI;QACF,MAAME,SAAS,MAAML,aAAaM,GAAG,CAAgBJ,mBAAmBH,GAAG,EAAE;YAC3EQ,cAAcJ;QAChB;QACA,OAAOK,IAAAA,2BAAc,EAACH,QAAQF;IAChC,EAAE,OAAM;QACN,OAAOA;IACT;AACF;AAEO,eAAeR,iBACpBK,YAA6B,EAC7BH,WAA2C,EAC3CY,KAAoB;IAEpB,MAAMP,qBAAqBN,0BAA0BC;IAErD,IAAI,CAACK,oBAAoB;QACvB;IACF;IAEA,IAAI;QACF,MAAMF,aAAaU,GAAG,CAACR,mBAAmBH,GAAG,EAAEK,IAAAA,uBAAU,EAACK;IAC5D,EAAE,OAAM;IACN,gEAAgE;IAClE;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/kernel/manager/theme/theme.persistence.ts"],"sourcesContent":["import type { StorageInstance } from '@vlian/utils';\nimport type { PersistenceOptions, ThemeSnapshot } from '../../types';\nimport { cloneTheme, normalizeTheme } from './theme.schema';\n\nexport const DEFAULT_THEME_CACHE_KEY = 'vlian:kernel:theme';\n\ntype ResolvedPersistenceContext = {\n key: string;\n};\n\nfunction resolvePersistenceContext(\n persistence: PersistenceOptions | undefined\n): ResolvedPersistenceContext | null {\n if (persistence?.enabled !== true) {\n return null;\n }\n\n return {\n key: persistence.key || DEFAULT_THEME_CACHE_KEY,\n };\n}\n\nexport async function loadThemeFromCache(\n cacheManager: StorageInstance,\n persistence: PersistenceOptions | undefined,\n fallback: ThemeSnapshot\n): Promise<ThemeSnapshot> {\n const persistenceContext = resolvePersistenceContext(persistence);\n const safeFallback = cloneTheme(fallback);\n\n if (!persistenceContext) {\n return safeFallback;\n }\n\n try {\n const cached = await cacheManager.get<ThemeSnapshot>(persistenceContext.key, {\n defaultValue: safeFallback,\n });\n return normalizeTheme(cached, safeFallback);\n } catch {\n return safeFallback;\n }\n}\n\nexport async function saveThemeToCache(\n cacheManager: StorageInstance,\n persistence: PersistenceOptions | undefined,\n theme: ThemeSnapshot\n): Promise<void> {\n const persistenceContext = resolvePersistenceContext(persistence);\n\n if (!persistenceContext) {\n return;\n }\n\n try {\n await cacheManager.set(persistenceContext.key, cloneTheme(theme));\n } catch {\n // Ignore persistence failures and keep theme updates in memory.\n }\n}\n"],"names":["cloneTheme","normalizeTheme","DEFAULT_THEME_CACHE_KEY","resolvePersistenceContext","persistence","enabled","key","loadThemeFromCache","cacheManager","fallback","persistenceContext","safeFallback","cached","get","defaultValue","saveThemeToCache","theme","set"],"mappings":"AAEA,SAASA,UAAU,EAAEC,cAAc,QAAQ,iBAAiB;AAE5D,OAAO,MAAMC,0BAA0B,qBAAqB;AAM5D,SAASC,0BACPC,WAA2C;IAE3C,IAAIA,aAAaC,YAAY,MAAM;QACjC,OAAO;IACT;IAEA,OAAO;QACLC,KAAKF,YAAYE,GAAG,IAAIJ;IAC1B;AACF;AAEA,OAAO,eAAeK,mBACpBC,YAA6B,EAC7BJ,WAA2C,EAC3CK,QAAuB;IAEvB,MAAMC,qBAAqBP,0BAA0BC;IACrD,MAAMO,eAAeX,WAAWS;IAEhC,IAAI,CAACC,oBAAoB;QACvB,OAAOC;IACT;IAEA,IAAI;QACF,MAAMC,SAAS,MAAMJ,aAAaK,GAAG,CAAgBH,mBAAmBJ,GAAG,EAAE;YAC3EQ,cAAcH;QAChB;QACA,OAAOV,eAAeW,QAAQD;IAChC,EAAE,OAAM;QACN,OAAOA;IACT;AACF;AAEA,OAAO,eAAeI,iBACpBP,YAA6B,EAC7BJ,WAA2C,EAC3CY,KAAoB;IAEpB,MAAMN,qBAAqBP,0BAA0BC;IAErD,IAAI,CAACM,oBAAoB;QACvB;IACF;IAEA,IAAI;QACF,MAAMF,aAAaS,GAAG,CAACP,mBAAmBJ,GAAG,EAAEN,WAAWgB;IAC5D,EAAE,OAAM;IACN,gEAAgE;IAClE;AACF"}