node-karin 1.15.5 → 1.16.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.
Files changed (89) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/adapter-BqlH3u3X.mjs +218 -0
  3. package/dist/app-DdMQbBEY.mjs +4109 -0
  4. package/dist/cache-CPcPeo6N.mjs +163 -0
  5. package/dist/chunk-NzVPYdc1.mjs +21 -0
  6. package/dist/cli/index.cjs +10900 -1
  7. package/dist/cli/index.d.ts +1 -1
  8. package/dist/cli/index.mjs +10770 -10224
  9. package/dist/file-ZGuqNDd-.mjs +15987 -0
  10. package/dist/file-dGy9of8-.mjs +268 -0
  11. package/dist/fsSync-Cf5MWILk.mjs +65 -0
  12. package/dist/index.d.ts +12235 -12738
  13. package/dist/index.mjs +2054 -25247
  14. package/dist/internal-DupfycKE.mjs +597 -0
  15. package/dist/kv-DZp4UIxg.mjs +192 -0
  16. package/dist/module/art-template.d.ts +2 -13
  17. package/dist/module/art-template.mjs +3 -1
  18. package/dist/module/axios.d.ts +3 -2
  19. package/dist/module/axios.mjs +5 -2
  20. package/dist/module/chalk.d.ts +3 -2
  21. package/dist/module/chalk.mjs +5 -2
  22. package/dist/module/chokidar.d.ts +3 -2
  23. package/dist/module/chokidar.mjs +5 -2
  24. package/dist/module/express.d.ts +2 -1
  25. package/dist/module/express.mjs +3 -1
  26. package/dist/module/lodash.d.ts +2 -1
  27. package/dist/module/lodash.mjs +3 -1
  28. package/dist/module/log4js.d.ts +3 -2
  29. package/dist/module/log4js.mjs +5 -2
  30. package/dist/module/moment.d.ts +2 -1
  31. package/dist/module/moment.mjs +3 -1
  32. package/dist/module/node-schedule.d.ts +3 -2
  33. package/dist/module/node-schedule.mjs +5 -2
  34. package/dist/module/redis.d.ts +3 -2
  35. package/dist/module/redis.mjs +5 -2
  36. package/dist/module/sqlite3.d.ts +3 -2
  37. package/dist/module/sqlite3.mjs +5 -2
  38. package/dist/module/ws.d.ts +3 -2
  39. package/dist/module/ws.mjs +5 -2
  40. package/dist/module/yaml.d.ts +3 -2
  41. package/dist/module/yaml.mjs +5 -2
  42. package/dist/queue-CnKedaZA.mjs +70 -0
  43. package/dist/redis-aLJ7wbJH.mjs +1556 -0
  44. package/dist/render-DPqueDZr.mjs +170 -0
  45. package/dist/root.d.ts +46 -46
  46. package/dist/root.mjs +136 -93
  47. package/dist/router-zPSN9-tY.mjs +124 -0
  48. package/dist/server-DT64D-m-.mjs +38 -0
  49. package/dist/snapka-BTlnZOyI.mjs +450 -0
  50. package/dist/sqlite-Dcj9jlW9.mjs +307 -0
  51. package/dist/start/app.d.ts +1 -1
  52. package/dist/start/app.mjs +14 -7
  53. package/dist/start/index.d.ts +1 -1
  54. package/dist/start/index.mjs +325 -656
  55. package/dist/template-Djk6y0uC.mjs +133 -0
  56. package/dist/terminalManager-Lxa8Sm06.mjs +783 -0
  57. package/dist/uptime-C121X_rq.mjs +210 -0
  58. package/dist/web/{CompressaPRO-GX.woff2.br → CompressaPRO-GX.woff2} +0 -0
  59. package/dist/web/assets/css/style-CBB8wM_W.css +14880 -0
  60. package/dist/web/assets/js/entry-Blf4Trpx.js +258540 -0
  61. package/dist/web/{googleapis.woff2.br → googleapis.woff2} +0 -0
  62. package/dist/web/index.html +2 -15
  63. package/dist/web/karin.png +0 -0
  64. package/dist/web/sha256.min.js +9 -0
  65. package/dist/ws-BLDoC2gV.mjs +80 -0
  66. package/dist/ws-CcoWd3Ar.mjs +106 -0
  67. package/package.json +7 -7
  68. package/dist/global.d.d.ts +0 -68
  69. package/dist/types-hAhbXJDZ.d.ts +0 -109
  70. package/dist/web/assets/css/components-ep7vm38G.css +0 -1
  71. package/dist/web/assets/css/index-Dadvd9mn.css.br +0 -0
  72. package/dist/web/assets/css/vendor-editor-CFbL2ovg.css.br +0 -0
  73. package/dist/web/assets/css/vendor-others-ZgkIHsf0.css +0 -1
  74. package/dist/web/assets/js/components-CU2xw4lY.js.br +0 -0
  75. package/dist/web/assets/js/entry-Dvb7eYLE.js.br +0 -0
  76. package/dist/web/assets/js/hooks-CRfhs4ON.js.br +0 -0
  77. package/dist/web/assets/js/page-404.tsx-DYMd_RI_.js +0 -1
  78. package/dist/web/assets/js/page-dashboard-CG60V_Z-.js.br +0 -0
  79. package/dist/web/assets/js/page-loading.tsx-wY8a9me3.js.br +0 -0
  80. package/dist/web/assets/js/page-login.tsx-B54ZOEZB.js.br +0 -0
  81. package/dist/web/assets/js/utils-C9nWTSuo.js +0 -2
  82. package/dist/web/assets/js/vendor-editor-BmqYP7lh.js.br +0 -0
  83. package/dist/web/assets/js/vendor-heroui-ClBCy2zk.js.br +0 -0
  84. package/dist/web/assets/js/vendor-others-6GiMrjd4.js.br +0 -0
  85. package/dist/web/assets/js/vendor-react-Dc9jdQiK.js.br +0 -0
  86. package/dist/web/assets/js/vendor-ui-utils-D0xkboLL.js.br +0 -0
  87. package/dist/web/assets/js/vendor-visual-saF8KLH_.js.br +0 -0
  88. package/dist/web/karin.png.br +0 -0
  89. package/dist/web/sha256.min.js.br +0 -0
