@jsbot-tellus/core 2.0.3 → 2.1.0
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/README.md +13 -17
- package/dist/app.js +12 -40
- package/dist/app.js.map +1 -1
- package/dist/core/config/schema.d.ts +0 -2
- package/dist/core/config/schema.d.ts.map +1 -1
- package/dist/core/config/schema.js +0 -1
- package/dist/core/config/schema.js.map +1 -1
- package/dist/core/dispatch/command.d.ts +24 -2
- package/dist/core/dispatch/command.d.ts.map +1 -1
- package/dist/core/dispatch/command.js +297 -60
- package/dist/core/dispatch/command.js.map +1 -1
- package/dist/core/dispatch/router.d.ts +17 -3
- package/dist/core/dispatch/router.d.ts.map +1 -1
- package/dist/core/dispatch/router.js +38 -2
- package/dist/core/dispatch/router.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/plugin/command-params.d.ts +15 -0
- package/dist/core/plugin/command-params.d.ts.map +1 -0
- package/dist/core/plugin/command-params.js +427 -0
- package/dist/core/plugin/command-params.js.map +1 -0
- package/dist/core/plugin/context.d.ts.map +1 -1
- package/dist/core/plugin/context.js +27 -0
- package/dist/core/plugin/context.js.map +1 -1
- package/dist/core/plugin/install-dir.d.ts +6 -9
- package/dist/core/plugin/install-dir.d.ts.map +1 -1
- package/dist/core/plugin/install-dir.js +99 -79
- package/dist/core/plugin/install-dir.js.map +1 -1
- package/dist/core/plugin/install-validate.d.ts +2 -1
- package/dist/core/plugin/install-validate.d.ts.map +1 -1
- package/dist/core/plugin/install-validate.js +25 -17
- package/dist/core/plugin/install-validate.js.map +1 -1
- package/dist/core/plugin/installer.d.ts +3 -3
- package/dist/core/plugin/installer.d.ts.map +1 -1
- package/dist/core/plugin/installer.js +143 -140
- package/dist/core/plugin/installer.js.map +1 -1
- package/dist/core/plugin/loader.d.ts +1 -0
- package/dist/core/plugin/loader.d.ts.map +1 -1
- package/dist/core/plugin/loader.js +24 -2
- package/dist/core/plugin/loader.js.map +1 -1
- package/dist/core/plugin/types.d.ts +11 -3
- package/dist/core/plugin/types.d.ts.map +1 -1
- package/dist/core/plugin/types.js.map +1 -1
- package/dist/plugins/admin/index.d.ts.map +1 -1
- package/dist/plugins/admin/index.js +119 -86
- package/dist/plugins/admin/index.js.map +1 -1
- package/dist/plugins/core/index.d.ts.map +1 -1
- package/dist/plugins/core/index.js +4 -1
- package/dist/plugins/core/index.js.map +1 -1
- package/docs/architecture.md +22 -24
- package/docs/configuration.md +19 -23
- package/docs/feature-parity.md +4 -4
- package/docs/migration.md +13 -13
- package/docs/plugin-api.md +156 -26
- package/docs/plugin-development.md +390 -0
- package/docs/release.md +2 -2
- package/examples/plugins/hello/README.md +10 -5
- package/examples/plugins/hello/index.js +3 -6
- package/package.json +2 -1
- package/src/app.ts +16 -55
- package/src/core/config/schema.ts +0 -1
- package/src/core/dispatch/command.ts +474 -70
- package/src/core/dispatch/router.ts +77 -3
- package/src/core/index.ts +2 -0
- package/src/core/plugin/command-params.ts +595 -0
- package/src/core/plugin/context.ts +47 -2
- package/src/core/plugin/install-dir.ts +117 -111
- package/src/core/plugin/install-validate.ts +36 -34
- package/src/core/plugin/installer.ts +228 -184
- package/src/core/plugin/loader.ts +36 -2
- package/src/core/plugin/types.ts +23 -3
- package/src/plugins/admin/index.ts +302 -233
- package/src/plugins/core/index.ts +5 -1
- package/dist/core/plugin/installed.d.ts +0 -9
- package/dist/core/plugin/installed.d.ts.map +0 -1
- package/dist/core/plugin/installed.js +0 -113
- package/dist/core/plugin/installed.js.map +0 -1
- package/src/core/plugin/installed.ts +0 -165
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
2
|
import { readFileSync } from 'node:fs';
|
|
3
3
|
import { mkdir, readFile, realpath, rename, rm, stat, symlink, writeFile, } from 'node:fs/promises';
|
|
4
|
-
import { dirname, join
|
|
4
|
+
import { dirname, join } from 'node:path';
|
|
5
5
|
import { fileURLToPath } from 'node:url';
|
|
6
6
|
export const CORE_PACKAGE_NAME = '@jsbot-tellus/core';
|
|
7
|
-
export const INSTALL_PACKAGE_NAME = '@jsbot-tellus/installed-plugins';
|
|
8
7
|
export const INSTALL_STATE_FILE = '.jsbot-installed.json';
|
|
9
8
|
export const VALIDATE_SCRIPT_FILE = 'validate.mjs';
|
|
10
9
|
export class InstallStateError extends Error {
|
|
@@ -13,20 +12,8 @@ export class InstallStateError extends Error {
|
|
|
13
12
|
this.name = 'InstallStateError';
|
|
14
13
|
}
|
|
15
14
|
}
|
|
16
|
-
|
|
17
|
-
name:
|
|
18
|
-
private: true,
|
|
19
|
-
version: '0.0.0',
|
|
20
|
-
type: 'module',
|
|
21
|
-
dependencies: {},
|
|
22
|
-
};
|
|
23
|
-
export function resolveInstallDir(config, dataDir) {
|
|
24
|
-
return config.dir
|
|
25
|
-
? resolve(process.cwd(), config.dir)
|
|
26
|
-
: join(dataDir, 'plugins');
|
|
27
|
-
}
|
|
28
|
-
export function packageDir(dir, name) {
|
|
29
|
-
return join(dir, 'node_modules', name);
|
|
15
|
+
export function packageDirectoryName(name) {
|
|
16
|
+
return name.startsWith('@') ? name.replace('/', '__') : name;
|
|
30
17
|
}
|
|
31
18
|
export async function readJsonFile(path) {
|
|
32
19
|
try {
|
|
@@ -38,46 +25,20 @@ export async function readJsonFile(path) {
|
|
|
38
25
|
throw error;
|
|
39
26
|
}
|
|
40
27
|
}
|
|
41
|
-
export async function
|
|
42
|
-
await
|
|
43
|
-
const manifestPath = join(dir, 'package.json');
|
|
44
|
-
const manifest = await readJsonFile(manifestPath);
|
|
45
|
-
if (manifest === undefined) {
|
|
46
|
-
await writeFile(manifestPath, `${JSON.stringify(INSTALL_MANIFEST, null, 4)}\n`);
|
|
47
|
-
}
|
|
48
|
-
else if (typeof manifest !== 'object' ||
|
|
49
|
-
manifest === null ||
|
|
50
|
-
Array.isArray(manifest)) {
|
|
51
|
-
throw new Error(`安装目录的 package.json 无效: ${manifestPath}`);
|
|
52
|
-
}
|
|
53
|
-
await mkdir(join(dir, '.jsbot'), { recursive: true });
|
|
54
|
-
await writeFile(join(dir, '.jsbot', VALIDATE_SCRIPT_FILE), VALIDATE_SCRIPT, 'utf8');
|
|
55
|
-
}
|
|
56
|
-
export async function readDependencies(dir) {
|
|
57
|
-
const manifest = await readJsonFile(join(dir, 'package.json'));
|
|
58
|
-
if (typeof manifest !== 'object' || manifest === null)
|
|
59
|
-
return {};
|
|
60
|
-
const dependencies = manifest['dependencies'];
|
|
61
|
-
if (typeof dependencies !== 'object' ||
|
|
62
|
-
dependencies === null ||
|
|
63
|
-
Array.isArray(dependencies)) {
|
|
64
|
-
return {};
|
|
65
|
-
}
|
|
66
|
-
const result = {};
|
|
67
|
-
for (const [name, value] of Object.entries(dependencies)) {
|
|
68
|
-
if (typeof value === 'string') {
|
|
69
|
-
result[name] = value;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return result;
|
|
73
|
-
}
|
|
74
|
-
export async function readInstalledVersion(dir, name) {
|
|
75
|
-
const manifest = await readJsonFile(join(packageDir(dir, name), 'package.json')).catch(() => undefined);
|
|
28
|
+
export async function readPackageVersion(directory) {
|
|
29
|
+
const manifest = await readJsonFile(join(directory, 'package.json')).catch(() => undefined);
|
|
76
30
|
if (typeof manifest !== 'object' || manifest === null)
|
|
77
31
|
return undefined;
|
|
78
32
|
const version = manifest['version'];
|
|
79
33
|
return typeof version === 'string' ? version : undefined;
|
|
80
34
|
}
|
|
35
|
+
function isSafeDirectoryName(value) {
|
|
36
|
+
return (value.length > 0 &&
|
|
37
|
+
value !== '.' &&
|
|
38
|
+
value !== '..' &&
|
|
39
|
+
!value.includes('/') &&
|
|
40
|
+
!value.includes('\\'));
|
|
41
|
+
}
|
|
81
42
|
export async function readInstallState(dir) {
|
|
82
43
|
const path = join(dir, INSTALL_STATE_FILE);
|
|
83
44
|
let value;
|
|
@@ -90,12 +51,12 @@ export async function readInstallState(dir) {
|
|
|
90
51
|
});
|
|
91
52
|
}
|
|
92
53
|
if (value === undefined) {
|
|
93
|
-
return { version:
|
|
54
|
+
return { version: 2, packages: {} };
|
|
94
55
|
}
|
|
95
56
|
if (typeof value !== 'object' || value === null || Array.isArray(value)) {
|
|
96
57
|
throw new InstallStateError(`安装状态文件格式无效: ${path}`);
|
|
97
58
|
}
|
|
98
|
-
if (value['version'] !==
|
|
59
|
+
if (value['version'] !== 2) {
|
|
99
60
|
throw new InstallStateError(`不支持的安装状态版本,请检查 ${path}`);
|
|
100
61
|
}
|
|
101
62
|
const packages = value['packages'];
|
|
@@ -105,6 +66,7 @@ export async function readInstallState(dir) {
|
|
|
105
66
|
throw new InstallStateError(`安装状态 packages 字段无效: ${path}`);
|
|
106
67
|
}
|
|
107
68
|
const result = {};
|
|
69
|
+
const directories = new Set();
|
|
108
70
|
for (const [name, rawRecord] of Object.entries(packages)) {
|
|
109
71
|
if (typeof rawRecord !== 'object' ||
|
|
110
72
|
rawRecord === null ||
|
|
@@ -114,13 +76,20 @@ export async function readInstallState(dir) {
|
|
|
114
76
|
const record = rawRecord;
|
|
115
77
|
const pluginIds = record['pluginIds'];
|
|
116
78
|
const dependencies = record['dependencies'];
|
|
79
|
+
const directory = record['dir'];
|
|
117
80
|
if (typeof record['spec'] !== 'string' ||
|
|
118
81
|
typeof record['version'] !== 'string' ||
|
|
119
82
|
typeof record['installedAt'] !== 'string' ||
|
|
83
|
+
typeof directory !== 'string' ||
|
|
84
|
+
!isSafeDirectoryName(directory) ||
|
|
120
85
|
!Array.isArray(pluginIds) ||
|
|
121
86
|
pluginIds.some((item) => typeof item !== 'string')) {
|
|
122
87
|
throw new InstallStateError(`安装状态记录不完整: ${name}`);
|
|
123
88
|
}
|
|
89
|
+
if (directories.has(directory)) {
|
|
90
|
+
throw new InstallStateError(`安装状态存在重复的插件目录: ${directory}`);
|
|
91
|
+
}
|
|
92
|
+
directories.add(directory);
|
|
124
93
|
if (typeof dependencies !== 'object' ||
|
|
125
94
|
dependencies === null ||
|
|
126
95
|
Array.isArray(dependencies)) {
|
|
@@ -140,12 +109,13 @@ export async function readInstallState(dir) {
|
|
|
140
109
|
pluginIds: [...pluginIds],
|
|
141
110
|
dependencies: parsedDependencies,
|
|
142
111
|
installedAt: record['installedAt'],
|
|
112
|
+
dir: directory,
|
|
143
113
|
};
|
|
144
114
|
}
|
|
145
|
-
return { version:
|
|
115
|
+
return { version: 2, packages: result };
|
|
146
116
|
}
|
|
147
117
|
export async function writeInstallState(dir, state) {
|
|
148
|
-
const sorted = { version:
|
|
118
|
+
const sorted = { version: 2, packages: {} };
|
|
149
119
|
for (const name of Object.keys(state.packages).sort()) {
|
|
150
120
|
const record = state.packages[name];
|
|
151
121
|
if (!record)
|
|
@@ -197,10 +167,52 @@ export async function ensureCoreLink(dir) {
|
|
|
197
167
|
export async function pathExists(path) {
|
|
198
168
|
return (await stat(path).catch(() => null)) !== null;
|
|
199
169
|
}
|
|
200
|
-
|
|
170
|
+
export async function ensureInstallRoot(root) {
|
|
171
|
+
await mkdir(root, { recursive: true });
|
|
172
|
+
await mkdir(join(root, '.jsbot'), { recursive: true });
|
|
173
|
+
await writeFile(join(root, '.jsbot', VALIDATE_SCRIPT_FILE), VALIDATE_SCRIPT, 'utf8');
|
|
174
|
+
}
|
|
175
|
+
const VALIDATE_SCRIPT = `import { readdir } from 'node:fs/promises'
|
|
176
|
+
import { extname, join } from 'node:path'
|
|
177
|
+
import { pathToFileURL } from 'node:url'
|
|
178
|
+
|
|
179
|
+
const directory = process.argv[2]
|
|
180
|
+
|
|
181
|
+
if (!directory) {
|
|
182
|
+
console.error('missing plugin directory')
|
|
183
|
+
process.exit(2)
|
|
184
|
+
}
|
|
201
185
|
|
|
202
|
-
const
|
|
203
|
-
|
|
186
|
+
const extensions = new Set(['.js', '.mjs', '.cjs'])
|
|
187
|
+
|
|
188
|
+
async function filesIn(directory) {
|
|
189
|
+
const entries = await readdir(directory, { withFileTypes: true })
|
|
190
|
+
entries.sort((a, b) => a.name.localeCompare(b.name))
|
|
191
|
+
|
|
192
|
+
const files = []
|
|
193
|
+
|
|
194
|
+
for (const entry of entries) {
|
|
195
|
+
if (entry.name.startsWith('.')) continue
|
|
196
|
+
|
|
197
|
+
const path = join(directory, entry.name)
|
|
198
|
+
|
|
199
|
+
if (entry.isDirectory()) {
|
|
200
|
+
if (entry.name === 'node_modules') continue
|
|
201
|
+
files.push(...(await filesIn(path)))
|
|
202
|
+
continue
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
if (
|
|
206
|
+
entry.isFile() &&
|
|
207
|
+
extensions.has(extname(entry.name)) &&
|
|
208
|
+
!/\\.d\\.(ts|mts|cts)$/.test(entry.name)
|
|
209
|
+
) {
|
|
210
|
+
files.push(path)
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
return files
|
|
215
|
+
}
|
|
204
216
|
|
|
205
217
|
function isPlugin(value) {
|
|
206
218
|
if (typeof value !== 'object' || value === null) return false
|
|
@@ -252,40 +264,48 @@ function collect(value, result) {
|
|
|
252
264
|
}
|
|
253
265
|
}
|
|
254
266
|
|
|
255
|
-
|
|
256
|
-
console.error(
|
|
257
|
-
process.exit(
|
|
258
|
-
}
|
|
267
|
+
const files = await filesIn(directory).catch((error) => {
|
|
268
|
+
console.error(error instanceof Error ? error.message : String(error))
|
|
269
|
+
process.exit(3)
|
|
270
|
+
})
|
|
259
271
|
|
|
260
|
-
if (
|
|
261
|
-
console.error('
|
|
262
|
-
process.exit(
|
|
272
|
+
if (files.length === 0) {
|
|
273
|
+
console.error('插件 dist 目录中没有可加载的文件')
|
|
274
|
+
process.exit(4)
|
|
263
275
|
}
|
|
264
276
|
|
|
265
|
-
|
|
277
|
+
const found = []
|
|
278
|
+
const invalid = []
|
|
266
279
|
|
|
267
|
-
|
|
268
|
-
imported
|
|
269
|
-
} catch (error) {
|
|
270
|
-
console.error(error instanceof Error ? error.stack ?? error.message : String(error))
|
|
271
|
-
process.exit(3)
|
|
272
|
-
}
|
|
280
|
+
for (const file of files) {
|
|
281
|
+
let imported
|
|
273
282
|
|
|
274
|
-
|
|
283
|
+
try {
|
|
284
|
+
imported = await import(pathToFileURL(file).href)
|
|
285
|
+
} catch (error) {
|
|
286
|
+
invalid.push(
|
|
287
|
+
\`failed to import \${file}: \${error instanceof Error ? error.message : String(error)}\`
|
|
288
|
+
)
|
|
289
|
+
continue
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
if (typeof imported !== 'object' || imported === null) continue
|
|
275
293
|
|
|
276
|
-
if (typeof imported === 'object' && imported !== null) {
|
|
277
294
|
for (const candidate of [imported.default, imported.plugin, imported.plugins]) {
|
|
278
295
|
collect(candidate, found)
|
|
279
296
|
}
|
|
280
297
|
}
|
|
281
298
|
|
|
282
|
-
if (found.length === 0) {
|
|
283
|
-
console.error('package does not export a JsBot plugin (default / plugin / plugins)')
|
|
284
|
-
process.exit(4)
|
|
285
|
-
}
|
|
286
|
-
|
|
287
299
|
const unique = found.filter((plugin, index) => found.indexOf(plugin) === index)
|
|
288
300
|
|
|
301
|
+
if (unique.length === 0) {
|
|
302
|
+
console.error(
|
|
303
|
+
invalid[0] ??
|
|
304
|
+
'package does not export a JsBot plugin (default / plugin / plugins)'
|
|
305
|
+
)
|
|
306
|
+
process.exit(5)
|
|
307
|
+
}
|
|
308
|
+
|
|
289
309
|
console.log(
|
|
290
310
|
'__JSBOT_PLUGIN__' +
|
|
291
311
|
JSON.stringify(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-dir.js","sourceRoot":"","sources":["../../../src/core/plugin/install-dir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EACH,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,EAAE,EACF,IAAI,EACJ,OAAO,EACP,SAAS,GACZ,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"install-dir.js","sourceRoot":"","sources":["../../../src/core/plugin/install-dir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EACH,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,EAAE,EACF,IAAI,EACJ,OAAO,EACP,SAAS,GACZ,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,MAAM,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,CAAA;AACrD,MAAM,CAAC,MAAM,kBAAkB,GAAG,uBAAuB,CAAA;AACzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,cAAc,CAAA;AAiBlD,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACxC,YAAY,OAAe,EAAE,OAAsB;QAC/C,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACvB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAA;IACnC,CAAC;CACJ;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC7C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAY;IAC3C,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAA;QAExE,MAAM,KAAK,CAAA;IACf,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACpC,SAAiB;IAEjB,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,CACtE,GAAG,EAAE,CAAC,SAAS,CAClB,CAAA;IAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,SAAS,CAAA;IAEvE,MAAM,OAAO,GAAI,QAAoC,CAAC,SAAS,CAAC,CAAA;IAEhE,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;AAC5D,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACtC,OAAO,CACH,KAAK,CAAC,MAAM,GAAG,CAAC;QAChB,KAAK,KAAK,GAAG;QACb,KAAK,KAAK,IAAI;QACd,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QACpB,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CACxB,CAAA;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAW;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAA;IAC1C,IAAI,KAAc,CAAA;IAElB,IAAI,CAAC;QACD,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,IAAI,iBAAiB,CAAC,eAAe,IAAI,EAAE,EAAE;YAC/C,KAAK,EAAE,KAAK;SACf,CAAC,CAAA;IACN,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;IACvC,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,iBAAiB,CAAC,eAAe,IAAI,EAAE,CAAC,CAAA;IACtD,CAAC;IAED,IAAK,KAAiC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,iBAAiB,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAA;IACzD,CAAC;IAED,MAAM,QAAQ,GAAI,KAAiC,CAAC,UAAU,CAAC,CAAA;IAE/D,IACI,OAAO,QAAQ,KAAK,QAAQ;QAC5B,QAAQ,KAAK,IAAI;QACjB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EACzB,CAAC;QACC,MAAM,IAAI,iBAAiB,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAA;IAC9D,CAAC;IAED,MAAM,MAAM,GAA2C,EAAE,CAAA;IACzD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAA;IAErC,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvD,IACI,OAAO,SAAS,KAAK,QAAQ;YAC7B,SAAS,KAAK,IAAI;YAClB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAC1B,CAAC;YACC,MAAM,IAAI,iBAAiB,CAAC,aAAa,IAAI,EAAE,CAAC,CAAA;QACpD,CAAC;QAED,MAAM,MAAM,GAAG,SAAoC,CAAA;QACnD,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;QACrC,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAA;QAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAE/B,IACI,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ;YAClC,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,QAAQ;YACrC,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,QAAQ;YACzC,OAAO,SAAS,KAAK,QAAQ;YAC7B,CAAC,mBAAmB,CAAC,SAAS,CAAC;YAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;YACzB,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EACpD,CAAC;YACC,MAAM,IAAI,iBAAiB,CAAC,cAAc,IAAI,EAAE,CAAC,CAAA;QACrD,CAAC;QAED,IAAI,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,iBAAiB,CACvB,kBAAkB,SAAS,EAAE,CAChC,CAAA;QACL,CAAC;QAED,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAE1B,IACI,OAAO,YAAY,KAAK,QAAQ;YAChC,YAAY,KAAK,IAAI;YACrB,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAC7B,CAAC;YACC,MAAM,IAAI,iBAAiB,CAAC,eAAe,IAAI,EAAE,CAAC,CAAA;QACtD,CAAC;QAED,MAAM,kBAAkB,GAA6B,EAAE,CAAA;QAEvD,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YACpD,IACI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAC/C,CAAC;gBACC,MAAM,IAAI,iBAAiB,CACvB,eAAe,IAAI,IAAI,EAAE,EAAE,CAC9B,CAAA;YACL,CAAC;YAED,kBAAkB,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;QACtC,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,GAAG;YACX,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC;YAC1B,SAAS,EAAE,CAAC,GAAG,SAAS,CAAC;YACzB,YAAY,EAAE,kBAAkB;YAChC,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;YAClC,GAAG,EAAE,SAAS;SACjB,CAAA;IACL,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;AAC3C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACnC,GAAW,EACX,KAAmB;IAEnB,MAAM,MAAM,GAAiB,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;IAEzD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACnC,IAAI,CAAC,MAAM;YAAE,SAAQ;QACrB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAA;IAClC,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAA;IAC1C,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,UAAU,EAAE,MAAM,CAAA;IAE/C,IAAI,CAAC;QACD,MAAM,SAAS,CACX,SAAS,EACT,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EACtC,MAAM,CACT,CAAA;QACD,MAAM,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QAC3D,MAAM,KAAK,CAAA;IACf,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe;IAC3B,IAAI,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAErD,SAAS,CAAC;QACN,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACvB,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAC3B,CAAA;YAE5B,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,iBAAiB;gBAAE,OAAO,OAAO,CAAA;QAC9D,CAAC;QAAC,MAAM,CAAC;YACL,kBAAkB;QACtB,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;QAE/B,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,iBAAiB,iBAAiB,eAAe,CAAC,CAAA;QACtE,CAAC;QAED,OAAO,GAAG,MAAM,CAAA;IACpB,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAW;IAC5C,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,CAAC,CAAA;IAE/D,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAE/C,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;IAEvD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;QAEjE,IAAI,QAAQ,KAAK,cAAc;YAAE,OAAM;QAEvC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACpD,CAAC;IAED,MAAM,OAAO,CACT,MAAM,EACN,IAAI,EACJ,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CACpD,CAAA;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY;IACzC,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAA;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAY;IAChD,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACtC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACtD,MAAM,SAAS,CACX,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,oBAAoB,CAAC,EAC1C,eAAe,EACf,MAAM,CACT,CAAA;AACL,CAAC;AAED,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuJvB,CAAA"}
|
|
@@ -6,8 +6,9 @@ export interface ValidatedPlugin {
|
|
|
6
6
|
export interface ValidateOptions {
|
|
7
7
|
timeoutMs: number;
|
|
8
8
|
signal?: AbortSignal | undefined;
|
|
9
|
+
script?: string | undefined;
|
|
9
10
|
}
|
|
10
|
-
export type PackageValidator = (
|
|
11
|
+
export type PackageValidator = (directory: string, name: string, options: ValidateOptions) => Promise<ValidatedPlugin[]>;
|
|
11
12
|
export declare const PLUGIN_MARKER = "__JSBOT_PLUGIN__";
|
|
12
13
|
export declare const validateInstalledPackage: PackageValidator;
|
|
13
14
|
//# sourceMappingURL=install-validate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-validate.d.ts","sourceRoot":"","sources":["../../../src/core/plugin/install-validate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install-validate.d.ts","sourceRoot":"","sources":["../../../src/core/plugin/install-validate.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,eAAe;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IAChC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC9B;AAoBD,MAAM,MAAM,gBAAgB,GAAG,CAC3B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,eAAe,KACvB,OAAO,CAAC,eAAe,EAAE,CAAC,CAAA;AAE/B,eAAO,MAAM,aAAa,qBAAqB,CAAA;AAE/C,eAAO,MAAM,wBAAwB,EAAE,gBAiEtC,CAAA"}
|
|
@@ -1,23 +1,31 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { packageEntry } from './installed.js';
|
|
1
|
+
import { stat } from 'node:fs/promises';
|
|
2
|
+
import { dirname, join, resolve } from 'node:path';
|
|
3
|
+
import { pathExists, VALIDATE_SCRIPT_FILE } from './install-dir.js';
|
|
5
4
|
import { runProcess } from './npm-runner.js';
|
|
5
|
+
async function findValidationScript(directory) {
|
|
6
|
+
let current = dirname(directory);
|
|
7
|
+
for (;;) {
|
|
8
|
+
const script = join(current, '.jsbot', VALIDATE_SCRIPT_FILE);
|
|
9
|
+
if (await pathExists(script))
|
|
10
|
+
return script;
|
|
11
|
+
const parent = dirname(current);
|
|
12
|
+
if (parent === current)
|
|
13
|
+
break;
|
|
14
|
+
current = parent;
|
|
15
|
+
}
|
|
16
|
+
throw new Error('找不到插件校验脚本,请重新执行安装');
|
|
17
|
+
}
|
|
6
18
|
export const PLUGIN_MARKER = '__JSBOT_PLUGIN__';
|
|
7
|
-
export const validateInstalledPackage = async (
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
if (
|
|
12
|
-
|
|
13
|
-
Array.isArray(manifest)) {
|
|
14
|
-
throw new Error(`插件包缺少有效的 package.json: ${name}`);
|
|
19
|
+
export const validateInstalledPackage = async (directory, name, options) => {
|
|
20
|
+
const absolute = resolve(directory);
|
|
21
|
+
const dist = join(absolute, 'dist');
|
|
22
|
+
const info = await stat(dist).catch(() => null);
|
|
23
|
+
if (!info?.isDirectory()) {
|
|
24
|
+
throw new Error(`插件包缺少 dist 目录: ${name}`);
|
|
15
25
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const { stdout } = await runProcess(process.execPath, [script, name, entry], {
|
|
20
|
-
cwd: dir,
|
|
26
|
+
const script = options.script ?? (await findValidationScript(absolute));
|
|
27
|
+
const { stdout } = await runProcess(process.execPath, [script, absolute], {
|
|
28
|
+
cwd: absolute,
|
|
21
29
|
timeoutMs: options.timeoutMs,
|
|
22
30
|
...(options.signal !== undefined ? { signal: options.signal } : {}),
|
|
23
31
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-validate.js","sourceRoot":"","sources":["../../../src/core/plugin/install-validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"install-validate.js","sourceRoot":"","sources":["../../../src/core/plugin/install-validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ export declare class InstallerError extends Error {
|
|
|
7
7
|
constructor(message: string, options?: ErrorOptions);
|
|
8
8
|
}
|
|
9
9
|
export interface InstallerOptions {
|
|
10
|
+
/** Plugins root. Installed packages are placed in subdirectories here. */
|
|
10
11
|
dir: string;
|
|
11
12
|
config: InstallerConfig;
|
|
12
13
|
logger: Logger;
|
|
@@ -35,16 +36,15 @@ export declare class NpmPluginInstaller implements PluginInstaller {
|
|
|
35
36
|
} | undefined): Promise<PluginRemoveResult>;
|
|
36
37
|
update(target?: string | undefined, signal?: AbortSignal | undefined): Promise<PluginUpdateResult>;
|
|
37
38
|
private installSpec;
|
|
39
|
+
private assertTargetAvailable;
|
|
38
40
|
private checkPlugins;
|
|
39
41
|
private resolveTarget;
|
|
40
42
|
private removalWarnings;
|
|
41
43
|
private configuredWarnings;
|
|
42
44
|
private dependentWarnings;
|
|
43
45
|
private parse;
|
|
44
|
-
private
|
|
46
|
+
private temporaryPath;
|
|
45
47
|
private assertEnabled;
|
|
46
|
-
private backup;
|
|
47
|
-
private rollback;
|
|
48
48
|
private serialize;
|
|
49
49
|
}
|
|
50
50
|
export declare function createDisabledInstaller(): PluginInstaller;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../../src/core/plugin/installer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../../src/core/plugin/installer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAclD,OAAO,EAEH,KAAK,gBAAgB,EAExB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAO9D,OAAO,KAAK,EACR,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EACrB,MAAM,YAAY,CAAA;AAEnB,qBAAa,cAAe,SAAQ,KAAK;IACrC,YAAY,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,EAGlD;CACJ;AAED,MAAM,WAAW,gBAAgB;IAC7B,0EAA0E;IAC1E,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,eAAe,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IAC9B,QAAQ,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAA;IACvC,WAAW,CAAC,EAAE,CAAC,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAA;IACrD,mBAAmB,CAAC,EAAE,CAAC,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAA;IAC7D,GAAG,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;CACjC;AAkCD,qBAAa,kBAAmB,YAAW,eAAe;IACtD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IAEzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;IACvD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA2B;IAC/D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,IAAI,CAAsC;IAElD,YAAY,OAAO,EAAE,gBAAgB,EAWpC;IAEK,IAAI,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC,CA2B5C;IAED,OAAO,CACH,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAS9B;IAED,MAAM,CACF,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,EAChC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAAE,GAAG,SAAS,GACtD,OAAO,CAAC,kBAAkB,CAAC,CA4E7B;IAED,MAAM,CACF,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,EAC3B,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,GACjC,OAAO,CAAC,kBAAkB,CAAC,CA8C7B;YAEa,WAAW;YAmLX,qBAAqB;IAyBnC,OAAO,CAAC,YAAY;IA2FpB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,iBAAiB;IA2BzB,OAAO,CAAC,KAAK;IAUb,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,SAAS;CAQpB;AAED,wBAAgB,uBAAuB,IAAI,eAAe,CAWzD"}
|