@linkdesk/plugin-sdk 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,47 @@
1
+ /**
2
+ * dev 宿主入口(E6#23.5/#24b)——纯浏览器最小壳:顶部 dev 条 + React root 渲染正在开发的插件。
3
+ *
4
+ * 接线(均由 `linkdesk-plugin-sdk dev` 的 vite 配置注入,见 src/dev-server.ts):
5
+ * - `__linkdesk_dev_entry__`:resolve.alias 虚拟 id → 插件根 plugin.json 的 entry 绝对路径。
6
+ * 静态 import → 入口是模块图常规成员 → vite 标准 HMR 全链(改码即热更)。
7
+ * - `__LINKDESK_DEV_I18N__`:define 字面量 = { 语言码: { translation: {…} } }(现读插件
8
+ * contributes.i18n 声明的各语言 JSON)。
9
+ * - `__LINKDESK_DEV_PLUGIN_ID__`:define 字面量 = pluginId(顶部 dev 条展示)。
10
+ *
11
+ * 契约:宿主把插件当「激活标签」渲染({ isActive: true })——对标壳渲染视图插件的语义;
12
+ * keep-alive / tabId / sourceId 在纯浏览器 dev 无对应物(那是壳标签页系统的概念)。
13
+ * i18n:lng = 插件第一个声明的语言(通常 en);key 缺失时 i18next 返回 key 本身——中文 key 即中文兜底。
14
+ */
15
+ import { createRoot } from "react-dom/client";
16
+ import i18n from "i18next";
17
+ import { initReactI18next, I18nextProvider } from "react-i18next";
18
+ import { injectDevMockApi } from "./mock.js";
19
+ import PluginView from "__linkdesk_dev_entry__";
20
+
21
+ declare const __LINKDESK_DEV_I18N__: Record<string, { translation: Record<string, unknown> }>;
22
+ declare const __LINKDESK_DEV_PLUGIN_ID__: string;
23
+
24
+ const resources = __LINKDESK_DEV_I18N__;
25
+ const lng = Object.keys(resources)[0] ?? "en";
26
+
27
+ void i18n.use(initReactI18next).init({
28
+ resources,
29
+ lng,
30
+ fallbackLng: false,
31
+ interpolation: { escapeValue: false },
32
+ react: { useSuspense: false },
33
+ });
34
+
35
+ injectDevMockApi();
36
+
37
+ const pluginIdEl = document.getElementById("ld-plugin-id");
38
+ if (pluginIdEl) pluginIdEl.textContent = __LINKDESK_DEV_PLUGIN_ID__;
39
+
40
+ const rootEl = document.getElementById("ld-root");
41
+ if (rootEl) {
42
+ createRoot(rootEl).render(
43
+ <I18nextProvider i18n={i18n}>
44
+ <PluginView isActive />
45
+ </I18nextProvider>,
46
+ );
47
+ }
@@ -0,0 +1,50 @@
1
+ <!doctype html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>LinkDesk dev 宿主</title>
7
+ <style>
8
+ /* dev 宿主页 = SDK 工具 UI(非壳/非产品),中性配色 + 兜底主题变量让插件 var(--xxx) 不至全黑。
9
+ 固定值允许——不违反壳硬约束 16(那约束壳 UI;此页不属于壳渲染树)。 */
10
+ :root {
11
+ --text: #e8e8ea;
12
+ --text-muted: #9a9aa2;
13
+ --border: #2c2c33;
14
+ --bg: #16161a;
15
+ --bg-alt: #1f1f25;
16
+ --accent: #4cc38a;
17
+ }
18
+ * { box-sizing: border-box; }
19
+ html, body { margin: 0; height: 100%; }
20
+ body {
21
+ background: var(--bg);
22
+ color: var(--text);
23
+ font-family: system-ui, -apple-system, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif;
24
+ }
25
+ #ld-topbar {
26
+ position: sticky; top: 0; z-index: 10;
27
+ display: flex; align-items: center; gap: 8px;
28
+ padding: 5px 12px; font-size: 12px;
29
+ background: var(--bg-alt); border-bottom: 1px solid var(--border);
30
+ user-select: none;
31
+ }
32
+ #ld-topbar .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); }
33
+ #ld-topbar .sep { opacity: 0.4; }
34
+ #ld-topbar code { color: #9fd0ff; font-family: ui-monospace, "Cascadia Code", Consolas, monospace; }
35
+ #ld-topbar .hint { color: var(--text-muted); margin-left: auto; }
36
+ #ld-root { padding: 0; }
37
+ </style>
38
+ </head>
39
+ <body>
40
+ <div id="ld-topbar">
41
+ <span class="dot"></span>
42
+ <span>LinkDesk dev 宿主</span>
43
+ <span class="sep">·</span>
44
+ <code id="ld-plugin-id"></code>
45
+ <span class="hint">本地预览 · 无 Electron/IPC · 改码 HMR</span>
46
+ </div>
47
+ <div id="ld-root"></div>
48
+ <script type="module" src="/dev-main.tsx"></script>
49
+ </body>
50
+ </html>
@@ -0,0 +1,34 @@
1
+ /**
2
+ * dev 宿主 mock 注入锚点(E6#23.5c 位置定案)。
3
+ *
4
+ * 纯浏览器 dev 没有真实 preload → `window.linkdesk` 不存在。现役注入体 = **throw-on-call 兜底**:
5
+ * 任何未 mock 的 API 调用抛「仅在生产环境可用」而非静默 `undefined`/`TypeError`——防「dev 正常、
6
+ * 装进 LinkDesk 才炸」的反向落差(E6#27b 精神,先落行为、后补方法表)。
7
+ *
8
+ * 🔵 承接锚:真方法默认值表 = E6#27(generate-contract.mjs 第二输出目标,第 2.3 轮)——
9
+ * 届时替换本文件注入体(代理内填充生成的方法),`injectDevMockApi()` 签名与调用点不变。
10
+ */
11
+ export function injectDevMockApi(): void {
12
+ if (typeof window === "undefined") return;
13
+ if ((window as unknown as Record<string, unknown>).linkdesk) return;
14
+
15
+ // path 跟踪代理:window.linkdesk.configuration.get() → 报「configuration.get 未 mock」
16
+ const makeNs = (path: string[]): unknown =>
17
+ new Proxy(function () {
18
+ /* placeholder: 调用时走 apply trap */
19
+ } as unknown as () => unknown, {
20
+ apply(): never {
21
+ const dotted = path.join(".") || "(根)";
22
+ throw new Error(
23
+ `[dev] window.linkdesk${dotted ? "." + dotted : ""} 未 mock——该 API 仅在生产环境可用` +
24
+ `(build → 装进 LinkDesk 走真实 IPC)。E6#27 生成 mock 落地前,UI 骨架开发请先不调真实 API。`,
25
+ );
26
+ },
27
+ get(_target, prop): unknown {
28
+ if (prop === "then") return undefined; // 防 Promise.resolve(proxy) 探测无限递归
29
+ return makeNs([...path, String(prop)]);
30
+ },
31
+ });
32
+
33
+ (window as unknown as Record<string, unknown>).linkdesk = makeNs([]);
34
+ }
package/dist/bin.js CHANGED
@@ -13,6 +13,7 @@ import { join } from "node:path";
13
13
  import { build } from "vite";
