@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.
- package/dist/analytics.umd.js +208 -2395
- package/dist/analytics.umd.js.map +1 -1
- package/dist/core/error/ErrorHandler.cjs.map +1 -1
- package/dist/core/error/ErrorHandler.d.ts +1 -1
- package/dist/core/error/ErrorHandler.js.map +1 -1
- package/dist/core/router/monitoring/RouterMonitoring.cjs +1 -1
- package/dist/core/router/monitoring/RouterMonitoring.cjs.map +1 -1
- package/dist/core/router/monitoring/RouterMonitoring.js +1 -1
- package/dist/core/router/monitoring/RouterMonitoring.js.map +1 -1
- package/dist/core/router/utils/adapters/react-router/transform.cjs +4 -0
- package/dist/core/router/utils/adapters/react-router/transform.cjs.map +1 -1
- package/dist/core/router/utils/adapters/react-router/transform.js +4 -0
- package/dist/core/router/utils/adapters/react-router/transform.js.map +1 -1
- package/dist/core/startup/initializeServices.cjs +1 -1
- package/dist/core/startup/initializeServices.cjs.map +1 -1
- package/dist/core/startup/initializeServices.d.ts +1 -1
- package/dist/core/startup/initializeServices.js +1 -1
- package/dist/core/startup/initializeServices.js.map +1 -1
- package/dist/core/startup/performanceTracker.cjs.map +1 -1
- package/dist/core/startup/performanceTracker.d.ts +1 -1
- package/dist/core/startup/performanceTracker.js.map +1 -1
- package/dist/core/startup/renderApp.cjs +1 -1
- package/dist/core/startup/renderApp.cjs.map +1 -1
- package/dist/core/startup/renderApp.d.ts +1 -1
- package/dist/core/startup/renderApp.js +1 -1
- package/dist/core/startup/renderApp.js.map +1 -1
- package/dist/core/startup/startApp.cjs +2 -2
- package/dist/core/startup/startApp.cjs.map +1 -1
- package/dist/core/startup/startApp.js +3 -3
- package/dist/core/startup/startApp.js.map +1 -1
- package/dist/core/types.d.ts +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/index.cjs +15 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +6 -4
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +11648 -32616
- package/dist/index.umd.js.map +1 -1
- package/dist/kernel/constants.cjs +67 -0
- package/dist/kernel/constants.cjs.map +1 -0
- package/dist/kernel/constants.d.ts +5 -0
- package/dist/kernel/constants.js +43 -0
- package/dist/kernel/constants.js.map +1 -0
- package/dist/kernel/index.cjs +40 -0
- package/dist/kernel/index.cjs.map +1 -0
- package/dist/kernel/index.d.ts +3 -0
- package/dist/kernel/index.js +4 -0
- package/dist/kernel/index.js.map +1 -0
- package/dist/kernel/kernel.cjs +296 -0
- package/dist/kernel/kernel.cjs.map +1 -0
- package/dist/kernel/kernel.d.ts +40 -0
- package/dist/kernel/kernel.js +272 -0
- package/dist/kernel/kernel.js.map +1 -0
- package/dist/kernel/manager/cacheManager.cjs +46 -0
- package/dist/kernel/manager/cacheManager.cjs.map +1 -0
- package/dist/kernel/manager/cacheManager.d.ts +6 -0
- package/dist/kernel/manager/cacheManager.js +36 -0
- package/dist/kernel/manager/cacheManager.js.map +1 -0
- package/dist/kernel/manager/i18nManager.cjs +68 -0
- package/dist/kernel/manager/i18nManager.cjs.map +1 -0
- package/dist/kernel/manager/i18nManager.d.ts +8 -0
- package/dist/kernel/manager/i18nManager.js +58 -0
- package/dist/kernel/manager/i18nManager.js.map +1 -0
- package/dist/kernel/manager/index.cjs +30 -0
- package/dist/kernel/manager/index.cjs.map +1 -0
- package/dist/kernel/manager/index.d.ts +4 -0
- package/dist/kernel/manager/index.js +6 -0
- package/dist/kernel/manager/index.js.map +1 -0
- package/dist/kernel/manager/loggerManager.cjs +70 -0
- package/dist/kernel/manager/loggerManager.cjs.map +1 -0
- package/dist/kernel/manager/loggerManager.d.ts +14 -0
- package/dist/kernel/manager/loggerManager.js +60 -0
- package/dist/kernel/manager/loggerManager.js.map +1 -0
- package/dist/kernel/manager/persistence.cjs +93 -0
- package/dist/kernel/manager/persistence.cjs.map +1 -0
- package/dist/kernel/manager/persistence.d.ts +3 -0
- package/dist/kernel/manager/persistence.js +75 -0
- package/dist/kernel/manager/persistence.js.map +1 -0
- package/dist/kernel/manager/themeManager.cjs +85 -0
- package/dist/kernel/manager/themeManager.cjs.map +1 -0
- package/dist/kernel/manager/themeManager.d.ts +9 -0
- package/dist/kernel/manager/themeManager.js +75 -0
- package/dist/kernel/manager/themeManager.js.map +1 -0
- package/dist/kernel/types.cjs +6 -0
- package/dist/kernel/types.cjs.map +1 -0
- package/dist/kernel/types.d.ts +72 -0
- package/dist/kernel/types.js +3 -0
- package/dist/kernel/types.js.map +1 -0
- package/dist/request/adapter.d.ts +1 -0
- package/dist/request/core.d.ts +1 -0
- package/dist/request/index.d.ts +1 -42
- package/dist/request/plugin/csrfPlugin.d.ts +2 -2
- package/dist/request/plugin/queue.d.ts +2 -2
- package/dist/request/plugin.d.ts +1 -0
- package/dist/request/runtime.d.ts +1 -0
- package/dist/request/types.d.ts +1 -394
- package/dist/request/utils.d.ts +1 -0
- package/dist/state.umd.js +1 -1
- package/dist/utils/csrf.cjs +13 -152
- package/dist/utils/csrf.cjs.map +1 -1
- package/dist/utils/csrf.d.ts +1 -72
- package/dist/utils/csrf.js +1 -142
- package/dist/utils/csrf.js.map +1 -1
- package/dist/utils/errors/ErrorCodes.cjs +6 -76
- package/dist/utils/errors/ErrorCodes.cjs.map +1 -1
- package/dist/utils/errors/ErrorCodes.d.ts +1 -45
- package/dist/utils/errors/ErrorCodes.js +1 -84
- package/dist/utils/errors/ErrorCodes.js.map +1 -1
- package/dist/utils/errors.cjs +15 -344
- package/dist/utils/errors.cjs.map +1 -1
- package/dist/utils/errors.d.ts +1 -183
- package/dist/utils/errors.js +1 -352
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/logger.cjs +5 -374
- package/dist/utils/logger.cjs.map +1 -1
- package/dist/utils/logger.d.ts +2 -189
- package/dist/utils/logger.js +1 -379
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/logger.types.cjs +3 -12
- package/dist/utils/logger.types.cjs.map +1 -1
- package/dist/utils/logger.types.d.ts +2 -57
- package/dist/utils/logger.types.js +1 -10
- package/dist/utils/logger.types.js.map +1 -1
- package/dist/utils/monitoring.cjs +11 -302
- package/dist/utils/monitoring.cjs.map +1 -1
- package/dist/utils/monitoring.d.ts +1 -163
- package/dist/utils/monitoring.js +1 -294
- package/dist/utils/monitoring.js.map +1 -1
- package/dist/utils/performance.cjs +5 -352
- package/dist/utils/performance.cjs.map +1 -1
- package/dist/utils/performance.d.ts +2 -246
- package/dist/utils/performance.js +1 -354
- package/dist/utils/performance.js.map +1 -1
- package/dist/utils/resourceLoader.cjs +5 -303
- package/dist/utils/resourceLoader.cjs.map +1 -1
- package/dist/utils/resourceLoader.d.ts +2 -130
- package/dist/utils/resourceLoader.js +1 -305
- package/dist/utils/resourceLoader.js.map +1 -1
- package/dist/utils/runtimeSecurity.cjs +2 -140
- package/dist/utils/runtimeSecurity.cjs.map +1 -1
- package/dist/utils/runtimeSecurity.d.ts +2 -104
- package/dist/utils/runtimeSecurity.js +1 -141
- package/dist/utils/runtimeSecurity.js.map +1 -1
- package/dist/utils/security.cjs +3 -314
- package/dist/utils/security.cjs.map +1 -1
- package/dist/utils/security.d.ts +2 -80
- package/dist/utils/security.js +1 -311
- package/dist/utils/security.js.map +1 -1
- package/dist/utils/traceId.cjs +10 -111
- package/dist/utils/traceId.cjs.map +1 -1
- package/dist/utils/traceId.d.ts +1 -63
- package/dist/utils/traceId.js +1 -116
- package/dist/utils/traceId.js.map +1 -1
- package/dist/utils/validation.cjs +3 -173
- package/dist/utils/validation.cjs.map +1 -1
- package/dist/utils/validation.d.ts +2 -110
- package/dist/utils/validation.js +1 -175
- package/dist/utils/validation.js.map +1 -1
- package/package.json +15 -24
- package/dist/lazy/index.cjs +0 -104
- package/dist/lazy/index.cjs.map +0 -1
- package/dist/lazy/index.d.ts +0 -19
- package/dist/lazy/index.js +0 -24
- package/dist/lazy/index.js.map +0 -1
- package/dist/request/adapter/RequestAdapter.cjs +0 -78
- package/dist/request/adapter/RequestAdapter.cjs.map +0 -1
- package/dist/request/adapter/axiosAdapter.cjs +0 -164
- package/dist/request/adapter/axiosAdapter.cjs.map +0 -1
- package/dist/request/adapter/fetchAdapter.cjs +0 -134
- package/dist/request/adapter/fetchAdapter.cjs.map +0 -1
- package/dist/request/adapter/index.cjs +0 -80
- package/dist/request/adapter/index.cjs.map +0 -1
- package/dist/request/adapter/kyAdapter.cjs +0 -191
- package/dist/request/adapter/kyAdapter.cjs.map +0 -1
- package/dist/request/adapter/undiciAdapter.cjs +0 -213
- package/dist/request/adapter/undiciAdapter.cjs.map +0 -1
- package/dist/request/core/RequestClient.cjs +0 -558
- package/dist/request/core/RequestClient.cjs.map +0 -1
- package/dist/request/core/index.cjs +0 -15
- package/dist/request/core/index.cjs.map +0 -1
- package/dist/request/index.cjs +0 -149
- package/dist/request/index.cjs.map +0 -1
- package/dist/request/plugin/RequestPlugin.cjs +0 -218
- package/dist/request/plugin/RequestPlugin.cjs.map +0 -1
- package/dist/request/plugin/cache.cjs +0 -269
- package/dist/request/plugin/cache.cjs.map +0 -1
- package/dist/request/plugin/csrfPlugin.cjs +0 -40
- package/dist/request/plugin/csrfPlugin.cjs.map +0 -1
- package/dist/request/plugin/index.cjs +0 -53
- package/dist/request/plugin/index.cjs.map +0 -1
- package/dist/request/plugin/monitoring.cjs +0 -216
- package/dist/request/plugin/monitoring.cjs.map +0 -1
- package/dist/request/plugin/queue.cjs +0 -140
- package/dist/request/plugin/queue.cjs.map +0 -1
- package/dist/request/plugin/retry.cjs +0 -98
- package/dist/request/plugin/retry.cjs.map +0 -1
- package/dist/request/plugin/validation.cjs +0 -121
- package/dist/request/plugin/validation.cjs.map +0 -1
- package/dist/request/runtime/RequestContext.cjs +0 -77
- package/dist/request/runtime/RequestContext.cjs.map +0 -1
- package/dist/request/runtime/index.cjs +0 -32
- package/dist/request/runtime/index.cjs.map +0 -1
- package/dist/request/types.cjs +0 -112
- package/dist/request/types.cjs.map +0 -1
- package/dist/request/utils/RequestQueueManager.cjs +0 -168
- package/dist/request/utils/RequestQueueManager.cjs.map +0 -1
- package/dist/request/utils/dependencyCheck.cjs +0 -237
- package/dist/request/utils/dependencyCheck.cjs.map +0 -1
- package/dist/request/utils/index.cjs +0 -30
- package/dist/request/utils/index.cjs.map +0 -1
- package/dist/request.umd.js +0 -5392
- package/dist/request.umd.js.map +0 -1
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "LoggerManager", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return LoggerManager;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _utils = require("../../utils");
|
|
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
|
+
function normalizeLogLevel(value, fallback) {
|
|
28
|
+
if (!value || typeof value !== 'string') {
|
|
29
|
+
return fallback;
|
|
30
|
+
}
|
|
31
|
+
switch(value.toUpperCase()){
|
|
32
|
+
case 'DEBUG':
|
|
33
|
+
return _utils.LogLevel.DEBUG;
|
|
34
|
+
case 'INFO':
|
|
35
|
+
return _utils.LogLevel.INFO;
|
|
36
|
+
case 'WARN':
|
|
37
|
+
return _utils.LogLevel.WARN;
|
|
38
|
+
case 'ERROR':
|
|
39
|
+
return _utils.LogLevel.ERROR;
|
|
40
|
+
default:
|
|
41
|
+
return fallback;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
let LoggerManager = class LoggerManager {
|
|
45
|
+
async initialize(context) {
|
|
46
|
+
this.config = context.config.logger;
|
|
47
|
+
const persisted = await (0, _persistence.readPersistedValue)(this.config.persistence);
|
|
48
|
+
this.level = normalizeLogLevel(persisted, this.config.level ?? _utils.LogLevel.INFO);
|
|
49
|
+
_utils.logger.setLevel(this.level);
|
|
50
|
+
}
|
|
51
|
+
debug(message, payload) {
|
|
52
|
+
_utils.logger.debug(message, payload);
|
|
53
|
+
}
|
|
54
|
+
async setLevel(level) {
|
|
55
|
+
this.level = level;
|
|
56
|
+
_utils.logger.setLevel(level);
|
|
57
|
+
await (0, _persistence.writePersistedValue)(this.config.persistence, String(level));
|
|
58
|
+
}
|
|
59
|
+
getSnapshot() {
|
|
60
|
+
return {
|
|
61
|
+
level: this.level
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
constructor(){
|
|
65
|
+
_define_property(this, "level", _utils.LogLevel.INFO);
|
|
66
|
+
_define_property(this, "config", _constants.DEFAULT_CONFIG.logger);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
//# sourceMappingURL=loggerManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/kernel/manager/loggerManager.ts"],"sourcesContent":["import { logger, LogLevel } from '../../utils';\nimport type { KernelConfig, KernelManager, KernelManagerContext } from '../types';\nimport { DEFAULT_CONFIG } from '../constants';\nimport { readPersistedValue, writePersistedValue } from './persistence';\n\nfunction normalizeLogLevel(value: unknown, fallback: LogLevel): LogLevel {\n if (!value || typeof value !== 'string') {\n return fallback;\n }\n\n switch (value.toUpperCase()) {\n case 'DEBUG':\n return LogLevel.DEBUG;\n case 'INFO':\n return LogLevel.INFO;\n case 'WARN':\n return LogLevel.WARN;\n case 'ERROR':\n return LogLevel.ERROR;\n default:\n return fallback;\n }\n}\n\nexport class LoggerManager implements KernelManager<{ level: LogLevel }> {\n private level: LogLevel = LogLevel.INFO;\n private config: KernelConfig['logger'] = DEFAULT_CONFIG.logger;\n\n public async initialize(context: KernelManagerContext): Promise<void> {\n this.config = context.config.logger;\n const persisted = await readPersistedValue(this.config.persistence);\n this.level = normalizeLogLevel(persisted, this.config.level ?? LogLevel.INFO);\n logger.setLevel(this.level);\n }\n\n public debug(message: string, payload?: unknown): void {\n logger.debug(message, payload);\n }\n\n public async setLevel(level: LogLevel): Promise<void> {\n this.level = level;\n logger.setLevel(level);\n await writePersistedValue(this.config.persistence, String(level));\n }\n\n public getSnapshot(): { level: LogLevel } {\n return { level: this.level };\n }\n}\n"],"names":["LoggerManager","normalizeLogLevel","value","fallback","toUpperCase","LogLevel","DEBUG","INFO","WARN","ERROR","initialize","context","config","logger","persisted","readPersistedValue","persistence","level","setLevel","debug","message","payload","writePersistedValue","String","getSnapshot","DEFAULT_CONFIG"],"mappings":";;;;+BAwBaA;;;eAAAA;;;uBAxBoB;2BAEF;6BACyB;;;;;;;;;;;;;;AAExD,SAASC,kBAAkBC,KAAc,EAAEC,QAAkB;IAC3D,IAAI,CAACD,SAAS,OAAOA,UAAU,UAAU;QACvC,OAAOC;IACT;IAEA,OAAQD,MAAME,WAAW;QACvB,KAAK;YACH,OAAOC,eAAQ,CAACC,KAAK;QACvB,KAAK;YACH,OAAOD,eAAQ,CAACE,IAAI;QACtB,KAAK;YACH,OAAOF,eAAQ,CAACG,IAAI;QACtB,KAAK;YACH,OAAOH,eAAQ,CAACI,KAAK;QACvB;YACE,OAAON;IACX;AACF;AAEO,IAAA,AAAMH,gBAAN,MAAMA;IAIX,MAAaU,WAAWC,OAA6B,EAAiB;QACpE,IAAI,CAACC,MAAM,GAAGD,QAAQC,MAAM,CAACC,MAAM;QACnC,MAAMC,YAAY,MAAMC,IAAAA,+BAAkB,EAAC,IAAI,CAACH,MAAM,CAACI,WAAW;QAClE,IAAI,CAACC,KAAK,GAAGhB,kBAAkBa,WAAW,IAAI,CAACF,MAAM,CAACK,KAAK,IAAIZ,eAAQ,CAACE,IAAI;QAC5EM,aAAM,CAACK,QAAQ,CAAC,IAAI,CAACD,KAAK;IAC5B;IAEOE,MAAMC,OAAe,EAAEC,OAAiB,EAAQ;QACrDR,aAAM,CAACM,KAAK,CAACC,SAASC;IACxB;IAEA,MAAaH,SAASD,KAAe,EAAiB;QACpD,IAAI,CAACA,KAAK,GAAGA;QACbJ,aAAM,CAACK,QAAQ,CAACD;QAChB,MAAMK,IAAAA,gCAAmB,EAAC,IAAI,CAACV,MAAM,CAACI,WAAW,EAAEO,OAAON;IAC5D;IAEOO,cAAmC;QACxC,OAAO;YAAEP,OAAO,IAAI,CAACA,KAAK;QAAC;IAC7B;;QAtBA,uBAAQA,SAAkBZ,eAAQ,CAACE,IAAI;QACvC,uBAAQK,UAAiCa,yBAAc,CAACZ,MAAM;;AAsBhE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { LogLevel } from '../../utils';
|
|
2
|
+
import type { KernelManager, KernelManagerContext } from '../types';
|
|
3
|
+
export declare class LoggerManager implements KernelManager<{
|
|
4
|
+
level: LogLevel;
|
|
5
|
+
}> {
|
|
6
|
+
private level;
|
|
7
|
+
private config;
|
|
8
|
+
initialize(context: KernelManagerContext): Promise<void>;
|
|
9
|
+
debug(message: string, payload?: unknown): void;
|
|
10
|
+
setLevel(level: LogLevel): Promise<void>;
|
|
11
|
+
getSnapshot(): {
|
|
12
|
+
level: LogLevel;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
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 { logger, LogLevel } from "../../utils";
|
|
15
|
+
import { DEFAULT_CONFIG } from "../constants";
|
|
16
|
+
import { readPersistedValue, writePersistedValue } from "./persistence";
|
|
17
|
+
function normalizeLogLevel(value, fallback) {
|
|
18
|
+
if (!value || typeof value !== 'string') {
|
|
19
|
+
return fallback;
|
|
20
|
+
}
|
|
21
|
+
switch(value.toUpperCase()){
|
|
22
|
+
case 'DEBUG':
|
|
23
|
+
return LogLevel.DEBUG;
|
|
24
|
+
case 'INFO':
|
|
25
|
+
return LogLevel.INFO;
|
|
26
|
+
case 'WARN':
|
|
27
|
+
return LogLevel.WARN;
|
|
28
|
+
case 'ERROR':
|
|
29
|
+
return LogLevel.ERROR;
|
|
30
|
+
default:
|
|
31
|
+
return fallback;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export class LoggerManager {
|
|
35
|
+
async initialize(context) {
|
|
36
|
+
this.config = context.config.logger;
|
|
37
|
+
const persisted = await readPersistedValue(this.config.persistence);
|
|
38
|
+
this.level = normalizeLogLevel(persisted, this.config.level ?? LogLevel.INFO);
|
|
39
|
+
logger.setLevel(this.level);
|
|
40
|
+
}
|
|
41
|
+
debug(message, payload) {
|
|
42
|
+
logger.debug(message, payload);
|
|
43
|
+
}
|
|
44
|
+
async setLevel(level) {
|
|
45
|
+
this.level = level;
|
|
46
|
+
logger.setLevel(level);
|
|
47
|
+
await writePersistedValue(this.config.persistence, String(level));
|
|
48
|
+
}
|
|
49
|
+
getSnapshot() {
|
|
50
|
+
return {
|
|
51
|
+
level: this.level
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
constructor(){
|
|
55
|
+
_define_property(this, "level", LogLevel.INFO);
|
|
56
|
+
_define_property(this, "config", DEFAULT_CONFIG.logger);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
//# sourceMappingURL=loggerManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/kernel/manager/loggerManager.ts"],"sourcesContent":["import { logger, LogLevel } from '../../utils';\nimport type { KernelConfig, KernelManager, KernelManagerContext } from '../types';\nimport { DEFAULT_CONFIG } from '../constants';\nimport { readPersistedValue, writePersistedValue } from './persistence';\n\nfunction normalizeLogLevel(value: unknown, fallback: LogLevel): LogLevel {\n if (!value || typeof value !== 'string') {\n return fallback;\n }\n\n switch (value.toUpperCase()) {\n case 'DEBUG':\n return LogLevel.DEBUG;\n case 'INFO':\n return LogLevel.INFO;\n case 'WARN':\n return LogLevel.WARN;\n case 'ERROR':\n return LogLevel.ERROR;\n default:\n return fallback;\n }\n}\n\nexport class LoggerManager implements KernelManager<{ level: LogLevel }> {\n private level: LogLevel = LogLevel.INFO;\n private config: KernelConfig['logger'] = DEFAULT_CONFIG.logger;\n\n public async initialize(context: KernelManagerContext): Promise<void> {\n this.config = context.config.logger;\n const persisted = await readPersistedValue(this.config.persistence);\n this.level = normalizeLogLevel(persisted, this.config.level ?? LogLevel.INFO);\n logger.setLevel(this.level);\n }\n\n public debug(message: string, payload?: unknown): void {\n logger.debug(message, payload);\n }\n\n public async setLevel(level: LogLevel): Promise<void> {\n this.level = level;\n logger.setLevel(level);\n await writePersistedValue(this.config.persistence, String(level));\n }\n\n public getSnapshot(): { level: LogLevel } {\n return { level: this.level };\n }\n}\n"],"names":["logger","LogLevel","DEFAULT_CONFIG","readPersistedValue","writePersistedValue","normalizeLogLevel","value","fallback","toUpperCase","DEBUG","INFO","WARN","ERROR","LoggerManager","initialize","context","config","persisted","persistence","level","setLevel","debug","message","payload","String","getSnapshot"],"mappings":";;;;;;;;;;;;;AAAA,SAASA,MAAM,EAAEC,QAAQ,QAAQ,cAAc;AAE/C,SAASC,cAAc,QAAQ,eAAe;AAC9C,SAASC,kBAAkB,EAAEC,mBAAmB,QAAQ,gBAAgB;AAExE,SAASC,kBAAkBC,KAAc,EAAEC,QAAkB;IAC3D,IAAI,CAACD,SAAS,OAAOA,UAAU,UAAU;QACvC,OAAOC;IACT;IAEA,OAAQD,MAAME,WAAW;QACvB,KAAK;YACH,OAAOP,SAASQ,KAAK;QACvB,KAAK;YACH,OAAOR,SAASS,IAAI;QACtB,KAAK;YACH,OAAOT,SAASU,IAAI;QACtB,KAAK;YACH,OAAOV,SAASW,KAAK;QACvB;YACE,OAAOL;IACX;AACF;AAEA,OAAO,MAAMM;IAIX,MAAaC,WAAWC,OAA6B,EAAiB;QACpE,IAAI,CAACC,MAAM,GAAGD,QAAQC,MAAM,CAAChB,MAAM;QACnC,MAAMiB,YAAY,MAAMd,mBAAmB,IAAI,CAACa,MAAM,CAACE,WAAW;QAClE,IAAI,CAACC,KAAK,GAAGd,kBAAkBY,WAAW,IAAI,CAACD,MAAM,CAACG,KAAK,IAAIlB,SAASS,IAAI;QAC5EV,OAAOoB,QAAQ,CAAC,IAAI,CAACD,KAAK;IAC5B;IAEOE,MAAMC,OAAe,EAAEC,OAAiB,EAAQ;QACrDvB,OAAOqB,KAAK,CAACC,SAASC;IACxB;IAEA,MAAaH,SAASD,KAAe,EAAiB;QACpD,IAAI,CAACA,KAAK,GAAGA;QACbnB,OAAOoB,QAAQ,CAACD;QAChB,MAAMf,oBAAoB,IAAI,CAACY,MAAM,CAACE,WAAW,EAAEM,OAAOL;IAC5D;IAEOM,cAAmC;QACxC,OAAO;YAAEN,OAAO,IAAI,CAACA,KAAK;QAAC;IAC7B;;QAtBA,uBAAQA,SAAkBlB,SAASS,IAAI;QACvC,uBAAQM,UAAiCd,eAAeF,MAAM;;AAsBhE"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
get readPersistedValue () {
|
|
13
|
+
return readPersistedValue;
|
|
14
|
+
},
|
|
15
|
+
get writePersistedValue () {
|
|
16
|
+
return writePersistedValue;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
const _library = require("../../library");
|
|
20
|
+
function resolveWebStorage(driver) {
|
|
21
|
+
if (typeof window === 'undefined') {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
if (driver === 'localStorage') {
|
|
25
|
+
return window.localStorage;
|
|
26
|
+
}
|
|
27
|
+
if (driver === 'sessionStorage') {
|
|
28
|
+
return window.sessionStorage;
|
|
29
|
+
}
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
async function readPersistedValue(persistence) {
|
|
33
|
+
if (!persistence || persistence.enabled === false) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
const driver = persistence.storage ?? 'localStorage';
|
|
37
|
+
const key = persistence.key;
|
|
38
|
+
if (!key) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
if (driver === 'indexedDB') {
|
|
42
|
+
try {
|
|
43
|
+
const value = await _library.storage.indexedDB.get(key);
|
|
44
|
+
if (value === null || value === undefined) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
if (typeof value === 'string') {
|
|
48
|
+
return value;
|
|
49
|
+
}
|
|
50
|
+
return JSON.stringify(value);
|
|
51
|
+
} catch {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
const targetStorage = resolveWebStorage(driver);
|
|
56
|
+
if (!targetStorage) {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
try {
|
|
60
|
+
return targetStorage.getItem(key);
|
|
61
|
+
} catch {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
async function writePersistedValue(persistence, value) {
|
|
66
|
+
if (!persistence || persistence.enabled === false) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const driver = persistence.storage ?? 'localStorage';
|
|
70
|
+
const key = persistence.key;
|
|
71
|
+
if (!key) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
if (driver === 'indexedDB') {
|
|
75
|
+
try {
|
|
76
|
+
await _library.storage.indexedDB.set(key, value);
|
|
77
|
+
} catch {
|
|
78
|
+
// ignore persistence errors
|
|
79
|
+
}
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const targetStorage = resolveWebStorage(driver);
|
|
83
|
+
if (!targetStorage) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
try {
|
|
87
|
+
targetStorage.setItem(key, value);
|
|
88
|
+
} catch {
|
|
89
|
+
// ignore persistence errors
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
//# sourceMappingURL=persistence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/kernel/manager/persistence.ts"],"sourcesContent":["import { storage } from '../../library';\nimport type { KernelStorageDriver, PersistenceOptions } from '../types';\n\nfunction resolveWebStorage(driver: KernelStorageDriver): Storage | null {\n if (typeof window === 'undefined') {\n return null;\n }\n if (driver === 'localStorage') {\n return window.localStorage;\n }\n if (driver === 'sessionStorage') {\n return window.sessionStorage;\n }\n return null;\n}\n\nexport async function readPersistedValue(\n persistence: PersistenceOptions | undefined\n): Promise<string | null> {\n if (!persistence || persistence.enabled === false) {\n return null;\n }\n\n const driver = persistence.storage ?? 'localStorage';\n const key = persistence.key;\n if (!key) {\n return null;\n }\n\n if (driver === 'indexedDB') {\n try {\n const value = await (storage.indexedDB as any).get(key);\n if (value === null || value === undefined) {\n return null;\n }\n if (typeof value === 'string') {\n return value;\n }\n return JSON.stringify(value);\n } catch {\n return null;\n }\n }\n\n const targetStorage = resolveWebStorage(driver);\n if (!targetStorage) {\n return null;\n }\n\n try {\n return targetStorage.getItem(key);\n } catch {\n return null;\n }\n}\n\nexport async function writePersistedValue(\n persistence: PersistenceOptions | undefined,\n value: string\n): Promise<void> {\n if (!persistence || persistence.enabled === false) {\n return;\n }\n\n const driver = persistence.storage ?? 'localStorage';\n const key = persistence.key;\n if (!key) {\n return;\n }\n\n if (driver === 'indexedDB') {\n try {\n await (storage.indexedDB as any).set(key, value);\n } catch {\n // ignore persistence errors\n }\n return;\n }\n\n const targetStorage = resolveWebStorage(driver);\n if (!targetStorage) {\n return;\n }\n\n try {\n targetStorage.setItem(key, value);\n } catch {\n // ignore persistence errors\n }\n}\n"],"names":["readPersistedValue","writePersistedValue","resolveWebStorage","driver","window","localStorage","sessionStorage","persistence","enabled","storage","key","value","indexedDB","get","undefined","JSON","stringify","targetStorage","getItem","set","setItem"],"mappings":";;;;;;;;;;;QAgBsBA;eAAAA;;QAwCAC;eAAAA;;;yBAxDE;AAGxB,SAASC,kBAAkBC,MAA2B;IACpD,IAAI,OAAOC,WAAW,aAAa;QACjC,OAAO;IACT;IACA,IAAID,WAAW,gBAAgB;QAC7B,OAAOC,OAAOC,YAAY;IAC5B;IACA,IAAIF,WAAW,kBAAkB;QAC/B,OAAOC,OAAOE,cAAc;IAC9B;IACA,OAAO;AACT;AAEO,eAAeN,mBACpBO,WAA2C;IAE3C,IAAI,CAACA,eAAeA,YAAYC,OAAO,KAAK,OAAO;QACjD,OAAO;IACT;IAEA,MAAML,SAASI,YAAYE,OAAO,IAAI;IACtC,MAAMC,MAAMH,YAAYG,GAAG;IAC3B,IAAI,CAACA,KAAK;QACR,OAAO;IACT;IAEA,IAAIP,WAAW,aAAa;QAC1B,IAAI;YACF,MAAMQ,QAAQ,MAAM,AAACF,gBAAO,CAACG,SAAS,CAASC,GAAG,CAACH;YACnD,IAAIC,UAAU,QAAQA,UAAUG,WAAW;gBACzC,OAAO;YACT;YACA,IAAI,OAAOH,UAAU,UAAU;gBAC7B,OAAOA;YACT;YACA,OAAOI,KAAKC,SAAS,CAACL;QACxB,EAAE,OAAM;YACN,OAAO;QACT;IACF;IAEA,MAAMM,gBAAgBf,kBAAkBC;IACxC,IAAI,CAACc,eAAe;QAClB,OAAO;IACT;IAEA,IAAI;QACF,OAAOA,cAAcC,OAAO,CAACR;IAC/B,EAAE,OAAM;QACN,OAAO;IACT;AACF;AAEO,eAAeT,oBACpBM,WAA2C,EAC3CI,KAAa;IAEb,IAAI,CAACJ,eAAeA,YAAYC,OAAO,KAAK,OAAO;QACjD;IACF;IAEA,MAAML,SAASI,YAAYE,OAAO,IAAI;IACtC,MAAMC,MAAMH,YAAYG,GAAG;IAC3B,IAAI,CAACA,KAAK;QACR;IACF;IAEA,IAAIP,WAAW,aAAa;QAC1B,IAAI;YACF,MAAM,AAACM,gBAAO,CAACG,SAAS,CAASO,GAAG,CAACT,KAAKC;QAC5C,EAAE,OAAM;QACN,4BAA4B;QAC9B;QACA;IACF;IAEA,MAAMM,gBAAgBf,kBAAkBC;IACxC,IAAI,CAACc,eAAe;QAClB;IACF;IAEA,IAAI;QACFA,cAAcG,OAAO,CAACV,KAAKC;IAC7B,EAAE,OAAM;IACN,4BAA4B;IAC9B;AACF"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { PersistenceOptions } from '../types';
|
|
2
|
+
export declare function readPersistedValue(persistence: PersistenceOptions | undefined): Promise<string | null>;
|
|
3
|
+
export declare function writePersistedValue(persistence: PersistenceOptions | undefined, value: string): Promise<void>;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { storage } from "../../library";
|
|
2
|
+
function resolveWebStorage(driver) {
|
|
3
|
+
if (typeof window === 'undefined') {
|
|
4
|
+
return null;
|
|
5
|
+
}
|
|
6
|
+
if (driver === 'localStorage') {
|
|
7
|
+
return window.localStorage;
|
|
8
|
+
}
|
|
9
|
+
if (driver === 'sessionStorage') {
|
|
10
|
+
return window.sessionStorage;
|
|
11
|
+
}
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
export async function readPersistedValue(persistence) {
|
|
15
|
+
if (!persistence || persistence.enabled === false) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
const driver = persistence.storage ?? 'localStorage';
|
|
19
|
+
const key = persistence.key;
|
|
20
|
+
if (!key) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
if (driver === 'indexedDB') {
|
|
24
|
+
try {
|
|
25
|
+
const value = await storage.indexedDB.get(key);
|
|
26
|
+
if (value === null || value === undefined) {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
if (typeof value === 'string') {
|
|
30
|
+
return value;
|
|
31
|
+
}
|
|
32
|
+
return JSON.stringify(value);
|
|
33
|
+
} catch {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const targetStorage = resolveWebStorage(driver);
|
|
38
|
+
if (!targetStorage) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
try {
|
|
42
|
+
return targetStorage.getItem(key);
|
|
43
|
+
} catch {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export async function writePersistedValue(persistence, value) {
|
|
48
|
+
if (!persistence || persistence.enabled === false) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const driver = persistence.storage ?? 'localStorage';
|
|
52
|
+
const key = persistence.key;
|
|
53
|
+
if (!key) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (driver === 'indexedDB') {
|
|
57
|
+
try {
|
|
58
|
+
await storage.indexedDB.set(key, value);
|
|
59
|
+
} catch {
|
|
60
|
+
// ignore persistence errors
|
|
61
|
+
}
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
const targetStorage = resolveWebStorage(driver);
|
|
65
|
+
if (!targetStorage) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
try {
|
|
69
|
+
targetStorage.setItem(key, value);
|
|
70
|
+
} catch {
|
|
71
|
+
// ignore persistence errors
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
//# sourceMappingURL=persistence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/kernel/manager/persistence.ts"],"sourcesContent":["import { storage } from '../../library';\nimport type { KernelStorageDriver, PersistenceOptions } from '../types';\n\nfunction resolveWebStorage(driver: KernelStorageDriver): Storage | null {\n if (typeof window === 'undefined') {\n return null;\n }\n if (driver === 'localStorage') {\n return window.localStorage;\n }\n if (driver === 'sessionStorage') {\n return window.sessionStorage;\n }\n return null;\n}\n\nexport async function readPersistedValue(\n persistence: PersistenceOptions | undefined\n): Promise<string | null> {\n if (!persistence || persistence.enabled === false) {\n return null;\n }\n\n const driver = persistence.storage ?? 'localStorage';\n const key = persistence.key;\n if (!key) {\n return null;\n }\n\n if (driver === 'indexedDB') {\n try {\n const value = await (storage.indexedDB as any).get(key);\n if (value === null || value === undefined) {\n return null;\n }\n if (typeof value === 'string') {\n return value;\n }\n return JSON.stringify(value);\n } catch {\n return null;\n }\n }\n\n const targetStorage = resolveWebStorage(driver);\n if (!targetStorage) {\n return null;\n }\n\n try {\n return targetStorage.getItem(key);\n } catch {\n return null;\n }\n}\n\nexport async function writePersistedValue(\n persistence: PersistenceOptions | undefined,\n value: string\n): Promise<void> {\n if (!persistence || persistence.enabled === false) {\n return;\n }\n\n const driver = persistence.storage ?? 'localStorage';\n const key = persistence.key;\n if (!key) {\n return;\n }\n\n if (driver === 'indexedDB') {\n try {\n await (storage.indexedDB as any).set(key, value);\n } catch {\n // ignore persistence errors\n }\n return;\n }\n\n const targetStorage = resolveWebStorage(driver);\n if (!targetStorage) {\n return;\n }\n\n try {\n targetStorage.setItem(key, value);\n } catch {\n // ignore persistence errors\n }\n}\n"],"names":["storage","resolveWebStorage","driver","window","localStorage","sessionStorage","readPersistedValue","persistence","enabled","key","value","indexedDB","get","undefined","JSON","stringify","targetStorage","getItem","writePersistedValue","set","setItem"],"mappings":"AAAA,SAASA,OAAO,QAAQ,gBAAgB;AAGxC,SAASC,kBAAkBC,MAA2B;IACpD,IAAI,OAAOC,WAAW,aAAa;QACjC,OAAO;IACT;IACA,IAAID,WAAW,gBAAgB;QAC7B,OAAOC,OAAOC,YAAY;IAC5B;IACA,IAAIF,WAAW,kBAAkB;QAC/B,OAAOC,OAAOE,cAAc;IAC9B;IACA,OAAO;AACT;AAEA,OAAO,eAAeC,mBACpBC,WAA2C;IAE3C,IAAI,CAACA,eAAeA,YAAYC,OAAO,KAAK,OAAO;QACjD,OAAO;IACT;IAEA,MAAMN,SAASK,YAAYP,OAAO,IAAI;IACtC,MAAMS,MAAMF,YAAYE,GAAG;IAC3B,IAAI,CAACA,KAAK;QACR,OAAO;IACT;IAEA,IAAIP,WAAW,aAAa;QAC1B,IAAI;YACF,MAAMQ,QAAQ,MAAM,AAACV,QAAQW,SAAS,CAASC,GAAG,CAACH;YACnD,IAAIC,UAAU,QAAQA,UAAUG,WAAW;gBACzC,OAAO;YACT;YACA,IAAI,OAAOH,UAAU,UAAU;gBAC7B,OAAOA;YACT;YACA,OAAOI,KAAKC,SAAS,CAACL;QACxB,EAAE,OAAM;YACN,OAAO;QACT;IACF;IAEA,MAAMM,gBAAgBf,kBAAkBC;IACxC,IAAI,CAACc,eAAe;QAClB,OAAO;IACT;IAEA,IAAI;QACF,OAAOA,cAAcC,OAAO,CAACR;IAC/B,EAAE,OAAM;QACN,OAAO;IACT;AACF;AAEA,OAAO,eAAeS,oBACpBX,WAA2C,EAC3CG,KAAa;IAEb,IAAI,CAACH,eAAeA,YAAYC,OAAO,KAAK,OAAO;QACjD;IACF;IAEA,MAAMN,SAASK,YAAYP,OAAO,IAAI;IACtC,MAAMS,MAAMF,YAAYE,GAAG;IAC3B,IAAI,CAACA,KAAK;QACR;IACF;IAEA,IAAIP,WAAW,aAAa;QAC1B,IAAI;YACF,MAAM,AAACF,QAAQW,SAAS,CAASQ,GAAG,CAACV,KAAKC;QAC5C,EAAE,OAAM;QACN,4BAA4B;QAC9B;QACA;IACF;IAEA,MAAMM,gBAAgBf,kBAAkBC;IACxC,IAAI,CAACc,eAAe;QAClB;IACF;IAEA,IAAI;QACFA,cAAcI,OAAO,CAACX,KAAKC;IAC7B,EAAE,OAAM;IACN,4BAA4B;IAC9B;AACF"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "ThemeManager", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return ThemeManager;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _constants = require("../constants");
|
|
12
|
+
const _persistence = require("./persistence");
|
|
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
|
+
function applyThemeToDocument(theme) {
|
|
27
|
+
if (typeof document === 'undefined') {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const root = document.documentElement;
|
|
31
|
+
root.classList.remove('light', 'dark');
|
|
32
|
+
const resolvedMode = theme.mode === 'system' ? typeof window !== 'undefined' && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' : theme.mode;
|
|
33
|
+
root.classList.add(resolvedMode);
|
|
34
|
+
if (theme.primaryColor) {
|
|
35
|
+
root.style.setProperty('--app-primary-color', theme.primaryColor);
|
|
36
|
+
}
|
|
37
|
+
if (theme.tokens) {
|
|
38
|
+
Object.entries(theme.tokens).forEach(([token, tokenValue])=>{
|
|
39
|
+
root.style.setProperty(`--${token}`, String(tokenValue));
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
let ThemeManager = class ThemeManager {
|
|
44
|
+
async initialize(context) {
|
|
45
|
+
this.config = context.config.theme;
|
|
46
|
+
this.theme = {
|
|
47
|
+
..._constants.DEFAULT_THEME,
|
|
48
|
+
...this.config.initial || {}
|
|
49
|
+
};
|
|
50
|
+
const persisted = await (0, _persistence.readPersistedValue)(this.config.persistence);
|
|
51
|
+
if (persisted) {
|
|
52
|
+
try {
|
|
53
|
+
const parsed = JSON.parse(persisted);
|
|
54
|
+
this.theme = {
|
|
55
|
+
...this.theme,
|
|
56
|
+
...parsed
|
|
57
|
+
};
|
|
58
|
+
} catch {
|
|
59
|
+
// ignore parse errors
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
applyThemeToDocument(this.theme);
|
|
63
|
+
}
|
|
64
|
+
getTheme() {
|
|
65
|
+
return {
|
|
66
|
+
...this.theme
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
async setTheme(nextTheme) {
|
|
70
|
+
this.theme = {
|
|
71
|
+
...nextTheme
|
|
72
|
+
};
|
|
73
|
+
applyThemeToDocument(this.theme);
|
|
74
|
+
await (0, _persistence.writePersistedValue)(this.config.persistence, JSON.stringify(this.theme));
|
|
75
|
+
}
|
|
76
|
+
getSnapshot() {
|
|
77
|
+
return this.getTheme();
|
|
78
|
+
}
|
|
79
|
+
constructor(){
|
|
80
|
+
_define_property(this, "theme", _constants.DEFAULT_THEME);
|
|
81
|
+
_define_property(this, "config", _constants.DEFAULT_CONFIG.theme);
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
//# sourceMappingURL=themeManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/kernel/manager/themeManager.ts"],"sourcesContent":["import type { KernelConfig, KernelManager, KernelManagerContext, ThemeSnapshot } from '../types';\nimport { DEFAULT_CONFIG, DEFAULT_THEME } from '../constants';\nimport { readPersistedValue, writePersistedValue } from './persistence';\n\nfunction applyThemeToDocument(theme: ThemeSnapshot): void {\n if (typeof document === 'undefined') {\n return;\n }\n\n const root = document.documentElement;\n root.classList.remove('light', 'dark');\n\n const resolvedMode = theme.mode === 'system'\n ? (typeof window !== 'undefined' && window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light')\n : theme.mode;\n\n root.classList.add(resolvedMode);\n\n if (theme.primaryColor) {\n root.style.setProperty('--app-primary-color', theme.primaryColor);\n }\n\n if (theme.tokens) {\n Object.entries(theme.tokens).forEach(([token, tokenValue]) => {\n root.style.setProperty(`--${token}`, String(tokenValue));\n });\n }\n}\n\nexport class ThemeManager implements KernelManager<ThemeSnapshot> {\n private theme: ThemeSnapshot = DEFAULT_THEME;\n private config: KernelConfig['theme'] = DEFAULT_CONFIG.theme;\n\n public async initialize(context: KernelManagerContext): Promise<void> {\n this.config = context.config.theme;\n this.theme = { ...DEFAULT_THEME, ...(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<ThemeSnapshot>;\n this.theme = { ...this.theme, ...parsed };\n } catch {\n // ignore parse errors\n }\n }\n\n applyThemeToDocument(this.theme);\n }\n\n public getTheme(): ThemeSnapshot {\n return { ...this.theme };\n }\n\n public async setTheme(nextTheme: ThemeSnapshot): Promise<void> {\n this.theme = { ...nextTheme };\n applyThemeToDocument(this.theme);\n await writePersistedValue(this.config.persistence, JSON.stringify(this.theme));\n }\n\n public getSnapshot(): ThemeSnapshot {\n return this.getTheme();\n }\n}\n"],"names":["ThemeManager","applyThemeToDocument","theme","document","root","documentElement","classList","remove","resolvedMode","mode","window","matchMedia","matches","add","primaryColor","style","setProperty","tokens","Object","entries","forEach","token","tokenValue","String","initialize","context","config","DEFAULT_THEME","initial","persisted","readPersistedValue","persistence","parsed","JSON","parse","getTheme","setTheme","nextTheme","writePersistedValue","stringify","getSnapshot","DEFAULT_CONFIG"],"mappings":";;;;+BA+BaA;;;eAAAA;;;2BA9BiC;6BACU;;;;;;;;;;;;;;AAExD,SAASC,qBAAqBC,KAAoB;IAChD,IAAI,OAAOC,aAAa,aAAa;QACnC;IACF;IAEA,MAAMC,OAAOD,SAASE,eAAe;IACrCD,KAAKE,SAAS,CAACC,MAAM,CAAC,SAAS;IAE/B,MAAMC,eAAeN,MAAMO,IAAI,KAAK,WAC/B,OAAOC,WAAW,eAAeA,OAAOC,UAAU,CAAC,gCAAgCC,OAAO,GACzF,SACA,UACFV,MAAMO,IAAI;IAEdL,KAAKE,SAAS,CAACO,GAAG,CAACL;IAEnB,IAAIN,MAAMY,YAAY,EAAE;QACtBV,KAAKW,KAAK,CAACC,WAAW,CAAC,uBAAuBd,MAAMY,YAAY;IAClE;IAEA,IAAIZ,MAAMe,MAAM,EAAE;QAChBC,OAAOC,OAAO,CAACjB,MAAMe,MAAM,EAAEG,OAAO,CAAC,CAAC,CAACC,OAAOC,WAAW;YACvDlB,KAAKW,KAAK,CAACC,WAAW,CAAC,CAAC,EAAE,EAAEK,OAAO,EAAEE,OAAOD;QAC9C;IACF;AACF;AAEO,IAAA,AAAMtB,eAAN,MAAMA;IAIX,MAAawB,WAAWC,OAA6B,EAAiB;QACpE,IAAI,CAACC,MAAM,GAAGD,QAAQC,MAAM,CAACxB,KAAK;QAClC,IAAI,CAACA,KAAK,GAAG;YAAE,GAAGyB,wBAAa;YAAE,GAAI,IAAI,CAACD,MAAM,CAACE,OAAO,IAAI,CAAC,CAAC;QAAE;QAEhE,MAAMC,YAAY,MAAMC,IAAAA,+BAAkB,EAAC,IAAI,CAACJ,MAAM,CAACK,WAAW;QAClE,IAAIF,WAAW;YACb,IAAI;gBACF,MAAMG,SAASC,KAAKC,KAAK,CAACL;gBAC1B,IAAI,CAAC3B,KAAK,GAAG;oBAAE,GAAG,IAAI,CAACA,KAAK;oBAAE,GAAG8B,MAAM;gBAAC;YAC1C,EAAE,OAAM;YACN,sBAAsB;YACxB;QACF;QAEA/B,qBAAqB,IAAI,CAACC,KAAK;IACjC;IAEOiC,WAA0B;QAC/B,OAAO;YAAE,GAAG,IAAI,CAACjC,KAAK;QAAC;IACzB;IAEA,MAAakC,SAASC,SAAwB,EAAiB;QAC7D,IAAI,CAACnC,KAAK,GAAG;YAAE,GAAGmC,SAAS;QAAC;QAC5BpC,qBAAqB,IAAI,CAACC,KAAK;QAC/B,MAAMoC,IAAAA,gCAAmB,EAAC,IAAI,CAACZ,MAAM,CAACK,WAAW,EAAEE,KAAKM,SAAS,CAAC,IAAI,CAACrC,KAAK;IAC9E;IAEOsC,cAA6B;QAClC,OAAO,IAAI,CAACL,QAAQ;IACtB;;QAhCA,uBAAQjC,SAAuByB,wBAAa;QAC5C,uBAAQD,UAAgCe,yBAAc,CAACvC,KAAK;;AAgC9D"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { KernelManager, KernelManagerContext, ThemeSnapshot } from '../types';
|
|
2
|
+
export declare class ThemeManager implements KernelManager<ThemeSnapshot> {
|
|
3
|
+
private theme;
|
|
4
|
+
private config;
|
|
5
|
+
initialize(context: KernelManagerContext): Promise<void>;
|
|
6
|
+
getTheme(): ThemeSnapshot;
|
|
7
|
+
setTheme(nextTheme: ThemeSnapshot): Promise<void>;
|
|
8
|
+
getSnapshot(): ThemeSnapshot;
|
|
9
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
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_THEME } from "../constants";
|
|
15
|
+
import { readPersistedValue, writePersistedValue } from "./persistence";
|
|
16
|
+
function applyThemeToDocument(theme) {
|
|
17
|
+
if (typeof document === 'undefined') {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const root = document.documentElement;
|
|
21
|
+
root.classList.remove('light', 'dark');
|
|
22
|
+
const resolvedMode = theme.mode === 'system' ? typeof window !== 'undefined' && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' : theme.mode;
|
|
23
|
+
root.classList.add(resolvedMode);
|
|
24
|
+
if (theme.primaryColor) {
|
|
25
|
+
root.style.setProperty('--app-primary-color', theme.primaryColor);
|
|
26
|
+
}
|
|
27
|
+
if (theme.tokens) {
|
|
28
|
+
Object.entries(theme.tokens).forEach(([token, tokenValue])=>{
|
|
29
|
+
root.style.setProperty(`--${token}`, String(tokenValue));
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export class ThemeManager {
|
|
34
|
+
async initialize(context) {
|
|
35
|
+
this.config = context.config.theme;
|
|
36
|
+
this.theme = {
|
|
37
|
+
...DEFAULT_THEME,
|
|
38
|
+
...this.config.initial || {}
|
|
39
|
+
};
|
|
40
|
+
const persisted = await readPersistedValue(this.config.persistence);
|
|
41
|
+
if (persisted) {
|
|
42
|
+
try {
|
|
43
|
+
const parsed = JSON.parse(persisted);
|
|
44
|
+
this.theme = {
|
|
45
|
+
...this.theme,
|
|
46
|
+
...parsed
|
|
47
|
+
};
|
|
48
|
+
} catch {
|
|
49
|
+
// ignore parse errors
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
applyThemeToDocument(this.theme);
|
|
53
|
+
}
|
|
54
|
+
getTheme() {
|
|
55
|
+
return {
|
|
56
|
+
...this.theme
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
async setTheme(nextTheme) {
|
|
60
|
+
this.theme = {
|
|
61
|
+
...nextTheme
|
|
62
|
+
};
|
|
63
|
+
applyThemeToDocument(this.theme);
|
|
64
|
+
await writePersistedValue(this.config.persistence, JSON.stringify(this.theme));
|
|
65
|
+
}
|
|
66
|
+
getSnapshot() {
|
|
67
|
+
return this.getTheme();
|
|
68
|
+
}
|
|
69
|
+
constructor(){
|
|
70
|
+
_define_property(this, "theme", DEFAULT_THEME);
|
|
71
|
+
_define_property(this, "config", DEFAULT_CONFIG.theme);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
//# sourceMappingURL=themeManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/kernel/manager/themeManager.ts"],"sourcesContent":["import type { KernelConfig, KernelManager, KernelManagerContext, ThemeSnapshot } from '../types';\nimport { DEFAULT_CONFIG, DEFAULT_THEME } from '../constants';\nimport { readPersistedValue, writePersistedValue } from './persistence';\n\nfunction applyThemeToDocument(theme: ThemeSnapshot): void {\n if (typeof document === 'undefined') {\n return;\n }\n\n const root = document.documentElement;\n root.classList.remove('light', 'dark');\n\n const resolvedMode = theme.mode === 'system'\n ? (typeof window !== 'undefined' && window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light')\n : theme.mode;\n\n root.classList.add(resolvedMode);\n\n if (theme.primaryColor) {\n root.style.setProperty('--app-primary-color', theme.primaryColor);\n }\n\n if (theme.tokens) {\n Object.entries(theme.tokens).forEach(([token, tokenValue]) => {\n root.style.setProperty(`--${token}`, String(tokenValue));\n });\n }\n}\n\nexport class ThemeManager implements KernelManager<ThemeSnapshot> {\n private theme: ThemeSnapshot = DEFAULT_THEME;\n private config: KernelConfig['theme'] = DEFAULT_CONFIG.theme;\n\n public async initialize(context: KernelManagerContext): Promise<void> {\n this.config = context.config.theme;\n this.theme = { ...DEFAULT_THEME, ...(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<ThemeSnapshot>;\n this.theme = { ...this.theme, ...parsed };\n } catch {\n // ignore parse errors\n }\n }\n\n applyThemeToDocument(this.theme);\n }\n\n public getTheme(): ThemeSnapshot {\n return { ...this.theme };\n }\n\n public async setTheme(nextTheme: ThemeSnapshot): Promise<void> {\n this.theme = { ...nextTheme };\n applyThemeToDocument(this.theme);\n await writePersistedValue(this.config.persistence, JSON.stringify(this.theme));\n }\n\n public getSnapshot(): ThemeSnapshot {\n return this.getTheme();\n }\n}\n"],"names":["DEFAULT_CONFIG","DEFAULT_THEME","readPersistedValue","writePersistedValue","applyThemeToDocument","theme","document","root","documentElement","classList","remove","resolvedMode","mode","window","matchMedia","matches","add","primaryColor","style","setProperty","tokens","Object","entries","forEach","token","tokenValue","String","ThemeManager","initialize","context","config","initial","persisted","persistence","parsed","JSON","parse","getTheme","setTheme","nextTheme","stringify","getSnapshot"],"mappings":";;;;;;;;;;;;;AACA,SAASA,cAAc,EAAEC,aAAa,QAAQ,eAAe;AAC7D,SAASC,kBAAkB,EAAEC,mBAAmB,QAAQ,gBAAgB;AAExE,SAASC,qBAAqBC,KAAoB;IAChD,IAAI,OAAOC,aAAa,aAAa;QACnC;IACF;IAEA,MAAMC,OAAOD,SAASE,eAAe;IACrCD,KAAKE,SAAS,CAACC,MAAM,CAAC,SAAS;IAE/B,MAAMC,eAAeN,MAAMO,IAAI,KAAK,WAC/B,OAAOC,WAAW,eAAeA,OAAOC,UAAU,CAAC,gCAAgCC,OAAO,GACzF,SACA,UACFV,MAAMO,IAAI;IAEdL,KAAKE,SAAS,CAACO,GAAG,CAACL;IAEnB,IAAIN,MAAMY,YAAY,EAAE;QACtBV,KAAKW,KAAK,CAACC,WAAW,CAAC,uBAAuBd,MAAMY,YAAY;IAClE;IAEA,IAAIZ,MAAMe,MAAM,EAAE;QAChBC,OAAOC,OAAO,CAACjB,MAAMe,MAAM,EAAEG,OAAO,CAAC,CAAC,CAACC,OAAOC,WAAW;YACvDlB,KAAKW,KAAK,CAACC,WAAW,CAAC,CAAC,EAAE,EAAEK,OAAO,EAAEE,OAAOD;QAC9C;IACF;AACF;AAEA,OAAO,MAAME;IAIX,MAAaC,WAAWC,OAA6B,EAAiB;QACpE,IAAI,CAACC,MAAM,GAAGD,QAAQC,MAAM,CAACzB,KAAK;QAClC,IAAI,CAACA,KAAK,GAAG;YAAE,GAAGJ,aAAa;YAAE,GAAI,IAAI,CAAC6B,MAAM,CAACC,OAAO,IAAI,CAAC,CAAC;QAAE;QAEhE,MAAMC,YAAY,MAAM9B,mBAAmB,IAAI,CAAC4B,MAAM,CAACG,WAAW;QAClE,IAAID,WAAW;YACb,IAAI;gBACF,MAAME,SAASC,KAAKC,KAAK,CAACJ;gBAC1B,IAAI,CAAC3B,KAAK,GAAG;oBAAE,GAAG,IAAI,CAACA,KAAK;oBAAE,GAAG6B,MAAM;gBAAC;YAC1C,EAAE,OAAM;YACN,sBAAsB;YACxB;QACF;QAEA9B,qBAAqB,IAAI,CAACC,KAAK;IACjC;IAEOgC,WAA0B;QAC/B,OAAO;YAAE,GAAG,IAAI,CAAChC,KAAK;QAAC;IACzB;IAEA,MAAaiC,SAASC,SAAwB,EAAiB;QAC7D,IAAI,CAAClC,KAAK,GAAG;YAAE,GAAGkC,SAAS;QAAC;QAC5BnC,qBAAqB,IAAI,CAACC,KAAK;QAC/B,MAAMF,oBAAoB,IAAI,CAAC2B,MAAM,CAACG,WAAW,EAAEE,KAAKK,SAAS,CAAC,IAAI,CAACnC,KAAK;IAC9E;IAEOoC,cAA6B;QAClC,OAAO,IAAI,CAACJ,QAAQ;IACtB;;QAhCA,uBAAQhC,SAAuBJ;QAC/B,uBAAQ6B,UAAgC9B,eAAeK,KAAK;;AAgC9D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/kernel/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { LogLevel } from '../utils';
|
|
2
|
+
import type { LangType } from '../library/locale/types';
|
|
3
|
+
import type { StartOptions as CoreStartOptions } from '../core/types';
|
|
4
|
+
import type { StorageOptions } from '../types';
|
|
5
|
+
export type KernelInstanceId = string;
|
|
6
|
+
export type KernelStorageDriver = 'localStorage' | 'sessionStorage' | 'indexedDB' | 'none';
|
|
7
|
+
export interface ThemeSnapshot {
|
|
8
|
+
mode: 'light' | 'dark' | 'system';
|
|
9
|
+
primaryColor?: string;
|
|
10
|
+
tokens?: Record<string, string | number>;
|
|
11
|
+
}
|
|
12
|
+
export interface I18nSnapshot {
|
|
13
|
+
locale: LangType;
|
|
14
|
+
resources?: Record<LangType, Record<string, unknown>>;
|
|
15
|
+
}
|
|
16
|
+
export interface PersistenceOptions {
|
|
17
|
+
enabled?: boolean;
|
|
18
|
+
storage?: KernelStorageDriver;
|
|
19
|
+
key?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface LoggerManagerConfig {
|
|
22
|
+
level?: LogLevel;
|
|
23
|
+
persistence?: PersistenceOptions;
|
|
24
|
+
}
|
|
25
|
+
export interface CacheManagerConfig {
|
|
26
|
+
enabled?: boolean;
|
|
27
|
+
storageOptions?: Partial<StorageOptions>;
|
|
28
|
+
}
|
|
29
|
+
export interface ThemeManagerConfig {
|
|
30
|
+
initial?: ThemeSnapshot;
|
|
31
|
+
persistence?: PersistenceOptions;
|
|
32
|
+
}
|
|
33
|
+
export interface I18nManagerConfig {
|
|
34
|
+
initial?: I18nSnapshot;
|
|
35
|
+
persistence?: PersistenceOptions;
|
|
36
|
+
}
|
|
37
|
+
export interface KernelConfig {
|
|
38
|
+
logger: LoggerManagerConfig;
|
|
39
|
+
cache: CacheManagerConfig;
|
|
40
|
+
theme: ThemeManagerConfig;
|
|
41
|
+
i18n: I18nManagerConfig;
|
|
42
|
+
}
|
|
43
|
+
export interface KernelTimingMetric {
|
|
44
|
+
phase: string;
|
|
45
|
+
startTime: number;
|
|
46
|
+
endTime: number;
|
|
47
|
+
duration: number;
|
|
48
|
+
}
|
|
49
|
+
export interface KernelManagerContext {
|
|
50
|
+
instanceId: KernelInstanceId;
|
|
51
|
+
config: KernelConfig;
|
|
52
|
+
}
|
|
53
|
+
export interface KernelManager<TSnapshot = unknown> {
|
|
54
|
+
initialize: (context: KernelManagerContext) => Promise<void> | void;
|
|
55
|
+
getSnapshot?: () => TSnapshot;
|
|
56
|
+
destroy?: () => Promise<void> | void;
|
|
57
|
+
}
|
|
58
|
+
export interface KernelRenderContext {
|
|
59
|
+
instanceId: KernelInstanceId;
|
|
60
|
+
config: KernelConfig;
|
|
61
|
+
}
|
|
62
|
+
export interface StartupHooks {
|
|
63
|
+
initialize?: () => Promise<void> | void;
|
|
64
|
+
}
|
|
65
|
+
export interface StartOptions extends CoreStartOptions {
|
|
66
|
+
config?: Partial<KernelConfig>;
|
|
67
|
+
configLoader?: () => Promise<Partial<KernelConfig> | void> | Partial<KernelConfig> | void;
|
|
68
|
+
render?: (context: KernelRenderContext) => Promise<void> | void;
|
|
69
|
+
customManagers?: Record<string, KernelManager>;
|
|
70
|
+
hooks?: StartupHooks;
|
|
71
|
+
}
|
|
72
|
+
export type KernelStartOptions = StartOptions;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/kernel/types.ts"],"sourcesContent":["import type { LogLevel } from '../utils';\nimport type { LangType } from '../library/locale/types';\nimport type { StartOptions as CoreStartOptions } from '../core/types';\nimport type { StorageOptions } from '../types';\n\nexport type KernelInstanceId = string;\nexport type KernelStorageDriver = 'localStorage' | 'sessionStorage' | 'indexedDB' | 'none';\n\nexport interface ThemeSnapshot {\n mode: 'light' | 'dark' | 'system';\n primaryColor?: string;\n tokens?: Record<string, string | number>;\n}\n\nexport interface I18nSnapshot {\n locale: LangType;\n resources?: Record<LangType, Record<string, unknown>>;\n}\n\nexport interface PersistenceOptions {\n enabled?: boolean;\n storage?: KernelStorageDriver;\n key?: string;\n}\n\nexport interface LoggerManagerConfig {\n level?: LogLevel;\n persistence?: PersistenceOptions;\n}\n\nexport interface CacheManagerConfig {\n enabled?: boolean;\n storageOptions?: Partial<StorageOptions>;\n}\n\nexport interface ThemeManagerConfig {\n initial?: ThemeSnapshot;\n persistence?: PersistenceOptions;\n}\n\nexport interface I18nManagerConfig {\n initial?: I18nSnapshot;\n persistence?: PersistenceOptions;\n}\n\nexport interface KernelConfig {\n logger: LoggerManagerConfig;\n cache: CacheManagerConfig;\n theme: ThemeManagerConfig;\n i18n: I18nManagerConfig;\n}\n\nexport interface KernelTimingMetric {\n phase: string;\n startTime: number;\n endTime: number;\n duration: number;\n}\n\nexport interface KernelManagerContext {\n instanceId: KernelInstanceId;\n config: KernelConfig;\n}\n\nexport interface KernelManager<TSnapshot = unknown> {\n initialize: (context: KernelManagerContext) => Promise<void> | void;\n getSnapshot?: () => TSnapshot;\n destroy?: () => Promise<void> | void;\n}\n\nexport interface KernelRenderContext {\n instanceId: KernelInstanceId;\n config: KernelConfig;\n}\n\nexport interface StartupHooks {\n initialize?: () => Promise<void> | void;\n}\n\nexport interface StartOptions extends CoreStartOptions {\n config?: Partial<KernelConfig>;\n configLoader?: () => Promise<Partial<KernelConfig> | void> | Partial<KernelConfig> | void;\n render?: (context: KernelRenderContext) => Promise<void> | void;\n customManagers?: Record<string, KernelManager>;\n hooks?: StartupHooks;\n}\n\nexport type KernelStartOptions = StartOptions;\n"],"names":[],"mappings":"AAuFA,WAA8C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@vlian/request/adapter';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@vlian/request/core';
|