@aalis/plugin-webui-server 0.14.1 → 0.16.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.
Files changed (118) hide show
  1. package/README.md +5 -1
  2. package/dist/admin-channel.d.ts +10 -0
  3. package/dist/admin-channel.d.ts.map +1 -0
  4. package/dist/admin-channel.js +57 -0
  5. package/dist/admin-channel.js.map +1 -0
  6. package/dist/attention.d.ts +36 -0
  7. package/dist/attention.d.ts.map +1 -0
  8. package/dist/attention.js +74 -0
  9. package/dist/attention.js.map +1 -0
  10. package/dist/auth.d.ts +32 -4
  11. package/dist/auth.d.ts.map +1 -1
  12. package/dist/auth.js +253 -79
  13. package/dist/auth.js.map +1 -1
  14. package/dist/client-discovery.d.ts +7 -3
  15. package/dist/client-discovery.d.ts.map +1 -1
  16. package/dist/client-discovery.js +9 -3
  17. package/dist/client-discovery.js.map +1 -1
  18. package/dist/client-switch-page.d.ts +26 -2
  19. package/dist/client-switch-page.d.ts.map +1 -1
  20. package/dist/client-switch-page.js +76 -45
  21. package/dist/client-switch-page.js.map +1 -1
  22. package/dist/gate.d.ts +3 -3
  23. package/dist/gate.d.ts.map +1 -1
  24. package/dist/gate.js +5 -4
  25. package/dist/gate.js.map +1 -1
  26. package/dist/html.d.ts +15 -0
  27. package/dist/html.d.ts.map +1 -0
  28. package/dist/html.js +38 -0
  29. package/dist/html.js.map +1 -0
  30. package/dist/index.d.ts +24 -26
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +627 -1102
  33. package/dist/index.js.map +1 -1
  34. package/dist/layout.d.ts +19 -0
  35. package/dist/layout.d.ts.map +1 -0
  36. package/dist/layout.js +200 -0
  37. package/dist/layout.js.map +1 -0
  38. package/dist/locales/en.d.ts +191 -0
  39. package/dist/locales/en.d.ts.map +1 -0
  40. package/dist/locales/en.js +191 -0
  41. package/dist/locales/en.js.map +1 -0
  42. package/dist/localize.d.ts +24 -0
  43. package/dist/localize.d.ts.map +1 -0
  44. package/dist/localize.js +68 -0
  45. package/dist/localize.js.map +1 -0
  46. package/dist/logs.d.ts +10 -0
  47. package/dist/logs.d.ts.map +1 -0
  48. package/dist/logs.js +50 -0
  49. package/dist/logs.js.map +1 -0
  50. package/dist/page-check.d.ts +56 -0
  51. package/dist/page-check.d.ts.map +1 -0
  52. package/dist/page-check.js +376 -0
  53. package/dist/page-check.js.map +1 -0
  54. package/dist/page-files.d.ts +13 -0
  55. package/dist/page-files.d.ts.map +1 -0
  56. package/dist/page-files.js +39 -0
  57. package/dist/page-files.js.map +1 -0
  58. package/dist/pages.d.ts +62 -0
  59. package/dist/pages.d.ts.map +1 -0
  60. package/dist/pages.js +486 -0
  61. package/dist/pages.js.map +1 -0
  62. package/dist/route.d.ts +14 -0
  63. package/dist/route.d.ts.map +1 -0
  64. package/dist/route.js +16 -0
  65. package/dist/route.js.map +1 -0
  66. package/dist/routes/files.d.ts +8 -9
  67. package/dist/routes/files.d.ts.map +1 -1
  68. package/dist/routes/files.js +33 -119
  69. package/dist/routes/files.js.map +1 -1
  70. package/dist/routes/frames.d.ts +4 -0
  71. package/dist/routes/frames.d.ts.map +1 -0
  72. package/dist/routes/frames.js +103 -0
  73. package/dist/routes/frames.js.map +1 -0
  74. package/dist/routes/i18n.d.ts +20 -0
  75. package/dist/routes/i18n.d.ts.map +1 -0
  76. package/dist/routes/i18n.js +78 -0
  77. package/dist/routes/i18n.js.map +1 -0
  78. package/dist/routes/marketplace.d.ts +46 -129
  79. package/dist/routes/marketplace.d.ts.map +1 -1
  80. package/dist/routes/marketplace.js +156 -106
  81. package/dist/routes/marketplace.js.map +1 -1
  82. package/dist/routes/media.d.ts +10 -0
  83. package/dist/routes/media.d.ts.map +1 -0
  84. package/dist/routes/media.js +66 -0
  85. package/dist/routes/media.js.map +1 -0
  86. package/dist/routes/pages.d.ts +22 -0
  87. package/dist/routes/pages.d.ts.map +1 -0
  88. package/dist/routes/pages.js +104 -0
  89. package/dist/routes/pages.js.map +1 -0
  90. package/dist/routes/pipe-to-response.d.ts +9 -0
  91. package/dist/routes/pipe-to-response.d.ts.map +1 -0
  92. package/dist/routes/pipe-to-response.js +16 -0
  93. package/dist/routes/pipe-to-response.js.map +1 -0
  94. package/dist/routes/plugins.d.ts +22 -28
  95. package/dist/routes/plugins.d.ts.map +1 -1
  96. package/dist/routes/plugins.js +339 -344
  97. package/dist/routes/plugins.js.map +1 -1
  98. package/dist/routes/proxy.d.ts +3 -2
  99. package/dist/routes/proxy.d.ts.map +1 -1
  100. package/dist/routes/proxy.js +64 -42
  101. package/dist/routes/proxy.js.map +1 -1
  102. package/dist/session-transport.d.ts +6 -0
  103. package/dist/session-transport.d.ts.map +1 -0
  104. package/dist/session-transport.js +32 -0
  105. package/dist/session-transport.js.map +1 -0
  106. package/dist/texts.d.ts +381 -0
  107. package/dist/texts.d.ts.map +1 -0
  108. package/dist/texts.js +194 -0
  109. package/dist/texts.js.map +1 -0
  110. package/package.json +38 -32
  111. package/dist/protocol.d.ts +0 -113
  112. package/dist/protocol.d.ts.map +0 -1
  113. package/dist/protocol.js +0 -59
  114. package/dist/protocol.js.map +0 -1
  115. package/dist/routes/uploaded-files.d.ts +0 -20
  116. package/dist/routes/uploaded-files.d.ts.map +0 -1
  117. package/dist/routes/uploaded-files.js +0 -161
  118. package/dist/routes/uploaded-files.js.map +0 -1