@@ -0,0 +1,170 @@
1
+ import { i as getRenderCfg } from "./file-ZGuqNDd-.mjs";
2
+ import { o as registerRender, u as unregisterRender } from "./cache-CPcPeo6N.mjs";
3
+ import { t as WebSocketRender } from "./ws-CcoWd3Ar.mjs";
4
+ import axios from "axios";
5
+ import crypto from "node:crypto";
6
+ import WebSocket$1 from "ws";
7
+
8
+ //#region src/adapter/render/connect/http.ts
9
+ /**
10
+ * @description 创建http渲染器
11
+ */
12
+ const createHttpRenderClient = () => {
13
+ const cfg = getRenderCfg();
14
+ if (!cfg.http_server || !Array.isArray(cfg.http_server) || cfg.http_server.length === 0) {
15
+ logger.trace("[render][http] 未配置任何正向HTTP 已跳过创建");
16
+ return;
17
+ }
18
+ return Promise.allSettled(cfg.http_server.map(async (item) => {
19
+ let { url, token, enable, isSnapka } = item;
20
+ if (!enable || isSnapka) return;
21
+ url = url.replace("/puppeteer", "");
22
+ /** 初次鉴权 */
23
+ const headers = { authorization: crypto.createHash("md5").update(`Bearer ${token}`).digest("hex") };
24
+ try {
25
+ /** 先ping */
26
+ const result = await axios.get(`${url}/ping`, { timeout: 5e3 });
27
+ if (result.status !== 200 || String(result.data.status) !== "200") logger.error(`[render][http] 创建渲染器失败: 无法连接 ${url}`);
28
+ const auth = await axios.get(`${url}/auth`, {
29
+ headers,
30
+ timeout: 5e3
31
+ });
32
+ if (auth.status !== 200 || String(auth.data.status) !== "200") {
33
+ logger.error(`[render][http] 创建渲染器失败: 鉴权错误 ${url}`);
34
+ return;
35
+ }
36
+ } catch (error) {
37
+ if (axios.isAxiosError(error)) {
38
+ const { response } = error;
39
+ logger.error(`[render][http] 创建渲染器失败: ${response?.status} ${response?.statusText} - ${JSON.stringify(response?.data || "未知错误")}`);
40
+ } else logger.error(`[render][http] 创建渲染器失败: ${error}`);
41
+ return;
42
+ }
43
+ const index = registerRender("puppeteer", async (options) => {
44
+ try {
45
+ const result = await axios.post(`${url}/puppeteer`, options, { headers });
46
+ if (result.status !== 200) throw new Error(`[render][http] 渲染失败: ${result.status} ${result.statusText} - ${result.data?.message || "未知错误"}`);
47
+ return result.data;
48
+ } catch (error) {
49
+ /** 如果是axios的错误,进一步细化处理 */
50
+ if (axios.isAxiosError(error)) {
51
+ if (!error.response) {
52
+ unregisterRender(index);
53
+ throw new Error(`[render][http] 网络连接失败: ${error.message}`);
54
+ }
55
+ const { response } = error;
56
+ throw new Error(`[render][http] 渲染失败: ${response?.status} ${response?.statusText} - ${JSON.stringify(response?.data || "未知错误")}`);
57
+ }
58
+ /** 非axios错误直接抛出 */
59
+ if (error instanceof Error) throw error;
60
+ /** 捕获未预料的情况 */
61
+ throw new Error(`[render][unknown] 未知错误: ${error}`);
62
+ }
63
+ });
64
+ }));
65
+ };
66
+
67
+ //#endregion
68
+ //#region src/adapter/render/connect/client.ts
69
+ /**
70
+ * @description WebSocket客户端渲染器
71
+ * @class WebSocketClientRenderer
72
+ */
73
+ var WebSocketClientRenderer = class extends WebSocketRender {
74
+ /** 重连次数 */
75
+ reconnectCount = 0;
76
+ /** 最大重连次数,设为-1表示无限重连 */
77
+ maxReconnectAttempts = -1;
78
+ /** 基连延迟(ms) */
79
+ baseDelay = 5e3;
80
+ /** WebSocket连接URL */
81
+ url;
82
+ /** 连接headers */
83
+ headers;
84
+ constructor(socket, url, headers) {
85
+ super(socket);
86
+ this.url = url;
87
+ this.headers = headers;
88
+ }
89
+ /**
90
+ * @description 重连逻辑
91
+ * @param isPrint 是否打印日志
92
+ */
93
+ reconnect = (isPrint = false) => {
94
+ if (this.maxReconnectAttempts !== -1 && this.reconnectCount >= this.maxReconnectAttempts) {
95
+ logger.error(`[render][WebSocket] 连接失败次数过多(${this.reconnectCount}次), 已停止重连: ${this.url}`);
96
+ return;
97
+ }
98
+ this.reconnectCount++;
99
+ const delay = this.baseDelay;
100
+ const delaySeconds = delay / 1e3;
101
+ if (isPrint) logger.warn(`[render][WebSocket][${this.reconnectCount}] 连接失败,${delaySeconds}秒后将重连: ${this.url}`);
102
+ setTimeout(() => {
103
+ try {
104
+ const socket = new WebSocket$1(this.url, { headers: this.headers });
105
+ this.socket = socket;
106
+ socket.once("open", async () => {
107
+ logger.info(`[render][WebSocket] 连接成功: ${this.url}`);
108
+ await this.init();
109
+ this.reconnectCount = 0;
110
+ });
111
+ socket.once("error", (error) => {
112
+ logger.debug(error);
113
+ logger.error(`[render][WebSocket][${this.reconnectCount}] 连接错误: ${error.message},${delaySeconds}秒后将重连: ${this.url}`);
114
+ socket.removeAllListeners();
115
+ socket.close();
116
+ this.reconnect(false);
117
+ });
118
+ socket.once("close", () => {
119
+ this.reconnect(true);
120
+ });
121
+ } catch (error) {
122
+ logger.debug(error);
123
+ this.reconnect();
124
+ }
125
+ }, delay);
126
+ };
127
+ };
128
+ /**
129
+ * @description 创建puppeteer WebSocket客户端
130
+ */
131
+ const createWebSocketRenderClient = () => {
132
+ const cfg = getRenderCfg();
133
+ if (!cfg.ws_client || !Array.isArray(cfg.ws_client) || cfg.ws_client.length === 0) {
134
+ logger.trace("[render][WebSocket] 未配置任何正向WebSocket 已跳过创建");
135
+ return;
136
+ }
137
+ return Promise.allSettled(cfg.ws_client.map(async (item) => {
138
+ const { url, token, enable, isSnapka } = item;
139
+ if (!enable || isSnapka) return;
140
+ const headers = { Authorization: crypto.createHash("md5").update(`Bearer ${token}`).digest("hex") };
141
+ const socket = new WebSocket$1(url, { headers });
142
+ const renderer = new WebSocketClientRenderer(socket, url, headers);
143
+ socket.once("open", async () => {
144
+ logger.info(`[render][WebSocket] 连接成功: ${url}`);
145
+ await renderer.init();
146
+ });
147
+ socket.once("close", () => {
148
+ renderer.reconnect(true);
149
+ });
150
+ socket.once("error", (error) => {
151
+ logger.error(`[render][WebSocket] 连接错误: ${error.message}`);
152
+ socket.close();
153
+ });
154
+ }));
155
+ };
156
+
157
+ //#endregion
158
+ //#region src/adapter/render/index.ts
159
+ /**
160
+ * @internal
161
+ * @description 初始化渲染器
162
+ */
163
+ const initRender = async () => {
164
+ createHttpRenderClient();
165
+ createWebSocketRenderClient();
166
+ await import("./server-DT64D-m-.mjs");
167
+ };
168
+
169
+ //#endregion
170
+ export { initRender as t };
package/dist/root.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import EventEmitter from 'events';
1
+ //#region src/root.d.ts
2
2
  /** 以node-karin为根目录的绝对路径 */
