@yumerijs/core 1.0.34 → 1.1.0-alpha.1
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/platform.d.ts +143 -2
- package/dist/platform.js +180 -0
- package/dist/platform.js.map +1 -1
- package/package.json +1 -1
package/dist/platform.d.ts
CHANGED
|
@@ -1,11 +1,152 @@
|
|
|
1
1
|
import { Session } from './session';
|
|
2
2
|
import { Core } from './core';
|
|
3
|
+
/**
|
|
4
|
+
* Platform 基类
|
|
5
|
+
* 作为平台接入的基础类,提供标准化的接口和通用能力
|
|
6
|
+
* 各平台实现类需继承此类并实现所有抽象方法
|
|
7
|
+
*/
|
|
3
8
|
export declare abstract class Platform {
|
|
9
|
+
protected status: 'idle' | 'starting' | 'running' | 'stopping' | 'error';
|
|
10
|
+
protected errorMessage: string | null;
|
|
11
|
+
protected config: Record<string, any>;
|
|
12
|
+
protected instanceId: string;
|
|
13
|
+
protected eventListeners: Record<string, Array<(...args: any[]) => void>>;
|
|
14
|
+
/**
|
|
15
|
+
* 构造函数
|
|
16
|
+
* @param config 平台配置
|
|
17
|
+
*/
|
|
18
|
+
constructor(config?: Record<string, any>);
|
|
19
|
+
/**
|
|
20
|
+
* 生成平台实例ID
|
|
21
|
+
* @returns 实例ID字符串
|
|
22
|
+
*/
|
|
23
|
+
protected generateInstanceId(): string;
|
|
24
|
+
/**
|
|
25
|
+
* 向客户端发送消息
|
|
26
|
+
* @param session 会话对象
|
|
27
|
+
* @param data 要发送的数据
|
|
28
|
+
* @returns 发送结果
|
|
29
|
+
*/
|
|
4
30
|
abstract sendMessage(session: Session, data: any): any;
|
|
31
|
+
/**
|
|
32
|
+
* 结束会话
|
|
33
|
+
* @param session 会话对象
|
|
34
|
+
* @param message 结束消息
|
|
35
|
+
* @returns 结束结果
|
|
36
|
+
*/
|
|
5
37
|
abstract terminationSession(session: Session, message: any): any;
|
|
38
|
+
/**
|
|
39
|
+
* 获取平台名称
|
|
40
|
+
* @returns 平台名称
|
|
41
|
+
*/
|
|
6
42
|
abstract getPlatformName(): string;
|
|
43
|
+
/**
|
|
44
|
+
* 获取平台版本号
|
|
45
|
+
* @returns 平台版本号
|
|
46
|
+
*/
|
|
7
47
|
abstract getPlatformVersionCode(): string;
|
|
48
|
+
/**
|
|
49
|
+
* 获取平台ID
|
|
50
|
+
* @returns 平台ID
|
|
51
|
+
*/
|
|
8
52
|
abstract getPlatformId(): string;
|
|
9
|
-
|
|
10
|
-
|
|
53
|
+
/**
|
|
54
|
+
* 获取平台状态
|
|
55
|
+
* @returns 平台状态对象
|
|
56
|
+
*/
|
|
57
|
+
abstract getPlatformStatus(): Record<string, any>;
|
|
58
|
+
/**
|
|
59
|
+
* 启动平台
|
|
60
|
+
* @param core Core实例
|
|
61
|
+
* @returns 启动结果
|
|
62
|
+
*/
|
|
63
|
+
abstract startPlatform(core?: Core): Promise<any>;
|
|
64
|
+
/**
|
|
65
|
+
* 停止平台
|
|
66
|
+
* @returns 停止结果
|
|
67
|
+
*/
|
|
68
|
+
abstract stopPlatform(): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* 重启平台
|
|
71
|
+
* @param core Core实例
|
|
72
|
+
* @returns 重启结果
|
|
73
|
+
*/
|
|
74
|
+
restartPlatform(core?: Core): Promise<any>;
|
|
75
|
+
/**
|
|
76
|
+
* 设置平台配置
|
|
77
|
+
* @param key 配置键
|
|
78
|
+
* @param value 配置值
|
|
79
|
+
*/
|
|
80
|
+
setConfig(key: string, value: any): void;
|
|
81
|
+
/**
|
|
82
|
+
* 获取平台配置
|
|
83
|
+
* @param key 配置键
|
|
84
|
+
* @param defaultValue 默认值
|
|
85
|
+
* @returns 配置值
|
|
86
|
+
*/
|
|
87
|
+
getConfig<T>(key: string, defaultValue?: T): T;
|
|
88
|
+
/**
|
|
89
|
+
* 获取平台实例ID
|
|
90
|
+
* @returns 实例ID
|
|
91
|
+
*/
|
|
92
|
+
getInstanceId(): string;
|
|
93
|
+
/**
|
|
94
|
+
* 获取当前平台状态
|
|
95
|
+
* @returns 状态字符串
|
|
96
|
+
*/
|
|
97
|
+
getStatus(): 'idle' | 'starting' | 'running' | 'stopping' | 'error';
|
|
98
|
+
/**
|
|
99
|
+
* 获取错误信息
|
|
100
|
+
* @returns 错误信息
|
|
101
|
+
*/
|
|
102
|
+
getErrorMessage(): string | null;
|
|
103
|
+
/**
|
|
104
|
+
* 添加平台事件监听器
|
|
105
|
+
* @param event 事件名称
|
|
106
|
+
* @param listener 监听器函数
|
|
107
|
+
*/
|
|
108
|
+
on(event: string, listener: (...args: any[]) => void): void;
|
|
109
|
+
/**
|
|
110
|
+
* 移除平台事件监听器
|
|
111
|
+
* @param event 事件名称
|
|
112
|
+
* @param listener 监听器函数
|
|
113
|
+
*/
|
|
114
|
+
off(event: string, listener: (...args: any[]) => void): void;
|
|
115
|
+
/**
|
|
116
|
+
* 触发平台事件
|
|
117
|
+
* @param event 事件名称
|
|
118
|
+
* @param args 事件参数
|
|
119
|
+
*/
|
|
120
|
+
protected emit(event: string, ...args: any[]): void;
|
|
121
|
+
/**
|
|
122
|
+
* 创建会话
|
|
123
|
+
* @param ip 客户端IP
|
|
124
|
+
* @param cookie Cookie对象
|
|
125
|
+
* @param query 查询参数
|
|
126
|
+
* @returns 会话对象
|
|
127
|
+
*/
|
|
128
|
+
createSession(ip: string, cookie: Record<string, string>, query?: Record<string, string>): Session;
|
|
129
|
+
/**
|
|
130
|
+
* 处理会话数据
|
|
131
|
+
* @param session 会话对象
|
|
132
|
+
* @param data 会话数据
|
|
133
|
+
* @returns 处理结果
|
|
134
|
+
*/
|
|
135
|
+
processSessionData(session: Session, data: any): any;
|
|
136
|
+
/**
|
|
137
|
+
* 验证会话
|
|
138
|
+
* @param session 会话对象
|
|
139
|
+
* @returns 验证结果
|
|
140
|
+
*/
|
|
141
|
+
validateSession(session: Session): boolean;
|
|
142
|
+
/**
|
|
143
|
+
* 获取平台支持的MIME类型
|
|
144
|
+
* @returns MIME类型数组
|
|
145
|
+
*/
|
|
146
|
+
getSupportedMimeTypes(): string[];
|
|
147
|
+
/**
|
|
148
|
+
* 获取平台元数据
|
|
149
|
+
* @returns 平台元数据
|
|
150
|
+
*/
|
|
151
|
+
getMetadata(): Record<string, any>;
|
|
11
152
|
}
|
package/dist/platform.js
CHANGED
|
@@ -1,7 +1,187 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Platform = void 0;
|
|
4
|
+
const session_1 = require("./session");
|
|
5
|
+
/**
|
|
6
|
+
* Platform 基类
|
|
7
|
+
* 作为平台接入的基础类,提供标准化的接口和通用能力
|
|
8
|
+
* 各平台实现类需继承此类并实现所有抽象方法
|
|
9
|
+
*/
|
|
4
10
|
class Platform {
|
|
11
|
+
/**
|
|
12
|
+
* 构造函数
|
|
13
|
+
* @param config 平台配置
|
|
14
|
+
*/
|
|
15
|
+
constructor(config) {
|
|
16
|
+
// 平台状态
|
|
17
|
+
this.status = 'idle';
|
|
18
|
+
// 平台错误信息
|
|
19
|
+
this.errorMessage = null;
|
|
20
|
+
// 平台配置
|
|
21
|
+
this.config = {};
|
|
22
|
+
// 平台实例ID
|
|
23
|
+
this.instanceId = '';
|
|
24
|
+
// 平台事件监听器
|
|
25
|
+
this.eventListeners = {};
|
|
26
|
+
if (config) {
|
|
27
|
+
this.config = { ...config };
|
|
28
|
+
}
|
|
29
|
+
this.instanceId = this.generateInstanceId();
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* 生成平台实例ID
|
|
33
|
+
* @returns 实例ID字符串
|
|
34
|
+
*/
|
|
35
|
+
generateInstanceId() {
|
|
36
|
+
return `${this.getPlatformId()}-${Date.now()}-${Math.floor(Math.random() * 1000)}`;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* 重启平台
|
|
40
|
+
* @param core Core实例
|
|
41
|
+
* @returns 重启结果
|
|
42
|
+
*/
|
|
43
|
+
async restartPlatform(core) {
|
|
44
|
+
await this.stopPlatform();
|
|
45
|
+
return this.startPlatform(core);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 设置平台配置
|
|
49
|
+
* @param key 配置键
|
|
50
|
+
* @param value 配置值
|
|
51
|
+
*/
|
|
52
|
+
setConfig(key, value) {
|
|
53
|
+
this.config[key] = value;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* 获取平台配置
|
|
57
|
+
* @param key 配置键
|
|
58
|
+
* @param defaultValue 默认值
|
|
59
|
+
* @returns 配置值
|
|
60
|
+
*/
|
|
61
|
+
getConfig(key, defaultValue) {
|
|
62
|
+
return (this.config[key] !== undefined) ? this.config[key] : defaultValue;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* 获取平台实例ID
|
|
66
|
+
* @returns 实例ID
|
|
67
|
+
*/
|
|
68
|
+
getInstanceId() {
|
|
69
|
+
return this.instanceId;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* 获取当前平台状态
|
|
73
|
+
* @returns 状态字符串
|
|
74
|
+
*/
|
|
75
|
+
getStatus() {
|
|
76
|
+
return this.status;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* 获取错误信息
|
|
80
|
+
* @returns 错误信息
|
|
81
|
+
*/
|
|
82
|
+
getErrorMessage() {
|
|
83
|
+
return this.errorMessage;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* 添加平台事件监听器
|
|
87
|
+
* @param event 事件名称
|
|
88
|
+
* @param listener 监听器函数
|
|
89
|
+
*/
|
|
90
|
+
on(event, listener) {
|
|
91
|
+
if (!this.eventListeners[event]) {
|
|
92
|
+
this.eventListeners[event] = [];
|
|
93
|
+
}
|
|
94
|
+
this.eventListeners[event].push(listener);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* 移除平台事件监听器
|
|
98
|
+
* @param event 事件名称
|
|
99
|
+
* @param listener 监听器函数
|
|
100
|
+
*/
|
|
101
|
+
off(event, listener) {
|
|
102
|
+
if (!this.eventListeners[event]) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
this.eventListeners[event] = this.eventListeners[event].filter(l => l !== listener);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* 触发平台事件
|
|
109
|
+
* @param event 事件名称
|
|
110
|
+
* @param args 事件参数
|
|
111
|
+
*/
|
|
112
|
+
emit(event, ...args) {
|
|
113
|
+
if (!this.eventListeners[event]) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
for (const listener of this.eventListeners[event]) {
|
|
117
|
+
try {
|
|
118
|
+
listener(...args);
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
console.error(`Error in platform event listener for "${event}":`, error);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* 创建会话
|
|
127
|
+
* @param ip 客户端IP
|
|
128
|
+
* @param cookie Cookie对象
|
|
129
|
+
* @param query 查询参数
|
|
130
|
+
* @returns 会话对象
|
|
131
|
+
*/
|
|
132
|
+
createSession(ip, cookie, query) {
|
|
133
|
+
return new session_1.Session(ip, cookie, this, query);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* 处理会话数据
|
|
137
|
+
* @param session 会话对象
|
|
138
|
+
* @param data 会话数据
|
|
139
|
+
* @returns 处理结果
|
|
140
|
+
*/
|
|
141
|
+
processSessionData(session, data) {
|
|
142
|
+
// 默认实现,子类可覆盖
|
|
143
|
+
return data;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* 验证会话
|
|
147
|
+
* @param session 会话对象
|
|
148
|
+
* @returns 验证结果
|
|
149
|
+
*/
|
|
150
|
+
validateSession(session) {
|
|
151
|
+
// 默认实现,子类可覆盖
|
|
152
|
+
return true;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* 获取平台支持的MIME类型
|
|
156
|
+
* @returns MIME类型数组
|
|
157
|
+
*/
|
|
158
|
+
getSupportedMimeTypes() {
|
|
159
|
+
// 默认实现,子类可覆盖
|
|
160
|
+
return [
|
|
161
|
+
'text/plain',
|
|
162
|
+
'text/html',
|
|
163
|
+
'application/json',
|
|
164
|
+
'application/xml',
|
|
165
|
+
'image/png',
|
|
166
|
+
'image/jpeg',
|
|
167
|
+
'application/pdf'
|
|
168
|
+
];
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* 获取平台元数据
|
|
172
|
+
* @returns 平台元数据
|
|
173
|
+
*/
|
|
174
|
+
getMetadata() {
|
|
175
|
+
return {
|
|
176
|
+
id: this.getPlatformId(),
|
|
177
|
+
name: this.getPlatformName(),
|
|
178
|
+
version: this.getPlatformVersionCode(),
|
|
179
|
+
status: this.getStatus(),
|
|
180
|
+
instanceId: this.getInstanceId(),
|
|
181
|
+
supportedMimeTypes: this.getSupportedMimeTypes(),
|
|
182
|
+
...this.getPlatformStatus()
|
|
183
|
+
};
|
|
184
|
+
}
|
|
5
185
|
}
|
|
6
186
|
exports.Platform = Platform;
|
|
7
187
|
//# sourceMappingURL=platform.js.map
|
package/dist/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":";;;AAAA,uCAAmC;AAGnC;;;;GAIG;AACH,MAAsB,QAAQ;IAY1B;;;OAGG;IACH,YAAY,MAA4B;QAfxC,OAAO;QACG,WAAM,GAA2D,MAAM,CAAC;QAClF,SAAS;QACC,iBAAY,GAAkB,IAAI,CAAC;QAC7C,OAAO;QACG,WAAM,GAAwB,EAAE,CAAC;QAC3C,SAAS;QACC,eAAU,GAAW,EAAE,CAAC;QAClC,UAAU;QACA,mBAAc,GAAoD,EAAE,CAAC;QAO3E,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAChD,CAAC;IAED;;;OAGG;IACO,kBAAkB;QACxB,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IACvF,CAAC;IAuDD;;;;OAIG;IACI,KAAK,CAAC,eAAe,CAAC,IAAW;QACpC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACI,SAAS,CAAC,GAAW,EAAE,KAAU;QACpC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACI,SAAS,CAAI,GAAW,EAAE,YAAgB;QAC7C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAiB,CAAC;IACnF,CAAC;IAED;;;OAGG;IACI,aAAa;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACI,SAAS;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED;;;OAGG;IACI,eAAe;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACI,EAAE,CAAC,KAAa,EAAE,QAAkC;QACvD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,KAAa,EAAE,QAAkC;QACxD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO;QACX,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;IACxF,CAAC;IAED;;;;OAIG;IACO,IAAI,CAAC,KAAa,EAAE,GAAG,IAAW;QACxC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO;QACX,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC;gBACD,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,yCAAyC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC;YAC7E,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACI,aAAa,CAAC,EAAU,EAAE,MAA8B,EAAE,KAA8B;QAC3F,OAAO,IAAI,iBAAO,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAED;;;;;OAKG;IACI,kBAAkB,CAAC,OAAgB,EAAE,IAAS;QACjD,aAAa;QACb,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACI,eAAe,CAAC,OAAgB;QACnC,aAAa;QACb,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,qBAAqB;QACxB,aAAa;QACb,OAAO;YACH,YAAY;YACZ,WAAW;YACX,kBAAkB;YAClB,iBAAiB;YACjB,WAAW;YACX,YAAY;YACZ,iBAAiB;SACpB,CAAC;IACN,CAAC;IAED;;;OAGG;IACI,WAAW;QACd,OAAO;YACH,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE;YACxB,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE;YAC5B,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE;YACtC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;YACxB,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE;YAChC,kBAAkB,EAAE,IAAI,CAAC,qBAAqB,EAAE;YAChD,GAAG,IAAI,CAAC,iBAAiB,EAAE;SAC9B,CAAC;IACN,CAAC;CACJ;AAnPD,4BAmPC"}
|