@vlian/framework 1.2.59 → 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 (154) hide show
  1. package/dist/analytics/index.cjs +1 -22
  2. package/dist/analytics.umd.js +1 -1
  3. package/dist/components/LocaleSwitch.cjs +1 -116
  4. package/dist/components/ThemeSwitch.cjs +1 -115
  5. package/dist/components/index.cjs +1 -20
  6. package/dist/components/persistence.cjs +1 -58
  7. package/dist/core/Test.cjs +1 -64
  8. package/dist/core/app/AppContext.cjs +1 -348
  9. package/dist/core/app/AppContext.types.cjs +1 -4
  10. package/dist/core/app/BasicLayout.cjs +1 -122
  11. package/dist/core/app/DefaultApp.cjs +1 -150
  12. package/dist/core/app/index.cjs +1 -41
  13. package/dist/core/config/AppConfig.cjs +1 -139
  14. package/dist/core/config/ConfigLoader.cjs +1 -323
  15. package/dist/core/config/ConfigValidator.cjs +2 -133
  16. package/dist/core/config/index.cjs +1 -28
  17. package/dist/core/dev/DevTools.cjs +1 -226
  18. package/dist/core/error/ErrorBoundary.cjs +1 -401
  19. package/dist/core/error/ErrorHandler.cjs +1 -275
  20. package/dist/core/error/index.cjs +1 -34
  21. package/dist/core/event/AppEventBus.cjs +1 -444
  22. package/dist/core/event/frameworkEvents.cjs +1 -141
  23. package/dist/core/event/hooks.cjs +1 -69
  24. package/dist/core/event/index.cjs +1 -41
  25. package/dist/core/event/types.cjs +1 -62
  26. package/dist/core/event/useEventBus.cjs +1 -25
  27. package/dist/core/index.cjs +1 -140
  28. package/dist/core/initialization/InitializationErrorThrower.cjs +1 -75
  29. package/dist/core/initialization/index.cjs +1 -26
  30. package/dist/core/initialization/initialization.cjs +1 -64
  31. package/dist/core/initialization/initializationErrorState.cjs +1 -66
  32. package/dist/core/kernel/defaultAdapters.cjs +1 -184
  33. package/dist/core/kernel/errors.cjs +1 -69
  34. package/dist/core/kernel/index.cjs +1 -20
  35. package/dist/core/kernel/startKernel.cjs +1 -200
  36. package/dist/core/kernel/types.cjs +1 -4
  37. package/dist/core/middleware.cjs +1 -73
  38. package/dist/core/plugin/PluginEventBus.cjs +1 -298
  39. package/dist/core/plugin/PluginSandbox.cjs +1 -137
  40. package/dist/core/plugin.cjs +1 -494
  41. package/dist/core/router/RouterManager.cjs +1 -286
  42. package/dist/core/router/adapter/AdapterManager.cjs +1 -235
  43. package/dist/core/router/adapter/index.cjs +1 -22
  44. package/dist/core/router/adapter/react-router/ReactRouterAdapter.cjs +1 -128
  45. package/dist/core/router/adapter/react-router/index.cjs +1 -20
  46. package/dist/core/router/adapter/types.cjs +1 -6
  47. package/dist/core/router/dev/RouterDevTools.cjs +1 -260
  48. package/dist/core/router/dev/index.cjs +1 -20
  49. package/dist/core/router/dynamic/DynamicRouteManager.cjs +1 -193
  50. package/dist/core/router/dynamic/index.cjs +1 -20
  51. package/dist/core/router/errors/RouterError.cjs +1 -61
  52. package/dist/core/router/errors/index.cjs +1 -20
  53. package/dist/core/router/index.cjs +1 -36
  54. package/dist/core/router/lifecycle/RouterLifecycleManager.cjs +1 -144
  55. package/dist/core/router/lifecycle/index.cjs +1 -20
  56. package/dist/core/router/middleware/RouterMiddlewareManager.cjs +1 -193
  57. package/dist/core/router/middleware/auth.cjs +1 -66
  58. package/dist/core/router/middleware/index.cjs +1 -22
  59. package/dist/core/router/middleware/types.cjs +1 -6
  60. package/dist/core/router/monitoring/RouterMonitoring.cjs +1 -227
  61. package/dist/core/router/monitoring/index.cjs +1 -20
  62. package/dist/core/router/navigation/RouterNavigation.cjs +1 -239
  63. package/dist/core/router/navigation/index.cjs +1 -20
  64. package/dist/core/router/performance/RouteCache.cjs +1 -305
  65. package/dist/core/router/performance/RoutePreloader.cjs +1 -292
  66. package/dist/core/router/performance/index.cjs +1 -21
  67. package/dist/core/router/plugin/RouterPluginManager.cjs +1 -262
  68. package/dist/core/router/plugin/index.cjs +1 -21
  69. package/dist/core/router/plugin/types.cjs +1 -39
  70. package/dist/core/router/types.cjs +1 -4
  71. package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs +1 -129
  72. package/dist/core/router/utils/adapters/react-router/transform.cjs +1 -250
  73. package/dist/core/router/utils/transform.cjs +1 -780
  74. package/dist/core/router/validation/RouterConfigValidator.cjs +2 -83
  75. package/dist/core/router/validation/index.cjs +1 -21
  76. package/dist/core/router/validation/schema.cjs +1 -159
  77. package/dist/core/router/version/RouteVersionManager.cjs +1 -205
  78. package/dist/core/router/version/index.cjs +1 -20
  79. package/dist/core/splash/SplashScreen.cjs +1 -341
  80. package/dist/core/splash/index.cjs +1 -22
  81. package/dist/core/splash/splashScreenUtils.cjs +1 -38
  82. package/dist/core/startup/AppInstance.cjs +1 -239
  83. package/dist/core/startup/environment.cjs +1 -169
  84. package/dist/core/startup/index.cjs +1 -23
  85. package/dist/core/startup/initializeServices.cjs +1 -226
  86. package/dist/core/startup/performanceTracker.cjs +1 -179
  87. package/dist/core/startup/renderApp.cjs +1 -314
  88. package/dist/core/startup/startApp.cjs +1 -317
  89. package/dist/core/types.cjs +1 -4
  90. package/dist/index.cjs +1 -52
  91. package/dist/index.umd.cjs +1 -27
  92. package/dist/index.umd.js +1 -1
  93. package/dist/kernel/constants.cjs +1 -65
  94. package/dist/kernel/index.cjs +1 -38
  95. package/dist/kernel/kernel.cjs +1 -295
  96. package/dist/kernel/manager/cacheManager.cjs +1 -46
  97. package/dist/kernel/manager/i18n/I18nManager.cjs +1 -91
  98. package/dist/kernel/manager/i18n/i18n.persistence.cjs +1 -60
  99. package/dist/kernel/manager/i18n/i18n.schema.cjs +1 -86
  100. package/dist/kernel/manager/i18n/index.cjs +1 -11
  101. package/dist/kernel/manager/i18nManager.cjs +1 -11
  102. package/dist/kernel/manager/index.cjs +1 -28
  103. package/dist/kernel/manager/logger/LoggerManager.cjs +1 -107
  104. package/dist/kernel/manager/logger/index.cjs +1 -11
  105. package/dist/kernel/manager/logger/logger.persistence.cjs +1 -62
  106. package/dist/kernel/manager/logger/logger.schema.cjs +1 -74
  107. package/dist/kernel/manager/loggerManager.cjs +1 -11
  108. package/dist/kernel/manager/theme/ThemeManager.cjs +1 -84
  109. package/dist/kernel/manager/theme/index.cjs +1 -11
  110. package/dist/kernel/manager/theme/theme.dom.cjs +1 -61
  111. package/dist/kernel/manager/theme/theme.persistence.cjs +1 -57
  112. package/dist/kernel/manager/theme/theme.schema.cjs +1 -122
  113. package/dist/kernel/manager/themeManager.cjs +1 -11
  114. package/dist/kernel/types.cjs +1 -4
  115. package/dist/library/index.cjs +1 -19
  116. package/dist/library/locale/index.cjs +1 -39
  117. package/dist/library/locale/langs/en-us/index.cjs +1 -32
  118. package/dist/library/locale/langs/zh-cn/index.cjs +1 -32
  119. package/dist/library/locale/types.cjs +1 -4
  120. package/dist/library/storage/cache.cjs +1 -243
  121. package/dist/library/storage/encryption.cjs +1 -147
  122. package/dist/library/storage/index.cjs +1 -124
  123. package/dist/state/StateManager.cjs +1 -166
  124. package/dist/state/adapters/AdapterFactory.cjs +1 -89
  125. package/dist/state/adapters/DefaultAdapter.cjs +1 -75
  126. package/dist/state/adapters/ReduxAdapter.cjs +1 -443
  127. package/dist/state/adapters/ZustandAdapter.cjs +1 -69
  128. package/dist/state/adapters/index.cjs +1 -44
  129. package/dist/state/adapters/types.cjs +1 -20
  130. package/dist/state/core/DerivedStateInstance.cjs +1 -174
  131. package/dist/state/core/StateInstance.cjs +1 -170
  132. package/dist/state/core/StateRegistry.cjs +1 -110
  133. package/dist/state/core/StateScope.cjs +1 -137
  134. package/dist/state/core/index.cjs +1 -30
  135. package/dist/state/index.cjs +1 -30
  136. package/dist/state/types.cjs +1 -12
  137. package/dist/state.umd.js +1 -1
  138. package/dist/types.cjs +1 -4
  139. package/dist/utils/analytics.cjs +1 -217
  140. package/dist/utils/configSecurity.cjs +3 -182
  141. package/dist/utils/csrf.cjs +1 -18
  142. package/dist/utils/errors/ErrorCodes.cjs +1 -25
  143. package/dist/utils/errors.cjs +1 -111
  144. package/dist/utils/index.cjs +1 -135
  145. package/dist/utils/logger.cjs +1 -25
  146. package/dist/utils/logger.types.cjs +1 -11
  147. package/dist/utils/monitoring.cjs +1 -18
  148. package/dist/utils/performance.cjs +1 -22
  149. package/dist/utils/resourceLoader.cjs +1 -22
  150. package/dist/utils/runtimeSecurity.cjs +1 -11
  151. package/dist/utils/security.cjs +1 -19
  152. package/dist/utils/traceId.cjs +1 -37
  153. package/dist/utils/validation.cjs +1 -19
  154. package/package.json +7 -3