@@ -1,13 +1,17 @@
1
1
  import { readFileSync } from 'node:fs';
2
2
  import { createRequire } from 'node:module';
3
- import { resolve } from 'node:path';
3
+ import { join } from 'node:path';
4
4
  import { pathToFileURL } from 'node:url';
5
+ import { TextError, textOf, toSource } from '@aalis/schema-i18n';
5
6
  import { classifyDepSpec, isRegistryDep, isUpgrade } from '@aalis/util-dep-spec';
7
+ import { declaredProvides } from '../client-discovery.js';
8
+ import { route } from '../route.js';
9
+ import { t } from '../texts.js';
6
10
  // 纯 npm 路线:npm registry 的 keyword 检索即天然索引,无自建服务器、无静态索引。
7
11
  // 安装/卸载/更新走 package-manager(npm install / uninstall)。
8
12
  // 注:npm 的 search API 并非所有镜像都支持(淘宝等国内源不支持),故检索源基址可配置
9
13
  // (marketplaceRegistry),默认官方源;国内用户可配代理/支持 search 的镜像。
10
- // 检索源只管「有哪些包」:卡片上的最新版、可更新、系统组件的 latest 与装前依赖图,一律按包名向
14
+ // 检索源只管「有哪些包」:卡片上的最新版、可更新、提供的服务、系统组件的 latest 与装前依赖图,一律按包名向
11
15
  // 安装实际使用的源(package-manager 报告的 npm registry)查,否则两源版本不同步时会显示装不到的版本。
12
16
  const DEFAULT_REGISTRY = 'https://registry.npmjs.org';
13
17
  // 市场收录五类:功能插件 aalis-plugin / 工具库 aalis-util / 契约 aalis-api / 数据规范 aalis-schema / 前端 aalis-interface。
@@ -102,11 +106,12 @@ export function resolveLocalInfo(request, meta, scanned) {
102
106
  origin: classifyDepSpec(request),
103
107
  keywords: meta.keywords,
104
108
  description: meta.description,
109
+ provides: meta.provides,
105
110
  };
106
111
  }
107
112
  // resolve 不到(不在 node_modules)却被扫描扫出来 → 只能来自 monorepo 的 packages/ 源码目录。
108
113
  // 此处不可沿用 classifyDepSpec(undefined)=transitive:那是「在 node_modules 里但非直接依赖」
109
- // 的语义,而这里的包压根不在 node_modules。实测本仓库 @aalis/plugin-commands 等全走这条分支。
114
+ // 的语义,而这里的包压根不在 node_modules。实测本仓库的第一方插件全走这条分支。
110
115
  //
111
116
  // 元数据取自扫描时读到的那份 package.json:pnpm 工作区下根 node_modules 只链根依赖
112
117
  // (本仓库根 dependencies 仅 core 与 runtime),packages/ 下的包一律 resolve 不到,故这条
@@ -122,6 +127,7 @@ export function resolveLocalInfo(request, meta, scanned) {
122
127
  origin: 'workspace',
123
128
  keywords: scanned.keywords,
124
129
  description: scanned.description,
130
+ provides: scanned.provides,
125
131
  };
126
132
  }
127
133
  return undefined;
