@linkdesk/plugin-sdk 0.1.31 → 0.1.32
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/dist/eslint/checks/appearance-ownership.d.ts +91 -0
- package/dist/eslint/checks/appearance-ownership.d.ts.map +1 -0
- package/dist/eslint/checks/appearance-ownership.js +314 -0
- package/dist/eslint/checks/appearance-ownership.js.map +1 -0
- package/dist/eslint/checks/command-ownership.d.ts +23 -4
- package/dist/eslint/checks/command-ownership.d.ts.map +1 -1
- package/dist/eslint/checks/command-ownership.js +18 -2
- package/dist/eslint/checks/command-ownership.js.map +1 -1
- package/dist/eslint/checks/disable.d.ts +5 -0
- package/dist/eslint/checks/disable.d.ts.map +1 -1
- package/dist/eslint/checks/disable.js +5 -0
- package/dist/eslint/checks/disable.js.map +1 -1
- package/dist/eslint/index.d.ts +14 -3
- package/dist/eslint/index.d.ts.map +1 -1
- package/dist/eslint/index.js +13 -3
- package/dist/eslint/index.js.map +1 -1
- package/dist/eslint/lint.d.ts +22 -0
- package/dist/eslint/lint.d.ts.map +1 -1
- package/dist/eslint/lint.js +61 -3
- package/dist/eslint/lint.js.map +1 -1
- package/package.json +1 -1
- package/schemas/host-reserved.json +15 -1
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { type PluginIdSource } from "./plugin-prefix.js";
|
|
2
|
+
import { manifestIdLine, type HostReservedNames } from "./command-ownership.js";
|
|
3
|
+
import { type CheckViolation } from "./scan.js";
|
|
4
|
+
/** 判据命中的三种形态(红 = 占宿主兜底面;黄 = 不带本仓归属 / 同插件跨配方重复配色) */
|
|
5
|
+
export type AppearanceIdCode = "host-reserved" | "no-plugin-prefix" | "same-plugin-colorway";
|
|
6
|
+
/**
|
|
7
|
+
* 外观 id 的**空间**——判据按空间比,**永不跨空间**(两个名字空间不可合栏,见文件头判据②)。
|
|
8
|
+
* · `recipe` 配方 id(`app.theme` 取值空间)
|
|
9
|
+
* · `colorway` 配色变体 id(`app.themeColor` / colors 域来源取值空间)
|
|
10
|
+
* · `iconTheme` 图标主题 id(`app.iconTheme` 取值空间)
|
|
11
|
+
* · `sharedIcon` 共享图标 id(`contributes.icons` 的键)
|
|
12
|
+
* · `sentinel` 外观哨兵值(壳的取值约定;插件无声明通道 ⇒ 恒空转)
|
|
13
|
+
*/
|
|
14
|
+
export type AppearanceIdSpace = "recipe" | "colorway" | "iconTheme" | "sharedIcon" | "sentinel";
|
|
15
|
+
/** 扫描面:声明面(plugin.json)/主题文件面(themes/*.json) */
|
|
16
|
+
export type AppearanceIdFace = "declared" | "themeFile";
|
|
17
|
+
/** 一处不合规站点(探针与腿共用同一份数据) */
|
|
18
|
+
export interface AppearanceIdSite {
|
|
19
|
+
face: AppearanceIdFace;
|
|
20
|
+
/** 工程相对路径(正斜杠) */
|
|
21
|
+
file: string;
|
|
22
|
+
line: number;
|
|
23
|
+
id: string;
|
|
24
|
+
space: AppearanceIdSpace;
|
|
25
|
+
code: AppearanceIdCode;
|
|
26
|
+
/** 应改成什么:**只换第一段**(`<pluginId>.` + 原 id 第一段之后的全部)——词干零变化 */
|
|
27
|
+
suggested: string;
|
|
28
|
+
/** code = host-reserved 时:撞上的那条宿主兜底 id */
|
|
29
|
+
reserved?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface AppearanceOwnershipReport {
|
|
32
|
+
root: string;
|
|
33
|
+
pluginId: string | null;
|
|
34
|
+
pluginIdSource: PluginIdSource | null;
|
|
35
|
+
pluginIdNote: string | null;
|
|
36
|
+
/** fail-closed:非 null ⇒ 本腿报红(拿不到身份就无从判归属) */
|
|
37
|
+
error: string | null;
|
|
38
|
+
/** 🔴 必须改的(进腿报点):占用宿主保留面 */
|
|
39
|
+
red: AppearanceIdSite[];
|
|
40
|
+
/** 🟡 建议改的(只打印,不拦):不带本仓归属 / 同插件跨配方重复配色 */
|
|
41
|
+
yellow: AppearanceIdSite[];
|
|
42
|
+
/** 各面的**全部** id(合规 + 不合规,按出现顺序去重)——探针的读数面(口径:名数,非站点数) */
|
|
43
|
+
declaredRecipeIds: string[];
|
|
44
|
+
declaredIconThemeIds: string[];
|
|
45
|
+
declaredSharedIconIds: string[];
|
|
46
|
+
themeFileRecipeIds: string[];
|
|
47
|
+
themeFileColorwayIds: string[];
|
|
48
|
+
/** 主题文件读不出来的个数(不是判据——是"这一面扫了个空"的报警器,必须让作者看见) */
|
|
49
|
+
themeFilesUnparsed: number;
|
|
50
|
+
/** 账的加载实况(账没读到 ⇒ 判据② 空转,报告里必须能看出来) */
|
|
51
|
+
hostLedger: {
|
|
52
|
+
file: string;
|
|
53
|
+
found: boolean;
|
|
54
|
+
appearanceRecipeIds: number;
|
|
55
|
+
appearanceColorwayIds: number;
|
|
56
|
+
appearanceIconThemeIds: number;
|
|
57
|
+
appearanceSentinels: number;
|
|
58
|
+
appearanceIdGrants: number;
|
|
59
|
+
};
|
|
60
|
+
/** 腿报点 = fail-closed + 全部红 */
|
|
61
|
+
violations: CheckViolation[];
|
|
62
|
+
/** 黄灯建议(`lint.ts` 打印用;**不进** `LintLeg.violations` ⇒ 不拦 CI) */
|
|
63
|
+
advisories: CheckViolation[];
|
|
64
|
+
}
|
|
65
|
+
/** 账里该空间的兜底 id 栏——**按空间取**(⛔ 永不跨空间:两个名字空间合栏 = 假红,见文件头判据②) */
|
|
66
|
+
export declare function reservedIdsForSpace(space: AppearanceIdSpace, reserved: HostReservedNames): string[];
|
|
67
|
+
/** 该 id 的**证照**持有者(账 `appearanceIdGrants`)——🔴 **按 id 记**,不是白名单(新插件永远不在表里) */
|
|
68
|
+
export declare function grantHoldersFor(id: string, reserved: HostReservedNames): string[];
|
|
69
|
+
/**
|
|
70
|
+
* 一个外观 id 的裁决(纯函数——单测与探针共用,别在别处再写一份判据)。
|
|
71
|
+
*
|
|
72
|
+
* 🔴 判据顺序 = **先②后①**:占宿主兜底面是红,能同时命中「不带前缀」的那一半不该把红降级成黄。
|
|
73
|
+
* 🔴 判据① 对 `iconTheme` 空间**不判**(任务书 §二.2 ⑦:本轮不改名——改名 = 设置页可见文字变化)。
|
|
74
|
+
*/
|
|
75
|
+
export declare function judgeAppearanceId(id: string, space: AppearanceIdSpace, pluginId: string, reserved: HostReservedNames): {
|
|
76
|
+
code: AppearanceIdCode;
|
|
77
|
+
suggested: string;
|
|
78
|
+
reserved?: string;
|
|
79
|
+
} | null;
|
|
80
|
+
/** theme JSON / 清单里 `"id": "<value>"` 的行号(1-based;找不到 ⇒ 1,不许当成「不存在」)——**复用命令腿那一份**(同一种 JSON 读取,⛔ 两条腿各写一份 = 迟早漂) */
|
|
81
|
+
export declare const themeIdLine: typeof manifestIdLine;
|
|
82
|
+
/** 读 theme JSON(含容错的 JSONC 剥注释 + 去尾逗号;读不出 ⇒ null,由调用方计入 `themeFilesUnparsed`) */
|
|
83
|
+
export declare function readThemeJson(abs: string): {
|
|
84
|
+
id?: string;
|
|
85
|
+
colorwayIds: string[];
|
|
86
|
+
} | null;
|
|
87
|
+
/**
|
|
88
|
+
* 跑本仓外观 id 归属判据。返回结构化报告(探针用)+ 腿报点(`lint.ts` 用)——**同一份实现**。
|
|
89
|
+
*/
|
|
90
|
+
export declare function runAppearanceOwnershipCheck(root: string, reserved?: HostReservedNames, reservedFile?: string): AppearanceOwnershipReport;
|
|
91
|
+
//# sourceMappingURL=appearance-ownership.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appearance-ownership.d.ts","sourceRoot":"","sources":["../../../src/eslint/checks/appearance-ownership.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* check-appearance-ownership 腿·**外观族 id 归属判据**(E6#111f · 轮次 1.36)。
|
|
3
|
+
*
|
|
4
|
+
* ── 为什么(本件立项的那条轴)──
|
|
5
|
+
* 外观 id(配方 / 配色 / 图标主题 / 共享图标)是**全局名册的键**:配方 id 进 `app.theme` 取值空间、
|
|
6
|
+
* 配色 id 进 `app.themeColor` 取值空间,两者都由**壳的能力面**消费(主题卡片、配色下拉、图标主题选择器)。
|
|
7
|
+
* 不带本仓归属的 id ⇒ 两个插件可以声明**同一个名字**(今天后注册者**静默**覆盖 ⇒ 有一个永远不生效),
|
|
8
|
+
* 或者插件占**宿主兜底**的名字(`dark` / `light` / `dark-fallback` / `default`)⇒ 顶替宿主的保底面。
|
|
9
|
+
*
|
|
10
|
+
* ── 判据(与壳仓 `scripts/gen-host-reserved.mjs` 的账同源)──
|
|
11
|
+
* ① **本仓前缀**(🟡 黄):**新**声明的外观 id 第一段应是本仓 `pluginId`(`<pluginId>.<名字>`,只换第一段、词干零变化)。
|
|
12
|
+
* ⚠️ ★**回退条件**:1.36 任务书 §二.2 把它定为红**但附回退条件**——「若本格落地时判定存量改名不执行
|
|
13
|
+
* (例如 1.42 改名轮被砍),本判据**必须**回退到黄」。本格落地时:存量 25 条改名**判给 1.47**(不是本格执行)
|
|
14
|
+
* ⇒ 照轴上的**排序纪律**(1.32/1.34/1.36/1.38 的判据先以「黄灯 + 账」落地,**1.49 才收紧为红**)
|
|
15
|
+
* ——本判据在本格是**黄**,进 `advisories` 只打印不拦。
|
|
16
|
+
* 🔴 例外:**图标主题 id 不判①**(任务书 §二.2 ⑦:本轮不改名——改名会让设置页可见文字变化,
|
|
17
|
+
* 违「操作体验零变化」上位约束)⇒ 只判②。这一格不是漏了,是**判据表里"⚪不判"那一行的落地**。
|
|
18
|
+
* 🔴 **第二条同类例外(跑官方 18 仓实测抓到的缺陷)**:**宿主兜底 id 本身不判①**——它在账的**本空间**栏内,
|
|
19
|
+
* 要么已判红,要么你就是**持证照的实现者**。对后者建议 `<pluginId>.light` = 让官方实现者去改宿主的兜底名
|
|
20
|
+
* ⇒ **断掉「保底 → 官方实现」接替链**(本轴硬禁区),而且那条建议**永远修不得**。
|
|
21
|
+
* 实测读数(修前 / 修后):`theme-defaults` 报 **4 条黄 → 1 条黄**——被除掉的三条是 `light` 配方×2
|
|
22
|
+
* + `light` 配色(**修不得的建议**);留下的一条是配色 `dark`,它**是** `theme-defaults` 自己的配色变体
|
|
23
|
+
* (不在任何兜底栏内)⇒ 该改名,与 1.35 §13 的 16 条配色改名表一致。
|
|
24
|
+
* ② **宿主保留面**(🔴 红):声明 id ∈ 账(包内 `schemas/host-reserved.json`)**对应空间**那一栏,
|
|
25
|
+
* 且声明者**不在** `appearanceIdGrants[id]`(证照)里 ⇒ 占用宿主兜底面。**按空间比、绝不跨空间**:
|
|
26
|
+
* 配方 id 与配色 id 是**两个名字空间**(`mint-soda` 同时是两者)——合栏比会把官方 `theme-defaults`
|
|
27
|
+
* 的配色 `dark` 判成顶替配方 `dark`(**假红**;而它恰恰是宿主亮兜底的**官方实现者**,有 `light` 证照)。
|
|
28
|
+
* ③ **同插件跨配方同配色 id**(🟡 黄 + 登记):同一插件的两个配方声明同一个配色 id
|
|
29
|
+
* (壳侧 `theme.ts:92` 的契约是「配色变体 id 全局唯一」;跨配方重复今天表现为壳 UI 的 React key 碰撞)。
|
|
30
|
+
*
|
|
31
|
+
* ── 扫描面(两面)──
|
|
32
|
+
* · **声明面** `declared` = `plugin.json`:`contributes.themes[].id`(配方)/`contributes.iconThemes[].id`
|
|
33
|
+
* (图标主题)/`contributes.icons` 的键(共享图标);
|
|
34
|
+
* · **主题文件面** `themeFile` = 仓内 `themes/*.json`:顶层 `id`(配方)+ `colorways[].id`(配色)。
|
|
35
|
+
* 🔴 配色 id **只在这里出现**(plugin.json 不声明配色)——少了这一面,判据②对配色空间就是瞎子。
|
|
36
|
+
* · 哨兵空间(`followTheme`)**恒空转**:插件没有声明哨兵的通道(它是壳的取值约定,不是 id)。
|
|
37
|
+
*
|
|
38
|
+
* ── 🔴 与运行时同源 ──
|
|
39
|
+
* 壳运行时(`src/core/registry/appearance/appearanceOwnership.ts`)对**同样的三条分支**做仲裁:
|
|
40
|
+
* 判据② 命中在壳里是**当场拒注册 + console.error**;本腿是**提前在作者仓里把同一件事报出来**
|
|
41
|
+
* (作者不必等装上壳才发现自己的 id 被拒)。判据①③ 运行时不管(存量 25 条还在,运行时拒前缀不合规的 id
|
|
42
|
+
* 会把存量插件当场弄坏)⇒ 只在这里、且只是黄。
|
|
43
|
+
*
|
|
44
|
+
* 知情绕行 = 标准 disable 注释(`CHECK_IDS.appearanceOwnership`)。⚠️ **fail-closed 不参与豁免**:
|
|
45
|
+
* 拿不到 `pluginId` 说的不是「你的 id 怎么写」,而是「你的身份读不到」——那是工程根的问题。
|
|
46
|
+
*/
|
|
47
|
+
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
48
|
+
import { join, resolve } from "node:path";
|
|
49
|
+
import { resolvePluginIdForCss } from "./plugin-prefix.js";
|
|
50
|
+
import { HOST_RESERVED_FILE, loadHostReserved, manifestIdLine } from "./command-ownership.js";
|
|
51
|
+
import { isTestOrMockRel, relPath } from "./scan.js";
|
|
52
|
+
import { buildDisableIndex, isDisabled, CHECK_IDS } from "./disable.js";
|
|
53
|
+
/** 账里该空间的兜底 id 栏——**按空间取**(⛔ 永不跨空间:两个名字空间合栏 = 假红,见文件头判据②) */
|
|
54
|
+
export function reservedIdsForSpace(space, reserved) {
|
|
55
|
+
switch (space) {
|
|
56
|
+
case "recipe": return reserved.appearanceRecipeIds;
|
|
57
|
+
case "colorway": return reserved.appearanceColorwayIds;
|
|
58
|
+
case "iconTheme": return reserved.appearanceIconThemeIds;
|
|
59
|
+
case "sharedIcon": return []; // 宿主没有兜底共享图标(账里没有这一栏)——本空间只剩"跨插件同 id"那条判据
|
|
60
|
+
case "sentinel": return reserved.appearanceSentinels;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/** 该 id 的**证照**持有者(账 `appearanceIdGrants`)——🔴 **按 id 记**,不是白名单(新插件永远不在表里) */
|
|
64
|
+
export function grantHoldersFor(id, reserved) {
|
|
65
|
+
return reserved.appearanceIdGrants[id] ?? [];
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* 一个外观 id 的裁决(纯函数——单测与探针共用,别在别处再写一份判据)。
|
|
69
|
+
*
|
|
70
|
+
* 🔴 判据顺序 = **先②后①**:占宿主兜底面是红,能同时命中「不带前缀」的那一半不该把红降级成黄。
|
|
71
|
+
* 🔴 判据① 对 `iconTheme` 空间**不判**(任务书 §二.2 ⑦:本轮不改名——改名 = 设置页可见文字变化)。
|
|
72
|
+
*/
|
|
73
|
+
export function judgeAppearanceId(id, space, pluginId, reserved) {
|
|
74
|
+
const dot = id.indexOf(".");
|
|
75
|
+
const suggested = `${pluginId}.${dot > 0 ? id.slice(dot + 1) : id}`;
|
|
76
|
+
// ② 宿主保留面(**按空间比全等**——保留面是一张逐个列出的 id 清单,不是前缀面)
|
|
77
|
+
if (reservedIdsForSpace(space, reserved).includes(id) && !grantHoldersFor(id, reserved).includes(pluginId)) {
|
|
78
|
+
return { code: "host-reserved", suggested, reserved: id };
|
|
79
|
+
}
|
|
80
|
+
// ① 本仓前缀(🔴 iconTheme 不判——见文件头;sentinel 无声明通道,也不判)
|
|
81
|
+
if (space === "recipe" || space === "colorway" || space === "sharedIcon") {
|
|
82
|
+
// 🔴 **宿主兜底 id 本身不判①**(跑官方 18 仓实测抓到的缺陷,见文件头):它在**本空间**账内 ⇒
|
|
83
|
+
// 要么上面已判红(无证照),要么你是**持证照的实现者**(`light` ⇐ theme-defaults)。给后者建议
|
|
84
|
+
// `<pluginId>.light` = 让官方实现者去改宿主兜底的名字 ⇒ **断掉「保底 → 官方实现」接替链**
|
|
85
|
+
// (本轴硬禁区),且那条建议**永远修不得** ⇒ 报它 = 报一个不允许修的洞(与 iconTheme 不判①同理)。
|
|
86
|
+
if (!reservedIdsForSpace(space, reserved).includes(id) && !id.startsWith(`${pluginId}.`)) {
|
|
87
|
+
return { code: "no-plugin-prefix", suggested };
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
/** theme JSON / 清单里 `"id": "<value>"` 的行号(1-based;找不到 ⇒ 1,不许当成「不存在」)——**复用命令腿那一份**(同一种 JSON 读取,⛔ 两条腿各写一份 = 迟早漂) */
|
|
93
|
+
export const themeIdLine = manifestIdLine;
|
|
94
|
+
/** 读 theme JSON(含容错的 JSONC 剥注释 + 去尾逗号;读不出 ⇒ null,由调用方计入 `themeFilesUnparsed`) */
|
|
95
|
+
export function readThemeJson(abs) {
|
|
96
|
+
let raw;
|
|
97
|
+
try {
|
|
98
|
+
raw = readFileSync(abs, "utf8");
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
try {
|
|
104
|
+
const cleaned = raw
|
|
105
|
+
.replace(/\/\*[\s\S]*?\*\//g, "")
|
|
106
|
+
.replace(/(^|[^:"'\\])\/\/.*$/gm, "$1")
|
|
107
|
+
.replace(/,(\s*[}\]])/g, "$1");
|
|
108
|
+
const data = JSON.parse(cleaned);
|
|
109
|
+
const colorwayIds = Array.isArray(data.colorways)
|
|
110
|
+
? data.colorways
|
|
111
|
+
.map((c) => c?.id)
|
|
112
|
+
.filter((v) => typeof v === "string" && v.length > 0)
|
|
113
|
+
: [];
|
|
114
|
+
return { ...(typeof data.id === "string" && data.id ? { id: data.id } : {}), colorwayIds };
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/** 主题实体文件(仓内 `themes/*.json`,含子目录)
|
|
121
|
+
* ⚠️ `isTestOrMockRel` 只认 `.ts/.tsx/.js/.jsx` **文件名**(`*.test.ts` / `*.fixture.ts`)⇒ 对 `.json` **恒 false**;
|
|
122
|
+
* 这里仍然带着它,只为与另几条腿**同形状**(哪天那个共享谓词学会目录级口径,几条腿一起变)。
|
|
123
|
+
* 🔴 也就是说:**主题文件面目前不跳任何文件**——那不是漏了:主题 JSON 是**发布产物**,出现在 `themes/` 下
|
|
124
|
+
* 就是真声明。在这里另写一个「目录级跳过」= 凭空造第二条口径,只会与另几条腿漂。 */
|
|
125
|
+
function themeFilesOf(root) {
|
|
126
|
+
const dir = join(root, "themes");
|
|
127
|
+
if (!existsSync(dir))
|
|
128
|
+
return [];
|
|
129
|
+
const out = [];
|
|
130
|
+
const walk = (cur) => {
|
|
131
|
+
let entries;
|
|
132
|
+
try {
|
|
133
|
+
entries = readdirSync(cur, { withFileTypes: true });
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
for (const e of entries) {
|
|
139
|
+
if (e.name === "node_modules" || e.name === ".git")
|
|
140
|
+
continue;
|
|
141
|
+
const p = join(cur, e.name);
|
|
142
|
+
if (e.isDirectory())
|
|
143
|
+
walk(p);
|
|
144
|
+
else if (e.isFile() && e.name.endsWith(".json") && !isTestOrMockRel(relPath(root, p)))
|
|
145
|
+
out.push(p);
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
walk(dir);
|
|
149
|
+
return out;
|
|
150
|
+
}
|
|
151
|
+
/** `contributes` 里的主题声明/图标主题声明/共享图标键(读不出 ⇒ 都空) */
|
|
152
|
+
function contributeIdsOf(contributes) {
|
|
153
|
+
const idsOf = (node) => Array.isArray(node)
|
|
154
|
+
? node.map((x) => x?.id).filter((v) => typeof v === "string" && v.length > 0)
|
|
155
|
+
: [];
|
|
156
|
+
const icons = contributes?.icons;
|
|
157
|
+
return {
|
|
158
|
+
themeIds: idsOf(contributes?.themes),
|
|
159
|
+
iconThemeIds: idsOf(contributes?.iconThemes),
|
|
160
|
+
sharedIconIds: icons && typeof icons === "object" && !Array.isArray(icons) ? Object.keys(icons) : [],
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* 跑本仓外观 id 归属判据。返回结构化报告(探针用)+ 腿报点(`lint.ts` 用)——**同一份实现**。
|
|
165
|
+
*/
|
|
166
|
+
export function runAppearanceOwnershipCheck(root, reserved = loadHostReserved(), reservedFile = HOST_RESERVED_FILE) {
|
|
167
|
+
const absRoot = resolve(root);
|
|
168
|
+
const manifestPath = join(absRoot, "plugin.json");
|
|
169
|
+
const resolution = resolvePluginIdForCss(absRoot);
|
|
170
|
+
const violations = [];
|
|
171
|
+
const report = {
|
|
172
|
+
root: absRoot,
|
|
173
|
+
pluginId: resolution.pluginId,
|
|
174
|
+
pluginIdSource: resolution.source,
|
|
175
|
+
pluginIdNote: resolution.note,
|
|
176
|
+
error: resolution.error,
|
|
177
|
+
red: [],
|
|
178
|
+
yellow: [],
|
|
179
|
+
declaredRecipeIds: [],
|
|
180
|
+
declaredIconThemeIds: [],
|
|
181
|
+
declaredSharedIconIds: [],
|
|
182
|
+
themeFileRecipeIds: [],
|
|
183
|
+
themeFileColorwayIds: [],
|
|
184
|
+
themeFilesUnparsed: 0,
|
|
185
|
+
hostLedger: {
|
|
186
|
+
file: reservedFile,
|
|
187
|
+
found: existsSync(reservedFile),
|
|
188
|
+
appearanceRecipeIds: reserved.appearanceRecipeIds.length,
|
|
189
|
+
appearanceColorwayIds: reserved.appearanceColorwayIds.length,
|
|
190
|
+
appearanceIconThemeIds: reserved.appearanceIconThemeIds.length,
|
|
191
|
+
appearanceSentinels: reserved.appearanceSentinels.length,
|
|
192
|
+
appearanceIdGrants: Object.keys(reserved.appearanceIdGrants).length,
|
|
193
|
+
},
|
|
194
|
+
violations,
|
|
195
|
+
advisories: [],
|
|
196
|
+
};
|
|
197
|
+
// ── fail-closed(不可豁免:拿不到身份 = 判据①② 全部无从谈起)──
|
|
198
|
+
if (resolution.error || !resolution.pluginId) {
|
|
199
|
+
violations.push({
|
|
200
|
+
file: "plugin.json",
|
|
201
|
+
line: 1,
|
|
202
|
+
message: `拿不到本仓 pluginId:${resolution.error}。外观 id 的归属判据以「本仓身份」为唯一前缀来源——读不到它就无从判` +
|
|
203
|
+
`「这个 id 是不是你的」。在插件工程根修好 plugin.json(或显式声明 pluginId),` +
|
|
204
|
+
`别用 disable 注释绕:这是身份问题,不受豁免注释管辖。`,
|
|
205
|
+
});
|
|
206
|
+
return report;
|
|
207
|
+
}
|
|
208
|
+
const pluginId = resolution.pluginId;
|
|
209
|
+
const prefix = `${pluginId}.`;
|
|
210
|
+
const manifestRaw = existsSync(manifestPath) ? readFileSync(manifestPath, "utf8") : "";
|
|
211
|
+
const manifestDisabled = buildDisableIndex(manifestRaw, [CHECK_IDS.appearanceOwnership]);
|
|
212
|
+
const push = (site, message, disabled) => {
|
|
213
|
+
if (disabled && isDisabled(disabled.idx, disabled.line, CHECK_IDS.appearanceOwnership))
|
|
214
|
+
return;
|
|
215
|
+
if (site.code === "host-reserved") {
|
|
216
|
+
report.red.push(site);
|
|
217
|
+
violations.push({ file: site.file, line: site.line, message });
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
report.yellow.push(site);
|
|
221
|
+
report.advisories.push({ file: site.file, line: site.line, message });
|
|
222
|
+
}
|
|
223
|
+
};
|
|
224
|
+
/** 判据②① 合一的报点(两个面共用) */
|
|
225
|
+
const judgeAndPush = (face, space, id, file, line) => {
|
|
226
|
+
const verdict = judgeAppearanceId(id, space, pluginId, reserved);
|
|
227
|
+
if (!verdict)
|
|
228
|
+
return;
|
|
229
|
+
const where = face === "declared"
|
|
230
|
+
? "声明面(plugin.json contributes)"
|
|
231
|
+
: "主题文件面(themes/*.json)";
|
|
232
|
+
const spaceLabel = space === "recipe" ? "配方 id" : space === "colorway" ? "配色变体 id" : space === "iconTheme" ? "图标主题 id" : "共享图标 id";
|
|
233
|
+
const message = verdict.code === "host-reserved"
|
|
234
|
+
? `${where}:${spaceLabel} "${id}" 属于**宿主的兜底面**(保留清单见包内 schemas/host-reserved.json 的 ` +
|
|
235
|
+
`appearance${space === "recipe" ? "RecipeIds" : space === "colorway" ? "ColorwayIds" : space === "iconTheme" ? "IconThemeIds" : "Sentinels"})。` +
|
|
236
|
+
`占用它 = 顶替宿主保底(壳运行时会**当场拒绝注册**这条 id 并报错)——宿主兜底是"全部主题插件卸载后仍能渲染"的那一层。` +
|
|
237
|
+
`改法:改成 "${verdict.suggested}"(只换第一段、词干零变化);若你确实是宿主兜底的官方实现者,` +
|
|
238
|
+
`需在账的 appearanceIdGrants 里为该 id 记一条证照(一次公共面决策,不是作者自己能加的)。`
|
|
239
|
+
: `${where}:${spaceLabel} "${id}" 不带本仓归属(本插件 pluginId = "${pluginId}",新 ${spaceLabel}应以 "${prefix}" 开头)` +
|
|
240
|
+
`——外观 id 是**全局名册的键**:同名 id 被两个插件声明时只有一个能生效(壳 1.36 起"先者保留",后到者被拒),` +
|
|
241
|
+
`跨插件撞名还会在校验层被记一笔。改成 "${verdict.suggested}"(只换第一段、词干零变化)。`;
|
|
242
|
+
push({ face, file, line, id, space, code: verdict.code, suggested: verdict.suggested, ...(verdict.reserved !== undefined ? { reserved: verdict.reserved } : {}) }, message, { idx: face === "declared" ? manifestDisabled : buildDisableIndex(readFileSync(join(absRoot, file), "utf8"), [CHECK_IDS.appearanceOwnership]), line });
|
|
243
|
+
};
|
|
244
|
+
// ── ①② 声明面:plugin.json(读不出 ⇒ 跳过——plugin-prefix 腿已对同一件事 fail-closed 报红,不重复报)
|
|
245
|
+
if (manifestRaw) {
|
|
246
|
+
let contributes;
|
|
247
|
+
try {
|
|
248
|
+
const manifest = JSON.parse(manifestRaw.replace(/\/\*[\s\S]*?\*\//g, "").replace(/(^|[^:"'\\])\/\/.*$/gm, "$1").replace(/,(\s*[}\]])/g, "$1"));
|
|
249
|
+
contributes = manifest.contributes;
|
|
250
|
+
}
|
|
251
|
+
catch {
|
|
252
|
+
contributes = undefined; // manifest 坏 → 由 plugin-prefix 腿报;这里不重复
|
|
253
|
+
}
|
|
254
|
+
const { themeIds, iconThemeIds, sharedIconIds } = contributeIdsOf(contributes);
|
|
255
|
+
for (const id of themeIds) {
|
|
256
|
+
if (!report.declaredRecipeIds.includes(id))
|
|
257
|
+
report.declaredRecipeIds.push(id);
|
|
258
|
+
judgeAndPush("declared", "recipe", id, "plugin.json", themeIdLine(manifestRaw, id));
|
|
259
|
+
}
|
|
260
|
+
for (const id of iconThemeIds) {
|
|
261
|
+
if (!report.declaredIconThemeIds.includes(id))
|
|
262
|
+
report.declaredIconThemeIds.push(id);
|
|
263
|
+
judgeAndPush("declared", "iconTheme", id, "plugin.json", themeIdLine(manifestRaw, id));
|
|
264
|
+
}
|
|
265
|
+
for (const id of sharedIconIds) {
|
|
266
|
+
if (!report.declaredSharedIconIds.includes(id))
|
|
267
|
+
report.declaredSharedIconIds.push(id);
|
|
268
|
+
judgeAndPush("declared", "sharedIcon", id, "plugin.json", themeIdLine(manifestRaw, id));
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
// ── ①② 主题文件面:themes/*.json(顶层 id = 配方;colorways[].id = 配色)
|
|
272
|
+
// 🔴 配色 id **只在这一面出现**——少了它,判据②对配色空间就是瞎子。
|
|
273
|
+
const colorwayFiles = new Map(); // colorwayId → 声明它的主题文件(判据③用)
|
|
274
|
+
for (const abs of themeFilesOf(absRoot)) {
|
|
275
|
+
const rel = relPath(absRoot, abs);
|
|
276
|
+
const raw = readFileSync(abs, "utf8");
|
|
277
|
+
const data = readThemeJson(abs);
|
|
278
|
+
if (!data) {
|
|
279
|
+
report.themeFilesUnparsed++;
|
|
280
|
+
continue;
|
|
281
|
+
}
|
|
282
|
+
if (data.id) {
|
|
283
|
+
if (!report.themeFileRecipeIds.includes(data.id))
|
|
284
|
+
report.themeFileRecipeIds.push(data.id);
|
|
285
|
+
judgeAndPush("themeFile", "recipe", data.id, rel, themeIdLine(raw, data.id));
|
|
286
|
+
}
|
|
287
|
+
for (const cw of data.colorwayIds) {
|
|
288
|
+
if (!report.themeFileColorwayIds.includes(cw))
|
|
289
|
+
report.themeFileColorwayIds.push(cw);
|
|
290
|
+
judgeAndPush("themeFile", "colorway", cw, rel, themeIdLine(raw, cw));
|
|
291
|
+
const files = colorwayFiles.get(cw) ?? [];
|
|
292
|
+
if (!files.includes(rel))
|
|
293
|
+
files.push(rel);
|
|
294
|
+
colorwayFiles.set(cw, files);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
// ── ③ 同插件跨配方同配色 id(🟡 黄 + 登记):同一配色 id 出现在**两个不同主题文件**里
|
|
298
|
+
// 契约出处 = 壳 `theme.ts` 的「配色变体 id 须全局唯一」(跨配方重复今天表现为壳 UI 的 React key 碰撞)。
|
|
299
|
+
for (const [cw, files] of colorwayFiles) {
|
|
300
|
+
if (files.length < 2)
|
|
301
|
+
continue;
|
|
302
|
+
const verdict = judgeAppearanceId(cw, "colorway", pluginId, reserved);
|
|
303
|
+
// 已被判红/黄的 id 不重复报(红的意思已经说过了——同一处报两次只会稀释信号)
|
|
304
|
+
if (verdict)
|
|
305
|
+
continue;
|
|
306
|
+
for (const file of files.slice(1)) {
|
|
307
|
+
push({ face: "themeFile", file, line: themeIdLine(readFileSync(join(absRoot, file), "utf8"), cw), id: cw, space: "colorway", code: "same-plugin-colorway", suggested: `${prefix}${cw.includes(".") ? cw.slice(cw.indexOf(".") + 1) : cw}` }, `主题文件面:配色变体 id "${cw}" 在本插件被声明了 ${files.length} 次(${files.join(" / ")})` +
|
|
308
|
+
`——壳的契约是「配色变体 id **全局唯一**」(跨配方重复会让壳 UI 的配色下拉出现重复项/React key 碰撞)。` +
|
|
309
|
+
`改法:每个配方用自己的配色 id(形如 "${prefix}<配方名>.<配色名>")。`);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
return report;
|
|
313
|
+
}
|
|
314
|
+
//# sourceMappingURL=appearance-ownership.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appearance-ownership.js","sourceRoot":"","sources":["../../../src/eslint/checks/appearance-ownership.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,10 +6,19 @@ import { type CheckViolation } from "./scan.js";
|
|
|
6
6
|
* Vite 的资产 URL 惯用式,本模块一旦被 Vite 处理会被改写成构建期资产引用(validate.ts 同款坑,E6#91e)。
|
|
7
7
|
*/
|
|
8
8
|
export declare const HOST_RESERVED_FILE: string;
|
|
9
|
-
/** 本腿要读的两栏 + **E6#111d(1.34
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
/** 本腿要读的两栏 + **E6#111d(1.34)补齐配置面两栏** + **E6#111f(1.36)补齐外观族四栏 + 证照**。
|
|
10
|
+
* **同一个 loader、同一份账**——⛔ 不许在各腿里各写一份 loader(两份 = 迟早漂,而这几条判据的输入必须是同一本账)。
|
|
11
|
+
*
|
|
12
|
+
* 逐栏的消费者:
|
|
13
|
+
* · `commandPrefixes` / `protocolIds` → 命令 id 归属腿(本文件);
|
|
14
|
+
* · `configKeys`(配置键归属腿:判「不得占用宿主设置面」)/ `pseudoPluginIds`(宿主伪身份)→ 1.34;
|
|
15
|
+
* · **`appearanceRecipeIds` / `appearanceColorwayIds` / `appearanceIconThemeIds` / `appearanceSentinels`**
|
|
16
|
+
* → 外观族 id 归属腿(1.36)。🔴 **四栏不可合并**——配方 id 与配色 id 是**两个名字空间**
|
|
17
|
+
* (`mint-soda` 同时是两者):合栏比会把官方 `theme-defaults` 的配色 `light` 判成顶替配方 `light`
|
|
18
|
+
* (**假红**,它恰恰是宿主亮兜底的官方实现者)。判据按空间取栏,见 `reservedIdsForSpace`;
|
|
19
|
+
* · **`appearanceIdGrants`**(id → 持证 pluginId 列表)→ 同上。**不是白名单**:它是"某个兜底 id 的官方实现者"
|
|
20
|
+
* 的一次公共面决策(今天只有 `light` → `theme-defaults`),与"跳过判据"的豁免表刻意分开存。
|
|
21
|
+
* · `contextKeys` 由上下文旗子轮次(1.38)消费,此处不读也不删。 */
|
|
13
22
|
export interface HostReservedNames {
|
|
14
23
|
commandPrefixes: string[];
|
|
15
24
|
protocolIds: string[];
|
|
@@ -17,6 +26,16 @@ export interface HostReservedNames {
|
|
|
17
26
|
configKeys: string[];
|
|
18
27
|
/** E6#111d:宿主伪身份(app / appearance / update)——插件用它注册 = 冒充宿主 */
|
|
19
28
|
pseudoPluginIds: string[];
|
|
29
|
+
/** E6#111f:宿主兜底**配方** id(`app.theme` 取值空间) */
|
|
30
|
+
appearanceRecipeIds: string[];
|
|
31
|
+
/** E6#111f:宿主兜底**配色变体** id(`app.themeColor` 取值空间)——🔴 与配方栏各成一格,别混 */
|
|
32
|
+
appearanceColorwayIds: string[];
|
|
33
|
+
/** E6#111f:宿主保底**图标主题** id(`app.iconTheme` 取值空间) */
|
|
34
|
+
appearanceIconThemeIds: string[];
|
|
35
|
+
/** E6#111f:宿主**外观哨兵值**(`followTheme`)——取值约定,不是 id */
|
|
36
|
+
appearanceSentinels: string[];
|
|
37
|
+
/** E6#111f:外观 id 的**证照**(id → 持证的 pluginId 列表)——「这个兜底 id 由谁实现」的公共面决策 */
|
|
38
|
+
appearanceIdGrants: Record<string, string[]>;
|
|
20
39
|
}
|
|
21
40
|
/** 读宿主保留面账;文件缺失 ⇒ 空表 + 报告里打一条 note(静默空表 = 判据②变瞎子,不许不吭声) */
|
|
22
41
|
export declare function loadHostReserved(file?: string): HostReservedNames;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-ownership.d.ts","sourceRoot":"","sources":["../../../src/eslint/checks/command-ownership.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,WAAW,CAAC;AAGnB;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAA0F,CAAC;AAE1H
|
|
1
|
+
{"version":3,"file":"command-ownership.d.ts","sourceRoot":"","sources":["../../../src/eslint/checks/command-ownership.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,14 +43,30 @@ import { buildDisableIndex, isDisabled, CHECK_IDS } from "./disable.js";
|
|
|
43
43
|
export const HOST_RESERVED_FILE = resolve(dirname(fileURLToPath(import.meta.url)), "../../../schemas/host-reserved.json");
|
|
44
44
|
/** 读宿主保留面账;文件缺失 ⇒ 空表 + 报告里打一条 note(静默空表 = 判据②变瞎子,不许不吭声) */
|
|
45
45
|
export function loadHostReserved(file = HOST_RESERVED_FILE) {
|
|
46
|
-
if (!existsSync(file))
|
|
47
|
-
return {
|
|
46
|
+
if (!existsSync(file)) {
|
|
47
|
+
return {
|
|
48
|
+
commandPrefixes: [],
|
|
49
|
+
protocolIds: [],
|
|
50
|
+
configKeys: [],
|
|
51
|
+
pseudoPluginIds: [],
|
|
52
|
+
appearanceRecipeIds: [],
|
|
53
|
+
appearanceColorwayIds: [],
|
|
54
|
+
appearanceIconThemeIds: [],
|
|
55
|
+
appearanceSentinels: [],
|
|
56
|
+
appearanceIdGrants: {},
|
|
57
|
+
};
|
|
58
|
+
}
|
|
48
59
|
const raw = JSON.parse(readFileSync(file, "utf8"));
|
|
49
60
|
return {
|
|
50
61
|
commandPrefixes: raw.commandPrefixes ?? [],
|
|
51
62
|
protocolIds: raw.protocolIds ?? [],
|
|
52
63
|
configKeys: raw.configKeys ?? [],
|
|
53
64
|
pseudoPluginIds: raw.pseudoPluginIds ?? [],
|
|
65
|
+
appearanceRecipeIds: raw.appearanceRecipeIds ?? [],
|
|
66
|
+
appearanceColorwayIds: raw.appearanceColorwayIds ?? [],
|
|
67
|
+
appearanceIconThemeIds: raw.appearanceIconThemeIds ?? [],
|
|
68
|
+
appearanceSentinels: raw.appearanceSentinels ?? [],
|
|
69
|
+
appearanceIdGrants: raw.appearanceIdGrants ?? {},
|
|
54
70
|
};
|
|
55
71
|
}
|
|
56
72
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-ownership.js","sourceRoot":"","sources":["../../../src/eslint/checks/command-ownership.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAuB,MAAM,oBAAoB,CAAC;AAChF,OAAO,EACL,YAAY,EACZ,eAAe,EACf,UAAU,EACV,OAAO,GAER,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAExE;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,qCAAqC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"command-ownership.js","sourceRoot":"","sources":["../../../src/eslint/checks/command-ownership.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,11 @@ export declare const CHECK_IDS: {
|
|
|
22
22
|
readonly commandOwnership: "linkdesk/no-unowned-command-id";
|
|
23
23
|
/** E6#111d(1.34):配置键必须带本仓 `<pluginId>.` 前缀(🟡 黄),且不得占用宿主保留键(🔴 红) */
|
|
24
24
|
readonly configOwnership: "linkdesk/no-unowned-config-key";
|
|
25
|
+
/** E6#111f(1.36):外观族 id(配方 / 配色 / 图标主题 / 共享图标)必须带本仓 `<pluginId>.` 前缀
|
|
26
|
+
* (🟡 黄——★回退条件 + 轴上排序纪律,见 `appearance-ownership.ts` 文件头),
|
|
27
|
+
* 且不得占用宿主兜底外观 id(🔴 红:配方 / 配色 / 图标主题三栏**按空间**比,有证照者除外)。
|
|
28
|
+
* ⚠️ 图标主题 id **不判前缀**(1.36 §二.2 ⑦:本轮不改名——改名 = 设置页可见文字变化)⇒ 这个 id 只覆盖判据②。 */
|
|
29
|
+
readonly appearanceOwnership: "linkdesk/no-unowned-appearance-id";
|
|
25
30
|
};
|
|
26
31
|
export interface DisableIndex {
|
|
27
32
|
/** 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;;
|
|
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"}
|
|
@@ -22,6 +22,11 @@ export const CHECK_IDS = {
|
|
|
22
22
|
commandOwnership: "linkdesk/no-unowned-command-id",
|
|
23
23
|
/** E6#111d(1.34):配置键必须带本仓 `<pluginId>.` 前缀(🟡 黄),且不得占用宿主保留键(🔴 红) */
|
|
24
24
|
configOwnership: "linkdesk/no-unowned-config-key",
|
|
25
|
+
/** E6#111f(1.36):外观族 id(配方 / 配色 / 图标主题 / 共享图标)必须带本仓 `<pluginId>.` 前缀
|
|
26
|
+
* (🟡 黄——★回退条件 + 轴上排序纪律,见 `appearance-ownership.ts` 文件头),
|
|
27
|
+
* 且不得占用宿主兜底外观 id(🔴 红:配方 / 配色 / 图标主题三栏**按空间**比,有证照者除外)。
|
|
28
|
+
* ⚠️ 图标主题 id **不判前缀**(1.36 §二.2 ⑦:本轮不改名——改名 = 设置页可见文字变化)⇒ 这个 id 只覆盖判据②。 */
|
|
29
|
+
appearanceOwnership: "linkdesk/no-unowned-appearance-id",
|
|
25
30
|
};
|
|
26
31
|
/** 单遍注释 tokenizer:产出全部 // 行注释与 /* 块注释(块注释可跨行)。 */
|
|
27
32
|
function tokenizeComments(source) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disable.js","sourceRoot":"","sources":["../../../src/eslint/checks/disable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,WAAW,EAAE,2BAA2B;IACxC,SAAS,EAAE,iCAAiC;IAC5C,WAAW,EAAE,iCAAiC;IAC9C,YAAY,EAAE,iCAAiC;IAC/C,oEAAoE;IACpE,gBAAgB,EAAE,gCAAgC;IAClD,qEAAqE;IACrE,eAAe,EAAE,gCAAgC;
|
|
1
|
+
{"version":3,"file":"disable.js","sourceRoot":"","sources":["../../../src/eslint/checks/disable.ts"],"names":[],"mappings":"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"}
|
package/dist/eslint/index.d.ts
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
* "lint": "linkdesk-plugin-sdk lint" // 两条腿全跑 + 打印报告(bin)
|
|
6
6
|
* // 或编程:linkdeskPluginLintConfig() 展开进作者自配 eslint.config.js
|
|
7
7
|
*
|
|
8
|
-
* 全量门禁 = eslint 规则腿 +
|
|
9
|
-
* 见 src/eslint/rules.ts
|
|
10
|
-
* bin lint
|
|
8
|
+
* 全量门禁 = eslint 规则腿 + **七条** check 扫描腿(lint.ts 编排)。规则 id 与 disable 注释格式
|
|
9
|
+
* 见 src/eslint/rules.ts 头注(双源注记)。除下面这组**审计入口**外不暴露内部 check 函数——
|
|
10
|
+
* bin lint 已聚合。(审计入口逐个带「不是第二条判据路径」的注记——腿用的就是同一个函数。)
|
|
11
11
|
*
|
|
12
12
|
* 🔴 E6#109h-b①:`runPluginPrefixCheck` 是**唯一一个对内 check 的具名导出**,专供壳仓只读审计工具
|
|
13
13
|
* `scripts/plugin-css-prefix-audit.mjs`(改名轮 ③–⑦ 生成「旧名 → 新名」映射、⑧ 全量复核)。
|
|
@@ -46,4 +46,15 @@ export type { CommandOwnershipReport, CommandIdSite, CommandIdCode, CommandIdFac
|
|
|
46
46
|
*/
|
|
47
47
|
export { runConfigOwnershipCheck, judgeConfigKey, judgeRegisterIdentity, manifestKeyLine } from "./checks/config-ownership.js";
|
|
48
48
|
export type { ConfigOwnershipReport, ConfigKeySite, ConfigKeyCode, ConfigKeyFace } from "./checks/config-ownership.js";
|
|
49
|
+
/**
|
|
50
|
+
* 🔴 E6#111f(1.36):同一纪律再加一个 —— `runAppearanceOwnershipCheck`(外观族 id 归属判据)。
|
|
51
|
+
* 壳仓只读探针 `scripts/audit-nonnaming.mjs` 用它出外观族读数;**同样不是第二条判据路径**
|
|
52
|
+
* (`lint.ts` 的第七条腿用的就是它——同一份实现,改一处两边一起变)。
|
|
53
|
+
* 分级与配置腿同形:判据② 占宿主兜底外观 id = 红(进腿报点);判据① 新 id 不带本仓前缀 = 黄
|
|
54
|
+
* (`appearanceAdvisories`,只打印)——★回退条件 + 排序纪律,见该文件头。
|
|
55
|
+
* ⚠️ 五空间的**空间参数**是判据的一部分(`recipe` / `colorway` / `iconTheme` / `sharedIcon` / `sentinel`):
|
|
56
|
+
* 跨空间比 = 假红(配方 `light` vs 配色 `light`),判据一律**按空间**取账栏,见 `reservedIdsForSpace`。
|
|
57
|
+
*/
|
|
58
|
+
export { runAppearanceOwnershipCheck, judgeAppearanceId, reservedIdsForSpace, grantHoldersFor, readThemeJson, themeIdLine, } from "./checks/appearance-ownership.js";
|
|
59
|
+
export type { AppearanceOwnershipReport, AppearanceIdSite, AppearanceIdCode, AppearanceIdSpace, AppearanceIdFace, } from "./checks/appearance-ownership.js";
|
|
49
60
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eslint/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAClE,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACxF,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACpH,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACpF,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACvG,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAExG;;;;;GAKG;AACH,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC3G,YAAY,EACV,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,aAAa,EACb,iBAAiB,GAClB,MAAM,+BAA+B,CAAC;AAEvC;;;;;;GAMG;AACH,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/H,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eslint/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAClE,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACxF,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACpH,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACpF,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACvG,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAExG;;;;;GAKG;AACH,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC3G,YAAY,EACV,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,aAAa,EACb,iBAAiB,GAClB,MAAM,+BAA+B,CAAC;AAEvC;;;;;;GAMG;AACH,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/H,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAEvH;;;;;;;;GAQG;AACH,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,WAAW,GACZ,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,yBAAyB,EACzB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,kCAAkC,CAAC"}
|
package/dist/eslint/index.js
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
* "lint": "linkdesk-plugin-sdk lint" // 两条腿全跑 + 打印报告(bin)
|
|
6
6
|
* // 或编程:linkdeskPluginLintConfig() 展开进作者自配 eslint.config.js
|
|
7
7
|
*
|
|
8
|
-
* 全量门禁 = eslint 规则腿 +
|
|
9
|
-
* 见 src/eslint/rules.ts
|
|
10
|
-
* bin lint
|
|
8
|
+
* 全量门禁 = eslint 规则腿 + **七条** check 扫描腿(lint.ts 编排)。规则 id 与 disable 注释格式
|
|
9
|
+
* 见 src/eslint/rules.ts 头注(双源注记)。除下面这组**审计入口**外不暴露内部 check 函数——
|
|
10
|
+
* bin lint 已聚合。(审计入口逐个带「不是第二条判据路径」的注记——腿用的就是同一个函数。)
|
|
11
11
|
*
|
|
12
12
|
* 🔴 E6#109h-b①:`runPluginPrefixCheck` 是**唯一一个对内 check 的具名导出**,专供壳仓只读审计工具
|
|
13
13
|
* `scripts/plugin-css-prefix-audit.mjs`(改名轮 ③–⑦ 生成「旧名 → 新名」映射、⑧ 全量复核)。
|
|
@@ -39,4 +39,14 @@ export { runCommandOwnershipCheck, judgeCommandId, loadHostReserved } from "./ch
|
|
|
39
39
|
* `loadHostReserved` 沿用上面命令腿那一个(**同一个 loader**——⛔ 不许在配置腿上再写一份)。
|
|
40
40
|
*/
|
|
41
41
|
export { runConfigOwnershipCheck, judgeConfigKey, judgeRegisterIdentity, manifestKeyLine } from "./checks/config-ownership.js";
|
|
42
|
+
/**
|
|
43
|
+
* 🔴 E6#111f(1.36):同一纪律再加一个 —— `runAppearanceOwnershipCheck`(外观族 id 归属判据)。
|
|
44
|
+
* 壳仓只读探针 `scripts/audit-nonnaming.mjs` 用它出外观族读数;**同样不是第二条判据路径**
|
|
45
|
+
* (`lint.ts` 的第七条腿用的就是它——同一份实现,改一处两边一起变)。
|
|
46
|
+
* 分级与配置腿同形:判据② 占宿主兜底外观 id = 红(进腿报点);判据① 新 id 不带本仓前缀 = 黄
|
|
47
|
+
* (`appearanceAdvisories`,只打印)——★回退条件 + 排序纪律,见该文件头。
|
|
48
|
+
* ⚠️ 五空间的**空间参数**是判据的一部分(`recipe` / `colorway` / `iconTheme` / `sharedIcon` / `sentinel`):
|
|
49
|
+
* 跨空间比 = 假红(配方 `light` vs 配色 `light`),判据一律**按空间**取账栏,见 `reservedIdsForSpace`。
|
|
50
|
+
*/
|
|
51
|
+
export { runAppearanceOwnershipCheck, judgeAppearanceId, reservedIdsForSpace, grantHoldersFor, readThemeJson, themeIdLine, } from "./checks/appearance-ownership.js";
|
|
42
52
|
//# sourceMappingURL=index.js.map
|
package/dist/eslint/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eslint/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAElE,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAExF,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEpF,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGvG;;;;;GAKG;AACH,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAS3G;;;;;;GAMG;AACH,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eslint/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAElE,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAExF,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEpF,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGvG;;;;;GAKG;AACH,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAS3G;;;;;;GAMG;AACH,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/H;;;;;;;;GAQG;AACH,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,WAAW,GACZ,MAAM,kCAAkC,CAAC"}
|
package/dist/eslint/lint.d.ts
CHANGED
|
@@ -66,6 +66,28 @@ export interface PluginLintReport {
|
|
|
66
66
|
commandPrefixes: number;
|
|
67
67
|
protocolIds: number;
|
|
68
68
|
} | null;
|
|
69
|
+
/** 🟡 E6#111f(1.36)外观族 id 归属判据的**黄灯建议**(判据①:新外观 id 不带本仓前缀 + 同插件跨配方重复配色)——**只打印、不拦** */
|
|
70
|
+
appearanceAdvisories: CheckViolation[];
|
|
71
|
+
/** 外观族 id 归属判据的计数(四面名数 + 红站点数 + 黄建议数) */
|
|
72
|
+
appearanceOwnershipCounts: {
|
|
73
|
+
declaredRecipe: number;
|
|
74
|
+
declaredIconTheme: number;
|
|
75
|
+
declaredSharedIcon: number;
|
|
76
|
+
themeFileRecipe: number;
|
|
77
|
+
themeFileColorway: number;
|
|
78
|
+
bad: number;
|
|
79
|
+
advisory: number;
|
|
80
|
+
};
|
|
81
|
+
/** 宿主兜底外观 id 四栏 + 证照账的加载实况(账没读到 ⇒ 判据② 空转,必须能看出来) */
|
|
82
|
+
hostAppearanceLedger: {
|
|
83
|
+
file: string;
|
|
84
|
+
found: boolean;
|
|
85
|
+
appearanceRecipeIds: number;
|
|
86
|
+
appearanceColorwayIds: number;
|
|
87
|
+
appearanceIconThemeIds: number;
|
|
88
|
+
appearanceSentinels: number;
|
|
89
|
+
appearanceIdGrants: number;
|
|
90
|
+
} | null;
|
|
69
91
|
}
|
|
70
92
|
export declare function runPluginLint(root: string, options?: PluginLintOptions): Promise<PluginLintReport>;
|
|
71
93
|
/** 打印报告(人机双通道的即时反馈环);返回进程退出码(真 error 才 1,WARN 永不 fail)。 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/eslint/lint.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/eslint/lint.ts"],"names":[],"mappings":"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"}
|
package/dist/eslint/lint.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `runPluginLint()`——`npm run lint` 门禁编排(E6#54d):eslint 规则腿 +
|
|
2
|
+
* `runPluginLint()`——`npm run lint` 门禁编排(E6#54d):eslint 规则腿 + **七条** check 扫描腿双轨(E6#111f/1.36:外观族 id 归属是第七条)。
|
|
3
3
|
*
|
|
4
4
|
* E6#109h-b①:`check-css-namespace` 腿升级为**双判据**——「裸定义类名/关键帧必须以本仓 `<pluginId>-`
|
|
5
5
|
* 开头」(`checks/plugin-prefix.ts`,拍板 Q1=(A),**不需要任何清单**)⊕「不得裸定义宿主保留名」
|
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
* 规则正文见 32 号档 §一(R0–R3);1.25 实测插件侧存量 **0**(18 仓 + 夹具)⇒ 纯预防、零重发成本。
|
|
17
17
|
*
|
|
18
18
|
* 对标壳 check 同款双轨(07 §六·载体双轨):eslint(12 项注册规则,全 WARN)管 ts/tsx;
|
|
19
|
-
* css-hardcode / font-scale / spacing-grid / css-namespace / command-ownership
|
|
19
|
+
* css-hardcode / font-scale / spacing-grid / css-namespace / command-ownership / config-ownership / appearance-ownership
|
|
20
|
+
* 七条移植脚本管整工程(eslint 到不了 .css,
|
|
20
21
|
* ts/tsx 的 rgb()/hsl() 也归 css-hardcode 补)。jscpd = 项目级可选(文档引导,不进编排)。
|
|
21
22
|
*
|
|
22
23
|
* 门禁哲学(07 §六·三档):违规全 WARN **永不 fail build**——本编排按违规数统计并打印
|
|
@@ -36,6 +37,7 @@ import { runTokenScopeCheck } from "./checks/token-scope.js";
|
|
|
36
37
|
import { runSelectorFormCheck } from "./checks/selector-form.js";
|
|
37
38
|
import { runCommandOwnershipCheck } from "./checks/command-ownership.js";
|
|
38
39
|
import { runConfigOwnershipCheck } from "./checks/config-ownership.js";
|
|
40
|
+
import { runAppearanceOwnershipCheck } from "./checks/appearance-ownership.js";
|
|
39
41
|
import {} from "./checks/scan.js";
|
|
40
42
|
/** 示例用的门禁 id(打印知情绕行格式);伪 id 与 check 脚本 CHECK_IDS 同源 */
|
|
41
43
|
const LEG_HINT_ID = "linkdesk/no-hardcoded-hex";
|
|
@@ -131,6 +133,18 @@ export async function runPluginLint(root, options = {}) {
|
|
|
131
133
|
* ⚠️ 与另几条腿**刻意不合并**(同命令腿的理由):本腿的红站点将来要独立收紧/独立统计。
|
|
132
134
|
*/
|
|
133
135
|
const configOwnership = runConfigOwnershipCheck(absRoot);
|
|
136
|
+
/**
|
|
137
|
+
* 🔴 E6#111f(1.36):第七条 check 腿 —— **外观族 id 归属**(`checks/appearance-ownership.ts`)。
|
|
138
|
+
* 两面:声明面(`contributes.themes[].id` / `contributes.iconThemes[].id` / `contributes.icons` 的键)/
|
|
139
|
+
* 主题文件面(`themes/*.json` 的顶层 `id` + `colorways[].id`——🔴 配色 id **只在这一面出现**)。
|
|
140
|
+
* 🔴 **分级与配置腿同形**:判据②(占用宿主兜底外观 id,按空间比、证照者除外)=**红**,进腿报点;
|
|
141
|
+
* 判据①(新外观 id 不带本仓前缀)=**黄**,进 `appearanceAdvisories` 只打印不拦
|
|
142
|
+
* ——出处 = 1.36 任务书 §二.2 的 ★**回退条件**(存量 25 条改名被判给 1.47 轮,不在本格执行 ⇒ 判据必须回退到黄)
|
|
143
|
+
* + 轴上**排序纪律**(1.32/1.34/1.36/1.38 先以「黄灯 + 账」落地,**1.49 才收紧为红**)。
|
|
144
|
+
* ⚠️ 与另几条腿**刻意不合并**(同命令腿/配置腿的理由):本腿的红站点将来要独立收紧/独立统计;
|
|
145
|
+
* 且它的输入是**外观四栏**,与命令腿读的前缀栏、配置腿读的 configKeys 栏各不相干。
|
|
146
|
+
*/
|
|
147
|
+
const appearanceOwnership = runAppearanceOwnershipCheck(absRoot);
|
|
134
148
|
const prefixKeys = new Set(prefix.violations.map((v) => `${v.file}:${v.line}`));
|
|
135
149
|
const tokenKeys = new Set(tokenScope.violations.map((v) => `${v.file}:${v.line}`));
|
|
136
150
|
const formKeys = new Set(selectorForm.violations.map((v) => `${v.file}:${v.line}`));
|
|
@@ -159,8 +173,19 @@ export async function runPluginLint(root, options = {}) {
|
|
|
159
173
|
label: "check-config-ownership",
|
|
160
174
|
violations: configOwnership.violations,
|
|
161
175
|
},
|
|
176
|
+
{
|
|
177
|
+
id: "linkdesk/no-unowned-appearance-id(外观族 id 不得占用宿主兜底外观 id;新 id 应带本仓 <pluginId>. 前缀)",
|
|
178
|
+
label: "check-appearance-ownership",
|
|
179
|
+
violations: appearanceOwnership.violations,
|
|
180
|
+
},
|
|
162
181
|
];
|
|
163
|
-
const totalCheckViolations = css.length +
|
|
182
|
+
const totalCheckViolations = css.length +
|
|
183
|
+
font.length +
|
|
184
|
+
spacing.length +
|
|
185
|
+
namespace.length +
|
|
186
|
+
commandOwnership.violations.length +
|
|
187
|
+
configOwnership.violations.length +
|
|
188
|
+
appearanceOwnership.violations.length;
|
|
164
189
|
return {
|
|
165
190
|
files: results.length,
|
|
166
191
|
eslintRows,
|
|
@@ -188,6 +213,17 @@ export async function runPluginLint(root, options = {}) {
|
|
|
188
213
|
advisory: configOwnership.yellow.length,
|
|
189
214
|
},
|
|
190
215
|
hostConfigLedger: configOwnership.hostLedger,
|
|
216
|
+
appearanceAdvisories: appearanceOwnership.advisories,
|
|
217
|
+
appearanceOwnershipCounts: {
|
|
218
|
+
declaredRecipe: appearanceOwnership.declaredRecipeIds.length,
|
|
219
|
+
declaredIconTheme: appearanceOwnership.declaredIconThemeIds.length,
|
|
220
|
+
declaredSharedIcon: appearanceOwnership.declaredSharedIconIds.length,
|
|
221
|
+
themeFileRecipe: appearanceOwnership.themeFileRecipeIds.length,
|
|
222
|
+
themeFileColorway: appearanceOwnership.themeFileColorwayIds.length,
|
|
223
|
+
bad: appearanceOwnership.red.length,
|
|
224
|
+
advisory: appearanceOwnership.yellow.length,
|
|
225
|
+
},
|
|
226
|
+
hostAppearanceLedger: appearanceOwnership.hostLedger,
|
|
191
227
|
};
|
|
192
228
|
}
|
|
193
229
|
/** 打印报告(人机双通道的即时反馈环);返回进程退出码(真 error 才 1,WARN 永不 fail)。 */
|
|
@@ -266,6 +302,28 @@ export function renderPluginLintReport(report) {
|
|
|
266
302
|
lines.push(` 账 configKeys ${report.hostConfigLedger.configKeys} 个 / 伪身份 ${report.hostConfigLedger.pseudoPluginIds} 个` +
|
|
267
303
|
(report.hostConfigLedger.found ? `(${report.hostConfigLedger.file})` : ` ⚠ 账没读到——判据① 本轮**空转**`));
|
|
268
304
|
}
|
|
305
|
+
// 🟡 E6#111f(1.36)外观族 id 归属:黄灯建议(判据①)+ 两面读数 + 四栏账的加载实况
|
|
306
|
+
if (report.appearanceAdvisories.length > 0) {
|
|
307
|
+
lines.push(`\n🟡 check-appearance-ownership(外观族 id 归属 · 1.49 起收紧为红):${report.appearanceAdvisories.length} 处**建议**(不拦 build)——` +
|
|
308
|
+
`配方 / 配色 / 共享图标 id 是**全局名册的键**:同名 id 被两个插件声明时只有一个能生效(壳 1.36 起"先者保留",后到者被拒)。` +
|
|
309
|
+
`改成"<你的 pluginId>.<名字>"(只换第一段、词干零变化)归属才唯一。`);
|
|
310
|
+
for (const v of report.appearanceAdvisories)
|
|
311
|
+
lines.push(` ${v.file}:${v.line} ${v.message}`);
|
|
312
|
+
}
|
|
313
|
+
const ap = report.appearanceOwnershipCounts;
|
|
314
|
+
lines.push(`\n🔴 check-appearance-ownership(外观族 id 归属):` +
|
|
315
|
+
`声明面 配方 ${ap.declaredRecipe} / 图标主题 ${ap.declaredIconTheme} / 共享图标 ${ap.declaredSharedIcon} 名,` +
|
|
316
|
+
`主题文件面 配方 ${ap.themeFileRecipe} / 配色 ${ap.themeFileColorway} 名——` +
|
|
317
|
+
(ap.bad === 0
|
|
318
|
+
? `无占用宿主兜底外观 id 的站点。`
|
|
319
|
+
: `${ap.bad} 处占用**宿主兜底外观 id**(宿主保底主题面,壳运行时会直接拒绝注册这条 id)。`) +
|
|
320
|
+
(ap.advisory > 0 ? `另有 ${ap.advisory} 处前缀建议(见上)。` : ``));
|
|
321
|
+
if (report.hostAppearanceLedger) {
|
|
322
|
+
const hl = report.hostAppearanceLedger;
|
|
323
|
+
lines.push(` 账 兜底配方 ${hl.appearanceRecipeIds} / 兜底配色 ${hl.appearanceColorwayIds} / 保底图标主题 ${hl.appearanceIconThemeIds} / ` +
|
|
324
|
+
`哨兵 ${hl.appearanceSentinels} / 证照 ${hl.appearanceIdGrants} 条` +
|
|
325
|
+
(hl.found ? `(${hl.file})` : ` ⚠ 账没读到——判据② 本轮**空转**`));
|
|
326
|
+
}
|
|
269
327
|
lines.push(`\n门禁 = 警告不是封锁(07 §六·三档):未处理偏离可修可绕——知情绕行写标准注释\n` +
|
|
270
328
|
` // eslint-disable-next-line ${LEG_HINT_ID} -- 理由 (行级)\n` +
|
|
271
329
|
` /* eslint-disable ${LEG_HINT_ID} -- 内容画布 */ (文件级:内容/画布整文件豁免)\n` +
|
package/dist/eslint/lint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/eslint/lint.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/eslint/lint.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.32",
|
|
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",
|
|
@@ -63,11 +63,25 @@
|
|
|
63
63
|
"updateActionable",
|
|
64
64
|
"updateButtonLabel"
|
|
65
65
|
],
|
|
66
|
-
"
|
|
66
|
+
"appearanceRecipeIds": [
|
|
67
67
|
"dark",
|
|
68
|
+
"light"
|
|
69
|
+
],
|
|
70
|
+
"appearanceColorwayIds": [
|
|
68
71
|
"dark-fallback",
|
|
69
72
|
"light"
|
|
70
73
|
],
|
|
74
|
+
"appearanceIconThemeIds": [
|
|
75
|
+
"default"
|
|
76
|
+
],
|
|
77
|
+
"appearanceSentinels": [
|
|
78
|
+
"followTheme"
|
|
79
|
+
],
|
|
80
|
+
"appearanceIdGrants": {
|
|
81
|
+
"light": [
|
|
82
|
+
"theme-defaults"
|
|
83
|
+
]
|
|
84
|
+
},
|
|
71
85
|
"protocolIds": [
|
|
72
86
|
"bracket"
|
|
73
87
|
]
|