@linkdesk/plugin-sdk 0.1.13 → 0.1.15
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 +35 -35
- package/dist/bin.js +28 -1
- package/dist/bin.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/pack.d.ts +46 -0
- package/dist/pack.d.ts.map +1 -0
- package/dist/pack.js +140 -0
- package/dist/pack.js.map +1 -0
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +28 -2
- package/dist/validate.js.map +1 -1
- package/package.json +1 -1
- package/schemas/icon-theme.schema.json +97 -97
- package/schemas/plugin.schema.json +687 -682
- package/schemas/theme.schema.json +109 -109
package/README.md
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
# @linkdesk/plugin-sdk
|
|
2
2
|
|
|
3
|
-
LinkDesk
|
|
3
|
+
The LinkDesk plugin author SDK — the counterpart to `@types/vscode`: install one package and get **`window.linkdesk.*` type hints + one-command builds of `.linkdesk-plugin` + plugin.json validation**. Zero dependency on the shell source.
|
|
4
4
|
|
|
5
|
-
>
|
|
6
|
-
>
|
|
5
|
+
> The source of truth for types = `@linkdesk/contracts` (this package re-exports it and does not copy the generated artifact — contract drift → your tsc turns red immediately).
|
|
6
|
+
> Plugin authors always write code against `window.linkdesk.*` (injected by the preload); **`import @src/core` is forbidden**.
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## Installation
|
|
9
9
|
|
|
10
10
|
```bash
|
|
11
11
|
npm install -D @linkdesk/plugin-sdk
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
-
## API
|
|
14
|
+
## API cheat sheet
|
|
15
15
|
|
|
16
16
|
<!-- BEGIN API-CHEATSHEET -->
|
|
17
17
|
|
|
18
18
|
> 自动生成,**勿手改**——由 `scripts/generate-api-cheatsheet.mjs` 从 `@linkdesk/contracts` 的 `linkdesk.d.ts` 现读产出,
|
|
19
19
|
> `npm run check` 机械盯漂。完整签名与逐方法说明见 `linkdesk.d.ts` 本体(IDE 里可直接跳转)。
|
|
20
20
|
|
|
21
|
-
**15 个域接口 → 46 个命名空间 / 243 个方法**,全部经 `window.linkdesk.<命名空间>.<方法>`
|
|
21
|
+
**15 个域接口 → 46 个命名空间 / 243 个方法**,全部经 `window.linkdesk.<命名空间>.<方法>` 调用。 (plus 1 deprecated alias/es `config`, not counted twice)
|
|
22
22
|
|
|
23
|
-
|
|
|
23
|
+
| Namespace | Methods | Method | Notes |
|
|
24
24
|
|:--|:--:|:--|:--|
|
|
25
25
|
| `commands` | 5 | `execute` `executeCommand` `registerCommand` `unregisterCommands` `getCommands` | 命令——对标 VS Code vscode.commands |
|
|
26
26
|
| `configuration` | 15 | `get` `set` `getSchema` `onChange` `getConfigurationContributions` `inspectConfiguration` `getUserSettings` `onDidChangeConfiguration` `onPluginLifecycleChange` `consumeSettingsGroup` `onRequestSettingsGroup` `consumeScrollToSetting` `onRequestScrollToSetting` `consumeOpenKeybindings` `onRequestOpenKeybindings` | 配置—新名——对标 VS Code vscode.workspace.getConfiguration |
|
|
@@ -62,91 +62,91 @@ npm install -D @linkdesk/plugin-sdk
|
|
|
62
62
|
| `window` | 11 | `minimize` `maximize` `unmaximize` `close` `setZoom` `toggleDevTools` `isMaximized` `onMaximizeChange` `setAlwaysOnTop` `isAlwaysOnTop` `onAlwaysOnTopChange` | 窗口控制——TitleBar 按钮映射,双端注入(11 方法同通道,共享模块 electron/window-name… |
|
|
63
63
|
| `shell` | 6 | `showItemInFolder` `openInTerminal` `pluginLocation` `openPluginFolder` `startDrag` `relaunch`° | 壳级命令——revealInOS / openInTerminal / startDrag / relaunch,双端… |
|
|
64
64
|
| `hotExit` ⚠️ | 3 | `save` `load` `clear` | 热退出暂存——编辑器未保存内容落盘(E5.7#53) |
|
|
65
|
-
| `getFilePath` | 0 |
|
|
65
|
+
| `getFilePath` | 0 | (top-level function)`getFilePath: (file: File) => string;` | OS 拖入文件路径获取——双端注入 |
|
|
66
66
|
| `panel` | 2 | `reveal` `revealFloating` | —— |
|
|
67
67
|
| `settings` | 3 | `list` `getActive` `setActive` | —— |
|
|
68
68
|
| `factorySlots` | 4 | `listRoles` `list` `getActive` `setActive` | —— |
|
|
69
69
|
| `app` | 1 | `getVersion` | app 命名空间——只读产品身份 |
|
|
70
70
|
| `update` | 1 | `getState` | update 命名空间——只读更新状态(供「关于」类插件读宿主版本/更新态) |
|
|
71
71
|
|
|
72
|
-
⚠️ =
|
|
73
|
-
° =
|
|
72
|
+
⚠️ = optional namespace in the contract (injected on one side only): `bridge` `hotExit` — check for existence before calling; on the other side it is undefined.
|
|
73
|
+
° = member marked `?` in the contract: injected in one side's preload only (almost always shell-side). **Your plugin runs in the pool** — check for existence before calling.
|
|
74
74
|
|
|
75
75
|
<!-- END API-CHEATSHEET -->
|
|
76
76
|
|
|
77
|
-
##
|
|
77
|
+
## Usage
|
|
78
78
|
|
|
79
|
-
### 1. tsconfig
|
|
79
|
+
### 1. tsconfig — give `window.linkdesk.` its types
|
|
80
80
|
|
|
81
81
|
```jsonc
|
|
82
82
|
{
|
|
83
83
|
"compilerOptions": {
|
|
84
|
-
"types": ["@linkdesk/plugin-sdk"], //
|
|
84
|
+
"types": ["@linkdesk/plugin-sdk"], // the global window.linkdesk declarations come in with the contracts
|
|
85
85
|
"jsx": "react-jsx"
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
```
|
|
89
89
|
|
|
90
|
-
|
|
90
|
+
Create no global.d.ts at all. In `.ts`/`.tsx`, `window.linkdesk.tabs.create({...})` gets parameter and return type checking directly.
|
|
91
91
|
|
|
92
|
-
### 2. plugin.json
|
|
92
|
+
### 2. plugin.json — declare the plugin (required `name` + `version`; comments and trailing commas allowed)
|
|
93
93
|
|
|
94
94
|
```jsonc
|
|
95
95
|
{
|
|
96
|
-
"name": "My Plugin", //
|
|
96
|
+
"name": "My Plugin", // display name
|
|
97
97
|
"version": "1.0.0",
|
|
98
|
-
"entry": "src/index.tsx", // view/card/protocol
|
|
98
|
+
"entry": "src/index.tsx", // required for view/card/protocol plugins
|
|
99
99
|
"contributes": { "i18n": { "en": "i18n/en.json" } }
|
|
100
100
|
}
|
|
101
101
|
```
|
|
102
102
|
|
|
103
|
-
### 3.
|
|
103
|
+
### 3. Build — produce the `.linkdesk-plugin` distributable
|
|
104
104
|
|
|
105
105
|
```bash
|
|
106
|
-
npm run build #
|
|
106
|
+
npm run build # the package ships its own bin; equivalent to linkdesk-plugin-sdk build
|
|
107
107
|
```
|
|
108
108
|
|
|
109
|
-
|
|
109
|
+
The build does all of this automatically: **validate plugin.json → Vite bundles `src/index.tsx` into `index.bundle.js` → gather manifest/icons/i18n/README into `dist/<id>.linkdesk-plugin/` → zip it into `<id>.linkdesk-plugin` at the project root**.
|
|
110
110
|
|
|
111
|
-
- `react` / `react-dom` / `react-i18next` / `i18next`
|
|
112
|
-
-
|
|
113
|
-
-
|
|
111
|
+
- `react` / `react-dom` / `react-i18next` / `i18next` are provided by the shell and are **not bundled** — every other dependency is inlined, so plugins are self-contained.
|
|
112
|
+
- Plugin id = the `pluginId` field of `plugin.json`; if it is not declared, the **project directory name** is used as a fallback (matching the shell's loading contract).
|
|
113
|
+
- To customize the entry, output directory, or extra externals:
|
|
114
114
|
```js
|
|
115
115
|
// vite.config.ts
|
|
116
116
|
import { defineLinkdeskPluginConfig } from "@linkdesk/plugin-sdk";
|
|
117
117
|
export default defineLinkdeskPluginConfig({ entry: "src/index.tsx", outDir: "dist" });
|
|
118
118
|
```
|
|
119
119
|
|
|
120
|
-
###
|
|
120
|
+
### Standalone validation
|
|
121
121
|
|
|
122
122
|
```bash
|
|
123
|
-
npm run validate #
|
|
123
|
+
npm run validate # or linkdesk-plugin-sdk validate ./plugin.json
|
|
124
124
|
```
|
|
125
125
|
|
|
126
|
-
###
|
|
126
|
+
### Theme/icon data file schemas (the npm channel for theme and icon authors)
|
|
127
127
|
|
|
128
|
-
`schemas/theme.schema.json` + `schemas/icon-theme.schema.json`
|
|
128
|
+
`schemas/theme.schema.json` + `schemas/icon-theme.schema.json` ship with the package (kept byte-synced with the repository's `public/schemas/`; drift is caught by `check-plugin-schema-sync`). Theme and icon authors reference `$schema` on the first line of their data JSON to get IntelliSense:
|
|
129
129
|
|
|
130
130
|
```jsonc
|
|
131
|
-
// themes/my-glass.json
|
|
131
|
+
// themes/my-glass.json (relative to the plugin root)
|
|
132
132
|
{
|
|
133
133
|
"$schema": "./node_modules/@linkdesk/plugin-sdk/schemas/theme.schema.json",
|
|
134
134
|
// …
|
|
135
135
|
}
|
|
136
136
|
```
|
|
137
137
|
|
|
138
|
-
|
|
138
|
+
Data files are **not JSONC** (strict JSON, loaded by the same engine). At build time or in CI, the validate family can catch format errors (the same schema files the repository's `check-theme-schema.mjs` uses, so the rules never drift):
|
|
139
139
|
|
|
140
140
|
```js
|
|
141
141
|
import { validateThemeJson, validateIconThemeJson } from "@linkdesk/plugin-sdk";
|
|
142
142
|
|
|
143
143
|
validateThemeJson("themes/my-glass.json"); // theme.schema.json
|
|
144
|
-
validateIconThemeJson("icons/my-icons.json"); // icon-theme.schema.json
|
|
144
|
+
validateIconThemeJson("icons/my-icons.json"); // icon-theme.schema.json (dual-form contract for the match table)
|
|
145
145
|
```
|
|
146
146
|
|
|
147
|
-
### index.bundle.js
|
|
147
|
+
### index.bundle.js conventions
|
|
148
148
|
|
|
149
|
-
|
|
149
|
+
The bundle `export default`s a React component — the shell renders it with `{ isActive }`:
|
|
150
150
|
|
|
151
151
|
```tsx
|
|
152
152
|
export default function MyView({ isActive }: { isActive: boolean }) {
|
|
@@ -154,7 +154,7 @@ export default function MyView({ isActive }: { isActive: boolean }) {
|
|
|
154
154
|
}
|
|
155
155
|
```
|
|
156
156
|
|
|
157
|
-
##
|
|
157
|
+
## Limitations
|
|
158
158
|
|
|
159
|
-
- **dev
|
|
160
|
-
- plugin.json
|
|
159
|
+
- **dev preview** (source glob loading inside the shell) parses plugin.json as strict JSON; this SDK's validate tolerating comments/trailing commas is a publish-time capability — if a plugin needs to run in dev preview, keep plugin.json free of comments.
|
|
160
|
+
- Dropping a commented plugin.json straight into the shell's `plugins/` dev directory breaks preview loading (jsonc support on the shell side is still to come).
|
package/dist/bin.js
CHANGED
|
@@ -9,10 +9,11 @@
|
|
|
9
9
|
* - validate:跑 validatePluginJson 逐行打错,exit 1/0
|
|
10
10
|
*/
|
|
11
11
|
import { existsSync } from "node:fs";
|
|
12
|
-
import { join } from "node:path";
|
|
12
|
+
import { join, relative } 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 { packPluginData } from "./pack.js";
|
|
16
17
|
import { runPluginDev } from "./dev-server.js";
|
|
17
18
|
import { runPluginDevReal } from "./dev-real.js";
|
|
18
19
|
import { runPluginPublish } from "./publish.js";
|
|
@@ -35,6 +36,9 @@ const USAGE = `linkdesk-plugin-sdk <command>
|
|
|
35
36
|
真 IPC/串口/LSP 类插件的秒级真机调试(壳零新代码;LINKDESK_USER_PLUGINS_DIR /
|
|
36
37
|
LINKDESK_CDP_PORT 可覆盖)
|
|
37
38
|
build 在插件工程根构建 .linkdesk-plugin(读 plugin.json → Vite build → zip)
|
|
39
|
+
pack 纯数据插件(主题/语言/图标集——无 entry、无可编译表面)的打包通道(E6#98c):
|
|
40
|
+
打包目录整树(plugin.json 在顶)→ <pluginId>.linkdesk-plugin。排除 node_modules/dist/
|
|
41
|
+
package.json/隐藏项。--out <path> 可指定输出文件(缺省 = 插件根 <pluginId>.linkdesk-plugin)
|
|
38
42
|
publish 一键发布(E6#26)——自动链路:建 GitHub Release → 上传 .linkdesk-plugin → 更新工程
|
|
39
43
|
origin 仓库根 marketplace.json(多市场源模型)。发前预览确认;--yes 跳过(CI);
|
|
40
44
|
--dry-run 只预览不碰网络。token:env LINKDESK_GITHUB_TOKEN,或首跑交互输入存入本机
|
|
@@ -100,6 +104,29 @@ async function main() {
|
|
|
100
104
|
case "build":
|
|
101
105
|
code = await cmdBuild();
|
|
102
106
|
break;
|
|
107
|
+
case "pack": {
|
|
108
|
+
// pack [--out <path>]——纯数据包通道(E6#98c)。只认这一个 flag,多余参数直接报用法(防拼错静默)
|
|
109
|
+
const outIdx = rest.indexOf("--out");
|
|
110
|
+
const unknown = rest.filter((a, i) => a !== "--out" && (outIdx < 0 || i !== outIdx + 1));
|
|
111
|
+
if (outIdx >= 0 && rest[outIdx + 1] === undefined) {
|
|
112
|
+
console.error("pack --out 需要一个路径参数");
|
|
113
|
+
code = 1;
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
if (unknown.length > 0) {
|
|
117
|
+
console.error(USAGE);
|
|
118
|
+
code = 1;
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
const result = await packPluginData({ root: process.cwd(), outFile: outIdx >= 0 ? rest[outIdx + 1] : undefined });
|
|
122
|
+
console.log(`[linkdesk-plugin-sdk] ✔ ${result.id}.linkdesk-plugin(${(result.bytes / 1024).toFixed(1)} KB, ` +
|
|
123
|
+
`${result.entryCount} 条目)→ ${relative(process.cwd(), result.outPath) || result.outPath}`);
|
|
124
|
+
if (result.normalizedCount > 0) {
|
|
125
|
+
console.log(`[linkdesk-plugin-sdk] 行尾归一到 LF 的条目:${result.normalizedCount}(二进制条目原样,未计入)`);
|
|
126
|
+
}
|
|
127
|
+
code = 0;
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
103
130
|
case "publish": {
|
|
104
131
|
// publish [--yes|--dry-run]——E6#26 自动发布链路(发前预览确认)
|
|
105
132
|
const flags = rest.filter((a) => a.startsWith("-"));
|
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;
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,5 +12,7 @@ export type { LinkdeskPluginOptions } from "./vite-config.js";
|
|
|
12
12
|
export { validatePluginJson } from "./validate.js";
|
|
13
13
|
export { validateThemeJson, validateIconThemeJson } from "./validate.js";
|
|
14
14
|
export type { ValidationResult } from "./validate.js";
|
|
15
|
+
export { packPluginData } from "./pack.js";
|
|
16
|
+
export type { PackResult } from "./pack.js";
|
|
15
17
|
export type * from "./types.js";
|
|
16
18
|
//# 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;;;;;;;;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"}
|
|
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,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,mBAAmB,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -10,4 +10,5 @@
|
|
|
10
10
|
export { defineLinkdeskPluginConfig } from "./vite-config.js";
|
|
11
11
|
export { validatePluginJson } from "./validate.js";
|
|
12
12
|
export { validateThemeJson, validateIconThemeJson } from "./validate.js";
|
|
13
|
+
export { packPluginData } from "./pack.js";
|
|
13
14
|
//# 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;;;;;;;;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"}
|
|
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;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/pack.d.ts
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 条目时间戳固定——值本身无意义,只要跨机器恒定。与壳仓 `scripts/pack-bundled-plugins.mjs` 同值。
|
|
3
|
+
*/
|
|
4
|
+
export declare const ZIP_ENTRY_DATE: Date;
|
|
5
|
+
/**
|
|
6
|
+
* 文本条目行尾归一——**判据照抄 git 的 `text=auto`**(不另立一套分类):前 8000 字节含 NUL ⇒ 二进制,
|
|
7
|
+
* 原样;其余按 UTF-8 **严格**解码(解不开也当二进制);文本一律 `\r\n → \n`——与 `.gitattributes`
|
|
8
|
+
* 的 `eol=lf` 同规。没有 `\r\n` 就逐字节原样(连 BOM 决策也不动),调用方可用 `normalized` 分辨
|
|
9
|
+
* 「这次到底动没动」。
|
|
10
|
+
*
|
|
11
|
+
* 🔴 为什么必须是这条规则(壳仓实测的病根,不是推测):`core.autocrlf=true` + `.gitattributes`
|
|
12
|
+
* `text=auto eol=lf` ⇒ **索引里是 LF,工作区却是 CRLF**(`git ls-files --eol` 实测 `i/lf w/crlf`——
|
|
13
|
+
* `.gitattributes` 管不住**已检出**的存量文件)。于是同一份源码在一台机器上重打一次,zip 的内容
|
|
14
|
+
* 指纹就变了 ⇒ 版本门禁判「改内容没 bump」满屏红,而源码一个字没改。
|
|
15
|
+
*/
|
|
16
|
+
export declare function normalizeEol(buf: Buffer): {
|
|
17
|
+
buf: Buffer;
|
|
18
|
+
normalized: boolean;
|
|
19
|
+
};
|
|
20
|
+
/** 相对路径是否进包——见文件头「排除清单」。路径一律正斜杠 */
|
|
21
|
+
export declare function isPackableRelPath(rel: string): boolean;
|
|
22
|
+
/** 目录递归收集相对路径文件——正斜杠,**排序**(条目顺序确定性 = 跨机器同字节) */
|
|
23
|
+
export declare function collectPluginFiles(root: string): string[];
|
|
24
|
+
export interface PackResult {
|
|
25
|
+
/** 插件身份(`pluginId` 声明值;缺声明时退回目录名兜底) */
|
|
26
|
+
id: string;
|
|
27
|
+
version: string;
|
|
28
|
+
/** 产物绝对路径 */
|
|
29
|
+
outPath: string;
|
|
30
|
+
bytes: number;
|
|
31
|
+
entryCount: number;
|
|
32
|
+
/** 被归一行尾(CRLF → LF)的条目数——不为零 = 这台机器的检出是 CRLF,产物已与工作区行尾解耦 */
|
|
33
|
+
normalizedCount: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* 把一个插件目录打成 `.linkdesk-plugin`(纯数据包)。
|
|
37
|
+
*
|
|
38
|
+
* - 先跑 `validatePluginJson`:**manifest 不合法不产 zip**(宁打包时红脸,不把坏包带进分发链)
|
|
39
|
+
* - `outFile` 缺省 = `<root>/<pluginId>.linkdesk-plugin`(与 `build` 同款落点,作者零心智)
|
|
40
|
+
* - **不抛异常给「属性不合法」之外的场景**——文件读不了就抛,调用方自己决定怎么报
|
|
41
|
+
*/
|
|
42
|
+
export declare function packPluginData(options: {
|
|
43
|
+
root: string;
|
|
44
|
+
outFile?: string;
|
|
45
|
+
}): Promise<PackResult>;
|
|
46
|
+
//# sourceMappingURL=pack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../src/pack.ts"],"names":[],"mappings":"AAwCA;;GAEG;AACH,eAAO,MAAM,cAAc,MAA0C,CAAC;AAQtE;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAU9E;AAED,mCAAmC;AACnC,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQtD;AAED,iDAAiD;AACjD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAWzD;AAED,MAAM,WAAW,UAAU;IACzB,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAkCrG"}
|
package/dist/pack.js
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 纯数据插件的打包通道(E6#98c,L7 第 7.1 轮)——`linkdesk-plugin-sdk pack`。
|
|
3
|
+
*
|
|
4
|
+
* 为什么需要它:主题 / 语言/图标集这类插件**没有 entry、没有可编译表面**——`build` 的 collectSurfaces
|
|
5
|
+
* 会直接抛「无可编译表面」。此前它们的 zip 只由**壳仓脚本** `scripts/pack-bundled-plugins.mjs` 产出,
|
|
6
|
+
* 而源码搬进各自独立的仓之后,插件仓里没有那条路径 ⇒ 产不出 zip。
|
|
7
|
+
*
|
|
8
|
+
* 语义 = 打包「**目录整树**」:`plugin.json` + 全部随包资源,条目相对插件根、正斜杠、**无外层目录**
|
|
9
|
+
* (loader 解压期待 plugin.json 在顶,E6#7 契约)。与 `build` 的静态清单不同——`build` 只拷一份
|
|
10
|
+
* 白名单(plugin.json / i18n / icon / README / CHANGELOG),纯数据包的**本体**恰恰是白名单之外的
|
|
11
|
+
* 数据文件(`themes/*.json` / `icons/**` / `en.json`),只能走「整树」。
|
|
12
|
+
*
|
|
13
|
+
* 排除清单(两个理由,缺一不可):
|
|
14
|
+
* - **构建/工具产物**:`node_modules/`、`dist/`、`<id>.linkdesk-plugin`(自己上一次的产物)、`*.tgz`
|
|
15
|
+
* ——独立仓里跑过 `npm install` 之后,不排会把整个 node_modules 打进 zip。
|
|
16
|
+
* - **npm 元数据**:`package.json` / `package-lock.json`——它们描述「怎么构建这个包」,不是插件内容。
|
|
17
|
+
* 这个取舍与 `build` 一致(build 的静态清单从不拷 package.json)。
|
|
18
|
+
* 隐藏项(`.` 开头,含 `.git` / `.github` / `.gitignore` / `.npmrc`)一并排除——同属工具面。
|
|
19
|
+
*
|
|
20
|
+
* 🔴 **两条与壳仓脚本必须逐字节一致的行为**(否则同一插件走「壳内」与「插件仓」两条路径产出的内容
|
|
21
|
+
* 指纹不同,`scripts/check-bundled-version-bump.mjs` 的内容指纹门禁会互相打架):
|
|
22
|
+
* ① **文本条目行尾归一 LF**——让产物与「打包时工作区的行尾」解耦。规则本体在 `normalizeEol`(本文件),
|
|
23
|
+
* 壳仓侧的同源实现是 `scripts/lib/text-eol.mjs`(判据:前 8000 字节含 NUL ⇒ 二进制原样;否则严格
|
|
24
|
+
* UTF-8 解码,解不开也当二进制;文本一律 `\r\n → \n`)。**SDK 是独立发布的 npm 包,不能 import
|
|
25
|
+
* 壳仓文件**,故只能是一份同源实现——改一处必须同笔改另一处。
|
|
26
|
+
* ⚠️ 壳仓的 `pack-bundled-plugins.mjs` 已改为调用本模块(打包实现只此一份),因此这条「两处同源」
|
|
27
|
+
* 当前只剩「行尾规则」这一份判据需要人工对齐。
|
|
28
|
+
* ② **条目时间戳固定**(`ZIP_ENTRY_DATE`)——JSZip 默认给每个条目盖 `new Date()`,于是内容一个字没改
|
|
29
|
+
* 重打一次字节也全变 ⇒ 产物不可复现(`git status` 恒脏、无法用「重打一遍」验证、也判断不了某次
|
|
30
|
+
* diff 是真改内容还是只换时间)。值本身无意义,只要跨机器恒定。
|
|
31
|
+
*
|
|
32
|
+
* 用法:
|
|
33
|
+
* `linkdesk-plugin-sdk pack` → 插件根 `./<pluginId>.linkdesk-plugin`
|
|
34
|
+
* `linkdesk-plugin-sdk pack --out <p>` → 指定输出文件(壳仓编排脚本用)
|
|
35
|
+
*/
|
|
36
|
+
import { existsSync, readdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
37
|
+
import { join, resolve } from "node:path";
|
|
38
|
+
import JSZip from "jszip";
|
|
39
|
+
import { derivePluginId, readPluginManifest, validatePluginJson } from "./validate.js";
|
|
40
|
+
/**
|
|
41
|
+
* 条目时间戳固定——值本身无意义,只要跨机器恒定。与壳仓 `scripts/pack-bundled-plugins.mjs` 同值。
|
|
42
|
+
*/
|
|
43
|
+
export const ZIP_ENTRY_DATE = new Date(Date.UTC(2020, 0, 1, 0, 0, 0));
|
|
44
|
+
/** 排除的目录名(任意层级)——构建/工具产物 */
|
|
45
|
+
const EXCLUDED_DIRS = new Set(["node_modules", "dist"]);
|
|
46
|
+
/** 排除的文件名(任意层级)——npm 元数据 + 本通道自己的产物 */
|
|
47
|
+
const EXCLUDED_FILES = new Set(["package.json", "package-lock.json"]);
|
|
48
|
+
/**
|
|
49
|
+
* 文本条目行尾归一——**判据照抄 git 的 `text=auto`**(不另立一套分类):前 8000 字节含 NUL ⇒ 二进制,
|
|
50
|
+
* 原样;其余按 UTF-8 **严格**解码(解不开也当二进制);文本一律 `\r\n → \n`——与 `.gitattributes`
|
|
51
|
+
* 的 `eol=lf` 同规。没有 `\r\n` 就逐字节原样(连 BOM 决策也不动),调用方可用 `normalized` 分辨
|
|
52
|
+
* 「这次到底动没动」。
|
|
53
|
+
*
|
|
54
|
+
* 🔴 为什么必须是这条规则(壳仓实测的病根,不是推测):`core.autocrlf=true` + `.gitattributes`
|
|
55
|
+
* `text=auto eol=lf` ⇒ **索引里是 LF,工作区却是 CRLF**(`git ls-files --eol` 实测 `i/lf w/crlf`——
|
|
56
|
+
* `.gitattributes` 管不住**已检出**的存量文件)。于是同一份源码在一台机器上重打一次,zip 的内容
|
|
57
|
+
* 指纹就变了 ⇒ 版本门禁判「改内容没 bump」满屏红,而源码一个字没改。
|
|
58
|
+
*/
|
|
59
|
+
export function normalizeEol(buf) {
|
|
60
|
+
if (buf.subarray(0, 8000).includes(0))
|
|
61
|
+
return { buf, normalized: false };
|
|
62
|
+
let text;
|
|
63
|
+
try {
|
|
64
|
+
text = new TextDecoder("utf-8", { fatal: true }).decode(buf);
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return { buf, normalized: false }; // 不是合法 UTF-8 —— 当二进制,一个字节都不碰
|
|
68
|
+
}
|
|
69
|
+
if (!text.includes("\r\n"))
|
|
70
|
+
return { buf, normalized: false }; // 已是 LF,逐字节原样
|
|
71
|
+
return { buf: Buffer.from(text.replace(/\r\n/g, "\n"), "utf8"), normalized: true };
|
|
72
|
+
}
|
|
73
|
+
/** 相对路径是否进包——见文件头「排除清单」。路径一律正斜杠 */
|
|
74
|
+
export function isPackableRelPath(rel) {
|
|
75
|
+
const parts = rel.split("/");
|
|
76
|
+
if (parts.some((p) => p.startsWith(".")))
|
|
77
|
+
return false; // 隐藏项(.git/.github/.gitignore/.npmrc…)
|
|
78
|
+
if (parts.some((p) => EXCLUDED_DIRS.has(p)))
|
|
79
|
+
return false;
|
|
80
|
+
const name = parts[parts.length - 1];
|
|
81
|
+
if (EXCLUDED_FILES.has(name))
|
|
82
|
+
return false;
|
|
83
|
+
if (name.endsWith(".linkdesk-plugin") || name.endsWith(".tgz"))
|
|
84
|
+
return false;
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
/** 目录递归收集相对路径文件——正斜杠,**排序**(条目顺序确定性 = 跨机器同字节) */
|
|
88
|
+
export function collectPluginFiles(root) {
|
|
89
|
+
const out = [];
|
|
90
|
+
const walk = (dir, prefix) => {
|
|
91
|
+
for (const e of readdirSync(dir, { withFileTypes: true })) {
|
|
92
|
+
const rel = prefix ? `${prefix}/${e.name}` : e.name;
|
|
93
|
+
if (e.isDirectory())
|
|
94
|
+
walk(join(dir, e.name), rel);
|
|
95
|
+
else if (isPackableRelPath(rel))
|
|
96
|
+
out.push(rel);
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
walk(root, "");
|
|
100
|
+
return out.sort();
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* 把一个插件目录打成 `.linkdesk-plugin`(纯数据包)。
|
|
104
|
+
*
|
|
105
|
+
* - 先跑 `validatePluginJson`:**manifest 不合法不产 zip**(宁打包时红脸,不把坏包带进分发链)
|
|
106
|
+
* - `outFile` 缺省 = `<root>/<pluginId>.linkdesk-plugin`(与 `build` 同款落点,作者零心智)
|
|
107
|
+
* - **不抛异常给「属性不合法」之外的场景**——文件读不了就抛,调用方自己决定怎么报
|
|
108
|
+
*/
|
|
109
|
+
export async function packPluginData(options) {
|
|
110
|
+
const root = resolve(options.root);
|
|
111
|
+
const manifestPath = join(root, "plugin.json");
|
|
112
|
+
if (!existsSync(manifestPath)) {
|
|
113
|
+
throw new Error(`插件根没有 plugin.json:${root}`);
|
|
114
|
+
}
|
|
115
|
+
const res = validatePluginJson(manifestPath);
|
|
116
|
+
if (!res.valid) {
|
|
117
|
+
throw new Error(`plugin.json 验证失败:\n ${res.errors.join("\n ")}`);
|
|
118
|
+
}
|
|
119
|
+
const manifest = readPluginManifest(manifestPath);
|
|
120
|
+
const id = derivePluginId(manifest, root.split(/[\\/]/).filter(Boolean).pop() ?? "");
|
|
121
|
+
const version = typeof manifest?.version === "string" ? manifest.version : "";
|
|
122
|
+
const zip = new JSZip();
|
|
123
|
+
let normalizedCount = 0;
|
|
124
|
+
let entryCount = 0;
|
|
125
|
+
for (const rel of collectPluginFiles(root)) {
|
|
126
|
+
const { buf, normalized } = normalizeEol(readFileSync(join(root, rel)));
|
|
127
|
+
if (normalized)
|
|
128
|
+
normalizedCount += 1;
|
|
129
|
+
zip.file(rel, buf, { date: ZIP_ENTRY_DATE });
|
|
130
|
+
entryCount += 1;
|
|
131
|
+
}
|
|
132
|
+
if (entryCount === 0) {
|
|
133
|
+
throw new Error(`插件根没有任何可打包条目:${root}(plugin.json 之外全被排除?)`);
|
|
134
|
+
}
|
|
135
|
+
const buf = await zip.generateAsync({ type: "nodebuffer", compression: "DEFLATE" });
|
|
136
|
+
const outPath = resolve(options.outFile ?? join(root, `${id}.linkdesk-plugin`));
|
|
137
|
+
writeFileSync(outPath, buf);
|
|
138
|
+
return { id, version, outPath, bytes: buf.byteLength, entryCount, normalizedCount };
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=pack.js.map
|
package/dist/pack.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack.js","sourceRoot":"","sources":["../src/pack.ts"],"names":[],"mappings":"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"}
|
package/dist/validate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAuBH;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAiC,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAuBH;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAiC,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AA2DD,+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,CAqCjE;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
|
@@ -77,6 +77,31 @@ function collectRemovedFieldWarnings(manifest, base) {
|
|
|
77
77
|
}
|
|
78
78
|
return out;
|
|
79
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* pluginId 显式声明提醒(E6#98g,L7 第 7.1 轮)——**警告不是错误**(`valid` 不变)。
|
|
82
|
+
*
|
|
83
|
+
* 为什么必须有这道提醒:插件身份今天可以靠「项目目录名」兜底(`derivePluginId`),而目录名与仓库名
|
|
84
|
+
* 是**自由**的。L7 把源码搬进各自独立的仓(名字自由)之后,目录名一改,构建出的分发件就换了身份,
|
|
85
|
+
* 且五条后果——安装目录并存两份 / 卸载墓碑对不上 / 市场出现两条不同 id 的条目 / 更新链静默断 /
|
|
86
|
+
* 插件数据看似丢失——**没有一条会报错**。
|
|
87
|
+
*
|
|
88
|
+
* 兜底路径**不删**(仓外已有存量第三方插件在吃它),但作者必须被告知它不该被依赖。官方插件由仓库侧
|
|
89
|
+
* 门禁兜底(18 只全部显式声明),此处是作者侧软提醒。
|
|
90
|
+
*/
|
|
91
|
+
function collectPluginIdWarning(manifest, base) {
|
|
92
|
+
if (!manifest || typeof manifest !== "object")
|
|
93
|
+
return [];
|
|
94
|
+
const m = manifest;
|
|
95
|
+
// 空白串/shape 非法由 schema 的 pattern 先拦(那走 errors 分支、不会到这里);此处 trim 只为
|
|
96
|
+
// 「schema 无 pattern 的未来」与「直接调用本函数」两条路留一道等价守卫——两条路判据必须一致。
|
|
97
|
+
if (typeof m.pluginId === "string" && m.pluginId.trim() !== "")
|
|
98
|
+
return [];
|
|
99
|
+
return [
|
|
100
|
+
`${base} 未声明 "pluginId"——插件身份将退回「项目目录名」兜底。目录名与仓库名是自由的,` +
|
|
101
|
+
`一旦它们与插件身份不一致,构建出的分发件就会换一个身份,且不会有任何报错。` +
|
|
102
|
+
`请在 plugin.json 顶层显式声明 pluginId(值 = 当前目录名;发布后永不可改)。`,
|
|
103
|
+
];
|
|
104
|
+
}
|
|
80
105
|
/**
|
|
81
106
|
* 收集插件 i18n 声明——顶层**废弃** `manifest.i18n` + `contributes.i18n` 两层(schema 243/623 行:
|
|
82
107
|
* 顶层 i18n @deprecated,contributes 为现役)。shape = { 语言代码: 相对路径 }。
|
|
@@ -255,8 +280,9 @@ export function validatePluginJson(path) {
|
|
|
255
280
|
errors.push(`${decl.rel}: 在 ${decl.origin} 中声明但文件不存在`);
|
|
256
281
|
}
|
|
257
282
|
}
|
|
258
|
-
// 3) 已移除字段墓碑提示(E6#91d)——schema 顶层
|
|
259
|
-
|
|
283
|
+
// 3) 已移除字段墓碑提示(E6#91d)+ pluginId 显式声明提醒(E6#98g)——schema 顶层
|
|
284
|
+
// additionalProperties: true ⇒ 这两步是作者**唯一**能被告知的通道
|
|
285
|
+
const warnings = [...collectRemovedFieldWarnings(manifest, base), ...collectPluginIdWarning(manifest, base)];
|
|
260
286
|
return { valid: errors.length === 0, errors, ...(warnings.length > 0 ? { warnings } : {}) };
|
|
261
287
|
}
|
|
262
288
|
/* ── 数据文件校验器(E6#60:主题/图标主题 authors 面,镜像 check-theme-schema.mjs 同规则) ── */
|
package/dist/validate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@linkdesk/plugin-sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.15",
|
|
4
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",
|