3
3
  declare const karinPathRoot: string;
4
4
  /** node-karin主入口文件路径 */
@@ -86,49 +86,49 @@ declare const sandboxDataPath: string;
86
86
  /** @deprecated 请使用 karinPathSandboxTemp 代替 */
87
87
  declare const sandboxTempPath: string;
88
88
  declare const _default: {
89
- karinPathRoot: string;
90
- karinPathMain: string;
91
- karinPathPlugins: string;
92
- isPackaged: Readonly<boolean>;
93
- karinPathDefaultConfig: string;
94
- karinPathDefaultView: string;
95
- karinPathComment: string;
96
- karinPathBase: string;
97
- karinPathConfig: string;
98
- karinPathData: string;
99
- karinPathTemp: string;
100
- karinPathResource: string;
101
- karinPathDb: string;
102
- karinPathRedisSqlite3: string;
103
- karinPathKv: string;
104
- karinPathLogs: string;
105
- karinPathHtml: string;
106
- karinPathPm2Config: string;
107
- karinPathConsole: string;
108
- karinPathSandboxData: string;
109
- karinPathSandboxTemp: string;
110
- karinPathTaskDb: string;
111
- karinDir: string;
112
- karinMain: string;
113
- pluginDir: string;
114
- isPkg: Readonly<boolean>;
115
- defaultConfigPath: string;
116
- defaultViewPath: string;
117
- commentPath: string;
118
- basePath: string;
119
- configPath: string;
120
- dataPath: string;
121
- tempPath: string;
122
- resourcePath: string;
123
- dbPath: string;
124
- redisSqlite3Path: string;
125
- kvPath: string;
126
- logsPath: string;
127
- htmlPath: string;
128
- pm2Path: string;
129
- consolePath: string;
130
- sandboxDataPath: string;
131
- sandboxTempPath: string;
89
+ karinPathRoot: string;
90
+ karinPathMain: string;
91
+ karinPathPlugins: string;
92
+ isPackaged: Readonly<boolean>;
93
+ karinPathDefaultConfig: string;
94
+ karinPathDefaultView: string;
95
+ karinPathComment: string;
96
+ karinPathBase: string;
97
+ karinPathConfig: string;
98
+ karinPathData: string;
99
+ karinPathTemp: string;
100
+ karinPathResource: string;
101
+ karinPathDb: string;
102
+ karinPathRedisSqlite3: string;
103
+ karinPathKv: string;
104
+ karinPathLogs: string;
105
+ karinPathHtml: string;
106
+ karinPathPm2Config: string;
107
+ karinPathConsole: string;
108
+ karinPathSandboxData: string;
109
+ karinPathSandboxTemp: string;
110
+ karinPathTaskDb: string;
111
+ karinDir: string;
112
+ karinMain: string;
113
+ pluginDir: string;
114
+ isPkg: Readonly<boolean>;
115
+ defaultConfigPath: string;
116
+ defaultViewPath: string;
117
+ commentPath: string;
118
+ basePath: string;
119
+ configPath: string;
120
+ dataPath: string;
121
+ tempPath: string;
122
+ resourcePath: string;
123
+ dbPath: string;
124
+ redisSqlite3Path: string;
125
+ kvPath: string;
126
+ logsPath: string;
127
+ htmlPath: string;
128
+ pm2Path: string;
129
+ consolePath: string;
130
+ sandboxDataPath: string;
131
+ sandboxTempPath: string;
132
132
  };