14
14
  import { validatePluginJson } from "./validate.js";
15
15
  import { defineLinkdeskPluginConfig } from "./vite-config.js";
16
+ import { runPluginDev } from "./dev-server.js";
16
17
  import { runPluginLint, renderPluginLintReport } from "./eslint/lint.js";
17
18
  const VITE_CONFIG_FILES = [
18
19
  "vite.config.ts",
@@ -25,6 +26,8 @@ const VITE_CONFIG_FILES = [
25
26
  const USAGE = `linkdesk-plugin-sdk <command>
26
27
 
27
28
  命令:
29
+ dev 在插件工程根起 dev 宿主(E6#24)——读 plugin.json → Vite dev server(端口 1421)
30
+ → 浏览器打开纯前端预览 + HMR。只支持带 entry 的视图插件(脚手架 tab 形态)
28
31
  build 在插件工程根构建 .linkdesk-plugin(读 plugin.json → Vite build → zip)
29
32
  validate 校验 plugin.json(参数 = 路径,默认 ./plugin.json)
30
33
  lint E6#54d 门禁(eslint 12 规则 + 三 check 双轨,全 WARN 永不 fail;知情绕行 =
@@ -62,6 +65,11 @@ async function main() {
62
65
  const [, , command, arg] = process.argv;
63
66
  let code;
64
67
  switch (command) {
68
+ case "dev":
69
+ // 挂起直到 Ctrl+C(server.close 后 resolve)——dev 无退出码语义,正常退出 = 0
70
+ await runPluginDev(process.cwd());
71
+ code = 0;
72
+ break;
65
73
  case "build":
66
74
  code = await cmdBuild();
67
75
  break;
package/dist/bin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare const DEV_PORT: number;
2
+ /** dev 宿主目录(SDK 包根 dev-host/,与 dist 平级)——供 bin/测试定位 */
3
+ export declare function devHostDir(): string;
4
+ /**
5
+ * 起 dev 宿主并挂起进程(Ctrl+C → server.close)。
6
+ * 设计要点:define 把 i18n resources + pluginId 作为「字面量表达式」注入宿主——
7
+ * 宿主 import 一个对象不是 URL,避免每插件一条虚拟模块路径维护。
8
+ */
9
+ export declare function runPluginDev(root: string): Promise<void>;
10
+ //# sourceMappingURL=dev-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-server.d.ts","sourceRoot":"","sources":["../src/dev-server.ts"],"names":[],"mappings":"AAgCA,eAAO,MAAM,QAAQ,QAAgD,CAAC;AAEtE,uDAAuD;AACvD,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAgED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2C9D"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * `linkdesk-plugin-sdk dev`——E6#23.5/#24:SDK 自带独立宿主页,在作者自己的 Vite dev server 下
3
+ * 加载正在开发的插件源码 + HMR。纯浏览器预览,无 Electron、无 IPC。
4
+ *
5
+ * 形态(第 2.2 轮审视拍板,见 02-本地预览环境.md §九/§十;本模块 = 实装决策记录):
6
+ * - **宿主 = SDK 自带 dev-host/**(index.html + dev-main.tsx + mock.ts),随包 raw 资产,
7
+ * vite dev 现役转换 tsx——不预编译(precompile 到 js 会杀掉 HMR 所需的源码模块态)。
8
+ * - **root = dev-host 目录**;插件入口经 `resolve.alias` 把虚拟 id `__linkdesk_dev_entry__`
9
+ * 映射到插件根 plugin.json 声明的 entry **绝对路径** → 入口成为模块图常规成员 + 静态 import
10
+ * → HMR 走 vite 标准全链。比「浏览器端运行时 import('/@fs/…')」更稳——计算型动态 import 不在
11
+ * 静态图,HMR 会退化成整页刷新(`/@fs/` 语义由 alias 到绝对路径达成:vite 对 alias 解析出的
12
+ * 绝对路径文件同样按需转换 + 注入 HMR,等效于 /@fs/ 加载)。
13
+ * - **fs.allow 放行插件根**——root 在 node_modules 内(SDK 随装),vite 默认 allow 不含作者工程。
14
+ * - **react/react-dom/react-i18next/i18next = SDK dependencies**(非 devDep):dev 宿主渲染插件
15
+ * 需要它们;构建面仍 external 不打进 .linkdesk-plugin。作者零配置(npm i SDK 即达)。
16
+ * - **mock**:#23.5c 锚点 = dev-host/mock.ts 的 throw-on-call Proxy(未 mock 的 API 调用抛
17
+ * 「仅生产可用」而非静默 undefined,防 dev 正常/装机炸的反向落差)。真方法默认值表归 E6#27
18
+ * (generate-contract 第二输出目标,2.3 轮)——届时替换 mock.ts 注入体,锚点(injectDevMockApi)
19
+ * 不变。
20
+ *
21
+ * 端口 1421(对齐设计稿,避开壳 dev 1420)。`LINKDESK_DEV_PORT` 环境变量可覆盖(CI/占用冲突逃生门)。
22
+ */
23
+ import { existsSync, readFileSync } from "node:fs";
24
+ import { basename, dirname, join, resolve } from "node:path";
25
+ import { fileURLToPath } from "node:url";
26
+ import { spawn } from "node:child_process";
27
+ import { createServer } from "vite";
28
+ import react from "@vitejs/plugin-react";
29
+ import { collectI18nDecls, derivePluginId, readPluginManifest } from "./validate.js";
30
+ const DEV_HOST_DIR = join(dirname(fileURLToPath(import.meta.url)), "../dev-host");
31
+ export const DEV_PORT = Number(process.env.LINKDESK_DEV_PORT ?? 1421);
32
+ /** dev 宿主目录(SDK 包根 dev-host/,与 dist 平级)——供 bin/测试定位 */
33
+ export function devHostDir() {
34
+ return DEV_HOST_DIR;
35
+ }
36
+ /** 从插件根读 plugin.json → 定位 dev 目标(entry 必须存在——dev 宿主当前支持「entry 视图插件」形态) */
37
+ function loadPluginContext(root) {
38
+ const manifestPath = join(root, "plugin.json");
39
+ if (!existsSync(manifestPath)) {
40
+ throw new Error(`当前目录不是插件工程——找不到 ${manifestPath}。请 cd 进插件项目根再跑 linkdesk-plugin-sdk dev`);
41
+ }
42
+ const manifest = readPluginManifest(manifestPath);
43
+ const pluginId = derivePluginId(manifest, basename(root));
44
+ const entry = manifest?.entry;
45
+ if (typeof entry !== "string" || !entry.trim()) {
46
+ throw new Error(`「${pluginId}」plugin.json 缺 entry——dev 宿主当前支持带 entry 的视图插件(脚手架 tab 形态:` +
47
+ `src/index.tsx default 导出组件)。纯 contributes 分区视图插件的壳侧 dev 见 E6#28(02-本地预览环境.md §10.3)`);
48
+ }
49
+ const entryAbs = resolve(root, entry);
50
+ if (!existsSync(entryAbs)) {
51
+ throw new Error(`「${pluginId}」entry "${entry}" 不存在:${entryAbs}`);
52
+ }
53
+ // i18n resources——与 validate 同一读取面(collectI18nDecls),语言码 = 文件名去 .json
54
+ const resources = {};
55
+ for (const decl of collectI18nDecls(manifest)) {
56
+ const p = resolve(root, decl.rel);
57
+ if (!existsSync(p))
58
+ continue;
59
+ const lang = basename(decl.rel, ".json");
60
+ try {
61
+ resources[lang] = { translation: JSON.parse(readFileSync(p, "utf8")) };
62
+ }
63
+ catch {
64
+ // 单语言文件坏 → 跳过该语言(宿主仍起,validate 会报真错)——dev 不阻断
65
+ }
66
+ }
67
+ return { pluginId, entryAbs, resources };
68
+ }
69
+ /** 平台开浏览器(Vite 默认依赖 open 包,SDK 不想为此加 dep——3 行 spawn 足矣) */
70
+ function openBrowser(url) {
71
+ let cmd;
72
+ let args;
73
+ if (process.platform === "win32") {
74
+ cmd = "cmd";
75
+ args = ["/c", "start", "", url];
76
+ }
77
+ else if (process.platform === "darwin") {
78
+ cmd = "open";
79
+ args = [url];
80
+ }
81
+ else {
82
+ cmd = "xdg-open";
83
+ args = [url];
84
+ }
85
+ try {
86
+ spawn(cmd, args, { stdio: "ignore", detached: true }).unref();
87
+ }
88
+ catch {
89
+ // 开不了(无 GUI/沙箱)→ 用户手抄 URL,不阻断
90
+ }
91
+ }
92
+ /**
93
+ * 起 dev 宿主并挂起进程(Ctrl+C → server.close)。
94
+ * 设计要点:define 把 i18n resources + pluginId 作为「字面量表达式」注入宿主——
95
+ * 宿主 import 一个对象不是 URL,避免每插件一条虚拟模块路径维护。
96
+ */
97
+ export async function runPluginDev(root) {
98
+ const { pluginId, entryAbs, resources } = loadPluginContext(root);
99
+ const hostHtml = join(DEV_HOST_DIR, "index.html");
100
+ if (!existsSync(hostHtml)) {
101
+ throw new Error(`dev 宿主缺失:${hostHtml}——SDK 包损坏或安装不全?`);
102
+ }
103
+ const server = await createServer({
104
+ root: DEV_HOST_DIR,
105
+ server: {
106
+ port: DEV_PORT,
107
+ strictPort: true,
108
+ fs: { allow: [DEV_HOST_DIR, root] },
109
+ },
110
+ resolve: {
111
+ alias: [{ find: /^__linkdesk_dev_entry__$/, replacement: entryAbs }],
112
+ },
113
+ define: {
114
+ __LINKDESK_DEV_I18N__: JSON.stringify(resources),
115
+ __LINKDESK_DEV_PLUGIN_ID__: JSON.stringify(pluginId),
116
+ },
117
+ plugins: [react()],
118
+ });
119
+ await server.listen();
120
+ const url = `http://localhost:${DEV_PORT}/?pluginId=${encodeURIComponent(pluginId)}`;
121
+ // 宿主已起:URL 打印(Git Bash / CI 也看得到)+ 尽力开浏览器(开不了不阻断)
122
+ console.log("");
123
+ console.log(` LinkDesk dev 宿主 → ${url}`);
124
+ console.log(` 预览插件「${pluginId}」——改 src/ 下源码即 HMR;Ctrl+C 停止`);
125
+ console.log("");
126
+ openBrowser(url);
127
+ // 挂起直到 Ctrl+C——main() 的 process.exit 在 runPluginDev resolve 后才跑
128
+ await new Promise((stop) => {
129
+ const shutdown = () => {
130
+ server.close().then(stop).catch(stop);
131
+ };
132
+ process.once("SIGINT", shutdown);
133
+ process.once("SIGTERM", shutdown);
134
+ });
135
+ }
136
+ //# sourceMappingURL=dev-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-server.js","sourceRoot":"","sources":["../src/dev-server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"vite-config.d.ts","sourceRoot":"","sources":["../src/vite-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAIH,OAAO,EAAmC,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAWxE;;;6EAG6E;AAC7E,eAAO,MAAM,gBAAgB,UAA8F,CAAC;AAM5H,MAAM,WAAW,qBAAqB;IACpC,4FAA4F;IAC5F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAuOD,wBAAgB,0BAA0B,CAAC,OAAO,GAAE,qBAA0B,GAAG,UAAU,CAkN1F"}
1
+ {"version":3,"file":"vite-config.d.ts","sourceRoot":"","sources":["../src/vite-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAIH,OAAO,EAAmC,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAWxE;;;6EAG6E;AAC7E,eAAO,MAAM,gBAAgB,UAA8F,CAAC;AAM5H,MAAM,WAAW,qBAAqB;IACpC,4FAA4F;IAC5F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAuQD,wBAAgB,0BAA0B,CAAC,OAAO,GAAE,qBAA0B,GAAG,UAAU,CAwN1F"}
@@ -138,16 +138,43 @@ function zipTree(zip, dir, prefix) {
138
138
  zip.file(rel, readFileSync(full));
139
139
  }
140
140
  }
