@linkdesk/plugin-sdk 0.1.32 → 0.1.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/eslint/checks/appearance-ownership.d.ts +4 -3
  2. package/dist/eslint/checks/appearance-ownership.d.ts.map +1 -1
  3. package/dist/eslint/checks/appearance-ownership.js +22 -14
  4. package/dist/eslint/checks/appearance-ownership.js.map +1 -1
  5. package/dist/eslint/checks/appearance-ownership.test.d.ts +2 -0
  6. package/dist/eslint/checks/appearance-ownership.test.d.ts.map +1 -0
  7. package/dist/eslint/checks/appearance-ownership.test.js +348 -0
  8. package/dist/eslint/checks/appearance-ownership.test.js.map +1 -0
  9. package/dist/eslint/checks/command-ownership.d.ts +11 -1
  10. package/dist/eslint/checks/command-ownership.d.ts.map +1 -1
  11. package/dist/eslint/checks/command-ownership.js +10 -4
  12. package/dist/eslint/checks/command-ownership.js.map +1 -1
  13. package/dist/eslint/checks/command-ownership.test.d.ts +2 -0
  14. package/dist/eslint/checks/command-ownership.test.d.ts.map +1 -0
  15. package/dist/eslint/checks/command-ownership.test.js +207 -0
  16. package/dist/eslint/checks/command-ownership.test.js.map +1 -0
  17. package/dist/eslint/checks/config-ownership.d.ts +3 -3
  18. package/dist/eslint/checks/config-ownership.d.ts.map +1 -1
  19. package/dist/eslint/checks/config-ownership.js +15 -11
  20. package/dist/eslint/checks/config-ownership.js.map +1 -1
  21. package/dist/eslint/checks/config-ownership.test.d.ts +2 -0
  22. package/dist/eslint/checks/config-ownership.test.d.ts.map +1 -0
  23. package/dist/eslint/checks/config-ownership.test.js +252 -0
  24. package/dist/eslint/checks/config-ownership.test.js.map +1 -0
  25. package/dist/eslint/checks/context-ownership.d.ts +74 -0
  26. package/dist/eslint/checks/context-ownership.d.ts.map +1 -0
  27. package/dist/eslint/checks/context-ownership.js +177 -0
  28. package/dist/eslint/checks/context-ownership.js.map +1 -0
  29. package/dist/eslint/checks/context-ownership.test.d.ts +2 -0
  30. package/dist/eslint/checks/context-ownership.test.d.ts.map +1 -0
  31. package/dist/eslint/checks/context-ownership.test.js +205 -0
  32. package/dist/eslint/checks/context-ownership.test.js.map +1 -0
  33. package/dist/eslint/checks/disable.d.ts +5 -0
  34. package/dist/eslint/checks/disable.d.ts.map +1 -1
  35. package/dist/eslint/checks/disable.js +5 -0
  36. package/dist/eslint/checks/disable.js.map +1 -1
  37. package/dist/eslint/checks/plugin-prefix.test.d.ts +2 -0
  38. package/dist/eslint/checks/plugin-prefix.test.d.ts.map +1 -0
  39. package/dist/eslint/checks/plugin-prefix.test.js +229 -0
  40. package/dist/eslint/checks/plugin-prefix.test.js.map +1 -0
  41. package/dist/eslint/checks/reserved-classes.test.d.ts +2 -0
  42. package/dist/eslint/checks/reserved-classes.test.d.ts.map +1 -0
  43. package/dist/eslint/checks/reserved-classes.test.js +122 -0
  44. package/dist/eslint/checks/reserved-classes.test.js.map +1 -0
  45. package/dist/eslint/checks/selector-form.test.d.ts +2 -0
  46. package/dist/eslint/checks/selector-form.test.d.ts.map +1 -0
  47. package/dist/eslint/checks/selector-form.test.js +211 -0
  48. package/dist/eslint/checks/selector-form.test.js.map +1 -0
  49. package/dist/eslint/checks/token-scope.test.d.ts +2 -0
  50. package/dist/eslint/checks/token-scope.test.d.ts.map +1 -0
  51. package/dist/eslint/checks/token-scope.test.js +185 -0
  52. package/dist/eslint/checks/token-scope.test.js.map +1 -0
  53. package/dist/eslint/index.d.ts +12 -0
  54. package/dist/eslint/index.d.ts.map +1 -1
  55. package/dist/eslint/index.js +11 -0
  56. package/dist/eslint/index.js.map +1 -1
  57. package/dist/eslint/lint.d.ts +17 -0
  58. package/dist/eslint/lint.d.ts.map +1 -1
  59. package/dist/eslint/lint.js +64 -13
  60. package/dist/eslint/lint.js.map +1 -1
  61. package/dist/pack.test.d.ts +2 -0
  62. package/dist/pack.test.d.ts.map +1 -0
  63. package/dist/pack.test.js +58 -0
  64. package/dist/pack.test.js.map +1 -0
  65. package/dist/publish.test.d.ts +2 -0
  66. package/dist/publish.test.d.ts.map +1 -0
  67. package/dist/publish.test.js +340 -0
  68. package/dist/publish.test.js.map +1 -0
  69. package/dist/validate.test.d.ts +2 -0
  70. package/dist/validate.test.d.ts.map +1 -0
  71. package/dist/validate.test.js +107 -0
  72. package/dist/validate.test.js.map +1 -0
  73. package/package.json +68 -68
  74. package/schemas/host-reserved.json +9 -6
