@vlian/framework 1.2.19 → 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/index.cjs +0 -1
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.ts +1 -2
- package/dist/core/index.js +0 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/initialization/index.cjs.map +1 -1
- package/dist/core/initialization/index.d.ts +1 -1
- package/dist/core/initialization/index.js.map +1 -1
- package/dist/core/initialization/initialization.cjs +2 -147
- package/dist/core/initialization/initialization.cjs.map +1 -1
- package/dist/core/initialization/initialization.d.ts +0 -57
- package/dist/core/initialization/initialization.js +2 -148
- package/dist/core/initialization/initialization.js.map +1 -1
- package/dist/core/kernel/startKernel.cjs +1 -2
- package/dist/core/kernel/startKernel.cjs.map +1 -1
- package/dist/core/kernel/startKernel.js +1 -2
- package/dist/core/kernel/startKernel.js.map +1 -1
- package/dist/core/plugin.cjs +16 -16
- package/dist/core/plugin.cjs.map +1 -1
- package/dist/core/plugin.d.ts +5 -1
- package/dist/core/plugin.js +17 -17
- package/dist/core/plugin.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/RouteErrorBoundary.cjs +13 -8
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.cjs.map +1 -1
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.js +13 -8
- package/dist/core/router/utils/adapters/react-router/RouteErrorBoundary.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 -4
- package/dist/core/startup/startApp.cjs.map +1 -1
- package/dist/core/startup/startApp.js +3 -5
- package/dist/core/startup/startApp.js.map +1 -1
- package/dist/core/types.d.ts +2 -6
- 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 +11758 -32895
- 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.map +1 -0
- package/dist/kernel/types.d.ts +72 -0
- package/dist/kernel/types.js.map +1 -0
- package/dist/library/storage/index.cjs +1 -1
- package/dist/library/storage/index.cjs.map +1 -1
- package/dist/library/storage/index.d.ts +1 -0
- package/dist/library/storage/index.js +1 -1
- package/dist/library/storage/index.js.map +1 -1
- 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 +98 -13
- package/dist/core/ui-adapter/adapters.cjs +0 -45
- package/dist/core/ui-adapter/adapters.cjs.map +0 -1
- package/dist/core/ui-adapter/adapters.d.ts +0 -4
- package/dist/core/ui-adapter/adapters.js +0 -27
- package/dist/core/ui-adapter/adapters.js.map +0 -1
- package/dist/core/ui-adapter/index.cjs +0 -21
- package/dist/core/ui-adapter/index.cjs.map +0 -1
- package/dist/core/ui-adapter/index.d.ts +0 -2
- package/dist/core/ui-adapter/index.js +0 -3
- package/dist/core/ui-adapter/index.js.map +0 -1
- package/dist/core/ui-adapter/types.cjs.map +0 -1
- package/dist/core/ui-adapter/types.d.ts +0 -24
- package/dist/core/ui-adapter/types.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
- /package/dist/{core/ui-adapter → kernel}/types.cjs +0 -0
- /package/dist/{core/ui-adapter → kernel}/types.js +0 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
get DEFAULT_CONFIG () {
|
|
13
|
+
return DEFAULT_CONFIG;
|
|
14
|
+
},
|
|
15
|
+
get DEFAULT_I18N () {
|
|
16
|
+
return DEFAULT_I18N;
|
|
17
|
+
},
|
|
18
|
+
get DEFAULT_INSTANCE_ID () {
|
|
19
|
+
return DEFAULT_INSTANCE_ID;
|
|
20
|
+
},
|
|
21
|
+
get DEFAULT_THEME () {
|
|
22
|
+
return DEFAULT_THEME;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
const _utils = require("../utils");
|
|
26
|
+
const DEFAULT_INSTANCE_ID = 'default';
|
|
27
|
+
const DEFAULT_THEME = {
|
|
28
|
+
mode: 'light'
|
|
29
|
+
};
|
|
30
|
+
const DEFAULT_I18N = {
|
|
31
|
+
locale: 'zh-CN'
|
|
32
|
+
};
|
|
33
|
+
const DEFAULT_CONFIG = {
|
|
34
|
+
logger: {
|
|
35
|
+
level: _utils.LogLevel.INFO,
|
|
36
|
+
persistence: {
|
|
37
|
+
enabled: true,
|
|
38
|
+
storage: 'localStorage',
|
|
39
|
+
key: 'vlian:kernel:logger-level'
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
cache: {
|
|
43
|
+
enabled: true,
|
|
44
|
+
storageOptions: {
|
|
45
|
+
prefix: 'vlian',
|
|
46
|
+
defaultExpire: 24 * 60 * 60 * 1000
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
theme: {
|
|
50
|
+
initial: DEFAULT_THEME,
|
|
51
|
+
persistence: {
|
|
52
|
+
enabled: true,
|
|
53
|
+
storage: 'localStorage',
|
|
54
|
+
key: 'vlian:kernel:theme'
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
i18n: {
|
|
58
|
+
initial: DEFAULT_I18N,
|
|
59
|
+
persistence: {
|
|
60
|
+
enabled: true,
|
|
61
|
+
storage: 'localStorage',
|
|
62
|
+
key: 'vlian:kernel:i18n'
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/kernel/constants.ts"],"sourcesContent":["import { LogLevel } from '../utils';\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;;;uBAJY;AAGlB,MAAMD,sBAAsB;AAC5B,MAAMC,gBAA+B;IAAEC,MAAM;AAAQ;AACrD,MAAMH,eAA6B;IAAEI,QAAQ;AAAQ;AAErD,MAAML,iBAA+B;IAC1CM,QAAQ;QACNC,OAAOC,eAAQ,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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { I18nSnapshot, KernelConfig, ThemeSnapshot } from './types';
|
|
2
|
+
export declare const DEFAULT_INSTANCE_ID = "default";
|
|
3
|
+
export declare const DEFAULT_THEME: ThemeSnapshot;
|
|
4
|
+
export declare const DEFAULT_I18N: I18nSnapshot;
|
|
5
|
+
export declare const DEFAULT_CONFIG: KernelConfig;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { LogLevel } from "../utils";
|
|
2
|
+
export const DEFAULT_INSTANCE_ID = 'default';
|
|
3
|
+
export const DEFAULT_THEME = {
|
|
4
|
+
mode: 'light'
|
|
5
|
+
};
|
|
6
|
+
export const DEFAULT_I18N = {
|
|
7
|
+
locale: 'zh-CN'
|
|
8
|
+
};
|
|
9
|
+
export const DEFAULT_CONFIG = {
|
|
10
|
+
logger: {
|
|
11
|
+
level: LogLevel.INFO,
|
|
12
|
+
persistence: {
|
|
13
|
+
enabled: true,
|
|
14
|
+
storage: 'localStorage',
|
|
15
|
+
key: 'vlian:kernel:logger-level'
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
cache: {
|
|
19
|
+
enabled: true,
|
|
20
|
+
storageOptions: {
|
|
21
|
+
prefix: 'vlian',
|
|
22
|
+
defaultExpire: 24 * 60 * 60 * 1000
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
theme: {
|
|
26
|
+
initial: DEFAULT_THEME,
|
|
27
|
+
persistence: {
|
|
28
|
+
enabled: true,
|
|
29
|
+
storage: 'localStorage',
|
|
30
|
+
key: 'vlian:kernel:theme'
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
i18n: {
|
|
34
|
+
initial: DEFAULT_I18N,
|
|
35
|
+
persistence: {
|
|
36
|
+
enabled: true,
|
|
37
|
+
storage: 'localStorage',
|
|
38
|
+
key: 'vlian:kernel:i18n'
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/kernel/constants.ts"],"sourcesContent":["import { LogLevel } from '../utils';\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,WAAW;AAGpC,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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
get CacheManager () {
|
|
13
|
+
return _manager.CacheManager;
|
|
14
|
+
},
|
|
15
|
+
get I18nManager () {
|
|
16
|
+
return _manager.I18nManager;
|
|
17
|
+
},
|
|
18
|
+
get Kernel () {
|
|
19
|
+
return _kernel.Kernel;
|
|
20
|
+
},
|
|
21
|
+
get LoggerManager () {
|
|
22
|
+
return _manager.LoggerManager;
|
|
23
|
+
},
|
|
24
|
+
get ThemeManager () {
|
|
25
|
+
return _manager.ThemeManager;
|
|
26
|
+
},
|
|
27
|
+
get getKernel () {
|
|
28
|
+
return _kernel.getKernel;
|
|
29
|
+
},
|
|
30
|
+
get kernelStartApp () {
|
|
31
|
+
return _kernel.kernelStartApp;
|
|
32
|
+
},
|
|
33
|
+
get startup () {
|
|
34
|
+
return _kernel.startup;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
const _kernel = require("./kernel");
|
|
38
|
+
const _manager = require("./manager");
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/kernel/index.ts"],"sourcesContent":["export { Kernel, startup, getKernel, kernelStartApp } from './kernel';\nexport { LoggerManager, CacheManager, ThemeManager, I18nManager } from './manager';\nexport type {\n KernelInstanceId,\n KernelStorageDriver,\n ThemeSnapshot,\n I18nSnapshot,\n PersistenceOptions,\n LoggerManagerConfig,\n CacheManagerConfig,\n ThemeManagerConfig,\n I18nManagerConfig,\n KernelConfig,\n KernelTimingMetric,\n KernelManager,\n KernelManagerContext,\n KernelRenderContext,\n StartupHooks,\n StartOptions,\n KernelStartOptions,\n} from './types';\n"],"names":["CacheManager","I18nManager","Kernel","LoggerManager","ThemeManager","getKernel","kernelStartApp","startup"],"mappings":";;;;;;;;;;;QACwBA;eAAAA,qBAAY;;QAAgBC;eAAAA,oBAAW;;QADtDC;eAAAA,cAAM;;QACNC;eAAAA,sBAAa;;QAAgBC;eAAAA,qBAAY;;QADxBC;eAAAA,iBAAS;;QAAEC;eAAAA,sBAAc;;QAAlCC;eAAAA,eAAO;;;wBAAmC;yBACY"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { Kernel, startup, getKernel, kernelStartApp } from './kernel';
|
|
2
|
+
export { LoggerManager, CacheManager, ThemeManager, I18nManager } from './manager';
|
|
3
|
+
export type { KernelInstanceId, KernelStorageDriver, ThemeSnapshot, I18nSnapshot, PersistenceOptions, LoggerManagerConfig, CacheManagerConfig, ThemeManagerConfig, I18nManagerConfig, KernelConfig, KernelTimingMetric, KernelManager, KernelManagerContext, KernelRenderContext, StartupHooks, StartOptions, KernelStartOptions, } from './types';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/kernel/index.ts"],"sourcesContent":["export { Kernel, startup, getKernel, kernelStartApp } from './kernel';\nexport { LoggerManager, CacheManager, ThemeManager, I18nManager } from './manager';\nexport type {\n KernelInstanceId,\n KernelStorageDriver,\n ThemeSnapshot,\n I18nSnapshot,\n PersistenceOptions,\n LoggerManagerConfig,\n CacheManagerConfig,\n ThemeManagerConfig,\n I18nManagerConfig,\n KernelConfig,\n KernelTimingMetric,\n KernelManager,\n KernelManagerContext,\n KernelRenderContext,\n StartupHooks,\n StartOptions,\n KernelStartOptions,\n} from './types';\n"],"names":["Kernel","startup","getKernel","kernelStartApp","LoggerManager","CacheManager","ThemeManager","I18nManager"],"mappings":"AAAA,SAASA,MAAM,EAAEC,OAAO,EAAEC,SAAS,EAAEC,cAAc,QAAQ,WAAW;AACtE,SAASC,aAAa,EAAEC,YAAY,EAAEC,YAAY,EAAEC,WAAW,QAAQ,YAAY"}
|
|
@@ -0,0 +1,296 @@
|
|
|
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 Kernel () {
|
|
13
|
+
return Kernel;
|
|
14
|
+
},
|
|
15
|
+
get getKernel () {
|
|
16
|
+
return getKernel;
|
|
17
|
+
},
|
|
18
|
+
get kernelStartApp () {
|
|
19
|
+
return kernelStartApp;
|
|
20
|
+
},
|
|
21
|
+
get startup () {
|
|
22
|
+
return startup;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
const _constants = require("./constants");
|
|
26
|
+
const _loggerManager = require("./manager/loggerManager");
|
|
27
|
+
const _cacheManager = require("./manager/cacheManager");
|
|
28
|
+
const _themeManager = require("./manager/themeManager");
|
|
29
|
+
const _i18nManager = require("./manager/i18nManager");
|
|
30
|
+
function _define_property(obj, key, value) {
|
|
31
|
+
if (key in obj) {
|
|
32
|
+
Object.defineProperty(obj, key, {
|
|
33
|
+
value: value,
|
|
34
|
+
enumerable: true,
|
|
35
|
+
configurable: true,
|
|
36
|
+
writable: true
|
|
37
|
+
});
|
|
38
|
+
} else {
|
|
39
|
+
obj[key] = value;
|
|
40
|
+
}
|
|
41
|
+
return obj;
|
|
42
|
+
}
|
|
43
|
+
function now() {
|
|
44
|
+
return typeof performance !== 'undefined' ? performance.now() : Date.now();
|
|
45
|
+
}
|
|
46
|
+
function isRecord(value) {
|
|
47
|
+
return typeof value === 'object' && value !== null;
|
|
48
|
+
}
|
|
49
|
+
let Kernel = class Kernel {
|
|
50
|
+
static getInstance(instanceId = _constants.DEFAULT_INSTANCE_ID) {
|
|
51
|
+
const existing = Kernel.instances.get(instanceId);
|
|
52
|
+
if (existing) {
|
|
53
|
+
return existing;
|
|
54
|
+
}
|
|
55
|
+
const created = new Kernel(instanceId);
|
|
56
|
+
Kernel.instances.set(instanceId, created);
|
|
57
|
+
return created;
|
|
58
|
+
}
|
|
59
|
+
getId() {
|
|
60
|
+
return this.instanceId;
|
|
61
|
+
}
|
|
62
|
+
getConfig() {
|
|
63
|
+
return this.config;
|
|
64
|
+
}
|
|
65
|
+
getMetrics() {
|
|
66
|
+
return [
|
|
67
|
+
...this.metrics
|
|
68
|
+
];
|
|
69
|
+
}
|
|
70
|
+
getLoggerManager() {
|
|
71
|
+
return this.loggerManager;
|
|
72
|
+
}
|
|
73
|
+
getCacheManager() {
|
|
74
|
+
return this.cacheManager;
|
|
75
|
+
}
|
|
76
|
+
getThemeManager() {
|
|
77
|
+
return this.themeManager;
|
|
78
|
+
}
|
|
79
|
+
getI18nManager() {
|
|
80
|
+
return this.i18nManager;
|
|
81
|
+
}
|
|
82
|
+
getManager(name) {
|
|
83
|
+
return this.managers.get(name);
|
|
84
|
+
}
|
|
85
|
+
registerManager(name, manager) {
|
|
86
|
+
if (this.managers.has(name)) {
|
|
87
|
+
throw new Error(`Kernel manager "${name}" 已存在`);
|
|
88
|
+
}
|
|
89
|
+
this.managers.set(name, manager);
|
|
90
|
+
}
|
|
91
|
+
async startup(options = {}) {
|
|
92
|
+
if (this.started) {
|
|
93
|
+
this.logDebug('kernel.startup.skip.already-started', {
|
|
94
|
+
instanceId: this.instanceId
|
|
95
|
+
});
|
|
96
|
+
return this;
|
|
97
|
+
}
|
|
98
|
+
if (this.startupPromise) {
|
|
99
|
+
return this.startupPromise;
|
|
100
|
+
}
|
|
101
|
+
this.startupPromise = this.bootstrap(options).finally(()=>{
|
|
102
|
+
this.startupPromise = null;
|
|
103
|
+
});
|
|
104
|
+
return this.startupPromise;
|
|
105
|
+
}
|
|
106
|
+
async bootstrap(options) {
|
|
107
|
+
await this.measurePhase('startup.begin', async ()=>{
|
|
108
|
+
this.logDebug('kernel.startup.begin', {
|
|
109
|
+
instanceId: this.instanceId
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
await this.measurePhase('config.load', async ()=>{
|
|
113
|
+
this.config = await this.resolveConfig(options);
|
|
114
|
+
});
|
|
115
|
+
await this.measurePhase('manager.register.custom', async ()=>{
|
|
116
|
+
if (options.customManagers) {
|
|
117
|
+
Object.entries(options.customManagers).forEach(([name, manager])=>{
|
|
118
|
+
if (!this.managers.has(name)) {
|
|
119
|
+
this.managers.set(name, manager);
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
await this.measurePhase('manager.initialize.default', async ()=>{
|
|
125
|
+
await this.initializeManager('cache');
|
|
126
|
+
await Promise.all([
|
|
127
|
+
this.initializeManager('logger'),
|
|
128
|
+
this.initializeManager('theme'),
|
|
129
|
+
this.initializeManager('i18n')
|
|
130
|
+
]);
|
|
131
|
+
});
|
|
132
|
+
await this.measurePhase('manager.initialize.custom', async ()=>{
|
|
133
|
+
const customManagerNames = [
|
|
134
|
+
...this.managers.keys()
|
|
135
|
+
].filter((name)=>name !== 'logger' && name !== 'cache' && name !== 'theme' && name !== 'i18n');
|
|
136
|
+
for (const name of customManagerNames){
|
|
137
|
+
await this.initializeManager(name);
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
await this.measurePhase('hooks.initialize', async ()=>{
|
|
141
|
+
await options.hooks?.initialize?.();
|
|
142
|
+
await options.lifecycle?.initialization?.();
|
|
143
|
+
});
|
|
144
|
+
await this.measurePhase('render.custom', async ()=>{
|
|
145
|
+
if (options.render) {
|
|
146
|
+
await options.render({
|
|
147
|
+
instanceId: this.instanceId,
|
|
148
|
+
config: this.config
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
this.started = true;
|
|
153
|
+
this.logDebug('kernel.startup.end', {
|
|
154
|
+
instanceId: this.instanceId,
|
|
155
|
+
metrics: this.metrics
|
|
156
|
+
});
|
|
157
|
+
return this;
|
|
158
|
+
}
|
|
159
|
+
async resolveConfig(options) {
|
|
160
|
+
let loaded = {};
|
|
161
|
+
if (options.configLoader) {
|
|
162
|
+
const loaderResult = await options.configLoader();
|
|
163
|
+
loaded = loaderResult || {};
|
|
164
|
+
}
|
|
165
|
+
const loadedThemeInitial = loaded.theme?.initial || {};
|
|
166
|
+
const loadedI18nInitial = loaded.i18n?.initial || {};
|
|
167
|
+
const optionTheme = options.theme || {};
|
|
168
|
+
const optionLocale = options.locale;
|
|
169
|
+
return {
|
|
170
|
+
logger: {
|
|
171
|
+
..._constants.DEFAULT_CONFIG.logger,
|
|
172
|
+
...loaded.logger,
|
|
173
|
+
...options.config?.logger || {},
|
|
174
|
+
level: options.loggerLevel || options.config?.logger?.level || loaded.logger?.level || _constants.DEFAULT_CONFIG.logger.level
|
|
175
|
+
},
|
|
176
|
+
cache: {
|
|
177
|
+
..._constants.DEFAULT_CONFIG.cache,
|
|
178
|
+
...loaded.cache,
|
|
179
|
+
...options.config?.cache || {},
|
|
180
|
+
storageOptions: {
|
|
181
|
+
..._constants.DEFAULT_CONFIG.cache.storageOptions,
|
|
182
|
+
...loaded.cache?.storageOptions || {},
|
|
183
|
+
...options.config?.cache?.storageOptions || {},
|
|
184
|
+
...options.storageOptions || {}
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
theme: {
|
|
188
|
+
..._constants.DEFAULT_CONFIG.theme,
|
|
189
|
+
...loaded.theme,
|
|
190
|
+
...options.config?.theme || {},
|
|
191
|
+
initial: {
|
|
192
|
+
..._constants.DEFAULT_THEME,
|
|
193
|
+
...loadedThemeInitial,
|
|
194
|
+
...options.config?.theme?.initial || {},
|
|
195
|
+
...isRecord(optionTheme) ? optionTheme : {}
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
i18n: {
|
|
199
|
+
..._constants.DEFAULT_CONFIG.i18n,
|
|
200
|
+
...loaded.i18n,
|
|
201
|
+
...options.config?.i18n || {},
|
|
202
|
+
initial: {
|
|
203
|
+
..._constants.DEFAULT_I18N,
|
|
204
|
+
...loadedI18nInitial,
|
|
205
|
+
...options.config?.i18n?.initial || {},
|
|
206
|
+
resources: isRecord(optionLocale) ? optionLocale : loadedI18nInitial.resources
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
async initializeManager(name) {
|
|
212
|
+
if (this.initializedManagers.has(name)) {
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
const existingPromise = this.managerInitPromises.get(name);
|
|
216
|
+
if (existingPromise) {
|
|
217
|
+
await existingPromise;
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
const manager = this.managers.get(name);
|
|
221
|
+
if (!manager) {
|
|
222
|
+
throw new Error(`Kernel manager "${name}" 不存在`);
|
|
223
|
+
}
|
|
224
|
+
const context = {
|
|
225
|
+
instanceId: this.instanceId,
|
|
226
|
+
config: this.config
|
|
227
|
+
};
|
|
228
|
+
const initPromise = (async ()=>{
|
|
229
|
+
await manager.initialize(context);
|
|
230
|
+
this.initializedManagers.add(name);
|
|
231
|
+
this.logDebug('kernel.manager.initialized', {
|
|
232
|
+
name,
|
|
233
|
+
instanceId: this.instanceId
|
|
234
|
+
});
|
|
235
|
+
})();
|
|
236
|
+
this.managerInitPromises.set(name, initPromise);
|
|
237
|
+
try {
|
|
238
|
+
await initPromise;
|
|
239
|
+
} finally{
|
|
240
|
+
this.managerInitPromises.delete(name);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
async measurePhase(phase, task) {
|
|
244
|
+
const startTime = now();
|
|
245
|
+
this.logDebug('kernel.phase.start', {
|
|
246
|
+
phase,
|
|
247
|
+
startTime,
|
|
248
|
+
instanceId: this.instanceId
|
|
249
|
+
});
|
|
250
|
+
await task();
|
|
251
|
+
const endTime = now();
|
|
252
|
+
const metric = {
|
|
253
|
+
phase,
|
|
254
|
+
startTime,
|
|
255
|
+
endTime,
|
|
256
|
+
duration: endTime - startTime
|
|
257
|
+
};
|
|
258
|
+
this.metrics.push(metric);
|
|
259
|
+
this.logDebug('kernel.phase.end', metric);
|
|
260
|
+
}
|
|
261
|
+
logDebug(message, payload) {
|
|
262
|
+
this.loggerManager.debug(message, payload);
|
|
263
|
+
}
|
|
264
|
+
constructor(instanceId){
|
|
265
|
+
_define_property(this, "instanceId", void 0);
|
|
266
|
+
_define_property(this, "metrics", []);
|
|
267
|
+
_define_property(this, "managers", new Map());
|
|
268
|
+
_define_property(this, "managerInitPromises", new Map());
|
|
269
|
+
_define_property(this, "initializedManagers", new Set());
|
|
270
|
+
_define_property(this, "loggerManager", new _loggerManager.LoggerManager());
|
|
271
|
+
_define_property(this, "cacheManager", new _cacheManager.CacheManager());
|
|
272
|
+
_define_property(this, "themeManager", new _themeManager.ThemeManager());
|
|
273
|
+
_define_property(this, "i18nManager", new _i18nManager.I18nManager());
|
|
274
|
+
_define_property(this, "config", _constants.DEFAULT_CONFIG);
|
|
275
|
+
_define_property(this, "startupPromise", null);
|
|
276
|
+
_define_property(this, "started", false);
|
|
277
|
+
this.instanceId = instanceId;
|
|
278
|
+
this.managers.set('logger', this.loggerManager);
|
|
279
|
+
this.managers.set('cache', this.cacheManager);
|
|
280
|
+
this.managers.set('theme', this.themeManager);
|
|
281
|
+
this.managers.set('i18n', this.i18nManager);
|
|
282
|
+
}
|
|
283
|
+
};
|
|
284
|
+
_define_property(Kernel, "instances", new Map());
|
|
285
|
+
async function startup(options = {}, instanceId = _constants.DEFAULT_INSTANCE_ID) {
|
|
286
|
+
const kernel = Kernel.getInstance(instanceId);
|
|
287
|
+
return kernel.startup(options);
|
|
288
|
+
}
|
|
289
|
+
function getKernel(instanceId = _constants.DEFAULT_INSTANCE_ID) {
|
|
290
|
+
return Kernel.getInstance(instanceId);
|
|
291
|
+
}
|
|
292
|
+
async function kernelStartApp(options = {}, instanceId = _constants.DEFAULT_INSTANCE_ID) {
|
|
293
|
+
return startup(options, instanceId);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
//# sourceMappingURL=kernel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/kernel/kernel.tsx"],"sourcesContent":["import type {\n I18nSnapshot,\n KernelConfig,\n KernelInstanceId,\n KernelManager,\n KernelManagerContext,\n KernelTimingMetric,\n StartOptions,\n ThemeSnapshot,\n} from './types';\nimport { DEFAULT_CONFIG, DEFAULT_I18N, DEFAULT_INSTANCE_ID, DEFAULT_THEME } from './constants';\nimport { LoggerManager } from './manager/loggerManager';\nimport { CacheManager } from './manager/cacheManager';\nimport { ThemeManager } from './manager/themeManager';\nimport { I18nManager } from './manager/i18nManager';\n\nfunction now(): number {\n return typeof performance !== 'undefined' ? performance.now() : Date.now();\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null;\n}\n\nexport class Kernel {\n private static readonly instances = new Map<KernelInstanceId, Kernel>();\n\n public static getInstance(instanceId: KernelInstanceId = DEFAULT_INSTANCE_ID): Kernel {\n const existing = Kernel.instances.get(instanceId);\n if (existing) {\n return existing;\n }\n const created = new Kernel(instanceId);\n Kernel.instances.set(instanceId, created);\n return created;\n }\n\n private readonly instanceId: KernelInstanceId;\n private readonly metrics: KernelTimingMetric[] = [];\n private readonly managers = new Map<string, KernelManager>();\n private readonly managerInitPromises = new Map<string, Promise<void>>();\n private readonly initializedManagers = new Set<string>();\n private readonly loggerManager = new LoggerManager();\n private readonly cacheManager = new CacheManager();\n private readonly themeManager = new ThemeManager();\n private readonly i18nManager = new I18nManager();\n private config: KernelConfig = DEFAULT_CONFIG;\n private startupPromise: Promise<Kernel> | null = null;\n private started = false;\n\n private constructor(instanceId: KernelInstanceId) {\n this.instanceId = instanceId;\n this.managers.set('logger', this.loggerManager);\n this.managers.set('cache', this.cacheManager);\n this.managers.set('theme', this.themeManager);\n this.managers.set('i18n', this.i18nManager);\n }\n\n public getId(): string {\n return this.instanceId;\n }\n\n public getConfig(): KernelConfig {\n return this.config;\n }\n\n public getMetrics(): KernelTimingMetric[] {\n return [...this.metrics];\n }\n\n public getLoggerManager(): LoggerManager {\n return this.loggerManager;\n }\n\n public getCacheManager(): CacheManager {\n return this.cacheManager;\n }\n\n public getThemeManager(): ThemeManager {\n return this.themeManager;\n }\n\n public getI18nManager(): I18nManager {\n return this.i18nManager;\n }\n\n public getManager(name: string): KernelManager | undefined {\n return this.managers.get(name);\n }\n\n public registerManager(name: string, manager: KernelManager): void {\n if (this.managers.has(name)) {\n throw new Error(`Kernel manager \"${name}\" 已存在`);\n }\n this.managers.set(name, manager);\n }\n\n public async startup(options: StartOptions = {}): Promise<Kernel> {\n if (this.started) {\n this.logDebug('kernel.startup.skip.already-started', { instanceId: this.instanceId });\n return this;\n }\n\n if (this.startupPromise) {\n return this.startupPromise;\n }\n\n this.startupPromise = this.bootstrap(options).finally(() => {\n this.startupPromise = null;\n });\n return this.startupPromise;\n }\n\n private async bootstrap(options: StartOptions): Promise<Kernel> {\n await this.measurePhase('startup.begin', async () => {\n this.logDebug('kernel.startup.begin', { instanceId: this.instanceId });\n });\n\n await this.measurePhase('config.load', async () => {\n this.config = await this.resolveConfig(options);\n });\n\n await this.measurePhase('manager.register.custom', async () => {\n if (options.customManagers) {\n Object.entries(options.customManagers).forEach(([name, manager]) => {\n if (!this.managers.has(name)) {\n this.managers.set(name, manager);\n }\n });\n }\n });\n\n await this.measurePhase('manager.initialize.default', async () => {\n await this.initializeManager('cache');\n await Promise.all([\n this.initializeManager('logger'),\n this.initializeManager('theme'),\n this.initializeManager('i18n'),\n ]);\n });\n\n await this.measurePhase('manager.initialize.custom', async () => {\n const customManagerNames = [...this.managers.keys()].filter(\n (name) => name !== 'logger' && name !== 'cache' && name !== 'theme' && name !== 'i18n'\n );\n for (const name of customManagerNames) {\n await this.initializeManager(name);\n }\n });\n\n await this.measurePhase('hooks.initialize', async () => {\n await options.hooks?.initialize?.();\n await options.lifecycle?.initialization?.();\n });\n\n await this.measurePhase('render.custom', async () => {\n if (options.render) {\n await options.render({\n instanceId: this.instanceId,\n config: this.config,\n });\n }\n });\n\n this.started = true;\n this.logDebug('kernel.startup.end', { instanceId: this.instanceId, metrics: this.metrics });\n return this;\n }\n\n private async resolveConfig(options: StartOptions): Promise<KernelConfig> {\n let loaded: Partial<KernelConfig> = {};\n if (options.configLoader) {\n const loaderResult = await options.configLoader();\n loaded = loaderResult || {};\n }\n\n const loadedThemeInitial: Partial<ThemeSnapshot> = loaded.theme?.initial || {};\n const loadedI18nInitial: Partial<I18nSnapshot> = loaded.i18n?.initial || {};\n const optionTheme = options.theme || {};\n const optionLocale = options.locale;\n\n return {\n logger: {\n ...DEFAULT_CONFIG.logger,\n ...loaded.logger,\n ...(options.config?.logger || {}),\n level:\n options.loggerLevel ||\n options.config?.logger?.level ||\n loaded.logger?.level ||\n DEFAULT_CONFIG.logger.level,\n },\n cache: {\n ...DEFAULT_CONFIG.cache,\n ...loaded.cache,\n ...(options.config?.cache || {}),\n storageOptions: {\n ...DEFAULT_CONFIG.cache.storageOptions,\n ...(loaded.cache?.storageOptions || {}),\n ...(options.config?.cache?.storageOptions || {}),\n ...(options.storageOptions || {}),\n },\n },\n theme: {\n ...DEFAULT_CONFIG.theme,\n ...loaded.theme,\n ...(options.config?.theme || {}),\n initial: {\n ...DEFAULT_THEME,\n ...loadedThemeInitial,\n ...(options.config?.theme?.initial || {}),\n ...(isRecord(optionTheme) ? optionTheme : {}),\n },\n },\n i18n: {\n ...DEFAULT_CONFIG.i18n,\n ...loaded.i18n,\n ...(options.config?.i18n || {}),\n initial: {\n ...DEFAULT_I18N,\n ...loadedI18nInitial,\n ...(options.config?.i18n?.initial || {}),\n resources: isRecord(optionLocale)\n ? (optionLocale as I18nSnapshot['resources'])\n : loadedI18nInitial.resources,\n },\n },\n };\n }\n\n private async initializeManager(name: string): Promise<void> {\n if (this.initializedManagers.has(name)) {\n return;\n }\n\n const existingPromise = this.managerInitPromises.get(name);\n if (existingPromise) {\n await existingPromise;\n return;\n }\n\n const manager = this.managers.get(name);\n if (!manager) {\n throw new Error(`Kernel manager \"${name}\" 不存在`);\n }\n\n const context: KernelManagerContext = {\n instanceId: this.instanceId,\n config: this.config,\n };\n\n const initPromise = (async () => {\n await manager.initialize(context);\n this.initializedManagers.add(name);\n this.logDebug('kernel.manager.initialized', { name, instanceId: this.instanceId });\n })();\n\n this.managerInitPromises.set(name, initPromise);\n try {\n await initPromise;\n } finally {\n this.managerInitPromises.delete(name);\n }\n }\n\n private async measurePhase(phase: string, task: () => Promise<void>): Promise<void> {\n const startTime = now();\n this.logDebug('kernel.phase.start', { phase, startTime, instanceId: this.instanceId });\n await task();\n const endTime = now();\n const metric: KernelTimingMetric = {\n phase,\n startTime,\n endTime,\n duration: endTime - startTime,\n };\n this.metrics.push(metric);\n this.logDebug('kernel.phase.end', metric);\n }\n\n private logDebug(message: string, payload?: unknown): void {\n this.loggerManager.debug(message, payload);\n }\n}\n\nexport async function startup(\n options: StartOptions = {},\n instanceId: KernelInstanceId = DEFAULT_INSTANCE_ID\n): Promise<Kernel> {\n const kernel = Kernel.getInstance(instanceId);\n return kernel.startup(options);\n}\n\nexport function getKernel(instanceId: KernelInstanceId = DEFAULT_INSTANCE_ID): Kernel {\n return Kernel.getInstance(instanceId);\n}\n\nexport async function kernelStartApp(\n options: StartOptions = {},\n instanceId: KernelInstanceId = DEFAULT_INSTANCE_ID\n): Promise<Kernel> {\n return startup(options, instanceId);\n}\n"],"names":["Kernel","getKernel","kernelStartApp","startup","now","performance","Date","isRecord","value","getInstance","instanceId","DEFAULT_INSTANCE_ID","existing","instances","get","created","set","getId","getConfig","config","getMetrics","metrics","getLoggerManager","loggerManager","getCacheManager","cacheManager","getThemeManager","themeManager","getI18nManager","i18nManager","getManager","name","managers","registerManager","manager","has","Error","options","started","logDebug","startupPromise","bootstrap","finally","measurePhase","resolveConfig","customManagers","Object","entries","forEach","initializeManager","Promise","all","customManagerNames","keys","filter","hooks","initialize","lifecycle","initialization","render","loaded","configLoader","loaderResult","loadedThemeInitial","theme","initial","loadedI18nInitial","i18n","optionTheme","optionLocale","locale","logger","DEFAULT_CONFIG","level","loggerLevel","cache","storageOptions","DEFAULT_THEME","DEFAULT_I18N","resources","initializedManagers","existingPromise","managerInitPromises","context","initPromise","add","delete","phase","task","startTime","endTime","metric","duration","push","message","payload","debug","Map","Set","LoggerManager","CacheManager","ThemeManager","I18nManager","kernel"],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { KernelConfig, KernelInstanceId, KernelManager, KernelTimingMetric, StartOptions } from './types';
|
|
2
|
+
import { LoggerManager } from './manager/loggerManager';
|
|
3
|
+
import { CacheManager } from './manager/cacheManager';
|
|
4
|
+
import { ThemeManager } from './manager/themeManager';
|
|
5
|
+
import { I18nManager } from './manager/i18nManager';
|
|
6
|
+
export declare class Kernel {
|
|
7
|
+
private static readonly instances;
|
|
8
|
+
static getInstance(instanceId?: KernelInstanceId): Kernel;
|
|
9
|
+
private readonly instanceId;
|
|
10
|
+
private readonly metrics;
|
|
11
|
+
private readonly managers;
|
|
12
|
+
private readonly managerInitPromises;
|
|
13
|
+
private readonly initializedManagers;
|
|
14
|
+
private readonly loggerManager;
|
|
15
|
+
private readonly cacheManager;
|
|
16
|
+
private readonly themeManager;
|
|
17
|
+
private readonly i18nManager;
|
|
18
|
+
private config;
|
|
19
|
+
private startupPromise;
|
|
20
|
+
private started;
|
|
21
|
+
private constructor();
|
|
22
|
+
getId(): string;
|
|
23
|
+
getConfig(): KernelConfig;
|
|
24
|
+
getMetrics(): KernelTimingMetric[];
|
|
25
|
+
getLoggerManager(): LoggerManager;
|
|
26
|
+
getCacheManager(): CacheManager;
|
|
27
|
+
getThemeManager(): ThemeManager;
|
|
28
|
+
getI18nManager(): I18nManager;
|
|
29
|
+
getManager(name: string): KernelManager | undefined;
|
|
30
|
+
registerManager(name: string, manager: KernelManager): void;
|
|
31
|
+
startup(options?: StartOptions): Promise<Kernel>;
|
|
32
|
+
private bootstrap;
|
|
33
|
+
private resolveConfig;
|
|
34
|
+
private initializeManager;
|
|
35
|
+
private measurePhase;
|
|
36
|
+
private logDebug;
|
|
37
|
+
}
|
|
38
|
+
export declare function startup(options?: StartOptions, instanceId?: KernelInstanceId): Promise<Kernel>;
|
|
39
|
+
export declare function getKernel(instanceId?: KernelInstanceId): Kernel;
|
|
40
|
+
export declare function kernelStartApp(options?: StartOptions, instanceId?: KernelInstanceId): Promise<Kernel>;
|