141
+ /** Node 标准向上 node_modules 链(E6#16)——workspaces 化后插件依赖可被 hoist 提升到仓库根 node_modules,
142
+ * 仍须能随包。逐级收集存在的 node_modules 目录(插件根本地 → 父级 → … → fs 根),最近层在数组前(先查 = 本地优先)。 */
143
+ function collectNodeModulesDirs(startDir) {
144
+ const out = [];
145
+ let dir = startDir;
146
+ for (;;) {
147
+ const nm = join(dir, "node_modules");
148
+ if (existsSync(nm))
149
+ out.push(nm);
150
+ const parent = dirname(dir);
151
+ if (parent === dir)
152
+ break;
153
+ dir = parent;
154
+ }
155
+ return out;
156
+ }
157
+ /** 向上找 `<ancestor>/node_modules/<pkgRel>` 首个命中(Node 模块解析语义——本地命中优先于 hoist/父级)。找不到 → null */
158
+ function findNodeModules(startDir, pkgRel) {
159
+ let dir = startDir;
160
+ for (;;) {
161
+ const candidate = join(dir, "node_modules", ...pkgRel);
162
+ if (existsSync(candidate))
163
+ return candidate;
164
+ const parent = dirname(dir);
165
+ if (parent === dir)
166
+ return null;
167
+ dir = parent;
168
+ }
169
+ }
141
170
  /** E6#15m:node_modules 各包 package.json `bin` 声明反查表——name(.bin shim 名)→ 归属包 + 真入口相对路径。
142
171
  * 扫插件根 node_modules 顶层包 + @scope 子包;`bin` 为 string(bin 名 = 包名末段)或 object(键即 bin 名)。
143
172
  * 真入口须在包内(resolve 后仍处 node_modules 下)且物理存在——npm 单根安装禁止同名 bin 冲突,重复取首。
144
173
  * 惰性构建(首个 .bin arg 才扫;pyright 等直路 node_modules/<pkg> 零扫描成本)。 */
