@zhin.js/client 1.0.16 → 1.0.18
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/client/app.ts +228 -0
- package/client/index.ts +42 -14
- package/client/websocket/hooks.ts +218 -510
- package/client/websocket/index.ts +6 -43
- package/client/websocket/instance.ts +10 -32
- package/client/websocket/manager.ts +173 -390
- package/client/websocket/types.ts +58 -222
- package/dist/app.d.ts +95 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +147 -0
- package/dist/app.js.map +1 -0
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -14
- package/dist/index.js.map +1 -1
- package/dist/websocket/hooks.d.ts +35 -58
- package/dist/websocket/hooks.d.ts.map +1 -1
- package/dist/websocket/hooks.js +134 -410
- package/dist/websocket/hooks.js.map +1 -1
- package/dist/websocket/index.d.ts +5 -10
- package/dist/websocket/index.d.ts.map +1 -1
- package/dist/websocket/index.js +5 -25
- package/dist/websocket/index.js.map +1 -1
- package/dist/websocket/instance.d.ts +1 -14
- package/dist/websocket/instance.d.ts.map +1 -1
- package/dist/websocket/instance.js +2 -20
- package/dist/websocket/instance.js.map +1 -1
- package/dist/websocket/manager.d.ts +23 -93
- package/dist/websocket/manager.d.ts.map +1 -1
- package/dist/websocket/manager.js +87 -227
- package/dist/websocket/manager.js.map +1 -1
- package/dist/websocket/types.d.ts +35 -122
- package/dist/websocket/types.d.ts.map +1 -1
- package/dist/websocket/types.js +4 -13
- package/dist/websocket/types.js.map +1 -1
- package/package.json +12 -11
- package/client/router/index.tsx +0 -54
- package/client/store/index.ts +0 -132
- package/client/store/reducers/config.ts +0 -135
- package/client/store/reducers/index.ts +0 -19
- package/client/store/reducers/route.ts +0 -126
- package/client/store/reducers/script.ts +0 -109
- package/client/store/reducers/ui.ts +0 -31
- package/client/websocket/messageHandler.ts +0 -208
- package/dist/router/index.d.ts +0 -25
- package/dist/router/index.d.ts.map +0 -1
- package/dist/router/index.js +0 -48
- package/dist/router/index.js.map +0 -1
- package/dist/store/index.d.ts +0 -19
- package/dist/store/index.d.ts.map +0 -1
- package/dist/store/index.js +0 -67
- package/dist/store/index.js.map +0 -1
- package/dist/store/reducers/config.d.ts +0 -54
- package/dist/store/reducers/config.d.ts.map +0 -1
- package/dist/store/reducers/config.js +0 -78
- package/dist/store/reducers/config.js.map +0 -1
- package/dist/store/reducers/index.d.ts +0 -13
- package/dist/store/reducers/index.d.ts.map +0 -1
- package/dist/store/reducers/index.js +0 -11
- package/dist/store/reducers/index.js.map +0 -1
- package/dist/store/reducers/route.d.ts +0 -30
- package/dist/store/reducers/route.d.ts.map +0 -1
- package/dist/store/reducers/route.js +0 -85
- package/dist/store/reducers/route.js.map +0 -1
- package/dist/store/reducers/script.d.ts +0 -13
- package/dist/store/reducers/script.d.ts.map +0 -1
- package/dist/store/reducers/script.js +0 -78
- package/dist/store/reducers/script.js.map +0 -1
- package/dist/store/reducers/ui.d.ts +0 -8
- package/dist/store/reducers/ui.d.ts.map +0 -1
- package/dist/store/reducers/ui.js +0 -23
- package/dist/store/reducers/ui.js.map +0 -1
- package/dist/websocket/messageHandler.d.ts +0 -58
- package/dist/websocket/messageHandler.d.ts.map +0 -1
- package/dist/websocket/messageHandler.js +0 -174
- package/dist/websocket/messageHandler.js.map +0 -1
|
@@ -1,259 +1,95 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WebSocket 相关类型定义
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
// ============================================================================
|
|
6
|
-
// 基础消息类型
|
|
7
|
-
// ============================================================================
|
|
8
|
-
|
|
9
1
|
export interface BaseMessage {
|
|
10
|
-
type: string
|
|
11
|
-
timestamp?: number
|
|
12
|
-
requestId?: number
|
|
13
|
-
error?: string
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
// ============================================================================
|
|
17
|
-
// 脚本管理消息类型
|
|
18
|
-
// ============================================================================
|
|
19
|
-
|
|
20
|
-
export interface ScriptSyncMessage extends BaseMessage {
|
|
21
|
-
type: 'sync'
|
|
22
|
-
data: {
|
|
23
|
-
key: 'entries'
|
|
24
|
-
value: string[]
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export interface ScriptAddMessage extends BaseMessage {
|
|
29
|
-
type: 'add'
|
|
30
|
-
data: {
|
|
31
|
-
key: 'entries'
|
|
32
|
-
value: string
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export interface ScriptDeleteMessage extends BaseMessage {
|
|
37
|
-
type: 'delete'
|
|
38
|
-
data: {
|
|
39
|
-
key: 'entries'
|
|
40
|
-
value: string
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// ============================================================================
|
|
45
|
-
// 配置管理消息类型
|
|
46
|
-
// ============================================================================
|
|
47
|
-
|
|
48
|
-
export interface ConfigGetMessage extends BaseMessage {
|
|
49
|
-
type: 'config:get'
|
|
50
|
-
pluginName: string
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export interface ConfigSetMessage extends BaseMessage {
|
|
54
|
-
type: 'config:set'
|
|
55
|
-
pluginName: string
|
|
56
|
-
data: any
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
export interface ConfigUpdatedMessage extends BaseMessage {
|
|
60
|
-
type: 'config:updated'
|
|
61
|
-
pluginName: string
|
|
62
|
-
data: any
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export interface ConfigBatchMessage extends BaseMessage {
|
|
66
|
-
type: 'config:batch'
|
|
67
|
-
data: Record<string, any>
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
export interface ConfigErrorMessage extends BaseMessage {
|
|
71
|
-
type: 'config:error'
|
|
72
|
-
pluginName: string
|
|
73
|
-
error: string
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
export interface SchemaGetMessage extends BaseMessage {
|
|
77
|
-
type: 'schema:get'
|
|
78
|
-
pluginName: string
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
export interface SchemaUpdatedMessage extends BaseMessage {
|
|
82
|
-
type: 'schema:updated'
|
|
83
|
-
pluginName: string
|
|
84
|
-
data: any
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
export interface SchemaBatchMessage extends BaseMessage {
|
|
88
|
-
type: 'schema:batch'
|
|
89
|
-
data: Record<string, any>
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
// ============================================================================
|
|
93
|
-
// 系统消息类型
|
|
94
|
-
// ============================================================================
|
|
95
|
-
|
|
96
|
-
export interface InitDataMessage extends BaseMessage {
|
|
97
|
-
type: 'init-data'
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
export interface DataUpdateMessage extends BaseMessage {
|
|
101
|
-
type: 'data-update'
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
export interface HmrReloadMessage extends BaseMessage {
|
|
105
|
-
type: 'hmr:reload'
|
|
106
|
-
data?: { file?: string }
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
export interface SystemRestartingMessage extends BaseMessage {
|
|
110
|
-
type: 'system:restarting'
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
// ============================================================================
|
|
114
|
-
// 文件管理类型
|
|
115
|
-
// ============================================================================
|
|
116
|
-
|
|
117
|
-
export interface FileTreeNode {
|
|
118
|
-
name: string
|
|
119
|
-
path: string
|
|
120
|
-
type: 'file' | 'directory'
|
|
121
|
-
children?: FileTreeNode[]
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
// ============================================================================
|
|
125
|
-
// 数据库管理类型
|
|
126
|
-
// ============================================================================
|
|
127
|
-
|
|
128
|
-
export type DatabaseType = 'related' | 'document' | 'keyvalue'
|
|
129
|
-
|
|
130
|
-
export interface DatabaseInfo {
|
|
131
|
-
dialect: string
|
|
132
|
-
type: DatabaseType
|
|
133
|
-
tables: string[]
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
export interface TableInfo {
|
|
137
|
-
name: string
|
|
138
|
-
columns?: Record<string, { type: string; primary?: boolean; nullable?: boolean; default?: any }>
|
|
2
|
+
type: string;
|
|
3
|
+
timestamp?: number;
|
|
4
|
+
requestId?: number;
|
|
5
|
+
error?: string;
|
|
139
6
|
}
|
|
140
7
|
|
|
141
|
-
export
|
|
142
|
-
rows: any[]
|
|
143
|
-
total: number
|
|
144
|
-
page: number
|
|
145
|
-
pageSize: number
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
export interface KvEntry {
|
|
149
|
-
key: string
|
|
150
|
-
value: any
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
// ============================================================================
|
|
154
|
-
// 联合类型
|
|
155
|
-
// ============================================================================
|
|
156
|
-
|
|
157
|
-
export type WebSocketMessage =
|
|
158
|
-
| ScriptSyncMessage
|
|
159
|
-
| ScriptAddMessage
|
|
160
|
-
| ScriptDeleteMessage
|
|
161
|
-
| ConfigGetMessage
|
|
162
|
-
| ConfigSetMessage
|
|
163
|
-
| ConfigUpdatedMessage
|
|
164
|
-
| ConfigBatchMessage
|
|
165
|
-
| ConfigErrorMessage
|
|
166
|
-
| SchemaGetMessage
|
|
167
|
-
| SchemaUpdatedMessage
|
|
168
|
-
| SchemaBatchMessage
|
|
169
|
-
| InitDataMessage
|
|
170
|
-
| DataUpdateMessage
|
|
171
|
-
| HmrReloadMessage
|
|
172
|
-
| SystemRestartingMessage
|
|
173
|
-
|
|
174
|
-
// ============================================================================
|
|
175
|
-
// 配置选项类型
|
|
176
|
-
// ============================================================================
|
|
8
|
+
export type WebSocketMessage = BaseMessage & { data?: unknown; [key: string]: unknown };
|
|
177
9
|
|
|
178
10
|
export interface WebSocketConfig {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
/** 最大重连尝试次数 */
|
|
184
|
-
maxReconnectAttempts?: number
|
|
185
|
-
/** 请求超时时间(毫秒) */
|
|
186
|
-
requestTimeout?: number
|
|
11
|
+
url?: string;
|
|
12
|
+
reconnectInterval?: number;
|
|
13
|
+
maxReconnectAttempts?: number;
|
|
14
|
+
requestTimeout?: number;
|
|
187
15
|
}
|
|
188
16
|
|
|
189
17
|
export interface WebSocketCallbacks {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
/** 连接错误回调 */
|
|
195
|
-
onError?: (error: Event) => void
|
|
196
|
-
/** 消息接收回调 */
|
|
197
|
-
onMessage?: (message: WebSocketMessage) => void
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
// ============================================================================
|
|
201
|
-
// Hook 配置类型
|
|
202
|
-
// ============================================================================
|
|
203
|
-
|
|
204
|
-
export interface UseConfigOptions {
|
|
205
|
-
/** 是否自动加载配置 */
|
|
206
|
-
autoLoad?: boolean
|
|
207
|
-
/** 是否自动加载 Schema */
|
|
208
|
-
autoLoadSchema?: boolean
|
|
18
|
+
onConnect?: () => void;
|
|
19
|
+
onDisconnect?: () => void;
|
|
20
|
+
onError?: (error: Event) => void;
|
|
21
|
+
onMessage?: (message: WebSocketMessage) => void;
|
|
209
22
|
}
|
|
210
23
|
|
|
211
24
|
export interface UseWebSocketOptions {
|
|
212
|
-
|
|
213
|
-
autoConnect?: boolean
|
|
25
|
+
autoConnect?: boolean;
|
|
214
26
|
}
|
|
215
27
|
|
|
216
|
-
// ============================================================================
|
|
217
|
-
// 连接状态枚举
|
|
218
|
-
// ============================================================================
|
|
219
|
-
|
|
220
28
|
export enum ConnectionState {
|
|
221
|
-
DISCONNECTED =
|
|
222
|
-
CONNECTING =
|
|
223
|
-
CONNECTED =
|
|
224
|
-
RECONNECTING =
|
|
225
|
-
ERROR =
|
|
29
|
+
DISCONNECTED = "disconnected",
|
|
30
|
+
CONNECTING = "connecting",
|
|
31
|
+
CONNECTED = "connected",
|
|
32
|
+
RECONNECTING = "reconnecting",
|
|
33
|
+
ERROR = "error",
|
|
226
34
|
}
|
|
227
35
|
|
|
228
|
-
// ============================================================================
|
|
229
|
-
// 错误类型
|
|
230
|
-
// ============================================================================
|
|
231
|
-
|
|
232
36
|
export class WebSocketError extends Error {
|
|
233
37
|
constructor(
|
|
234
38
|
message: string,
|
|
235
39
|
public code: string,
|
|
236
|
-
public originalError?: Error
|
|
40
|
+
public originalError?: Error,
|
|
237
41
|
) {
|
|
238
|
-
super(message)
|
|
239
|
-
this.name =
|
|
42
|
+
super(message);
|
|
43
|
+
this.name = "WebSocketError";
|
|
240
44
|
}
|
|
241
45
|
}
|
|
242
46
|
|
|
243
47
|
export class RequestTimeoutError extends WebSocketError {
|
|
244
48
|
constructor(requestId: number) {
|
|
245
|
-
super(`Request ${requestId} timed out`,
|
|
49
|
+
super(`Request ${requestId} timed out`, "REQUEST_TIMEOUT");
|
|
246
50
|
}
|
|
247
51
|
}
|
|
248
52
|
|
|
249
53
|
export class ConnectionError extends WebSocketError {
|
|
250
54
|
constructor(message: string, originalError?: Error) {
|
|
251
|
-
super(message,
|
|
55
|
+
super(message, "CONNECTION_ERROR", originalError);
|
|
252
56
|
}
|
|
253
57
|
}
|
|
254
58
|
|
|
255
59
|
export class MessageError extends WebSocketError {
|
|
256
60
|
constructor(message: string, originalError?: Error) {
|
|
257
|
-
super(message,
|
|
61
|
+
super(message, "MESSAGE_ERROR", originalError);
|
|
258
62
|
}
|
|
259
|
-
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export interface FileTreeNode {
|
|
66
|
+
name: string;
|
|
67
|
+
path: string;
|
|
68
|
+
type: "file" | "directory";
|
|
69
|
+
children?: FileTreeNode[];
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export type DatabaseType = "related" | "document" | "keyvalue";
|
|
73
|
+
|
|
74
|
+
export interface DatabaseInfo {
|
|
75
|
+
dialect: string;
|
|
76
|
+
type: DatabaseType;
|
|
77
|
+
tables: string[];
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export interface TableInfo {
|
|
81
|
+
name: string;
|
|
82
|
+
columns?: Record<string, { type: string; primary?: boolean; nullable?: boolean; default?: unknown }>;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export interface SelectResult {
|
|
86
|
+
rows: unknown[];
|
|
87
|
+
total: number;
|
|
88
|
+
page: number;
|
|
89
|
+
pageSize: number;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export interface KvEntry {
|
|
93
|
+
key: string;
|
|
94
|
+
value: unknown;
|
|
95
|
+
}
|
package/dist/app.d.ts
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type AddRouteInput = {
|
|
3
|
+
path: string;
|
|
4
|
+
name: string;
|
|
5
|
+
element: React.ReactNode;
|
|
6
|
+
parent?: string | null;
|
|
7
|
+
icon?: React.ReactNode | string;
|
|
8
|
+
requiredPermissions?: string[];
|
|
9
|
+
requiredRoles?: string[];
|
|
10
|
+
meta?: {
|
|
11
|
+
hideInMenu?: boolean;
|
|
12
|
+
order?: number;
|
|
13
|
+
group?: string;
|
|
14
|
+
fullWidth?: boolean;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export type AddToolInput = {
|
|
18
|
+
id?: string;
|
|
19
|
+
name: string;
|
|
20
|
+
icon?: React.ReactNode;
|
|
21
|
+
parent?: string | null;
|
|
22
|
+
path?: string;
|
|
23
|
+
};
|
|
24
|
+
export type ConsoleRouteRecord = {
|
|
25
|
+
path: string;
|
|
26
|
+
name: string;
|
|
27
|
+
element: React.ReactNode;
|
|
28
|
+
parent: string | null;
|
|
29
|
+
icon?: React.ReactNode | string;
|
|
30
|
+
requiredPermissions?: string[];
|
|
31
|
+
requiredRoles?: string[];
|
|
32
|
+
meta?: {
|
|
33
|
+
hideInMenu?: boolean;
|
|
34
|
+
order?: number;
|
|
35
|
+
group?: string;
|
|
36
|
+
fullWidth?: boolean;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
export type InternalToolRecord = {
|
|
40
|
+
id: string;
|
|
41
|
+
name: string;
|
|
42
|
+
icon?: React.ReactNode;
|
|
43
|
+
parent: string | null;
|
|
44
|
+
path?: string;
|
|
45
|
+
};
|
|
46
|
+
export type RouteTreeNode = ConsoleRouteRecord & {
|
|
47
|
+
children: RouteTreeNode[];
|
|
48
|
+
};
|
|
49
|
+
export type ToolTreeNode = InternalToolRecord & {
|
|
50
|
+
children: ToolTreeNode[];
|
|
51
|
+
};
|
|
52
|
+
type SidebarRenderer = (options: {
|
|
53
|
+
routes: RouteTreeNode[];
|
|
54
|
+
}) => React.ReactNode;
|
|
55
|
+
type ToolbarRenderer = (options: {
|
|
56
|
+
tools: ToolTreeNode[];
|
|
57
|
+
}) => React.ReactNode;
|
|
58
|
+
export type ConsoleRouteRenderer = (route: ConsoleRouteRecord) => React.ReactNode;
|
|
59
|
+
declare function subscribe(listener: () => void): () => boolean;
|
|
60
|
+
declare function getVersion(): number;
|
|
61
|
+
declare function createConsoleApp(): {
|
|
62
|
+
subscribe: typeof subscribe;
|
|
63
|
+
getVersion: typeof getVersion;
|
|
64
|
+
defineSidebar(render: SidebarRenderer): void;
|
|
65
|
+
defineToolbar(render: ToolbarRenderer): void;
|
|
66
|
+
defineRouter(render: ConsoleRouteRenderer): void;
|
|
67
|
+
addRoute(input: AddRouteInput): void;
|
|
68
|
+
removeRoute(path: string): void;
|
|
69
|
+
addTool(input: AddToolInput): string;
|
|
70
|
+
getRouteTree(): RouteTreeNode[];
|
|
71
|
+
getToolTree(): ToolTreeNode[];
|
|
72
|
+
_getRoutes(): readonly ConsoleRouteRecord[];
|
|
73
|
+
_getSidebarRenderer(): SidebarRenderer | null;
|
|
74
|
+
_getToolbarRenderer(): ToolbarRenderer | null;
|
|
75
|
+
_renderRouteElement(route: ConsoleRouteRecord): React.ReactNode;
|
|
76
|
+
};
|
|
77
|
+
export type ConsoleApp = ReturnType<typeof createConsoleApp>;
|
|
78
|
+
export declare const app: {
|
|
79
|
+
subscribe: typeof subscribe;
|
|
80
|
+
getVersion: typeof getVersion;
|
|
81
|
+
defineSidebar(render: SidebarRenderer): void;
|
|
82
|
+
defineToolbar(render: ToolbarRenderer): void;
|
|
83
|
+
defineRouter(render: ConsoleRouteRenderer): void;
|
|
84
|
+
addRoute(input: AddRouteInput): void;
|
|
85
|
+
removeRoute(path: string): void;
|
|
86
|
+
addTool(input: AddToolInput): string;
|
|
87
|
+
getRouteTree(): RouteTreeNode[];
|
|
88
|
+
getToolTree(): ToolTreeNode[];
|
|
89
|
+
_getRoutes(): readonly ConsoleRouteRecord[];
|
|
90
|
+
_getSidebarRenderer(): SidebarRenderer | null;
|
|
91
|
+
_getToolbarRenderer(): ToolbarRenderer | null;
|
|
92
|
+
_renderRouteElement(route: ConsoleRouteRecord): React.ReactNode;
|
|
93
|
+
};
|
|
94
|
+
export {};
|
|
95
|
+
//# sourceMappingURL=app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../client/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;IAChC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE;QACL,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;IAChC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE;QACL,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG;IAAE,QAAQ,EAAE,aAAa,EAAE,CAAA;CAAE,CAAC;AAC/E,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG;IAAE,QAAQ,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC;AAE7E,KAAK,eAAe,GAAG,CAAC,OAAO,EAAE;IAAE,MAAM,EAAE,aAAa,EAAE,CAAA;CAAE,KAAK,KAAK,CAAC,SAAS,CAAC;AACjF,KAAK,eAAe,GAAG,CAAC,OAAO,EAAE;IAAE,KAAK,EAAE,YAAY,EAAE,CAAA;CAAE,KAAK,KAAK,CAAC,SAAS,CAAC;AAC/E,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,kBAAkB,KAAK,KAAK,CAAC,SAAS,CAAC;AAUlF,iBAAS,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,iBAGtC;AAED,iBAAS,UAAU,WAElB;AAkED,iBAAS,gBAAgB;;;0BAKC,eAAe;0BAKf,eAAe;yBAKhB,oBAAoB;oBAKzB,aAAa;sBAgBX,MAAM;mBAKT,YAAY,GAAG,MAAM;oBAoBpB,aAAa,EAAE;mBAIhB,YAAY,EAAE;kBAIf,SAAS,kBAAkB,EAAE;2BAIpB,eAAe,GAAG,IAAI;2BAItB,eAAe,GAAG,IAAI;+BAIlB,kBAAkB,GAAG,KAAK,CAAC,SAAS;EAIlE;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE7D,eAAO,MAAM,GAAG;;;0BApFU,eAAe;0BAKf,eAAe;yBAKhB,oBAAoB;oBAKzB,aAAa;sBAgBX,MAAM;mBAKT,YAAY,GAAG,MAAM;oBAoBpB,aAAa,EAAE;mBAIhB,YAAY,EAAE;kBAIf,SAAS,kBAAkB,EAAE;2BAIpB,eAAe,GAAG,IAAI;2BAItB,eAAe,GAAG,IAAI;+BAIlB,kBAAkB,GAAG,KAAK,CAAC,SAAS;CAQ9B,CAAC"}
|
package/dist/app.js
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
const listeners = new Set();
|
|
2
|
+
let version = 0;
|
|
3
|
+
function bump() {
|
|
4
|
+
version++;
|
|
5
|
+
for (const l of listeners)
|
|
6
|
+
l();
|
|
7
|
+
}
|
|
8
|
+
function subscribe(listener) {
|
|
9
|
+
listeners.add(listener);
|
|
10
|
+
return () => listeners.delete(listener);
|
|
11
|
+
}
|
|
12
|
+
function getVersion() {
|
|
13
|
+
return version;
|
|
14
|
+
}
|
|
15
|
+
let routes = [];
|
|
16
|
+
let tools = [];
|
|
17
|
+
let sidebarRenderer = null;
|
|
18
|
+
let toolbarRenderer = null;
|
|
19
|
+
let routeRenderer = null;
|
|
20
|
+
function slugId(name) {
|
|
21
|
+
return (name
|
|
22
|
+
.toLowerCase()
|
|
23
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
24
|
+
.replace(/^-|-$/g, "") || "tool");
|
|
25
|
+
}
|
|
26
|
+
function buildRouteTree(flatRoutes) {
|
|
27
|
+
const nodes = flatRoutes.map((r) => ({ ...r, children: [] }));
|
|
28
|
+
const roots = [];
|
|
29
|
+
for (const node of nodes) {
|
|
30
|
+
if (!node.parent) {
|
|
31
|
+
roots.push(node);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
const parent = nodes.find((n) => n.path === node.parent);
|
|
35
|
+
if (parent) {
|
|
36
|
+
parent.children.push(node);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
roots.push(node);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const sortFn = (a, b) => (a.meta?.order ?? 999) - (b.meta?.order ?? 999);
|
|
44
|
+
roots.sort(sortFn);
|
|
45
|
+
for (const n of nodes)
|
|
46
|
+
n.children.sort(sortFn);
|
|
47
|
+
return roots;
|
|
48
|
+
}
|
|
49
|
+
function buildToolTree(flatTools) {
|
|
50
|
+
const nodes = flatTools.map((t) => ({ ...t, children: [] }));
|
|
51
|
+
const roots = [];
|
|
52
|
+
for (const node of nodes) {
|
|
53
|
+
if (!node.parent) {
|
|
54
|
+
roots.push(node);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
const parent = nodes.find((n) => n.id === node.parent);
|
|
58
|
+
if (parent) {
|
|
59
|
+
parent.children.push(node);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
roots.push(node);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return roots;
|
|
67
|
+
}
|
|
68
|
+
function renderRouteElement(route) {
|
|
69
|
+
if (routeRenderer)
|
|
70
|
+
return routeRenderer(route);
|
|
71
|
+
return route.element;
|
|
72
|
+
}
|
|
73
|
+
function createConsoleApp() {
|
|
74
|
+
return {
|
|
75
|
+
subscribe,
|
|
76
|
+
getVersion,
|
|
77
|
+
defineSidebar(render) {
|
|
78
|
+
sidebarRenderer = render;
|
|
79
|
+
bump();
|
|
80
|
+
},
|
|
81
|
+
defineToolbar(render) {
|
|
82
|
+
toolbarRenderer = render;
|
|
83
|
+
bump();
|
|
84
|
+
},
|
|
85
|
+
defineRouter(render) {
|
|
86
|
+
routeRenderer = render;
|
|
87
|
+
bump();
|
|
88
|
+
},
|
|
89
|
+
addRoute(input) {
|
|
90
|
+
const next = routes.filter((r) => r.path !== input.path);
|
|
91
|
+
next.push({
|
|
92
|
+
path: input.path,
|
|
93
|
+
name: input.name,
|
|
94
|
+
element: input.element,
|
|
95
|
+
parent: input.parent ?? null,
|
|
96
|
+
icon: input.icon,
|
|
97
|
+
requiredPermissions: input.requiredPermissions,
|
|
98
|
+
requiredRoles: input.requiredRoles,
|
|
99
|
+
meta: input.meta,
|
|
100
|
+
});
|
|
101
|
+
routes = next;
|
|
102
|
+
bump();
|
|
103
|
+
},
|
|
104
|
+
removeRoute(path) {
|
|
105
|
+
routes = routes.filter((r) => r.path !== path);
|
|
106
|
+
bump();
|
|
107
|
+
},
|
|
108
|
+
addTool(input) {
|
|
109
|
+
const id = input.id ?? `${slugId(input.name)}-${Math.random().toString(36).slice(2, 8)}`;
|
|
110
|
+
if (tools.some((t) => t.id === id)) {
|
|
111
|
+
throw new Error(`[zhin-console] addTool: id already exists: ${id}`);
|
|
112
|
+
}
|
|
113
|
+
tools = [
|
|
114
|
+
...tools,
|
|
115
|
+
{
|
|
116
|
+
id,
|
|
117
|
+
name: input.name,
|
|
118
|
+
icon: input.icon,
|
|
119
|
+
parent: input.parent ?? null,
|
|
120
|
+
path: input.path,
|
|
121
|
+
},
|
|
122
|
+
];
|
|
123
|
+
bump();
|
|
124
|
+
return id;
|
|
125
|
+
},
|
|
126
|
+
getRouteTree() {
|
|
127
|
+
return buildRouteTree(routes);
|
|
128
|
+
},
|
|
129
|
+
getToolTree() {
|
|
130
|
+
return buildToolTree(tools);
|
|
131
|
+
},
|
|
132
|
+
_getRoutes() {
|
|
133
|
+
return routes;
|
|
134
|
+
},
|
|
135
|
+
_getSidebarRenderer() {
|
|
136
|
+
return sidebarRenderer;
|
|
137
|
+
},
|
|
138
|
+
_getToolbarRenderer() {
|
|
139
|
+
return toolbarRenderer;
|
|
140
|
+
},
|
|
141
|
+
_renderRouteElement(route) {
|
|
142
|
+
return renderRouteElement(route);
|
|
143
|
+
},
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
export const app = createConsoleApp();
|
|
147
|
+
//# sourceMappingURL=app.js.map
|
package/dist/app.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../client/app.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
export {
|
|
4
|
-
export * from
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export
|
|
1
|
+
export * from "./types";
|
|
2
|
+
export { resolveMediaSrc, pickMediaRawUrl, type MediaKind } from "./mediaSrc";
|
|
3
|
+
export { app, type ConsoleApp, type AddRouteInput, type AddToolInput, type ConsoleRouteRecord, type RouteTreeNode, type ToolTreeNode, type ConsoleRouteRenderer, } from "./app";
|
|
4
|
+
export * from "./websocket";
|
|
5
|
+
export type { PluginRegisterHostApi, PluginAddRouteInput, PluginAddToolInput, ConsolePluginRegister, ConsoleClientEntry, ConsoleEntriesResponse, ConsoleEntry, ConsoleFileAddEntryInput, RuntimeEnv, } from "@zhin.js/console-types";
|
|
6
|
+
export { DEFAULT_CONSOLE_BASE_PATH, CONSOLE_HOST_REACT_NAMESPACE_KEY, } from "@zhin.js/console-types";
|
|
7
|
+
export { createRegistryStore, useRegistry, type RegistryStore, configureConsole, getRuntimeEnv, cn, } from "@zhin.js/console-core/browser";
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../client/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../client/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAG9E,OAAO,EACL,GAAG,EACH,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,oBAAoB,GAC1B,MAAM,OAAO,CAAC;AAGf,cAAc,aAAa,CAAC;AAG5B,YAAY,EACV,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,wBAAwB,EACxB,UAAU,GACX,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,yBAAyB,EACzB,gCAAgC,GACjC,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,KAAK,aAAa,EAClB,gBAAgB,EAChB,aAAa,EACb,EAAE,GACH,MAAM,+BAA+B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
import { clsx } from 'clsx';
|
|
2
|
-
import { twMerge } from 'tailwind-merge';
|
|
3
1
|
// Types
|
|
4
|
-
export * from
|
|
5
|
-
//
|
|
6
|
-
export { resolveMediaSrc, pickMediaRawUrl } from
|
|
7
|
-
//
|
|
8
|
-
export
|
|
9
|
-
//
|
|
10
|
-
export * from
|
|
11
|
-
|
|
12
|
-
export
|
|
13
|
-
export
|
|
14
|
-
return twMerge(clsx(inputs));
|
|
15
|
-
}
|
|
2
|
+
export * from "./types";
|
|
3
|
+
// Media URL resolution
|
|
4
|
+
export { resolveMediaSrc, pickMediaRawUrl } from "./mediaSrc";
|
|
5
|
+
// Console app singleton (page-manager style)
|
|
6
|
+
export { app, } from "./app";
|
|
7
|
+
// WebSocket (business data only)
|
|
8
|
+
export * from "./websocket";
|
|
9
|
+
export { DEFAULT_CONSOLE_BASE_PATH, CONSOLE_HOST_REACT_NAMESPACE_KEY, } from "@zhin.js/console-types";
|
|
10
|
+
// Re-export console-core browser utilities
|
|
11
|
+
export { createRegistryStore, useRegistry, configureConsole, getRuntimeEnv, cn, } from "@zhin.js/console-core/browser";
|
|
16
12
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../client/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../client/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,cAAc,SAAS,CAAC;AAExB,uBAAuB;AACvB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAkB,MAAM,YAAY,CAAC;AAE9E,6CAA6C;AAC7C,OAAO,EACL,GAAG,GAQJ,MAAM,OAAO,CAAC;AAEf,iCAAiC;AACjC,cAAc,aAAa,CAAC;AAe5B,OAAO,EACL,yBAAyB,EACzB,gCAAgC,GACjC,MAAM,wBAAwB,CAAC;AAEhC,2CAA2C;AAC3C,OAAO,EACL,mBAAmB,EACnB,WAAW,EAEX,gBAAgB,EAChB,aAAa,EACb,EAAE,GACH,MAAM,+BAA+B,CAAC"}
|