133
-
134
- export { basePath, commentPath, configPath, consolePath, dataPath, dbPath, _default as default, defaultConfigPath, defaultViewPath, htmlPath, isPackaged, isPkg, karinDir, karinMain, karinPathBase, karinPathComment, karinPathConfig, karinPathConsole, karinPathData, karinPathDb, karinPathDefaultConfig, karinPathDefaultView, karinPathHtml, karinPathKv, karinPathLogs, karinPathMain, karinPathPlugins, karinPathPm2Config, karinPathRedisSqlite3, karinPathResource, karinPathRoot, karinPathSandboxData, karinPathSandboxTemp, karinPathTaskDb, karinPathTemp, kvPath, logsPath, pluginDir, pm2Path, redisSqlite3Path, resourcePath, sandboxDataPath, sandboxTempPath, tempPath };
133
+ //#endregion
134
+ export { basePath, commentPath, configPath, consolePath, dataPath, dbPath, _default as default, defaultConfigPath, defaultViewPath, htmlPath, isPackaged, isPkg, karinDir, karinMain, karinPathBase, karinPathComment, karinPathConfig, karinPathConsole, karinPathData, karinPathDb, karinPathDefaultConfig, karinPathDefaultView, karinPathHtml, karinPathKv, karinPathLogs, karinPathMain, karinPathPlugins, karinPathPm2Config, karinPathRedisSqlite3, karinPathResource, karinPathRoot, karinPathSandboxData, karinPathSandboxTemp, karinPathTaskDb, karinPathTemp, kvPath, logsPath, pluginDir, pm2Path, redisSqlite3Path, resourcePath, sandboxDataPath, sandboxTempPath, tempPath };
package/dist/root.mjs CHANGED
@@ -1,97 +1,140 @@
1
- import path from 'path';
2
- import { fileURLToPath } from 'url';
1
+ import path from "path";
2
+ import { fileURLToPath } from "url";
3
3
 