@@ -0,0 +1,205 @@
1
+ /**
2
+ * `check-context-ownership` 腿单测(E6#111h · 1.38)。
3
+ *
4
+ * 🔴 覆盖本格的三条判据分级([1.37 §十六](../../../../../../docs/02-Electron架构/E6_插件生态与发布/01-插件独立构建/非样式命名空间归一化/07-任务-上下文旗子归属评估.md) 负控 ①②③):
5
+ * ① 插件设**宿主专用**旗子 ⇒ 🔴 红(进 `violations`)
6
+ * ② 插件设**宿主公开约定面**旗子 ⇒ 🟠 **不红也不黄**(只在 `publicFace` 登记)——**分级写错会被这条抓住**
7
+ * ③ 插件旗子不带本仓归属 ⇒ 🟡 黄(进 `advisories`,**不进** `violations`)
8
+ * ⑦ 模板字符串拼名 ⇒ **不被抓**(**静态射程边界自证**,是边界不是 bug)
9
+ */
10
+ import { describe, expect, it } from "vitest";
11
+ import { mkdtempSync, mkdirSync, writeFileSync, rmSync } from "node:fs";
12
+ import { tmpdir } from "node:os";
13
+ import { join } from "node:path";
14
+ import { judgeContextKey, runContextOwnershipCheck } from "./context-ownership.js";
15
+ /** 宿主保留面夹具(形状照真账:旗子**两段各成一格**——合成一格 = `settings` 假红) */
16
+ const RESERVED = {
17
+ commandPrefixes: [],
18
+ protocolIds: [],
19
+ configKeys: [],
20
+ pseudoPluginIds: [],
21
+ appearanceRecipeIds: [],
22
+ appearanceColorwayIds: [],
23
+ appearanceIconThemeIds: [],
24
+ appearanceSentinels: [],
25
+ appearanceIdGrants: {},
26
+ contextKeysHostOnly: ["activeEditor", "sidebarPosition", "inputFocus"],
27
+ contextKeysPublic: ["settingKey", "settingFollowTheme", "settingResetsToDefault", "settingModified"],
28
+ };
29
+ const NO_LEDGER = join(tmpdir(), "no-such-host-reserved.json");
30
+ function withPlugin(opts, fn) {
31
+ const base = mkdtempSync(join(tmpdir(), "ctx-owner-"));
32
+ const root = opts.dirName ? join(base, opts.dirName) : base;
33
+ mkdirSync(join(root, "src"), { recursive: true });
34
+ const manifest = { pluginId: opts.pluginId ?? "file-tree", name: "文件树", version: "1.0.0", contributes: {} };
35
+ writeFileSync(join(root, "plugin.json"), `{\n // 作者允许的注释\n ${JSON.stringify(manifest).slice(1, -1)},\n}\n`, "utf8");
36
+ for (const [rel, body] of Object.entries(opts.files ?? {})) {
37
+ const abs = join(root, rel);
38
+ mkdirSync(join(abs, ".."), { recursive: true });
39
+ writeFileSync(abs, body, "utf8");
40
+ }
41
+ try {
42
+ fn(root);
43
+ }
44
+ finally {
45
+ rmSync(base, { recursive: true, force: true });
46
+ }
47
+ }
48
+ describe("judgeContextKey —— 纯判据(只换第一段的建议名形状)", () => {
49
+ it("🔴 宿主专用 ⇒ host-reserved(含建议名)", () => {
50
+ const v = judgeContextKey("activeEditor", "file-tree", RESERVED);
51
+ expect(v?.code).toBe("host-reserved");
52
+ expect(v?.reserved).toBe("activeEditor");
53
+ expect(v?.suggested).toBe("file-tree.activeEditor");
54
+ });
55
+ it("🟠 宿主公开约定面 ⇒ **null**(既不红也不黄——第三方设它合法)", () => {
56
+ for (const k of RESERVED.contextKeysPublic) {
57
+ expect(judgeContextKey(k, "my-plugin", RESERVED)).toBeNull();
58
+ }
59
+ });
60
+ it("🟡 不带本仓前缀 ⇒ no-plugin-prefix;已带 ⇒ null", () => {
61
+ expect(judgeContextKey("zzzFlag", "file-tree", RESERVED)?.code).toBe("no-plugin-prefix");
62
+ expect(judgeContextKey("file-tree.zzzFlag", "file-tree", RESERVED)).toBeNull();
63
+ });
64
+ it("🔴 建议名**只换第一段**、词干零变化(`a.b.c` ⇒ `<pluginId>.b.c`)", () => {
65
+ expect(judgeContextKey("a.b.c", "p", RESERVED)?.suggested).toBe("p.b.c");
66
+ expect(judgeContextKey("explorerFocus", "p", RESERVED)?.suggested).toBe("p.explorerFocus");
67
+ });
68
+ });
69
+ describe("runContextOwnershipCheck —— 负控 ①(宿主专用 ⇒ 红)", () => {
70
+ it("🔴 插件设宿主专用旗子 ⇒ 进 violations + red", () => {
71
+ withPlugin({ files: { "src/a.ts": 'contextKey.set("activeEditor", null);\n' } }, (root) => {
72
+ const r = runContextOwnershipCheck(root, RESERVED);
73
+ expect(r.violations).toHaveLength(1);
74
+ expect(r.red).toHaveLength(1);
75
+ expect(r.red[0].code).toBe("host-reserved");
76
+ expect(r.red[0].file).toBe("src/a.ts");
77
+ expect(r.red[0].line).toBe(1);
78
+ expect(r.violations[0].message).toContain("宿主专用");
79
+ // 🔴 报点文案必须说清「两边都不报错」的形态(1.37 §10.2 的措辞)
80
+ expect(r.violations[0].message).toContain("两边都不报错");
81
+ });
82
+ });
83
+ it("🔴 壳侧写法 ContextKeyService.setValue 同样被抓(同一件事的两张脸,只扫一支 = 漏一半)", () => {
84
+ withPlugin({ files: { "src/b.ts": 'ContextKeyService.setValue("sidebarPosition", "left");\n' } }, (root) => {
85
+ const r = runContextOwnershipCheck(root, RESERVED);
86
+ expect(r.red).toHaveLength(1);
87
+ expect(r.red[0].reserved).toBe("sidebarPosition");
88
+ });
89
+ });
90
+ });
91
+ describe("runContextOwnershipCheck —— 负控 ②(约定面 ⇒ 不红)", () => {
92
+ it("🟠 插件设宿主公开约定面旗子 ⇒ **零红零黄**,只在 publicFace 登记", () => {
93
+ withPlugin({ files: { "src/a.ts": 'contextKey.set("settingFollowTheme", true);\n' } }, (root) => {
94
+ const r = runContextOwnershipCheck(root, RESERVED);
95
+ expect(r.violations).toHaveLength(0);
96
+ expect(r.advisories).toHaveLength(0);
97
+ expect(r.red).toHaveLength(0);
98
+ expect(r.yellow).toHaveLength(0);
99
+ expect(r.publicFace).toHaveLength(1);
100
+ expect(r.publicFace[0].key).toBe("settingFollowTheme");
101
+ // 名数口径:设过就算扫到(探针读数用)
102
+ expect(r.keys).toContain("settingFollowTheme");
103
+ });
104
+ });
105
+ it("🔴 元判据:官方 `settings` 的 4 个约定面旗子**一个都不报红**(合成一段会在这里假红)", () => {
106
+ const src = RESERVED.contextKeysPublic.map((k) => `contextKey.set("${k}", true);`).join("\n");
107
+ withPlugin({ files: { "src/gearMenu.ts": src + "\n" }, pluginId: "settings" }, (root) => {
108
+ const r = runContextOwnershipCheck(root, RESERVED);
109
+ expect(r.violations).toHaveLength(0);
110
+ expect(r.publicFace).toHaveLength(4);
111
+ });
112
+ });
113
+ });
114
+ describe("runContextOwnershipCheck —— 负控 ③(不带归属 ⇒ 黄,不是红)", () => {
115
+ it("🟡 插件设裸名旗子 ⇒ 进 advisories,**不进** violations", () => {
116
+ withPlugin({ files: { "src/a.ts": 'contextKey.set("zzzFlag", true);\n' } }, (root) => {
117
+ const r = runContextOwnershipCheck(root, RESERVED);
118
+ expect(r.violations).toHaveLength(0);
119
+ expect(r.advisories).toHaveLength(1);
120
+ expect(r.yellow[0].code).toBe("no-plugin-prefix");
121
+ expect(r.yellow[0].suggested).toBe("file-tree.zzzFlag");
122
+ });
123
+ });
124
+ it("已带本仓前缀的旗子 ⇒ 全绿(判据不是在恒红)", () => {
125
+ withPlugin({ files: { "src/a.ts": 'contextKey.set("file-tree.explorerFocus", true);\n' } }, (root) => {
126
+ const r = runContextOwnershipCheck(root, RESERVED);
127
+ expect(r.violations).toHaveLength(0);
128
+ expect(r.advisories).toHaveLength(0);
129
+ expect(r.keys).toEqual(["file-tree.explorerFocus"]);
130
+ });
131
+ });
132
+ });
133
+ describe("射程边界(负控 ⑦:断言**不被抓**——是边界不是 bug)", () => {
134
+ it("模板字符串**拼名** ⇒ 扫不到(登记为残余边界)", () => {
135
+ withPlugin({ files: { "src/a.ts": "contextKey.set(`exp${x}`, 1);\n" } }, (root) => {
136
+ const r = runContextOwnershipCheck(root, RESERVED);
137
+ expect(r.keys).toHaveLength(0);
138
+ expect(r.violations).toHaveLength(0);
139
+ expect(r.advisories).toHaveLength(0);
140
+ });
141
+ });
142
+ it("🔴 **无插值**的模板 = 字面量 ⇒ 要扫得到(与上一条是两只脚,缺一个就是漏一半)", () => {
143
+ withPlugin({ files: { "src/a.ts": "contextKey.set(`activeEditor`, 1);\ncontextKey.set(`mine`, 2);\n" } }, (root) => {
144
+ const r = runContextOwnershipCheck(root, RESERVED);
145
+ // 第一行:宿主专用 ⇒ 红;第二行:无前缀 ⇒ 黄。**一条都不许少**
146
+ expect(r.red.map((s) => s.key)).toEqual(["activeEditor"]);
147
+ expect(r.yellow.map((s) => s.key)).toEqual(["mine"]);
148
+ });
149
+ });
150
+ it("拼名模板**不许**被当成一个字面旗子名报出来(假红比漏报更坏)", () => {
151
+ withPlugin({ files: { "src/a.ts": "contextKey.set(`exp${x}`, 1);\n" } }, (root) => {
152
+ const r = runContextOwnershipCheck(root, RESERVED);
153
+ expect(r.keys.some((k) => k.includes("${"))).toBe(false);
154
+ });
155
+ });
156
+ it("**常量写入**(`const K = \"...\"` 再 set(K))⇒ 同样扫不到(与宿主侧同款边界)", () => {
157
+ withPlugin({ files: { "src/a.ts": 'const K = "activeEditor";\ncontextKey.set(K, null);\n' } }, (root) => {
158
+ const r = runContextOwnershipCheck(root, RESERVED);
159
+ expect(r.keys).toHaveLength(0);
160
+ expect(r.violations).toHaveLength(0);
161
+ });
162
+ });
163
+ it("测试 / mock 文件跳过(与另几条腿同口径)", () => {
164
+ withPlugin({ files: { "src/a.test.ts": 'contextKey.set("activeEditor", null);\n' } }, (root) => {
165
+ const r = runContextOwnershipCheck(root, RESERVED);
166
+ expect(r.violations).toHaveLength(0);
167
+ });
168
+ });
169
+ });
170
+ describe("fail-closed + 账加载实况", () => {
171
+ it("拿不到 pluginId ⇒ 报红且**不参与豁免**(身份问题)", () => {
172
+ withPlugin({ dirName: "anon", pluginId: "", files: { "src/a.ts": "export const x = 1;\n" } }, (root) => {
173
+ const r = runContextOwnershipCheck(root, RESERVED);
174
+ expect(r.violations.length).toBeGreaterThan(0);
175
+ expect(r.violations[0].message).toContain("拿不到本仓 pluginId");
176
+ expect(r.red).toHaveLength(0); // 红的是 fail-closed 那条,不是判据命中
177
+ });
178
+ });
179
+ it("账读不到 ⇒ hostLedger.found = false + 两段计数为 0(判据① 明示空转,不许静默绿)", () => {
180
+ withPlugin({ files: { "src/a.ts": 'contextKey.set("activeEditor", null);\n' } }, (root) => {
181
+ const r = runContextOwnershipCheck(root, { ...RESERVED, contextKeysHostOnly: [], contextKeysPublic: [] }, NO_LEDGER);
182
+ expect(r.hostLedger.found).toBe(false);
183
+ expect(r.hostLedger.contextKeysHostOnly).toBe(0);
184
+ expect(r.hostLedger.contextKeysPublic).toBe(0);
185
+ expect(r.violations).toHaveLength(0); // 账空 ⇒ 判据① 无从命中(这正是"空转"的样子)
186
+ });
187
+ });
188
+ it("账两段都被报告(探针要能看出两段各自的规模)", () => {
189
+ withPlugin({}, (root) => {
190
+ const r = runContextOwnershipCheck(root, RESERVED);
191
+ expect(r.hostLedger.contextKeysHostOnly).toBe(3);
192
+ expect(r.hostLedger.contextKeysPublic).toBe(4);
193
+ });
194
+ });
195
+ });
196
+ describe("知情绕行(disable 注释)", () => {
197
+ it("行级 disable ⇒ 该行红站点被豁免(但名数照样记账)", () => {
198
+ withPlugin({ files: { "src/a.ts": '// eslint-disable-next-line linkdesk/no-unowned-context-key -- 迁移中\ncontextKey.set("activeEditor", null);\n' } }, (root) => {
199
+ const r = runContextOwnershipCheck(root, RESERVED);
200
+ expect(r.violations).toHaveLength(0);
201
+ expect(r.keys).toContain("activeEditor");
202
+ });
203
+ });
204
+ });
205
+ //# sourceMappingURL=context-ownership.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-ownership.test.js","sourceRoot":"","sources":["../../../src/eslint/checks/context-ownership.test.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,11 @@ export declare const CHECK_IDS: {
27
27
  * 且不得占用宿主兜底外观 id(🔴 红:配方 / 配色 / 图标主题三栏**按空间**比,有证照者除外)。