145
174
  function buildBinIndex(root) {
146
175
  const bins = new Map();
147
- const nmDir = join(root, "node_modules");
148
- if (!existsSync(nmDir))
149
- return bins;
150
- const record = (pkgRel, binName, rel) => {
176
+ const nmDirs = collectNodeModulesDirs(root); // 本地 → 父级 → …(E6#16 hoist 兼容)
177
+ const record = (nmDir) => (pkgRel, binName, rel) => {
151
178
  if (!rel || rel.startsWith("..") || rel.startsWith("/") || /^[a-zA-Z]:[\\/]/.test(rel))
152
179
  return; // 逸出/绝对 → 忽略
153
180
  const targetAbs = resolve(nmDir, pkgRel, rel);
@@ -156,9 +183,9 @@ function buildBinIndex(root) {
156
183
  if (!existsSync(targetAbs))
157
184
  return;
158
185
  if (!bins.has(binName))
159
- bins.set(binName, { pkg: pkgRel, rel: rel.replace(/\\/g, "/") });
186
+ bins.set(binName, { pkg: pkgRel, rel: rel.replace(/\\/g, "/") }); // 最近层优先
160
187
  };
161
- const readBin = (pkgJsonPath, pkgRel) => {
188
+ const readBin = (nmDir) => (pkgJsonPath, pkgRel) => {
162
189
  let pkg;
163
190
  try {
164
191
  pkg = JSON.parse(readFileSync(pkgJsonPath, "utf-8"));
@@ -168,25 +195,27 @@ function buildBinIndex(root) {
168
195
  }
169
196
  const bin = pkg?.bin;
170
197
  if (typeof bin === "string") {
171
- record(pkgRel, pkgRel.split("/").pop() ?? "", bin); // string bin:bin 名 = 包名末段(@scope/pkg → pkg)
198
+ record(nmDir)(pkgRel, pkgRel.split("/").pop() ?? "", bin); // string bin:bin 名 = 包名末段(@scope/pkg → pkg)
172
199
  }
173
200
  else if (bin && typeof bin === "object") {
174
201
  for (const [name, rel] of Object.entries(bin)) {
175
202
  if (typeof rel === "string")
176
- record(pkgRel, name, rel);
203
+ record(nmDir)(pkgRel, name, rel);
177
204
  }
178
205
  }
179
206
  };
180
- for (const top of readdirSync(nmDir)) {
181
- if (top.startsWith("."))
182
- continue;
183
- if (top.startsWith("@")) {
184
- for (const sub of readdirSync(join(nmDir, top))) {
185
- readBin(join(nmDir, top, sub, "package.json"), `${top}/${sub}`);
207
+ for (const nmDir of nmDirs) {
208
+ for (const top of readdirSync(nmDir)) {
209
+ if (top.startsWith("."))
210
+ continue;
211
+ if (top.startsWith("@")) {
212
+ for (const sub of readdirSync(join(nmDir, top))) {
213
+ readBin(nmDir)(join(nmDir, top, sub, "package.json"), `${top}/${sub}`);
214
+ }
215
+ }
216
+ else {
217
+ readBin(nmDir)(join(nmDir, top, "package.json"), top);
186
218
  }
187
- }
188
- else {
189
- readBin(join(nmDir, top, "package.json"), top);
190
219
  }
191
220
  }
192
221
  return bins;
@@ -250,9 +279,9 @@ function includeLspRuntimePackages(root, pkgDir, manifest, warn) {
250
279
  }
251
280
  for (const name of wanted) {
252
281
  const segs = name.split("/");
253
- const src = join(root, "node_modules", ...segs);
254
- if (!existsSync(src)) {
255
- warn(`[linkdesk-plugin-packager] lsp.args 引用依赖 "${name}" 不在插件根 node_modules——未随包(插件根须先 npm install)`);
282
+ const src = findNodeModules(root, segs); // 本地 node_modules 优先,向上 Node 解析兜底(hoist/monorepo 布局,E6#16)
283
+ if (!src) {
284
+ warn(`[linkdesk-plugin-packager] lsp.args 引用依赖 "${name}" 不在插件根 node_modules(含向上解析)——未随包(插件工程须先 npm install)`);
256
285
  continue;
257
286
  }
258
287
  const dest = join(pkgDir, "node_modules", ...segs);
@@ -435,6 +464,10 @@ export function defineLinkdeskPluginConfig(options = {}) {
435
464
  const failedKeys = results.filter((r) => !r.ok).map((r) => r.key);
436
465
  const warnSuffix = failedKeys.length > 0 ? `(⚠ 失败表面: ${failedKeys.join(", ")})` : "";
437
466
  console.log(`[linkdesk-plugin-sdk] ✔ ${pkgName}(${kb} KB, ${ok.length}/${surfaces.length} 表面)→ ${relative(process.cwd(), zipPath)}${warnSuffix}`);
467
+ if (failedKeys.length === 0) {
468
+ // E6#25a:全表面干净才宣称可发布(部分表面失败 = warnSuffix 已示警,不发 banner)
469
+ console.log(`[linkdesk-plugin-sdk] 🚀 Ready to publish! ${pkgName}——分发文件已就绪:装进 LinkDesk(插件详情 → 从本地 .linkdesk-plugin 安装)即可分发使用`);
470
+ }
438
471
  rmSync(join(outDir, ".s"), { recursive: true, force: true });
439
472
  }
440
473
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"vite-config.js","sourceRoot":"","sources":["../src/vite-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vite-config.js","sourceRoot":"","sources":["../src/vite-config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@linkdesk/plugin-sdk",
3
- "version": "0.1.2",
4
- "description": "@linkdesk/plugin-sdk——LinkDesk 插件作者 SDK(对标 @types/vscode):window.linkdesk.* 类型 + 一键 build(.linkdesk-plugin) + plugin.json 验证 + eslint 门禁(E6#54d)。作者 npm i 后零壳源码依赖。",
3
+ "version": "0.1.3",
4
+ "description": "@linkdesk/plugin-sdk——LinkDesk 插件作者 SDK(对标 @types/vscode):window.linkdesk.* 类型 + 一键 build(.linkdesk-plugin) + dev 宿主 + plugin.json 验证 + eslint 门禁(E6#54d)。作者 npm i 后零壳源码依赖。",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
@@ -18,7 +18,8 @@
18
18
  },
19
19
  "files": [
20
20
  "dist",
21
- "schemas"
21
+ "schemas",
22
+ "dev-host"
22
23
  ],
23
24
  "sideEffects": false,
24
25
  "bin": {
@@ -45,8 +46,12 @@
45
46
  "eslint-import-resolver-typescript": "^4.4.5",
46
47
  "eslint-plugin-import-x": "^4.17.1",
47
48
  "eslint-plugin-react-hooks": "^7.1.1",
49
+ "i18next": "^26.3.6",
48
50
  "jsonc-parser": "^3.3.1",
49
51
  "jszip": "^3.10.1",
52
+ "react": "^18.3.1",
53
+ "react-dom": "^18.3.1",
54
+ "react-i18next": "^17.0.10",
50
55
  "vite": "^6.0.0"
51
56
  },
52
57
  "devDependencies": {
@@ -17,12 +17,12 @@
17
17
  },
18
18
  "core": {
19
19
  "type": "boolean",
20
- "description": "核心控制面插件——不可卸载,卸载按钮在 UI 中不显示或禁用。外壳依赖此插件提供基础交互能力(如设置页、插件市场)。无此声明 = 普通插件,用户可自由装卸。默认 false。",
20
+ "description": " UI 防误删旗标——声明此插件重要,卸载入口在插件详情 UI 不显示(藏钮,新手误删不了)。无任何行为特权:禁用/卸载经 API/命令层照常生效(卸后写 removed 墓碑,boot 不复活)。设置页/市场等基础能力靠的是 factoryRole 槽位(可替换),与 core 声明无关。无此声明 = 普通插件,UI 可自由装卸。默认 false。",
21
21
  "default": false
22
22
  },
23
23
  "factoryRole": {
24
24
  "type": "string",
25
- "description": "系统插槽角色——声明此插件填充哪个系统级功能。settings=设置页(Ctrl+, 打开),marketplace=插件市场。多个插件声明同一 role 第一个 core: true 的胜出。"
25
+ "description": "系统插槽角色——声明此插件填充哪个系统级功能。settings=设置页(Ctrl+, 打开),marketplace=插件市场。同一 role 多插件合法并存(全收进槽位候选,一对多);默认 = 首注册稳定序(core:true 无行为特权,不抢默认),用户切换的活动套持久化保持。"
26
26
  },
27
27
  "pluginRole": {
28
28
  "type": "string",
@@ -35,7 +35,7 @@
35
35
  "iconBar": { "type": "string", "enum": ["top", "bottom"], "description": "图标栏位置,不填=不显示图标" },
36
36
  "sidePanel": { "type": "boolean", "description": "有侧栏视图容器,默认 false" },
37
37
  "tabBar": { "type": "boolean", "description": "可作为标签页打开,默认 false" },
38
- "statusBar": { "type": "boolean", "description": "有状态栏条目,默认 false" }
38
+ "statusBar": { "type": "boolean", "description": "有自绘(代码)状态栏组件——池侧渲染,取代 statusBar 静态贡献项;仅贡献静态条目则不必填,默认 false" }
39
39
  }
40
40
  },
41
41
  "distribution": {