@vlian/framework 1.2.25 → 1.2.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/dist/analytics.umd.js +208 -2395
  2. package/dist/analytics.umd.js.map +1 -1
  3. package/dist/core/error/ErrorHandler.cjs.map +1 -1
  4. package/dist/core/error/ErrorHandler.d.ts +1 -1
  5. package/dist/core/error/ErrorHandler.js.map +1 -1
  6. package/dist/core/router/monitoring/RouterMonitoring.cjs +1 -1
  7. package/dist/core/router/monitoring/RouterMonitoring.cjs.map +1 -1
  8. package/dist/core/router/monitoring/RouterMonitoring.js +1 -1
  9. package/dist/core/router/monitoring/RouterMonitoring.js.map +1 -1
  10. package/dist/core/router/utils/adapters/react-router/transform.cjs +4 -0
  11. package/dist/core/router/utils/adapters/react-router/transform.cjs.map +1 -1
  12. package/dist/core/router/utils/adapters/react-router/transform.js +4 -0
  13. package/dist/core/router/utils/adapters/react-router/transform.js.map +1 -1
  14. package/dist/core/startup/initializeServices.cjs +1 -1
  15. package/dist/core/startup/initializeServices.cjs.map +1 -1
  16. package/dist/core/startup/initializeServices.d.ts +1 -1
  17. package/dist/core/startup/initializeServices.js +1 -1
  18. package/dist/core/startup/initializeServices.js.map +1 -1
  19. package/dist/core/startup/performanceTracker.cjs.map +1 -1
  20. package/dist/core/startup/performanceTracker.d.ts +1 -1
  21. package/dist/core/startup/performanceTracker.js.map +1 -1
  22. package/dist/core/startup/renderApp.cjs +1 -1
  23. package/dist/core/startup/renderApp.cjs.map +1 -1
  24. package/dist/core/startup/renderApp.d.ts +1 -1
  25. package/dist/core/startup/renderApp.js +1 -1
  26. package/dist/core/startup/renderApp.js.map +1 -1
  27. package/dist/core/startup/startApp.cjs +2 -2
  28. package/dist/core/startup/startApp.cjs.map +1 -1
  29. package/dist/core/startup/startApp.js +3 -3
  30. package/dist/core/startup/startApp.js.map +1 -1
  31. package/dist/core/types.d.ts +1 -1
  32. package/dist/core/types.js.map +1 -1
  33. package/dist/index.cjs +15 -2
  34. package/dist/index.cjs.map +1 -1
  35. package/dist/index.d.ts +6 -4
  36. package/dist/index.js +5 -4
  37. package/dist/index.js.map +1 -1
  38. package/dist/index.umd.js +11648 -32616
  39. package/dist/index.umd.js.map +1 -1
  40. package/dist/kernel/constants.cjs +67 -0
  41. package/dist/kernel/constants.cjs.map +1 -0
  42. package/dist/kernel/constants.d.ts +5 -0
  43. package/dist/kernel/constants.js +43 -0
  44. package/dist/kernel/constants.js.map +1 -0
  45. package/dist/kernel/index.cjs +40 -0
  46. package/dist/kernel/index.cjs.map +1 -0
  47. package/dist/kernel/index.d.ts +3 -0
  48. package/dist/kernel/index.js +4 -0
  49. package/dist/kernel/index.js.map +1 -0
  50. package/dist/kernel/kernel.cjs +296 -0
  51. package/dist/kernel/kernel.cjs.map +1 -0
  52. package/dist/kernel/kernel.d.ts +40 -0
  53. package/dist/kernel/kernel.js +272 -0
  54. package/dist/kernel/kernel.js.map +1 -0
  55. package/dist/kernel/manager/cacheManager.cjs +46 -0
  56. package/dist/kernel/manager/cacheManager.cjs.map +1 -0
  57. package/dist/kernel/manager/cacheManager.d.ts +6 -0
  58. package/dist/kernel/manager/cacheManager.js +36 -0
  59. package/dist/kernel/manager/cacheManager.js.map +1 -0
  60. package/dist/kernel/manager/i18nManager.cjs +68 -0
  61. package/dist/kernel/manager/i18nManager.cjs.map +1 -0
  62. package/dist/kernel/manager/i18nManager.d.ts +8 -0
  63. package/dist/kernel/manager/i18nManager.js +58 -0
  64. package/dist/kernel/manager/i18nManager.js.map +1 -0
  65. package/dist/kernel/manager/index.cjs +30 -0
  66. package/dist/kernel/manager/index.cjs.map +1 -0
  67. package/dist/kernel/manager/index.d.ts +4 -0
  68. package/dist/kernel/manager/index.js +6 -0
  69. package/dist/kernel/manager/index.js.map +1 -0
  70. package/dist/kernel/manager/loggerManager.cjs +70 -0
  71. package/dist/kernel/manager/loggerManager.cjs.map +1 -0
  72. package/dist/kernel/manager/loggerManager.d.ts +14 -0
  73. package/dist/kernel/manager/loggerManager.js +60 -0
  74. package/dist/kernel/manager/loggerManager.js.map +1 -0
  75. package/dist/kernel/manager/persistence.cjs +93 -0
  76. package/dist/kernel/manager/persistence.cjs.map +1 -0
  77. package/dist/kernel/manager/persistence.d.ts +3 -0
  78. package/dist/kernel/manager/persistence.js +75 -0
  79. package/dist/kernel/manager/persistence.js.map +1 -0
  80. package/dist/kernel/manager/themeManager.cjs +85 -0
  81. package/dist/kernel/manager/themeManager.cjs.map +1 -0
  82. package/dist/kernel/manager/themeManager.d.ts +9 -0
  83. package/dist/kernel/manager/themeManager.js +75 -0
  84. package/dist/kernel/manager/themeManager.js.map +1 -0
  85. package/dist/kernel/types.cjs +6 -0
  86. package/dist/kernel/types.cjs.map +1 -0
  87. package/dist/kernel/types.d.ts +72 -0
  88. package/dist/kernel/types.js +3 -0
  89. package/dist/kernel/types.js.map +1 -0
  90. package/dist/request/adapter.d.ts +1 -0
  91. package/dist/request/core.d.ts +1 -0
  92. package/dist/request/index.d.ts +1 -42
  93. package/dist/request/plugin/csrfPlugin.d.ts +2 -2
  94. package/dist/request/plugin/queue.d.ts +2 -2
  95. package/dist/request/plugin.d.ts +1 -0
  96. package/dist/request/runtime.d.ts +1 -0
  97. package/dist/request/types.d.ts +1 -394
  98. package/dist/request/utils.d.ts +1 -0
  99. package/dist/state.umd.js +1 -1
  100. package/dist/utils/csrf.cjs +13 -152
  101. package/dist/utils/csrf.cjs.map +1 -1
  102. package/dist/utils/csrf.d.ts +1 -72
  103. package/dist/utils/csrf.js +1 -142
  104. package/dist/utils/csrf.js.map +1 -1
  105. package/dist/utils/errors/ErrorCodes.cjs +6 -76
  106. package/dist/utils/errors/ErrorCodes.cjs.map +1 -1
  107. package/dist/utils/errors/ErrorCodes.d.ts +1 -45
  108. package/dist/utils/errors/ErrorCodes.js +1 -84
  109. package/dist/utils/errors/ErrorCodes.js.map +1 -1
  110. package/dist/utils/errors.cjs +15 -344
  111. package/dist/utils/errors.cjs.map +1 -1
  112. package/dist/utils/errors.d.ts +1 -183
  113. package/dist/utils/errors.js +1 -352
  114. package/dist/utils/errors.js.map +1 -1
  115. package/dist/utils/logger.cjs +5 -374
  116. package/dist/utils/logger.cjs.map +1 -1
  117. package/dist/utils/logger.d.ts +2 -189
  118. package/dist/utils/logger.js +1 -379
  119. package/dist/utils/logger.js.map +1 -1
  120. package/dist/utils/logger.types.cjs +3 -12
  121. package/dist/utils/logger.types.cjs.map +1 -1
  122. package/dist/utils/logger.types.d.ts +2 -57
  123. package/dist/utils/logger.types.js +1 -10
  124. package/dist/utils/logger.types.js.map +1 -1
  125. package/dist/utils/monitoring.cjs +11 -302
  126. package/dist/utils/monitoring.cjs.map +1 -1
  127. package/dist/utils/monitoring.d.ts +1 -163
  128. package/dist/utils/monitoring.js +1 -294
  129. package/dist/utils/monitoring.js.map +1 -1
  130. package/dist/utils/performance.cjs +5 -352
  131. package/dist/utils/performance.cjs.map +1 -1
  132. package/dist/utils/performance.d.ts +2 -246
  133. package/dist/utils/performance.js +1 -354
  134. package/dist/utils/performance.js.map +1 -1
  135. package/dist/utils/resourceLoader.cjs +5 -303
  136. package/dist/utils/resourceLoader.cjs.map +1 -1
  137. package/dist/utils/resourceLoader.d.ts +2 -130
  138. package/dist/utils/resourceLoader.js +1 -305
  139. package/dist/utils/resourceLoader.js.map +1 -1
  140. package/dist/utils/runtimeSecurity.cjs +2 -140
  141. package/dist/utils/runtimeSecurity.cjs.map +1 -1
  142. package/dist/utils/runtimeSecurity.d.ts +2 -104
  143. package/dist/utils/runtimeSecurity.js +1 -141
  144. package/dist/utils/runtimeSecurity.js.map +1 -1
  145. package/dist/utils/security.cjs +3 -314
  146. package/dist/utils/security.cjs.map +1 -1
  147. package/dist/utils/security.d.ts +2 -80
  148. package/dist/utils/security.js +1 -311
  149. package/dist/utils/security.js.map +1 -1
  150. package/dist/utils/traceId.cjs +10 -111
  151. package/dist/utils/traceId.cjs.map +1 -1
  152. package/dist/utils/traceId.d.ts +1 -63
  153. package/dist/utils/traceId.js +1 -116
  154. package/dist/utils/traceId.js.map +1 -1
  155. package/dist/utils/validation.cjs +3 -173
  156. package/dist/utils/validation.cjs.map +1 -1
  157. package/dist/utils/validation.d.ts +2 -110
  158. package/dist/utils/validation.js +1 -175
  159. package/dist/utils/validation.js.map +1 -1
  160. package/package.json +15 -24
  161. package/dist/lazy/index.cjs +0 -104
  162. package/dist/lazy/index.cjs.map +0 -1
  163. package/dist/lazy/index.d.ts +0 -19
  164. package/dist/lazy/index.js +0 -24
  165. package/dist/lazy/index.js.map +0 -1
  166. package/dist/request/adapter/RequestAdapter.cjs +0 -78
  167. package/dist/request/adapter/RequestAdapter.cjs.map +0 -1
  168. package/dist/request/adapter/axiosAdapter.cjs +0 -164
  169. package/dist/request/adapter/axiosAdapter.cjs.map +0 -1
  170. package/dist/request/adapter/fetchAdapter.cjs +0 -134
  171. package/dist/request/adapter/fetchAdapter.cjs.map +0 -1
  172. package/dist/request/adapter/index.cjs +0 -80
  173. package/dist/request/adapter/index.cjs.map +0 -1
  174. package/dist/request/adapter/kyAdapter.cjs +0 -191
  175. package/dist/request/adapter/kyAdapter.cjs.map +0 -1
  176. package/dist/request/adapter/undiciAdapter.cjs +0 -213
  177. package/dist/request/adapter/undiciAdapter.cjs.map +0 -1
  178. package/dist/request/core/RequestClient.cjs +0 -558
  179. package/dist/request/core/RequestClient.cjs.map +0 -1
  180. package/dist/request/core/index.cjs +0 -15
  181. package/dist/request/core/index.cjs.map +0 -1
  182. package/dist/request/index.cjs +0 -149
  183. package/dist/request/index.cjs.map +0 -1
  184. package/dist/request/plugin/RequestPlugin.cjs +0 -218
  185. package/dist/request/plugin/RequestPlugin.cjs.map +0 -1
  186. package/dist/request/plugin/cache.cjs +0 -269
  187. package/dist/request/plugin/cache.cjs.map +0 -1
  188. package/dist/request/plugin/csrfPlugin.cjs +0 -40
  189. package/dist/request/plugin/csrfPlugin.cjs.map +0 -1
  190. package/dist/request/plugin/index.cjs +0 -53
  191. package/dist/request/plugin/index.cjs.map +0 -1
  192. package/dist/request/plugin/monitoring.cjs +0 -216
  193. package/dist/request/plugin/monitoring.cjs.map +0 -1
  194. package/dist/request/plugin/queue.cjs +0 -140
  195. package/dist/request/plugin/queue.cjs.map +0 -1
  196. package/dist/request/plugin/retry.cjs +0 -98
  197. package/dist/request/plugin/retry.cjs.map +0 -1
  198. package/dist/request/plugin/validation.cjs +0 -121
  199. package/dist/request/plugin/validation.cjs.map +0 -1
  200. package/dist/request/runtime/RequestContext.cjs +0 -77
  201. package/dist/request/runtime/RequestContext.cjs.map +0 -1
  202. package/dist/request/runtime/index.cjs +0 -32
  203. package/dist/request/runtime/index.cjs.map +0 -1
  204. package/dist/request/types.cjs +0 -112
  205. package/dist/request/types.cjs.map +0 -1
  206. package/dist/request/utils/RequestQueueManager.cjs +0 -168
  207. package/dist/request/utils/RequestQueueManager.cjs.map +0 -1
  208. package/dist/request/utils/dependencyCheck.cjs +0 -237
  209. package/dist/request/utils/dependencyCheck.cjs.map +0 -1
  210. package/dist/request/utils/index.cjs +0 -30
  211. package/dist/request/utils/index.cjs.map +0 -1
  212. package/dist/request.umd.js +0 -5392
  213. package/dist/request.umd.js.map +0 -1