4
- // src/root.ts
5
- var filename = fileURLToPath(import.meta.url);
6
- var karinPathRoot = Object.freeze(path.join(filename, "../..").replace(/\\/g, "/"));
7
- var karinPathMain = Object.freeze(path.join(karinPathRoot, "dist", "index.js"));
8
- var karinPathPlugins = Object.freeze(path.join(process.cwd(), "plugins"));
9
- var isPackaged = Object.freeze(filename.includes("node_modules"));
10
- var karinPathDefaultConfig = Object.freeze(path.join(karinPathRoot, "default", "config"));
11
- var karinPathDefaultView = Object.freeze(path.join(karinPathRoot, "default", "view"));
12
- var karinPathComment = Object.freeze(path.join(karinPathRoot, "default", "comment"));
13
- var karinPathBase = Object.freeze(path.join(process.cwd(), "@karinjs"));
14
- var karinPathConfig = Object.freeze(path.join(karinPathBase, "config"));
15
- var karinPathData = Object.freeze(path.join(karinPathBase, "data"));
16
- var karinPathTemp = Object.freeze(path.join(karinPathBase, "temp"));
17
- var karinPathResource = Object.freeze(path.join(karinPathBase, "resource"));
18
- var karinPathDb = Object.freeze(path.join(karinPathData, "db"));
19
- var karinPathTaskDb = Object.freeze(path.join(karinPathDb, "task"));
20
- var karinPathRedisSqlite3 = Object.freeze(path.join(karinPathDb, "redis-sqlite3"));
21
- var karinPathKv = Object.freeze(path.join(karinPathDb, "kv"));
22
- var karinPathLogs = Object.freeze(path.join(karinPathBase, "logs"));
23
- var karinPathHtml = Object.freeze(path.join(karinPathTemp, "html"));
24
- var karinPathPm2Config = Object.freeze(path.join(karinPathConfig, "pm2.yaml"));
25
- var karinPathConsole = Object.freeze(path.join(karinPathTemp, "console"));
26
- var karinPathSandboxData = Object.freeze(path.join(karinPathData, "sandbox"));
27
- var karinPathSandboxTemp = Object.freeze(path.join(karinPathTemp, "sandbox"));
28
- var karinDir = karinPathRoot;
29
- var karinMain = karinPathMain;
30
- var pluginDir = karinPathPlugins;
31
- var isPkg = isPackaged;
32
- var defaultConfigPath = karinPathDefaultConfig;
33
- var defaultViewPath = karinPathDefaultView;
34
- var commentPath = karinPathComment;
35
- var basePath = karinPathBase;
36
- var configPath = karinPathConfig;
37
- var dataPath = karinPathData;
38
- var tempPath = karinPathTemp;
39
- var resourcePath = karinPathResource;
40
- var dbPath = karinPathDb;
41
- var redisSqlite3Path = karinPathRedisSqlite3;
42
- var kvPath = karinPathKv;
43
- var logsPath = karinPathLogs;
44
- var htmlPath = karinPathHtml;
45
- var pm2Path = karinPathPm2Config;
46
- var consolePath = karinPathConsole;
47
- var sandboxDataPath = karinPathSandboxData;
48
- var sandboxTempPath = karinPathSandboxTemp;
4
+ //#region src/root.ts
5
+ /** 当前文件的绝对路径 cjs */
6
+ const filename = fileURLToPath(import.meta.url);
7
+ /** 以node-karin为根目录的绝对路径 */
8
+ const karinPathRoot = Object.freeze(path.join(filename, "../..").replace(/\\/g, "/"));
9
+ /** node-karin主入口文件路径 */
10
+ const karinPathMain = Object.freeze(path.join(karinPathRoot, "dist", "index.js"));
11
+ /** 插件根目录 */
12
+ const karinPathPlugins = Object.freeze(path.join(process.cwd(), "plugins"));
13
+ /** 是否处于node_modules中 */
14
+ const isPackaged = Object.freeze(filename.includes("node_modules"));
15
+ /** 默认config目录 `npm/default/config` */
16
+ const karinPathDefaultConfig = Object.freeze(path.join(karinPathRoot, "default", "config"));
17
+ /** 默认view目录 `npm/default/view` */
18
+ const karinPathDefaultView = Object.freeze(path.join(karinPathRoot, "default", "view"));
19
+ /** 注释目录 `npm/default/comment` */
20
+ const karinPathComment = Object.freeze(path.join(karinPathRoot, "default", "comment"));
21
+ /** 配置根目录 `@karinjs` */
22
+ const karinPathBase = Object.freeze(path.join(process.cwd(), "@karinjs"));
23
+ /** config目录 `@karinjs/config` */
24
+ const karinPathConfig = Object.freeze(path.join(karinPathBase, "config"));
25
+ /** data目录 `@karinjs/data` */
26
+ const karinPathData = Object.freeze(path.join(karinPathBase, "data"));
27
+ /** 临时文件存储 `@karinjs/temp` */
28
+ const karinPathTemp = Object.freeze(path.join(karinPathBase, "temp"));
29
+ /** resource目录 `@karinjs/resource` */
30
+ const karinPathResource = Object.freeze(path.join(karinPathBase, "resource"));
31
+ /** db根目录 `@karinjs/data/db` */
32
+ const karinPathDb = Object.freeze(path.join(karinPathData, "db"));
33
+ /** 任务数据库目录 `@karinjs/data/db/task` */
34
+ const karinPathTaskDb = Object.freeze(path.join(karinPathDb, "task"));
35
+ /** 伪redis sqlite3目录 `@karinjs/data/db/redis-sqlite3` */
36
+ const karinPathRedisSqlite3 = Object.freeze(path.join(karinPathDb, "redis-sqlite3"));
37
+ /** kv数据库目录 `@karinjs/data/db/kv` */
38
+ const karinPathKv = Object.freeze(path.join(karinPathDb, "kv"));
39
+ /** logs目录 `@karinjs/logs` */
40
+ const karinPathLogs = Object.freeze(path.join(karinPathBase, "logs"));
41
+ /** html目录 `@karinjs/temp/html` */
42
+ const karinPathHtml = Object.freeze(path.join(karinPathTemp, "html"));
43
+ /** pm2配置路径 `@karinjs/config/pm2.yaml` */
44
+ const karinPathPm2Config = Object.freeze(path.join(karinPathConfig, "pm2.yaml"));
45
+ /** console适配器目录 `@karinjs/temp/console` */
46
+ const karinPathConsole = Object.freeze(path.join(karinPathTemp, "console"));
47
+ /** 沙盒数据目录 `@karinjs/data/sandbox` */
48
+ const karinPathSandboxData = Object.freeze(path.join(karinPathData, "sandbox"));
49
+ /** 沙盒临时数据目录 `@karinjs/temp/sandbox` */
50
+ const karinPathSandboxTemp = Object.freeze(path.join(karinPathTemp, "sandbox"));
51
+ /** @deprecated 请使用 karinPathRoot 代替 */
52
+ const karinDir = karinPathRoot;
53
+ /** @deprecated 请使用 karinPathMain 代替 */
54
+ const karinMain = karinPathMain;
55
+ /** @deprecated 请使用 karinPathPlugins 代替 */
56
+ const pluginDir = karinPathPlugins;
57
+ /** @deprecated 请使用 isPackaged 代替 */
58
+ const isPkg = isPackaged;
59
+ /** @deprecated 请使用 karinPathDefaultConfig 代替 */
60
+ const defaultConfigPath = karinPathDefaultConfig;
61
+ /** @deprecated 请使用 karinPathDefaultView 代替 */
62
+ const defaultViewPath = karinPathDefaultView;
63
+ /** @deprecated 请使用 karinPathComment 代替 */
64
+ const commentPath = karinPathComment;
65
+ /** @deprecated 请使用 karinPathBase 代替 */
66
+ const basePath = karinPathBase;
67
+ /** @deprecated 请使用 karinPathConfig 代替 */
68
+ const configPath = karinPathConfig;
69
+ /** @deprecated 请使用 karinPathData 代替 */
70
+ const dataPath = karinPathData;
71
+ /** @deprecated 请使用 karinPathTemp 代替 */
72
+ const tempPath = karinPathTemp;
73
+ /** @deprecated 请使用 karinPathResource 代替 */
74
+ const resourcePath = karinPathResource;
75
+ /** @deprecated 请使用 karinPathDb 代替 */
76
+ const dbPath = karinPathDb;
77
+ /** @deprecated 请使用 karinPathRedisSqlite3 代替 */
78
+ const redisSqlite3Path = karinPathRedisSqlite3;
79
+ /** @deprecated 请使用 karinPathKv 代替 */
80
+ const kvPath = karinPathKv;
81
+ /** @deprecated 请使用 karinPathLogs 代替 */
82
+ const logsPath = karinPathLogs;
83
+ /** @deprecated 请使用 karinPathHtml 代替 */
84
+ const htmlPath = karinPathHtml;
85
+ /** @deprecated 请使用 karinPathPm2Config 代替 */
86
+ const pm2Path = karinPathPm2Config;
87
+ /** @deprecated 请使用 karinPathConsole 代替 */
88
+ const consolePath = karinPathConsole;
89
+ /** @deprecated 请使用 karinPathSandboxData 代替 */
90
+ const sandboxDataPath = karinPathSandboxData;
91
+ /** @deprecated 请使用 karinPathSandboxTemp 代替 */
92
+ const sandboxTempPath = karinPathSandboxTemp;
49
93
  var root_default = {
50
- // 新常量
51
- karinPathRoot,
52
- karinPathMain,
53
- karinPathPlugins,
54
- isPackaged,
55
- karinPathDefaultConfig,
56
- karinPathDefaultView,
57
- karinPathComment,
58
- karinPathBase,
59
- karinPathConfig,
60
- karinPathData,
61
- karinPathTemp,
62
- karinPathResource,
63
- karinPathDb,
64
- karinPathRedisSqlite3,
65
- karinPathKv,
66
- karinPathLogs,
67
- karinPathHtml,
68
- karinPathPm2Config,
69
- karinPathConsole,
70
- karinPathSandboxData,
71
- karinPathSandboxTemp,
72
- karinPathTaskDb,
73
- // 旧常量,保持兼容性
74
- karinDir,
75
- karinMain,
76
- pluginDir,
77
- isPkg,
78
- defaultConfigPath,
79
- defaultViewPath,
80
- commentPath,
81
- basePath,
82
- configPath,
83
- dataPath,
84
- tempPath,
85
- resourcePath,
86
- dbPath,
87
- redisSqlite3Path,
88
- kvPath,
89
- logsPath,
90
- htmlPath,
91
- pm2Path,
92
- consolePath,
93
- sandboxDataPath,
94
- sandboxTempPath
94
+ karinPathRoot,
95
+ karinPathMain,
96
+ karinPathPlugins,
97
+ isPackaged,
98
+ karinPathDefaultConfig,
99
+ karinPathDefaultView,
100
+ karinPathComment,
101
+ karinPathBase,
102
+ karinPathConfig,
103
+ karinPathData,
104
+ karinPathTemp,
105
+ karinPathResource,
106
+ karinPathDb,
107
+ karinPathRedisSqlite3,
108
+ karinPathKv,
109
+ karinPathLogs,
110
+ karinPathHtml,
111
+ karinPathPm2Config,
112
+ karinPathConsole,
113
+ karinPathSandboxData,
114
+ karinPathSandboxTemp,
115
+ karinPathTaskDb,
116
+ karinDir,
117
+ karinMain,
118
+ pluginDir,
119
+ isPkg,
120
+ defaultConfigPath,
121
+ defaultViewPath,
122
+ commentPath,
123
+ basePath,
124
+ configPath,
125
+ dataPath,
126
+ tempPath,
127
+ resourcePath,
128
+ dbPath,
129
+ redisSqlite3Path,
130
+ kvPath,
131
+ logsPath,
132
+ htmlPath,
133
+ pm2Path,
134
+ consolePath,
135
+ sandboxDataPath,
136
+ sandboxTempPath
95
137
  };