28
28
  * ⚠️ 图标主题 id **不判前缀**(1.36 §二.2 ⑦:本轮不改名——改名 = 设置页可见文字变化)⇒ 这个 id 只覆盖判据②。 */
29
29
  readonly appearanceOwnership: "linkdesk/no-unowned-appearance-id";
30
+ /** E6#111h(1.38):插件设的 context 旗子必须带本仓 `<pluginId>.` 前缀(🟡 黄),
31
+ * 且不得占用**宿主专用**旗子(🔴 红:`contextKeysHostOnly`)。
32
+ * ⚠️ 宿主**公开约定面**(`contextKeysPublic`,今天 = `settings` 齿轮菜单的 4 个 `setting*`)
33
+ * **不判**(第三方设它合法:登记 + 运行时报点)——见 `context-ownership.ts` 文件头。 */
34
+ readonly contextOwnership: "linkdesk/no-unowned-context-key";
30
35
  };
31
36
  export interface DisableIndex {
32
37
  /** 1-based 行 → 该行豁免的 id 集合(行级 next-line/line + 文件级 disable 区间) */
@@ -1 +1 @@
1
- {"version":3,"file":"disable.d.ts","sourceRoot":"","sources":["../../../src/eslint/checks/disable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,SAAS;;;;;IAKpB,oEAAoE;;IAEpE,qEAAqE;;IAErE;;;gFAG4E;;CAEpE,CAAC;AAoFX,MAAM,WAAW,YAAY;IAC3B,kEAAkE;IAClE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CAClC;AAED,wEAAwE;AACxE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,YAAY,CAmDnF;AAED,oCAAoC;AACpC,wBAAgB,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAGjF"}
1
+ {"version":3,"file":"disable.d.ts","sourceRoot":"","sources":["../../../src/eslint/checks/disable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,SAAS;;;;;IAKpB,oEAAoE;;IAEpE,qEAAqE;;IAErE;;;gFAG4E;;IAE5E;;;oEAGgE;;CAExD,CAAC;AAoFX,MAAM,WAAW,YAAY;IAC3B,kEAAkE;IAClE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CAClC;AAED,wEAAwE;AACxE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,YAAY,CAmDnF;AAED,oCAAoC;AACpC,wBAAgB,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAGjF"}
@@ -27,6 +27,11 @@ export const CHECK_IDS = {
27
27
  * 且不得占用宿主兜底外观 id(🔴 红:配方 / 配色 / 图标主题三栏**按空间**比,有证照者除外)。
28
28
  * ⚠️ 图标主题 id **不判前缀**(1.36 §二.2 ⑦:本轮不改名——改名 = 设置页可见文字变化)⇒ 这个 id 只覆盖判据②。 */
29
29
  appearanceOwnership: "linkdesk/no-unowned-appearance-id",
30
+ /** E6#111h(1.38):插件设的 context 旗子必须带本仓 `<pluginId>.` 前缀(🟡 黄),
31
+ * 且不得占用**宿主专用**旗子(🔴 红:`contextKeysHostOnly`)。
32
+ * ⚠️ 宿主**公开约定面**(`contextKeysPublic`,今天 = `settings` 齿轮菜单的 4 个 `setting*`)
33
+ * **不判**(第三方设它合法:登记 + 运行时报点)——见 `context-ownership.ts` 文件头。 */
34
+ contextOwnership: "linkdesk/no-unowned-context-key",
30
35
  };
31
36
  /** 单遍注释 tokenizer:产出全部 // 行注释与 /* 块注释(块注释可跨行)。 */
32
37
  function tokenizeComments(source) {
@@ -1 +1 @@
1
- {"version":3,"file":"disable.js","sourceRoot":"","sources":["../../../src/eslint/checks/disable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"disable.js","sourceRoot":"","sources":["../../../src/eslint/checks/disable.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=plugin-prefix.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-prefix.test.d.ts","sourceRoot":"","sources":["../../../src/eslint/checks/plugin-prefix.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,229 @@
1
+ /**
2
+ * check-css-namespace 腿·**本仓前缀判据**(E6#109h-b①)单测——插件 CSS 里给自有元素起的类名、以及
3
+ * 自己的 `@keyframes` 名,必须以本仓 `pluginId` 加一个连字符开头。
4
+ *
5
+ * 为什么值得一条测试:这条腿的**两条失效方向都是静默的**——
6
+ * · 太松(放过一个裸名)⇒ 插件 ↔ 插件轴继续无保护,表现是「不报错、只是长得不对」(`.badge` 案同形);
7
+ * · 太紧(误伤合法消费)⇒ 插件仓 CI 白红,作者学会「看到红就 disable」,门禁从此失效。
8
+ * 故四条判据(①类名 ②关键帧 ③`ldk-` 边界 ④fail-closed)**正反两向都钉住**,另加两条元判据:
9
+ * · **同一份 CSS + 不同 pluginId ⇒ 不同裁决**(证明这条腿真的在读 manifest,不是恒红/恒绿);
10
+ * · **豁免注释只盖 ①②,盖不住 ③④**(身份/清单问题不受样式表注释管辖)。
11
+ */
12
+ import { describe, expect, it } from "vitest";
13
+ import { mkdtempSync, mkdirSync, writeFileSync, rmSync } from "node:fs";
14
+ import { tmpdir } from "node:os";
15
+ import { basename, join } from "node:path";
16
+ import { runPluginPrefixCheck, resolvePluginIdForCss } from "./plugin-prefix.js";
17
+ /** 保留名夹具(不依赖真实清单内容——真实清单会被后续轮次改动);⚠️ 只剩 `keyframes`(`classes` 已随判据① 退役) */
18
+ const RESERVED = {
19
+ keyframes: [{ name: "drop-zone-in", why: "宿主拖放区入场动画" }],
20
+ };
21
+ /**
22
+ * 造一个临时插件工程。
23
+ * `manifest` 传对象 ⇒ 写成 JSONC(含注释与尾逗号,钉住「manifest 是 JSONC」这条);传 null ⇒ 不写 plugin.json。
24
+ */
25
+ function withPlugin(opts, fn) {
26
+ const base = mkdtempSync(join(tmpdir(), "css-prefix-"));
27
+ const root = opts.dirName ? join(base, opts.dirName) : base;
28
+ mkdirSync(join(root, "src", "styles"), { recursive: true });
29
+ if (opts.manifest !== null) {
30
+ // 🔴 写成**带注释与尾逗号**的 JSONC——作者面允许这么写,读 manifest 的代码必须容忍
31
+ const raw = opts.manifest ?? { pluginId: "file-tree", name: "文件树", version: "1.0.0" };
32
+ writeFileSync(join(root, "plugin.json"), `{\n // 作者允许的注释\n ${JSON.stringify(raw).slice(1, -1)},\n}\n`, "utf8");
33
+ }
34
+ if (opts.css !== undefined) {
35
+ writeFileSync(join(root, opts.cssRel ?? join("src", "styles", "App.css")), opts.css, "utf8");
36
+ }
37
+ try {
38
+ fn(root);
39
+ }
40
+ finally {
41
+ rmSync(base, { recursive: true, force: true });
42
+ }
43
+ }
44
+ describe("判据① 裸定义类名必须带本仓前缀", () => {
45
+ it("正控:带本仓前缀 / scoped 调优 / 复合状态类 ⇒ 零违规", () => {
46
+ withPlugin({
47
+ css: ".file-tree-card { color: red; }\n" + // 带前缀
48
+ ".control-bar .file-tree-thing { margin: 0; }\n" + // scoped 调优(无祖先才叫裸定义)
49
+ ".file-tree-card.active { border: 0; }\n", // 复合状态类不占名
50
+ }, (root) => {
51
+ const r = runPluginPrefixCheck(root, RESERVED);
52
+ expect(r.violations).toHaveLength(0);
53
+ expect(r.pluginId).toBe("file-tree");
54
+ expect(r.pluginIdSource).toBe("plugin.json");
55
+ });
56
+ });
57
+ it("负控:新裸名 ⇒ 红,且报点含 文件 + 行 + 名字 + 应改成什么", () => {
58
+ withPlugin({ css: ".file-tree-ok { color: red; }\n.notmine-panel { color: blue; }\n" }, (root) => {
59
+ const r = runPluginPrefixCheck(root, RESERVED);
60
+ expect(r.violations).toHaveLength(1);
61
+ const v = r.violations[0];
62
+ expect(v.file).toBe("src/styles/App.css");
63
+ expect(v.line).toBe(2);
64
+ expect(v.message).toContain(".notmine-panel");
65
+ expect(v.message).toContain('应以 "file-tree-" 开头');
66
+ expect(r.classes).toEqual([
67
+ expect.objectContaining({ name: "notmine-panel", suggested: "file-tree-notmine-panel", reserved: false }),
68
+ ]);
69
+ });
70
+ });
71
+ it("负控:反向改名成 <pluginId>- 前缀 ⇒ 该点消失(不是「恒红」)", () => {
72
+ withPlugin({ css: ".file-tree-notmine-panel { color: blue; }\n" }, (root) => {
73
+ expect(runPluginPrefixCheck(root, RESERVED).violations).toHaveLength(0);
74
+ });
75
+ });
76
+ it("🔴 分界:带连字符但不属于本仓也必红(`.toolbar-bar`)——规则不是「只要含连字符」", () => {
77
+ withPlugin({ css: ".toolbar-bar { color: red; }\n" }, (root) => {
78
+ const r = runPluginPrefixCheck(root, RESERVED);
79
+ expect(r.violations).toHaveLength(1);
80
+ expect(r.violations[0].message).toContain(".toolbar-bar");
81
+ });
82
+ });
83
+ it("🔴 退役记录(E6#109p-b · 1.28):`.badge` 只由本腿那条**结构性**判据报,不再补「宿主保留名」措辞", () => {
84
+ withPlugin({ css: ".badge { background: var(--accent); }\n" }, (root) => {
85
+ const r = runPluginPrefixCheck(root, RESERVED);
86
+ expect(r.violations).toHaveLength(1); // 照旧只报一次(判据① 报点本就由本腿覆盖)
87
+ // 判据①(裸定义宿主保留类名)已退役 ⇒ 类名侧的保留名补充措辞随之删除:
88
+ // 「.badge 是保留名」这件事今天只由**本腿的前缀规则**兜(裸名必须以 <pluginId>- 开头)。
89
+ expect(r.violations[0].message).not.toContain("宿主保留名");
90
+ expect(r.classes[0].reserved).toBe(false);
91
+ });
92
+ });
93
+ it("多文件:各自出点、行号按本文件算", () => {
94
+ withPlugin({ css: ".notmine-a { color: red; }\n" }, (root) => {
95
+ writeFileSync(join(root, "src", "styles", "Other.css"), "\n\n.notmine-b { color: blue; }\n", "utf8");
96
+ const r = runPluginPrefixCheck(root, RESERVED);
97
+ expect(r.violations.map((v) => `${v.file}:${v.line}`)).toEqual(["src/styles/App.css:1", "src/styles/Other.css:3"]);
98
+ });
99
+ });
100
+ });
101
+ describe("判据② 关键帧名必须带本仓前缀", () => {
102
+ it("正控:带前缀的关键帧 ⇒ 零违规", () => {
103
+ withPlugin({ css: "@keyframes file-tree-fadeIn { from { opacity: 0 } }\n" }, (root) => {
104
+ expect(runPluginPrefixCheck(root, RESERVED).violations).toHaveLength(0);
105
+ });
106
+ });
107
+ it("负控:无前缀关键帧 ⇒ 红,且提醒同笔改 animation: 引用", () => {
108
+ withPlugin({ css: "@keyframes fadeIn { from { opacity: 0 } }\n" }, (root) => {
109
+ const r = runPluginPrefixCheck(root, RESERVED);
110
+ expect(r.violations).toHaveLength(1);
111
+ expect(r.violations[0].message).toContain("@keyframes fadeIn");
112
+ expect(r.violations[0].message).toContain("animation: 引用处");
113
+ expect(r.keyframes[0]).toEqual(expect.objectContaining({ name: "fadeIn", suggested: "file-tree-fadeIn", line: 1 }));
114
+ });
115
+ });
116
+ it("负控:撞宿主登记关键帧名 ⇒ 红 + 措辞里点出「与宿主关键帧同名」", () => {
117
+ withPlugin({ css: "@keyframes drop-zone-in { from { opacity: 0 } }\n" }, (root) => {
118
+ const r = runPluginPrefixCheck(root, RESERVED);
119
+ expect(r.violations).toHaveLength(1);
120
+ expect(r.violations[0].message).toContain("宿主关键帧");
121
+ expect(r.keyframes[0].reserved).toBe(true);
122
+ });
123
+ });
124
+ });
125
+ describe("判据③ pluginId 不得以 ldk- 开头", () => {
126
+ it("负控:pluginId: \"ldk-tools\" ⇒ 红(借宿主命名空间)", () => {
127
+ withPlugin({ manifest: { pluginId: "ldk-tools" }, css: ".ldk-tools-panel { color: red; }\n" }, (root) => {
128
+ const r = runPluginPrefixCheck(root, RESERVED);
129
+ expect(r.boundary).toBe("ldk-tools");
130
+ expect(r.violations).toHaveLength(1); // 类名本身合规 ⇒ 只有边界这一条
131
+ expect(r.violations[0].message).toContain("ldk-");
132
+ expect(r.classes).toHaveLength(0);
133
+ });
134
+ });
135
+ it("正控:`ldk` 前缀但不是 `ldk-`(如 `ldkfoo`)⇒ 不误伤", () => {
136
+ withPlugin({ manifest: { pluginId: "ldkfoo" }, css: ".ldkfoo-panel { color: red; }\n" }, (root) => {
137
+ expect(runPluginPrefixCheck(root, RESERVED).violations).toHaveLength(0);
138
+ });
139
+ });
140
+ it("🔴 目录名兜底同样受管辖:无 pluginId + 目录名 `ldk-*` ⇒ 仍红(不是「声明了才管」)", () => {
141
+ // 实测发现:本单测的临时目录前缀原本叫 `ldk-prefix-*`,于是**判据④的兜底路径**直接把 ③ 撞出来了
142
+ // ——这条判据连「没声明 pluginId、按目录名兜底」的那条路也管得住,故留成常驻用例。
143
+ withPlugin({ manifest: { name: "x" }, dirName: "ldk-tools" }, (root) => {
144
+ const r = runPluginPrefixCheck(root, RESERVED);
145
+ expect(r.pluginId).toBe("ldk-tools");
146
+ expect(r.pluginIdSource).toBe("dir-name");
147
+ expect(r.boundary).toBe("ldk-tools");
148
+ expect(r.violations).toHaveLength(1);
149
+ });
150
+ });
151
+ });
152
+ describe("判据④ fail-closed(拿不到前缀 ⇒ 红,不许静默放过)", () => {
153
+ it("负控:plugin.json 不存在 ⇒ 红(单点、指名 plugin.json)", () => {
154
+ withPlugin({ manifest: null, css: ".anything { color: red; }\n" }, (root) => {
155
+ const r = runPluginPrefixCheck(root, RESERVED);
156
+ expect(r.error).toContain("plugin.json 不在工程根");
157
+ expect(r.violations).toHaveLength(1);
158
+ expect(r.violations[0].file).toBe("plugin.json");
159
+ expect(r.classes).toHaveLength(0); // 判不了 ⇒ 不假装判过
160
+ });
161
+ });
162
+ it("负控:plugin.json 语法错 ⇒ 红(报点带上 jsonc 的解析错误)", () => {
163
+ withPlugin({ manifest: null }, (root) => {
164
+ writeFileSync(join(root, "plugin.json"), "{ this is not json ", "utf8");
165
+ const r = runPluginPrefixCheck(root, RESERVED);
166
+ expect(r.error).toContain("plugin.json 读不出");
167
+ expect(r.violations).toHaveLength(1);
168
+ });
169
+ });
170
+ it("负控:无 pluginId 且目录名也不能兜底 ⇒ 红", () => {
171
+ withPlugin({ manifest: { name: "x" }, css: ".x { color: red; }\n", dirName: "bad dir name" }, (root) => {
172
+ const r = runPluginPrefixCheck(root, RESERVED);
173
+ expect(r.error).toContain("也不能兜底");
174
+ expect(r.violations).toHaveLength(1);
175
+ });
176
+ });
177
+ it("正控:无 pluginId 但目录名可用 ⇒ 绿 + 打印「用了目录名」那一行(不静默)", () => {
178
+ withPlugin({ manifest: { name: "x", version: "1.0.0" } }, (root) => {
179
+ const cur = resolvePluginIdForCss(root);
180
+ expect(cur.error).toBeNull();
181
+ expect(cur.source).toBe("dir-name");
182
+ expect(cur.pluginId).toBe(basename(root));
183
+ expect(cur.note).toContain("兜底");
184
+ // 前缀按目录名 ⇒ 用目录名带前缀的类名应当绿
185
+ writeFileSync(join(root, "src", "styles", "App.css"), `.${cur.pluginId}-panel { color: red; }\n`, "utf8");
186
+ const r = runPluginPrefixCheck(root, RESERVED);
187
+ expect(r.violations).toHaveLength(0);
188
+ expect(r.pluginIdNote).toContain("兜底");
189
+ });
190
+ });
191
+ });
192
+ describe("元判据(判据自身的正/负控)", () => {
193
+ it("🔴 同一份 CSS + 两个不同 pluginId ⇒ 裁决不同(证明真在读 manifest,不是恒红/恒绿)", () => {
194
+ const css = ".shared-name { color: red; }\n";
195
+ withPlugin({ manifest: { pluginId: "alpha" }, css }, (rootA) => {
196
+ withPlugin({ manifest: { pluginId: "beta" }, css }, (rootB) => {
197
+ const a = runPluginPrefixCheck(rootA, RESERVED);
198
+ const b = runPluginPrefixCheck(rootB, RESERVED);
199
+ expect(a.violations).toHaveLength(1); // `.shared-name` 不带 `alpha-`
200
+ expect(a.classes[0].suggested).toBe("alpha-shared-name");
201
+ expect(b.violations).toHaveLength(1); // 也不带 `beta-`
202
+ expect(b.classes[0].suggested).toBe("beta-shared-name");
203
+ // 反向:各自带自己的前缀 ⇒ 都绿(同一份 CSS 换个 pluginId 就换了裁决)
204
+ withPlugin({ manifest: { pluginId: "alpha" }, css: ".alpha-shared-name { color: red; }\n" }, (r2) => {
205
+ withPlugin({ manifest: { pluginId: "beta" }, css: ".alpha-shared-name { color: red; }\n" }, (r3) => {
206
+ expect(runPluginPrefixCheck(r2, RESERVED).violations).toHaveLength(0);
207
+ expect(runPluginPrefixCheck(r3, RESERVED).violations).toHaveLength(1); // 对 beta 而言这是外来的名字
208
+ });
209
+ });
210
+ });
211
+ });
212
+ });
213
+ it("豁免注释只盖 ①②(样式选择),盖不住 ③④(身份/清单)", () => {
214
+ // ① 被文件级 disable 盖住
215
+ withPlugin({ css: "/* eslint-disable linkdesk/no-reserved-class-name -- 知情绕行 */\n.notmine-panel { color: red; }\n" }, (root) => {
216
+ const r = runPluginPrefixCheck(root, RESERVED);
217
+ expect(r.violations).toHaveLength(0);
218
+ expect(r.classes).toHaveLength(0); // 清单里也不出现(与腿同口径)
219
+ });
220
+ // ④ 盖不住:plugin.json 缺失 = 工程根问题,样式表里写什么注释都没用
221
+ withPlugin({ manifest: null }, (root) => {
222
+ writeFileSync(join(root, "src", "styles", "App.css"), "/* eslint-disable linkdesk/no-reserved-class-name -- 想绕过去 */\n.x { color: red; }\n", "utf8");
223
+ const r = runPluginPrefixCheck(root, RESERVED);
224
+ expect(r.violations).toHaveLength(1);
225
+ expect(r.violations[0].file).toBe("plugin.json");
226
+ });
227
+ });
228
+ });
229
+ //# sourceMappingURL=plugin-prefix.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-prefix.test.js","sourceRoot":"","sources":["../../../src/eslint/checks/plugin-prefix.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=reserved-classes.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reserved-classes.test.d.ts","sourceRoot":"","sources":["../../../src/eslint/checks/reserved-classes.test.ts"],"names":[],"mappings":""}