node-karin 0.12.2-5.pr.206.c405ffa → 0.12.2-5.pr.206.ccdb3c6

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 (69) hide show
  1. package/default/config/adapter.json +28 -0
  2. package/default/config/config.json +45 -0
  3. package/default/config/groups.json +47 -0
  4. package/default/config/pm2.json +16 -0
  5. package/default/config/privates.json +23 -0
  6. package/default/config/redis.json +10 -0
  7. package/default/config/render.json +19 -0
  8. package/dist/cli/index.cjs +412 -0
  9. package/dist/cli/index.d.ts +1 -0
  10. package/dist/cli/index.js +406 -0
  11. package/{lib → dist}/index.d.ts +1719 -992
  12. package/dist/index.js +12646 -0
  13. package/dist/module/dotenv.cjs +22 -0
  14. package/dist/module/dotenv.d.ts +2 -0
  15. package/dist/module/dotenv.js +2 -0
  16. package/dist/root.d.ts +40 -0
  17. package/dist/root.js +44 -0
  18. package/package.json +84 -73
  19. package/LICENSE +0 -21
  20. package/README.md +0 -29
  21. package/default/config/config.yaml +0 -78
  22. package/default/config/pm2.yaml +0 -21
  23. package/default/config/redis.yaml +0 -19
  24. package/default/config/server.yaml +0 -47
  25. package/lib/index.js +0 -38
  26. /package/default/config/{groupGuild.yaml → groups.yaml} +0 -0
  27. /package/default/config/{friendDirect.yaml → privates.yaml} +0 -0
  28. /package/{packages → dist}/module/art-template.cjs +0 -0
  29. /package/{packages → dist}/module/art-template.d.ts +0 -0
  30. /package/{packages → dist}/module/art-template.js +0 -0
  31. /package/{packages → dist}/module/axios.cjs +0 -0
  32. /package/{packages → dist}/module/axios.d.ts +0 -0
  33. /package/{packages → dist}/module/axios.js +0 -0
  34. /package/{packages → dist}/module/chalk.cjs +0 -0
  35. /package/{packages → dist}/module/chalk.d.ts +0 -0
  36. /package/{packages → dist}/module/chalk.js +0 -0
  37. /package/{packages → dist}/module/chokidar.cjs +0 -0
  38. /package/{packages → dist}/module/chokidar.d.ts +0 -0
  39. /package/{packages → dist}/module/chokidar.js +0 -0
  40. /package/{packages → dist}/module/commander.cjs +0 -0
  41. /package/{packages → dist}/module/commander.d.ts +0 -0
  42. /package/{packages → dist}/module/commander.js +0 -0
  43. /package/{packages → dist}/module/express.cjs +0 -0
  44. /package/{packages → dist}/module/express.d.ts +0 -0
  45. /package/{packages → dist}/module/express.js +0 -0
  46. /package/{packages → dist}/module/level.cjs +0 -0
  47. /package/{packages → dist}/module/level.d.ts +0 -0
  48. /package/{packages → dist}/module/level.js +0 -0
  49. /package/{packages → dist}/module/lodash.cjs +0 -0
  50. /package/{packages → dist}/module/lodash.d.ts +0 -0
  51. /package/{packages → dist}/module/lodash.js +0 -0
  52. /package/{packages → dist}/module/log4js.cjs +0 -0
  53. /package/{packages → dist}/module/log4js.d.ts +0 -0
  54. /package/{packages → dist}/module/log4js.js +0 -0
  55. /package/{packages → dist}/module/moment.cjs +0 -0
  56. /package/{packages → dist}/module/moment.d.ts +0 -0
  57. /package/{packages → dist}/module/moment.js +0 -0
  58. /package/{packages → dist}/module/node-schedule.cjs +0 -0
  59. /package/{packages → dist}/module/node-schedule.d.ts +0 -0
  60. /package/{packages → dist}/module/node-schedule.js +0 -0
  61. /package/{packages → dist}/module/redis.cjs +0 -0
  62. /package/{packages → dist}/module/redis.d.ts +0 -0
  63. /package/{packages → dist}/module/redis.js +0 -0
  64. /package/{packages → dist}/module/ws.cjs +0 -0
  65. /package/{packages → dist}/module/ws.d.ts +0 -0
  66. /package/{packages → dist}/module/ws.js +0 -0
  67. /package/{packages → dist}/module/yaml.cjs +0 -0
  68. /package/{packages → dist}/module/yaml.d.ts +0 -0
  69. /package/{packages → dist}/module/yaml.js +0 -0
