@yumerijs/core 1.0.7 → 1.0.9
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/command.d.ts +0 -0
- package/dist/command.js +0 -0
- package/dist/command.js.map +0 -0
- package/dist/config.d.ts +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/core.d.ts +17 -5
- package/dist/core.js +97 -11
- package/dist/core.js.map +1 -1
- package/dist/session.d.ts +2 -3
- package/dist/session.js +2 -28
- package/dist/session.js.map +1 -1
- package/package.json +3 -2
package/dist/command.d.ts
CHANGED
|
File without changes
|
package/dist/command.js
CHANGED
|
File without changes
|
package/dist/command.js.map
CHANGED
|
File without changes
|
package/dist/config.d.ts
CHANGED
package/dist/config.js
CHANGED
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAAA,MAAa,MAAM;IAIf,YAAY,IAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAAA,MAAa,MAAM;IAIf,YAAY,IAAY,EAAE,OAAiC;QAHpD,SAAI,GAAW,EAAE,CAAC;QAClB,YAAO,GAA4B,EAAE,CAAC;QAGzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC,CAAC,iCAAiC;IACnE,CAAC;CACJ;AARD,wBAQC"}
|
package/dist/core.d.ts
CHANGED
|
@@ -4,9 +4,11 @@ interface Plugin {
|
|
|
4
4
|
apply: (core: Core, config: Config) => Promise<void>;
|
|
5
5
|
}
|
|
6
6
|
interface PluginLoader {
|
|
7
|
-
load
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
load(pluginName: string): Promise<Plugin>;
|
|
8
|
+
unloadPlugin(pluginName: string): Promise<void>;
|
|
9
|
+
checkPluginDependencies(pluginPath: string): Promise<boolean>;
|
|
10
|
+
installPluginDependencies(pluginName: string): Promise<void>;
|
|
11
|
+
watchPlugins(core: Core, config: Config, pluginsDir: string): void;
|
|
10
12
|
}
|
|
11
13
|
export declare class Core {
|
|
12
14
|
plugins: {
|
|
@@ -16,9 +18,19 @@ export declare class Core {
|
|
|
16
18
|
private eventListeners;
|
|
17
19
|
private components;
|
|
18
20
|
commands: Record<string, Command>;
|
|
19
|
-
|
|
21
|
+
private pluginLoader;
|
|
22
|
+
constructor(pluginLoader: PluginLoader);
|
|
20
23
|
loadConfig(configPath: string): Promise<void>;
|
|
21
|
-
|
|
24
|
+
getPluginConfig(pluginName: string): Promise<Config>;
|
|
25
|
+
loadPlugins(): Promise<void>;
|
|
26
|
+
loadPlugin(name: string, config: Config): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* 监听插件目录,实现热重载
|
|
29
|
+
* @param core Core实例
|
|
30
|
+
* @param config Config实例
|
|
31
|
+
* @param pluginsDir 插件目录
|
|
32
|
+
*/
|
|
33
|
+
watchPlugins(core: Core, pluginsDir?: string): void;
|
|
22
34
|
registerComponent(name: string, component: any): void;
|
|
23
35
|
getComponent(name: string): any;
|
|
24
36
|
on(event: string, listener: (...args: any[]) => Promise<void>): void;
|
package/dist/core.js
CHANGED
|
@@ -32,20 +32,30 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
35
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
39
|
exports.Core = void 0;
|
|
40
|
+
/**
|
|
41
|
+
* @time: 2025/03/24 00:19
|
|
42
|
+
* @author: FireGuo
|
|
43
|
+
* WindyPear-Team All right reserved
|
|
44
|
+
**/
|
|
37
45
|
const yaml = __importStar(require("js-yaml"));
|
|
38
46
|
const fs = __importStar(require("fs"));
|
|
47
|
+
const path = __importStar(require("path"));
|
|
39
48
|
const config_1 = require("./config");
|
|
40
49
|
const command_1 = require("./command");
|
|
50
|
+
const chokidar_1 = __importDefault(require("chokidar"));
|
|
41
51
|
class Core {
|
|
42
|
-
constructor(
|
|
52
|
+
constructor(pluginLoader) {
|
|
43
53
|
this.plugins = {};
|
|
44
54
|
this.config = null;
|
|
45
55
|
this.eventListeners = {};
|
|
46
56
|
this.components = {};
|
|
47
57
|
this.commands = {};
|
|
48
|
-
|
|
58
|
+
this.pluginLoader = pluginLoader;
|
|
49
59
|
}
|
|
50
60
|
// 加载配置文件
|
|
51
61
|
async loadConfig(configPath) {
|
|
@@ -59,8 +69,17 @@ class Core {
|
|
|
59
69
|
throw e; // 抛出异常,让上层处理
|
|
60
70
|
}
|
|
61
71
|
}
|
|
72
|
+
async getPluginConfig(pluginName) {
|
|
73
|
+
for (const plugins of this.config.plugins) {
|
|
74
|
+
if (plugins.name == pluginName) {
|
|
75
|
+
const config = new config_1.Config(plugins.name, plugins.config);
|
|
76
|
+
return config;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return new config_1.Config(pluginName);
|
|
80
|
+
}
|
|
62
81
|
// 加载插件
|
|
63
|
-
async loadPlugins(
|
|
82
|
+
async loadPlugins() {
|
|
64
83
|
if (!this.config || !this.config.plugins) {
|
|
65
84
|
console.log('No plugins to load.');
|
|
66
85
|
return;
|
|
@@ -69,19 +88,86 @@ class Core {
|
|
|
69
88
|
try {
|
|
70
89
|
console.log(`Loading plugin: ${plugins.name}`);
|
|
71
90
|
const config = new config_1.Config(plugins.name, plugins.config);
|
|
72
|
-
|
|
73
|
-
this.plugins[plugins.name] = plugin;
|
|
74
|
-
console.log(`Plugin ${plugins.name} loaded.`);
|
|
75
|
-
if (plugin.apply) {
|
|
76
|
-
console.log(`Applying plugin: ${plugins.name}`);
|
|
77
|
-
await plugin.apply(this, config);
|
|
78
|
-
console.log(`Plugin ${plugins.name} applied.`);
|
|
79
|
-
}
|
|
91
|
+
await this.loadPlugin(plugins.name, config);
|
|
80
92
|
}
|
|
81
93
|
catch (err) {
|
|
82
94
|
console.error(`Failed to load plugin ${plugins.name}:`, err);
|
|
83
95
|
}
|
|
84
96
|
}
|
|
97
|
+
this.watchPlugins(this);
|
|
98
|
+
}
|
|
99
|
+
async loadPlugin(name, config) {
|
|
100
|
+
const plugin = await this.pluginLoader.load(name);
|
|
101
|
+
this.plugins[name] = plugin;
|
|
102
|
+
console.log(`Plugin ${name} loaded.`);
|
|
103
|
+
if (plugin.apply) {
|
|
104
|
+
console.log(`Applying plugin: ${name}`);
|
|
105
|
+
await plugin.apply(this, config);
|
|
106
|
+
console.log(`Plugin ${name} applied.`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* 监听插件目录,实现热重载
|
|
111
|
+
* @param core Core实例
|
|
112
|
+
* @param config Config实例
|
|
113
|
+
* @param pluginsDir 插件目录
|
|
114
|
+
*/
|
|
115
|
+
watchPlugins(core, pluginsDir = 'plugins') {
|
|
116
|
+
const watcher = chokidar_1.default.watch(pluginsDir, {
|
|
117
|
+
ignored: /(^|[/\\])\../, // 忽略点文件
|
|
118
|
+
persistent: true,
|
|
119
|
+
ignoreInitial: true,
|
|
120
|
+
awaitWriteFinish: {
|
|
121
|
+
stabilityThreshold: 200,
|
|
122
|
+
pollInterval: 100
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
watcher.on('add', async (pluginName) => {
|
|
126
|
+
if (pluginName.endsWith('.ts') || pluginName.endsWith('.js'))
|
|
127
|
+
return;
|
|
128
|
+
//console.log(`New plugin detected: ${pluginName}`);
|
|
129
|
+
try {
|
|
130
|
+
// 仅加载目录名作为插件名
|
|
131
|
+
const pluginDirName = path.basename(pluginName);
|
|
132
|
+
const config = await core.getPluginConfig(pluginName);
|
|
133
|
+
await core.loadPlugin(pluginName, config);
|
|
134
|
+
core.emit('plugin-loaded', pluginName);
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
console.error(`Failed to load new plugin ${pluginName}:`, error);
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
watcher.on('change', async (pluginName) => {
|
|
141
|
+
if (!pluginName.endsWith('.ts'))
|
|
142
|
+
return;
|
|
143
|
+
console.log(`Plugin changed: ${pluginName}`);
|
|
144
|
+
try {
|
|
145
|
+
const pluginDirName = path.dirname(pluginName);
|
|
146
|
+
const config = await core.getPluginConfig(pluginName);
|
|
147
|
+
//const pluginDirName = path.basename(pluginName);
|
|
148
|
+
await core.pluginLoader.unloadPlugin(pluginDirName);
|
|
149
|
+
await core.loadPlugin(pluginName, config);
|
|
150
|
+
core.emit('plugin-reloaded', pluginName);
|
|
151
|
+
}
|
|
152
|
+
catch (error) {
|
|
153
|
+
console.error(`Failed to reload plugin ${pluginName}:`, error);
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
watcher.on('unlink', async (pluginName) => {
|
|
157
|
+
if (!pluginName.endsWith('.ts'))
|
|
158
|
+
return;
|
|
159
|
+
console.log(`Plugin removed: ${pluginName}`);
|
|
160
|
+
try {
|
|
161
|
+
const pluginDirName = path.dirname(pluginName);
|
|
162
|
+
//const pluginDirName = path.basename(pluginName);
|
|
163
|
+
await core.pluginLoader.unloadPlugin(pluginDirName);
|
|
164
|
+
core.emit('plugin-unloaded', pluginName);
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
console.error(`Failed to unload plugin ${pluginName}:`, error);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
console.log(`Watching for plugin changes in ${pluginsDir}`);
|
|
85
171
|
}
|
|
86
172
|
// 注册组件
|
|
87
173
|
registerComponent(name, component) {
|
package/dist/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
package/dist/session.d.ts
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
export declare class Session {
|
|
2
2
|
ip: string;
|
|
3
|
-
cookie:
|
|
3
|
+
cookie: Record<string, string>;
|
|
4
4
|
query: Record<string, string> | undefined;
|
|
5
5
|
sessionid: string;
|
|
6
6
|
data: Record<string, any>;
|
|
7
|
-
constructor(ip: string, cookie:
|
|
7
|
+
constructor(ip: string, cookie: Record<string, string>, query?: Record<string, string>);
|
|
8
8
|
private generateId;
|
|
9
9
|
private md5;
|
|
10
10
|
setData(key: string, value: any): void;
|
|
11
11
|
deleteData(key: string): void;
|
|
12
12
|
clearData(): void;
|
|
13
13
|
destroy(): void;
|
|
14
|
-
private getCommand;
|
|
15
14
|
}
|
package/dist/session.js
CHANGED
|
@@ -16,16 +16,8 @@ class Session {
|
|
|
16
16
|
this.ip = ip;
|
|
17
17
|
this.cookie = cookie;
|
|
18
18
|
this.query = query;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
jsoncookie = JSON.parse(this.cookie);
|
|
22
|
-
}
|
|
23
|
-
catch (error) {
|
|
24
|
-
console.error("Error parsing cookie:", error);
|
|
25
|
-
jsoncookie = {};
|
|
26
|
-
}
|
|
27
|
-
if (jsoncookie.sessionid) {
|
|
28
|
-
this.sessionid = jsoncookie.sessionid;
|
|
19
|
+
if (cookie.sessionid) {
|
|
20
|
+
this.sessionid = cookie.sessionid;
|
|
29
21
|
}
|
|
30
22
|
else {
|
|
31
23
|
this.sessionid = this.generateId(this.ip);
|
|
@@ -60,24 +52,6 @@ class Session {
|
|
|
60
52
|
destroy() {
|
|
61
53
|
this.clearData(); // 清理会话数据
|
|
62
54
|
}
|
|
63
|
-
// 从请求路径提取指令和剩余的查询字符串
|
|
64
|
-
getCommand() {
|
|
65
|
-
try {
|
|
66
|
-
const jsoncookie = JSON.parse(this.cookie);
|
|
67
|
-
if (jsoncookie.requestPath) {
|
|
68
|
-
const path = jsoncookie.requestPath;
|
|
69
|
-
const pathParts = path.split('?'); // 分割路径和查询字符串
|
|
70
|
-
const command = pathParts[0].substring(1); // 移除开头的 '/' (如果存在)
|
|
71
|
-
const queryString = pathParts.length > 1 ? pathParts[1] : null; // 获取查询字符串,若没有则为 null
|
|
72
|
-
return { command: command || null, queryString };
|
|
73
|
-
}
|
|
74
|
-
return { command: null, queryString: null };
|
|
75
|
-
}
|
|
76
|
-
catch (e) {
|
|
77
|
-
console.error('Could not extract path from cookie', e);
|
|
78
|
-
return { command: null, queryString: null };
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
55
|
}
|
|
82
56
|
exports.Session = Session;
|
|
83
57
|
//# sourceMappingURL=session.js.map
|
package/dist/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAE5B,MAAa,OAAO;IAQhB;;;;OAIG;IACH,YAAY,EAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAE5B,MAAa,OAAO;IAQhB;;;;OAIG;IACH,YAAY,EAAU,EAAE,MAA8B,EAAE,KAA8B;QAR/E,SAAI,GAAwB,EAAE,CAAC;QASlC,IAAI,CAAC,EAAE,GAAI,EAAE,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACtC,CAAC;aACI,CAAC;YACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1C,wCAAwC;YACxC,8CAA8C;QAClD,CAAC;IACL,CAAC;IAED,eAAe;IACP,UAAU,CAAC,EAAU,EAAE,MAAe;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ;QAC3F,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,SAAS;IACD,GAAG,CAAC,GAAW;QACnB,MAAM,IAAI,GAAG,gBAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS;IACF,OAAO,CAAC,GAAW,EAAE,KAAU;QAClC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,SAAS;IACF,UAAU,CAAC,GAAW;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,SAAS;IACF,SAAS;QACb,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,WAAW;IACJ,OAAO;QACV,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS;IAC/B,CAAC;CACJ;AA5DD,0BA4DC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yumerijs/core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.9",
|
|
4
4
|
"description": "Core module for yumeri",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
],
|
|
10
10
|
"scripts": {
|
|
11
11
|
"build": "tsc",
|
|
12
|
-
"prepublishOnly": "
|
|
12
|
+
"prepublishOnly": "yarn build"
|
|
13
13
|
},
|
|
14
14
|
"repository": {
|
|
15
15
|
"type": "git",
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"typescript": "^5.8.2"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
+
"chokidar": "^4.0.3",
|
|
34
35
|
"js-sha256": "^0.11.0",
|
|
35
36
|
"js-yaml": "^4.1.0"
|
|
36
37
|
}
|