@@ -1,60 +1 @@
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 DEFAULT_I18N_CACHE_KEY () {
13
- return DEFAULT_I18N_CACHE_KEY;
14
- },
15
- get loadI18nFromCache () {
16
- return loadI18nFromCache;
17
- },
18
- get saveI18nToCache () {
19
- return saveI18nToCache;
20
- }
21
- });
22
- const _i18nschema = require("./i18n.schema");
23
- const DEFAULT_I18N_CACHE_KEY = 'vlian:kernel:i18n';
24
- function resolvePersistenceContext(persistence) {
25
- if (persistence?.enabled !== true) {
26
- return null;
27
- }
28
- return {
29
- key: persistence.key || DEFAULT_I18N_CACHE_KEY
30
- };
31
- }
32
- async function loadI18nFromCache(cacheManager, persistence, fallback) {
33
- const persistenceContext = resolvePersistenceContext(persistence);
34
- const safeFallback = (0, _i18nschema.cloneI18nSnapshot)(fallback);
35
- if (!persistenceContext) {
36
- return safeFallback;
37
- }
38
- try {
39
- const cached = await cacheManager.get(persistenceContext.key, {
40
- defaultValue: safeFallback
41
- });
42
- return (0, _i18nschema.normalizeI18nSnapshot)(cached, safeFallback);
43
- } catch {
44
- return safeFallback;
45
- }
46
- }
47
- async function saveI18nToCache(cacheManager, persistence, snapshot) {
48
- const persistenceContext = resolvePersistenceContext(persistence);
49
- if (!persistenceContext) {
50
- return;
51
- }
52
- try {
53
- const persistedSnapshot = {
54
- locale: (0, _i18nschema.cloneI18nSnapshot)(snapshot).locale
55
- };
56
- await cacheManager.set(persistenceContext.key, persistedSnapshot);
57
- } catch {
58
- // Ignore persistence failures and keep i18n updates in memory.
59
- }
60
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get DEFAULT_I18N_CACHE_KEY(){return DEFAULT_I18N_CACHE_KEY},get loadI18nFromCache(){return loadI18nFromCache},get saveI18nToCache(){return saveI18nToCache}});const _i18nschema=require("./i18n.schema");const DEFAULT_I18N_CACHE_KEY="vlian:kernel:i18n";function resolvePersistenceContext(persistence){if(persistence?.enabled!==true){return null}return{key:persistence.key||DEFAULT_I18N_CACHE_KEY}}async function loadI18nFromCache(cacheManager,persistence,fallback){const persistenceContext=resolvePersistenceContext(persistence);const safeFallback=(0,_i18nschema.cloneI18nSnapshot)(fallback);if(!persistenceContext){return safeFallback}try{const cached=await cacheManager.get(persistenceContext.key,{defaultValue:safeFallback});return(0,_i18nschema.normalizeI18nSnapshot)(cached,safeFallback)}catch{return safeFallback}}async function saveI18nToCache(cacheManager,persistence,snapshot){const persistenceContext=resolvePersistenceContext(persistence);if(!persistenceContext){return}try{const persistedSnapshot={locale:(0,_i18nschema.cloneI18nSnapshot)(snapshot).locale};await cacheManager.set(persistenceContext.key,persistedSnapshot)}catch{}}
@@ -1,86 +1 @@
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 cloneI18nSnapshot () {
13
- return cloneI18nSnapshot;
14
- },
15
- get isI18nEqual () {
16
- return isI18nEqual;
17
- },
18
- get mergeI18nSnapshot () {
19
- return mergeI18nSnapshot;
20
- },
21
- get normalizeI18nSnapshot () {
22
- return normalizeI18nSnapshot;
23
- }
24
- });
25
- function isPlainObject(value) {
26
- return Object.prototype.toString.call(value) === '[object Object]';
27
- }
28
- function cloneI18nSnapshot(snapshot) {
29
- const resources = snapshot.resources ? Object.fromEntries(Object.entries(snapshot.resources).map(([locale, value])=>[
30
- locale,
31
- {
32
- ...value
33
- }
34
- ])) : undefined;
35
- return {
36
- locale: snapshot.locale,
37
- ...resources ? {
38
- resources
39
- } : {}
40
- };
41
- }
42
- function normalizeI18nSnapshot(value, fallback) {
43
- const source = isPlainObject(value) ? value : {};
44
- const locale = typeof source.locale === 'string' && source.locale.trim() ? source.locale : fallback.locale;
45
- const fallbackResources = fallback.resources;
46
- const incomingResources = isPlainObject(source.resources) ? Object.fromEntries(Object.entries(source.resources).filter(([, resourceValue])=>isPlainObject(resourceValue)).map(([locale, resourceValue])=>[
47
- locale,
48
- {
49
- ...resourceValue
50
- }
51
- ])) : undefined;
52
- const resources = incomingResources || fallbackResources ? {
53
- ...fallbackResources || {},
54
- ...incomingResources || {}
55
- } : undefined;
56
- return {
57
- locale,
58
- ...resources ? {
59
- resources
60
- } : {}
61
- };
62
- }
63
- function mergeI18nSnapshot(current, next) {
64
- return normalizeI18nSnapshot({
65
- locale: next.locale ?? current.locale,
66
- resources: next.resources ?? current.resources
67
- }, current);
68
- }
69
- function isI18nEqual(left, right) {
70
- if (left.locale !== right.locale) {
71
- return false;
72
- }
73
- const leftResources = left.resources || {};
74
- const rightResources = right.resources || {};
75
- const leftLocales = Object.keys(leftResources);
76
- const rightLocales = Object.keys(rightResources);
77
- if (leftLocales.length !== rightLocales.length) {
78
- return false;
79
- }
80
- for (const locale of leftLocales){
81
- if (leftResources[locale] !== rightResources[locale]) {
82
- return false;
83
- }
84
- }
85
- return true;
86
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get cloneI18nSnapshot(){return cloneI18nSnapshot},get isI18nEqual(){return isI18nEqual},get mergeI18nSnapshot(){return mergeI18nSnapshot},get normalizeI18nSnapshot(){return normalizeI18nSnapshot}});function isPlainObject(value){return Object.prototype.toString.call(value)==="[object Object]"}function cloneI18nSnapshot(snapshot){const resources=snapshot.resources?Object.fromEntries(Object.entries(snapshot.resources).map(([locale,value])=>[locale,{...value}])):undefined;return{locale:snapshot.locale,...resources?{resources}:{}}}function normalizeI18nSnapshot(value,fallback){const source=isPlainObject(value)?value:{};const locale=typeof source.locale==="string"&&source.locale.trim()?source.locale:fallback.locale;const fallbackResources=fallback.resources;const incomingResources=isPlainObject(source.resources)?Object.fromEntries(Object.entries(source.resources).filter(([,resourceValue])=>isPlainObject(resourceValue)).map(([locale,resourceValue])=>[locale,{...resourceValue}])):undefined;const resources=incomingResources||fallbackResources?{...fallbackResources||{},...incomingResources||{}}:undefined;return{locale,...resources?{resources}:{}}}function mergeI18nSnapshot(current,next){return normalizeI18nSnapshot({locale:next.locale??current.locale,resources:next.resources??current.resources},current)}function isI18nEqual(left,right){if(left.locale!==right.locale){return false}const leftResources=left.resources||{};const rightResources=right.resources||{};const leftLocales=Object.keys(leftResources);const rightLocales=Object.keys(rightResources);if(leftLocales.length!==rightLocales.length){return false}for(const locale of leftLocales){if(leftResources[locale]!==rightResources[locale]){return false}}return true}
@@ -1,11 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "I18nManager", {
6
- enumerable: true,
7
- get: function() {
8
- return _I18nManager.I18nManager;
9
- }
10
- });
11
- const _I18nManager = require("./I18nManager");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"I18nManager",{enumerable:true,get:function(){return _I18nManager.I18nManager}});const _I18nManager=require("./I18nManager");
@@ -1,11 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "I18nManager", {
6
- enumerable: true,
7
- get: function() {
8
- return _i18n.I18nManager;
9
- }
10
- });
11
- const _i18n = require("./i18n");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"I18nManager",{enumerable:true,get:function(){return _i18n.I18nManager}});const _i18n=require("./i18n");
@@ -1,28 +1 @@
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 CacheManager () {
13
- return _cacheManager.CacheManager;
14
- },
15
- get I18nManager () {
16
- return _i18nManager.I18nManager;
17
- },
18
- get LoggerManager () {
19
- return _loggerManager.LoggerManager;
20
- },
21
- get ThemeManager () {
22
- return _themeManager.ThemeManager;
23
- }
24
- });
25
- const _loggerManager = require("./loggerManager");
26
- const _cacheManager = require("./cacheManager");
27
- const _themeManager = require("./themeManager");
28
- const _i18nManager = require("./i18nManager");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get CacheManager(){return _cacheManager.CacheManager},get I18nManager(){return _i18nManager.I18nManager},get LoggerManager(){return _loggerManager.LoggerManager},get ThemeManager(){return _themeManager.ThemeManager}});const _loggerManager=require("./loggerManager");const _cacheManager=require("./cacheManager");const _themeManager=require("./themeManager");const _i18nManager=require("./i18nManager");
@@ -1,107 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "LoggerManager", {
6
- enumerable: true,
7
- get: function() {
8
- return LoggerManager;
9
- }
10
- });
11
- const _logger = require("@vlian/logger");
12
- const _constants = require("../../constants");
13
- const _loggerschema = require("./logger.schema");
14
- const _loggerpersistence = require("./logger.persistence");
15
- function _define_property(obj, key, value) {
16
- if (key in obj) {
17
- Object.defineProperty(obj, key, {
18
- value: value,
19
- enumerable: true,
20
- configurable: true,
21
- writable: true
22
- });
23
- } else {
24
- obj[key] = value;
25
- }
26
- return obj;
27
- }
28
- let LoggerManager = class LoggerManager {
29
- async initialize(context) {
30
- this.config = context.config.logger;
31
- this.cacheManager = context.cacheManager;
32
- const initialSnapshot = (0, _loggerschema.normalizeLoggerSnapshot)({
33
- level: this.config.level
34
- }, {
35
- level: _logger.LogLevel.INFO
36
- });
37
- this.snapshot = await (0, _loggerpersistence.loadLoggerFromCache)(this.cacheManager, this.config.persistence, initialSnapshot);
38
- _logger.logger.setLevel(this.snapshot.level);
39
- this.initialized = true;
40
- }
41
- subscribe(listener) {
42
- this.listeners.add(listener);
43
- return ()=>{
44
- this.listeners.delete(listener);
45
- };
46
- }
47
- debug(...args) {
48
- _logger.logger.debug(...args);
49
- }
50
- info(...args) {
51
- _logger.logger.info(...args);
52
- }
53
- warn(...args) {
54
- _logger.logger.warn(...args);
55
- }
56
- error(...args) {
57
- _logger.logger.error(...args);
58
- }
59
- async setLevel(level) {
60
- this.ensureInitialized();
61
- const prevSnapshot = this.snapshot;
62
- const nextSnapshot = (0, _loggerschema.normalizeLoggerSnapshot)({
63
- level
64
- }, prevSnapshot);
65
- if ((0, _loggerschema.isLoggerEqual)(prevSnapshot, nextSnapshot)) {
66
- return;
67
- }
68
- this.snapshot = nextSnapshot;
69
- _logger.logger.setLevel(this.snapshot.level);
70
- if (this.cacheManager) {
71
- await (0, _loggerpersistence.saveLoggerToCache)(this.cacheManager, this.config.persistence, this.snapshot);
72
- }
73
- this.emit(this.snapshot, prevSnapshot);
74
- }
75
- getSnapshot() {
76
- return {
77
- ...this.snapshot
78
- };
79
- }
80
- ensureInitialized() {
81
- if (!this.initialized) {
82
- throw new Error('LoggerManager must be initialized before use.');
83
- }
84
- }
85
- emit(next, prev) {
86
- for (const listener of this.listeners){
87
- try {
88
- listener({
89
- ...next
90
- }, {
91
- ...prev
92
- });
93
- } catch {
94
- // Keep notifying remaining listeners even if one fails.
95
- }
96
- }
97
- }
98
- constructor(){
99
- _define_property(this, "snapshot", {
100
- level: _logger.LogLevel.INFO
101
- });
102
- _define_property(this, "config", _constants.DEFAULT_CONFIG.logger);
103
- _define_property(this, "listeners", new Set());
104
- _define_property(this, "cacheManager", null);
105
- _define_property(this, "initialized", false);
106
- }
107
- };
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"LoggerManager",{enumerable:true,get:function(){return LoggerManager}});const _logger=require("@vlian/logger");const _constants=require("../../constants");const _loggerschema=require("./logger.schema");const _loggerpersistence=require("./logger.persistence");function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}let LoggerManager=class LoggerManager{async initialize(context){this.config=context.config.logger;this.cacheManager=context.cacheManager;const initialSnapshot=(0,_loggerschema.normalizeLoggerSnapshot)({level:this.config.level},{level:_logger.LogLevel.INFO});this.snapshot=await (0,_loggerpersistence.loadLoggerFromCache)(this.cacheManager,this.config.persistence,initialSnapshot);_logger.logger.setLevel(this.snapshot.level);this.initialized=true}subscribe(listener){this.listeners.add(listener);return()=>{this.listeners.delete(listener)}}debug(...args){_logger.logger.debug(...args)}info(...args){_logger.logger.info(...args)}warn(...args){_logger.logger.warn(...args)}error(...args){_logger.logger.error(...args)}async setLevel(level){this.ensureInitialized();const prevSnapshot=this.snapshot;const nextSnapshot=(0,_loggerschema.normalizeLoggerSnapshot)({level},prevSnapshot);if((0,_loggerschema.isLoggerEqual)(prevSnapshot,nextSnapshot)){return}this.snapshot=nextSnapshot;_logger.logger.setLevel(this.snapshot.level);if(this.cacheManager){await (0,_loggerpersistence.saveLoggerToCache)(this.cacheManager,this.config.persistence,this.snapshot)}this.emit(this.snapshot,prevSnapshot)}getSnapshot(){return{...this.snapshot}}ensureInitialized(){if(!this.initialized){throw new Error("LoggerManager must be initialized before use.")}}emit(next,prev){for(const listener of this.listeners){try{listener({...next},{...prev})}catch{}}}constructor(){_define_property(this,"snapshot",{level:_logger.LogLevel.INFO});_define_property(this,"config",_constants.DEFAULT_CONFIG.logger);_define_property(this,"listeners",new Set);_define_property(this,"cacheManager",null);_define_property(this,"initialized",false)}};
@@ -1,11 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "LoggerManager", {
6
- enumerable: true,
7
- get: function() {
8
- return _LoggerManager.LoggerManager;
9
- }
10
- });
11
- const _LoggerManager = require("./LoggerManager");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"LoggerManager",{enumerable:true,get:function(){return _LoggerManager.LoggerManager}});const _LoggerManager=require("./LoggerManager");
@@ -1,62 +1 @@
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 DEFAULT_LOGGER_CACHE_KEY () {
13
- return DEFAULT_LOGGER_CACHE_KEY;
14
- },
15
- get loadLoggerFromCache () {
16
- return loadLoggerFromCache;
17
- },
18
- get saveLoggerToCache () {
19
- return saveLoggerToCache;
20
- }
21
- });
22
- const _loggerschema = require("./logger.schema");
23
- const DEFAULT_LOGGER_CACHE_KEY = 'vlian:kernel:logger-level';
24
- function resolvePersistenceContext(persistence) {
25
- if (persistence?.enabled !== true) {
26
- return null;
27
- }
28
- return {
29
- key: persistence.key || DEFAULT_LOGGER_CACHE_KEY
30
- };
31
- }
32
- async function loadLoggerFromCache(cacheManager, persistence, fallback) {
33
- const persistenceContext = resolvePersistenceContext(persistence);
34
- if (!persistenceContext) {
35
- return {
36
- ...fallback
37
- };
38
- }
39
- try {
40
- const cached = await cacheManager.get(persistenceContext.key, {
41
- defaultValue: fallback
42
- });
43
- return (0, _loggerschema.normalizeLoggerSnapshot)(cached, fallback);
44
- } catch {
45
- return {
46
- ...fallback
47
- };
48
- }
49
- }
50
- async function saveLoggerToCache(cacheManager, persistence, snapshot) {
51
- const persistenceContext = resolvePersistenceContext(persistence);
52
- if (!persistenceContext) {
53
- return;
54
- }
55
- try {
56
- await cacheManager.set(persistenceContext.key, {
57
- ...snapshot
58
- });
59
- } catch {
60
- // Ignore persistence failures and keep logger updates in memory.
61
- }
62
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get DEFAULT_LOGGER_CACHE_KEY(){return DEFAULT_LOGGER_CACHE_KEY},get loadLoggerFromCache(){return loadLoggerFromCache},get saveLoggerToCache(){return saveLoggerToCache}});const _loggerschema=require("./logger.schema");const DEFAULT_LOGGER_CACHE_KEY="vlian:kernel:logger-level";function resolvePersistenceContext(persistence){if(persistence?.enabled!==true){return null}return{key:persistence.key||DEFAULT_LOGGER_CACHE_KEY}}async function loadLoggerFromCache(cacheManager,persistence,fallback){const persistenceContext=resolvePersistenceContext(persistence);if(!persistenceContext){return{...fallback}}try{const cached=await cacheManager.get(persistenceContext.key,{defaultValue:fallback});return(0,_loggerschema.normalizeLoggerSnapshot)(cached,fallback)}catch{return{...fallback}}}async function saveLoggerToCache(cacheManager,persistence,snapshot){const persistenceContext=resolvePersistenceContext(persistence);if(!persistenceContext){return}try{await cacheManager.set(persistenceContext.key,{...snapshot})}catch{}}
@@ -1,74 +1 @@
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 isLoggerEqual () {
13
- return isLoggerEqual;
14
- },
15
- get normalizeLogLevel () {
16
- return normalizeLogLevel;
17
- },
18
- get normalizeLoggerSnapshot () {
19
- return normalizeLoggerSnapshot;
20
- }
21
- });
22
- const _logger = require("@vlian/logger");
23
- function normalizeLogLevel(value, fallback) {
24
- if (typeof value === 'number' && Number.isInteger(value)) {
25
- switch(value){
26
- case _logger.LogLevel.DEBUG:
27
- case _logger.LogLevel.INFO:
28
- case _logger.LogLevel.WARN:
29
- case _logger.LogLevel.ERROR:
30
- case _logger.LogLevel.NONE:
31
- return value;
32
- default:
33
- return fallback;
34
- }
35
- }
36
- if (typeof value !== 'string') {
37
- return fallback;
38
- }
39
- const normalized = value.trim();
40
- if (!normalized) {
41
- return fallback;
42
- }
43
- if (/^\d+$/.test(normalized)) {
44
- return normalizeLogLevel(Number(normalized), fallback);
45
- }
46
- switch(normalized.toUpperCase()){
47
- case 'DEBUG':
48
- return _logger.LogLevel.DEBUG;
49
- case 'INFO':
50
- return _logger.LogLevel.INFO;
51
- case 'WARN':
52
- return _logger.LogLevel.WARN;
53
- case 'ERROR':
54
- return _logger.LogLevel.ERROR;
55
- case 'NONE':
56
- return _logger.LogLevel.NONE;
57
- default:
58
- return fallback;
59
- }
60
- }
61
- function normalizeLoggerSnapshot(value, fallback) {
62
- if (typeof value === 'number' || typeof value === 'string') {
63
- return {
64
- level: normalizeLogLevel(value, fallback.level)
65
- };
66
- }
67
- const source = value && typeof value === 'object' ? value : {};
68
- return {
69
- level: normalizeLogLevel(source.level, fallback.level)
70
- };
71
- }
72
- function isLoggerEqual(left, right) {
73
- return left.level === right.level;
74
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get isLoggerEqual(){return isLoggerEqual},get normalizeLogLevel(){return normalizeLogLevel},get normalizeLoggerSnapshot(){return normalizeLoggerSnapshot}});const _logger=require("@vlian/logger");function normalizeLogLevel(value,fallback){if(typeof value==="number"&&Number.isInteger(value)){switch(value){case _logger.LogLevel.DEBUG:case _logger.LogLevel.INFO:case _logger.LogLevel.WARN:case _logger.LogLevel.ERROR:case _logger.LogLevel.NONE:return value;default:return fallback}}if(typeof value!=="string"){return fallback}const normalized=value.trim();if(!normalized){return fallback}if(/^\d+$/.test(normalized)){return normalizeLogLevel(Number(normalized),fallback)}switch(normalized.toUpperCase()){case"DEBUG":return _logger.LogLevel.DEBUG;case"INFO":return _logger.LogLevel.INFO;case"WARN":return _logger.LogLevel.WARN;case"ERROR":return _logger.LogLevel.ERROR;case"NONE":return _logger.LogLevel.NONE;default:return fallback}}function normalizeLoggerSnapshot(value,fallback){if(typeof value==="number"||typeof value==="string"){return{level:normalizeLogLevel(value,fallback.level)}}const source=value&&typeof value==="object"?value:{};return{level:normalizeLogLevel(source.level,fallback.level)}}function isLoggerEqual(left,right){return left.level===right.level}
@@ -1,11 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "LoggerManager", {
6
- enumerable: true,
7
- get: function() {
8
- return _logger.LoggerManager;
9
- }
10
- });
11
- const _logger = require("./logger");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"LoggerManager",{enumerable:true,get:function(){return _logger.LoggerManager}});const _logger=require("./logger");
@@ -1,84 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "ThemeManager", {
6
- enumerable: true,
7
- get: function() {
8
- return ThemeManager;
9
- }
10
- });
11
- const _constants = require("../../constants");
12
- const _themedom = require("./theme.dom");
13
- const _themepersistence = require("./theme.persistence");
14
- const _themeschema = require("./theme.schema");
15
- function _define_property(obj, key, value) {
16
- if (key in obj) {
17
- Object.defineProperty(obj, key, {
18
- value: value,
19
- enumerable: true,
20
- configurable: true,
21
- writable: true
22
- });
23
- } else {
24
- obj[key] = value;
25
- }
26
- return obj;
27
- }
28
- let ThemeManager = class ThemeManager {
29
- async initialize(context) {
30
- this.config = context.config.theme;
31
- this.cacheManager = context.cacheManager;
32
- const initialTheme = (0, _themeschema.normalizeTheme)(this.config.initial || {}, _constants.DEFAULT_THEME);
33
- this.theme = await (0, _themepersistence.loadThemeFromCache)(this.cacheManager, this.config.persistence, initialTheme);
34
- (0, _themedom.applyThemeToDocument)(this.theme);
35
- this.initialized = true;
36
- }
37
- getTheme() {
38
- return (0, _themeschema.cloneTheme)(this.theme);
39
- }
40
- getSnapshot() {
41
- return this.getTheme();
42
- }
43
- subscribe(listener) {
44
- this.listeners.add(listener);
45
- return ()=>{
46
- this.listeners.delete(listener);
47
- };
48
- }
49
- async setTheme(nextTheme) {
50
- this.ensureInitialized();
51
- const prevTheme = this.theme;
52
- const mergedTheme = (0, _themeschema.mergeTheme)(prevTheme, nextTheme);
53
- if ((0, _themeschema.isThemeEqual)(prevTheme, mergedTheme)) {
54
- return;
55
- }
56
- this.theme = mergedTheme;
57
- (0, _themedom.applyThemeToDocument)(this.theme, prevTheme);
58
- if (this.cacheManager) {
59
- await (0, _themepersistence.saveThemeToCache)(this.cacheManager, this.config.persistence, this.theme);
60
- }
61
- this.emit(this.theme, prevTheme);
62
- }
63
- ensureInitialized() {
64
- if (!this.initialized) {
65
- throw new Error('ThemeManager must be initialized before use.');
66
- }
67
- }
68
- emit(next, prev) {
69
- for (const listener of this.listeners){
70
- try {
71
- listener((0, _themeschema.cloneTheme)(next), (0, _themeschema.cloneTheme)(prev));
72
- } catch {
73
- // Keep notifying remaining listeners even if one fails.
74
- }
75
- }
76
- }
77
- constructor(){
78
- _define_property(this, "theme", (0, _themeschema.cloneTheme)(_constants.DEFAULT_THEME));
79
- _define_property(this, "config", _constants.DEFAULT_CONFIG.theme);
80
- _define_property(this, "listeners", new Set());
81
- _define_property(this, "cacheManager", null);
82
- _define_property(this, "initialized", false);
83
- }
84
- };
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"ThemeManager",{enumerable:true,get:function(){return ThemeManager}});const _constants=require("../../constants");const _themedom=require("./theme.dom");const _themepersistence=require("./theme.persistence");const _themeschema=require("./theme.schema");function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}let ThemeManager=class ThemeManager{async initialize(context){this.config=context.config.theme;this.cacheManager=context.cacheManager;const initialTheme=(0,_themeschema.normalizeTheme)(this.config.initial||{},_constants.DEFAULT_THEME);this.theme=await (0,_themepersistence.loadThemeFromCache)(this.cacheManager,this.config.persistence,initialTheme);(0,_themedom.applyThemeToDocument)(this.theme);this.initialized=true}getTheme(){return(0,_themeschema.cloneTheme)(this.theme)}getSnapshot(){return this.getTheme()}subscribe(listener){this.listeners.add(listener);return()=>{this.listeners.delete(listener)}}async setTheme(nextTheme){this.ensureInitialized();const prevTheme=this.theme;const mergedTheme=(0,_themeschema.mergeTheme)(prevTheme,nextTheme);if((0,_themeschema.isThemeEqual)(prevTheme,mergedTheme)){return}this.theme=mergedTheme;(0,_themedom.applyThemeToDocument)(this.theme,prevTheme);if(this.cacheManager){await (0,_themepersistence.saveThemeToCache)(this.cacheManager,this.config.persistence,this.theme)}this.emit(this.theme,prevTheme)}ensureInitialized(){if(!this.initialized){throw new Error("ThemeManager must be initialized before use.")}}emit(next,prev){for(const listener of this.listeners){try{listener((0,_themeschema.cloneTheme)(next),(0,_themeschema.cloneTheme)(prev))}catch{}}}constructor(){_define_property(this,"theme",(0,_themeschema.cloneTheme)(_constants.DEFAULT_THEME));_define_property(this,"config",_constants.DEFAULT_CONFIG.theme);_define_property(this,"listeners",new Set);_define_property(this,"cacheManager",null);_define_property(this,"initialized",false)}};
@@ -1,11 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "ThemeManager", {
6
- enumerable: true,
7
- get: function() {
8
- return _ThemeManager.ThemeManager;
9
- }
10
- });
11
- const _ThemeManager = require("./ThemeManager");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"ThemeManager",{enumerable:true,get:function(){return _ThemeManager.ThemeManager}});const _ThemeManager=require("./ThemeManager");
@@ -1,61 +1 @@
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 applyThemeToDocument () {
13
- return applyThemeToDocument;
14
- },
15
- get resolveThemeMode () {
16
- return resolveThemeMode;
17
- }
18
- });
19
- function canUseDom() {
20
- return typeof document !== 'undefined';
21
- }
22
- function resolveThemeMode(theme) {
23
- if (theme.mode !== 'system') {
24
- return theme.mode;
25
- }
26
- if (typeof window !== 'undefined' && window.matchMedia('(prefers-color-scheme: dark)').matches) {
27
- return 'dark';
28
- }
29
- return 'light';
30
- }
31
- function applyThemeToDocument(nextTheme, prevTheme) {
32
- if (!canUseDom()) {
33
- return;
34
- }
35
- const root = document.documentElement;
36
- const nextMode = resolveThemeMode(nextTheme);
37
- const prevMode = prevTheme ? resolveThemeMode(prevTheme) : undefined;
38
- if (!prevMode || prevMode !== nextMode) {
39
- root.classList.remove('light', 'dark');
40
- root.classList.add(nextMode);
41
- }
42
- if (!prevTheme || prevTheme.primaryColor !== nextTheme.primaryColor) {
43
- if (nextTheme.primaryColor) {
44
- root.style.setProperty('--app-primary-color', nextTheme.primaryColor);
45
- } else {
46
- root.style.removeProperty('--app-primary-color');
47
- }
48
- }
49
- const prevTokens = prevTheme?.tokens || {};
50
- const nextTokens = nextTheme.tokens || {};
51
- for (const token of Object.keys(prevTokens)){
52
- if (!(token in nextTokens)) {
53
- root.style.removeProperty(`--${token}`);
54
- }
55
- }
56
- for (const [token, value] of Object.entries(nextTokens)){
57
- if (!prevTheme || prevTokens[token] !== value) {
58
- root.style.setProperty(`--${token}`, String(value));
59
- }
60
- }
61
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get applyThemeToDocument(){return applyThemeToDocument},get resolveThemeMode(){return resolveThemeMode}});function canUseDom(){return typeof document!=="undefined"}function resolveThemeMode(theme){if(theme.mode!=="system"){return theme.mode}if(typeof window!=="undefined"&&window.matchMedia("(prefers-color-scheme: dark)").matches){return"dark"}return"light"}function applyThemeToDocument(nextTheme,prevTheme){if(!canUseDom()){return}const root=document.documentElement;const nextMode=resolveThemeMode(nextTheme);const prevMode=prevTheme?resolveThemeMode(prevTheme):undefined;if(!prevMode||prevMode!==nextMode){root.classList.remove("light","dark");root.classList.add(nextMode)}if(!prevTheme||prevTheme.primaryColor!==nextTheme.primaryColor){if(nextTheme.primaryColor){root.style.setProperty("--app-primary-color",nextTheme.primaryColor)}else{root.style.removeProperty("--app-primary-color")}}const prevTokens=prevTheme?.tokens||{};const nextTokens=nextTheme.tokens||{};for(const token of Object.keys(prevTokens)){if(!(token in nextTokens)){root.style.removeProperty(`--${token}`)}}for(const[token,value]of Object.entries(nextTokens)){if(!prevTheme||prevTokens[token]!==value){root.style.setProperty(`--${token}`,String(value))}}}