@@ -0,0 +1,28 @@
1
+ {
2
+ "console": {
3
+ "isLocal": true,
4
+ "token": "",
5
+ "host": ""
6
+ },
7
+ "onebot": {
8
+ "ws_server": {
9
+ "enable": true,
10
+ "timeout": 120
11
+ },
12
+ "ws_client": [
13
+ {
14
+ "enable": false,
15
+ "url": "ws://127.0.0.1:7778",
16
+ "token": ""
17
+ }
18
+ ],
19
+ "http_server": [
20
+ {
21
+ "enable": false,
22
+ "self_id": "default",
23
+ "url": "http://127.0.0.1:6099",
24
+ "token": ""
25
+ }
26
+ ]
27
+ }
28
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "master": [
3
+ "console"
4
+ ],
5
+ "admin": [],
6
+ "user": {
7
+ "enable_list": [],
8
+ "disable_list": []
9
+ },
10
+ "friend": {
11
+ "enable": true,
12
+ "enable_list": [],
13
+ "disable_list": [],
14
+ "log_enable_list": [],
15
+ "log_disable_list": []
16
+ },
17
+ "group": {
18
+ "enable": true,
19
+ "enable_list": [],
20
+ "disable_list": [],
21
+ "log_enable_list": [],
22
+ "log_disable_list": []
23
+ },
24
+ "directs": {
25
+ "enable": true,
26
+ "enable_list": [],
27
+ "disable_list": [],
28
+ "log_enable_list": [],
29
+ "log_disable_list": []
30
+ },
31
+ "guilds": {
32
+ "enable": true,
33
+ "enable_list": [],
34
+ "disable_list": [],
35
+ "log_enable_list": [],
36
+ "log_disable_list": []
37
+ },
38
+ "channels": {
39
+ "enable": true,
40
+ "enable_list": [],
41
+ "disable_list": [],
42
+ "log_enable_list": [],
43
+ "log_disable_list": []
44
+ }
45
+ }
@@ -0,0 +1,47 @@
1
+ {
2
+ "default": {
3
+ "cd": 0,
4
+ "mode": 0,
5
+ "alias": [],
6
+ "enable": [],
7
+ "disable": [],
8
+ "member_enable": [],
9
+ "member_disable": []
10
+ },
11
+ "Bot:selfId": {
12
+ "cd": 0,
13
+ "mode": 0,
14
+ "alias": [],
15
+ "enable": [],
16
+ "disable": [],
17
+ "member_enable": [],
18
+ "member_disable": []
19
+ },
20
+ "Bot:selfId:groupId": {
21
+ "cd": 0,
22
+ "mode": 0,
23
+ "alias": [],
24
+ "enable": [],
25
+ "disable": [],
26
+ "member_enable": [],
27
+ "member_disable": []
28
+ },
29
+ "Bot:selfId:guildId": {
30
+ "cd": 0,
31
+ "mode": 0,
32
+ "alias": [],
33
+ "enable": [],
34
+ "disable": [],
35
+ "member_enable": [],
36
+ "member_disable": []
37
+ },
38
+ "Bot:selfId:guildId:channelId": {
39
+ "cd": 0,
40
+ "mode": 0,
41
+ "alias": [],
42
+ "enable": [],
43
+ "disable": [],
44
+ "member_enable": [],
45
+ "member_disable": []
46
+ }
47
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "lines": 1000,
3
+ "apps": [
4
+ {
5
+ "name": "karin",
6
+ "script": "index.js",
7
+ "autorestart": true,
8
+ "max_restarts": 60,
9
+ "max_memory_restart": "1G",
10
+ "restart_delay": 2000,
11
+ "merge_logs": true,
12
+ "error_file": "./logs/pm2_error.log",
13
+ "out_file": "./logs/pm2_out.log"
14
+ }
15
+ ]
16
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "default": {
3
+ "cd": 0,
4
+ "mode": 0,
5
+ "alias": [],
6
+ "enable": [],
7
+ "disable": []
8
+ },
9
+ "Bot:selfId": {
10
+ "cd": 0,
11
+ "mode": 0,
12
+ "alias": [],
13
+ "enable": [],
14
+ "disable": []
15
+ },
16
+ "Bot:selfId:userId": {
17
+ "cd": 0,
18
+ "mode": 0,
19
+ "alias": [],
20
+ "enable": [],
21
+ "disable": []
22
+ }
23
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "url": "redis://127.0.0.1:6379",
3
+ "socket": {
4
+ "host": "127.0.0.1",
5
+ "port": 6379
6
+ },
7
+ "username": "",
8
+ "password": "",
9
+ "database": 0
10
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "ws_server": {
3
+ "enable": true
4
+ },
5
+ "ws_client": [
6
+ {
7
+ "enable": false,
8
+ "url": "ws://127.0.0.1:7005",
9
+ "token": "123456"
10
+ }
11
+ ],
12
+ "http_server": [
13
+ {
14
+ "enable": false,
15
+ "url": "http://127.0.0.1:7005",
16
+ "token": "123456"
17
+ }
18
+ ]
19
+ }
@@ -0,0 +1,412 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ var fs2 = require('fs');
5
+ var path2 = require('path');
6
+ var child_process = require('child_process');
7
+ var url = require('url');
8
+ var dotenv = require('dotenv');
9
+ var promises = require('fs/promises');
10
+ var commander = require('commander');
11
+
12
+ var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
13
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
14
+
15
+ var fs2__default = /*#__PURE__*/_interopDefault(fs2);
16
+ var path2__default = /*#__PURE__*/_interopDefault(path2);
17
+ var dotenv__default = /*#__PURE__*/_interopDefault(dotenv);
18
+
19
+ var exec = (cmd, options = {}) => {
20
+ try {
21
+ const result = child_process.execSync(cmd, options);
22
+ return { status: true, error: null, stdout: result.toString(), stderr: "" };
23
+ } catch (error) {
24
+ return { status: false, error, stdout: "", stderr: "" };
25
+ }
26
+ };
27
+ var pm2Dir = path2__default.default.join(process.cwd(), "./@karinjs/config/pm2.json");
28
+ var start = () => {
29
+ if (!fs2__default.default.existsSync(pm2Dir)) {
30
+ console.log(`[pm2] \u914D\u7F6E\u6587\u4EF6\u4E0D\u5B58\u5728 \u8BF7\u68C0\u67E5 ${pm2Dir} \u662F\u5426\u5B58\u5728`);
31
+ console.log("[pm2] \u5982\u679C\u662F\u65B0\u9879\u76EE\uFF0C\u8BF7\u5148\u524D\u53F0\u542F\u52A8\u751F\u6210\u914D\u7F6E\u6587\u4EF6: pnpm app");
32
+ process.exit(1);
33
+ }
34
+ console.log("[pm2] \u542F\u52A8\u4E2D...");
35
+ const { error } = exec(`pm2 start ${pm2Dir}`, { cwd: process.cwd() });
36
+ if (error) {
37
+ console.log("[pm2] \u542F\u52A8\u5931\u8D25");
38
+ console.log(error);
39
+ process.exit(1);
40
+ }
41
+ console.log("[pm2] \u542F\u52A8\u6210\u529F");
42
+ console.log("[pm2] \u91CD\u542F\u670D\u52A1: pnpm rs");
43
+ console.log("[pm2] \u67E5\u770B\u65E5\u5FD7: pnpm log");
44
+ console.log("[pm2] \u505C\u6B62\u670D\u52A1: pnpm stop");
45
+ console.log("[pm2] \u67E5\u770B\u76D1\u63A7: pm2 monit");
46
+ console.log("[pm2] \u67E5\u770B\u5217\u8868: pm2 list");
47
+ process.exit(0);
48
+ };
49
+ var log = () => {
50
+ if (!fs2__default.default.existsSync(pm2Dir)) {
51
+ console.log(`[pm2] \u914D\u7F6E\u6587\u4EF6\u4E0D\u5B58\u5728 \u8BF7\u68C0\u67E5 ${pm2Dir} \u662F\u5426\u5B58\u5728`);
52
+ console.log("[pm2] \u5982\u679C\u662F\u65B0\u9879\u76EE\uFF0C\u8BF7\u5148\u524D\u53F0\u542F\u52A8\u751F\u6210\u914D\u7F6E\u6587\u4EF6: pnpm app");
53
+ process.exit(1);
54
+ }
55
+ const data = JSON.parse(fs2__default.default.readFileSync(pm2Dir, "utf-8"));
56
+ try {
57
+ const prefix = process.platform === "win32" ? "pm2.cmd" : "pm2";
58
+ child_process.spawn(prefix, ["logs", data.name, "--lines", data.lines || 1e3], { stdio: "inherit", shell: true });
59
+ } catch (error) {
60
+ console.error("[pm2] \u53D1\u751F\u672A\u77E5\u9519\u8BEF: \u8BF7\u68C0\u67E5pm2\u662F\u5426\u5B89\u88C5 \u3010npm install -g pm2\u3011");
61
+ console.error(error);
62
+ process.exit(1);
63
+ }
64
+ };
65
+ var stop = () => {
66
+ if (!fs2__default.default.existsSync(pm2Dir)) {
67
+ console.log(`[pm2] \u914D\u7F6E\u6587\u4EF6\u4E0D\u5B58\u5728 \u8BF7\u68C0\u67E5 ${pm2Dir} \u662F\u5426\u5B58\u5728`);
68
+ console.log("[pm2] \u5982\u679C\u662F\u65B0\u9879\u76EE\uFF0C\u8BF7\u5148\u524D\u53F0\u542F\u52A8\u751F\u6210\u914D\u7F6E\u6587\u4EF6: pnpm app");
69
+ process.exit(1);
70
+ }
71
+ const data = JSON.parse(fs2__default.default.readFileSync(pm2Dir, "utf-8"));
72
+ exec(`pm2 stop ${data.name}`, { cwd: process.cwd() });
73
+ console.log("[pm2] \u505C\u6B62\u6210\u529F");
74
+ process.exit(0);
75
+ };
76
+ var restart = () => {
77
+ if (!fs2__default.default.existsSync(pm2Dir)) {
78
+ console.log(`[pm2] \u914D\u7F6E\u6587\u4EF6\u4E0D\u5B58\u5728 \u8BF7\u68C0\u67E5 ${pm2Dir} \u662F\u5426\u5B58\u5728`);
79
+ console.log("[pm2] \u5982\u679C\u662F\u65B0\u9879\u76EE\uFF0C\u8BF7\u5148\u524D\u53F0\u542F\u52A8\u751F\u6210\u914D\u7F6E\u6587\u4EF6: pnpm app");
80
+ process.exit(1);
81
+ }
82
+ };
83
+ var pm2 = {
84
+ start,
85
+ log,
86
+ stop,
87
+ restart
88
+ };
89
+ var dir = process.env.INIT_CWD || process.cwd();
90
+ var pkgDir = url.fileURLToPath(new url.URL("../..", (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))));
91
+ var createDir = () => {
92
+ const list = [
93
+ path2__default.default.join(dir, "logs"),
94
+ path2__default.default.join(dir, "plugins", "karin-plugin-example"),
95
+ path2__default.default.join(dir, "@karinjs", "config"),
96
+ path2__default.default.join(dir, "@karinjs", "data"),
97
+ path2__default.default.join(dir, "@karinjs", "temp", "console"),
98
+ path2__default.default.join(dir, "@karinjs", "temp", "html"),
99
+ path2__default.default.join(dir, "@karinjs", "resource")
100
+ ];
101
+ list.forEach((item) => {
102
+ if (!fs2__default.default.existsSync(item)) fs2__default.default.mkdirSync(item, { recursive: true });
103
+ });
104
+ };
105
+ var createPnpmFile = (dir2) => {
106
+ const pnpmfile = path2__default.default.join(dir2, ".pnpmfile.cjs");
107
+ if (fs2__default.default.existsSync(pnpmfile)) return;
108
+ const content = [
109
+ "// \u6E05\u7A7A\u5BF9\u7B49\u4F9D\u8D56\u4E2D\u7684node-karin",
110
+ "function readPackage (pkg, context) {",
111
+ " if (pkg?.['peerDependencies']?.['node-karin'] && pkg['peerDependencies']['node-karin'] !== 'file:./lib') {",
112
+ " delete pkg['peerDependencies']['node-karin']",
113
+ " }",
114
+ " return pkg",
115
+ "}",
116
+ "module.exports = {",
117
+ " hooks: {",
118
+ " readPackage",
119
+ " },",
120
+ "}"
121
+ ].join("\n");
122
+ fs2__default.default.writeFileSync(pnpmfile, content);
123
+ };
124
+ var shouldSkipNpmrc = () => {
125
+ const { stdout } = exec("npm config get registry");
126
+ if (stdout.includes("registry.npmjs.org")) return true;
127
+ const { stdout: proxy } = exec("npm config get proxy");
128
+ return !!proxy;
129
+ };
130
+ var createOrUpdateNpmrc = (dir2) => {
131
+ const list = [
132
+ "node_sqlite3_binary_host_mirror=https://registry.npmmirror.com/-/binary/sqlite3",
133
+ "better_sqlite3_binary_host_mirror=https://registry.npmmirror.com/-/binary/better-sqlite3",
134
+ "sass_binary_site=https://registry.npmmirror.com/-/binary/node-sass",
135
+ "sharp_binary_host=https://registry.npmmirror.com/-/binary/sharp",
136
+ "sharp_libvips_binary_host=https://registry.npmmirror.com/-/binary/sharp-libvips",
137
+ "canvas_binary_host_mirror=https://registry.npmmirror.com/-/binary/canvas",
138
+ "# 19\u4EE5\u4E0B\u7248\u672C",
139
+ "puppeteer_download_host=https://registry.npmmirror.com/mirrors",
140
+ "# 20\u4EE5\u4E0A\u7248\u672C",
141
+ "PUPPETEER_DOWNLOAD_BASE_URL = https://registry.npmmirror.com/binaries/chrome-for-testing"
142
+ ];
143
+ const npmrc = path2__default.default.join(dir2, ".npmrc");
144
+ if (!fs2__default.default.existsSync(npmrc)) {
145
+ fs2__default.default.writeFileSync(npmrc, list.join("\n"));
146
+ return;
147
+ }
148
+ const data = fs2__default.default.readFileSync(npmrc, "utf-8");
149
+ const newEntries = list.filter((item) => {
150
+ const key = item.split("=")[0];
151
+ return !data.includes(key);
152
+ });
153
+ if (newEntries.length > 0) {
154
+ fs2__default.default.appendFileSync(npmrc, "\n" + newEntries.join("\n"));
155
+ }
156
+ };
157
+ var createOrUpdateEnv = (dir2) => {
158
+ const generateRandomKey = () => {
159
+ const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
160
+ return Array.from({ length: 6 }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join("");
161
+ };
162
+ const envData = [
163
+ "# \u662F\u5426\u542F\u7528HTTP",
164
+ "HTTP_ENABLE=true",
165
+ "# HTTP\u76D1\u542C\u7AEF\u53E3",
166
+ "HTTP_PORT=7777",
167
+ "# HTTP\u76D1\u542C\u5730\u5740",
168
+ "HTTP_HOST=0.0.0.0",
169
+ "# HTTP\u9274\u6743\u79D8\u94A5 \u4EC5\u7528\u4E8Ekarin\u81EA\u8EABApi",
170
+ `HTTP_AUTH_KEY=${generateRandomKey()}`,
171
+ "# ws_server\u9274\u6743\u79D8\u94A5",
172
+ `WS_SERVER_AUTH_KEY=${generateRandomKey()}`,
173
+ "\n",
174
+ "# \u662F\u5426\u542F\u7528Redis \u5173\u95ED\u540E\u5C06\u4F7F\u7528\u5185\u90E8\u865A\u62DFRedis",
175
+ "REDIS_ENABLE=true",
176
+ "# \u91CD\u542F\u662F\u5426\u8C03\u7528pm2 \u5982\u679C\u4E0D\u8C03\u7528\u5219\u4F1A\u76F4\u63A5\u5173\u673A \u6B64\u914D\u7F6E\u9002\u5408\u6709\u8FDB\u7A0B\u5B88\u62A4\u7684\u7A0B\u5E8F",
177
+ "PM2_RESTART=true",
178
+ "\n",
179
+ "# \u65E5\u5FD7\u7B49\u7EA7",
180
+ "LOG_LEVEL=info",
181
+ "# \u65E5\u5FD7\u4FDD\u7559\u5929\u6570",
182
+ "LOG_DAYS_TO_KEEP=7",
183
+ "# \u65E5\u5FD7\u6587\u4EF6\u6700\u5927\u5927\u5C0F \u5982\u679C\u6B64\u9879\u5927\u4E8E0\u5219\u542F\u7528\u65E5\u5FD7\u5206\u5272",
184
+ "LOG_MAX_LOG_SIZE=0",
185
+ "# logger.fnc\u989C\u8272",
186
+ 'LOG_FNC_COLOR="#E1D919"',
187
+ "\n",
188
+ "# ffmpeg",
189
+ "FFMPEG_PATH=",
190
+ "# ffprobe",
191
+ "FFPROBE_PATH=",
192
+ "# ffplay",
193
+ "FFPLAY_PATH=",
194
+ "\n",
195
+ "# \u8FD9\u91CC\u8BF7\u52FF\u4FEE\u6539",
196
+ "RUNTIME=node"
197
+ ];
198
+ const env = path2__default.default.join(dir2, ".env");
199
+ if (!fs2__default.default.existsSync(env)) {
200
+ fs2__default.default.writeFileSync(env, envData.join("\n"));
201
+ return;
202
+ }
203
+ const value = fs2__default.default.readFileSync(env, "utf-8");
204
+ const newEntries = envData.filter((item) => {
205
+ if (item.includes("#")) return false;
206
+ const key = item.split("=")[0];
207
+ return !value.includes(key);
208
+ });
209
+ if (newEntries.length > 0) {
210
+ fs2__default.default.appendFileSync(env, "\n" + newEntries.join("\n"));
211
+ }
212
+ };
213
+ var createOrUpdateEnvDev = (dir2) => {
214
+ const envDevData = [
215
+ "# \u662F\u5426\u4E3A\u5F00\u53D1\u73AF\u5883",
216
+ "NODE_ENV=development",
217
+ "# \u8FD0\u884C\u5668",
218
+ "RUNTIME=tsx"
219
+ ];
220
+ const envDev = path2__default.default.join(dir2, ".env.dev");
221
+ if (!fs2__default.default.existsSync(envDev)) {
222
+ fs2__default.default.writeFileSync(envDev, envDevData.join("\n"));
223
+ return;
224
+ }
225
+ const value = fs2__default.default.readFileSync(envDev, "utf-8");
226
+ const newEntries = envDevData.filter((item) => {
227
+ if (item.includes("#")) return false;
228
+ const key = item.split("=")[0];
229
+ return !value.includes(key);
230
+ });
231
+ if (newEntries.length > 0) {
232
+ fs2__default.default.appendFileSync(envDev, "\n" + newEntries.join("\n"));
233
+ }
234
+ };
235
+ var createWorkspace = (dir2) => {
236
+ const workspace = path2__default.default.join(dir2, "pnpm-workspace.yaml");
237
+ if (fs2__default.default.existsSync(workspace)) return;
238
+ const content = "packages:\n - 'plugins/**'\n";
239
+ fs2__default.default.writeFileSync(workspace, content);
240
+ };
241
+ var createOtherFile = async () => {
242
+ createPnpmFile(dir);
243
+ createWorkspace(dir);
244
+ if (!shouldSkipNpmrc()) {
245
+ createOrUpdateNpmrc(dir);
246
+ }
247
+ createOrUpdateEnv(dir);
248
+ createOrUpdateEnvDev(dir);
249
+ };
250
+ var createConfig = () => {
251
+ const defCfg = path2__default.default.join(pkgDir, "default", "config");
252
+ const files = fs2__default.default.readdirSync(defCfg);
253
+ files.forEach((file) => {
254
+ if (!file.endsWith(".json")) return;
255
+ const filePath = path2__default.default.join(defCfg, file);
256
+ const targetPath = path2__default.default.join(dir, "@karinjs", "config");
257
+ const targetFile = path2__default.default.join(targetPath, file);
258
+ if (!fs2__default.default.existsSync(targetFile)) {
259
+ fs2__default.default.copyFileSync(filePath, targetFile);
260
+ return;
261
+ }
262
+ const defData = fs2__default.default.readFileSync(filePath, "utf-8");
263
+ const targetData = fs2__default.default.readFileSync(targetFile, "utf-8");
264
+ const mergedData = { ...JSON.parse(defData), ...JSON.parse(targetData) };
265
+ fs2__default.default.writeFileSync(targetFile, JSON.stringify(mergedData, null, 2));
266
+ });
267
+ };
268
+ var modifyPackageJson = () => {
269
+ const pkg = fs2__default.default.readFileSync(path2__default.default.join(dir, "package.json"), "utf-8");
270
+ const pkgData = JSON.parse(pkg);
271
+ if (pkgData.type === "module") return pkgData;
272
+ pkgData.type = "module";
273
+ fs2__default.default.writeFileSync(path2__default.default.join(dir, "package.json"), JSON.stringify(pkgData, null, 2));
274
+ return pkgData;
275
+ };
276
+ var init = async () => {
277
+ createDir();
278
+ await createOtherFile();
279
+ createConfig();
280
+ modifyPackageJson();
281
+ process.exit(0);
282
+ };
283
+ var start2 = async (env = ".env") => {
284
+ const dir2 = process.cwd();
285
+ const list = env === ".env" ? [".env"] : [".env", env];
286
+ list.forEach((item) => {
287
+ if (!fs2__default.default.existsSync(`${dir2}/${item}`)) {
288
+ if (env === ".env") {
289
+ console.error(`\u672A\u627E\u5230${item}\u6587\u4EF6\uFF0C\u8BF7\u4F7F\u7528 pnpm init \u8FDB\u884C\u521D\u59CB\u5316\u9879\u76EE`);
290
+ } else {
291
+ console.error(`\u672A\u627E\u5230${item}\u6587\u4EF6\uFF0C\u8BF7\u5C06\u5176\u653E\u7F6E\u5728\u9879\u76EE\u6839\u76EE\u5F55`);
292
+ }
293
+ process.exit(1);
294
+ }
295
+ });
296
+ const path3 = list.map((item) => `${dir2}/${item}`);
297
+ dotenv__default.default.config({ path: path3, override: true });
298
+ const index = "../root.js";
299
+ const { karinMain } = await import(index);
300
+ const child = child_process.fork(karinMain);
301
+ child.on("message", (message) => {
302
+ if (message === "restart") {
303
+ child.kill();
304
+ child.removeAllListeners();
305
+ start2(env);
306
+ }
307
+ });
308
+ child.on("exit", (code) => process.exit(code));
309
+ };
310
+ var checkGitInstalled = () => {
311
+ try {
312
+ child_process.execSync("git --version");
313
+ return true;
314
+ } catch {
315
+ return false;
316
+ }
317
+ };
318
+ var updateDependencies = async (packagePath) => {
319
+ try {
320
+ const packageJson = JSON.parse(fs2.readFileSync(packagePath, "utf-8"));
321
+ const dependencies = packageJson.dependencies || {};
322
+ const packagesToUpdate = [];
323
+ for (const [pkg, version] of Object.entries(dependencies)) {
324
+ if (pkg.startsWith("@types/")) {
325
+ continue;
326
+ }
327
+ try {
328
+ const latestVersion = child_process.execSync(`pnpm view ${pkg} version`, { encoding: "utf-8" }).trim();
329
+ const currentVersion = version.replace(/[\^~]/g, "");
330
+ if (latestVersion !== currentVersion) {
331
+ console.log(`\u53D1\u73B0\u65B0\u7248\u672C ${pkg}: ${currentVersion} -> ${latestVersion}`);
332
+ packagesToUpdate.push(`${pkg}@latest`);
333
+ } else {
334
+ console.log(`${pkg} \u5DF2\u7ECF\u662F\u6700\u65B0\u7248\u672C`);
335
+ }
336
+ } catch (error) {
337
+ console.error(`\u68C0\u67E5 ${pkg} \u7248\u672C\u5931\u8D25:`, error);
338
+ }
339
+ }
340
+ if (packagesToUpdate.length > 0) {
341
+ console.log("\n\u5F00\u59CB\u66F4\u65B0\u4EE5\u4E0B\u5305:\n", packagesToUpdate.join("\n"));
342
+ try {
343
+ child_process.execSync(`pnpm update ${packagesToUpdate.join(" ")}`, {
344
+ stdio: "inherit"
345
+ });
346
+ console.log("\n\u6240\u6709\u5305\u66F4\u65B0\u5B8C\u6210");
347
+ } catch (error) {
348
+ console.error("\u6279\u91CF\u66F4\u65B0\u5931\u8D25:", error);
349
+ }
350
+ } else {
351
+ console.log("\n\u6240\u6709\u5305\u90FD\u5DF2\u7ECF\u662F\u6700\u65B0\u7248\u672C");
352
+ }
353
+ } catch (error) {
354
+ console.error("\u66F4\u65B0\u4F9D\u8D56\u5931\u8D25:", error);
355
+ }
356
+ };
357
+ var updatePlugins = async (pluginsPath) => {
358
+ if (!checkGitInstalled()) {
359
+ console.error("\u8BF7\u5148\u5B89\u88C5git");
360
+ return;
361
+ }
362
+ if (!fs2.existsSync(pluginsPath)) {
363
+ console.error("plugins\u76EE\u5F55\u4E0D\u5B58\u5728");
364
+ return;
365
+ }
366
+ const isDirectory = (await promises.stat(pluginsPath)).isDirectory();
367
+ if (!isDirectory) {
368
+ console.error("plugins\u8DEF\u5F84\u4E0D\u662F\u4E00\u4E2A\u76EE\u5F55");
369
+ return;
370
+ }
371
+ const dirs = await promises.readdir(pluginsPath);
372
+ for (const dir2 of dirs) {
373
+ const pluginPath = path2.join(pluginsPath, dir2);
374
+ const gitPath = path2.join(pluginPath, ".git");
375
+ const packageJsonPath = path2.join(pluginPath, "package.json");
376
+ if (!dir2.startsWith("karin-plugin-") || !(await promises.stat(pluginPath)).isDirectory()) {
377
+ continue;
378
+ }
379
+ if (!fs2.existsSync(gitPath)) {
380
+ console.log(`${dir2} \u4E0D\u662Fgit\u4ED3\u5E93\uFF0C\u8DF3\u8FC7`);
381
+ continue;
382
+ }
383
+ try {
384
+ const packageJson = JSON.parse(fs2.readFileSync(packageJsonPath, "utf-8"));
385
+ if (!packageJson.karin) {
386
+ console.log(`${dir2} \u7684package.json\u4E2D\u6CA1\u6709karin\u5B57\u6BB5\uFF0C\u8DF3\u8FC7`);
387
+ continue;
388
+ }
389
+ console.log(`\u6B63\u5728\u66F4\u65B0 ${dir2}...`);
390
+ child_process.execSync("git pull", { cwd: pluginPath, stdio: "inherit" });
391
+ } catch (error) {
392
+ console.error(`\u66F4\u65B0 ${dir2} \u5931\u8D25:`, error);
393
+ }
394
+ }
395
+ };
396
+ var updateAll = async () => {
397
+ try {
398
+ await Promise.all([updateDependencies("./package.json"), updatePlugins("./plugins")]);
399
+ } finally {
400
+ process.exit(0);
401
+ }
402
+ };
403
+ commander.program.version(process.env.npm_package_version, "-v, --version", "\u663E\u793A\u7248\u672C\u53F7");
404
+ commander.program.command(".").description("\u524D\u53F0\u542F\u52A8").action(() => start2());
405
+ commander.program.command("start").description("\u524D\u53F0\u542F\u52A8").action(() => start2());
406
+ commander.program.command("pm2").description("\u540E\u53F0\u8FD0\u884C").action(pm2.start);
407
+ commander.program.command("stop").description("\u505C\u6B62\u540E\u53F0\u8FD0\u884C").action(pm2.stop);
408
+ commander.program.command("rs").description("\u91CD\u542Fpm2\u670D\u52A1").action(pm2.restart);
409
+ commander.program.command("log").description("\u67E5\u770B\u65E5\u5FD7").action(pm2.log);
410
+ commander.program.command("up").description("\u66F4\u65B0\u63D2\u4EF6").action(updateAll);
411
+ commander.program.command("init").description("\u521D\u59CB\u5316\u9879\u76EE").action(init);
412
+ commander.program.parse(process.argv);
@@ -0,0 +1 @@
1
+ #!/usr/bin/env node