@zhin.js/console 1.0.5 → 1.0.7

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.
@@ -0,0 +1,92 @@
1
+ // Theme configuration
2
+ export const themes = {
3
+ light: {
4
+ background: '0 0% 100%',
5
+ foreground: '222.2 84% 4.9%',
6
+ card: '0 0% 100%',
7
+ 'card-foreground': '222.2 84% 4.9%',
8
+ popover: '0 0% 100%',
9
+ 'popover-foreground': '222.2 84% 4.9%',
10
+ primary: '221.2 83.2% 53.3%',
11
+ 'primary-foreground': '210 40% 98%',
12
+ secondary: '210 40% 96.1%',
13
+ 'secondary-foreground': '222.2 47.4% 11.2%',
14
+ muted: '210 40% 96.1%',
15
+ 'muted-foreground': '215.4 16.3% 46.9%',
16
+ accent: '210 40% 96.1%',
17
+ 'accent-foreground': '222.2 47.4% 11.2%',
18
+ destructive: '0 84.2% 60.2%',
19
+ 'destructive-foreground': '210 40% 98%',
20
+ border: '214.3 31.8% 91.4%',
21
+ input: '214.3 31.8% 91.4%',
22
+ ring: '221.2 83.2% 53.3%',
23
+ radius: '0.5rem',
24
+ },
25
+ dark: {
26
+ background: '222.2 84% 4.9%',
27
+ foreground: '210 40% 98%',
28
+ card: '222.2 84% 4.9%',
29
+ 'card-foreground': '210 40% 98%',
30
+ popover: '222.2 84% 4.9%',
31
+ 'popover-foreground': '210 40% 98%',
32
+ primary: '217.2 91.2% 59.8%',
33
+ 'primary-foreground': '222.2 47.4% 11.2%',
34
+ secondary: '217.2 32.6% 17.5%',
35
+ 'secondary-foreground': '210 40% 98%',
36
+ muted: '217.2 32.6% 17.5%',
37
+ 'muted-foreground': '215 20.2% 65.1%',
38
+ accent: '217.2 32.6% 17.5%',
39
+ 'accent-foreground': '210 40% 98%',
40
+ destructive: '0 62.8% 30.6%',
41
+ 'destructive-foreground': '210 40% 98%',
42
+ border: '217.2 32.6% 17.5%',
43
+ input: '217.2 32.6% 17.5%',
44
+ ring: '224.3 76.3% 48%',
45
+ radius: '0.5rem',
46
+ },
47
+ } as const
48
+
49
+ export type Theme = keyof typeof themes
50
+ export type ThemeColors = typeof themes.light
51
+
52
+ // Apply theme to document
53
+ export function applyTheme(theme: Theme) {
54
+ const root = document.documentElement
55
+ const colors = themes[theme]
56
+
57
+ // Remove old theme class
58
+ root.classList.remove('light', 'dark')
59
+ // Add new theme class
60
+ root.classList.add(theme)
61
+
62
+ // Apply CSS variables
63
+ Object.entries(colors).forEach(([key, value]) => {
64
+ root.style.setProperty(`--${key}`, value)
65
+ })
66
+
67
+ // Save to localStorage
68
+ localStorage.setItem('theme', theme)
69
+ }
70
+
71
+ // Get current theme from localStorage or system preference
72
+ export function getInitialTheme(): Theme {
73
+ const stored = localStorage.getItem('theme') as Theme | null
74
+ if (stored && (stored === 'light' || stored === 'dark')) {
75
+ return stored
76
+ }
77
+
78
+ // Check system preference
79
+ if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
80
+ return 'dark'
81
+ }
82
+
83
+ return 'light'
84
+ }
85
+
86
+ // Initialize theme on app load
87
+ export function initializeTheme() {
88
+ const theme = getInitialTheme()
89
+ applyTheme(theme)
90
+ return theme
91
+ }
92
+
@@ -0,0 +1,70 @@
1
+ /** @type {import('tailwindcss').Config} */
2
+ const cwd = process.cwd();
3
+ export default {
4
+ content: [
5
+ "./index.html",
6
+ './src/**/*.{js,ts,jsx,tsx,mdx}',
7
+ `${cwd}/**/radix-ui/**/*.{js,ts,jsx,tsx}`,
8
+ `${cwd}/**/@radix-ui/themes/**/*.{js,ts,jsx,tsx}`,
9
+ ],
10
+ theme: {
11
+ extend: {
12
+ colors: {
13
+ border: 'hsl(var(--border))',
14
+ input: 'hsl(var(--input))',
15
+ ring: 'hsl(var(--ring))',
16
+ background: 'hsl(var(--background))',
17
+ foreground: 'hsl(var(--foreground))',
18
+ primary: {
19
+ DEFAULT: 'hsl(var(--primary))',
20
+ foreground: 'hsl(var(--primary-foreground))',
21
+ },
22
+ secondary: {
23
+ DEFAULT: 'hsl(var(--secondary))',
24
+ foreground: 'hsl(var(--secondary-foreground))',
25
+ },
26
+ destructive: {
27
+ DEFAULT: 'hsl(var(--destructive))',
28
+ foreground: 'hsl(var(--destructive-foreground))',
29
+ },
30
+ muted: {
31
+ DEFAULT: 'hsl(var(--muted))',
32
+ foreground: 'hsl(var(--muted-foreground))',
33
+ },
34
+ accent: {
35
+ DEFAULT: 'hsl(var(--accent))',
36
+ foreground: 'hsl(var(--accent-foreground))',
37
+ },
38
+ popover: {
39
+ DEFAULT: 'hsl(var(--popover))',
40
+ foreground: 'hsl(var(--popover-foreground))',
41
+ },
42
+ card: {
43
+ DEFAULT: 'hsl(var(--card))',
44
+ foreground: 'hsl(var(--card-foreground))',
45
+ },
46
+ },
47
+ borderRadius: {
48
+ lg: 'var(--radius)',
49
+ md: 'calc(var(--radius) - 2px)',
50
+ sm: 'calc(var(--radius) - 4px)',
51
+ },
52
+ keyframes: {
53
+ "accordion-down": {
54
+ from: { height: "0" },
55
+ to: { height: "var(--radix-accordion-content-height)" },
56
+ },
57
+ "accordion-up": {
58
+ from: { height: "var(--radix-accordion-content-height)" },
59
+ to: { height: "0" },
60
+ },
61
+ },
62
+ animation: {
63
+ "accordion-down": "accordion-down 0.2s ease-out",
64
+ "accordion-up": "accordion-up 0.2s ease-out",
65
+ },
66
+ },
67
+ },
68
+ darkMode: "class",
69
+ plugins: [],
70
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "compilerOptions": {
3
+ "baseUrl": ".",
4
+ "target": "ES2020",
5
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
6
+ "moduleResolution": "bundler",
7
+ "module": "ESNext",
8
+ "jsx": "react-jsx",
9
+ "paths": {
10
+ "@/*": ["src/*"],
11
+ "lucide-react": ["../node_modules/lucide-react"],
12
+ "react": ["../node_modules/@types/react"],
13
+ "react-dom": ["../node_modules/@types/react-dom"]
14
+ }
15
+ }
16
+ }
17
+
package/lib/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { WebSocketServer } from 'ws';
2
- import { ViteDevServer } from 'vite';
3
- declare module '@zhin.js/types' {
1
+ import { WebSocketServer } from "ws";
2
+ import { ViteDevServer } from "vite";
3
+ declare module "@zhin.js/types" {
4
4
  interface GlobalContext {
5
5
  web: WebServer;
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAiB,EAAC,eAAe,EAAC,MAAM,IAAI,CAAC;AAC7C,OAAO,EAAc,aAAa,EAAwB,MAAM,MAAM,CAAC;AAOvE,OAAO,QAAQ,gBAAgB,CAAC;IAC5B,UAAU,aAAa;QACnB,GAAG,EAAE,SAAS,CAAC;KAClB;CACJ;AACD,MAAM,MAAM,QAAQ,GAAC,MAAM,GAAC;IACxB,UAAU,EAAC,MAAM,CAAA;IACjB,WAAW,EAAC,MAAM,CAAA;CACrB,CAAA;AACD,MAAM,MAAM,SAAS,GAAG;IACpB,IAAI,EAAC,aAAa,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,IAAI,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,EAAE,EAAC,eAAe,CAAA;CACrB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../app/index.ts"],"names":[],"mappings":"AAEA,OAAkB,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAChD,OAAO,EAAgB,aAAa,EAA0B,MAAM,MAAM,CAAC;AAO3E,OAAO,QAAQ,gBAAgB,CAAC;IAC9B,UAAU,aAAa;QACrB,GAAG,EAAE,SAAS,CAAC;KAChB;CACF;AACD,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN;IACE,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AACN,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,IAAI,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,EAAE,EAAE,eAAe,CAAC;CACrB,CAAC"}
package/lib/index.js CHANGED
@@ -1,14 +1,14 @@
1
- import { register, useContext } from '@zhin.js/core';
2
- import react from '@vitejs/plugin-react';
3
- import WebSocket from 'ws';
4
- import { createServer } from 'vite';
5
- import connect from 'koa-connect';
6
- import * as fs from 'fs';
7
- import * as path from 'path';
8
- import tailwindcss from '@tailwindcss/vite';
1
+ import { register, useContext, useApp } from "@zhin.js/core";
2
+ import react from "@vitejs/plugin-react";
3
+ import WebSocket from "ws";
4
+ import { createServer } from "vite";
5
+ import connect from "koa-connect";
6
+ import * as fs from "fs";
7
+ import * as path from "path";
8
+ import tailwindcss from "@tailwindcss/vite";
9
9
  const createSyncMsg = (key, value) => {
10
10
  return {
11
- type: 'sync',
11
+ type: "sync",
12
12
  data: {
13
13
  key,
14
14
  value,
@@ -17,7 +17,7 @@ const createSyncMsg = (key, value) => {
17
17
  };
18
18
  const createAddMsg = (key, value) => {
19
19
  return {
20
- type: 'add',
20
+ type: "add",
21
21
  data: {
22
22
  key,
23
23
  value,
@@ -26,59 +26,65 @@ const createAddMsg = (key, value) => {
26
26
  };
27
27
  const createDeleteMsg = (key, value) => {
28
28
  return {
29
- type: 'delete',
29
+ type: "delete",
30
30
  data: {
31
31
  key,
32
32
  value,
33
33
  },
34
34
  };
35
35
  };
36
- useContext('router', async (router) => {
37
- const root = path.join(process.cwd(), 'node_modules', '@zhin.js', 'client', 'app');
38
- const base = '/vite/';
36
+ useContext("router", async (router) => {
37
+ const root = path.join(import.meta.dirname, "../client");
38
+ const base = "/vite/";
39
39
  const vite = await createServer({
40
40
  root,
41
41
  base,
42
- plugins: [
43
- react(),
44
- tailwindcss(),
45
- ],
42
+ plugins: [react(), tailwindcss()],
46
43
  server: {
47
44
  middlewareMode: true,
48
45
  fs: {
49
- strict: false
46
+ strict: false,
50
47
  },
51
48
  },
52
49
  resolve: {
53
- dedupe: ['react', 'react-dom'],
50
+ dedupe: [
51
+ "react",
52
+ "react-dom",
53
+ "clsx",
54
+ "tailwind-merge",
55
+ "@reduxjs/toolkit",
56
+ "react-router",
57
+ "react-redux",
58
+ "redux-persist",
59
+ ],
54
60
  alias: {
55
- '@zhin.js/client': path.resolve(root, '../src'),
56
- '@': path.resolve(root, 'src'),
61
+ "@zhin.js/client": path.resolve(root, "../../client/client"),
62
+ "@": path.resolve(root, "../client/src"),
57
63
  },
58
64
  },
59
65
  optimizeDeps: {
60
- include: ['react', 'react-dom'],
66
+ include: ["react", "react-dom"],
61
67
  },
62
68
  build: {
63
69
  rollupOptions: {
64
- input: root + '/index.html',
70
+ input: root + "/index.html",
65
71
  },
66
72
  },
67
73
  });
68
74
  // Vite 中间件 - 必须在其他路由之前
69
75
  router.use((ctx, next) => {
70
- if (ctx.request.originalUrl.startsWith('/api'))
76
+ if (ctx.request.originalUrl.startsWith("/api"))
71
77
  return next();
72
78
  return connect(vite.middlewares)(ctx, next);
73
79
  });
74
80
  // SPA 回退路由 - 处理所有未匹配的路由
75
- router.all('*all', async (ctx, next) => {
76
- const url = ctx.request.originalUrl.replace(base, '');
81
+ router.all("*all", async (ctx, next) => {
82
+ const url = ctx.request.originalUrl.replace(base, "");
77
83
  const name = ctx.path.slice(1);
78
84
  const sendFile = (filename) => {
79
85
  ctx.type = path.extname(filename);
80
- if (filename.endsWith('.ts'))
81
- ctx.type = 'text/javascript';
86
+ if (filename.endsWith(".ts"))
87
+ ctx.type = "text/javascript";
82
88
  return (ctx.body = fs.createReadStream(filename));
83
89
  };
84
90
  // 1. 检查是否是动态入口
@@ -87,7 +93,7 @@ useContext('router', async (router) => {
87
93
  }
88
94
  // 2. 检查是否是静态文件
89
95
  const filename = path.resolve(root, name);
90
- if (filename.startsWith(root) || filename.includes('node_modules')) {
96
+ if (filename.startsWith(root) || filename.includes("node_modules")) {
91
97
  if (fs.existsSync(filename)) {
92
98
  const fileState = fs.statSync(filename);
93
99
  if (fileState.isFile()) {
@@ -101,8 +107,8 @@ useContext('router', async (router) => {
101
107
  }
102
108
  // 3. 所有其他路径(包括 SPA 路由)都返回 index.html
103
109
  // 这样前端路由可以正确处理
104
- const template = fs.readFileSync(path.resolve(root, 'index.html'), 'utf8');
105
- ctx.type = 'html';
110
+ const template = fs.readFileSync(path.resolve(root, "index.html"), "utf8");
111
+ ctx.type = "html";
106
112
  ctx.body = await vite.transformIndexHtml(url, template);
107
113
  });
108
114
  const webServer = {
@@ -110,19 +116,22 @@ useContext('router', async (router) => {
110
116
  entries: {},
111
117
  addEntry(entry) {
112
118
  const hash = Date.now().toString(16) + Math.random().toString(16).slice(2, 8);
113
- const entryFile = typeof entry === "string" ? entry : entry[process.env.NODE_ENV || 'development'];
119
+ const entryFile = typeof entry === "string"
120
+ ? entry
121
+ : entry[process.env.NODE_ENV ||
122
+ "development"];
114
123
  this.entries[hash] = `/vite/@fs/${entryFile}`;
115
124
  for (const ws of this.ws.clients || []) {
116
- ws.send(JSON.stringify(createAddMsg('entries', this.entries[hash])));
125
+ ws.send(JSON.stringify(createAddMsg("entries", this.entries[hash])));
117
126
  }
118
127
  return () => {
119
128
  for (const ws of this.ws.clients || []) {
120
- ws.send(JSON.stringify(createDeleteMsg('entries', this.entries[hash])));
129
+ ws.send(JSON.stringify(createDeleteMsg("entries", this.entries[hash])));
121
130
  }
122
131
  delete this.entries[hash];
123
132
  };
124
133
  },
125
- ws: router.ws('/server')
134
+ ws: router.ws("/server"),
126
135
  };
127
136
  // 数据推送函数
128
137
  const broadcastToAll = (message) => {
@@ -135,22 +144,176 @@ useContext('router', async (router) => {
135
144
  // 推送数据更新通知
136
145
  const notifyDataUpdate = () => {
137
146
  broadcastToAll({
138
- type: 'data-update',
139
- timestamp: Date.now()
147
+ type: "data-update",
148
+ timestamp: Date.now(),
140
149
  });
141
150
  };
142
151
  // WebSocket 连接处理
143
- webServer.ws.on('connection', (ws) => {
152
+ webServer.ws.on("connection", (ws) => {
144
153
  // 发送初始数据
145
- ws.send(JSON.stringify(createSyncMsg('entries', Array.from(new Set(Object.values(webServer.entries))))));
154
+ ws.send(JSON.stringify(createSyncMsg("entries", Array.from(new Set(Object.values(webServer.entries))))));
146
155
  // 通知客户端进行数据初始化
147
156
  ws.send(JSON.stringify({
148
- type: 'init-data',
149
- timestamp: Date.now()
157
+ type: "init-data",
158
+ timestamp: Date.now(),
150
159
  }));
151
- ws.on('close', () => {
160
+ // 处理 WebSocket 消息
161
+ ws.on("message", async (data) => {
162
+ try {
163
+ const message = JSON.parse(data.toString());
164
+ const { type, pluginName, requestId } = message;
165
+ // 获取应用实例
166
+ const app = useApp();
167
+ switch (type) {
168
+ case "config:get":
169
+ try {
170
+ let config;
171
+ if (pluginName === "app") {
172
+ config = app.getConfig();
173
+ }
174
+ else {
175
+ const plugin = app.findPluginByName(pluginName);
176
+ if (!plugin) {
177
+ throw new Error(`Plugin ${pluginName} not found`);
178
+ }
179
+ config = plugin.config;
180
+ }
181
+ ws.send(JSON.stringify({
182
+ requestId,
183
+ data: config,
184
+ }));
185
+ }
186
+ catch (error) {
187
+ ws.send(JSON.stringify({
188
+ requestId,
189
+ error: error.message,
190
+ }));
191
+ }
192
+ break;
193
+ case "config:set":
194
+ try {
195
+ const { data: newConfig } = message;
196
+ if (pluginName === "app") {
197
+ app.config = newConfig;
198
+ }
199
+ else {
200
+ const plugin = app.findPluginByName(pluginName);
201
+ if (!plugin) {
202
+ throw new Error(`Plugin ${pluginName} not found`);
203
+ }
204
+ plugin.config = newConfig;
205
+ }
206
+ // 响应成功
207
+ ws.send(JSON.stringify({
208
+ requestId,
209
+ data: "success",
210
+ }));
211
+ // 广播配置更新
212
+ webServer.ws.clients.forEach((client) => {
213
+ if (client.readyState === 1) {
214
+ // WebSocket.OPEN
215
+ client.send(JSON.stringify({
216
+ type: "config:updated",
217
+ pluginName,
218
+ data: newConfig,
219
+ }));
220
+ }
221
+ });
222
+ }
223
+ catch (error) {
224
+ ws.send(JSON.stringify({
225
+ requestId,
226
+ error: error.message,
227
+ }));
228
+ }
229
+ break;
230
+ case "schema:get":
231
+ try {
232
+ let schema;
233
+ if (pluginName === "app") {
234
+ schema = app.schema?.toJSON();
235
+ }
236
+ else {
237
+ const plugin = app.findPluginByName(pluginName);
238
+ if (!plugin) {
239
+ throw new Error(`Plugin ${pluginName} not found`);
240
+ }
241
+ schema = plugin.schema?.toJSON();
242
+ }
243
+ ws.send(JSON.stringify({
244
+ requestId,
245
+ data: schema,
246
+ }));
247
+ }
248
+ catch (error) {
249
+ ws.send(JSON.stringify({
250
+ requestId,
251
+ error: error.message,
252
+ }));
253
+ }
254
+ break;
255
+ case "config:get-all":
256
+ try {
257
+ const configs = {};
258
+ // 获取 App 配置
259
+ configs["app"] = app.getConfig();
260
+ // 获取所有插件配置
261
+ for (const plugin of app.dependencyList) {
262
+ if (plugin.config && Object.keys(plugin.config).length > 0) {
263
+ configs[plugin.name] = plugin.config;
264
+ }
265
+ }
266
+ ws.send(JSON.stringify({
267
+ requestId,
268
+ data: configs,
269
+ }));
270
+ }
271
+ catch (error) {
272
+ ws.send(JSON.stringify({
273
+ requestId,
274
+ error: error.message,
275
+ }));
276
+ }
277
+ break;
278
+ case "schema:get-all":
279
+ try {
280
+ const schemas = {};
281
+ // 获取 App Schema
282
+ const appSchema = app.schema?.toJSON();
283
+ if (appSchema) {
284
+ schemas["app"] = appSchema;
285
+ }
286
+ // 获取所有插件 Schema
287
+ for (const plugin of app.dependencyList) {
288
+ const schema = plugin.schema?.toJSON();
289
+ if (schema) {
290
+ schemas[plugin.name] = schema;
291
+ }
292
+ }
293
+ ws.send(JSON.stringify({
294
+ requestId,
295
+ data: schemas,
296
+ }));
297
+ }
298
+ catch (error) {
299
+ ws.send(JSON.stringify({
300
+ requestId,
301
+ error: error.message,
302
+ }));
303
+ }
304
+ break;
305
+ // 其他消息类型保持不变,让 console 插件自己处理
306
+ }
307
+ }
308
+ catch (error) {
309
+ console.error("WebSocket 消息处理错误:", error);
310
+ ws.send(JSON.stringify({
311
+ error: "Invalid message format",
312
+ }));
313
+ }
152
314
  });
153
- ws.on('error', (error) => {
315
+ ws.on("close", () => { });
316
+ ws.on("error", (error) => {
154
317
  // console.error 已替换为注释
155
318
  });
156
319
  });
@@ -159,11 +322,11 @@ useContext('router', async (router) => {
159
322
  notifyDataUpdate();
160
323
  }, 5000); // 每5秒通知一次更新
161
324
  // 插件卸载时清理定时器
162
- process.on('exit', () => {
325
+ process.on("exit", () => {
163
326
  clearInterval(dataUpdateInterval);
164
327
  });
165
328
  register({
166
- name: 'web',
329
+ name: "web",
167
330
  description: "web服务",
168
331
  async mounted() {
169
332
  return webServer;
@@ -171,7 +334,7 @@ useContext('router', async (router) => {
171
334
  async dispose(server) {
172
335
  await server.vite.close();
173
336
  server.ws.close();
174
- }
337
+ },
175
338
  });
176
339
  });
177
340
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../app/index.ts"],"names":[],"mappings":"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"}