@linkdesk/plugin-sdk 0.1.1 → 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.
- package/README.md +21 -0
- package/dev-host/dev-main.tsx +47 -0
- package/dev-host/index.html +50 -0
- package/dev-host/mock.ts +34 -0
- package/dist/bin.js +8 -0
- package/dist/bin.js.map +1 -1
- package/dist/dev-server.d.ts +10 -0
- package/dist/dev-server.d.ts.map +1 -0
- package/dist/dev-server.js +136 -0
- package/dist/dev-server.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/validate.d.ts +9 -2
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +88 -24
- package/dist/validate.js.map +1 -1
- package/dist/vite-config.d.ts.map +1 -1
- package/dist/vite-config.js +53 -20
- package/dist/vite-config.js.map +1 -1
- package/package.json +8 -3
- package/schemas/icon-theme.schema.json +97 -0
- package/schemas/plugin.schema.json +3 -3
- package/schemas/theme.schema.json +109 -0
package/README.md
CHANGED
|
@@ -60,6 +60,27 @@ npm run build # 包自带 bin,等价 linkdesk-plugin-sdk build
|
|
|
60
60
|
npm run validate # 或 linkdesk-plugin-sdk validate ./plugin.json
|
|
61
61
|
```
|
|
62
62
|
|
|
63
|
+
### 主题/图标数据文件 schema(E6#60——主题/图标作者 npm 通道)
|
|
64
|
+
|
|
65
|
+
`schemas/theme.schema.json` + `schemas/icon-theme.schema.json` 随包分发(与仓库 `public/schemas/` live 字节同步,漂移由 `check-plugin-schema-sync` 守卫)。主题/图标作者在数据 JSON 首行引 `$schema` 拿 IntelliSense:
|
|
66
|
+
|
|
67
|
+
```jsonc
|
|
68
|
+
// themes/my-glass.json(相对插件根)
|
|
69
|
+
{
|
|
70
|
+
"$schema": "./node_modules/@linkdesk/plugin-sdk/schemas/theme.schema.json",
|
|
71
|
+
// …
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
数据文件**非 JSONC**(严格 JSON,同引擎加载)。构建期/CI 可用 validate 家族拦格式错(与仓库 `check-theme-schema.mjs` 同一 schema 文件,规则永不漂移):
|
|
76
|
+
|
|
77
|
+
```js
|
|
78
|
+
import { validateThemeJson, validateIconThemeJson } from "@linkdesk/plugin-sdk";
|
|
79
|
+
|
|
80
|
+
validateThemeJson("themes/my-glass.json"); // theme.schema.json
|
|
81
|
+
validateIconThemeJson("icons/my-icons.json"); // icon-theme.schema.json(匹配表双形态契约)
|
|
82
|
+
```
|
|
83
|
+
|
|
63
84
|
### index.bundle.js 约定
|
|
64
85
|
|
|
65
86
|
打包产物 `export default` 一个 React 组件——壳以 `{ isActive }` 渲染它:
|
|
@@ -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>
|
package/dev-host/mock.ts
ADDED
|
@@ -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":";AACA;;;;;;;;GAQG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAEzE,MAAM,iBAAiB,GAAG;IACxB,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;CAClB,CAAC;AAEF,MAAM,KAAK,GAAG
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAEzE,MAAM,iBAAiB,GAAG;IACxB,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;CAClB,CAAC;AAEF,MAAM,KAAK,GAAG;;;;;;;;;CASb,CAAC;AAEF,KAAK,UAAU,OAAO,CAAC,IAAY;IACjC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IACzC,0DAA0D;IAC1D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5D,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,KAAK,UAAU,QAAQ;IACrB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,KAAK,EAAE,CAAC,CAAC,yDAAyD;IAC1E,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC,UAAU;IACvD,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,WAAW,CAAC,MAAc;IACjC,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACrC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM;YAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,CAAC,EAAE,AAAD,EAAG,OAAO,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACxC,IAAI,IAAY,CAAC;IACjB,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,KAAK;YACR,2DAA2D;YAC3D,MAAM,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAClC,IAAI,GAAG,CAAC,CAAC;YACT,MAAM;QACR,KAAK,OAAO;YACV,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAC;YACxB,MAAM;QACR,KAAK,UAAU;YACb,IAAI,GAAG,WAAW,CAAC,GAAG,IAAI,aAAa,CAAC,CAAC;YACzC,MAAM;QACR,KAAK,MAAM;YACT,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3C,MAAM;QACR;YACE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM;IACV,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -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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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @linkdesk/plugin-sdk 公共出口(barrel)。
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* 运行面:`defineLinkdeskPluginConfig()`(构建)+ validate 家族(plugin.json / 主题数据 / 图标主题数据;
|
|
5
|
+
* E6#60 起主题/图标作者也走 npm 通道——validateThemeJson / validateIconThemeJson);
|
|
5
6
|
* 类型面经 types.js 全量转发 @linkdesk/contracts(window.linkdesk.* 全局声明随契约进 program,E6#2b)。
|
|
6
7
|
* validate 的内部 helper(collectI18nDecls/derivePluginId/SAFE_PLUGIN_ID 等)供 vite-config/packager
|
|
7
8
|
* 跨模块复用,但**不进 barrel**——公共 API 面保持最小(对标 @types/vscode 只给类型+工具)。
|
|
@@ -9,6 +10,7 @@
|
|
|
9
10
|
export { defineLinkdeskPluginConfig } from "./vite-config.js";
|
|
10
11
|
export type { LinkdeskPluginOptions } from "./vite-config.js";
|
|
11
12
|
export { validatePluginJson } from "./validate.js";
|
|
13
|
+
export { validateThemeJson, validateIconThemeJson } from "./validate.js";
|
|
12
14
|
export type { ValidationResult } from "./validate.js";
|
|
13
15
|
export type * from "./types.js";
|
|
14
16
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,YAAY,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACzE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,mBAAmB,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @linkdesk/plugin-sdk 公共出口(barrel)。
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* 运行面:`defineLinkdeskPluginConfig()`(构建)+ validate 家族(plugin.json / 主题数据 / 图标主题数据;
|
|
5
|
+
* E6#60 起主题/图标作者也走 npm 通道——validateThemeJson / validateIconThemeJson);
|
|
5
6
|
* 类型面经 types.js 全量转发 @linkdesk/contracts(window.linkdesk.* 全局声明随契约进 program,E6#2b)。
|
|
6
7
|
* validate 的内部 helper(collectI18nDecls/derivePluginId/SAFE_PLUGIN_ID 等)供 vite-config/packager
|
|
7
8
|
* 跨模块复用,但**不进 barrel**——公共 API 面保持最小(对标 @types/vscode 只给类型+工具)。
|
|
8
9
|
*/
|
|
9
10
|
export { defineLinkdeskPluginConfig } from "./vite-config.js";
|
|
10
11
|
export { validatePluginJson } from "./validate.js";
|
|
12
|
+
export { validateThemeJson, validateIconThemeJson } from "./validate.js";
|
|
11
13
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/validate.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* 作者面 schema 验证工具(E6#5 立 plugin.json;E6#60 扩 theme/icon 数据文件)。
|
|
3
|
+
* - validatePluginJson(plugin.schema.json,2020-12)——jsonc 解析 + JSON Schema + i18n 文件存在性。
|
|
4
|
+
* - validateThemeJson / validateIconThemeJson(theme.schema.json draft-07 / icon-theme.schema.json 2020-12)——
|
|
5
|
+
* E6#60 主题/图标作者数据文件校验,镜像 scripts/check-theme-schema.mjs 同规则(同一 schema 文件编译,永不漂移)。
|
|
6
|
+
* 纯逻辑、无 vite import——validatePluginJson 与 bin / defineLinkdeskPluginConfig 三方共用。
|
|
4
7
|
*
|
|
5
8
|
* 设计裁决:
|
|
6
9
|
* - **解析走 jsonc-parser**(对齐壳 E6#55)——作者 plugin.json 可写注释/尾逗号(对标 VS Code
|
|
@@ -50,4 +53,8 @@ export declare function isWithinRoot(root: string, target: string): boolean;
|
|
|
50
53
|
* 顺序:读文件 → jsonc 语法 → schema 全量 → i18n 文件存在性(schema 干净才查第二类,防噪音)。
|
|
51
54
|
*/
|
|
52
55
|
export declare function validatePluginJson(path: string): ValidationResult;
|
|
56
|
+
/** 校验主题数据 JSON 文件(对照 theme.schema.json draft-07——E5.8#129,引擎 parseThemeRecipe 消费格式) */
|
|
57
|
+
export declare function validateThemeJson(path: string): ValidationResult;
|
|
58
|
+
/** 校验图标主题 mappings JSON 文件(对照 icon-theme.schema.json 2020-12——E5.8#133 / E6#60 实收格式,引擎 normalizeIconThemeMappings 消费) */
|
|
59
|
+
export declare function validateIconThemeJson(path: string): ValidationResult;
|
|
53
60
|
//# sourceMappingURL=validate.d.ts.map
|
package/dist/validate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAiBH;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAiC,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,+DAA+D;AAC/D,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAAC;CACrC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,EAAE,CAc9D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAkB/E;AAED,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAWxD;AA+FD,oDAAoD;AACpD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAGlE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAiCjE;AA8BD,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAEhE;AAED,yHAAyH;AACzH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAEpE"}
|
package/dist/validate.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* 作者面 schema 验证工具(E6#5 立 plugin.json;E6#60 扩 theme/icon 数据文件)。
|
|
3
|
+
* - validatePluginJson(plugin.schema.json,2020-12)——jsonc 解析 + JSON Schema + i18n 文件存在性。
|
|
4
|
+
* - validateThemeJson / validateIconThemeJson(theme.schema.json draft-07 / icon-theme.schema.json 2020-12)——
|
|
5
|
+
* E6#60 主题/图标作者数据文件校验,镜像 scripts/check-theme-schema.mjs 同规则(同一 schema 文件编译,永不漂移)。
|
|
6
|
+
* 纯逻辑、无 vite import——validatePluginJson 与 bin / defineLinkdeskPluginConfig 三方共用。
|
|
4
7
|
*
|
|
5
8
|
* 设计裁决:
|
|
6
9
|
* - **解析走 jsonc-parser**(对齐壳 E6#55)——作者 plugin.json 可写注释/尾逗号(对标 VS Code
|
|
@@ -20,9 +23,14 @@ import { existsSync, readFileSync } from "node:fs";
|
|
|
20
23
|
import { basename, dirname, isAbsolute, relative, resolve } from "node:path";
|
|
21
24
|
import { fileURLToPath } from "node:url";
|
|
22
25
|
import * as jsonc from "jsonc-parser";
|
|
23
|
-
import Ajv2020 from "ajv/dist/2020.js"; // ajv 无 exports
|
|
24
|
-
|
|
25
|
-
|
|
26
|
+
import Ajv2020 from "ajv/dist/2020.js"; // 2020-12(plugin.schema / icon-theme.schema)——ajv 无 exports 映射,Node ESM 需显式 .js
|
|
27
|
+
import Ajv from "ajv"; // 默认构造 = draft-07——theme.schema(E5.8#129)是 draft-07,draft 自动判定见 compileDataValidator
|
|
28
|
+
/**
|
|
29
|
+
* 包内 schema 副本定位——dist/validate.js → ../schemas = 包根/schemas;src 直跑同样上溯一级命中。
|
|
30
|
+
* 三份 author 面 schema(plugin/theme/icon-theme)包内副本字节同步由 scripts/check-plugin-schema-sync.mjs 守卫
|
|
31
|
+
* (E6#60:theme/icon-theme 收编——live public/schemas + 包内拷贝,作者 npm i @linkdesk/plugin-sdk 即达)。
|
|
32
|
+
*/
|
|
33
|
+
const SCHEMAS_DIR = new URL("../schemas/", import.meta.url);
|
|
26
34
|
/**
|
|
27
35
|
* pluginId 形状约束——复制自壳 src/pluginLoader/manifest.ts:64(独立 npm 包不能 import @src 壳源码;
|
|
28
36
|
* 加载契约 = 安装目录名 → validateInstallManifest 兜底,E6#7 钉死)。防路径穿越字符直通文件系统。
|
|
@@ -101,24 +109,45 @@ function offsetToLineCol(text, offset) {
|
|
|
101
109
|
}
|
|
102
110
|
return { line, col };
|
|
103
111
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
const
|
|
111
|
-
|
|
112
|
+
/**
|
|
113
|
+
* ajv 编译 schema 单例——schema 读一次 compile 一次(同一 schema 全进程复用)。按 schema 文件内 $schema
|
|
114
|
+
* 自动选构造($schema 是权威,防手选 Ctor 与文件漂移):2020-12 → ajv/dist/2020;draft-07 → ajv 默认。
|
|
115
|
+
*/
|
|
116
|
+
const compiledCache = new Map();
|
|
117
|
+
function getSchemaValidator(schemaFileName) {
|
|
118
|
+
const cached = compiledCache.get(schemaFileName);
|
|
119
|
+
if (cached)
|
|
120
|
+
return cached;
|
|
121
|
+
const raw = readFileSync(fileURLToPath(new URL(schemaFileName, SCHEMAS_DIR)), "utf8");
|
|
122
|
+
const parsed = JSON.parse(raw);
|
|
123
|
+
const is2020 = typeof parsed.$schema === "string" && parsed.$schema.includes("2020-12");
|
|
124
|
+
// 同一构造器签名(allErrors/strict + compile)——类型面以 Ajv 为准,运行期仍是 Ajv2020 实例
|
|
125
|
+
const Ctor = (is2020 ? Ajv2020 : Ajv);
|
|
112
126
|
// eslint-disable-next-line new-cap
|
|
113
|
-
const ajv = new
|
|
114
|
-
const validate = ajv.compile(
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
127
|
+
const ajv = new Ctor({ allErrors: true, strict: false });
|
|
128
|
+
const validate = ajv.compile(parsed);
|
|
129
|
+
const entry = {
|
|
130
|
+
check(data) {
|
|
131
|
+
const ok = validate(data);
|
|
132
|
+
entry.errors = validate.errors ?? [];
|
|
133
|
+
return ok;
|
|
134
|
+
},
|
|
135
|
+
errors: [],
|
|
120
136
|
};
|
|
121
|
-
|
|
137
|
+
compiledCache.set(schemaFileName, entry);
|
|
138
|
+
return entry;
|
|
139
|
+
}
|
|
140
|
+
/** plugin.json 校验器(plugin.schema.json,2020-12) */
|
|
141
|
+
function getPluginValidator() {
|
|
142
|
+
return getSchemaValidator("plugin.schema.json");
|
|
143
|
+
}
|
|
144
|
+
/** 主题数据文件校验器(theme.schema.json,draft-07)——E6#60 sdk 侧作者校验(对照 check-theme-schema.mjs 同规则) */
|
|
145
|
+
function getThemeValidator() {
|
|
146
|
+
return getSchemaValidator("theme.schema.json");
|
|
147
|
+
}
|
|
148
|
+
/** 图标主题 mappings 数据文件校验器(icon-theme.schema.json,2020-12)——E6#60(现无 icon-theme 校验器,一并立) */
|
|
149
|
+
function getIconThemeValidator() {
|
|
150
|
+
return getSchemaValidator("icon-theme.schema.json");
|
|
122
151
|
}
|
|
123
152
|
/** instancePath → 可读路径:/contributes/commands/0 → contributes.commands[0];空 = 顶部 */
|
|
124
153
|
function prettyInstancePath(instancePath) {
|
|
@@ -166,10 +195,10 @@ export function validatePluginJson(path) {
|
|
|
166
195
|
return { valid: false, errors: [`${err instanceof Error ? err.message : String(err)}`] };
|
|
167
196
|
}
|
|
168
197
|
// 1) JSON Schema(唯一真源)
|
|
169
|
-
const
|
|
170
|
-
const ok =
|
|
198
|
+
const validator = getPluginValidator();
|
|
199
|
+
const ok = validator.check(manifest);
|
|
171
200
|
if (!ok) {
|
|
172
|
-
for (const e of
|
|
201
|
+
for (const e of validator.errors)
|
|
173
202
|
errors.push(`${base}:${formatSchemaError(e)}`);
|
|
174
203
|
return { valid: false, errors };
|
|
175
204
|
}
|
|
@@ -187,4 +216,39 @@ export function validatePluginJson(path) {
|
|
|
187
216
|
}
|
|
188
217
|
return { valid: errors.length === 0, errors };
|
|
189
218
|
}
|
|
219
|
+
/* ── 数据文件校验器(E6#60:主题/图标主题 authors 面,镜像 check-theme-schema.mjs 同规则) ── */
|
|
220
|
+
/**
|
|
221
|
+
* 数据文件严格 JSON 读取——主题/图标 mappings 数据文件**非 JSONC**(引擎 fetchPluginDataFile JSON.parse,
|
|
222
|
+
* repo check-theme-schema.mjs JSON.parse——两者一致;plugin.json 才走 jsonc,勿混)。
|
|
223
|
+
*/
|
|
224
|
+
function readDataFileStrict(path) {
|
|
225
|
+
try {
|
|
226
|
+
return { data: JSON.parse(readFileSync(path, "utf8")) };
|
|
227
|
+
}
|
|
228
|
+
catch (err) {
|
|
229
|
+
return { error: `${basename(path)}: JSON 解析失败(${err instanceof Error ? err.message : String(err)})——数据文件非 JSONC,须严格 JSON` };
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* 校验主题/图标数据文件——schema 违规/JSON 错,格式同 validatePluginJson({ valid, errors },不抛)。
|
|
234
|
+
* schema 文件 = 唯一真源(与 repo check-theme-schema.mjs 同一份,字节同步由 check-plugin-schema-sync 守卫),
|
|
235
|
+
* 规则永不漂移;本函数跑在 schema 上,作者侧拦格式错 = repo 机械闸的第一道镜像。
|
|
236
|
+
*/
|
|
237
|
+
function validateDataFile(path, validator) {
|
|
238
|
+
const read = readDataFileStrict(path);
|
|
239
|
+
if ("error" in read)
|
|
240
|
+
return { valid: false, errors: [read.error] };
|
|
241
|
+
if (!validator.check(read.data)) {
|
|
242
|
+
return { valid: false, errors: validator.errors.map((e) => `${basename(path)}:${formatSchemaError(e)}`) };
|
|
243
|
+
}
|
|
244
|
+
return { valid: true, errors: [] };
|
|
245
|
+
}
|
|
246
|
+
/** 校验主题数据 JSON 文件(对照 theme.schema.json draft-07——E5.8#129,引擎 parseThemeRecipe 消费格式) */
|
|
247
|
+
export function validateThemeJson(path) {
|
|
248
|
+
return validateDataFile(path, getThemeValidator());
|
|
249
|
+
}
|
|
250
|
+
/** 校验图标主题 mappings JSON 文件(对照 icon-theme.schema.json 2020-12——E5.8#133 / E6#60 实收格式,引擎 normalizeIconThemeMappings 消费) */
|
|
251
|
+
export function validateIconThemeJson(path) {
|
|
252
|
+
return validateDataFile(path, getIconThemeValidator());
|
|
253
|
+
}
|
|
190
254
|
//# sourceMappingURL=validate.js.map
|
package/dist/validate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.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;
|
|
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"}
|
package/dist/vite-config.js
CHANGED
|
@@ -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
|
|
148
|
-
|
|
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
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
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 =
|
|
254
|
-
if (!
|
|
255
|
-
warn(`[linkdesk-plugin-packager] lsp.args 引用依赖 "${name}" 不在插件根 node_modules
|
|
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) {
|
package/dist/vite-config.js.map
CHANGED
|
@@ -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.
|
|
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": {
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://linkdesk.local/schemas/icon-theme.schema.json",
|
|
4
|
+
"title": "LinkDesk 图标主题 mappings 数据契约",
|
|
5
|
+
"description": "contributes.iconThemes 指向的 mappings JSON 文件契约——镜像引擎 normalizeIconThemeMappings(src/pluginLoader/contributions/contributions.ts,E5.8#133 定案)。匹配表四段(files/extensions/folders/foldersExpanded)+ 顶层默认图标五键(file/folder/folderExpanded/rootFolder/rootFolderExpanded);条目双形态二选一:字体 glyph(class + 可选 color)或图像资产(imagePath,相对插件根)。可选顶层 font 段声明自定义图标字体。校验:npm 侧 @linkdesk/plugin-sdk validateIconThemeJson;repo 侧 check-theme-schema.mjs(contributes.iconThemes 全扫)。",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"properties": {
|
|
9
|
+
"$schema": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"description": "编辑器 IntelliSense 引用(可选)——npm 作者引 node_modules/@linkdesk/plugin-sdk/schemas/icon-theme.schema.json"
|
|
12
|
+
},
|
|
13
|
+
"files": {
|
|
14
|
+
"$ref": "#/$defs/mappingTable",
|
|
15
|
+
"description": "文件名 → 图标条目(命中优先级最高,未命中走 extensions)"
|
|
16
|
+
},
|
|
17
|
+
"extensions": {
|
|
18
|
+
"$ref": "#/$defs/mappingTable",
|
|
19
|
+
"description": "扩展名(含点,如 \".ts\"/\".jsx\")→ 图标条目"
|
|
20
|
+
},
|
|
21
|
+
"folders": {
|
|
22
|
+
"$ref": "#/$defs/mappingTable",
|
|
23
|
+
"description": "目录名 → 图标条目(折叠态)"
|
|
24
|
+
},
|
|
25
|
+
"foldersExpanded": {
|
|
26
|
+
"$ref": "#/$defs/mappingTable",
|
|
27
|
+
"description": "目录名 → 图标条目(展开态;缺省复用 folders)"
|
|
28
|
+
},
|
|
29
|
+
"file": {
|
|
30
|
+
"$ref": "#/$defs/iconMapping",
|
|
31
|
+
"description": "默认文件图标——未命中 files/extensions 时使用(缺省 = 壳保底图标)"
|
|
32
|
+
},
|
|
33
|
+
"folder": {
|
|
34
|
+
"$ref": "#/$defs/iconMapping",
|
|
35
|
+
"description": "默认文件夹图标——未命中 folders 时使用(缺省 = 壳保底)"
|
|
36
|
+
},
|
|
37
|
+
"folderExpanded": {
|
|
38
|
+
"$ref": "#/$defs/iconMapping",
|
|
39
|
+
"description": "默认文件夹展开图标——未命中 foldersExpanded 时使用(缺省 = 壳保底)"
|
|
40
|
+
},
|
|
41
|
+
"rootFolder": {
|
|
42
|
+
"$ref": "#/$defs/iconMapping",
|
|
43
|
+
"description": "根文件夹图标(缺省 = 壳保底)"
|
|
44
|
+
},
|
|
45
|
+
"rootFolderExpanded": {
|
|
46
|
+
"$ref": "#/$defs/iconMapping",
|
|
47
|
+
"description": "根文件夹展开图标(缺省 = 壳保底)"
|
|
48
|
+
},
|
|
49
|
+
"font": {
|
|
50
|
+
"$ref": "#/$defs/fontSpec",
|
|
51
|
+
"description": "自定义图标字体(可选)——声明后壳生成 @font-face,glyph 类由作者提供"
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"$defs": {
|
|
55
|
+
"mappingTable": {
|
|
56
|
+
"type": "object",
|
|
57
|
+
"description": "匹配表——名字(文件名/扩展名/目录名)→ 图标条目",
|
|
58
|
+
"additionalProperties": { "$ref": "#/$defs/iconMapping" }
|
|
59
|
+
},
|
|
60
|
+
"iconMapping": {
|
|
61
|
+
"title": "图标条目——双形态二选一",
|
|
62
|
+
"type": "object",
|
|
63
|
+
"anyOf": [
|
|
64
|
+
{
|
|
65
|
+
"title": "字体 glyph 形态",
|
|
66
|
+
"description": "CSS 类名——codicon 保底 / 自定义图标字体(class 缺省 = 图标字体家族自带类)",
|
|
67
|
+
"required": ["class"],
|
|
68
|
+
"properties": {
|
|
69
|
+
"class": { "type": "string", "description": "CSS 类名(如 \"codicon codicon-typescript\" 或 \"myfont myfont-rust\")" },
|
|
70
|
+
"color": { "type": "string", "description": "可选每图标颜色(seti 类彩色字体;普通单色字体不写)" }
|
|
71
|
+
},
|
|
72
|
+
"additionalProperties": false
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"title": "图像资产形态",
|
|
76
|
+
"description": "图像资产——任意多色/拟物化/贴图",
|
|
77
|
+
"required": ["imagePath"],
|
|
78
|
+
"properties": {
|
|
79
|
+
"imagePath": { "type": "string", "description": "图像资产相对插件根的路径(如 \"icons/js.svg\")——渲染时壳用 getPluginAssetPath 解析 linkdesk:// 绝对 URL(硬约束 12 同族),禁止写 /assets/... 绝对路径" }
|
|
80
|
+
},
|
|
81
|
+
"additionalProperties": false
|
|
82
|
+
}
|
|
83
|
+
]
|
|
84
|
+
},
|
|
85
|
+
"fontSpec": {
|
|
86
|
+
"type": "object",
|
|
87
|
+
"description": "自定义图标字体元数据——path 相对插件根或绝对 URL;@font-face 由壳生成(池独立文档复刻),glyph 类 CSS 作者自写",
|
|
88
|
+
"required": ["path", "family"],
|
|
89
|
+
"additionalProperties": false,
|
|
90
|
+
"properties": {
|
|
91
|
+
"path": { "type": "string", "description": "字体文件相对插件根路径(或 linkdesk:// / http(s):// / data: 绝对 URL)" },
|
|
92
|
+
"family": { "type": "string", "description": "作者 glyph CSS 里 font-family 写的族名" },
|
|
93
|
+
"glyphs": { "type": "string", "description": "glyph 类 CSS 文件相对插件根路径(可选;缺省 = 仅 @font-face,无自定义 glyph 类)" }
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -17,12 +17,12 @@
|
|
|
17
17
|
},
|
|
18
18
|
"core": {
|
|
19
19
|
"type": "boolean",
|
|
20
|
-
"description": "
|
|
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
|
|
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": "
|
|
38
|
+
"statusBar": { "type": "boolean", "description": "有自绘(代码)状态栏组件——池侧渲染,取代 statusBar 静态贡献项;仅贡献静态条目则不必填,默认 false" }
|
|
39
39
|
}
|
|
40
40
|
},
|
|
41
41
|
"distribution": {
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://linkdesk.local/schemas/theme.schema.json",
|
|
4
|
+
"title": "LinkDesk 主题定义(ThemeRecipe,05 schema)",
|
|
5
|
+
"description": "contributes.themes 指向的主题 JSON 文件契约(E5.8#129 立——对标 plugin.schema.json,格式错当场拦)。镜像 src/core/types/theme.ts ThemeRecipe;解析语义见 parseThemeRecipe。新格式必备 colorways[](决策 F:引擎只读新格式);appearance 各域稀疏,缺的域继承 :root 壳默认。校验脚本 scripts/check-theme-schema.mjs(npm run check 链)。",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["id", "name", "type", "colorways"],
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"$schema": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "编辑器 IntelliSense 引用(可选)——相对路径 ../../../public/schemas/theme.schema.json"
|
|
13
|
+
},
|
|
14
|
+
"id": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "主题 id——全局唯一(app.theme 存此;惯例 = 插件短名)"
|
|
17
|
+
},
|
|
18
|
+
"name": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"description": "主题显示名——主题选择器/浏览器标题"
|
|
21
|
+
},
|
|
22
|
+
"type": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"enum": ["light", "dark"],
|
|
25
|
+
"description": "基础明暗——dark 基底 :root / light 覆盖层 data-theme"
|
|
26
|
+
},
|
|
27
|
+
"appearance": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"description": "风格域(单值稀疏)——缺的域继承 :root 壳默认",
|
|
30
|
+
"additionalProperties": false,
|
|
31
|
+
"properties": {
|
|
32
|
+
"radius": {
|
|
33
|
+
"type": "object",
|
|
34
|
+
"description": "圆角八档(键 = 档位名,值 = px;999 = 全胶囊 pill)",
|
|
35
|
+
"additionalProperties": false,
|
|
36
|
+
"properties": {
|
|
37
|
+
"xs": { "type": "number" },
|
|
38
|
+
"sm": { "type": "number" },
|
|
39
|
+
"md": { "type": "number" },
|
|
40
|
+
"lg": { "type": "number" },
|
|
41
|
+
"xl": { "type": "number" },
|
|
42
|
+
"2xl": { "type": "number" },
|
|
43
|
+
"pill": { "type": "number" },
|
|
44
|
+
"full": { "type": "number" }
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"glass": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"description": "玻璃 + 悬浮面板材质(ThemeSurface)——缺省 = 无玻璃无悬浮",
|
|
50
|
+
"additionalProperties": false,
|
|
51
|
+
"properties": {
|
|
52
|
+
"type": { "type": "string", "enum": ["glass"], "description": "玻璃配方——缺省 = 无玻璃" },
|
|
53
|
+
"blur": { "type": "number", "description": "backdrop blur px——0 = 关" },
|
|
54
|
+
"saturate": { "type": "number", "description": "饱和度增强——1 = 关" },
|
|
55
|
+
"tint": { "type": "string", "description": "玻璃面叠加色" },
|
|
56
|
+
"opacity": { "type": "number", "description": "玻璃面不透明度(合成层基线)——1 = 不透明 / 0 = 全透见背景" },
|
|
57
|
+
"specular": { "type": "number", "description": "液态玻璃顶部高光强度——0 = 关" },
|
|
58
|
+
"specularColor": { "type": "string", "description": "顶部高光基色——缺省 = 白;alpha 仍走 specular" },
|
|
59
|
+
"morph": { "type": "number", "description": "形变过渡 ms——0 = 关" },
|
|
60
|
+
"radius": { "type": "number", "description": "悬浮圆角 px——0 = 直角贴边" },
|
|
61
|
+
"shadow": { "type": "boolean", "description": "投影浮起——true = 悬浮投影(映射 --shadow-lift)" },
|
|
62
|
+
"texture": { "type": "string", "description": "可平铺纹理图资产路径(⑬ 纸纹分区)" },
|
|
63
|
+
"textureOpacity": { "type": "number", "description": "纹理不透明度——1 = 不透明" }
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"font": {
|
|
67
|
+
"type": "object",
|
|
68
|
+
"description": "字体域——系统字体族名字符串 or 资产相对路径(#50.17:资产 → @font-face → 族名)",
|
|
69
|
+
"additionalProperties": false,
|
|
70
|
+
"properties": {
|
|
71
|
+
"ui": { "type": "string", "description": "UI 字体(--font-ui)" },
|
|
72
|
+
"mono": { "type": "string", "description": "等宽字体(--font-mono)" }
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"background": {
|
|
76
|
+
"type": "object",
|
|
77
|
+
"description": "图片背景域(panorama 全窗 / zones 切片)",
|
|
78
|
+
"additionalProperties": false,
|
|
79
|
+
"properties": {
|
|
80
|
+
"image": { "type": "string", "description": "图片路径——作者提供可解析 URL,引擎写 --bg-image 时 url() 包裹" },
|
|
81
|
+
"opacity": { "type": "number", "description": "图片层不透明度——1 = 不透明" },
|
|
82
|
+
"mask": { "type": "number", "description": "图片遮罩明暗(0-1)——0 = 无遮罩" },
|
|
83
|
+
"maskColor": { "type": "string", "description": "遮罩基色——缺省 = 黑;alpha 仍走 mask" },
|
|
84
|
+
"mode": { "type": "string", "enum": ["panorama", "zones"], "description": "切片模式——panorama(默认)/ zones(同图连续切片)" }
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
"colorways": {
|
|
90
|
+
"type": "array",
|
|
91
|
+
"description": "配色变体列表(颜色域多值,至少 1 项)",
|
|
92
|
+
"minItems": 1,
|
|
93
|
+
"items": {
|
|
94
|
+
"type": "object",
|
|
95
|
+
"required": ["id", "name"],
|
|
96
|
+
"additionalProperties": false,
|
|
97
|
+
"properties": {
|
|
98
|
+
"id": { "type": "string", "description": "配色变体 id——全局唯一(app.themeColor 动态 enum 存此)" },
|
|
99
|
+
"name": { "type": "string", "description": "配色显示名" },
|
|
100
|
+
"colors": {
|
|
101
|
+
"type": "object",
|
|
102
|
+
"description": "颜色 token 集(键 = 变量契约 token 名去 -- 前缀;值 = 颜色字符串)",
|
|
103
|
+
"additionalProperties": { "type": "string" }
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|