@@ -130,15 +136,44 @@ export function resolveLocalInfo(request, meta, scanned) {
130
136
  * 读根 package.json 的 dependencies —— 来源判据与系统组件名单的唯一真相源。
131
137
  * **每次调用重读**:安装/卸载/更新都会改写它,缓存会让页面显示陈旧来源。
132
138
  */
133
- function readRootDependencies() {
139
+ function readRootDependencies(appDir) {
134
140
  try {
135
- const root = JSON.parse(readFileSync(resolve(process.cwd(), 'package.json'), 'utf-8'));
141
+ const root = JSON.parse(readFileSync(join(appDir, 'package.json'), 'utf-8'));
136
142
  return root.dependencies ?? {};
137
143
  }
138
144
  catch {
139
145
  return {};
140
146
  }
141
147
  }
148
+ /**
149
+ * 本地已装包的查询:按包名给出 {@link LocalPkgInfo},同一次查询里每个包只读一次盘。根依赖在建查询时读一次,
150
+ * 装卸与更新会改它,所以每个请求另建一个。市场列表与插件列表的版本都经它查
151
+ */
152
+ export function localPackageLookup(appDir, scanned) {
153
+ const projectRequire = createRequire(pathToFileURL(join(appDir, 'package.json')));
154
+ const rootDeps = readRootDependencies(appDir);
155
+ /** 读本地 package.json。用 resolve+readFileSync 而非 require():require 有模块缓存,更新后会返回旧版本号。 */
156
+ const readPkgJson = (name) => {
157
+ try {
158
+ const pkg = JSON.parse(readFileSync(projectRequire.resolve(`${name}/package.json`), 'utf-8'));
159
+ return {
160
+ version: pkg.version,
161
+ keywords: pkg.keywords,
162
+ description: pkg.description,
163
+ provides: declaredProvides(pkg),
164
+ };
165
+ }
166
+ catch {
167
+ return undefined;
168
+ }
169
+ };
170
+ const cache = new Map();
171
+ return name => {
172
+ if (!cache.has(name))
173
+ cache.set(name, resolveLocalInfo(rootDeps[name], readPkgJson(name), scanned.get(name)));
174
+ return cache.get(name);
175
+ };
176
+ }
142
177
  /**
143
178
  * 按 keywords 判定系统组件分类;非系统组件返回 undefined。
144
179
  *
@@ -167,36 +202,45 @@ export function sortSystemComponents(list) {
167
202
  return [...list].sort((a, b) => SYSTEM_KIND_ORDER[a.kind] - SYSTEM_KIND_ORDER[b.kind] || a.name.localeCompare(b.name));
168
203
  }
169
204
  /**
170
- * 检索结果按搜索词在 name、description、keywords 上做本地包含过滤:不区分大小写,按空白分词,每个词都要命中。
171
- * npm search 的匹配范围由检索源决定(全文、相近词),会带回这三处都不含该词的包。空搜索词全部保留。纯函数,便于单测。
205
+ * 检索结果按搜索词在 name、description、keywords 与提供的服务上做本地包含过滤:不区分大小写,按空白分词,每个词都要命中。
206
+ * npm search 的匹配范围由检索源决定(全文、相近词),会带回这几处都不含该词的包。空搜索词全部保留。纯函数,便于单测。
172
207
  */
173
208
  export function matchesQuery(pkg, q) {
174
209
  const terms = q.toLowerCase().split(/\s+/).filter(Boolean);
175
- const hay = `${pkg.name} ${pkg.description ?? ''} ${(pkg.keywords ?? []).join(' ')}`.toLowerCase();
176
- return terms.every(t => hay.includes(t));
210
+ const hay = [pkg.name, pkg.description ?? '', ...(pkg.keywords ?? []), ...(pkg.provides ?? [])]
211
+ .join(' ')
212
+ .toLowerCase();
213
+ return terms.every(term => hay.includes(term));
177
214
  }
178
- /** npm search 响应 → 市场卡片列表(标注已装 + 官方 + 富信息)。纯函数,便于单测。 */
215
+ /**
216
+ * npm search 响应 → 市场卡片列表(标注已装 + 官方 + 富信息),按搜索词 {@link matchesQuery} 过滤。
217
+ * 提供的服务:已装的取本地这份(与卡片上的本地版本对得上),没装的取安装源上的最新版。纯函数,便于单测。
218
+ */
179
219
  export function toMarketplacePackages(data, installed,
180
- /** 安装源上的最新版;查不到返回 undefined,卡片的 version 为空串、不可更新。 */
220
+ /** 安装源上的最新版清单;查不到返回 undefined,卡片的 version 为空串、不可更新。 */
181
221
  latestOf,
182
222
  /** 本地实况查询。缺省则卡片无 resolved,前端退化为「已安装但版本未知」。 */
183
- localOf = () => undefined) {
184
- return (data.objects ?? []).map(o => {
223
+ localOf = () => undefined, q = '') {
224
+ return (data.objects ?? []).flatMap(o => {
185
225
  const local = localOf(o.package.name);
186
226
  const latest = latestOf(o.package.name);
227
+ const provides = local?.provides ?? latest?.provides ?? [];
228
+ if (!matchesQuery({ ...o.package, provides }, q))
229
+ return [];
187
230
  return {
188
231
  name: o.package.name,
189
- version: latest ?? '',
232
+ version: latest?.version ?? '',
190
233
  resolved: local?.version,
191
234
  request: local?.request,
192
235
  origin: local?.origin,
193
236
  // 与 package-manager 的更新闸同一份实现(@aalis/util-dep-spec),定义上不可能分岔。
194
- updatable: isRegistryDep(local?.request) && isUpgrade(local?.version, latest),
237
+ updatable: isRegistryDep(local?.request) && isUpgrade(local?.version, latest?.version),
195
238
  description: o.package.description ?? '',
196
239
  author: o.package.publisher?.username,
197
240
  installed: installed.has(o.package.name),
198
241
  official: o.package.name.startsWith('@aalis/'),
199
242
  category: classifyPackage(o.package.keywords ?? []),
243
+ provides,
200
244
  keywords: (o.package.keywords ?? []).filter(k => !AALIS_KEYWORDS.includes(k)),
201
245
  downloads: o.downloads?.monthly,
202
246
  updated: o.updated ?? o.package.date,
@@ -211,12 +255,12 @@ localOf = () => undefined) {
211
255
  * npm 检索不可达时的降级卡片:只用本地实况拼。
212
256
  * 国内多数镜像不支持 search API,这是常态而非边角情形——降级必须仍能管理已装插件,
213
257
  * 而不是给一句 warning 配一张空列表。分类走本地 keywords,与在线路径同一判据;搜索词同样按 {@link matchesQuery}
214
- * 在包名、描述、原始 keywords 上过滤。纯函数,便于单测。
258
+ * 在包名、描述、原始 keywords 与提供的服务上过滤。纯函数,便于单测。
215
259
  */
216
260
  export function toLocalPackages(local, q = '') {
217
261
  return [...local.entries()]
218
262
  .filter(([, info]) => (info.keywords ?? []).some(k => AALIS_KEYWORDS.includes(k)))
219
- .filter(([name, info]) => matchesQuery({ name, description: info.description, keywords: info.keywords }, q))
263
+ .filter(([name, info]) => matchesQuery({ name, ...info }, q))
220
264
  .map(([name, info]) => ({
221
265
  name,
222
266
  // 离线拿不到 npm latest,用本地版本占位。
@@ -230,6 +274,7 @@ export function toLocalPackages(local, q = '') {
230
274
  installed: true,
231
275
  official: name.startsWith('@aalis/'),
232
276
  category: classifyPackage(info.keywords ?? []),
277
+ provides: info.provides,
233
278
  keywords: (info.keywords ?? []).filter(k => !AALIS_KEYWORDS.includes(k)),
234
279
  }))
235
280
  .sort((a, b) => a.name.localeCompare(b.name));
@@ -268,26 +313,27 @@ export function buildSearchUrl(q, keyword, registryBase = DEFAULT_REGISTRY) {
268
313
  return `${base}/-/v1/search?text=${encodeURIComponent(text)}&size=100`;
269
314
  }
270
315
  /**
271
- * 按精确包名向 base 源查 dist-tags.latest。查不到(离线、源上没有该包、非 2xx、超时、格式不对)返回 undefined,
272
- * 调用方当作「最新版未知」:不显示可更新。
273
- * 带 npm 客户端同款的精简元数据 Accept 头:市场列表每次要查一批包,完整 packument 带全部版本的清单,体积大得多;
274
- * 不认这个头的源照常回完整文档,两者都有 dist-tags。
316
+ * 按精确包名向 base 源取 `/{包}/latest`:最新版这一份的清单,版本与声明提供的服务一次拿到,每包一次请求。
317
+ * 查不到(离线、源上没有该包、非 2xx、超时、格式不对、包名不合法)返回 undefined,调用方当作「最新版未知」:不显示可更新。
318
+ * 包名来自检索结果,进 URL 路径前过 {@link PKG_NAME_RE};带作用域的包名不转义斜杠,各源都认这种写法。
275
319
  */
276
320
  async function fetchLatest(base, name) {
321
+ if (!PKG_NAME_RE.test(name))
322
+ return undefined;
277
323
  try {
278
- const r = await fetch(`${base}/${name.replace('/', '%2F')}`, {
279
- headers: { accept: 'application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8' },
280
- signal: AbortSignal.timeout(SEARCH_TIMEOUT_MS),
281
- });
324
+ const r = await fetch(`${base}/${name}/latest`, { signal: AbortSignal.timeout(SEARCH_TIMEOUT_MS) });
282
325
  if (!r.ok)
283
326
  return undefined;
284
- const latest = (await r.json())['dist-tags']?.latest;
285
- return typeof latest === 'string' ? latest : undefined;
327
+ const manifest = (await r.json());
328
+ return typeof manifest.version === 'string'
329
+ ? { version: manifest.version, provides: declaredProvides(manifest) }
330
+ : undefined;
286
331
  }
287
332
  catch {
288
333
  return undefined;
289
334
  }
290
335
  }
336
+ const NO_APP_DIR = t('noAppDir');
291
337
  /** 注册插件市场 REST 路由 */
292
338
  export function registerMarketplaceRoutes(expressApp, caps, gate, registryBase,
293
339
  /** 本地包扫描:`name → 依赖名[]`(含 monorepo 工作区包)。keys 补 require.resolve 在 pnpm 工作区的盲区;values 供依赖图。 */
@@ -296,7 +342,7 @@ getLocalPackages,
296
342
  * 装完一个包后重跑前端发现(幂等)。
297
343
  *
298
344
  * 必需而非锦上添花:`aalis-interface` 包**不是插件**,装完不会触发 rescanPlugins 那条
299
- * 通路,于是它不会出现在服务页的下拉里、必须重启才看得见——而重启恰恰是市场承诺不需要
345
+ * 通路,于是它不会出现在服务偏好的可选项里、必须重启才看得见——而重启恰恰是市场承诺不需要
300
346
  * 用户手动做的事。
301
347
  */
302
348
  rediscoverClients) {
@@ -306,92 +352,79 @@ rediscoverClients) {
306
352
  * 不在场时装卸更新都不可用,退回检索源只作展示。安装源查不到时返回 error:调用方不查最新版,并如实说明。
307
353
  */
308
354
  const versionSource = async () => {
309
- const pm = caps.packageManager.current;
310
- if (!pm)
355
+ if (!caps.packageManager.present)
311
356
  return { base: searchBase };
357
+ const pm = caps.packageManager.use;
312
358
  try {
313
359
  return { base: await pm.registry() };
314
360
  }
315
361
  catch (err) {
316
- const msg = err instanceof Error ? err.message : String(err);
317
- caps.logger.warn(`market: 查询安装源失败,不显示最新版与可更新: ${msg}`);
318
- return { error: `无法确定安装源(${msg}),暂不显示最新版本与可更新` };
362
+ const reason = textOf(err);
363
+ caps.logger.warn(`market: 查询安装源失败,不显示最新版与可更新: ${toSource(reason)}`);
364
+ return { error: t('noInstallSource', { error: reason }) };
319
365
  }
320
366
  };
321
367
  // 市场列表:npm registry keyword 检索 + 标注已装。网络失败降级为空列表 + warning,
322
368
  // 不阻塞 WebUI(管理读档,与 /api/plugins 同级)。
323
- expressApp.get('/api/marketplace', gate(), async (req, res) => {
369
+ route(expressApp, 'GET /api/marketplace', gate(), async (req, res) => {
324
370
  const q = typeof req.query.q === 'string' ? req.query.q.trim() : '';
325
- const status = caps.plugins.current?.getStatus() ?? [];
371
+ const status = caps.plugins.present ? caps.plugins.use.getStatus() : [];
326
372
  // 已装判定独立于 getStatus(后者只含已加载运行时插件,漏掉不作为插件加载的 api/前端/核心)。
327
373
  // 同一次解析顺带取出本地版本:卡片上的 version 是 npm latest,只有拿到本地 resolved
328
374
  // 才能判「可更新」(版本序由服务端算进 updatable 下发,前端不自算)。
375
+ const appDir = caps.appDir;
376
+ if (!appDir) {
377
+ res.status(503).json({ error: NO_APP_DIR });
378
+ return;
379
+ }
329
380
  const localPkgs = getLocalPackages();
330
- const projectRequire = createRequire(pathToFileURL(resolve(process.cwd(), 'package.json')));
331
- const rootDeps = readRootDependencies();
332
- /** 读本地 package.json。用 resolve+readFileSync 而非 require():require 有模块缓存,更新后会返回旧版本号。 */
333
- const readPkgJson = (name) => {
334
- try {
335
- return JSON.parse(readFileSync(projectRequire.resolve(`${name}/package.json`), 'utf-8'));
336
- }
337
- catch {
338
- return undefined;
339
- }
340
- };
341
- const readLocal = (name) => resolveLocalInfo(rootDeps[name], readPkgJson(name), localPkgs.get(name));
342
- /** 每个包名只读一次盘,已装判定与版本展示共用。 */
343
- const localCache = new Map();
344
- const localOf = (name) => {
345
- if (localCache.has(name))
346
- return localCache.get(name);
347
- const info = readLocal(name);
348
- if (info)
349
- localCache.set(name, info);
350
- return info;
351
- };
381
+ /** 已装判定与版本展示共用,每个包名只读一次盘 */
382
+ const localOf = localPackageLookup(appDir, localPkgs);
352
383
  // 四类关键词各发一条检索(npm 的 keywords 逗号是 AND 非 OR),并行后按包名合并去重 = OR。
353
384
  const fetchKw = async (kw) => {
354
385
  const r = await fetch(buildSearchUrl(q, kw, registryBase), { signal: AbortSignal.timeout(SEARCH_TIMEOUT_MS) });
355
386
  if (!r.ok)
356
- throw new Error(`npm registry 返回 ${r.status}`);
387
+ throw new TextError(t('registryStatus', { status: r.status }));
357
388
  return (await r.json());
358
389
  };
359
390
  const settled = await Promise.allSettled(AALIS_KEYWORDS.map(fetchKw));
360
391
  const okResults = settled.filter((s) => s.status === 'fulfilled');
361
392
  if (okResults.length === 0) {
362
- const reason = settled.find(s => s.status === 'rejected');
363
- const msg = reason?.reason instanceof Error ? reason.reason.message : String(reason?.reason ?? '未知错误');
364
- caps.logger.debug(`market: npm registry 检索失败: ${msg}`);
393
+ // 都失败了,说明取第一条的原因
394
+ const reason = textOf(settled[0].reason);
395
+ caps.logger.debug(`market: npm registry 检索失败: ${toSource(reason)}`);
365
396
  // 降级:只列本地已装。名单取自本地扫描 + 运行时已加载插件(后者覆盖扫描目录之外的部署)。
366
- const names = new Set([...localPkgs.keys(), ...status.map(p => p.name)]);
367
- for (const n of names)
368
- localOf(n);
397
+ const local = new Map();
398
+ for (const n of new Set([...localPkgs.keys(), ...status.map(p => p.name)])) {
399
+ const info = localOf(n);
400
+ if (info)
401
+ local.set(n, info);
402
+ }
369
403
  res.json({
370
- packages: toLocalPackages(localCache, q),
371
- warning: `无法连接 npm 仓库(${msg}),暂时只能管理本地已装插件`,
404
+ packages: toLocalPackages(local, q),
405
+ warning: t('searchOffline', { error: reason }),
372
406
  });
373
407
  return;
374
408
  }
375
409
  const byName = new Map();
376
- for (const r of okResults) {
410
+ for (const r of okResults)
377
411
  for (const o of r.value.objects ?? [])
378
- if (matchesQuery(o.package, q))
379
- byName.set(o.package.name, o);
380
- }
412
+ byName.set(o.package.name, o);
381
413
  const merged = { objects: [...byName.values()] };
382
414
  const installed = augmentInstalled([...byName.keys()], new Set(status.map(p => p.name)), n => localOf(n) !== undefined);
383
415
  // 按包名并发查安装源上的最新版;任何一条失败只让该卡片缺最新版,不拖垮整页。
416
+ // 搜索词也要在提供的服务上匹配,所以先取清单、建卡片时再按搜索词过滤
384
417
  const source = await versionSource();
385
418
  const latest = new Map();
386
419
  if ('base' in source) {
387
420
  await Promise.all([...byName.keys()].map(async (n) => {
388
- const v = await fetchLatest(source.base, n);
389
- if (v !== undefined)
390
- latest.set(n, v);
421
+ const manifest = await fetchLatest(source.base, n);
422
+ if (manifest)
423
+ latest.set(n, manifest);
391
424
  }));
392
425
  }
393
426
  res.json({
394
- packages: toMarketplacePackages(merged, installed, n => latest.get(n), localOf),
427
+ packages: toMarketplacePackages(merged, installed, n => latest.get(n), localOf, q),
395
428
  ...('error' in source ? { warning: source.error } : {}),
396
429
  });
397
430
  });
@@ -399,10 +432,15 @@ rediscoverClients) {
399
432
  // 不走 npm 关键词检索——关键词是开放命名空间,任何人都能发一个带 aalis-core 关键词的包,
400
433
  // 在市场里拿到一张「内核」卡片。版本查询按精确包名,故不存在冒名空间。
401
434
  // 这一页只提供更新,无安装无卸载:它们要么随脚手架就位,要么是插件的依赖被自动带入。
402
- expressApp.get('/api/system-components', gate(), async (_req, res) => {
435
+ route(expressApp, 'GET /api/system-components', gate(), async (_req, res) => {
436
+ const appDir = caps.appDir;
437
+ if (!appDir) {
438
+ res.status(503).json({ error: NO_APP_DIR });
439
+ return;
440
+ }
403
441
  const localPkgs = getLocalPackages();
404
- const projectRequire = createRequire(pathToFileURL(resolve(process.cwd(), 'package.json')));
405
- const rootDeps = readRootDependencies();
442
+ const projectRequire = createRequire(pathToFileURL(join(appDir, 'package.json')));
443
+ const rootDeps = readRootDependencies(appDir);
406
444
  /** 候选名单:本地扫描到的 + 根依赖里声明的。两路并集才覆盖两种部署形态。 */
407
445
  const candidates = new Set([...localPkgs.keys(), ...Object.keys(rootDeps)]);
408
446
  const components = [];
@@ -433,7 +471,7 @@ rediscoverClients) {
433
471
  const source = await versionSource();
434
472
  if ('base' in source) {
435
473
  await Promise.all(components.map(async (c) => {
436
- c.latest = await fetchLatest(source.base, c.name);
474
+ c.latest = (await fetchLatest(source.base, c.name))?.version;
437
475
  }));
438
476
  }
439
477
  // 版本序补判:来源合格还不够,latest 必须**严格新于**本地。dist-tags.latest 可以
@@ -449,16 +487,22 @@ rediscoverClients) {
449
487
  // 依赖图:本地 import 依赖图(name→deps 扫描)+ 运行时服务图(getStatus)合成,供装/卸/装前展示。
450
488
  // 两类边:import(链路树,可传递)+ service(每节点直接标注 + 根的提供者解析)。
451
489
  // 装前(target 本地不存在):拉一次 packument 取其直接依赖作根种子,深层仍走本地图。
452
- expressApp.get('/api/marketplace/depgraph', gate(), async (req, res) => {
490
+ route(expressApp, 'GET /api/marketplace/depgraph', gate(), async (req, res) => {
453
491
  const name = typeof req.query.name === 'string' ? req.query.name.trim() : '';
454
492
  if (!name || !PKG_NAME_RE.test(name)) {
455
- res.status(400).json({ error: 'name 必须是合法 npm 包名' });
493
+ res.status(400).json({ error: t('packageNameInvalid') });
456
494
  return;
457
495
  }
458
496
  // 图算法只认 name→依赖名[],不该知道版本;在此把扫描结果投影成它要的形状。
459
497
  const depMap = new Map([...getLocalPackages()].map(([n, e]) => [n, e.deps]));
460
- const status = caps.plugins.current?.getStatus() ?? [];
461
- const svcOf = new Map(status.map(p => [p.name, { provides: p.provides ?? [], requires: p.requiredServices ?? [] }]));
498
+ const status = caps.plugins.present ? caps.plugins.use.getStatus() : [];
499
+ const svcOf = new Map(status.map(p => [
500
+ p.name,
501
+ {
502
+ provides: p.provides ?? [],
503
+ requires: p.uses.filter(use => use.kind === 'required').map(use => use.service),
504
+ },
505
+ ]));
462
506
  // target 本地没有(装前浏览)→ 向安装源拉 packument 取 latest 的直接依赖 + 服务,注入工作图当根种子。
463
507
  let rootServices;
464
508
  let upstreamMap = depMap;
@@ -496,7 +540,7 @@ rediscoverClients) {
496
540
  return {
497
541
  service: svc,
498
542
  // 根激活归宿主:core 的内置服务与宿主登记的 host-config / plugin-source 都在这里
499
- providedBy: provider?.contextId === 'root' ? '宿主' : (provider?.contextId ?? null),
543
+ providedBy: provider?.contextId === 'root' ? t('host') : (provider?.contextId ?? null),
500
544
  };
501
545
  });
502
546
  res.json({
@@ -505,23 +549,23 @@ rediscoverClients) {
505
549
  services: { required, provides: svcOf.get(name)?.provides ?? rootServices?.provides ?? [] },
506
550
  // 卸载会断服务的依赖者,供卸载弹窗预警;与 package-manager 卸载闸同一份判定。
507
551
  // 服务缺席时卸载本就不可用(503),不需要预警。
508
- serviceDependents: caps.packageManager.current?.serviceDependents(name) ?? [],
552
+ serviceDependents: caps.packageManager.present ? caps.packageManager.use.serviceDependents(name) : [],
509
553
  });
510
554
  });
511
555
  // 安装:owner 级(安装第三方代码 = 高危)。
512
556
  // 形状校验只做「是不是字符串」;包名的安全校验在 package-manager 的 validatePackageSpec
513
557
  // 里统一做——那里是所有调用方(含直接拿服务的插件)的必经之路,也只有那一份实现。
514
- expressApp.post('/api/marketplace/install', gate(), async (req, res) => {
558
+ route(expressApp, 'POST /api/marketplace/install', gate(), async (req, res) => {
515
559
  const npmPkg = req.body?.name;
516
560
  if (typeof npmPkg !== 'string') {
517
- res.status(400).json({ error: 'name 字段必须是字符串' });
561
+ res.status(400).json({ error: t('nameNotString') });
518
562
  return;
519
563
  }
520
- const pkgMgr = caps.packageManager.current;
521
- if (!pkgMgr) {
522
- res.status(503).json({ error: 'package-manager 服务未启用,无法安装插件' });
564
+ if (!caps.packageManager.present) {
565
+ res.status(503).json({ error: t('noPackageManagerInstall') });
523
566
  return;
524
567
  }
568
+ const pkgMgr = caps.packageManager.use;
525
569
  try {
526
570
  const result = await pkgMgr.install(npmPkg);
527
571
  // 装成功就重跑前端发现:新装的 aalis-interface 包要立刻可选,不能等重启。
@@ -530,24 +574,30 @@ rediscoverClients) {
530
574
  res.json(result);
531
575
  }
532
576
  catch (err) {
533
- res.status(500).json({ error: err instanceof Error ? err.message : String(err) });
577
+ res.status(500).json({ error: textOf(err) });
534
578
  }
535
579
  });
536
580
  // 卸载:owner 级。闸全在服务层(见 package-manager 的 uninstallOne):市场只卸插件与
537
581
  // 前端界面;承载撤销通道的提供者、非 registry 来源、会断别人服务依赖的包同样拒绝。
538
- expressApp.post('/api/marketplace/uninstall', gate(), async (req, res) => {
582
+ // 配置段与密钥默认留着,removeConfig 为 true 才一并删掉。
583
+ route(expressApp, 'POST /api/marketplace/uninstall', gate(), async (req, res) => {
539
584
  const name = req.body?.name;
540
585
  if (typeof name !== 'string') {
541
- res.status(400).json({ error: 'name 字段必须是字符串' });
586
+ res.status(400).json({ error: t('nameNotString') });
587
+ return;
588
+ }
589
+ const removeConfig = req.body?.removeConfig ?? false;
590
+ if (typeof removeConfig !== 'boolean') {
591
+ res.status(400).json({ error: t('removeConfigNotBoolean') });
542
592
  return;
543
593
  }
544
- const pkgMgr = caps.packageManager.current;
545
- if (!pkgMgr) {
546
- res.status(503).json({ error: 'package-manager 服务未启用,无法卸载插件' });
594
+ if (!caps.packageManager.present) {
595
+ res.status(503).json({ error: t('noPackageManagerUninstall') });
547
596
  return;
548
597
  }
598
+ const pkgMgr = caps.packageManager.use;
549
599
  try {
550
- const result = await pkgMgr.uninstall(name);
600
+ const result = await pkgMgr.uninstall(name, { removeConfig });
551
601
  // 卸成功也要重跑发现——与 install 那侧对称。卸载会真删 node_modules,不对账就会留下
552
602
  // 指向已删目录的前端候选与它那条 webui-client provider,被解析到即整站 404。
553
603
  if (result.ok)
@@ -555,36 +605,36 @@ rediscoverClients) {
555
605
  res.json(result);
556
606
  }
557
607
  catch (err) {
558
- res.status(500).json({ error: err instanceof Error ? err.message : String(err) });
608
+ res.status(500).json({ error: textOf(err) });
559
609
  }
560
610
  });
561
611
  // 批量更新:owner 级。**整批提交**,不是每张卡片各调一次——
562
612
  // peer 冲突只有对整张版本映射一次预检才能发现,且重启次数恒为 1(与改了多少包无关)。
563
- expressApp.post('/api/marketplace/update', gate(), async (req, res) => {
613
+ route(expressApp, 'POST /api/marketplace/update', gate(), async (req, res) => {
564
614
  const raw = req.body?.targets;
565
615
  if (!Array.isArray(raw) || raw.length === 0) {
566
- res.status(400).json({ error: 'targets 必须是非空数组' });
616
+ res.status(400).json({ error: t('targetsRequired') });
567
617
  return;
568
618
  }
569
619
  // 形状校验只做「是不是两个字符串」;包名/版本/总量的校验都在 package-manager 的
570
620
  // buildUpdateSpecs 里统一做——那里是所有调用方(含直接拿服务的插件)的必经之路,
571
621
  // 而总量的真实约束是 argv 字节数(见该处 SPEC_ARGV_BUDGET),不是包个数。
572
- const targets = raw.map((t) => ({
573
- name: typeof t?.name === 'string' ? t.name : '',
574
- version: typeof t?.version === 'string' ? t.version : '',
622
+ const targets = raw.map((target) => ({
623
+ name: typeof target?.name === 'string' ? target.name : '',
624
+ version: typeof target?.version === 'string' ? target.version : '',
575
625
  }));
576
- const pkgMgr = caps.packageManager.current;
577
- if (!pkgMgr) {
578
- res.status(503).json({ error: 'package-manager 服务未启用,无法更新' });
626
+ if (!caps.packageManager.present) {
627
+ res.status(503).json({ error: t('noPackageManagerUpdate') });
579
628
  return;
580
629
  }
630
+ const pkgMgr = caps.packageManager.use;
581
631
  try {
582
632
  const result = await pkgMgr.update(targets);
583
633
  // 成功时进程即将重启:先把响应刷出去,否则客户端只会看到连接被切断。
584
634
  res.json(result);
585
635
  }
586
636
  catch (err) {
587
- res.status(500).json({ error: err instanceof Error ? err.message : String(err) });
637
+ res.status(500).json({ error: textOf(err) });
588
638
  }
589
639
  });
590
640
  }
@@ -1 +1 @@
1
- {"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../../src/routes/marketplace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../../src/routes/marketplace.ts"],"names":[],"mappings":"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"}