96
138
 
97
- export { basePath, commentPath, configPath, consolePath, dataPath, dbPath, root_default as default, defaultConfigPath, defaultViewPath, htmlPath, isPackaged, isPkg, karinDir, karinMain, karinPathBase, karinPathComment, karinPathConfig, karinPathConsole, karinPathData, karinPathDb, karinPathDefaultConfig, karinPathDefaultView, karinPathHtml, karinPathKv, karinPathLogs, karinPathMain, karinPathPlugins, karinPathPm2Config, karinPathRedisSqlite3, karinPathResource, karinPathRoot, karinPathSandboxData, karinPathSandboxTemp, karinPathTaskDb, karinPathTemp, kvPath, logsPath, pluginDir, pm2Path, redisSqlite3Path, resourcePath, sandboxDataPath, sandboxTempPath, tempPath };
139
+ //#endregion
140
+ export { basePath, commentPath, configPath, consolePath, dataPath, dbPath, root_default as default, defaultConfigPath, defaultViewPath, htmlPath, isPackaged, isPkg, karinDir, karinMain, karinPathBase, karinPathComment, karinPathConfig, karinPathConsole, karinPathData, karinPathDb, karinPathDefaultConfig, karinPathDefaultView, karinPathHtml, karinPathKv, karinPathLogs, karinPathMain, karinPathPlugins, karinPathPm2Config, karinPathRedisSqlite3, karinPathResource, karinPathRoot, karinPathSandboxData, karinPathSandboxTemp, karinPathTaskDb, karinPathTemp, kvPath, logsPath, pluginDir, pm2Path, redisSqlite3Path, resourcePath, sandboxDataPath, sandboxTempPath, tempPath };
@@ -0,0 +1,124 @@
1
+ //#region src/server/router/router.ts
2
+ /** 基本路由 */
3
+ const BASE_ROUTER = "/api/v1";
4
+ /** 登录路由 */
5
+ const LOGIN_ROUTER = "/login";
6
+ /** 刷新令牌路由 */
7
+ const REFRESH_ROUTER = "/refresh";
8
+ /** 获取系统配置路由 */
9
+ const GET_CONFIG_ROUTER = "/config/new/get";
10
+ /** 保存系统配置路由 */
11
+ const SAVE_CONFIG_ROUTER = "/config/new/save";
12
+ /** 获取日志路由 */
13
+ const GET_LOG_ROUTER = "/log";
14
+ /** 设置日志等级路由 */
15
+ const SET_LOG_LEVEL_ROUTER = "/logs/level";
16
+ /** 获取日志文件列表路由 */
17
+ const GET_LOG_FILE_LIST_ROUTER = "/logs/list";
18
+ /** 获取指定日志文件路由 */
19
+ const GET_LOG_FILE_ROUTER = "/logs/file";
20
+ /** 退出karin路由 */
21
+ const EXIT_ROUTER = "/exit";
22
+ /** 重启karin路由 */
23
+ const RESTART_ROUTER = "/restart";
24
+ /** 获取网络状态路由 */
25
+ const GET_NETWORK_STATUS_ROUTER = "/system/get/network";
26
+ /** 更新karin路由 */
27
+ const UPDATE_CORE_ROUTER = "/system/update";
28
+ /** 获取所有bot列表路由 */
29
+ const GET_BOTS_ROUTER = "/system/get/bots";
30
+ /** console适配器路由 */
31
+ const CONSOLE_ROUTER = "/console/{*path}";
32
+ /** ping路由 */
33
+ const PING_ROUTER = "/ping";
34
+ /** 系统状态路由 */
35
+ const SYSTEM_STATUS_ROUTER = "/status/system";
36
+ /** 系统信息路由 */
37
+ const SYSTEM_INFO_ROUTER = "/info";
38
+ /** 系统ws连接 */
39
+ const SYSTEM_STATUS_WS_ROUTER = "/status/ws";
40
+ /** karin状态 */
41
+ const SYSTEM_STATUS_KARIN_ROUTER = "/status/karin";
42
+ /** 获取在线插件列表 */
43
+ const GET_ONLINE_PLUGIN_LIST_ROUTER = "/plugin/index";
44
+ /** 获取插件列表 */
45
+ const GET_PLUGIN_LIST_ROUTER = "/plugin/list";
46
+ /** 获取插件应用 */
47
+ const GET_PLUGIN_APPS_ROUTER = "/plugin/apps";
48
+ /** 获取插件文件 */
49
+ const GET_PLUGIN_FILE_ROUTER = "/plugin/file";
50
+ /** 获取可更新插件 */
51
+ const GET_UPDATABLE_PLUGINS_ROUTER = "/plugin/updates";
52
+ /** 批量更新插件 */
53
+ const BATCH_UPDATE_PLUGINS_ROUTER = "/plugin/update/batch";
54
+ /** 获取插件配置 */
55
+ const GET_PLUGIN_CONFIG_ROUTER = "/plugin/config/get";
56
+ /** 保存插件配置 */
57
+ const SAVE_PLUGIN_CONFIG_ROUTER = "/plugin/config/save";
58
+ /** 判断插件配置是否存在 */
59
+ const IS_PLUGIN_CONFIG_EXIST_ROUTER = "/plugin/config/is-exist";
60
+ /** 更新插件 */
61
+ const UPDATE_PLUGIN_ROUTER = "/plugin/update";
62
+ /** 安装插件 */
63
+ const INSTALL_PLUGIN_ROUTER = "/plugin/install";
64
+ /** 卸载插件 */
65
+ const UNINSTALL_PLUGIN_ROUTER = "/plugin/uninstall";
66
+ /** 获取任务状态 */
67
+ const GET_TASK_STATUS_ROUTER = "/plugin/task";
68
+ /** 获取任务列表 */
69
+ const GET_TASK_LIST_ROUTER = "/plugin/task/list";
70
+ /** 更新任务状态 */
71
+ const UPDATE_TASK_STATUS_ROUTER = "/plugin/task/status";
72
+ /** 获取本地插件列表 */
73
+ const GET_LOCAL_PLUGIN_LIST_ROUTER = "/plugin/local";
74
+ /** 创建终端 */
75
+ const CREATE_TERMINAL_ROUTER = "/terminal/create";
76
+ /** 获取终端列表 */
77
+ const GET_TERMINAL_LIST_ROUTER = "/terminal/list";
78
+ /** 关闭终端 */
79
+ const CLOSE_TERMINAL_ROUTER = "/terminal/close";
80
+ /** 检查是否安装了指定的npm包 */
81
+ const CHECK_PLUGIN_ROUTER = "/system/check/plugin";
82
+ /** 安装webui插件 */
83
+ const INSTALL_WEBUI_PLUGIN_ROUTER = "/plugin/webui/install";
84
+ /** 获取webui插件列表 */
85
+ const GET_WEBUI_PLUGIN_LIST_ROUTER = "/plugin/webui/list";
86
+ /** 卸载webui插件 */
87
+ const UNINSTALL_WEBUI_PLUGIN_ROUTER = "/plugin/webui/uninstall";
88
+ /** 获取WebUI插件版本 */
89
+ const GET_WEBUI_PLUGIN_VERSIONS_ROUTER = "/plugin/webui/versions";
90
+ /** 更新WebUI插件到指定版本 */
91
+ const UPDATE_WEBUI_PLUGIN_VERSION_ROUTER = "/plugin/webui/update-version";
92
+ /** 获取任务列表 */
93
+ const TASK_LIST_ROUTER = "/task/list";
94
+ /** 执行任务 */
95
+ const TASK_RUN_ROUTER = "/task/run";
96
+ /** 获取任务日志 */
97
+ const TASK_LOGS_ROUTER = "/task/logs";
98
+ /** 删除任务记录 */
99
+ const TASK_DELETE_ROUTER = "/task/delete_record";
100
+ /** 插件管理 */
101
+ const PLUGIN_ADMIN_ROUTER = "/plugin/admin";
102
+ /** @version 1.8.0 获取插件管理所需的插件信息列表 */
103
+ const GET_PLUGIN_LIST_PLUGIN_ADMIN_ROUTER = "/plugin/detail/list";
104
+ /** @version 1.8.0 获取依赖列表 */
105
+ const GET_DEPENDENCIES_LIST_ROUTER = "/dependencies/list";
106
+ /** @version 1.8.0 依赖管理路由 */
107
+ const MANAGE_DEPENDENCIES_ROUTER = "/dependencies/manage";
108
+ /** @version 1.8.0 获取.npmrc文件列表 */
109
+ const GET_NPMRC_LIST_ROUTER = "/dependencies/npmrc/list";
110
+ /** @version 1.8.0 获取npm config文件内容 */
111
+ const GET_NPM_CONFIG_ROUTER = "/dependencies/npmrc/get";
112
+ /** @version 1.8.0 获取npm registry、proxy、https-proxy配置 */
113
+ const GET_NPM_BASE_CONFIG_ROUTER = "/dependencies/npm/base";
114
+ /** @version 1.8.0 保存npmrc文件 */
115
+ const SAVE_NPMRC_ROUTER = "/dependencies/npmrc/save";
116
+ /** @version 1.8.0 获取已加载命令插件缓存信息列表 */
117
+ const GET_LOADED_COMMAND_PLUGIN_CACHE_LIST_ROUTER = "/plugin/loaded/command";
118
+ /** @version 1.8.0 获取插件市场列表 */
119
+ const GET_PLUGIN_MARKET_LIST_ROUTER = "/plugin/market";
120
+ /** @version 1.8.0 获取本地插件列表 用于插件索引页面渲染简约列表 */
121
+ const GET_LOCAL_PLUGIN_FRONTEND_LIST_ROUTER = "/plugin/local/frontend";
122
+
123
+ //#endregion
124
+ export { TASK_LOGS_ROUTER as $, GET_TERMINAL_LIST_ROUTER as A, PLUGIN_ADMIN_ROUTER as B, GET_PLUGIN_CONFIG_ROUTER as C, GET_PLUGIN_MARKET_LIST_ROUTER as D, GET_PLUGIN_LIST_ROUTER as E, INSTALL_WEBUI_PLUGIN_ROUTER as F, SAVE_PLUGIN_CONFIG_ROUTER as G, RESTART_ROUTER as H, IS_PLUGIN_CONFIG_EXIST_ROUTER as I, SYSTEM_STATUS_KARIN_ROUTER as J, SET_LOG_LEVEL_ROUTER as K, LOGIN_ROUTER as L, GET_WEBUI_PLUGIN_LIST_ROUTER as M, GET_WEBUI_PLUGIN_VERSIONS_ROUTER as N, GET_TASK_LIST_ROUTER as O, INSTALL_PLUGIN_ROUTER as P, TASK_LIST_ROUTER as Q, MANAGE_DEPENDENCIES_ROUTER as R, GET_PLUGIN_APPS_ROUTER as S, GET_PLUGIN_LIST_PLUGIN_ADMIN_ROUTER as T, SAVE_CONFIG_ROUTER as U, REFRESH_ROUTER as V, SAVE_NPMRC_ROUTER as W, SYSTEM_STATUS_WS_ROUTER as X, SYSTEM_STATUS_ROUTER as Y, TASK_DELETE_ROUTER as Z, GET_NETWORK_STATUS_ROUTER as _, CONSOLE_ROUTER as a, UPDATE_TASK_STATUS_ROUTER as at, GET_NPM_CONFIG_ROUTER as b, GET_BOTS_ROUTER as c, GET_LOADED_COMMAND_PLUGIN_CACHE_LIST_ROUTER as d, TASK_RUN_ROUTER as et, GET_LOCAL_PLUGIN_FRONTEND_LIST_ROUTER as f, GET_LOG_ROUTER as g, GET_LOG_FILE_ROUTER as h, CLOSE_TERMINAL_ROUTER as i, UPDATE_PLUGIN_ROUTER as it, GET_UPDATABLE_PLUGINS_ROUTER as j, GET_TASK_STATUS_ROUTER as k, GET_CONFIG_ROUTER as l, GET_LOG_FILE_LIST_ROUTER as m, BATCH_UPDATE_PLUGINS_ROUTER as n, UNINSTALL_WEBUI_PLUGIN_ROUTER as nt, CREATE_TERMINAL_ROUTER as o, UPDATE_WEBUI_PLUGIN_VERSION_ROUTER as ot, GET_LOCAL_PLUGIN_LIST_ROUTER as p, SYSTEM_INFO_ROUTER as q, CHECK_PLUGIN_ROUTER as r, UPDATE_CORE_ROUTER as rt, EXIT_ROUTER as s, BASE_ROUTER as t, UNINSTALL_PLUGIN_ROUTER as tt, GET_DEPENDENCIES_LIST_ROUTER as u, GET_NPMRC_LIST_ROUTER as v, GET_PLUGIN_FILE_ROUTER as w, GET_ONLINE_PLUGIN_LIST_ROUTER as x, GET_NPM_BASE_CONFIG_ROUTER as y, PING_ROUTER as z };