@vlian/framework 2.0.2 → 2.0.3
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.
- package/dist/i18n.cjs +1 -1
- package/dist/i18n.d.ts +1 -1
- package/dist/i18n.js +1 -1
- package/dist/i18n.lazy.cjs +1 -0
- package/dist/i18n.lazy.d.ts +2 -0
- package/dist/i18n.lazy.js +1 -0
- package/dist/index.umd.js +6 -4
- package/dist/kernel/custom-manager/i18n/I18nManager.cjs +1 -1
- package/dist/kernel/custom-manager/i18n/I18nManager.js +1 -1
- package/dist/kernel/custom-manager/i18n/index.cjs +1 -1
- package/dist/kernel/custom-manager/i18n/index.d.ts +1 -0
- package/dist/kernel/custom-manager/i18n/index.js +1 -1
- package/dist/kernel/custom-manager/i18n/lazy.cjs +1 -0
- package/dist/kernel/custom-manager/i18n/lazy.d.ts +3 -0
- package/dist/kernel/custom-manager/i18n/lazy.js +1 -0
- package/dist/kernel/custom-manager/index.cjs +1 -1
- package/dist/kernel/custom-manager/index.d.ts +2 -2
- package/dist/kernel/custom-manager/index.js +1 -1
- package/dist/kernel/custom-manager/theme/ThemeManager.cjs +1 -1
- package/dist/kernel/custom-manager/theme/ThemeManager.js +1 -1
- package/dist/kernel/custom-manager/theme/index.cjs +1 -1
- package/dist/kernel/custom-manager/theme/index.d.ts +1 -0
- package/dist/kernel/custom-manager/theme/index.js +1 -1
- package/dist/kernel/custom-manager/theme/lazy.cjs +1 -0
- package/dist/kernel/custom-manager/theme/lazy.d.ts +3 -0
- package/dist/kernel/custom-manager/theme/lazy.js +1 -0
- package/dist/kernel/index.d.ts +1 -0
- package/dist/kernel/kernel.cjs +1 -1
- package/dist/kernel/kernel.d.ts +7 -0
- package/dist/kernel/kernel.js +1 -1
- package/dist/kernel/manager/cacheManager.cjs +1 -1
- package/dist/kernel/manager/cacheManager.js +1 -1
- package/dist/kernel/manager/logger/LoggerManager.cjs +1 -1
- package/dist/kernel/manager/logger/LoggerManager.js +1 -1
- package/dist/kernel/manager-registration.cjs +1 -0
- package/dist/kernel/manager-registration.d.ts +25 -0
- package/dist/kernel/manager-registration.js +1 -0
- package/dist/kernel/types.d.ts +2 -1
- package/dist/theme.cjs +1 -1
- package/dist/theme.d.ts +1 -1
- package/dist/theme.js +1 -1
- package/dist/theme.lazy.cjs +1 -0
- package/dist/theme.lazy.d.ts +2 -0
- package/dist/theme.lazy.js +1 -0
- package/package.json +23 -1
package/dist/i18n.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
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(){return _i18n.DEFAULT_I18N},get DEFAULT_I18N_MANAGER_CONFIG(){return _i18n.DEFAULT_I18N_MANAGER_CONFIG},get I18N_MANAGER_NAME(){return _i18n.I18N_MANAGER_NAME},get I18nManager(){return _i18n.I18nManager},get registerI18nManager(){return _i18n.registerI18nManager}});const _i18n=require("./kernel/custom-manager/i18n");
|
|
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(){return _i18n.DEFAULT_I18N},get DEFAULT_I18N_MANAGER_CONFIG(){return _i18n.DEFAULT_I18N_MANAGER_CONFIG},get I18N_MANAGER_NAME(){return _i18n.I18N_MANAGER_NAME},get I18nManager(){return _i18n.I18nManager},get registerI18nManager(){return _i18n.registerI18nManager},get registerLazyI18nManager(){return _i18n.registerLazyI18nManager}});const _i18n=require("./kernel/custom-manager/i18n");
|
package/dist/i18n.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { I18nManager, DEFAULT_I18N, DEFAULT_I18N_MANAGER_CONFIG, I18N_MANAGER_NAME, registerI18nManager, } from './kernel/custom-manager/i18n';
|
|
1
|
+
export { I18nManager, DEFAULT_I18N, DEFAULT_I18N_MANAGER_CONFIG, I18N_MANAGER_NAME, registerLazyI18nManager, registerI18nManager, } from './kernel/custom-manager/i18n';
|
|
2
2
|
export type { I18nManagerConfig, I18nSnapshot } from './kernel/custom-manager/i18n';
|
package/dist/i18n.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{I18nManager,DEFAULT_I18N,DEFAULT_I18N_MANAGER_CONFIG,I18N_MANAGER_NAME,registerI18nManager}from"./kernel/custom-manager/i18n";
|
|
1
|
+
export{I18nManager,DEFAULT_I18N,DEFAULT_I18N_MANAGER_CONFIG,I18N_MANAGER_NAME,registerLazyI18nManager,registerI18nManager}from"./kernel/custom-manager/i18n";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"registerLazyI18nManager",{enumerable:true,get:function(){return _lazy.registerLazyI18nManager}});const _lazy=require("./kernel/custom-manager/i18n/lazy");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{registerLazyI18nManager}from"./kernel/custom-manager/i18n/lazy";
|
package/dist/index.umd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* @vlian/framework v2.0.
|
|
2
|
+
* @vlian/framework v2.0.2
|
|
3
3
|
* Secra Framework - 一个现代化的低代码框架
|
|
4
4
|
* (c) 2026 Secra Framework Contributors
|
|
5
5
|
* Licensed under Apache-2.0
|
|
@@ -16,11 +16,13 @@
|
|
|
16
16
|
|
|
17
17
|
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 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{}}
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
class LoggerManager{snapshot={level:logger.LogLevel.INFO};config=DEFAULT_CONFIG.logger;listeners=new Set;cacheManager=null;initialized=false;async initialize(context){this.config=context.config.logger;this.cacheManager=context.cacheManager;const initialSnapshot=normalizeLoggerSnapshot({level:this.config.level},{level:logger.LogLevel.INFO});this.snapshot=await 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=normalizeLoggerSnapshot({level},prevSnapshot);if(isLoggerEqual(prevSnapshot,nextSnapshot)){return}this.snapshot=nextSnapshot;logger.logger.setLevel(this.snapshot.level);if(this.cacheManager){await 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{}}}}
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
class CacheManager{snapshot=DEFAULT_CONFIG.cache;cacheIn;initialize(context){this.snapshot=context.config.cache;this.cacheIn=utils.createStorage({type:this.snapshot.storageOptions?.type||"local",prefix:this.snapshot.storageOptions?.prefix||"vlian",defaultExpire:this.snapshot.storageOptions?.defaultExpire||24*60*60*1e3,dbName:this.snapshot.storageOptions?.tableName});}get cache(){return this.cacheIn}getSnapshot(){return this.snapshot}}
|
|
22
22
|
|
|
23
|
-
function
|
|
23
|
+
function isKernelManager(value){return typeof value==="object"&&value!==null&&typeof value.initialize==="function"}function isLazyKernelManagerRegistration(value){return typeof value==="object"&&value!==null&&"load"in value}function isEagerKernelManagerRegistration(value){return typeof value==="object"&&value!==null&&"manager"in value}function resolveKernelManagerModule(module){if(isKernelManager(module)){return module}if("manager"in module&&isKernelManager(module.manager)){return module.manager}if("default"in module&&isKernelManager(module.default)){return module.default}throw new Error("Invalid lazy kernel manager module")}
|
|
24
|
+
|
|
25
|
+
function now(){return typeof performance!=="undefined"?performance.now():Date.now()}class Kernel{static instances=new Map;static getInstance(instanceId=DEFAULT_INSTANCE_ID){const existing=Kernel.instances.get(instanceId);if(existing){return existing}const created=new Kernel(instanceId);Kernel.instances.set(instanceId,created);return created}instanceId;metrics=[];managers=new Map;managerLoaders=new Map;eagerManagers=new Set;managerInitPromises=new Map;initializedManagers=new Set;loggerManager=new LoggerManager;cacheManager=new CacheManager;config=DEFAULT_CONFIG;startupPromise=null;started=false;constructor(instanceId){this.instanceId=instanceId;this.managers.set("logger",this.loggerManager);this.managers.set("cache",this.cacheManager);}getId(){return this.instanceId}getConfig(){return this.config}getMetrics(){return [...this.metrics]}getLoggerManager(){return this.loggerManager}getCacheManager(){return this.cacheManager}getManager(name){return this.managers.get(name)}hasManager(name){return this.managers.has(name)||this.managerLoaders.has(name)}registerManager(name,manager){if(this.hasManager(name)){throw new Error(`Kernel manager "${name}" 已存在`)}this.managers.set(name,manager);}registerLazyManager(name,load,options={}){if(this.hasManager(name)){throw new Error(`Kernel manager "${name}" 已存在`)}this.managerLoaders.set(name,load);if(options.eager){this.eagerManagers.add(name);}}getManagerConfig(name){return this.config.managerConfigs[name]}setManagerConfig(name,config){this.config={...this.config,managerConfigs:{...this.config.managerConfigs,[name]:config}};}async startup(options={}){if(this.started){this.logDebug("kernel.startup.skip.already-started",{instanceId:this.instanceId});return this}if(this.startupPromise){return this.startupPromise}this.startupPromise=this.bootstrap(options).finally(()=>{this.startupPromise=null;});return this.startupPromise}async bootstrap(options){await this.measurePhase("startup.begin",async()=>{this.logDebug("kernel.startup.begin",{instanceId:this.instanceId});});await this.measurePhase("config.load",async()=>{this.config=await this.resolveConfig(options);});await this.measurePhase("manager.register.custom",async()=>{if(options.customManagers){Object.entries(options.customManagers).forEach(([name,registration])=>{if(!this.hasManager(name)){this.registerConfiguredManager(name,registration);}});}});await this.measurePhase("manager.initialize.default",async()=>{await this.initializeManager("cache");await this.initializeManager("logger");});await this.measurePhase("manager.initialize.custom",async()=>{const customManagerNames=[...this.eagerManagers].filter(name=>name!=="logger"&&name!=="cache");await Promise.all(customManagerNames.map(name=>this.initializeManager(name)));});await this.measurePhase("hooks.initialize",async()=>{await options.hooks?.initialize?.();await options.lifecycle?.initialization?.();});await this.measurePhase("render.custom",async()=>{if(options.render){await options.render({instanceId:this.instanceId,config:this.config});}});this.started=true;this.logDebug("kernel.startup.end",{instanceId:this.instanceId,metrics:this.metrics});return this}async resolveConfig(options){let loaded={};if(options.configLoader){const loaderResult=await options.configLoader();loaded=loaderResult||{};}return {logger:{...DEFAULT_CONFIG.logger,...loaded.logger,...options.config?.logger||{},level:options.loggerLevel??options.config?.logger?.level??loaded.logger?.level},cache:{...DEFAULT_CONFIG.cache,...loaded.cache,...options.config?.cache||{},storageOptions:{...DEFAULT_CONFIG.cache.storageOptions,...loaded.cache?.storageOptions||{},...options.config?.cache?.storageOptions||{},...options.storageOptions||{}}},managerConfigs:{...DEFAULT_CONFIG.managerConfigs,...loaded.managerConfigs||{},...options.config?.managerConfigs||{},...options.managerConfigs||{}}}}async initializeManager(name){if(this.initializedManagers.has(name)){return}const existingPromise=this.managerInitPromises.get(name);if(existingPromise){await existingPromise;return}let manager=this.managers.get(name);if(!manager){manager=await this.loadManager(name);}if(!manager){throw new Error(`Kernel manager "${name}" 不存在`)}if(name!=="cache"&&!this.initializedManagers.has("cache")){await this.initializeManager("cache");}const context={instanceId:this.instanceId,config:this.config,cacheManager:this.cacheManager.cache,getManagerConfig:managerName=>this.config.managerConfigs[managerName]};const initPromise=(async()=>{await manager.initialize(context);this.initializedManagers.add(name);this.logDebug("kernel.manager.initialized",{name,instanceId:this.instanceId});})();this.managerInitPromises.set(name,initPromise);try{await initPromise;}finally{this.managerInitPromises.delete(name);}}registerConfiguredManager(name,registration){if(isKernelManager(registration)){this.registerManager(name,registration);this.eagerManagers.add(name);return}if(isLazyKernelManagerRegistration(registration)){if(registration.config!==undefined){this.setManagerConfig(name,registration.config);}this.registerLazyManager(name,registration.load,{eager:registration.eager});return}if(isEagerKernelManagerRegistration(registration)){if(registration.config!==undefined){this.setManagerConfig(name,registration.config);}this.registerManager(name,registration.manager);if(registration.eager!==false){this.eagerManagers.add(name);}}}async loadManager(name){const load=this.managerLoaders.get(name);if(!load){return undefined}const loaded=resolveKernelManagerModule(await load());this.managerLoaders.delete(name);this.managers.set(name,loaded);return loaded}async measurePhase(phase,task){const startTime=now();this.logDebug("kernel.phase.start",{phase,startTime,instanceId:this.instanceId});await task();const endTime=now();const metric={phase,startTime,endTime,duration:endTime-startTime};this.metrics.push(metric);this.logDebug("kernel.phase.end",metric);}logDebug(message,payload){this.loggerManager.debug(message,payload);}}async function startup(options={},instanceId=DEFAULT_INSTANCE_ID){const kernel=Kernel.getInstance(instanceId);return kernel.startup(options)}function getKernel(instanceId=DEFAULT_INSTANCE_ID){return Kernel.getInstance(instanceId)}async function kernelStartApp(options={},instanceId=DEFAULT_INSTANCE_ID){return startup(options,instanceId)}
|
|
24
26
|
|
|
25
27
|
exports.Kernel = Kernel;
|
|
26
28
|
exports.getKernel = getKernel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"I18nManager",{enumerable:true,get:function(){return I18nManager}});const _constants=require("./constants");const _i18npersistence=require("./i18n.persistence");const _i18nruntime=require("./i18n.runtime");const _i18nschema=require("./i18n.schema");
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"I18nManager",{enumerable:true,get:function(){return I18nManager}});const _constants=require("./constants");const _i18npersistence=require("./i18n.persistence");const _i18nruntime=require("./i18n.runtime");const _i18nschema=require("./i18n.schema");let I18nManager=class I18nManager{snapshot=(0,_i18nschema.cloneI18nSnapshot)(_constants.DEFAULT_I18N);config=_constants.DEFAULT_I18N_MANAGER_CONFIG;listeners=new Set;cacheManager=null;initialized=false;async initialize(context){this.config=context.getManagerConfig(_constants.I18N_MANAGER_NAME)||_constants.DEFAULT_I18N_MANAGER_CONFIG;this.cacheManager=context.cacheManager;const initialSnapshot=(0,_i18nschema.normalizeI18nSnapshot)(this.config.initial||{},_constants.DEFAULT_I18N);this.snapshot=await (0,_i18npersistence.loadI18nFromCache)(this.cacheManager,this.config.persistence,initialSnapshot);await (0,_i18nruntime.initializeI18nRuntime)({locale:this.snapshot.locale||"zh-CN",resources:this.snapshot.resources});this.initialized=true}getSnapshot(){return(0,_i18nschema.cloneI18nSnapshot)(this.snapshot)}subscribe(listener){this.listeners.add(listener);return()=>{this.listeners.delete(listener)}}async setLocale(locale){this.ensureInitialized();const prevSnapshot=this.snapshot;const nextSnapshot=(0,_i18nschema.mergeI18nSnapshot)(prevSnapshot,{locale});if((0,_i18nschema.isI18nEqual)(prevSnapshot,nextSnapshot)){return}this.snapshot=nextSnapshot;await (0,_i18nruntime.switchI18nLocale)(this.snapshot.locale);if(this.cacheManager){await (0,_i18npersistence.saveI18nToCache)(this.cacheManager,this.config.persistence,this.snapshot)}this.emit(this.snapshot,prevSnapshot)}ensureInitialized(){if(!this.initialized){throw new Error("I18nManager must be initialized before use.")}}emit(next,prev){for(const listener of this.listeners){try{listener((0,_i18nschema.cloneI18nSnapshot)(next),(0,_i18nschema.cloneI18nSnapshot)(prev))}catch{}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{DEFAULT_I18N,DEFAULT_I18N_MANAGER_CONFIG,I18N_MANAGER_NAME}from"./constants";import{loadI18nFromCache,saveI18nToCache}from"./i18n.persistence";import{initializeI18nRuntime,switchI18nLocale}from"./i18n.runtime";import{cloneI18nSnapshot,isI18nEqual,mergeI18nSnapshot,normalizeI18nSnapshot}from"./i18n.schema";export class I18nManager{snapshot=cloneI18nSnapshot(DEFAULT_I18N);config=DEFAULT_I18N_MANAGER_CONFIG;listeners=new Set;cacheManager=null;initialized=false;async initialize(context){this.config=context.getManagerConfig(I18N_MANAGER_NAME)||DEFAULT_I18N_MANAGER_CONFIG;this.cacheManager=context.cacheManager;const initialSnapshot=normalizeI18nSnapshot(this.config.initial||{},DEFAULT_I18N);this.snapshot=await loadI18nFromCache(this.cacheManager,this.config.persistence,initialSnapshot);await initializeI18nRuntime({locale:this.snapshot.locale||"zh-CN",resources:this.snapshot.resources});this.initialized=true}getSnapshot(){return cloneI18nSnapshot(this.snapshot)}subscribe(listener){this.listeners.add(listener);return()=>{this.listeners.delete(listener)}}async setLocale(locale){this.ensureInitialized();const prevSnapshot=this.snapshot;const nextSnapshot=mergeI18nSnapshot(prevSnapshot,{locale});if(isI18nEqual(prevSnapshot,nextSnapshot)){return}this.snapshot=nextSnapshot;await switchI18nLocale(this.snapshot.locale);if(this.cacheManager){await saveI18nToCache(this.cacheManager,this.config.persistence,this.snapshot)}this.emit(this.snapshot,prevSnapshot)}ensureInitialized(){if(!this.initialized){throw new Error("I18nManager must be initialized before use.")}}emit(next,prev){for(const listener of this.listeners){try{listener(cloneI18nSnapshot(next),cloneI18nSnapshot(prev))}catch{}}}}
|
|
@@ -1 +1 @@
|
|
|
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(){return _constants.DEFAULT_I18N},get DEFAULT_I18N_MANAGER_CONFIG(){return _constants.DEFAULT_I18N_MANAGER_CONFIG},get I18N_MANAGER_NAME(){return _constants.I18N_MANAGER_NAME},get I18nManager(){return _I18nManager.I18nManager},get registerI18nManager(){return registerI18nManager}});const _I18nManager=require("./I18nManager");const _constants=require("./constants");async function registerI18nManager(kernel,config=_constants.DEFAULT_I18N_MANAGER_CONFIG){const existing=kernel.getManager(_constants.I18N_MANAGER_NAME);if(existing instanceof _I18nManager.I18nManager){kernel.setManagerConfig(_constants.I18N_MANAGER_NAME,config);await kernel.initializeManager(_constants.I18N_MANAGER_NAME);return existing}const manager=new _I18nManager.I18nManager;kernel.setManagerConfig(_constants.I18N_MANAGER_NAME,config);kernel.registerManager(_constants.I18N_MANAGER_NAME,manager);await kernel.initializeManager(_constants.I18N_MANAGER_NAME);return manager}
|
|
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(){return _constants.DEFAULT_I18N},get DEFAULT_I18N_MANAGER_CONFIG(){return _constants.DEFAULT_I18N_MANAGER_CONFIG},get I18N_MANAGER_NAME(){return _constants.I18N_MANAGER_NAME},get I18nManager(){return _I18nManager.I18nManager},get registerI18nManager(){return registerI18nManager},get registerLazyI18nManager(){return _lazy.registerLazyI18nManager}});const _I18nManager=require("./I18nManager");const _constants=require("./constants");const _lazy=require("./lazy");async function registerI18nManager(kernel,config=_constants.DEFAULT_I18N_MANAGER_CONFIG){if(kernel.hasManager(_constants.I18N_MANAGER_NAME)){kernel.setManagerConfig(_constants.I18N_MANAGER_NAME,config);await kernel.initializeManager(_constants.I18N_MANAGER_NAME);const existing=kernel.getManager(_constants.I18N_MANAGER_NAME);if(existing instanceof _I18nManager.I18nManager){return existing}throw new Error(`Kernel manager "${_constants.I18N_MANAGER_NAME}" is not an I18nManager`)}const existing=kernel.getManager(_constants.I18N_MANAGER_NAME);if(existing instanceof _I18nManager.I18nManager){kernel.setManagerConfig(_constants.I18N_MANAGER_NAME,config);await kernel.initializeManager(_constants.I18N_MANAGER_NAME);return existing}const manager=new _I18nManager.I18nManager;kernel.setManagerConfig(_constants.I18N_MANAGER_NAME,config);kernel.registerManager(_constants.I18N_MANAGER_NAME,manager);await kernel.initializeManager(_constants.I18N_MANAGER_NAME);return manager}
|
|
@@ -3,5 +3,6 @@ import { I18nManager } from './I18nManager';
|
|
|
3
3
|
import type { I18nManagerConfig } from './types';
|
|
4
4
|
export { I18nManager } from './I18nManager';
|
|
5
5
|
export { DEFAULT_I18N, DEFAULT_I18N_MANAGER_CONFIG, I18N_MANAGER_NAME } from './constants';
|
|
6
|
+
export { registerLazyI18nManager } from './lazy';
|
|
6
7
|
export type { I18nManagerConfig, I18nSnapshot } from './types';
|
|
7
8
|
export declare function registerI18nManager(kernel: Kernel, config?: I18nManagerConfig): Promise<I18nManager>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{I18nManager}from"./I18nManager";import{DEFAULT_I18N_MANAGER_CONFIG,I18N_MANAGER_NAME}from"./constants";export{I18nManager}from"./I18nManager";export{DEFAULT_I18N,DEFAULT_I18N_MANAGER_CONFIG,I18N_MANAGER_NAME}from"./constants";export async function registerI18nManager(kernel,config=DEFAULT_I18N_MANAGER_CONFIG){const existing=kernel.getManager(I18N_MANAGER_NAME);if(existing instanceof I18nManager){kernel.setManagerConfig(I18N_MANAGER_NAME,config);await kernel.initializeManager(I18N_MANAGER_NAME);return existing}const manager=new I18nManager;kernel.setManagerConfig(I18N_MANAGER_NAME,config);kernel.registerManager(I18N_MANAGER_NAME,manager);await kernel.initializeManager(I18N_MANAGER_NAME);return manager}
|
|
1
|
+
import{I18nManager}from"./I18nManager";import{DEFAULT_I18N_MANAGER_CONFIG,I18N_MANAGER_NAME}from"./constants";export{I18nManager}from"./I18nManager";export{DEFAULT_I18N,DEFAULT_I18N_MANAGER_CONFIG,I18N_MANAGER_NAME}from"./constants";export{registerLazyI18nManager}from"./lazy";export async function registerI18nManager(kernel,config=DEFAULT_I18N_MANAGER_CONFIG){if(kernel.hasManager(I18N_MANAGER_NAME)){kernel.setManagerConfig(I18N_MANAGER_NAME,config);await kernel.initializeManager(I18N_MANAGER_NAME);const existing=kernel.getManager(I18N_MANAGER_NAME);if(existing instanceof I18nManager){return existing}throw new Error(`Kernel manager "${I18N_MANAGER_NAME}" is not an I18nManager`)}const existing=kernel.getManager(I18N_MANAGER_NAME);if(existing instanceof I18nManager){kernel.setManagerConfig(I18N_MANAGER_NAME,config);await kernel.initializeManager(I18N_MANAGER_NAME);return existing}const manager=new I18nManager;kernel.setManagerConfig(I18N_MANAGER_NAME,config);kernel.registerManager(I18N_MANAGER_NAME,manager);await kernel.initializeManager(I18N_MANAGER_NAME);return manager}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"registerLazyI18nManager",{enumerable:true,get:function(){return registerLazyI18nManager}});const _constants=require("./constants");function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interop_require_wildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={__proto__:null};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj.default=obj;if(cache){cache.set(obj,newObj)}return newObj}function registerLazyI18nManager(kernel,config=_constants.DEFAULT_I18N_MANAGER_CONFIG){if(kernel.hasManager(_constants.I18N_MANAGER_NAME)){kernel.setManagerConfig(_constants.I18N_MANAGER_NAME,config);return}kernel.setManagerConfig(_constants.I18N_MANAGER_NAME,config);kernel.registerLazyManager(_constants.I18N_MANAGER_NAME,async()=>{const module=await Promise.resolve().then(()=>/*#__PURE__*/_interop_require_wildcard(require("./I18nManager")));return new module.I18nManager})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{DEFAULT_I18N_MANAGER_CONFIG,I18N_MANAGER_NAME}from"./constants";export function registerLazyI18nManager(kernel,config=DEFAULT_I18N_MANAGER_CONFIG){if(kernel.hasManager(I18N_MANAGER_NAME)){kernel.setManagerConfig(I18N_MANAGER_NAME,config);return}kernel.setManagerConfig(I18N_MANAGER_NAME,config);kernel.registerLazyManager(I18N_MANAGER_NAME,async()=>{const module=await import("./I18nManager");return new module.I18nManager})}
|
|
@@ -1 +1 @@
|
|
|
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(){return _i18n.DEFAULT_I18N},get DEFAULT_I18N_MANAGER_CONFIG(){return _i18n.DEFAULT_I18N_MANAGER_CONFIG},get DEFAULT_THEME(){return _theme.DEFAULT_THEME},get DEFAULT_THEME_MANAGER_CONFIG(){return _theme.DEFAULT_THEME_MANAGER_CONFIG},get I18N_MANAGER_NAME(){return _i18n.I18N_MANAGER_NAME},get I18nManager(){return _i18n.I18nManager},get THEME_MANAGER_NAME(){return _theme.THEME_MANAGER_NAME},get ThemeManager(){return _theme.ThemeManager},get registerI18nManager(){return _i18n.registerI18nManager},get registerThemeManager(){return _theme.registerThemeManager}});const _theme=require("./theme");const _i18n=require("./i18n");
|
|
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(){return _i18n.DEFAULT_I18N},get DEFAULT_I18N_MANAGER_CONFIG(){return _i18n.DEFAULT_I18N_MANAGER_CONFIG},get DEFAULT_THEME(){return _theme.DEFAULT_THEME},get DEFAULT_THEME_MANAGER_CONFIG(){return _theme.DEFAULT_THEME_MANAGER_CONFIG},get I18N_MANAGER_NAME(){return _i18n.I18N_MANAGER_NAME},get I18nManager(){return _i18n.I18nManager},get THEME_MANAGER_NAME(){return _theme.THEME_MANAGER_NAME},get ThemeManager(){return _theme.ThemeManager},get registerI18nManager(){return _i18n.registerI18nManager},get registerLazyI18nManager(){return _i18n.registerLazyI18nManager},get registerLazyThemeManager(){return _theme.registerLazyThemeManager},get registerThemeManager(){return _theme.registerThemeManager}});const _theme=require("./theme");const _i18n=require("./i18n");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { ThemeManager, DEFAULT_THEME, DEFAULT_THEME_MANAGER_CONFIG, THEME_MANAGER_NAME, registerThemeManager, } from './theme';
|
|
2
|
-
export { I18nManager, DEFAULT_I18N, DEFAULT_I18N_MANAGER_CONFIG, I18N_MANAGER_NAME, registerI18nManager, } from './i18n';
|
|
1
|
+
export { ThemeManager, DEFAULT_THEME, DEFAULT_THEME_MANAGER_CONFIG, THEME_MANAGER_NAME, registerLazyThemeManager, registerThemeManager, } from './theme';
|
|
2
|
+
export { I18nManager, DEFAULT_I18N, DEFAULT_I18N_MANAGER_CONFIG, I18N_MANAGER_NAME, registerLazyI18nManager, registerI18nManager, } from './i18n';
|
|
3
3
|
export type { ResolvedThemeMode, ResolvedThemeSnapshot, ThemeManagerConfig, ThemeSnapshot } from './theme';
|
|
4
4
|
export type { I18nManagerConfig, I18nSnapshot } from './i18n';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{ThemeManager,DEFAULT_THEME,DEFAULT_THEME_MANAGER_CONFIG,THEME_MANAGER_NAME,registerThemeManager}from"./theme";export{I18nManager,DEFAULT_I18N,DEFAULT_I18N_MANAGER_CONFIG,I18N_MANAGER_NAME,registerI18nManager}from"./i18n";
|
|
1
|
+
export{ThemeManager,DEFAULT_THEME,DEFAULT_THEME_MANAGER_CONFIG,THEME_MANAGER_NAME,registerLazyThemeManager,registerThemeManager}from"./theme";export{I18nManager,DEFAULT_I18N,DEFAULT_I18N_MANAGER_CONFIG,I18N_MANAGER_NAME,registerLazyI18nManager,registerI18nManager}from"./i18n";
|
|
@@ -1 +1 @@
|
|
|
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");
|
|
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");let ThemeManager=class ThemeManager{theme=(0,_themeschema.cloneTheme)(_constants.DEFAULT_THEME);resolvedMode=(0,_themedom.resolveThemeMode)(_constants.DEFAULT_THEME);config=_constants.DEFAULT_THEME_MANAGER_CONFIG;listeners=new Set;cacheManager=null;stopSystemThemeObserver=null;initialized=false;async initialize(context){this.config=context.getManagerConfig(_constants.THEME_MANAGER_NAME)||_constants.DEFAULT_THEME_MANAGER_CONFIG;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);this.resolvedMode=(0,_themedom.resolveThemeMode)(this.theme);(0,_themedom.applyThemeToDocument)(this.theme,{nextResolvedMode:this.resolvedMode});this.bindSystemThemeObserver();this.initialized=true}getTheme(){return(0,_themeschema.cloneTheme)(this.theme)}getSnapshot(){return this.getTheme()}getResolvedMode(){this.ensureInitialized();return this.resolvedMode}getResolvedTheme(){this.ensureInitialized();return(0,_themeschema.cloneResolvedTheme)({...this.getTheme(),resolvedMode:this.resolvedMode})}subscribe(listener){this.listeners.add(listener);return()=>{this.listeners.delete(listener)}}async setTheme(nextTheme){this.ensureInitialized();const prevTheme=this.theme;const prevResolvedMode=this.resolvedMode;const mergedTheme=(0,_themeschema.mergeTheme)(prevTheme,nextTheme);const nextResolvedMode=(0,_themedom.resolveThemeMode)(mergedTheme);if((0,_themeschema.isThemeEqual)(prevTheme,mergedTheme)&&(0,_themeschema.isResolvedThemeModeEqual)(prevResolvedMode,nextResolvedMode)){return}this.theme=mergedTheme;this.resolvedMode=nextResolvedMode;(0,_themedom.applyThemeToDocument)(this.theme,{prevTheme,prevResolvedMode,nextResolvedMode});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.")}}destroy(){this.stopSystemThemeObserver?.();this.stopSystemThemeObserver=null;this.listeners.clear();this.initialized=false}bindSystemThemeObserver(){this.stopSystemThemeObserver?.();this.stopSystemThemeObserver=(0,_themedom.observeSystemThemeChange)(nextResolvedMode=>{if(this.theme.mode!=="system"){return}const prevResolvedMode=this.resolvedMode;if((0,_themeschema.isResolvedThemeModeEqual)(prevResolvedMode,nextResolvedMode)){return}this.resolvedMode=nextResolvedMode;(0,_themedom.applyThemeToDocument)(this.theme,{prevTheme:this.theme,prevResolvedMode,nextResolvedMode});this.emit(this.theme,this.theme)})||null}emit(next,prev){for(const listener of this.listeners){try{listener((0,_themeschema.cloneTheme)(next),(0,_themeschema.cloneTheme)(prev))}catch{}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{DEFAULT_THEME,DEFAULT_THEME_MANAGER_CONFIG,THEME_MANAGER_NAME}from"./constants";import{applyThemeToDocument,observeSystemThemeChange,resolveThemeMode}from"./theme.dom";import{loadThemeFromCache,saveThemeToCache}from"./theme.persistence";import{cloneResolvedTheme,cloneTheme,isResolvedThemeModeEqual,isThemeEqual,mergeTheme,normalizeTheme}from"./theme.schema";export class ThemeManager{theme=cloneTheme(DEFAULT_THEME);resolvedMode=resolveThemeMode(DEFAULT_THEME);config=DEFAULT_THEME_MANAGER_CONFIG;listeners=new Set;cacheManager=null;stopSystemThemeObserver=null;initialized=false;async initialize(context){this.config=context.getManagerConfig(THEME_MANAGER_NAME)||DEFAULT_THEME_MANAGER_CONFIG;this.cacheManager=context.cacheManager;const initialTheme=normalizeTheme(this.config.initial||{},DEFAULT_THEME);this.theme=await loadThemeFromCache(this.cacheManager,this.config.persistence,initialTheme);this.resolvedMode=resolveThemeMode(this.theme);applyThemeToDocument(this.theme,{nextResolvedMode:this.resolvedMode});this.bindSystemThemeObserver();this.initialized=true}getTheme(){return cloneTheme(this.theme)}getSnapshot(){return this.getTheme()}getResolvedMode(){this.ensureInitialized();return this.resolvedMode}getResolvedTheme(){this.ensureInitialized();return cloneResolvedTheme({...this.getTheme(),resolvedMode:this.resolvedMode})}subscribe(listener){this.listeners.add(listener);return()=>{this.listeners.delete(listener)}}async setTheme(nextTheme){this.ensureInitialized();const prevTheme=this.theme;const prevResolvedMode=this.resolvedMode;const mergedTheme=mergeTheme(prevTheme,nextTheme);const nextResolvedMode=resolveThemeMode(mergedTheme);if(isThemeEqual(prevTheme,mergedTheme)&&isResolvedThemeModeEqual(prevResolvedMode,nextResolvedMode)){return}this.theme=mergedTheme;this.resolvedMode=nextResolvedMode;applyThemeToDocument(this.theme,{prevTheme,prevResolvedMode,nextResolvedMode});if(this.cacheManager){await 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.")}}destroy(){this.stopSystemThemeObserver?.();this.stopSystemThemeObserver=null;this.listeners.clear();this.initialized=false}bindSystemThemeObserver(){this.stopSystemThemeObserver?.();this.stopSystemThemeObserver=observeSystemThemeChange(nextResolvedMode=>{if(this.theme.mode!=="system"){return}const prevResolvedMode=this.resolvedMode;if(isResolvedThemeModeEqual(prevResolvedMode,nextResolvedMode)){return}this.resolvedMode=nextResolvedMode;applyThemeToDocument(this.theme,{prevTheme:this.theme,prevResolvedMode,nextResolvedMode});this.emit(this.theme,this.theme)})||null}emit(next,prev){for(const listener of this.listeners){try{listener(cloneTheme(next),cloneTheme(prev))}catch{}}}}
|
|
@@ -1 +1 @@
|
|
|
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_THEME(){return _constants.DEFAULT_THEME},get DEFAULT_THEME_MANAGER_CONFIG(){return _constants.DEFAULT_THEME_MANAGER_CONFIG},get THEME_MANAGER_NAME(){return _constants.THEME_MANAGER_NAME},get ThemeManager(){return _ThemeManager.ThemeManager},get registerThemeManager(){return registerThemeManager}});const _ThemeManager=require("./ThemeManager");const _constants=require("./constants");async function registerThemeManager(kernel,config=_constants.DEFAULT_THEME_MANAGER_CONFIG){const existing=kernel.getManager(_constants.THEME_MANAGER_NAME);if(existing instanceof _ThemeManager.ThemeManager){kernel.setManagerConfig(_constants.THEME_MANAGER_NAME,config);await kernel.initializeManager(_constants.THEME_MANAGER_NAME);return existing}const manager=new _ThemeManager.ThemeManager;kernel.setManagerConfig(_constants.THEME_MANAGER_NAME,config);kernel.registerManager(_constants.THEME_MANAGER_NAME,manager);await kernel.initializeManager(_constants.THEME_MANAGER_NAME);return manager}
|
|
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_THEME(){return _constants.DEFAULT_THEME},get DEFAULT_THEME_MANAGER_CONFIG(){return _constants.DEFAULT_THEME_MANAGER_CONFIG},get THEME_MANAGER_NAME(){return _constants.THEME_MANAGER_NAME},get ThemeManager(){return _ThemeManager.ThemeManager},get registerLazyThemeManager(){return _lazy.registerLazyThemeManager},get registerThemeManager(){return registerThemeManager}});const _ThemeManager=require("./ThemeManager");const _constants=require("./constants");const _lazy=require("./lazy");async function registerThemeManager(kernel,config=_constants.DEFAULT_THEME_MANAGER_CONFIG){if(kernel.hasManager(_constants.THEME_MANAGER_NAME)){kernel.setManagerConfig(_constants.THEME_MANAGER_NAME,config);await kernel.initializeManager(_constants.THEME_MANAGER_NAME);const existing=kernel.getManager(_constants.THEME_MANAGER_NAME);if(existing instanceof _ThemeManager.ThemeManager){return existing}throw new Error(`Kernel manager "${_constants.THEME_MANAGER_NAME}" is not a ThemeManager`)}const existing=kernel.getManager(_constants.THEME_MANAGER_NAME);if(existing instanceof _ThemeManager.ThemeManager){kernel.setManagerConfig(_constants.THEME_MANAGER_NAME,config);await kernel.initializeManager(_constants.THEME_MANAGER_NAME);return existing}const manager=new _ThemeManager.ThemeManager;kernel.setManagerConfig(_constants.THEME_MANAGER_NAME,config);kernel.registerManager(_constants.THEME_MANAGER_NAME,manager);await kernel.initializeManager(_constants.THEME_MANAGER_NAME);return manager}
|
|
@@ -3,5 +3,6 @@ import { ThemeManager } from './ThemeManager';
|
|
|
3
3
|
import type { ThemeManagerConfig } from './types';
|
|
4
4
|
export { ThemeManager } from './ThemeManager';
|
|
5
5
|
export { DEFAULT_THEME, DEFAULT_THEME_MANAGER_CONFIG, THEME_MANAGER_NAME } from './constants';
|
|
6
|
+
export { registerLazyThemeManager } from './lazy';
|
|
6
7
|
export type { ResolvedThemeMode, ResolvedThemeSnapshot, ThemeManagerConfig, ThemeSnapshot } from './types';
|
|
7
8
|
export declare function registerThemeManager(kernel: Kernel, config?: ThemeManagerConfig): Promise<ThemeManager>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ThemeManager}from"./ThemeManager";import{DEFAULT_THEME_MANAGER_CONFIG,THEME_MANAGER_NAME}from"./constants";export{ThemeManager}from"./ThemeManager";export{DEFAULT_THEME,DEFAULT_THEME_MANAGER_CONFIG,THEME_MANAGER_NAME}from"./constants";export async function registerThemeManager(kernel,config=DEFAULT_THEME_MANAGER_CONFIG){const existing=kernel.getManager(THEME_MANAGER_NAME);if(existing instanceof ThemeManager){kernel.setManagerConfig(THEME_MANAGER_NAME,config);await kernel.initializeManager(THEME_MANAGER_NAME);return existing}const manager=new ThemeManager;kernel.setManagerConfig(THEME_MANAGER_NAME,config);kernel.registerManager(THEME_MANAGER_NAME,manager);await kernel.initializeManager(THEME_MANAGER_NAME);return manager}
|
|
1
|
+
import{ThemeManager}from"./ThemeManager";import{DEFAULT_THEME_MANAGER_CONFIG,THEME_MANAGER_NAME}from"./constants";export{ThemeManager}from"./ThemeManager";export{DEFAULT_THEME,DEFAULT_THEME_MANAGER_CONFIG,THEME_MANAGER_NAME}from"./constants";export{registerLazyThemeManager}from"./lazy";export async function registerThemeManager(kernel,config=DEFAULT_THEME_MANAGER_CONFIG){if(kernel.hasManager(THEME_MANAGER_NAME)){kernel.setManagerConfig(THEME_MANAGER_NAME,config);await kernel.initializeManager(THEME_MANAGER_NAME);const existing=kernel.getManager(THEME_MANAGER_NAME);if(existing instanceof ThemeManager){return existing}throw new Error(`Kernel manager "${THEME_MANAGER_NAME}" is not a ThemeManager`)}const existing=kernel.getManager(THEME_MANAGER_NAME);if(existing instanceof ThemeManager){kernel.setManagerConfig(THEME_MANAGER_NAME,config);await kernel.initializeManager(THEME_MANAGER_NAME);return existing}const manager=new ThemeManager;kernel.setManagerConfig(THEME_MANAGER_NAME,config);kernel.registerManager(THEME_MANAGER_NAME,manager);await kernel.initializeManager(THEME_MANAGER_NAME);return manager}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"registerLazyThemeManager",{enumerable:true,get:function(){return registerLazyThemeManager}});const _constants=require("./constants");function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interop_require_wildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={__proto__:null};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj.default=obj;if(cache){cache.set(obj,newObj)}return newObj}function registerLazyThemeManager(kernel,config=_constants.DEFAULT_THEME_MANAGER_CONFIG){if(kernel.hasManager(_constants.THEME_MANAGER_NAME)){kernel.setManagerConfig(_constants.THEME_MANAGER_NAME,config);return}kernel.setManagerConfig(_constants.THEME_MANAGER_NAME,config);kernel.registerLazyManager(_constants.THEME_MANAGER_NAME,async()=>{const module=await Promise.resolve().then(()=>/*#__PURE__*/_interop_require_wildcard(require("./ThemeManager")));return new module.ThemeManager})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{DEFAULT_THEME_MANAGER_CONFIG,THEME_MANAGER_NAME}from"./constants";export function registerLazyThemeManager(kernel,config=DEFAULT_THEME_MANAGER_CONFIG){if(kernel.hasManager(THEME_MANAGER_NAME)){kernel.setManagerConfig(THEME_MANAGER_NAME,config);return}kernel.setManagerConfig(THEME_MANAGER_NAME,config);kernel.registerLazyManager(THEME_MANAGER_NAME,async()=>{const module=await import("./ThemeManager");return new module.ThemeManager})}
|
package/dist/kernel/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { Kernel, startup, getKernel, kernelStartApp } from './kernel';
|
|
2
2
|
export { LoggerManager, CacheManager } from './manager';
|
|
3
|
+
export type { EagerKernelManagerRegistration, KernelLazyManagerOptions, KernelManagerLoader, KernelManagerModule, KernelManagerRegistration, LazyKernelManagerRegistration, } from './manager-registration';
|
|
3
4
|
export type { KernelInstanceId, KernelStorageDriver, StorageOptions, PersistenceOptions, LoggerManagerConfig, CacheManagerConfig, KernelConfig, KernelTimingMetric, KernelManager, KernelManagerContext, KernelRenderContext, StartupHooks, StartOptions, KernelStartOptions, } from './types';
|
package/dist/kernel/kernel.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
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 Kernel(){return Kernel},get getKernel(){return getKernel},get kernelStartApp(){return kernelStartApp},get startup(){return startup}});const _constants=require("./constants");const _loggerManager=require("./manager/loggerManager");const _cacheManager=require("./manager/cacheManager");
|
|
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 Kernel(){return Kernel},get getKernel(){return getKernel},get kernelStartApp(){return kernelStartApp},get startup(){return startup}});const _constants=require("./constants");const _loggerManager=require("./manager/loggerManager");const _cacheManager=require("./manager/cacheManager");const _managerregistration=require("./manager-registration");function now(){return typeof performance!=="undefined"?performance.now():Date.now()}let Kernel=class Kernel{static instances=new Map;static getInstance(instanceId=_constants.DEFAULT_INSTANCE_ID){const existing=Kernel.instances.get(instanceId);if(existing){return existing}const created=new Kernel(instanceId);Kernel.instances.set(instanceId,created);return created}instanceId;metrics=[];managers=new Map;managerLoaders=new Map;eagerManagers=new Set;managerInitPromises=new Map;initializedManagers=new Set;loggerManager=new _loggerManager.LoggerManager;cacheManager=new _cacheManager.CacheManager;config=_constants.DEFAULT_CONFIG;startupPromise=null;started=false;constructor(instanceId){this.instanceId=instanceId;this.managers.set("logger",this.loggerManager);this.managers.set("cache",this.cacheManager)}getId(){return this.instanceId}getConfig(){return this.config}getMetrics(){return[...this.metrics]}getLoggerManager(){return this.loggerManager}getCacheManager(){return this.cacheManager}getManager(name){return this.managers.get(name)}hasManager(name){return this.managers.has(name)||this.managerLoaders.has(name)}registerManager(name,manager){if(this.hasManager(name)){throw new Error(`Kernel manager "${name}" 已存在`)}this.managers.set(name,manager)}registerLazyManager(name,load,options={}){if(this.hasManager(name)){throw new Error(`Kernel manager "${name}" 已存在`)}this.managerLoaders.set(name,load);if(options.eager){this.eagerManagers.add(name)}}getManagerConfig(name){return this.config.managerConfigs[name]}setManagerConfig(name,config){this.config={...this.config,managerConfigs:{...this.config.managerConfigs,[name]:config}}}async startup(options={}){if(this.started){this.logDebug("kernel.startup.skip.already-started",{instanceId:this.instanceId});return this}if(this.startupPromise){return this.startupPromise}this.startupPromise=this.bootstrap(options).finally(()=>{this.startupPromise=null});return this.startupPromise}async bootstrap(options){await this.measurePhase("startup.begin",async()=>{this.logDebug("kernel.startup.begin",{instanceId:this.instanceId})});await this.measurePhase("config.load",async()=>{this.config=await this.resolveConfig(options)});await this.measurePhase("manager.register.custom",async()=>{if(options.customManagers){Object.entries(options.customManagers).forEach(([name,registration])=>{if(!this.hasManager(name)){this.registerConfiguredManager(name,registration)}})}});await this.measurePhase("manager.initialize.default",async()=>{await this.initializeManager("cache");await this.initializeManager("logger")});await this.measurePhase("manager.initialize.custom",async()=>{const customManagerNames=[...this.eagerManagers].filter(name=>name!=="logger"&&name!=="cache");await Promise.all(customManagerNames.map(name=>this.initializeManager(name)))});await this.measurePhase("hooks.initialize",async()=>{await options.hooks?.initialize?.();await options.lifecycle?.initialization?.()});await this.measurePhase("render.custom",async()=>{if(options.render){await options.render({instanceId:this.instanceId,config:this.config})}});this.started=true;this.logDebug("kernel.startup.end",{instanceId:this.instanceId,metrics:this.metrics});return this}async resolveConfig(options){let loaded={};if(options.configLoader){const loaderResult=await options.configLoader();loaded=loaderResult||{}}return{logger:{..._constants.DEFAULT_CONFIG.logger,...loaded.logger,...options.config?.logger||{},level:options.loggerLevel??options.config?.logger?.level??loaded.logger?.level},cache:{..._constants.DEFAULT_CONFIG.cache,...loaded.cache,...options.config?.cache||{},storageOptions:{..._constants.DEFAULT_CONFIG.cache.storageOptions,...loaded.cache?.storageOptions||{},...options.config?.cache?.storageOptions||{},...options.storageOptions||{}}},managerConfigs:{..._constants.DEFAULT_CONFIG.managerConfigs,...loaded.managerConfigs||{},...options.config?.managerConfigs||{},...options.managerConfigs||{}}}}async initializeManager(name){if(this.initializedManagers.has(name)){return}const existingPromise=this.managerInitPromises.get(name);if(existingPromise){await existingPromise;return}let manager=this.managers.get(name);if(!manager){manager=await this.loadManager(name)}if(!manager){throw new Error(`Kernel manager "${name}" 不存在`)}if(name!=="cache"&&!this.initializedManagers.has("cache")){await this.initializeManager("cache")}const context={instanceId:this.instanceId,config:this.config,cacheManager:this.cacheManager.cache,getManagerConfig:managerName=>this.config.managerConfigs[managerName]};const initPromise=(async()=>{await manager.initialize(context);this.initializedManagers.add(name);this.logDebug("kernel.manager.initialized",{name,instanceId:this.instanceId})})();this.managerInitPromises.set(name,initPromise);try{await initPromise}finally{this.managerInitPromises.delete(name)}}registerConfiguredManager(name,registration){if((0,_managerregistration.isKernelManager)(registration)){this.registerManager(name,registration);this.eagerManagers.add(name);return}if((0,_managerregistration.isLazyKernelManagerRegistration)(registration)){if(registration.config!==undefined){this.setManagerConfig(name,registration.config)}this.registerLazyManager(name,registration.load,{eager:registration.eager});return}if((0,_managerregistration.isEagerKernelManagerRegistration)(registration)){if(registration.config!==undefined){this.setManagerConfig(name,registration.config)}this.registerManager(name,registration.manager);if(registration.eager!==false){this.eagerManagers.add(name)}}}async loadManager(name){const load=this.managerLoaders.get(name);if(!load){return undefined}const loaded=(0,_managerregistration.resolveKernelManagerModule)(await load());this.managerLoaders.delete(name);this.managers.set(name,loaded);return loaded}async measurePhase(phase,task){const startTime=now();this.logDebug("kernel.phase.start",{phase,startTime,instanceId:this.instanceId});await task();const endTime=now();const metric={phase,startTime,endTime,duration:endTime-startTime};this.metrics.push(metric);this.logDebug("kernel.phase.end",metric)}logDebug(message,payload){this.loggerManager.debug(message,payload)}};async function startup(options={},instanceId=_constants.DEFAULT_INSTANCE_ID){const kernel=Kernel.getInstance(instanceId);return kernel.startup(options)}function getKernel(instanceId=_constants.DEFAULT_INSTANCE_ID){return Kernel.getInstance(instanceId)}async function kernelStartApp(options={},instanceId=_constants.DEFAULT_INSTANCE_ID){return startup(options,instanceId)}
|
package/dist/kernel/kernel.d.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import type { KernelConfig, KernelInstanceId, KernelManager, KernelTimingMetric, StartOptions } from './types';
|
|
2
2
|
import { LoggerManager } from './manager/loggerManager';
|
|
3
3
|
import { CacheManager } from './manager/cacheManager';
|
|
4
|
+
import type { KernelLazyManagerOptions, KernelManagerLoader } from './manager-registration';
|
|
4
5
|
export declare class Kernel {
|
|
5
6
|
private static readonly instances;
|
|
6
7
|
static getInstance(instanceId?: KernelInstanceId): Kernel;
|
|
7
8
|
private readonly instanceId;
|
|
8
9
|
private readonly metrics;
|
|
9
10
|
private readonly managers;
|
|
11
|
+
private readonly managerLoaders;
|
|
12
|
+
private readonly eagerManagers;
|
|
10
13
|
private readonly managerInitPromises;
|
|
11
14
|
private readonly initializedManagers;
|
|
12
15
|
private readonly loggerManager;
|
|
@@ -21,13 +24,17 @@ export declare class Kernel {
|
|
|
21
24
|
getLoggerManager(): LoggerManager;
|
|
22
25
|
getCacheManager(): CacheManager;
|
|
23
26
|
getManager(name: string): KernelManager | undefined;
|
|
27
|
+
hasManager(name: string): boolean;
|
|
24
28
|
registerManager(name: string, manager: KernelManager): void;
|
|
29
|
+
registerLazyManager(name: string, load: KernelManagerLoader, options?: KernelLazyManagerOptions): void;
|
|
25
30
|
getManagerConfig<TConfig = unknown>(name: string): TConfig | undefined;
|
|
26
31
|
setManagerConfig(name: string, config: unknown): void;
|
|
27
32
|
startup(options?: StartOptions): Promise<Kernel>;
|
|
28
33
|
private bootstrap;
|
|
29
34
|
private resolveConfig;
|
|
30
35
|
initializeManager(name: string): Promise<void>;
|
|
36
|
+
private registerConfiguredManager;
|
|
37
|
+
private loadManager;
|
|
31
38
|
private measurePhase;
|
|
32
39
|
private logDebug;
|
|
33
40
|
}
|
package/dist/kernel/kernel.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{DEFAULT_CONFIG,DEFAULT_INSTANCE_ID}from"./constants";import{LoggerManager}from"./manager/loggerManager";import{CacheManager}from"./manager/cacheManager";import{isEagerKernelManagerRegistration,isKernelManager,isLazyKernelManagerRegistration,resolveKernelManagerModule}from"./manager-registration";function now(){return typeof performance!=="undefined"?performance.now():Date.now()}export class Kernel{static instances=new Map;static getInstance(instanceId=DEFAULT_INSTANCE_ID){const existing=Kernel.instances.get(instanceId);if(existing){return existing}const created=new Kernel(instanceId);Kernel.instances.set(instanceId,created);return created}instanceId;metrics=[];managers=new Map;managerLoaders=new Map;eagerManagers=new Set;managerInitPromises=new Map;initializedManagers=new Set;loggerManager=new LoggerManager;cacheManager=new CacheManager;config=DEFAULT_CONFIG;startupPromise=null;started=false;constructor(instanceId){this.instanceId=instanceId;this.managers.set("logger",this.loggerManager);this.managers.set("cache",this.cacheManager)}getId(){return this.instanceId}getConfig(){return this.config}getMetrics(){return[...this.metrics]}getLoggerManager(){return this.loggerManager}getCacheManager(){return this.cacheManager}getManager(name){return this.managers.get(name)}hasManager(name){return this.managers.has(name)||this.managerLoaders.has(name)}registerManager(name,manager){if(this.hasManager(name)){throw new Error(`Kernel manager "${name}" 已存在`)}this.managers.set(name,manager)}registerLazyManager(name,load,options={}){if(this.hasManager(name)){throw new Error(`Kernel manager "${name}" 已存在`)}this.managerLoaders.set(name,load);if(options.eager){this.eagerManagers.add(name)}}getManagerConfig(name){return this.config.managerConfigs[name]}setManagerConfig(name,config){this.config={...this.config,managerConfigs:{...this.config.managerConfigs,[name]:config}}}async startup(options={}){if(this.started){this.logDebug("kernel.startup.skip.already-started",{instanceId:this.instanceId});return this}if(this.startupPromise){return this.startupPromise}this.startupPromise=this.bootstrap(options).finally(()=>{this.startupPromise=null});return this.startupPromise}async bootstrap(options){await this.measurePhase("startup.begin",async()=>{this.logDebug("kernel.startup.begin",{instanceId:this.instanceId})});await this.measurePhase("config.load",async()=>{this.config=await this.resolveConfig(options)});await this.measurePhase("manager.register.custom",async()=>{if(options.customManagers){Object.entries(options.customManagers).forEach(([name,registration])=>{if(!this.hasManager(name)){this.registerConfiguredManager(name,registration)}})}});await this.measurePhase("manager.initialize.default",async()=>{await this.initializeManager("cache");await this.initializeManager("logger")});await this.measurePhase("manager.initialize.custom",async()=>{const customManagerNames=[...this.eagerManagers].filter(name=>name!=="logger"&&name!=="cache");await Promise.all(customManagerNames.map(name=>this.initializeManager(name)))});await this.measurePhase("hooks.initialize",async()=>{await options.hooks?.initialize?.();await options.lifecycle?.initialization?.()});await this.measurePhase("render.custom",async()=>{if(options.render){await options.render({instanceId:this.instanceId,config:this.config})}});this.started=true;this.logDebug("kernel.startup.end",{instanceId:this.instanceId,metrics:this.metrics});return this}async resolveConfig(options){let loaded={};if(options.configLoader){const loaderResult=await options.configLoader();loaded=loaderResult||{}}return{logger:{...DEFAULT_CONFIG.logger,...loaded.logger,...options.config?.logger||{},level:options.loggerLevel??options.config?.logger?.level??loaded.logger?.level},cache:{...DEFAULT_CONFIG.cache,...loaded.cache,...options.config?.cache||{},storageOptions:{...DEFAULT_CONFIG.cache.storageOptions,...loaded.cache?.storageOptions||{},...options.config?.cache?.storageOptions||{},...options.storageOptions||{}}},managerConfigs:{...DEFAULT_CONFIG.managerConfigs,...loaded.managerConfigs||{},...options.config?.managerConfigs||{},...options.managerConfigs||{}}}}async initializeManager(name){if(this.initializedManagers.has(name)){return}const existingPromise=this.managerInitPromises.get(name);if(existingPromise){await existingPromise;return}let manager=this.managers.get(name);if(!manager){manager=await this.loadManager(name)}if(!manager){throw new Error(`Kernel manager "${name}" 不存在`)}if(name!=="cache"&&!this.initializedManagers.has("cache")){await this.initializeManager("cache")}const context={instanceId:this.instanceId,config:this.config,cacheManager:this.cacheManager.cache,getManagerConfig:managerName=>this.config.managerConfigs[managerName]};const initPromise=(async()=>{await manager.initialize(context);this.initializedManagers.add(name);this.logDebug("kernel.manager.initialized",{name,instanceId:this.instanceId})})();this.managerInitPromises.set(name,initPromise);try{await initPromise}finally{this.managerInitPromises.delete(name)}}registerConfiguredManager(name,registration){if(isKernelManager(registration)){this.registerManager(name,registration);this.eagerManagers.add(name);return}if(isLazyKernelManagerRegistration(registration)){if(registration.config!==undefined){this.setManagerConfig(name,registration.config)}this.registerLazyManager(name,registration.load,{eager:registration.eager});return}if(isEagerKernelManagerRegistration(registration)){if(registration.config!==undefined){this.setManagerConfig(name,registration.config)}this.registerManager(name,registration.manager);if(registration.eager!==false){this.eagerManagers.add(name)}}}async loadManager(name){const load=this.managerLoaders.get(name);if(!load){return undefined}const loaded=resolveKernelManagerModule(await load());this.managerLoaders.delete(name);this.managers.set(name,loaded);return loaded}async measurePhase(phase,task){const startTime=now();this.logDebug("kernel.phase.start",{phase,startTime,instanceId:this.instanceId});await task();const endTime=now();const metric={phase,startTime,endTime,duration:endTime-startTime};this.metrics.push(metric);this.logDebug("kernel.phase.end",metric)}logDebug(message,payload){this.loggerManager.debug(message,payload)}}export async function startup(options={},instanceId=DEFAULT_INSTANCE_ID){const kernel=Kernel.getInstance(instanceId);return kernel.startup(options)}export function getKernel(instanceId=DEFAULT_INSTANCE_ID){return Kernel.getInstance(instanceId)}export async function kernelStartApp(options={},instanceId=DEFAULT_INSTANCE_ID){return startup(options,instanceId)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"CacheManager",{enumerable:true,get:function(){return CacheManager}});const _constants=require("../constants");const _utils=require("@vlian/utils");
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"CacheManager",{enumerable:true,get:function(){return CacheManager}});const _constants=require("../constants");const _utils=require("@vlian/utils");let CacheManager=class CacheManager{snapshot=_constants.DEFAULT_CONFIG.cache;cacheIn;initialize(context){this.snapshot=context.config.cache;this.cacheIn=(0,_utils.createStorage)({type:this.snapshot.storageOptions?.type||"local",prefix:this.snapshot.storageOptions?.prefix||"vlian",defaultExpire:this.snapshot.storageOptions?.defaultExpire||24*60*60*1e3,dbName:this.snapshot.storageOptions?.tableName})}get cache(){return this.cacheIn}getSnapshot(){return this.snapshot}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{DEFAULT_CONFIG}from"../constants";import{createStorage}from"@vlian/utils";export class CacheManager{snapshot=DEFAULT_CONFIG.cache;cacheIn;initialize(context){this.snapshot=context.config.cache;this.cacheIn=createStorage({type:this.snapshot.storageOptions?.type||"local",prefix:this.snapshot.storageOptions?.prefix||"vlian",defaultExpire:this.snapshot.storageOptions?.defaultExpire||24*60*60*1e3,dbName:this.snapshot.storageOptions?.tableName})}get cache(){return this.cacheIn}getSnapshot(){return this.snapshot}}
|
|
@@ -1 +1 @@
|
|
|
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");
|
|
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");let LoggerManager=class LoggerManager{snapshot={level:_logger.LogLevel.INFO};config=_constants.DEFAULT_CONFIG.logger;listeners=new Set;cacheManager=null;initialized=false;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{}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{logger,LogLevel}from"@vlian/logger";import{DEFAULT_CONFIG}from"../../constants";import{isLoggerEqual,normalizeLoggerSnapshot}from"./logger.schema";import{loadLoggerFromCache,saveLoggerToCache}from"./logger.persistence";export class LoggerManager{snapshot={level:LogLevel.INFO};config=DEFAULT_CONFIG.logger;listeners=new Set;cacheManager=null;initialized=false;async initialize(context){this.config=context.config.logger;this.cacheManager=context.cacheManager;const initialSnapshot=normalizeLoggerSnapshot({level:this.config.level},{level:LogLevel.INFO});this.snapshot=await loadLoggerFromCache(this.cacheManager,this.config.persistence,initialSnapshot);logger.setLevel(this.snapshot.level);this.initialized=true}subscribe(listener){this.listeners.add(listener);return()=>{this.listeners.delete(listener)}}debug(...args){logger.debug(...args)}info(...args){logger.info(...args)}warn(...args){logger.warn(...args)}error(...args){logger.error(...args)}async setLevel(level){this.ensureInitialized();const prevSnapshot=this.snapshot;const nextSnapshot=normalizeLoggerSnapshot({level},prevSnapshot);if(isLoggerEqual(prevSnapshot,nextSnapshot)){return}this.snapshot=nextSnapshot;logger.setLevel(this.snapshot.level);if(this.cacheManager){await 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{}}}}
|
|
@@ -0,0 +1 @@
|
|
|
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 isEagerKernelManagerRegistration(){return isEagerKernelManagerRegistration},get isKernelManager(){return isKernelManager},get isLazyKernelManagerRegistration(){return isLazyKernelManagerRegistration},get resolveKernelManagerModule(){return resolveKernelManagerModule}});function isKernelManager(value){return typeof value==="object"&&value!==null&&typeof value.initialize==="function"}function isLazyKernelManagerRegistration(value){return typeof value==="object"&&value!==null&&"load"in value}function isEagerKernelManagerRegistration(value){return typeof value==="object"&&value!==null&&"manager"in value}function resolveKernelManagerModule(module){if(isKernelManager(module)){return module}if("manager"in module&&isKernelManager(module.manager)){return module.manager}if("default"in module&&isKernelManager(module.default)){return module.default}throw new Error("Invalid lazy kernel manager module")}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { KernelManager } from './types';
|
|
2
|
+
export type KernelManagerModule = KernelManager | {
|
|
3
|
+
default: KernelManager;
|
|
4
|
+
} | {
|
|
5
|
+
manager: KernelManager;
|
|
6
|
+
};
|
|
7
|
+
export type KernelManagerLoader = () => Promise<KernelManagerModule> | KernelManagerModule;
|
|
8
|
+
export interface LazyKernelManagerRegistration {
|
|
9
|
+
load: KernelManagerLoader;
|
|
10
|
+
eager?: boolean;
|
|
11
|
+
config?: unknown;
|
|
12
|
+
}
|
|
13
|
+
export interface EagerKernelManagerRegistration {
|
|
14
|
+
manager: KernelManager;
|
|
15
|
+
eager?: boolean;
|
|
16
|
+
config?: unknown;
|
|
17
|
+
}
|
|
18
|
+
export type KernelManagerRegistration = KernelManager | LazyKernelManagerRegistration | EagerKernelManagerRegistration;
|
|
19
|
+
export interface KernelLazyManagerOptions {
|
|
20
|
+
eager?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export declare function isKernelManager(value: unknown): value is KernelManager;
|
|
23
|
+
export declare function isLazyKernelManagerRegistration(value: KernelManagerRegistration): value is LazyKernelManagerRegistration;
|
|
24
|
+
export declare function isEagerKernelManagerRegistration(value: KernelManagerRegistration): value is EagerKernelManagerRegistration;
|
|
25
|
+
export declare function resolveKernelManagerModule(module: KernelManagerModule): KernelManager;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export function isKernelManager(value){return typeof value==="object"&&value!==null&&typeof value.initialize==="function"}export function isLazyKernelManagerRegistration(value){return typeof value==="object"&&value!==null&&"load"in value}export function isEagerKernelManagerRegistration(value){return typeof value==="object"&&value!==null&&"manager"in value}export function resolveKernelManagerModule(module){if(isKernelManager(module)){return module}if("manager"in module&&isKernelManager(module.manager)){return module.manager}if("default"in module&&isKernelManager(module.default)){return module.default}throw new Error("Invalid lazy kernel manager module")}
|
package/dist/kernel/types.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { LogLevel } from '@vlian/logger';
|
|
2
2
|
import type { StorageInstance } from '@vlian/utils';
|
|
3
3
|
import type { StorageType } from '@vlian/utils';
|
|
4
|
+
import type { KernelManagerRegistration } from './manager-registration';
|
|
4
5
|
export type StorageOptions = {
|
|
5
6
|
prefix: string;
|
|
6
7
|
defaultExpire: number;
|
|
@@ -81,7 +82,7 @@ export interface StartOptions extends CoreStartOptions {
|
|
|
81
82
|
config?: Partial<KernelConfig>;
|
|
82
83
|
configLoader?: () => Promise<Partial<KernelConfig> | void> | Partial<KernelConfig> | void;
|
|
83
84
|
render?: (context: KernelRenderContext) => Promise<void> | void;
|
|
84
|
-
customManagers?: Record<string,
|
|
85
|
+
customManagers?: Record<string, KernelManagerRegistration>;
|
|
85
86
|
managerConfigs?: Record<string, unknown>;
|
|
86
87
|
hooks?: StartupHooks;
|
|
87
88
|
}
|
package/dist/theme.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
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_THEME(){return _theme.DEFAULT_THEME},get DEFAULT_THEME_MANAGER_CONFIG(){return _theme.DEFAULT_THEME_MANAGER_CONFIG},get THEME_MANAGER_NAME(){return _theme.THEME_MANAGER_NAME},get ThemeManager(){return _theme.ThemeManager},get registerThemeManager(){return _theme.registerThemeManager}});const _theme=require("./kernel/custom-manager/theme");
|
|
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_THEME(){return _theme.DEFAULT_THEME},get DEFAULT_THEME_MANAGER_CONFIG(){return _theme.DEFAULT_THEME_MANAGER_CONFIG},get THEME_MANAGER_NAME(){return _theme.THEME_MANAGER_NAME},get ThemeManager(){return _theme.ThemeManager},get registerLazyThemeManager(){return _theme.registerLazyThemeManager},get registerThemeManager(){return _theme.registerThemeManager}});const _theme=require("./kernel/custom-manager/theme");
|
package/dist/theme.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { ThemeManager, DEFAULT_THEME, DEFAULT_THEME_MANAGER_CONFIG, THEME_MANAGER_NAME, registerThemeManager, } from './kernel/custom-manager/theme';
|
|
1
|
+
export { ThemeManager, DEFAULT_THEME, DEFAULT_THEME_MANAGER_CONFIG, THEME_MANAGER_NAME, registerLazyThemeManager, registerThemeManager, } from './kernel/custom-manager/theme';
|
|
2
2
|
export type { ResolvedThemeMode, ResolvedThemeSnapshot, ThemeManagerConfig, ThemeSnapshot, } from './kernel/custom-manager/theme';
|
package/dist/theme.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{ThemeManager,DEFAULT_THEME,DEFAULT_THEME_MANAGER_CONFIG,THEME_MANAGER_NAME,registerThemeManager}from"./kernel/custom-manager/theme";
|
|
1
|
+
export{ThemeManager,DEFAULT_THEME,DEFAULT_THEME_MANAGER_CONFIG,THEME_MANAGER_NAME,registerLazyThemeManager,registerThemeManager}from"./kernel/custom-manager/theme";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"registerLazyThemeManager",{enumerable:true,get:function(){return _lazy.registerLazyThemeManager}});const _lazy=require("./kernel/custom-manager/theme/lazy");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{registerLazyThemeManager}from"./kernel/custom-manager/theme/lazy";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vlian/framework",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.3",
|
|
4
4
|
"private": false,
|
|
5
5
|
"packageManager": "pnpm@10.27.0",
|
|
6
6
|
"description": "Secra Framework - 一个现代化的低代码框架",
|
|
@@ -20,11 +20,21 @@
|
|
|
20
20
|
"import": "./dist/theme.js",
|
|
21
21
|
"require": "./dist/theme.cjs"
|
|
22
22
|
},
|
|
23
|
+
"./theme/lazy": {
|
|
24
|
+
"types": "./dist/theme.lazy.d.ts",
|
|
25
|
+
"import": "./dist/theme.lazy.js",
|
|
26
|
+
"require": "./dist/theme.lazy.cjs"
|
|
27
|
+
},
|
|
23
28
|
"./i18n": {
|
|
24
29
|
"types": "./dist/i18n.d.ts",
|
|
25
30
|
"import": "./dist/i18n.js",
|
|
26
31
|
"require": "./dist/i18n.cjs"
|
|
27
32
|
},
|
|
33
|
+
"./i18n/lazy": {
|
|
34
|
+
"types": "./dist/i18n.lazy.d.ts",
|
|
35
|
+
"import": "./dist/i18n.lazy.js",
|
|
36
|
+
"require": "./dist/i18n.lazy.cjs"
|
|
37
|
+
},
|
|
28
38
|
"./kernel": {
|
|
29
39
|
"types": "./dist/kernel/index.d.ts",
|
|
30
40
|
"import": "./dist/kernel/index.js",
|
|
@@ -42,9 +52,15 @@
|
|
|
42
52
|
"theme": [
|
|
43
53
|
"dist/theme.d.ts"
|
|
44
54
|
],
|
|
55
|
+
"theme/lazy": [
|
|
56
|
+
"dist/theme.lazy.d.ts"
|
|
57
|
+
],
|
|
45
58
|
"i18n": [
|
|
46
59
|
"dist/i18n.d.ts"
|
|
47
60
|
],
|
|
61
|
+
"i18n/lazy": [
|
|
62
|
+
"dist/i18n.lazy.d.ts"
|
|
63
|
+
],
|
|
48
64
|
"kernel": [
|
|
49
65
|
"dist/kernel/index.d.ts"
|
|
50
66
|
],
|
|
@@ -64,9 +80,15 @@
|
|
|
64
80
|
"dist/theme.cjs",
|
|
65
81
|
"dist/theme.d.ts",
|
|
66
82
|
"dist/theme.js",
|
|
83
|
+
"dist/theme.lazy.cjs",
|
|
84
|
+
"dist/theme.lazy.d.ts",
|
|
85
|
+
"dist/theme.lazy.js",
|
|
67
86
|
"dist/i18n.cjs",
|
|
68
87
|
"dist/i18n.d.ts",
|
|
69
88
|
"dist/i18n.js",
|
|
89
|
+
"dist/i18n.lazy.cjs",
|
|
90
|
+
"dist/i18n.lazy.d.ts",
|
|
91
|
+
"dist/i18n.lazy.js",
|
|
70
92
|
"dist/kernel",
|
|
71
93
|
"README.md",
|
|
72
94
|
"LICENSE"
|