@phoenix-wing/kt-codegen 0.4.1 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +49 -5
- package/dist/KtCodegenApply.d.ts +9 -0
- package/dist/KtCodegenApply.d.ts.map +1 -1
- package/dist/KtCodegenApply.js +29 -2
- package/dist/KtCodegenApply.js.map +1 -1
- package/dist/KtCodegenMarker.d.ts +8 -3
- package/dist/KtCodegenMarker.d.ts.map +1 -1
- package/dist/KtCodegenMarker.js +80 -56
- package/dist/KtCodegenMarker.js.map +1 -1
- package/dist/KtCodegenRenderer.d.ts +1 -1
- package/dist/KtCodegenRenderer.d.ts.map +1 -1
- package/dist/KtCodegenRenderer.js +3 -1293
- package/dist/KtCodegenRenderer.js.map +1 -1
- package/dist/api/compatibility.d.ts +21 -0
- package/dist/api/compatibility.d.ts.map +1 -0
- package/dist/api/compatibility.js +43 -0
- package/dist/api/compatibility.js.map +1 -0
- package/dist/api/index.d.ts +1 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +1 -0
- package/dist/api/index.js.map +1 -1
- package/dist/model/diagnostic.d.ts +18 -0
- package/dist/model/diagnostic.d.ts.map +1 -1
- package/dist/model/diagnostic.js.map +1 -1
- package/dist/renderer/caa-command-families.d.ts +4 -0
- package/dist/renderer/caa-command-families.d.ts.map +1 -0
- package/dist/renderer/caa-command-families.js +336 -0
- package/dist/renderer/caa-command-families.js.map +1 -0
- package/dist/renderer/caa-dialog-family.d.ts +5 -0
- package/dist/renderer/caa-dialog-family.d.ts.map +1 -0
- package/dist/renderer/caa-dialog-family.js +323 -0
- package/dist/renderer/caa-dialog-family.js.map +1 -0
- package/dist/renderer/caa-feature-families.d.ts +4 -0
- package/dist/renderer/caa-feature-families.d.ts.map +1 -0
- package/dist/renderer/caa-feature-families.js +250 -0
- package/dist/renderer/caa-feature-families.js.map +1 -0
- package/dist/renderer/caa-renderer.d.ts +6 -0
- package/dist/renderer/caa-renderer.d.ts.map +1 -0
- package/dist/renderer/caa-renderer.js +25 -0
- package/dist/renderer/caa-renderer.js.map +1 -0
- package/dist/renderer/cpp-parameter-family.d.ts +7 -0
- package/dist/renderer/cpp-parameter-family.d.ts.map +1 -0
- package/dist/renderer/cpp-parameter-family.js +77 -0
- package/dist/renderer/cpp-parameter-family.js.map +1 -0
- package/dist/renderer/dialog-support.d.ts +6 -0
- package/dist/renderer/dialog-support.d.ts.map +1 -0
- package/dist/renderer/dialog-support.js +16 -0
- package/dist/renderer/dialog-support.js.map +1 -0
- package/dist/renderer/family-registry.d.ts +28 -0
- package/dist/renderer/family-registry.d.ts.map +1 -0
- package/dist/renderer/family-registry.js +55 -0
- package/dist/renderer/family-registry.js.map +1 -0
- package/dist/renderer/legacy-compatibility.d.ts +16 -0
- package/dist/renderer/legacy-compatibility.d.ts.map +1 -0
- package/dist/renderer/legacy-compatibility.js +77 -0
- package/dist/renderer/legacy-compatibility.js.map +1 -0
- package/dist/renderer/qt-dialog-family.d.ts +7 -0
- package/dist/renderer/qt-dialog-family.d.ts.map +1 -0
- package/dist/renderer/qt-dialog-family.js +231 -0
- package/dist/renderer/qt-dialog-family.js.map +1 -0
- package/dist/table/KtCodegenTable.d.ts +24 -6
- package/dist/table/KtCodegenTable.d.ts.map +1 -1
- package/dist/table/KtCodegenTable.js +141 -203
- package/dist/table/KtCodegenTable.js.map +1 -1
- package/dist/table/KtCodegenTableStyle.d.ts +20 -0
- package/dist/table/KtCodegenTableStyle.d.ts.map +1 -0
- package/dist/table/KtCodegenTableStyle.js +207 -0
- package/dist/table/KtCodegenTableStyle.js.map +1 -0
- package/dist/table/KtCodegenTableViewModel.d.ts +45 -0
- package/dist/table/KtCodegenTableViewModel.d.ts.map +1 -0
- package/dist/table/KtCodegenTableViewModel.js +99 -0
- package/dist/table/KtCodegenTableViewModel.js.map +1 -0
- package/doc/KtCodegenTable/345/270/203/345/261/200/344/270/216/346/212/230/345/217/240/345/245/221/347/272/246.md +106 -0
- package/doc//350/207/252/345/212/250/344/273/243/347/240/201/346/240/207/350/256/260/346/211/253/346/217/217.md +8 -9
- package/package.json +4 -2
- package/tests/fixtures/contracts/apply-projection-v1.json +82 -0
- package/tests/fixtures/contracts/codegen-host-contract-v1.json +280 -0
package/README.md
CHANGED
|
@@ -19,11 +19,15 @@ src/
|
|
|
19
19
|
├── KtCodegenController.ts # 宿主编排
|
|
20
20
|
├── KtCodegenCore.ts # 核心生成算法入口
|
|
21
21
|
├── KtCodegenMarker.ts # 旧自动代码标记构造与只读扫描
|
|
22
|
-
├── KtCodegenRenderer.ts #
|
|
22
|
+
├── KtCodegenRenderer.ts # 稳定 Renderer facade 与公共契约
|
|
23
|
+
├── renderer/ # block family 策略、注册表与 legacy 兼容层
|
|
23
24
|
├── KtCodegenTableCore.ts # 无 DOM 的整表编辑与 checkpoint
|
|
24
25
|
├── KtCodegenTableData.ts # 宿主交换的整表 DTO
|
|
25
26
|
├── KtCodegenTableColumns.ts # 17列描述与字段类型
|
|
26
|
-
└── table/
|
|
27
|
+
└── table/
|
|
28
|
+
├── KtCodegenTableViewModel.ts # 无 DOM 的动作、Combo、列宽与状态投影
|
|
29
|
+
├── KtCodegenTableStyle.ts # pnw 类名、主题 token 与滚动视觉原语
|
|
30
|
+
└── KtCodegenTable.ts # browser-only Web Component
|
|
27
31
|
```
|
|
28
32
|
|
|
29
33
|
规则如下:
|
|
@@ -36,7 +40,18 @@ src/
|
|
|
36
40
|
- `index.ts` 只导出,不放实现;
|
|
37
41
|
- MVC-C 是职责划分,不通过目录层级表达。
|
|
38
42
|
|
|
39
|
-
`api/`、`blocks/`、`legacy/`、`model/`
|
|
43
|
+
`api/`、`blocks/`、`legacy/`、`model/` 放纯函数、旧格式 schema 和公共类型;`renderer/` 是明确的例外,它按 block family 隔离模板策略,根 `KtCodegenRenderer` 只保留公共 facade。
|
|
44
|
+
|
|
45
|
+
## Renderer family 注册表
|
|
46
|
+
|
|
47
|
+
32 个旧 block 已从中心 `if/else` 调度器拆为 10 个具名 family:普通 C++ Parameter、CAA Feature I/O、Catalog、Factory Tree、Dialog、Dialog Field、Command Agent 生命周期、Command Graph/State、Command Action 和 Qt Dialog。结构职责如下:
|
|
48
|
+
|
|
49
|
+
- `family-registry.ts` 只维护 `blockKey → family` 能力映射、artifact 安全区域绑定和待迁移诊断,不含任何 C++/CAA/Qt 模板;
|
|
50
|
+
- `caa-feature-families.ts`、`caa-dialog-family.ts`、`caa-command-families.ts`、`cpp-parameter-family.ts`、`qt-dialog-family.ts` 各自拥有模板和 item 筛选规则;
|
|
51
|
+
- `legacy-compatibility.ts` 统一保留旧 Start/End、Doxygen、EOL 和废弃 block warning 语义;
|
|
52
|
+
- `caa-renderer.ts` 只组合 family,不判断具体 block;根 facade 只创建平台 Renderer。
|
|
53
|
+
|
|
54
|
+
新增或迁移 block 时,应在所属 family 注册并添加独立 golden;不得把模板或 block 分支重新写回 `KtCodegenRenderer.ts`。`renderer-family-registry.test.ts` 会检查重复注册立即失败,并要求全部 32 个 migrated block 恰好归属一个 family。
|
|
40
55
|
|
|
41
56
|
完整的类型、函数、常量和运行时身份映射见[《KtCodegen 命名迁移说明》](doc/KtCodegen命名迁移说明.md)。
|
|
42
57
|
|
|
@@ -48,6 +63,12 @@ src/
|
|
|
48
63
|
|
|
49
64
|
旧 Start/End 文本协议、源码偏移和异常配对规则见[《自动代码标记扫描》](doc/自动代码标记扫描.md)。
|
|
50
65
|
|
|
66
|
+
Apply 默认保持 fail-closed,但允许一种明确的部分成功:当 Plan 的 error 仅为
|
|
67
|
+
`marker.missing-end` / `marker.orphan-end`,Marker 扫描器已经隔离不完整区域,
|
|
68
|
+
且其余 Target、Region 与 Artifact 绑定全部有效时,`ktCodegenProjectApply` 只
|
|
69
|
+
投影这些完整区域。模型、Renderer、Artifact 绑定、指纹、范围或重叠错误仍阻止
|
|
70
|
+
全部写入。宿主可用 `ktCodegenCanApplyValidRegions(plan)` 展示“可部分应用”状态。
|
|
71
|
+
|
|
51
72
|
首组已迁移 Renderer 的逐块行为和 golden 见[《普通 C++ 参数块迁移》](doc/普通C++参数块迁移.md)。
|
|
52
73
|
|
|
53
74
|
CAA 实现类/纯虚接口 Get/Set 差异见[《CAA 接口头文件块迁移》](doc/CAA接口头文件块迁移.md)。
|
|
@@ -186,7 +207,7 @@ classDiagram
|
|
|
186
207
|
KtCodegenOptions ..> KtCodegenItem : UI checks strings
|
|
187
208
|
```
|
|
188
209
|
|
|
189
|
-
图中的关键边界是:`KtCodegenParam` 没有操作方法;Controller 只维护同一个共享实例;Reader 先产生临时数据,读取完整成功后再由 Adapter 用原数组 `splice` 更新共享实例;Marker 只消费 Param 和宿主源码快照,不把文件状态放回数据类;Core 把默认值算法注入 Renderer,避免 Renderer 反向依赖 Core
|
|
210
|
+
图中的关键边界是:`KtCodegenParam` 没有操作方法;Controller 只维护同一个共享实例;Reader 先产生临时数据,读取完整成功后再由 Adapter 用原数组 `splice` 更新共享实例;Marker 只消费 Param 和宿主源码快照,不把文件状态放回数据类;Core 把默认值算法注入 Renderer,避免 Renderer 反向依赖 Core;Renderer facade 再把只读算法交给具名 family,注册表不拥有模板。
|
|
190
211
|
|
|
191
212
|
## Combo 字符串规则
|
|
192
213
|
|
|
@@ -213,20 +234,34 @@ import {
|
|
|
213
234
|
|
|
214
235
|
ktCodegenDefineTableElement();
|
|
215
236
|
const table = document.querySelector<KtCodegenTable>("kt-codegen-table")!;
|
|
237
|
+
table.layout = "page";
|
|
238
|
+
table.collapsible = true;
|
|
216
239
|
table.setData(data);
|
|
217
240
|
|
|
218
241
|
table.addEventListener("kt-codegen-table-change", () => {
|
|
219
242
|
// 宿主自行选择保存、页面隐藏或防抖时机,再整体取出;不需要逐单元格通信。
|
|
220
243
|
const next: KtCodegenTableData = table.getData();
|
|
221
244
|
});
|
|
245
|
+
|
|
246
|
+
table.addEventListener("kt-codegen-table-collapse-change", (event) => {
|
|
247
|
+
// 只响应用户点击;table.collapsed = true 不会回发事件。
|
|
248
|
+
console.log(event.detail.collapsed);
|
|
249
|
+
});
|
|
222
250
|
```
|
|
223
251
|
|
|
224
252
|
- `setData()`/`getData()` 交换带 schema 与 `documentRevision` 的整表 DTO;返回值不暴露组件内部可变数组。
|
|
225
253
|
- Sort、Copy/Paste、Insert、Duplicate、Move、Delete 和列宽自适应属于组件内部操作。
|
|
254
|
+
- 动作可用性、Combo 未知值/空值/分隔项、列宽拟合与状态栏计数由 UI-neutral `KtCodegenTableViewModel.ts` 统一投影;Web Component 只把这些描述装配成 DOM。该文件纳入 pure import graph,不可依赖 DOM、Vue、Node 或宿主 API。
|
|
255
|
+
- Shadow DOM 的 `pnw-kt-codegen-table-*` 类名、VS Code token 回退、工具栏/表格滚动与 sticky 表头由内部 `KtCodegenTableStyle.ts` 单点维护;组件只按 class map 装配。选中行在表格区有焦点时使用 `list.activeSelection*`,焦点移出后切换到 `list.inactiveSelection*`,避免高对比主题继续用 active 背景显示失焦选择。该视觉原语也纳入 pure import graph,但不从 browser 子路径公开导出。
|
|
256
|
+
- `layout="contained"` 是兼容默认值,保留组件高度与内部双向滚动;`layout="page"` 使用自然高度,表格区只保留横向溢出,由 Page shell 负责唯一纵向滚动。空表提示在 page 模式进入文档流,不会被零高度容器裁切。
|
|
257
|
+
- `collapsible` 启用 Header disclosure button,`collapsed` 可由宿主静默反射;只有用户点击会发出 `kt-codegen-table-collapse-change`,程序设置不发 change/dirty/collapse 事件。收起只隐藏 table shell 与 statusbar,全部表格工具仍留在 Header。
|
|
258
|
+
- 本地构建后可用 `test-fixtures/table-runtime.html?layout=page&collapsible` 在浏览器点检真实 Shadow DOM、自然高度、横向滚动、折叠和焦点;追加 `empty`/`collapsed`/`rows=40` 可覆盖空表、初始收起与长表。该夹具不进入 npm `files` 白名单。
|
|
226
259
|
- `kt-codegen-table-change` 只提示“内部数据变化”;宿主决定何时获取整表。`kt-codegen-table-dirty-change` 只在 clean/dirty 跃迁时发出。
|
|
227
260
|
- `configure()` 可替换列描述和 Combo 候选;未知旧值仍显示并保持,不会因渲染被清空。
|
|
228
261
|
- 文件 URI、JSON/CSV、保存冲突、Preflight 编排和 Output/Problems 留在产品宿主;Apply 的纯文本投影、指纹复核和多文件回滚事务复用 `KtCodegenApply`。DeskTools 可直接组合组件或再包一层 Vue wrapper。
|
|
229
262
|
|
|
263
|
+
布局责任、属性反射、事件和无障碍边界见[《KtCodegenTable 布局与折叠契约》](doc/KtCodegenTable布局与折叠契约.md)。
|
|
264
|
+
|
|
230
265
|
## 共享 Apply 与宿主边界
|
|
231
266
|
|
|
232
267
|
`KtCodegenApply.ts` 把原先散落在产品宿主中的无 UI 算法集中为三组 API:
|
|
@@ -237,6 +272,14 @@ table.addEventListener("kt-codegen-table-change", () => {
|
|
|
237
272
|
|
|
238
273
|
Wing 不选择工作区、不弹窗、不发布 Problems、不决定源码编码,也不直接调用文件系统。VS Code/Desk Tools 负责工作区边界、未保存编辑器检查、UTF-8/GBK 编解码、真实文件 Port、Output 文本与诊断定位。这使两个宿主共享同一写回规则,同时保留各自 UI。
|
|
239
274
|
|
|
275
|
+
## 跨宿主契约与 fixtures
|
|
276
|
+
|
|
277
|
+
宿主在解释序列化 Analyze Plan 前必须调用 `ktCodegenCheckPlanCompatibility()`。当前只接受 `kind: "kt.codegen.plan"`、`schemaVersion: 1`;未知未来版本返回 `contract.unsupported-schema-version`,不能由宿主按字段猜测兼容。
|
|
278
|
+
|
|
279
|
+
`@phoenix-wing/kt-codegen/fixtures/codegen-host-contract-v1.json` 是 Analyze、marker、legacy v4 JSON 与 17 列 CSV 的联合 golden;它冻结参数归一化、Marker 字节偏移、Renderer 身份、Artifact 内容哈希和版本拒绝结果。`apply-projection-v1.json` 独立冻结 Apply 的 CRLF 投影、审计顺序、冲突码与最终 UTF-8 字节。Auto Code 与 Desk Tools 直接导入 Registry 包中的同一 fixture 并调用本包 API,不保存副本,也不复制协议解释。
|
|
280
|
+
|
|
281
|
+
fixtures 的 `schemaVersion` 是测试 bundle 版本,Analyze Plan 的 `schemaVersion` 是运行时 envelope 版本,两者都独立于 npm 包版本。变更任一公开语义时,必须新增版本或提供兼容判定,不能静默覆盖既有 v1 golden。
|
|
282
|
+
|
|
240
283
|
## 已迁移的参数核心语义
|
|
241
284
|
|
|
242
285
|
`KtCodegenCore` 已从 `KevinCAAParamInfor.vb` 提取第一组不依赖文件系统的纯 helper:
|
|
@@ -292,7 +335,7 @@ const committed = await ktCodegenCommitApplyWrites(filePort, encodedWrites);
|
|
|
292
335
|
- 32个 block 的 VB 调用、源码位置、主目标和废弃状态迁移矩阵;
|
|
293
336
|
- 第一组默认值、类型和列表核心 helper;
|
|
294
337
|
- 旧 Kevin Start/End 标记构造、只读扫描和精确替换偏移;
|
|
295
|
-
-
|
|
338
|
+
- 标记孤立、缺失和错配诊断、未知 block 透传,并在下一个语法完整 Start 恢复扫描;
|
|
296
339
|
- 标记区域进入 Analyze Plan;
|
|
297
340
|
- 普通 C++ Parameter 的构造、声明、析构和赋值四块 Renderer;
|
|
298
341
|
- CAA 实现类与纯虚接口的 Get/Set 四块 Renderer;
|
|
@@ -308,6 +351,7 @@ const committed = await ktCodegenCommitApplyWrites(filePort, encodedWrites);
|
|
|
308
351
|
- artifact 通过 `regionId` 关联安全区域,并保留文件指纹、缩进和 LF/CRLF;
|
|
309
352
|
- Apply 计划审计、LF/CRLF 适配、整文件投影、写前复读与失败回滚;
|
|
310
353
|
- 32个归档旧 block 全部具备 Renderer、Marker artifact 与迁移状态测试;
|
|
354
|
+
- 32个 migrated block 全部且唯一归属具名 Renderer family,重复注册和漏注册由契约测试阻止;
|
|
311
355
|
- fixtures、结构化预期数据和单元测试。
|
|
312
356
|
|
|
313
357
|
当前 Analyze 读取调用者提供的不可变源码快照,`KtCodegenApply` 根据计划形成可审计的写回候选并提供文件 Port 事务;包本身仍不自行打开或写入真实文件。请求目标与标记完整时,计划可以返回 `canApply: true`,最终编码、权限、UI 与真实文件 Port 由宿主负责。
|
package/dist/KtCodegenApply.d.ts
CHANGED
|
@@ -69,6 +69,15 @@ export type KtCodegenApplyCommitResult<TTarget> = {
|
|
|
69
69
|
readonly error: unknown;
|
|
70
70
|
readonly rollbackFailures: readonly TTarget[];
|
|
71
71
|
};
|
|
72
|
+
/**
|
|
73
|
+
* 判断计划是否可安全写入其中已经形成完整 Region/Artifact 绑定的部分。
|
|
74
|
+
*
|
|
75
|
+
* `plan.canApply` 仍表示“整份计划无 error”。缺失或孤立 Marker 会让该值为
|
|
76
|
+
* false,但 Marker 扫描器已经隔离这些不完整区域;只要其余 Target 全部 ready、
|
|
77
|
+
* Artifact 都绑定到完整 Region,就允许 Apply 这些已验证区域。其他模型、Renderer
|
|
78
|
+
* 或 Artifact 错误仍保持 fail-closed。
|
|
79
|
+
*/
|
|
80
|
+
export declare function ktCodegenCanApplyValidRegions(plan: KtCodegenPlan): boolean;
|
|
72
81
|
/**
|
|
73
82
|
* 汇总计划中的 Target、控制符区域和 Artifact 绑定关系。
|
|
74
83
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KtCodegenApply.d.ts","sourceRoot":"","sources":["../src/KtCodegenApply.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"KtCodegenApply.d.ts","sourceRoot":"","sources":["../src/KtCodegenApply.ts"],"names":[],"mappings":"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"}
|
package/dist/KtCodegenApply.js
CHANGED
|
@@ -15,6 +15,33 @@ function ktCodegenApplyDiagnostic(code, message, file, row) {
|
|
|
15
15
|
...(file ? { path: { source: "source", file, row: row ?? 0, column: 0 } } : {}),
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
|
+
const KT_CODEGEN_RECOVERABLE_PARTIAL_APPLY_DIAGNOSTICS = new Set([
|
|
19
|
+
"marker.missing-end",
|
|
20
|
+
"marker.orphan-end",
|
|
21
|
+
]);
|
|
22
|
+
/**
|
|
23
|
+
* 判断计划是否可安全写入其中已经形成完整 Region/Artifact 绑定的部分。
|
|
24
|
+
*
|
|
25
|
+
* `plan.canApply` 仍表示“整份计划无 error”。缺失或孤立 Marker 会让该值为
|
|
26
|
+
* false,但 Marker 扫描器已经隔离这些不完整区域;只要其余 Target 全部 ready、
|
|
27
|
+
* Artifact 都绑定到完整 Region,就允许 Apply 这些已验证区域。其他模型、Renderer
|
|
28
|
+
* 或 Artifact 错误仍保持 fail-closed。
|
|
29
|
+
*/
|
|
30
|
+
export function ktCodegenCanApplyValidRegions(plan) {
|
|
31
|
+
if (plan.canApply)
|
|
32
|
+
return true;
|
|
33
|
+
if (!plan.targets.length || plan.targets.some((target) => target.status !== "ready"))
|
|
34
|
+
return false;
|
|
35
|
+
if (!plan.artifacts.length)
|
|
36
|
+
return false;
|
|
37
|
+
const regionIds = new Set(plan.markerRegions.map((region) => region.id));
|
|
38
|
+
if (plan.artifacts.some((artifact) => !regionIds.has(artifact.regionId)))
|
|
39
|
+
return false;
|
|
40
|
+
return plan.diagnostics
|
|
41
|
+
.filter((diagnostic) => diagnostic.severity === "error")
|
|
42
|
+
.every((diagnostic) => (diagnostic.path?.source === "source"
|
|
43
|
+
&& KT_CODEGEN_RECOVERABLE_PARTIAL_APPLY_DIAGNOSTICS.has(diagnostic.code)));
|
|
44
|
+
}
|
|
18
45
|
/**
|
|
19
46
|
* 汇总计划中的 Target、控制符区域和 Artifact 绑定关系。
|
|
20
47
|
*
|
|
@@ -61,10 +88,10 @@ export function ktCodegenNormalizeGeneratedEol(text, eol) {
|
|
|
61
88
|
* 本函数不访问文件系统,也不修改传入的计划或源码快照。
|
|
62
89
|
*/
|
|
63
90
|
export function ktCodegenProjectApply(plan, sources) {
|
|
64
|
-
if (!plan
|
|
91
|
+
if (!ktCodegenCanApplyValidRegions(plan)) {
|
|
65
92
|
return {
|
|
66
93
|
changes: [],
|
|
67
|
-
diagnostics: [ktCodegenApplyDiagnostic("apply.plan-not-applicable", "
|
|
94
|
+
diagnostics: [ktCodegenApplyDiagnostic("apply.plan-not-applicable", "当前预检计划没有可安全隔离应用的生成产物。")],
|
|
68
95
|
};
|
|
69
96
|
}
|
|
70
97
|
const diagnostics = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KtCodegenApply.js","sourceRoot":"","sources":["../src/KtCodegenApply.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"KtCodegenApply.js","sourceRoot":"","sources":["../src/KtCodegenApply.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,9 +62,9 @@ export interface KtCodegenMarkerRegion {
|
|
|
62
62
|
}
|
|
63
63
|
/** 一次只读源码标记扫描的结果。 */
|
|
64
64
|
export interface KtCodegenMarkerScanResult {
|
|
65
|
-
/**
|
|
65
|
+
/** 结构完整且没有错配风险的标记区域。 */
|
|
66
66
|
readonly regions: readonly KtCodegenMarkerRegion[];
|
|
67
|
-
/**
|
|
67
|
+
/** 孤立、缺失、错配或格式异常标记的结构化诊断。 */
|
|
68
68
|
readonly diagnostics: readonly KtCodegenDiagnostic[];
|
|
69
69
|
}
|
|
70
70
|
/**
|
|
@@ -72,7 +72,8 @@ export interface KtCodegenMarkerScanResult {
|
|
|
72
72
|
*
|
|
73
73
|
* 本类复现 `KevinCAAFileGuide` 的 `START/END KEVIN CAA WIZARD SECTION`
|
|
74
74
|
* 文本协议和缩进提取规则,但不生成业务代码、不修改源码,也不写文件。
|
|
75
|
-
*
|
|
75
|
+
* 控制块严格同级、不允许嵌套;对旧实现会静默吞掉的缺失、错配和孤立标记,
|
|
76
|
+
* 本类返回明确 error 诊断并在下一处语法完整的 Start 恢复扫描。
|
|
76
77
|
*/
|
|
77
78
|
export declare class KtCodegenMarker {
|
|
78
79
|
/** 根据共享参数和后缀创建旧标记使用的类身份。 */
|
|
@@ -98,6 +99,10 @@ export declare class KtCodegenMarker {
|
|
|
98
99
|
scan(param: KtCodegenParam, snapshot: KtCodegenSnapshot, blockKeys?: readonly KtCodegenBlockKey[]): KtCodegenMarkerScanResult;
|
|
99
100
|
/** 顺序扫描单个文件,并保持旧实现一次只处理一个打开块的基本模型。 */
|
|
100
101
|
private scanFile;
|
|
102
|
+
/** 在旧 Start 位置报告其直到下一条完整 marker 仍未闭合。 */
|
|
103
|
+
private missingEndDiagnostic;
|
|
104
|
+
/** 把没有可闭合 open 的已选 End 作为独立错误定位。 */
|
|
105
|
+
private orphanEndDiagnostic;
|
|
101
106
|
/** 将文件文本拆成保留精确绝对偏移的逻辑行。 */
|
|
102
107
|
private splitLines;
|
|
103
108
|
/** 解析单行中的旧标记;普通源码行返回空结果。 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KtCodegenMarker.d.ts","sourceRoot":"","sources":["../src/KtCodegenMarker.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,iBAAiB,EAElB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAK1D,wBAAwB;AACxB,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,KAAK,CAAC;AAElD,kCAAkC;AAClC,MAAM,WAAW,oBAAoB;IACnC,uBAAuB;IACvB,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,mBAAmB;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,+BAA+B;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0BAA0B;IAC1B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,mBAAmB;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,uBAAuB;IACvB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,mCAAmC;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,sCAAsC;IACtC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,oCAAoC;IACpC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,yBAAyB;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,wCAAwC;AACxC,MAAM,WAAW,qBAAqB;IACpC,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,sBAAsB;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,sBAAsB;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sBAAsB;IACtB,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,gBAAgB;IAChB,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,gBAAgB;IAChB,QAAQ,CAAC,GAAG,EAAE,oBAAoB,CAAC;IACnC,+BAA+B;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,6BAA6B;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,gCAAgC;IAChC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,oCAAoC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,qBAAqB;AACrB,MAAM,WAAW,yBAAyB;IACxC,
|
|
1
|
+
{"version":3,"file":"KtCodegenMarker.d.ts","sourceRoot":"","sources":["../src/KtCodegenMarker.ts"],"names":[],"mappings":"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"}
|
package/dist/KtCodegenMarker.js
CHANGED
|
@@ -10,7 +10,8 @@ function isArchivedBlockKey(value) {
|
|
|
10
10
|
*
|
|
11
11
|
* 本类复现 `KevinCAAFileGuide` 的 `START/END KEVIN CAA WIZARD SECTION`
|
|
12
12
|
* 文本协议和缩进提取规则,但不生成业务代码、不修改源码,也不写文件。
|
|
13
|
-
*
|
|
13
|
+
* 控制块严格同级、不允许嵌套;对旧实现会静默吞掉的缺失、错配和孤立标记,
|
|
14
|
+
* 本类返回明确 error 诊断并在下一处语法完整的 Start 恢复扫描。
|
|
14
15
|
*/
|
|
15
16
|
export class KtCodegenMarker {
|
|
16
17
|
/** 根据共享参数和后缀创建旧标记使用的类身份。 */
|
|
@@ -66,74 +67,96 @@ export class KtCodegenMarker {
|
|
|
66
67
|
}
|
|
67
68
|
if (!parsed.marker)
|
|
68
69
|
continue;
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
70
|
+
let marker = null;
|
|
71
|
+
if (isArchivedBlockKey(parsed.marker.blockKey) &&
|
|
72
|
+
requestedBlocks.has(parsed.marker.blockKey)) {
|
|
73
|
+
const nameSuffix = expectedClassIds.get(parsed.marker.classId);
|
|
74
|
+
if (nameSuffix !== undefined) {
|
|
75
|
+
const knownMarker = {
|
|
76
|
+
...parsed.marker,
|
|
77
|
+
blockKey: parsed.marker.blockKey,
|
|
78
|
+
};
|
|
79
|
+
marker = this.toMarkerPoint(file.path, knownMarker, nameSuffix);
|
|
76
80
|
}
|
|
77
|
-
continue;
|
|
78
81
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
// Kevin 控制块严格同级、不允许嵌套。任何下一条语法完整 marker 都是当前
|
|
83
|
+
// 打开块的边界;只有身份完全匹配的 End 能闭合它。Start 或错配 End 都先
|
|
84
|
+
// 终止旧状态,避免一个手误向文件后部级联出 nested/mismatched 诊断。
|
|
85
|
+
if (open) {
|
|
86
|
+
if (parsed.marker.kind === "start") {
|
|
87
|
+
diagnostics.push(this.missingEndDiagnostic(file.path, open, parsed.marker));
|
|
88
|
+
open = null;
|
|
84
89
|
}
|
|
85
|
-
else if (
|
|
86
|
-
|
|
87
|
-
open.
|
|
90
|
+
else if (!marker ||
|
|
91
|
+
open.marker.classId !== marker.classId ||
|
|
92
|
+
open.marker.blockKey !== marker.blockKey) {
|
|
93
|
+
diagnostics.push(this.missingEndDiagnostic(file.path, open, parsed.marker));
|
|
94
|
+
open = null;
|
|
95
|
+
if (marker)
|
|
96
|
+
diagnostics.push(this.orphanEndDiagnostic(marker));
|
|
97
|
+
continue;
|
|
88
98
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
99
|
+
else {
|
|
100
|
+
if (!open.invalid) {
|
|
101
|
+
regions.push({
|
|
102
|
+
id: `${file.path}:${open.marker.lineStartOffset}:${marker.lineEndOffset}`,
|
|
103
|
+
path: file.path,
|
|
104
|
+
sourceFingerprint: file.fingerprint,
|
|
105
|
+
classId: marker.classId,
|
|
106
|
+
nameSuffix: marker.nameSuffix,
|
|
107
|
+
blockKey: marker.blockKey,
|
|
108
|
+
start: open.marker,
|
|
109
|
+
end: marker,
|
|
110
|
+
bodyStartOffset: open.marker.lineEndOffset,
|
|
111
|
+
bodyEndOffset: marker.lineStartOffset,
|
|
112
|
+
replaceStartOffset: open.marker.lineStartOffset,
|
|
113
|
+
replaceEndOffset: marker.lineEndOffset,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
open = null;
|
|
100
117
|
continue;
|
|
101
118
|
}
|
|
102
|
-
open = { marker, invalid: false };
|
|
103
|
-
continue;
|
|
104
|
-
}
|
|
105
|
-
if (!open) {
|
|
106
|
-
diagnostics.push(this.sourceDiagnostic("marker.orphan-end", "error", `End marker ${marker.classId} ${marker.blockKey} has no preceding Start marker.`, file.path, marker.line, marker.column));
|
|
107
|
-
continue;
|
|
108
119
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
open.invalid = true;
|
|
120
|
+
// 未请求 block 和其他类的 marker 也能切断旧 open,但其自身保持静默,
|
|
121
|
+
// 避免一次局部扫描把未选择的正常控制块误报为孤立标记。
|
|
122
|
+
if (!marker)
|
|
113
123
|
continue;
|
|
124
|
+
if (marker.kind === "start") {
|
|
125
|
+
open = { marker, invalid: false };
|
|
114
126
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
id: `${file.path}:${open.marker.lineStartOffset}:${marker.lineEndOffset}`,
|
|
118
|
-
path: file.path,
|
|
119
|
-
sourceFingerprint: file.fingerprint,
|
|
120
|
-
classId: marker.classId,
|
|
121
|
-
nameSuffix: marker.nameSuffix,
|
|
122
|
-
blockKey: marker.blockKey,
|
|
123
|
-
start: open.marker,
|
|
124
|
-
end: marker,
|
|
125
|
-
bodyStartOffset: open.marker.lineEndOffset,
|
|
126
|
-
bodyEndOffset: marker.lineStartOffset,
|
|
127
|
-
replaceStartOffset: open.marker.lineStartOffset,
|
|
128
|
-
replaceEndOffset: marker.lineEndOffset,
|
|
129
|
-
});
|
|
127
|
+
else {
|
|
128
|
+
diagnostics.push(this.orphanEndDiagnostic(marker));
|
|
130
129
|
}
|
|
131
|
-
open = null;
|
|
132
130
|
}
|
|
133
131
|
if (open) {
|
|
134
|
-
diagnostics.push(this.sourceDiagnostic("marker.missing-end", "error", `Start marker ${open.marker.classId} ${open.marker.blockKey} has no matching End marker.`, file.path, open.marker.line, open.marker.column
|
|
132
|
+
diagnostics.push(this.sourceDiagnostic("marker.missing-end", "error", `Start marker ${open.marker.classId} ${open.marker.blockKey} has no matching End marker.`, file.path, open.marker.line, open.marker.column, {
|
|
133
|
+
kind: open.marker.kind,
|
|
134
|
+
classId: open.marker.classId,
|
|
135
|
+
blockKey: open.marker.blockKey,
|
|
136
|
+
}));
|
|
135
137
|
}
|
|
136
138
|
}
|
|
139
|
+
/** 在旧 Start 位置报告其直到下一条完整 marker 仍未闭合。 */
|
|
140
|
+
missingEndDiagnostic(path, open, boundary) {
|
|
141
|
+
const boundaryKind = boundary.kind === "start" ? "Start" : "End";
|
|
142
|
+
return this.sourceDiagnostic("marker.missing-end", "error", `Start marker ${open.marker.classId} ${open.marker.blockKey} has no matching End marker before ${boundaryKind} marker at line ${boundary.line.number + 1}.`, path, open.marker.line, open.marker.column, {
|
|
143
|
+
kind: open.marker.kind,
|
|
144
|
+
classId: open.marker.classId,
|
|
145
|
+
blockKey: open.marker.blockKey,
|
|
146
|
+
boundary: {
|
|
147
|
+
kind: boundary.kind,
|
|
148
|
+
line: boundary.line.number + 1,
|
|
149
|
+
},
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
/** 把没有可闭合 open 的已选 End 作为独立错误定位。 */
|
|
153
|
+
orphanEndDiagnostic(marker) {
|
|
154
|
+
return this.sourceDiagnostic("marker.orphan-end", "error", `End marker ${marker.classId} ${marker.blockKey} has no preceding Start marker.`, marker.path, marker.line, marker.column, {
|
|
155
|
+
kind: marker.kind,
|
|
156
|
+
classId: marker.classId,
|
|
157
|
+
blockKey: marker.blockKey,
|
|
158
|
+
});
|
|
159
|
+
}
|
|
137
160
|
/** 将文件文本拆成保留精确绝对偏移的逻辑行。 */
|
|
138
161
|
splitLines(text) {
|
|
139
162
|
const lines = [];
|
|
@@ -234,12 +257,13 @@ export class KtCodegenMarker {
|
|
|
234
257
|
};
|
|
235
258
|
}
|
|
236
259
|
/** 创建带文件、行、列定位的源码诊断。 */
|
|
237
|
-
sourceDiagnostic(code, severity, message, file, row, column) {
|
|
260
|
+
sourceDiagnostic(code, severity, message, file, row, column, marker) {
|
|
238
261
|
return {
|
|
239
262
|
code,
|
|
240
263
|
severity,
|
|
241
264
|
message,
|
|
242
265
|
path: { source: "source", file, row, column },
|
|
266
|
+
...(marker ? { marker } : {}),
|
|
243
267
|
};
|
|
244
268
|
}
|
|
245
269
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KtCodegenMarker.js","sourceRoot":"","sources":["../src/KtCodegenMarker.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC,OAAO,EACL,wBAAwB,GAEzB,MAAM,2BAA2B,CAAC;AAQnC,MAAM,uBAAuB,GAAG,gCAAgC,CAAC;AACjE,MAAM,qBAAqB,GAAG,8BAA8B,CAAC;AAoG7D,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC;AACvE,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"KtCodegenMarker.js","sourceRoot":"","sources":["../src/KtCodegenMarker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { KtCodegenBlockKey } from "./blocks/legacy-blocks.js";
|
|
2
2
|
import type { KtCodegenArtifact, KtCodegenSnapshot } from "./api/contracts.js";
|
|
3
3
|
import type { KtCodegenMarkerRegion } from "./KtCodegenMarker.js";
|
|
4
4
|
import type { KtCodegenDiagnostic } from "./model/diagnostic.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KtCodegenRenderer.d.ts","sourceRoot":"","sources":["../src/KtCodegenRenderer.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"KtCodegenRenderer.d.ts","sourceRoot":"","sources":["../src/KtCodegenRenderer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKxD,sBAAsB;AACtB,MAAM,WAAW,wBAAwB;IACvC,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAE/B,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAEnC,0BAA0B;IAC1B,QAAQ,CAAC,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAEjD,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAErC,iCAAiC;IACjC,QAAQ,CAAC,aAAa,EAAE,SAAS,qBAAqB,EAAE,CAAC;CAC1D;AAED,yBAAyB;AACzB,MAAM,WAAW,uBAAuB;IACtC,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,CAAC;IAEtC,gDAAgD;IAChD,QAAQ,CAAC,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAEjD,0BAA0B;IAC1B,QAAQ,CAAC,WAAW,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACtD;AAED,sCAAsC;AACtC,MAAM,MAAM,uBAAuB,GAAG,CACpC,OAAO,EAAE,wBAAwB,KAC9B,uBAAuB,CAAC;AAE7B,2CAA2C;AAC3C,MAAM,MAAM,8BAA8B,GAAG,CAC3C,IAAI,EAAE,aAAa,EACnB,YAAY,CAAC,EAAE,OAAO,KACnB,MAAM,CAAC;AAEZ,wCAAwC;AACxC,MAAM,MAAM,gCAAgC,GAAG,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC;AAEhF,2CAA2C;AAC3C,MAAM,MAAM,kCAAkC,GAAG,CAC/C,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,KAC7B,MAAM,CAAC;AAEZ,wCAAwC;AACxC,MAAM,WAAW,sBAAsB;IACrC,+BAA+B;IAC/B,QAAQ,CAAC,eAAe,EAAE,gCAAgC,CAAC;IAC3D,4BAA4B;IAC5B,QAAQ,CAAC,kBAAkB,EAAE,8BAA8B,CAAC;IAC5D,iCAAiC;IACjC,QAAQ,CAAC,0BAA0B,EAAE,kCAAkC,CAAC;IACxE,+BAA+B;IAC/B,QAAQ,CAAC,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9D,8BAA8B;IAC9B,QAAQ,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACnD,mCAAmC;IACnC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC;IACvD,sEAAsE;IACtE,QAAQ,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC;IAC3D,oCAAoC;IACpC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC;IAC9D,yCAAyC;IACzC,QAAQ,CAAC,yBAAyB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;CACrE;AAED,oCAAoC;AACpC,MAAM,WAAW,qBAAqB;IACpC,0CAA0C;IAC1C,QAAQ,CAAC,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;CAC/D;AAED;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,mCAAmC;IACnC,SAAgB,EAAE,EAAE,MAAM,CAAC;IAE3B,wBAAwB;IACxB,SAAgB,QAAQ,EAAE,iBAAiB,CAAC;IAE5C,6BAA6B;IAC7B,SAAgB,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAEtD,2CAA2C;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsC;IAErE,iCAAiC;gBACrB,OAAO,EAAE;QACnB,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,iBAAiB,CAAC;QAC5B,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;QACtC,MAAM,CAAC,EAAE,uBAAuB,CAAC;KAClC;IAOD;;;;;OAKG;WACW,kBAAkB,CAC9B,kBAAkB,EAAE,8BAA8B,GACjD,iBAAiB;IASpB;;;;;OAKG;WACW,SAAS,CAAC,UAAU,EAAE,sBAAsB,GAAG,iBAAiB;IAgB9E;;;;;OAKG;WACW,QAAQ,CAAC,UAAU,EAAE,qBAAqB,GAAG,iBAAiB;IAS5E;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,wBAAwB,GAAG,uBAAuB;CAenE"}
|