@vlian/framework 1.2.37 → 1.2.38
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 +1 -1
- package/dist/core/Test.cjs +2 -2
- package/dist/core/Test.cjs.map +1 -1
- package/dist/core/Test.js +1 -1
- package/dist/core/Test.js.map +1 -1
- package/dist/core/config/ConfigLoader.cjs +7 -7
- package/dist/core/config/ConfigLoader.cjs.map +1 -1
- package/dist/core/config/ConfigLoader.js +1 -1
- package/dist/core/config/ConfigLoader.js.map +1 -1
- package/dist/core/error/ErrorBoundary.cjs +6 -6
- package/dist/core/error/ErrorBoundary.cjs.map +1 -1
- package/dist/core/error/ErrorBoundary.d.ts +1 -1
- package/dist/core/error/ErrorBoundary.js +2 -2
- package/dist/core/error/ErrorBoundary.js.map +1 -1
- package/dist/core/error/ErrorHandler.cjs +19 -19
- package/dist/core/error/ErrorHandler.cjs.map +1 -1
- package/dist/core/error/ErrorHandler.d.ts +1 -1
- package/dist/core/error/ErrorHandler.js +2 -2
- package/dist/core/error/ErrorHandler.js.map +1 -1
- package/dist/core/event/AppEventBus.cjs +5 -5
- package/dist/core/event/AppEventBus.cjs.map +1 -1
- package/dist/core/event/AppEventBus.js +1 -1
- package/dist/core/event/AppEventBus.js.map +1 -1
- package/dist/core/initialization/InitializationErrorThrower.cjs.map +1 -1
- package/dist/core/initialization/InitializationErrorThrower.js.map +1 -1
- package/dist/core/initialization/initialization.cjs +3 -3
- package/dist/core/initialization/initialization.cjs.map +1 -1
- package/dist/core/initialization/initialization.d.ts +1 -1
- package/dist/core/initialization/initialization.js +1 -1
- package/dist/core/initialization/initialization.js.map +1 -1
- package/dist/core/initialization/initializationErrorState.cjs +2 -2
- package/dist/core/initialization/initializationErrorState.cjs.map +1 -1
- package/dist/core/initialization/initializationErrorState.d.ts +1 -1
- package/dist/core/initialization/initializationErrorState.js +1 -1
- package/dist/core/initialization/initializationErrorState.js.map +1 -1
- package/dist/core/kernel/defaultAdapters.cjs +14 -13
- package/dist/core/kernel/defaultAdapters.cjs.map +1 -1
- package/dist/core/kernel/defaultAdapters.js +2 -1
- package/dist/core/kernel/defaultAdapters.js.map +1 -1
- package/dist/core/kernel/types.d.ts +1 -1
- package/dist/core/kernel/types.js.map +1 -1
- package/dist/core/router/RouterManager.cjs +9 -9
- package/dist/core/router/RouterManager.cjs.map +1 -1
- package/dist/core/router/RouterManager.js +1 -1
- package/dist/core/router/RouterManager.js.map +1 -1
- package/dist/core/router/adapter/AdapterManager.cjs +10 -10
- package/dist/core/router/adapter/AdapterManager.cjs.map +1 -1
- package/dist/core/router/adapter/AdapterManager.js +1 -1
- package/dist/core/router/adapter/AdapterManager.js.map +1 -1
- package/dist/core/router/adapter/react-router/ReactRouterAdapter.cjs +4 -4
- package/dist/core/router/adapter/react-router/ReactRouterAdapter.cjs.map +1 -1
- package/dist/core/router/adapter/react-router/ReactRouterAdapter.js +1 -1
- package/dist/core/router/adapter/react-router/ReactRouterAdapter.js.map +1 -1
- package/dist/core/router/dynamic/DynamicRouteManager.cjs +8 -8
- package/dist/core/router/dynamic/DynamicRouteManager.cjs.map +1 -1
- package/dist/core/router/dynamic/DynamicRouteManager.js +1 -1
- package/dist/core/router/dynamic/DynamicRouteManager.js.map +1 -1
- package/dist/core/router/errors/RouterError.cjs +4 -4
- package/dist/core/router/errors/RouterError.cjs.map +1 -1
- package/dist/core/router/errors/RouterError.d.ts +1 -1
- package/dist/core/router/errors/RouterError.js +1 -1
- package/dist/core/router/errors/RouterError.js.map +1 -1
- package/dist/core/router/lifecycle/RouterLifecycleManager.cjs +8 -8
- package/dist/core/router/lifecycle/RouterLifecycleManager.cjs.map +1 -1
- package/dist/core/router/lifecycle/RouterLifecycleManager.js +1 -1
- package/dist/core/router/lifecycle/RouterLifecycleManager.js.map +1 -1
- package/dist/core/router/middleware/RouterMiddlewareManager.cjs +11 -11
- package/dist/core/router/middleware/RouterMiddlewareManager.cjs.map +1 -1
- package/dist/core/router/middleware/RouterMiddlewareManager.js +1 -1
- package/dist/core/router/middleware/RouterMiddlewareManager.js.map +1 -1
- package/dist/core/router/middleware/auth.cjs +4 -4
- package/dist/core/router/middleware/auth.cjs.map +1 -1
- package/dist/core/router/middleware/auth.js +1 -1
- package/dist/core/router/middleware/auth.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/navigation/RouterNavigation.cjs +7 -7
- package/dist/core/router/navigation/RouterNavigation.cjs.map +1 -1
- package/dist/core/router/navigation/RouterNavigation.js +1 -1
- package/dist/core/router/navigation/RouterNavigation.js.map +1 -1
- package/dist/core/router/performance/RouteCache.cjs +7 -7
- package/dist/core/router/performance/RouteCache.cjs.map +1 -1
- package/dist/core/router/performance/RouteCache.js +1 -1
- package/dist/core/router/performance/RouteCache.js.map +1 -1
- package/dist/core/router/performance/RoutePreloader.cjs +6 -6
- package/dist/core/router/performance/RoutePreloader.cjs.map +1 -1
- package/dist/core/router/performance/RoutePreloader.js +1 -1
- package/dist/core/router/performance/RoutePreloader.js.map +1 -1
- package/dist/core/router/plugin/RouterPluginManager.cjs +8 -8
- package/dist/core/router/plugin/RouterPluginManager.cjs.map +1 -1
- package/dist/core/router/plugin/RouterPluginManager.js +1 -1
- package/dist/core/router/plugin/RouterPluginManager.js.map +1 -1
- package/dist/core/router/utils/adapters/react-router/transform.cjs +2 -2
- package/dist/core/router/utils/adapters/react-router/transform.cjs.map +1 -1
- package/dist/core/router/utils/adapters/react-router/transform.js +1 -1
- package/dist/core/router/utils/adapters/react-router/transform.js.map +1 -1
- package/dist/core/router/utils/transform.cjs +13 -12
- package/dist/core/router/utils/transform.cjs.map +1 -1
- package/dist/core/router/utils/transform.js +2 -1
- package/dist/core/router/utils/transform.js.map +1 -1
- package/dist/core/router/validation/RouterConfigValidator.cjs +2 -2
- package/dist/core/router/validation/RouterConfigValidator.cjs.map +1 -1
- package/dist/core/router/validation/RouterConfigValidator.js +1 -1
- package/dist/core/router/validation/RouterConfigValidator.js.map +1 -1
- package/dist/core/router/version/RouteVersionManager.cjs +6 -6
- package/dist/core/router/version/RouteVersionManager.cjs.map +1 -1
- package/dist/core/router/version/RouteVersionManager.js +1 -1
- package/dist/core/router/version/RouteVersionManager.js.map +1 -1
- package/dist/core/splash/SplashScreen.cjs +4 -4
- package/dist/core/splash/SplashScreen.cjs.map +1 -1
- package/dist/core/splash/SplashScreen.js +1 -1
- package/dist/core/splash/SplashScreen.js.map +1 -1
- package/dist/core/startup/initializeServices.cjs +14 -14
- package/dist/core/startup/initializeServices.cjs.map +1 -1
- package/dist/core/startup/initializeServices.d.ts +1 -1
- package/dist/core/startup/initializeServices.js +2 -2
- package/dist/core/startup/initializeServices.js.map +1 -1
- package/dist/core/startup/renderApp.cjs +2 -2
- package/dist/core/startup/renderApp.cjs.map +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 +22 -22
- package/dist/core/startup/startApp.cjs.map +1 -1
- package/dist/core/startup/startApp.js +2 -2
- package/dist/core/startup/startApp.js.map +1 -1
- package/dist/core/types.d.ts +2 -2
- package/dist/core/types.js.map +1 -1
- package/dist/index.umd.js +1394 -1401
- package/dist/index.umd.js.map +1 -1
- package/dist/kernel/constants.cjs +2 -2
- package/dist/kernel/constants.cjs.map +1 -1
- package/dist/kernel/constants.js +1 -1
- package/dist/kernel/constants.js.map +1 -1
- package/dist/kernel/manager/loggerManager.cjs +10 -10
- package/dist/kernel/manager/loggerManager.cjs.map +1 -1
- package/dist/kernel/manager/loggerManager.d.ts +1 -1
- package/dist/kernel/manager/loggerManager.js +1 -1
- package/dist/kernel/manager/loggerManager.js.map +1 -1
- package/dist/kernel/types.d.ts +1 -1
- package/dist/kernel/types.js.map +1 -1
- package/dist/library/storage/encryption.cjs +12 -13
- package/dist/library/storage/encryption.cjs.map +1 -1
- package/dist/library/storage/encryption.js +1 -2
- package/dist/library/storage/encryption.js.map +1 -1
- package/dist/state.umd.js +1 -1
- package/dist/utils/errors.cjs +71 -15
- package/dist/utils/errors.cjs.map +1 -1
- package/dist/utils/errors.d.ts +30 -1
- package/dist/utils/errors.js +16 -1
- package/dist/utils/errors.js.map +1 -1
- package/package.json +1 -1
|
@@ -22,7 +22,7 @@ _export(exports, {
|
|
|
22
22
|
return DEFAULT_THEME;
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
|
-
const
|
|
25
|
+
const _logger = require("@vlian/logger");
|
|
26
26
|
const DEFAULT_INSTANCE_ID = 'default';
|
|
27
27
|
const DEFAULT_THEME = {
|
|
28
28
|
mode: 'light'
|
|
@@ -32,7 +32,7 @@ const DEFAULT_I18N = {
|
|
|
32
32
|
};
|
|
33
33
|
const DEFAULT_CONFIG = {
|
|
34
34
|
logger: {
|
|
35
|
-
level:
|
|
35
|
+
level: _logger.LogLevel.INFO,
|
|
36
36
|
persistence: {
|
|
37
37
|
enabled: true,
|
|
38
38
|
storage: 'localStorage',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/kernel/constants.ts"],"sourcesContent":["import { LogLevel } from '
|
|
1
|
+
{"version":3,"sources":["../../src/kernel/constants.ts"],"sourcesContent":["import { LogLevel } from '@vlian/logger';\nimport type { I18nSnapshot, KernelConfig, ThemeSnapshot } from './types';\n\nexport const DEFAULT_INSTANCE_ID = 'default';\nexport const DEFAULT_THEME: ThemeSnapshot = { mode: 'light' };\nexport const DEFAULT_I18N: I18nSnapshot = { locale: 'zh-CN' };\n\nexport const DEFAULT_CONFIG: KernelConfig = {\n logger: {\n level: LogLevel.INFO,\n persistence: { enabled: true, storage: 'localStorage', key: 'vlian:kernel:logger-level' },\n },\n cache: {\n enabled: true,\n storageOptions: {\n prefix: 'vlian',\n defaultExpire: 24 * 60 * 60 * 1000,\n },\n },\n theme: {\n initial: DEFAULT_THEME,\n persistence: { enabled: true, storage: 'localStorage', key: 'vlian:kernel:theme' },\n },\n i18n: {\n initial: DEFAULT_I18N,\n persistence: { enabled: true, storage: 'localStorage', key: 'vlian:kernel:i18n' },\n },\n};\n"],"names":["DEFAULT_CONFIG","DEFAULT_I18N","DEFAULT_INSTANCE_ID","DEFAULT_THEME","mode","locale","logger","level","LogLevel","INFO","persistence","enabled","storage","key","cache","storageOptions","prefix","defaultExpire","theme","initial","i18n"],"mappings":";;;;;;;;;;;QAOaA;eAAAA;;QAFAC;eAAAA;;QAFAC;eAAAA;;QACAC;eAAAA;;;wBAJY;AAGlB,MAAMD,sBAAsB;AAC5B,MAAMC,gBAA+B;IAAEC,MAAM;AAAQ;AACrD,MAAMH,eAA6B;IAAEI,QAAQ;AAAQ;AAErD,MAAML,iBAA+B;IAC1CM,QAAQ;QACNC,OAAOC,gBAAQ,CAACC,IAAI;QACpBC,aAAa;YAAEC,SAAS;YAAMC,SAAS;YAAgBC,KAAK;QAA4B;IAC1F;IACAC,OAAO;QACLH,SAAS;QACTI,gBAAgB;YACdC,QAAQ;YACRC,eAAe,KAAK,KAAK,KAAK;QAChC;IACF;IACAC,OAAO;QACLC,SAAShB;QACTO,aAAa;YAAEC,SAAS;YAAMC,SAAS;YAAgBC,KAAK;QAAqB;IACnF;IACAO,MAAM;QACJD,SAASlB;QACTS,aAAa;YAAEC,SAAS;YAAMC,SAAS;YAAgBC,KAAK;QAAoB;IAClF;AACF"}
|
package/dist/kernel/constants.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/kernel/constants.ts"],"sourcesContent":["import { LogLevel } from '
|
|
1
|
+
{"version":3,"sources":["../../src/kernel/constants.ts"],"sourcesContent":["import { LogLevel } from '@vlian/logger';\nimport type { I18nSnapshot, KernelConfig, ThemeSnapshot } from './types';\n\nexport const DEFAULT_INSTANCE_ID = 'default';\nexport const DEFAULT_THEME: ThemeSnapshot = { mode: 'light' };\nexport const DEFAULT_I18N: I18nSnapshot = { locale: 'zh-CN' };\n\nexport const DEFAULT_CONFIG: KernelConfig = {\n logger: {\n level: LogLevel.INFO,\n persistence: { enabled: true, storage: 'localStorage', key: 'vlian:kernel:logger-level' },\n },\n cache: {\n enabled: true,\n storageOptions: {\n prefix: 'vlian',\n defaultExpire: 24 * 60 * 60 * 1000,\n },\n },\n theme: {\n initial: DEFAULT_THEME,\n persistence: { enabled: true, storage: 'localStorage', key: 'vlian:kernel:theme' },\n },\n i18n: {\n initial: DEFAULT_I18N,\n persistence: { enabled: true, storage: 'localStorage', key: 'vlian:kernel:i18n' },\n },\n};\n"],"names":["LogLevel","DEFAULT_INSTANCE_ID","DEFAULT_THEME","mode","DEFAULT_I18N","locale","DEFAULT_CONFIG","logger","level","INFO","persistence","enabled","storage","key","cache","storageOptions","prefix","defaultExpire","theme","initial","i18n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,gBAAgB;AAGzC,OAAO,MAAMC,sBAAsB,UAAU;AAC7C,OAAO,MAAMC,gBAA+B;IAAEC,MAAM;AAAQ,EAAE;AAC9D,OAAO,MAAMC,eAA6B;IAAEC,QAAQ;AAAQ,EAAE;AAE9D,OAAO,MAAMC,iBAA+B;IAC1CC,QAAQ;QACNC,OAAOR,SAASS,IAAI;QACpBC,aAAa;YAAEC,SAAS;YAAMC,SAAS;YAAgBC,KAAK;QAA4B;IAC1F;IACAC,OAAO;QACLH,SAAS;QACTI,gBAAgB;YACdC,QAAQ;YACRC,eAAe,KAAK,KAAK,KAAK;QAChC;IACF;IACAC,OAAO;QACLC,SAASjB;QACTQ,aAAa;YAAEC,SAAS;YAAMC,SAAS;YAAgBC,KAAK;QAAqB;IACnF;IACAO,MAAM;QACJD,SAASf;QACTM,aAAa;YAAEC,SAAS;YAAMC,SAAS;YAAgBC,KAAK;QAAoB;IAClF;AACF,EAAE"}
|
|
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "LoggerManager", {
|
|
|
8
8
|
return LoggerManager;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
const
|
|
11
|
+
const _logger = require("@vlian/logger");
|
|
12
12
|
const _constants = require("../constants");
|
|
13
13
|
const _persistence = require("./persistence");
|
|
14
14
|
function _define_property(obj, key, value) {
|
|
@@ -30,13 +30,13 @@ function normalizeLogLevel(value, fallback) {
|
|
|
30
30
|
}
|
|
31
31
|
switch(value.toUpperCase()){
|
|
32
32
|
case 'DEBUG':
|
|
33
|
-
return
|
|
33
|
+
return _logger.LogLevel.DEBUG;
|
|
34
34
|
case 'INFO':
|
|
35
|
-
return
|
|
35
|
+
return _logger.LogLevel.INFO;
|
|
36
36
|
case 'WARN':
|
|
37
|
-
return
|
|
37
|
+
return _logger.LogLevel.WARN;
|
|
38
38
|
case 'ERROR':
|
|
39
|
-
return
|
|
39
|
+
return _logger.LogLevel.ERROR;
|
|
40
40
|
default:
|
|
41
41
|
return fallback;
|
|
42
42
|
}
|
|
@@ -45,15 +45,15 @@ let LoggerManager = class LoggerManager {
|
|
|
45
45
|
async initialize(context) {
|
|
46
46
|
this.config = context.config.logger;
|
|
47
47
|
const persisted = await (0, _persistence.readPersistedValue)(this.config.persistence);
|
|
48
|
-
this.level = normalizeLogLevel(persisted, this.config.level ??
|
|
49
|
-
|
|
48
|
+
this.level = normalizeLogLevel(persisted, this.config.level ?? _logger.LogLevel.INFO);
|
|
49
|
+
_logger.logger.setLevel(this.level);
|
|
50
50
|
}
|
|
51
51
|
debug(message, payload) {
|
|
52
|
-
|
|
52
|
+
_logger.logger.debug(message, payload);
|
|
53
53
|
}
|
|
54
54
|
async setLevel(level) {
|
|
55
55
|
this.level = level;
|
|
56
|
-
|
|
56
|
+
_logger.logger.setLevel(level);
|
|
57
57
|
await (0, _persistence.writePersistedValue)(this.config.persistence, String(level));
|
|
58
58
|
}
|
|
59
59
|
getSnapshot() {
|
|
@@ -62,7 +62,7 @@ let LoggerManager = class LoggerManager {
|
|
|
62
62
|
};
|
|
63
63
|
}
|
|
64
64
|
constructor(){
|
|
65
|
-
_define_property(this, "level",
|
|
65
|
+
_define_property(this, "level", _logger.LogLevel.INFO);
|
|
66
66
|
_define_property(this, "config", _constants.DEFAULT_CONFIG.logger);
|
|
67
67
|
}
|
|
68
68
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/kernel/manager/loggerManager.ts"],"sourcesContent":["import { logger, LogLevel } from '
|
|
1
|
+
{"version":3,"sources":["../../../src/kernel/manager/loggerManager.ts"],"sourcesContent":["import { logger, LogLevel } from '@vlian/logger';\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;;;wBAxBoB;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,gBAAQ,CAACC,KAAK;QACvB,KAAK;YACH,OAAOD,gBAAQ,CAACE,IAAI;QACtB,KAAK;YACH,OAAOF,gBAAQ,CAACG,IAAI;QACtB,KAAK;YACH,OAAOH,gBAAQ,CAACI,KAAK;QACvB;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,gBAAQ,CAACE,IAAI;QAC5EM,cAAM,CAACK,QAAQ,CAAC,IAAI,CAACD,KAAK;IAC5B;IAEOE,MAAMC,OAAe,EAAEC,OAAiB,EAAQ;QACrDR,cAAM,CAACM,KAAK,CAACC,SAASC;IACxB;IAEA,MAAaH,SAASD,KAAe,EAAiB;QACpD,IAAI,CAACA,KAAK,GAAGA;QACbJ,cAAM,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,gBAAQ,CAACE,IAAI;QACvC,uBAAQK,UAAiCa,yBAAc,CAACZ,MAAM;;AAsBhE"}
|
|
@@ -11,7 +11,7 @@ function _define_property(obj, key, value) {
|
|
|
11
11
|
}
|
|
12
12
|
return obj;
|
|
13
13
|
}
|
|
14
|
-
import { logger, LogLevel } from "
|
|
14
|
+
import { logger, LogLevel } from "@vlian/logger";
|
|
15
15
|
import { DEFAULT_CONFIG } from "../constants";
|
|
16
16
|
import { readPersistedValue, writePersistedValue } from "./persistence";
|
|
17
17
|
function normalizeLogLevel(value, fallback) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/kernel/manager/loggerManager.ts"],"sourcesContent":["import { logger, LogLevel } from '
|
|
1
|
+
{"version":3,"sources":["../../../src/kernel/manager/loggerManager.ts"],"sourcesContent":["import { logger, LogLevel } from '@vlian/logger';\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,gBAAgB;AAEjD,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"}
|
package/dist/kernel/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { LogLevel } from '
|
|
1
|
+
import type { LogLevel } from '@vlian/logger';
|
|
2
2
|
import type { LangType } from '../library/locale/types';
|
|
3
3
|
import type { StartOptions as CoreStartOptions } from '../core/types';
|
|
4
4
|
import type { StorageOptions } from '../types';
|
package/dist/kernel/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/kernel/types.ts"],"sourcesContent":["import type { LogLevel } from '
|
|
1
|
+
{"version":3,"sources":["../../src/kernel/types.ts"],"sourcesContent":["import type { LogLevel } from '@vlian/logger';\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"}
|
|
@@ -8,14 +8,13 @@ Object.defineProperty(exports, "EncryptionUtils", {
|
|
|
8
8
|
return EncryptionUtils;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
const
|
|
12
|
-
const _errors = require("../../utils/errors");
|
|
11
|
+
const _utils = require("@vlian/utils");
|
|
13
12
|
let EncryptionUtils = class EncryptionUtils {
|
|
14
13
|
/**
|
|
15
14
|
* 生成加密密钥
|
|
16
15
|
*/ static async generateKey() {
|
|
17
16
|
if (typeof window === 'undefined' || !window.crypto || !window.crypto.subtle) {
|
|
18
|
-
throw new
|
|
17
|
+
throw new _utils.StorageError('加密功能需要浏览器支持 Web Crypto API');
|
|
19
18
|
}
|
|
20
19
|
try {
|
|
21
20
|
return await window.crypto.subtle.generateKey({
|
|
@@ -26,14 +25,14 @@ let EncryptionUtils = class EncryptionUtils {
|
|
|
26
25
|
'decrypt'
|
|
27
26
|
]);
|
|
28
27
|
} catch (error) {
|
|
29
|
-
throw new
|
|
28
|
+
throw new _utils.StorageError('生成加密密钥失败', error instanceof Error ? error : undefined);
|
|
30
29
|
}
|
|
31
30
|
}
|
|
32
31
|
/**
|
|
33
32
|
* 使用 PBKDF2 派生密钥
|
|
34
33
|
*/ static async deriveKey(password, salt, iterations = 100000) {
|
|
35
34
|
if (typeof window === 'undefined' || !window.crypto || !window.crypto.subtle) {
|
|
36
|
-
throw new
|
|
35
|
+
throw new _utils.StorageError('加密功能需要浏览器支持 Web Crypto API');
|
|
37
36
|
}
|
|
38
37
|
try {
|
|
39
38
|
// 导入密码
|
|
@@ -58,7 +57,7 @@ let EncryptionUtils = class EncryptionUtils {
|
|
|
58
57
|
'decrypt'
|
|
59
58
|
]);
|
|
60
59
|
} catch (error) {
|
|
61
|
-
throw new
|
|
60
|
+
throw new _utils.StorageError('密钥派生失败', error instanceof Error ? error : undefined);
|
|
62
61
|
}
|
|
63
62
|
}
|
|
64
63
|
/**
|
|
@@ -68,7 +67,7 @@ let EncryptionUtils = class EncryptionUtils {
|
|
|
68
67
|
* 建议在生产环境中使用固定的 salt 或从安全存储中获取。
|
|
69
68
|
*/ static async importKey(keyString, salt) {
|
|
70
69
|
if (typeof window === 'undefined' || !window.crypto || !window.crypto.subtle) {
|
|
71
|
-
throw new
|
|
70
|
+
throw new _utils.StorageError('加密功能需要浏览器支持 Web Crypto API');
|
|
72
71
|
}
|
|
73
72
|
try {
|
|
74
73
|
// 如果没有提供 salt,尝试从 sessionStorage 获取或生成一个固定的
|
|
@@ -90,14 +89,14 @@ let EncryptionUtils = class EncryptionUtils {
|
|
|
90
89
|
// 使用 PBKDF2 派生密钥
|
|
91
90
|
return await this.deriveKey(keyString, keySalt);
|
|
92
91
|
} catch (error) {
|
|
93
|
-
throw new
|
|
92
|
+
throw new _utils.StorageError('导入加密密钥失败', error instanceof Error ? error : undefined);
|
|
94
93
|
}
|
|
95
94
|
}
|
|
96
95
|
/**
|
|
97
96
|
* 加密数据
|
|
98
97
|
*/ static async encrypt(data, key) {
|
|
99
98
|
if (typeof window === 'undefined' || !window.crypto || !window.crypto.subtle) {
|
|
100
|
-
throw new
|
|
99
|
+
throw new _utils.StorageError('加密功能需要浏览器支持 Web Crypto API');
|
|
101
100
|
}
|
|
102
101
|
try {
|
|
103
102
|
const encoder = new TextEncoder();
|
|
@@ -115,14 +114,14 @@ let EncryptionUtils = class EncryptionUtils {
|
|
|
115
114
|
// 转换为 Base64
|
|
116
115
|
return btoa(String.fromCharCode(...combined));
|
|
117
116
|
} catch (error) {
|
|
118
|
-
throw new
|
|
117
|
+
throw new _utils.StorageError('加密数据失败', error instanceof Error ? error : undefined);
|
|
119
118
|
}
|
|
120
119
|
}
|
|
121
120
|
/**
|
|
122
121
|
* 解密数据
|
|
123
122
|
*/ static async decrypt(encryptedData, key) {
|
|
124
123
|
if (typeof window === 'undefined' || !window.crypto || !window.crypto.subtle) {
|
|
125
|
-
throw new
|
|
124
|
+
throw new _utils.StorageError('解密功能需要浏览器支持 Web Crypto API');
|
|
126
125
|
}
|
|
127
126
|
try {
|
|
128
127
|
// 从 Base64 解码
|
|
@@ -137,13 +136,13 @@ let EncryptionUtils = class EncryptionUtils {
|
|
|
137
136
|
const decoder = new TextDecoder();
|
|
138
137
|
return decoder.decode(decrypted);
|
|
139
138
|
} catch (error) {
|
|
140
|
-
throw new
|
|
139
|
+
throw new _utils.StorageError('解密数据失败', error instanceof Error ? error : undefined);
|
|
141
140
|
}
|
|
142
141
|
}
|
|
143
142
|
/**
|
|
144
143
|
* 检查字段是否需要加密
|
|
145
144
|
*/ static shouldEncrypt(key) {
|
|
146
|
-
return
|
|
145
|
+
return _utils.SecurityUtils.isSensitiveField(key);
|
|
147
146
|
}
|
|
148
147
|
};
|
|
149
148
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/library/storage/encryption.ts"],"sourcesContent":["import { SecurityUtils
|
|
1
|
+
{"version":3,"sources":["../../../src/library/storage/encryption.ts"],"sourcesContent":["import { SecurityUtils, StorageError } from '@vlian/utils';\n\n/**\n * 加密配置\n */\nexport interface EncryptionConfig {\n /**\n * 是否启用加密\n */\n enabled: boolean;\n /**\n * 加密密钥(可选,如果不提供则使用默认密钥)\n */\n key?: string;\n}\n\n/**\n * 加密工具类\n */\nexport class EncryptionUtils {\n\n /**\n * 生成加密密钥\n */\n static async generateKey(): Promise<CryptoKey> {\n if (typeof window === 'undefined' || !window.crypto || !window.crypto.subtle) {\n throw new StorageError('加密功能需要浏览器支持 Web Crypto API');\n }\n\n try {\n return await window.crypto.subtle.generateKey(\n {\n name: 'AES-GCM',\n length: 256,\n },\n true,\n ['encrypt', 'decrypt']\n );\n } catch (error) {\n throw new StorageError('生成加密密钥失败', error instanceof Error ? error : undefined);\n }\n }\n\n /**\n * 使用 PBKDF2 派生密钥\n */\n static async deriveKey(\n password: string,\n salt: Uint8Array,\n iterations: number = 100000\n ): Promise<CryptoKey> {\n if (typeof window === 'undefined' || !window.crypto || !window.crypto.subtle) {\n throw new StorageError('加密功能需要浏览器支持 Web Crypto API');\n }\n\n try {\n // 导入密码\n const encoder = new TextEncoder();\n const passwordKey = await window.crypto.subtle.importKey(\n 'raw',\n encoder.encode(password),\n 'PBKDF2',\n false,\n ['deriveBits', 'deriveKey']\n );\n\n // 使用 PBKDF2 派生密钥\n // 确保 salt 是 BufferSource 类型(使用类型断言)\n const saltBuffer: BufferSource = (salt instanceof Uint8Array \n ? salt \n : new Uint8Array(salt)) as BufferSource;\n return await window.crypto.subtle.deriveKey(\n {\n name: 'PBKDF2',\n salt: saltBuffer,\n iterations: iterations,\n hash: 'SHA-256',\n },\n passwordKey,\n {\n name: 'AES-GCM',\n length: 256,\n },\n false,\n ['encrypt', 'decrypt']\n );\n } catch (error) {\n throw new StorageError('密钥派生失败', error instanceof Error ? error : undefined);\n }\n }\n\n /**\n * 从字符串导入密钥(使用 PBKDF2 派生)\n * \n * 注意:如果没有提供 salt,每次调用都会生成新的 salt,导致密钥不一致。\n * 建议在生产环境中使用固定的 salt 或从安全存储中获取。\n */\n static async importKey(keyString: string, salt?: Uint8Array): Promise<CryptoKey> {\n if (typeof window === 'undefined' || !window.crypto || !window.crypto.subtle) {\n throw new StorageError('加密功能需要浏览器支持 Web Crypto API');\n }\n\n try {\n // 如果没有提供 salt,尝试从 sessionStorage 获取或生成一个固定的\n let keySalt = salt;\n \n if (!keySalt) {\n // 尝试从 sessionStorage 获取固定的 salt(用于当前会话)\n const saltKey = '__encryption_salt__';\n const storedSalt = sessionStorage.getItem(saltKey);\n \n if (storedSalt) {\n // 从存储中恢复 salt\n const saltArray = Uint8Array.from(JSON.parse(storedSalt));\n keySalt = saltArray;\n } else {\n // 生成新的 salt 并存储(用于当前会话)\n keySalt = window.crypto.getRandomValues(new Uint8Array(16));\n sessionStorage.setItem(saltKey, JSON.stringify(Array.from(keySalt)));\n }\n }\n \n // 使用 PBKDF2 派生密钥\n return await this.deriveKey(keyString, keySalt);\n } catch (error) {\n throw new StorageError('导入加密密钥失败', error instanceof Error ? error : undefined);\n }\n }\n\n /**\n * 加密数据\n */\n static async encrypt(data: string, key: CryptoKey): Promise<string> {\n if (typeof window === 'undefined' || !window.crypto || !window.crypto.subtle) {\n throw new StorageError('加密功能需要浏览器支持 Web Crypto API');\n }\n\n try {\n const encoder = new TextEncoder();\n const dataBuffer = encoder.encode(data);\n\n // 生成随机 IV\n const iv = window.crypto.getRandomValues(new Uint8Array(12));\n\n const encrypted = await window.crypto.subtle.encrypt(\n {\n name: 'AES-GCM',\n iv: iv,\n },\n key,\n dataBuffer\n );\n\n // 将 IV 和加密数据组合\n const combined = new Uint8Array(iv.length + encrypted.byteLength);\n combined.set(iv);\n combined.set(new Uint8Array(encrypted), iv.length);\n\n // 转换为 Base64\n return btoa(String.fromCharCode(...combined));\n } catch (error) {\n throw new StorageError('加密数据失败', error instanceof Error ? error : undefined);\n }\n }\n\n /**\n * 解密数据\n */\n static async decrypt(encryptedData: string, key: CryptoKey): Promise<string> {\n if (typeof window === 'undefined' || !window.crypto || !window.crypto.subtle) {\n throw new StorageError('解密功能需要浏览器支持 Web Crypto API');\n }\n\n try {\n // 从 Base64 解码\n const combined = Uint8Array.from(atob(encryptedData), (c) => c.charCodeAt(0));\n\n // 提取 IV 和加密数据\n const iv = combined.slice(0, 12);\n const encrypted = combined.slice(12);\n\n const decrypted = await window.crypto.subtle.decrypt(\n {\n name: 'AES-GCM',\n iv: iv,\n },\n key,\n encrypted\n );\n\n const decoder = new TextDecoder();\n return decoder.decode(decrypted);\n } catch (error) {\n throw new StorageError('解密数据失败', error instanceof Error ? error : undefined);\n }\n }\n\n /**\n * 检查字段是否需要加密\n */\n static shouldEncrypt(key: string): boolean {\n return SecurityUtils.isSensitiveField(key);\n }\n}\n"],"names":["EncryptionUtils","generateKey","window","crypto","subtle","StorageError","name","length","error","Error","undefined","deriveKey","password","salt","iterations","encoder","TextEncoder","passwordKey","importKey","encode","saltBuffer","Uint8Array","hash","keyString","keySalt","saltKey","storedSalt","sessionStorage","getItem","saltArray","from","JSON","parse","getRandomValues","setItem","stringify","Array","encrypt","data","key","dataBuffer","iv","encrypted","combined","byteLength","set","btoa","String","fromCharCode","decrypt","encryptedData","atob","c","charCodeAt","slice","decrypted","decoder","TextDecoder","decode","shouldEncrypt","SecurityUtils","isSensitiveField"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/library/storage/encryption.ts"],"sourcesContent":["import { SecurityUtils
|
|
1
|
+
{"version":3,"sources":["../../../src/library/storage/encryption.ts"],"sourcesContent":["import { SecurityUtils, StorageError } from '@vlian/utils';\n\n/**\n * 加密配置\n */\nexport interface EncryptionConfig {\n /**\n * 是否启用加密\n */\n enabled: boolean;\n /**\n * 加密密钥(可选,如果不提供则使用默认密钥)\n */\n key?: string;\n}\n\n/**\n * 加密工具类\n */\nexport class EncryptionUtils {\n\n /**\n * 生成加密密钥\n */\n static async generateKey(): Promise<CryptoKey> {\n if (typeof window === 'undefined' || !window.crypto || !window.crypto.subtle) {\n throw new StorageError('加密功能需要浏览器支持 Web Crypto API');\n }\n\n try {\n return await window.crypto.subtle.generateKey(\n {\n name: 'AES-GCM',\n length: 256,\n },\n true,\n ['encrypt', 'decrypt']\n );\n } catch (error) {\n throw new StorageError('生成加密密钥失败', error instanceof Error ? error : undefined);\n }\n }\n\n /**\n * 使用 PBKDF2 派生密钥\n */\n static async deriveKey(\n password: string,\n salt: Uint8Array,\n iterations: number = 100000\n ): Promise<CryptoKey> {\n if (typeof window === 'undefined' || !window.crypto || !window.crypto.subtle) {\n throw new StorageError('加密功能需要浏览器支持 Web Crypto API');\n }\n\n try {\n // 导入密码\n const encoder = new TextEncoder();\n const passwordKey = await window.crypto.subtle.importKey(\n 'raw',\n encoder.encode(password),\n 'PBKDF2',\n false,\n ['deriveBits', 'deriveKey']\n );\n\n // 使用 PBKDF2 派生密钥\n // 确保 salt 是 BufferSource 类型(使用类型断言)\n const saltBuffer: BufferSource = (salt instanceof Uint8Array \n ? salt \n : new Uint8Array(salt)) as BufferSource;\n return await window.crypto.subtle.deriveKey(\n {\n name: 'PBKDF2',\n salt: saltBuffer,\n iterations: iterations,\n hash: 'SHA-256',\n },\n passwordKey,\n {\n name: 'AES-GCM',\n length: 256,\n },\n false,\n ['encrypt', 'decrypt']\n );\n } catch (error) {\n throw new StorageError('密钥派生失败', error instanceof Error ? error : undefined);\n }\n }\n\n /**\n * 从字符串导入密钥(使用 PBKDF2 派生)\n * \n * 注意:如果没有提供 salt,每次调用都会生成新的 salt,导致密钥不一致。\n * 建议在生产环境中使用固定的 salt 或从安全存储中获取。\n */\n static async importKey(keyString: string, salt?: Uint8Array): Promise<CryptoKey> {\n if (typeof window === 'undefined' || !window.crypto || !window.crypto.subtle) {\n throw new StorageError('加密功能需要浏览器支持 Web Crypto API');\n }\n\n try {\n // 如果没有提供 salt,尝试从 sessionStorage 获取或生成一个固定的\n let keySalt = salt;\n \n if (!keySalt) {\n // 尝试从 sessionStorage 获取固定的 salt(用于当前会话)\n const saltKey = '__encryption_salt__';\n const storedSalt = sessionStorage.getItem(saltKey);\n \n if (storedSalt) {\n // 从存储中恢复 salt\n const saltArray = Uint8Array.from(JSON.parse(storedSalt));\n keySalt = saltArray;\n } else {\n // 生成新的 salt 并存储(用于当前会话)\n keySalt = window.crypto.getRandomValues(new Uint8Array(16));\n sessionStorage.setItem(saltKey, JSON.stringify(Array.from(keySalt)));\n }\n }\n \n // 使用 PBKDF2 派生密钥\n return await this.deriveKey(keyString, keySalt);\n } catch (error) {\n throw new StorageError('导入加密密钥失败', error instanceof Error ? error : undefined);\n }\n }\n\n /**\n * 加密数据\n */\n static async encrypt(data: string, key: CryptoKey): Promise<string> {\n if (typeof window === 'undefined' || !window.crypto || !window.crypto.subtle) {\n throw new StorageError('加密功能需要浏览器支持 Web Crypto API');\n }\n\n try {\n const encoder = new TextEncoder();\n const dataBuffer = encoder.encode(data);\n\n // 生成随机 IV\n const iv = window.crypto.getRandomValues(new Uint8Array(12));\n\n const encrypted = await window.crypto.subtle.encrypt(\n {\n name: 'AES-GCM',\n iv: iv,\n },\n key,\n dataBuffer\n );\n\n // 将 IV 和加密数据组合\n const combined = new Uint8Array(iv.length + encrypted.byteLength);\n combined.set(iv);\n combined.set(new Uint8Array(encrypted), iv.length);\n\n // 转换为 Base64\n return btoa(String.fromCharCode(...combined));\n } catch (error) {\n throw new StorageError('加密数据失败', error instanceof Error ? error : undefined);\n }\n }\n\n /**\n * 解密数据\n */\n static async decrypt(encryptedData: string, key: CryptoKey): Promise<string> {\n if (typeof window === 'undefined' || !window.crypto || !window.crypto.subtle) {\n throw new StorageError('解密功能需要浏览器支持 Web Crypto API');\n }\n\n try {\n // 从 Base64 解码\n const combined = Uint8Array.from(atob(encryptedData), (c) => c.charCodeAt(0));\n\n // 提取 IV 和加密数据\n const iv = combined.slice(0, 12);\n const encrypted = combined.slice(12);\n\n const decrypted = await window.crypto.subtle.decrypt(\n {\n name: 'AES-GCM',\n iv: iv,\n },\n key,\n encrypted\n );\n\n const decoder = new TextDecoder();\n return decoder.decode(decrypted);\n } catch (error) {\n throw new StorageError('解密数据失败', error instanceof Error ? error : undefined);\n }\n }\n\n /**\n * 检查字段是否需要加密\n */\n static shouldEncrypt(key: string): boolean {\n return SecurityUtils.isSensitiveField(key);\n }\n}\n"],"names":["SecurityUtils","StorageError","EncryptionUtils","generateKey","window","crypto","subtle","name","length","error","Error","undefined","deriveKey","password","salt","iterations","encoder","TextEncoder","passwordKey","importKey","encode","saltBuffer","Uint8Array","hash","keyString","keySalt","saltKey","storedSalt","sessionStorage","getItem","saltArray","from","JSON","parse","getRandomValues","setItem","stringify","Array","encrypt","data","key","dataBuffer","iv","encrypted","combined","byteLength","set","btoa","String","fromCharCode","decrypt","encryptedData","atob","c","charCodeAt","slice","decrypted","decoder","TextDecoder","decode","shouldEncrypt","isSensitiveField"],"mappings":"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"}
|
package/dist/state.umd.js
CHANGED
package/dist/utils/errors.cjs
CHANGED
|
@@ -10,48 +10,104 @@ function _export(target, all) {
|
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
12
|
get ConfigError () {
|
|
13
|
-
return
|
|
13
|
+
return ConfigError;
|
|
14
14
|
},
|
|
15
15
|
get ErrorCode () {
|
|
16
|
-
return
|
|
16
|
+
return ErrorCode;
|
|
17
17
|
},
|
|
18
18
|
get ErrorMessages () {
|
|
19
|
-
return
|
|
19
|
+
return ErrorMessages;
|
|
20
20
|
},
|
|
21
21
|
get ErrorSeverity () {
|
|
22
|
-
return
|
|
22
|
+
return ErrorSeverity;
|
|
23
23
|
},
|
|
24
24
|
get ErrorType () {
|
|
25
|
-
return
|
|
25
|
+
return ErrorType;
|
|
26
26
|
},
|
|
27
27
|
get FrameworkError () {
|
|
28
|
-
return
|
|
28
|
+
return FrameworkError;
|
|
29
29
|
},
|
|
30
30
|
get InitializationError () {
|
|
31
|
-
return
|
|
31
|
+
return InitializationError;
|
|
32
32
|
},
|
|
33
33
|
get NetworkError () {
|
|
34
|
-
return
|
|
34
|
+
return NetworkError;
|
|
35
35
|
},
|
|
36
36
|
get SecurityError () {
|
|
37
|
-
return
|
|
37
|
+
return SecurityError;
|
|
38
38
|
},
|
|
39
39
|
get StorageError () {
|
|
40
|
-
return
|
|
40
|
+
return StorageError;
|
|
41
41
|
},
|
|
42
42
|
get ValidationError () {
|
|
43
|
-
return
|
|
43
|
+
return ValidationError;
|
|
44
44
|
},
|
|
45
45
|
get errorUtils () {
|
|
46
|
-
return
|
|
46
|
+
return errorUtils;
|
|
47
47
|
},
|
|
48
48
|
get getErrorMessage () {
|
|
49
|
-
return
|
|
49
|
+
return getErrorMessage;
|
|
50
50
|
},
|
|
51
51
|
get getUserFriendlyMessage () {
|
|
52
|
-
return
|
|
52
|
+
return getUserFriendlyMessage;
|
|
53
53
|
}
|
|
54
54
|
});
|
|
55
|
-
const _utils = require("@vlian/utils");
|
|
55
|
+
const _utils = /*#__PURE__*/ _interop_require_wildcard(require("@vlian/utils"));
|
|
56
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
57
|
+
if (typeof WeakMap !== "function") return null;
|
|
58
|
+
var cacheBabelInterop = new WeakMap();
|
|
59
|
+
var cacheNodeInterop = new WeakMap();
|
|
60
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
61
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
62
|
+
})(nodeInterop);
|
|
63
|
+
}
|
|
64
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
65
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
66
|
+
return obj;
|
|
67
|
+
}
|
|
68
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
69
|
+
return {
|
|
70
|
+
default: obj
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
74
|
+
if (cache && cache.has(obj)) {
|
|
75
|
+
return cache.get(obj);
|
|
76
|
+
}
|
|
77
|
+
var newObj = {
|
|
78
|
+
__proto__: null
|
|
79
|
+
};
|
|
80
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
81
|
+
for(var key in obj){
|
|
82
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
83
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
84
|
+
if (desc && (desc.get || desc.set)) {
|
|
85
|
+
Object.defineProperty(newObj, key, desc);
|
|
86
|
+
} else {
|
|
87
|
+
newObj[key] = obj[key];
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
newObj.default = obj;
|
|
92
|
+
if (cache) {
|
|
93
|
+
cache.set(obj, newObj);
|
|
94
|
+
}
|
|
95
|
+
return newObj;
|
|
96
|
+
}
|
|
97
|
+
const utils = _utils;
|
|
98
|
+
const ErrorCode = utils.ErrorCode;
|
|
99
|
+
const ErrorMessages = utils.ErrorMessages;
|
|
100
|
+
const getErrorMessage = utils.getErrorMessage;
|
|
101
|
+
const getUserFriendlyMessage = utils.getUserFriendlyMessage;
|
|
102
|
+
const ErrorType = utils.ErrorType;
|
|
103
|
+
const ErrorSeverity = utils.ErrorSeverity;
|
|
104
|
+
const FrameworkError = utils.FrameworkError;
|
|
105
|
+
const InitializationError = utils.InitializationError;
|
|
106
|
+
const ConfigError = utils.ConfigError;
|
|
107
|
+
const StorageError = utils.StorageError;
|
|
108
|
+
const NetworkError = utils.NetworkError;
|
|
109
|
+
const ValidationError = utils.ValidationError;
|
|
110
|
+
const SecurityError = utils.SecurityError;
|
|
111
|
+
const errorUtils = utils.errorUtils;
|
|
56
112
|
|
|
57
113
|
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/errors.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../src/utils/errors.ts"],"sourcesContent":["import * as vlianUtils from '@vlian/utils';\n\nconst utils = vlianUtils as typeof import('@vlian/utils');\n\nexport const ErrorCode = utils.ErrorCode;\nexport const ErrorMessages = utils.ErrorMessages;\nexport const getErrorMessage = utils.getErrorMessage;\nexport const getUserFriendlyMessage = utils.getUserFriendlyMessage;\nexport const ErrorType = utils.ErrorType;\nexport const ErrorSeverity = utils.ErrorSeverity;\nexport const FrameworkError = utils.FrameworkError;\nexport const InitializationError = utils.InitializationError;\nexport const ConfigError = utils.ConfigError;\nexport const StorageError = utils.StorageError;\nexport const NetworkError = utils.NetworkError;\nexport const ValidationError = utils.ValidationError;\nexport const SecurityError = utils.SecurityError;\nexport const errorUtils = utils.errorUtils;\n"],"names":["ConfigError","ErrorCode","ErrorMessages","ErrorSeverity","ErrorType","FrameworkError","InitializationError","NetworkError","SecurityError","StorageError","ValidationError","errorUtils","getErrorMessage","getUserFriendlyMessage","utils","vlianUtils"],"mappings":";;;;;;;;;;;QAYaA;eAAAA;;QARAC;eAAAA;;QACAC;eAAAA;;QAIAC;eAAAA;;QADAC;eAAAA;;QAEAC;eAAAA;;QACAC;eAAAA;;QAGAC;eAAAA;;QAEAC;eAAAA;;QAHAC;eAAAA;;QAEAC;eAAAA;;QAEAC;eAAAA;;QAXAC;eAAAA;;QACAC;eAAAA;;;+DAPe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE5B,MAAMC,QAAQC;AAEP,MAAMd,YAAYa,MAAMb,SAAS;AACjC,MAAMC,gBAAgBY,MAAMZ,aAAa;AACzC,MAAMU,kBAAkBE,MAAMF,eAAe;AAC7C,MAAMC,yBAAyBC,MAAMD,sBAAsB;AAC3D,MAAMT,YAAYU,MAAMV,SAAS;AACjC,MAAMD,gBAAgBW,MAAMX,aAAa;AACzC,MAAME,iBAAiBS,MAAMT,cAAc;AAC3C,MAAMC,sBAAsBQ,MAAMR,mBAAmB;AACrD,MAAMN,cAAcc,MAAMd,WAAW;AACrC,MAAMS,eAAeK,MAAML,YAAY;AACvC,MAAMF,eAAeO,MAAMP,YAAY;AACvC,MAAMG,kBAAkBI,MAAMJ,eAAe;AAC7C,MAAMF,gBAAgBM,MAAMN,aAAa;AACzC,MAAMG,aAAaG,MAAMH,UAAU"}
|
package/dist/utils/errors.d.ts
CHANGED
|
@@ -1 +1,30 @@
|
|
|
1
|
-
|
|
1
|
+
import * as vlianUtils from '@vlian/utils';
|
|
2
|
+
export declare const ErrorCode: typeof vlianUtils.ErrorCode;
|
|
3
|
+
export declare const ErrorMessages: Record<vlianUtils.ErrorCode, string>;
|
|
4
|
+
export declare const getErrorMessage: typeof vlianUtils.getErrorMessage;
|
|
5
|
+
export declare const getUserFriendlyMessage: typeof vlianUtils.getUserFriendlyMessage;
|
|
6
|
+
export declare const ErrorType: typeof vlianUtils.ErrorType;
|
|
7
|
+
export declare const ErrorSeverity: typeof vlianUtils.ErrorSeverity;
|
|
8
|
+
export declare const FrameworkError: typeof vlianUtils.FrameworkError;
|
|
9
|
+
export declare const InitializationError: typeof vlianUtils.InitializationError;
|
|
10
|
+
export declare const ConfigError: typeof vlianUtils.ConfigError;
|
|
11
|
+
export declare const StorageError: typeof vlianUtils.StorageError;
|
|
12
|
+
export declare const NetworkError: typeof vlianUtils.NetworkError;
|
|
13
|
+
export declare const ValidationError: typeof vlianUtils.ValidationError;
|
|
14
|
+
export declare const SecurityError: typeof vlianUtils.SecurityError;
|
|
15
|
+
export declare const errorUtils: {
|
|
16
|
+
getSafeErrorMessage(error: unknown): string;
|
|
17
|
+
isRecoverable(error: unknown): boolean;
|
|
18
|
+
getErrorType(error: unknown): vlianUtils.ErrorType;
|
|
19
|
+
getErrorSeverity(error: unknown): vlianUtils.ErrorSeverity;
|
|
20
|
+
normalizeError(error: unknown): vlianUtils.FrameworkError;
|
|
21
|
+
extractErrorInfo(error: unknown): {
|
|
22
|
+
message: string;
|
|
23
|
+
type: vlianUtils.ErrorType;
|
|
24
|
+
severity: vlianUtils.ErrorSeverity;
|
|
25
|
+
code: string;
|
|
26
|
+
stack?: string;
|
|
27
|
+
};
|
|
28
|
+
getErrorSuggestions(error: unknown): string[];
|
|
29
|
+
formatErrorForDev(error: unknown): string;
|
|
30
|
+
};
|
package/dist/utils/errors.js
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
import * as vlianUtils from "@vlian/utils";
|
|
2
|
+
const utils = vlianUtils;
|
|
3
|
+
export const ErrorCode = utils.ErrorCode;
|
|
4
|
+
export const ErrorMessages = utils.ErrorMessages;
|
|
5
|
+
export const getErrorMessage = utils.getErrorMessage;
|
|
6
|
+
export const getUserFriendlyMessage = utils.getUserFriendlyMessage;
|
|
7
|
+
export const ErrorType = utils.ErrorType;
|
|
8
|
+
export const ErrorSeverity = utils.ErrorSeverity;
|
|
9
|
+
export const FrameworkError = utils.FrameworkError;
|
|
10
|
+
export const InitializationError = utils.InitializationError;
|
|
11
|
+
export const ConfigError = utils.ConfigError;
|
|
12
|
+
export const StorageError = utils.StorageError;
|
|
13
|
+
export const NetworkError = utils.NetworkError;
|
|
14
|
+
export const ValidationError = utils.ValidationError;
|
|
15
|
+
export const SecurityError = utils.SecurityError;
|
|
16
|
+
export const errorUtils = utils.errorUtils;
|
|
2
17
|
|
|
3
18
|
//# sourceMappingURL=errors.js.map
|
package/dist/utils/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/errors.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../src/utils/errors.ts"],"sourcesContent":["import * as vlianUtils from '@vlian/utils';\n\nconst utils = vlianUtils as typeof import('@vlian/utils');\n\nexport const ErrorCode = utils.ErrorCode;\nexport const ErrorMessages = utils.ErrorMessages;\nexport const getErrorMessage = utils.getErrorMessage;\nexport const getUserFriendlyMessage = utils.getUserFriendlyMessage;\nexport const ErrorType = utils.ErrorType;\nexport const ErrorSeverity = utils.ErrorSeverity;\nexport const FrameworkError = utils.FrameworkError;\nexport const InitializationError = utils.InitializationError;\nexport const ConfigError = utils.ConfigError;\nexport const StorageError = utils.StorageError;\nexport const NetworkError = utils.NetworkError;\nexport const ValidationError = utils.ValidationError;\nexport const SecurityError = utils.SecurityError;\nexport const errorUtils = utils.errorUtils;\n"],"names":["vlianUtils","utils","ErrorCode","ErrorMessages","getErrorMessage","getUserFriendlyMessage","ErrorType","ErrorSeverity","FrameworkError","InitializationError","ConfigError","StorageError","NetworkError","ValidationError","SecurityError","errorUtils"],"mappings":"AAAA,YAAYA,gBAAgB,eAAe;AAE3C,MAAMC,QAAQD;AAEd,OAAO,MAAME,YAAYD,MAAMC,SAAS,CAAC;AACzC,OAAO,MAAMC,gBAAgBF,MAAME,aAAa,CAAC;AACjD,OAAO,MAAMC,kBAAkBH,MAAMG,eAAe,CAAC;AACrD,OAAO,MAAMC,yBAAyBJ,MAAMI,sBAAsB,CAAC;AACnE,OAAO,MAAMC,YAAYL,MAAMK,SAAS,CAAC;AACzC,OAAO,MAAMC,gBAAgBN,MAAMM,aAAa,CAAC;AACjD,OAAO,MAAMC,iBAAiBP,MAAMO,cAAc,CAAC;AACnD,OAAO,MAAMC,sBAAsBR,MAAMQ,mBAAmB,CAAC;AAC7D,OAAO,MAAMC,cAAcT,MAAMS,WAAW,CAAC;AAC7C,OAAO,MAAMC,eAAeV,MAAMU,YAAY,CAAC;AAC/C,OAAO,MAAMC,eAAeX,MAAMW,YAAY,CAAC;AAC/C,OAAO,MAAMC,kBAAkBZ,MAAMY,eAAe,CAAC;AACrD,OAAO,MAAMC,gBAAgBb,MAAMa,aAAa,CAAC;AACjD,OAAO,MAAMC,aAAad,MAAMc,UAAU,CAAC"}
|