@@ -0,0 +1,272 @@
1
+ function _define_property(obj, key, value) {
2
+ if (key in obj) {
3
+ Object.defineProperty(obj, key, {
4
+ value: value,
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true
8
+ });
9
+ } else {
10
+ obj[key] = value;
11
+ }
12
+ return obj;
13
+ }
14
+ import { DEFAULT_CONFIG, DEFAULT_I18N, DEFAULT_INSTANCE_ID, DEFAULT_THEME } from "./constants";
15
+ import { LoggerManager } from "./manager/loggerManager";
16
+ import { CacheManager } from "./manager/cacheManager";
17
+ import { ThemeManager } from "./manager/themeManager";
18
+ import { I18nManager } from "./manager/i18nManager";
19
+ function now() {
20
+ return typeof performance !== 'undefined' ? performance.now() : Date.now();
21
+ }
22
+ function isRecord(value) {
23
+ return typeof value === 'object' && value !== null;
24
+ }
25
+ export class Kernel {
26
+ static getInstance(instanceId = DEFAULT_INSTANCE_ID) {
27
+ const existing = Kernel.instances.get(instanceId);
28
+ if (existing) {
29
+ return existing;
30
+ }
31
+ const created = new Kernel(instanceId);
32
+ Kernel.instances.set(instanceId, created);
33
+ return created;
34
+ }
35
+ getId() {
36
+ return this.instanceId;
37
+ }
38
+ getConfig() {
39
+ return this.config;
40
+ }
41
+ getMetrics() {
42
+ return [
43
+ ...this.metrics
44
+ ];
45
+ }
46
+ getLoggerManager() {
47
+ return this.loggerManager;
48
+ }
49
+ getCacheManager() {
50
+ return this.cacheManager;
51
+ }
52
+ getThemeManager() {
53
+ return this.themeManager;
54
+ }
55
+ getI18nManager() {
56
+ return this.i18nManager;
57
+ }
58
+ getManager(name) {
59
+ return this.managers.get(name);
60
+ }
61
+ registerManager(name, manager) {
62
+ if (this.managers.has(name)) {
63
+ throw new Error(`Kernel manager "${name}" 已存在`);
64
+ }
65
+ this.managers.set(name, manager);
66
+ }
67
+ async startup(options = {}) {
68
+ if (this.started) {
69
+ this.logDebug('kernel.startup.skip.already-started', {
70
+ instanceId: this.instanceId
71
+ });
72
+ return this;
73
+ }
74
+ if (this.startupPromise) {
75
+ return this.startupPromise;
76
+ }
77
+ this.startupPromise = this.bootstrap(options).finally(()=>{
78
+ this.startupPromise = null;
79
+ });
80
+ return this.startupPromise;
81
+ }
82
+ async bootstrap(options) {
83
+ await this.measurePhase('startup.begin', async ()=>{
84
+ this.logDebug('kernel.startup.begin', {
85
+ instanceId: this.instanceId
86
+ });
87
+ });
88
+ await this.measurePhase('config.load', async ()=>{
89
+ this.config = await this.resolveConfig(options);
90
+ });
91
+ await this.measurePhase('manager.register.custom', async ()=>{
92
+ if (options.customManagers) {
93
+ Object.entries(options.customManagers).forEach(([name, manager])=>{
94
+ if (!this.managers.has(name)) {
95
+ this.managers.set(name, manager);
96
+ }
97
+ });
98
+ }
99
+ });
100
+ await this.measurePhase('manager.initialize.default', async ()=>{
101
+ await this.initializeManager('cache');
102
+ await Promise.all([
103
+ this.initializeManager('logger'),
104
+ this.initializeManager('theme'),
105
+ this.initializeManager('i18n')
106
+ ]);
107
+ });
108
+ await this.measurePhase('manager.initialize.custom', async ()=>{
109
+ const customManagerNames = [
110
+ ...this.managers.keys()
111
+ ].filter((name)=>name !== 'logger' && name !== 'cache' && name !== 'theme' && name !== 'i18n');
112
+ for (const name of customManagerNames){
113
+ await this.initializeManager(name);
114
+ }
115
+ });
116
+ await this.measurePhase('hooks.initialize', async ()=>{
117
+ await options.hooks?.initialize?.();
118
+ await options.lifecycle?.initialization?.();
119
+ });
120
+ await this.measurePhase('render.custom', async ()=>{
121
+ if (options.render) {
122
+ await options.render({
123
+ instanceId: this.instanceId,
124
+ config: this.config
125
+ });
126
+ }
127
+ });
128
+ this.started = true;
129
+ this.logDebug('kernel.startup.end', {
130
+ instanceId: this.instanceId,
131
+ metrics: this.metrics
132
+ });
133
+ return this;
134
+ }
135
+ async resolveConfig(options) {
136
+ let loaded = {};
137
+ if (options.configLoader) {
138
+ const loaderResult = await options.configLoader();
139
+ loaded = loaderResult || {};
140
+ }
141
+ const loadedThemeInitial = loaded.theme?.initial || {};
142
+ const loadedI18nInitial = loaded.i18n?.initial || {};
143
+ const optionTheme = options.theme || {};
144
+ const optionLocale = options.locale;
145
+ return {
146
+ logger: {
147
+ ...DEFAULT_CONFIG.logger,
148
+ ...loaded.logger,
149
+ ...options.config?.logger || {},
150
+ level: options.loggerLevel || options.config?.logger?.level || loaded.logger?.level || DEFAULT_CONFIG.logger.level
151
+ },
152
+ cache: {
153
+ ...DEFAULT_CONFIG.cache,
154
+ ...loaded.cache,
155
+ ...options.config?.cache || {},
156
+ storageOptions: {
157
+ ...DEFAULT_CONFIG.cache.storageOptions,
158
+ ...loaded.cache?.storageOptions || {},
159
+ ...options.config?.cache?.storageOptions || {},
160
+ ...options.storageOptions || {}
161
+ }
162
+ },
163
+ theme: {
164
+ ...DEFAULT_CONFIG.theme,
165
+ ...loaded.theme,
166
+ ...options.config?.theme || {},
167
+ initial: {
168
+ ...DEFAULT_THEME,
169
+ ...loadedThemeInitial,
170
+ ...options.config?.theme?.initial || {},
171
+ ...isRecord(optionTheme) ? optionTheme : {}
172
+ }
173
+ },
174
+ i18n: {
175
+ ...DEFAULT_CONFIG.i18n,
176
+ ...loaded.i18n,
177
+ ...options.config?.i18n || {},
178
+ initial: {
179
+ ...DEFAULT_I18N,
180
+ ...loadedI18nInitial,
181
+ ...options.config?.i18n?.initial || {},
182
+ resources: isRecord(optionLocale) ? optionLocale : loadedI18nInitial.resources
183
+ }
184
+ }
185
+ };
186
+ }
187
+ async initializeManager(name) {
188
+ if (this.initializedManagers.has(name)) {
189
+ return;
190
+ }
191
+ const existingPromise = this.managerInitPromises.get(name);
192
+ if (existingPromise) {
193
+ await existingPromise;
194
+ return;
195
+ }
196
+ const manager = this.managers.get(name);
197
+ if (!manager) {
198
+ throw new Error(`Kernel manager "${name}" 不存在`);
199
+ }
200
+ const context = {
201
+ instanceId: this.instanceId,
202
+ config: this.config
203
+ };
204
+ const initPromise = (async ()=>{
205
+ await manager.initialize(context);
206
+ this.initializedManagers.add(name);
207
+ this.logDebug('kernel.manager.initialized', {
208
+ name,
209
+ instanceId: this.instanceId
210
+ });
211
+ })();
212
+ this.managerInitPromises.set(name, initPromise);
213
+ try {
214
+ await initPromise;
215
+ } finally{
216
+ this.managerInitPromises.delete(name);
217
+ }
218
+ }
219
+ async measurePhase(phase, task) {
220
+ const startTime = now();
221
+ this.logDebug('kernel.phase.start', {
222
+ phase,
223
+ startTime,
224
+ instanceId: this.instanceId
225
+ });
226
+ await task();
227
+ const endTime = now();
228
+ const metric = {
229
+ phase,
230
+ startTime,
231
+ endTime,
232
+ duration: endTime - startTime
233
+ };
234
+ this.metrics.push(metric);
235
+ this.logDebug('kernel.phase.end', metric);
236
+ }
237
+ logDebug(message, payload) {
238
+ this.loggerManager.debug(message, payload);
239
+ }
240
+ constructor(instanceId){
241
+ _define_property(this, "instanceId", void 0);
242
+ _define_property(this, "metrics", []);
243
+ _define_property(this, "managers", new Map());
244
+ _define_property(this, "managerInitPromises", new Map());
245
+ _define_property(this, "initializedManagers", new Set());
246
+ _define_property(this, "loggerManager", new LoggerManager());
247
+ _define_property(this, "cacheManager", new CacheManager());
248
+ _define_property(this, "themeManager", new ThemeManager());
249
+ _define_property(this, "i18nManager", new I18nManager());
250
+ _define_property(this, "config", DEFAULT_CONFIG);
251
+ _define_property(this, "startupPromise", null);
252
+ _define_property(this, "started", false);
253
+ this.instanceId = instanceId;
254
+ this.managers.set('logger', this.loggerManager);
255
+ this.managers.set('cache', this.cacheManager);
256
+ this.managers.set('theme', this.themeManager);
257
+ this.managers.set('i18n', this.i18nManager);
258
+ }
259
+ }
260
+ _define_property(Kernel, "instances", new Map());
261
+ export async function startup(options = {}, instanceId = DEFAULT_INSTANCE_ID) {
262
+ const kernel = Kernel.getInstance(instanceId);
263
+ return kernel.startup(options);
264
+ }
265
+ export function getKernel(instanceId = DEFAULT_INSTANCE_ID) {
266
+ return Kernel.getInstance(instanceId);
267
+ }
268
+ export async function kernelStartApp(options = {}, instanceId = DEFAULT_INSTANCE_ID) {
269
+ return startup(options, instanceId);
270
+ }
271
+
272
+ //# sourceMappingURL=kernel.js.map
@@ -0,0 +1 @@
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 DEFAULT_CONFIG.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,\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 };\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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"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "CacheManager", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return CacheManager;
9
+ }
10
+ });
11
+ const _library = require("../../library");
12
+ const _constants = require("../constants");
13
+ function _define_property(obj, key, value) {
14
+ if (key in obj) {
15
+ Object.defineProperty(obj, key, {
16
+ value: value,
17
+ enumerable: true,
18
+ configurable: true,
19
+ writable: true
20
+ });
21
+ } else {
22
+ obj[key] = value;
23
+ }
24
+ return obj;
25
+ }
26
+ let CacheManager = class CacheManager {
27
+ initialize(context) {
28
+ this.snapshot = context.config.cache;
29
+ _library.storage.initialize({
30
+ prefix: this.snapshot.storageOptions?.prefix || 'vlian',
31
+ defaultExpire: this.snapshot.storageOptions?.defaultExpire || 24 * 60 * 60 * 1000,
32
+ tableName: this.snapshot.storageOptions?.tableName,
33
+ cache: {
34
+ enabled: this.snapshot.enabled
35
+ }
36
+ });
37
+ }
38
+ getSnapshot() {
39
+ return this.snapshot;
40
+ }
41
+ constructor(){
42
+ _define_property(this, "snapshot", _constants.DEFAULT_CONFIG.cache);
43
+ }
44
+ };
45
+
46
+ //# sourceMappingURL=cacheManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/kernel/manager/cacheManager.ts"],"sourcesContent":["import { storage } from '../../library';\nimport type { KernelConfig, KernelManager, KernelManagerContext } from '../types';\nimport { DEFAULT_CONFIG } from '../constants';\n\nexport class CacheManager implements KernelManager<KernelConfig['cache']> {\n private snapshot: KernelConfig['cache'] = DEFAULT_CONFIG.cache;\n\n public initialize(context: KernelManagerContext): void {\n this.snapshot = context.config.cache;\n\n storage.initialize({\n prefix: this.snapshot.storageOptions?.prefix || 'vlian',\n defaultExpire: this.snapshot.storageOptions?.defaultExpire || 24 * 60 * 60 * 1000,\n tableName: this.snapshot.storageOptions?.tableName,\n cache: {\n enabled: this.snapshot.enabled,\n },\n });\n }\n\n public getSnapshot(): KernelConfig['cache'] {\n return this.snapshot;\n }\n}\n"],"names":["CacheManager","initialize","context","snapshot","config","cache","storage","prefix","storageOptions","defaultExpire","tableName","enabled","getSnapshot","DEFAULT_CONFIG"],"mappings":";;;;+BAIaA;;;eAAAA;;;yBAJW;2BAEO;;;;;;;;;;;;;;AAExB,IAAA,AAAMA,eAAN,MAAMA;IAGJC,WAAWC,OAA6B,EAAQ;QACrD,IAAI,CAACC,QAAQ,GAAGD,QAAQE,MAAM,CAACC,KAAK;QAEpCC,gBAAO,CAACL,UAAU,CAAC;YACjBM,QAAQ,IAAI,CAACJ,QAAQ,CAACK,cAAc,EAAED,UAAU;YAChDE,eAAe,IAAI,CAACN,QAAQ,CAACK,cAAc,EAAEC,iBAAiB,KAAK,KAAK,KAAK;YAC7EC,WAAW,IAAI,CAACP,QAAQ,CAACK,cAAc,EAAEE;YACzCL,OAAO;gBACLM,SAAS,IAAI,CAACR,QAAQ,CAACQ,OAAO;YAChC;QACF;IACF;IAEOC,cAAqC;QAC1C,OAAO,IAAI,CAACT,QAAQ;IACtB;;QAjBA,uBAAQA,YAAkCU,yBAAc,CAACR,KAAK;;AAkBhE"}
@@ -0,0 +1,6 @@
1
+ import type { KernelConfig, KernelManager, KernelManagerContext } from '../types';
2
+ export declare class CacheManager implements KernelManager<KernelConfig['cache']> {
3
+ private snapshot;
4
+ initialize(context: KernelManagerContext): void;
5
+ getSnapshot(): KernelConfig['cache'];
6
+ }
@@ -0,0 +1,36 @@
1
+ function _define_property(obj, key, value) {
2
+ if (key in obj) {
3
+ Object.defineProperty(obj, key, {
4
+ value: value,
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true
8
+ });
9
+ } else {
10
+ obj[key] = value;
11
+ }
12
+ return obj;
13
+ }
14
+ import { storage } from "../../library";
15
+ import { DEFAULT_CONFIG } from "../constants";
16
+ export class CacheManager {
17
+ initialize(context) {
18
+ this.snapshot = context.config.cache;
19
+ storage.initialize({
20
+ prefix: this.snapshot.storageOptions?.prefix || 'vlian',
21
+ defaultExpire: this.snapshot.storageOptions?.defaultExpire || 24 * 60 * 60 * 1000,
22
+ tableName: this.snapshot.storageOptions?.tableName,
23
+ cache: {
24
+ enabled: this.snapshot.enabled
25
+ }
26
+ });
27
+ }
28
+ getSnapshot() {
29
+ return this.snapshot;
30
+ }
31
+ constructor(){
32
+ _define_property(this, "snapshot", DEFAULT_CONFIG.cache);
33
+ }
34
+ }
35
+
36
+ //# sourceMappingURL=cacheManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/kernel/manager/cacheManager.ts"],"sourcesContent":["import { storage } from '../../library';\nimport type { KernelConfig, KernelManager, KernelManagerContext } from '../types';\nimport { DEFAULT_CONFIG } from '../constants';\n\nexport class CacheManager implements KernelManager<KernelConfig['cache']> {\n private snapshot: KernelConfig['cache'] = DEFAULT_CONFIG.cache;\n\n public initialize(context: KernelManagerContext): void {\n this.snapshot = context.config.cache;\n\n storage.initialize({\n prefix: this.snapshot.storageOptions?.prefix || 'vlian',\n defaultExpire: this.snapshot.storageOptions?.defaultExpire || 24 * 60 * 60 * 1000,\n tableName: this.snapshot.storageOptions?.tableName,\n cache: {\n enabled: this.snapshot.enabled,\n },\n });\n }\n\n public getSnapshot(): KernelConfig['cache'] {\n return this.snapshot;\n }\n}\n"],"names":["storage","DEFAULT_CONFIG","CacheManager","initialize","context","snapshot","config","cache","prefix","storageOptions","defaultExpire","tableName","enabled","getSnapshot"],"mappings":";;;;;;;;;;;;;AAAA,SAASA,OAAO,QAAQ,gBAAgB;AAExC,SAASC,cAAc,QAAQ,eAAe;AAE9C,OAAO,MAAMC;IAGJC,WAAWC,OAA6B,EAAQ;QACrD,IAAI,CAACC,QAAQ,GAAGD,QAAQE,MAAM,CAACC,KAAK;QAEpCP,QAAQG,UAAU,CAAC;YACjBK,QAAQ,IAAI,CAACH,QAAQ,CAACI,cAAc,EAAED,UAAU;YAChDE,eAAe,IAAI,CAACL,QAAQ,CAACI,cAAc,EAAEC,iBAAiB,KAAK,KAAK,KAAK;YAC7EC,WAAW,IAAI,CAACN,QAAQ,CAACI,cAAc,EAAEE;YACzCJ,OAAO;gBACLK,SAAS,IAAI,CAACP,QAAQ,CAACO,OAAO;YAChC;QACF;IACF;IAEOC,cAAqC;QAC1C,OAAO,IAAI,CAACR,QAAQ;IACtB;;QAjBA,uBAAQA,YAAkCJ,eAAeM,KAAK;;AAkBhE"}
@@ -0,0 +1,68 @@
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;
9
+ }
10
+ });
11
+ const _library = require("../../library");
12
+ const _constants = require("../constants");
13
+ const _persistence = require("./persistence");
14
+ function _define_property(obj, key, value) {
15
+ if (key in obj) {
16
+ Object.defineProperty(obj, key, {
17
+ value: value,
18
+ enumerable: true,
19
+ configurable: true,
20
+ writable: true
21
+ });
22
+ } else {
23
+ obj[key] = value;
24
+ }
25
+ return obj;
26
+ }
27
+ let I18nManager = class I18nManager {
28
+ async initialize(context) {
29
+ this.config = context.config.i18n;
30
+ this.snapshot = {
31
+ ..._constants.DEFAULT_I18N,
32
+ ...this.config.initial || {}
33
+ };
34
+ const persisted = await (0, _persistence.readPersistedValue)(this.config.persistence);
35
+ if (persisted) {
36
+ try {
37
+ const parsed = JSON.parse(persisted);
38
+ this.snapshot = {
39
+ ...this.snapshot,
40
+ ...parsed
41
+ };
42
+ } catch {
43
+ // ignore parse errors
44
+ }
45
+ }
46
+ (0, _library.setupI18n)(this.snapshot.resources || {});
47
+ (0, _library.setLang)(this.snapshot.locale);
48
+ }
49
+ getSnapshot() {
50
+ return {
51
+ ...this.snapshot
52
+ };
53
+ }
54
+ async setLocale(locale) {
55
+ this.snapshot = {
56
+ ...this.snapshot,
57
+ locale
58
+ };
59
+ (0, _library.setLang)(locale);
60
+ await (0, _persistence.writePersistedValue)(this.config.persistence, JSON.stringify(this.snapshot));
61
+ }
62
+ constructor(){
63
+ _define_property(this, "snapshot", _constants.DEFAULT_I18N);
64
+ _define_property(this, "config", _constants.DEFAULT_CONFIG.i18n);
65
+ }
66
+ };
67
+
68
+ //# sourceMappingURL=i18nManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/kernel/manager/i18nManager.ts"],"sourcesContent":["import { setupI18n, setLang } from '../../library';\nimport type { I18nSnapshot, KernelConfig, KernelManager, KernelManagerContext } from '../types';\nimport { DEFAULT_CONFIG, DEFAULT_I18N } from '../constants';\nimport { readPersistedValue, writePersistedValue } from './persistence';\n\nexport class I18nManager implements KernelManager<I18nSnapshot> {\n private snapshot: I18nSnapshot = DEFAULT_I18N;\n private config: KernelConfig['i18n'] = DEFAULT_CONFIG.i18n;\n\n public async initialize(context: KernelManagerContext): Promise<void> {\n this.config = context.config.i18n;\n this.snapshot = { ...DEFAULT_I18N, ...(this.config.initial || {}) };\n\n const persisted = await readPersistedValue(this.config.persistence);\n if (persisted) {\n try {\n const parsed = JSON.parse(persisted) as Partial<I18nSnapshot>;\n this.snapshot = { ...this.snapshot, ...parsed };\n } catch {\n // ignore parse errors\n }\n }\n\n setupI18n((this.snapshot.resources || {}) as any);\n setLang(this.snapshot.locale);\n }\n\n public getSnapshot(): I18nSnapshot {\n return { ...this.snapshot };\n }\n\n public async setLocale(locale: I18nSnapshot['locale']): Promise<void> {\n this.snapshot = { ...this.snapshot, locale };\n setLang(locale);\n await writePersistedValue(this.config.persistence, JSON.stringify(this.snapshot));\n }\n}\n"],"names":["I18nManager","initialize","context","config","i18n","snapshot","DEFAULT_I18N","initial","persisted","readPersistedValue","persistence","parsed","JSON","parse","setupI18n","resources","setLang","locale","getSnapshot","setLocale","writePersistedValue","stringify","DEFAULT_CONFIG"],"mappings":";;;;+BAKaA;;;eAAAA;;;yBALsB;2BAEU;6BACW;;;;;;;;;;;;;;AAEjD,IAAA,AAAMA,cAAN,MAAMA;IAIX,MAAaC,WAAWC,OAA6B,EAAiB;QACpE,IAAI,CAACC,MAAM,GAAGD,QAAQC,MAAM,CAACC,IAAI;QACjC,IAAI,CAACC,QAAQ,GAAG;YAAE,GAAGC,uBAAY;YAAE,GAAI,IAAI,CAACH,MAAM,CAACI,OAAO,IAAI,CAAC,CAAC;QAAE;QAElE,MAAMC,YAAY,MAAMC,IAAAA,+BAAkB,EAAC,IAAI,CAACN,MAAM,CAACO,WAAW;QAClE,IAAIF,WAAW;YACb,IAAI;gBACF,MAAMG,SAASC,KAAKC,KAAK,CAACL;gBAC1B,IAAI,CAACH,QAAQ,GAAG;oBAAE,GAAG,IAAI,CAACA,QAAQ;oBAAE,GAAGM,MAAM;gBAAC;YAChD,EAAE,OAAM;YACN,sBAAsB;YACxB;QACF;QAEAG,IAAAA,kBAAS,EAAE,IAAI,CAACT,QAAQ,CAACU,SAAS,IAAI,CAAC;QACvCC,IAAAA,gBAAO,EAAC,IAAI,CAACX,QAAQ,CAACY,MAAM;IAC9B;IAEOC,cAA4B;QACjC,OAAO;YAAE,GAAG,IAAI,CAACb,QAAQ;QAAC;IAC5B;IAEA,MAAac,UAAUF,MAA8B,EAAiB;QACpE,IAAI,CAACZ,QAAQ,GAAG;YAAE,GAAG,IAAI,CAACA,QAAQ;YAAEY;QAAO;QAC3CD,IAAAA,gBAAO,EAACC;QACR,MAAMG,IAAAA,gCAAmB,EAAC,IAAI,CAACjB,MAAM,CAACO,WAAW,EAAEE,KAAKS,SAAS,CAAC,IAAI,CAAChB,QAAQ;IACjF;;QA7BA,uBAAQA,YAAyBC,uBAAY;QAC7C,uBAAQH,UAA+BmB,yBAAc,CAAClB,IAAI;;AA6B5D"}
@@ -0,0 +1,8 @@
1
+ import type { I18nSnapshot, KernelManager, KernelManagerContext } from '../types';
2
+ export declare class I18nManager implements KernelManager<I18nSnapshot> {
3
+ private snapshot;
4
+ private config;
5
+ initialize(context: KernelManagerContext): Promise<void>;
6
+ getSnapshot(): I18nSnapshot;
7
+ setLocale(locale: I18nSnapshot['locale']): Promise<void>;
8
+ }
@@ -0,0 +1,58 @@
1
+ function _define_property(obj, key, value) {
2
+ if (key in obj) {
3
+ Object.defineProperty(obj, key, {
4
+ value: value,
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true
8
+ });
9
+ } else {
10
+ obj[key] = value;
11
+ }
12
+ return obj;
13
+ }
14
+ import { setupI18n, setLang } from "../../library";
15
+ import { DEFAULT_CONFIG, DEFAULT_I18N } from "../constants";
16
+ import { readPersistedValue, writePersistedValue } from "./persistence";
17
+ export class I18nManager {
18
+ async initialize(context) {
19
+ this.config = context.config.i18n;
20
+ this.snapshot = {
21
+ ...DEFAULT_I18N,
22
+ ...this.config.initial || {}
23
+ };
24
+ const persisted = await readPersistedValue(this.config.persistence);
25
+ if (persisted) {
26
+ try {
27
+ const parsed = JSON.parse(persisted);
28
+ this.snapshot = {
29
+ ...this.snapshot,
30
+ ...parsed
31
+ };
32
+ } catch {
33
+ // ignore parse errors
34
+ }
35
+ }
36
+ setupI18n(this.snapshot.resources || {});
37
+ setLang(this.snapshot.locale);
38
+ }
39
+ getSnapshot() {
40
+ return {
41
+ ...this.snapshot
42
+ };
43
+ }
44
+ async setLocale(locale) {
45
+ this.snapshot = {
46
+ ...this.snapshot,
47
+ locale
48
+ };
49
+ setLang(locale);
50
+ await writePersistedValue(this.config.persistence, JSON.stringify(this.snapshot));
51
+ }
52
+ constructor(){
53
+ _define_property(this, "snapshot", DEFAULT_I18N);
54
+ _define_property(this, "config", DEFAULT_CONFIG.i18n);
55
+ }
56
+ }
57
+
58
+ //# sourceMappingURL=i18nManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/kernel/manager/i18nManager.ts"],"sourcesContent":["import { setupI18n, setLang } from '../../library';\nimport type { I18nSnapshot, KernelConfig, KernelManager, KernelManagerContext } from '../types';\nimport { DEFAULT_CONFIG, DEFAULT_I18N } from '../constants';\nimport { readPersistedValue, writePersistedValue } from './persistence';\n\nexport class I18nManager implements KernelManager<I18nSnapshot> {\n private snapshot: I18nSnapshot = DEFAULT_I18N;\n private config: KernelConfig['i18n'] = DEFAULT_CONFIG.i18n;\n\n public async initialize(context: KernelManagerContext): Promise<void> {\n this.config = context.config.i18n;\n this.snapshot = { ...DEFAULT_I18N, ...(this.config.initial || {}) };\n\n const persisted = await readPersistedValue(this.config.persistence);\n if (persisted) {\n try {\n const parsed = JSON.parse(persisted) as Partial<I18nSnapshot>;\n this.snapshot = { ...this.snapshot, ...parsed };\n } catch {\n // ignore parse errors\n }\n }\n\n setupI18n((this.snapshot.resources || {}) as any);\n setLang(this.snapshot.locale);\n }\n\n public getSnapshot(): I18nSnapshot {\n return { ...this.snapshot };\n }\n\n public async setLocale(locale: I18nSnapshot['locale']): Promise<void> {\n this.snapshot = { ...this.snapshot, locale };\n setLang(locale);\n await writePersistedValue(this.config.persistence, JSON.stringify(this.snapshot));\n }\n}\n"],"names":["setupI18n","setLang","DEFAULT_CONFIG","DEFAULT_I18N","readPersistedValue","writePersistedValue","I18nManager","initialize","context","config","i18n","snapshot","initial","persisted","persistence","parsed","JSON","parse","resources","locale","getSnapshot","setLocale","stringify"],"mappings":";;;;;;;;;;;;;AAAA,SAASA,SAAS,EAAEC,OAAO,QAAQ,gBAAgB;AAEnD,SAASC,cAAc,EAAEC,YAAY,QAAQ,eAAe;AAC5D,SAASC,kBAAkB,EAAEC,mBAAmB,QAAQ,gBAAgB;AAExE,OAAO,MAAMC;IAIX,MAAaC,WAAWC,OAA6B,EAAiB;QACpE,IAAI,CAACC,MAAM,GAAGD,QAAQC,MAAM,CAACC,IAAI;QACjC,IAAI,CAACC,QAAQ,GAAG;YAAE,GAAGR,YAAY;YAAE,GAAI,IAAI,CAACM,MAAM,CAACG,OAAO,IAAI,CAAC,CAAC;QAAE;QAElE,MAAMC,YAAY,MAAMT,mBAAmB,IAAI,CAACK,MAAM,CAACK,WAAW;QAClE,IAAID,WAAW;YACb,IAAI;gBACF,MAAME,SAASC,KAAKC,KAAK,CAACJ;gBAC1B,IAAI,CAACF,QAAQ,GAAG;oBAAE,GAAG,IAAI,CAACA,QAAQ;oBAAE,GAAGI,MAAM;gBAAC;YAChD,EAAE,OAAM;YACN,sBAAsB;YACxB;QACF;QAEAf,UAAW,IAAI,CAACW,QAAQ,CAACO,SAAS,IAAI,CAAC;QACvCjB,QAAQ,IAAI,CAACU,QAAQ,CAACQ,MAAM;IAC9B;IAEOC,cAA4B;QACjC,OAAO;YAAE,GAAG,IAAI,CAACT,QAAQ;QAAC;IAC5B;IAEA,MAAaU,UAAUF,MAA8B,EAAiB;QACpE,IAAI,CAACR,QAAQ,GAAG;YAAE,GAAG,IAAI,CAACA,QAAQ;YAAEQ;QAAO;QAC3ClB,QAAQkB;QACR,MAAMd,oBAAoB,IAAI,CAACI,MAAM,CAACK,WAAW,EAAEE,KAAKM,SAAS,CAAC,IAAI,CAACX,QAAQ;IACjF;;QA7BA,uBAAQA,YAAyBR;QACjC,uBAAQM,UAA+BP,eAAeQ,IAAI;;AA6B5D"}
@@ -0,0 +1,30 @@
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");
29
+
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,4 @@
1
+ export { LoggerManager } from './loggerManager';
2
+ export { CacheManager } from './cacheManager';
3
+ export { ThemeManager } from './themeManager';
4
+ export { I18nManager } from './i18nManager';
@@ -0,0 +1,6 @@
1
+ export { LoggerManager } from "./loggerManager";
2
+ export { CacheManager } from "./cacheManager";
3
+ export { ThemeManager } from "./themeManager";
4
+ export { I18nManager } from "./i18nManager";
5
+
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
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"}