@kurot/cli 1.2.0 → 1.3.0
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/CHANGELOG.md +20 -0
- package/README.md +36 -8
- package/dist/core/exml/skin-parts-declaration.d.ts +1 -1
- package/dist/core/exml/skin-parts-declaration.d.ts.map +1 -1
- package/dist/core/exml/skin-parts-declaration.js +102 -2
- package/dist/core/exml/skin-parts-declaration.js.map +1 -1
- package/dist/core/plugins/compile-exml.js +1 -1
- package/dist/core/plugins/compile-exml.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,26 @@ and this project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.ht
|
|
|
7
7
|
|
|
8
8
|
## Unreleased
|
|
9
9
|
|
|
10
|
+
## 1.3.0 — 2026-09-20
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Generated declarations now narrow each exported project class's public
|
|
15
|
+
`skinParts` accessor from an explicit string-literal `skinName`, a configured
|
|
16
|
+
reusable-component pair, or a unique `<ClassName>Skin` naming match.
|
|
17
|
+
- Added ambiguity protection: convention inference is omitted when multiple
|
|
18
|
+
compiled skins share the same short `<ClassName>Skin` name.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- Project classes no longer need to repeat their skin as a base-class generic
|
|
23
|
+
when the CLI can establish an unambiguous host-to-skin relationship.
|
|
24
|
+
|
|
25
|
+
### Tests
|
|
26
|
+
|
|
27
|
+
- Added regression coverage for explicit assignment, reusable-component,
|
|
28
|
+
unique naming-convention, and ambiguous naming-convention host inference.
|
|
29
|
+
|
|
10
30
|
## 1.2.0 — 2026-09-20
|
|
11
31
|
|
|
12
32
|
### Added
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
CLI tool for the Kurot game engine — a modern replacement for the legacy Egret CLI. Powered by esbuild for fast compilation, with a built-in EXML skin parser and code generator.
|
|
4
4
|
|
|
5
|
-
> **Current release: 1.
|
|
5
|
+
> **Current release: 1.3.0.** Requires Node.js 20 or later and emits ES2022 ESM projects.
|
|
6
6
|
|
|
7
7
|
> Migrating from Egret? See [egret-migration.md](../../docs/egret-migration.md)
|
|
8
8
|
>
|
|
@@ -260,22 +260,32 @@ agent tooling. The catalog is intentionally omitted from release output.
|
|
|
260
260
|
|
|
261
261
|
Every successful EXML compilation also writes `.kurot/skin-parts.d.ts`. It
|
|
262
262
|
augments `@kurot/ui`'s `SkinPartsMap` with the exact named parts and runtime
|
|
263
|
-
types found in each compiled skin.
|
|
264
|
-
|
|
265
|
-
|
|
263
|
+
types found in each compiled skin. It also discovers exported project classes
|
|
264
|
+
through a compiled string-literal `this.skinName`, configured reusable-component
|
|
265
|
+
pairs, or a unique `<ClassName>Skin` naming match, then narrows their inherited
|
|
266
|
+
public `skinParts` property automatically. Ambiguous naming matches are left
|
|
267
|
+
untyped instead of being guessed. The generated file is included by the template
|
|
268
|
+
`tsconfig.json`, ignored by git, and never enters browser or release bundles.
|
|
266
269
|
|
|
267
270
|
`exml.namespaces` remains available for advanced manual namespace barrels, but
|
|
268
271
|
its prefix must not conflict with `exml.components.namespace`.
|
|
269
272
|
|
|
270
273
|
### Custom component lifecycle
|
|
271
274
|
|
|
272
|
-
|
|
273
|
-
|
|
275
|
+
Assign the runtime skin once and initialize skin-dependent behavior in
|
|
276
|
+
`onSkinReady()`. The generated declaration derives the `skinParts` type from that
|
|
277
|
+
assignment:
|
|
274
278
|
|
|
275
279
|
```ts
|
|
276
280
|
import { Component } from '@kurot/ui';
|
|
277
281
|
|
|
278
|
-
|
|
282
|
+
|
|
283
|
+
export class BattlePanel extends Component {
|
|
284
|
+
public constructor() {
|
|
285
|
+
super();
|
|
286
|
+
this.skinName = 'game.ui.BattlePanelSkin';
|
|
287
|
+
}
|
|
288
|
+
|
|
279
289
|
protected override onSkinReady(): void {
|
|
280
290
|
super.onSkinReady();
|
|
281
291
|
this.skinParts.groupField.visible = true;
|
|
@@ -283,6 +293,22 @@ export class BattlePanel extends Component<'game.ui.BattlePanelSkin'> {
|
|
|
283
293
|
}
|
|
284
294
|
```
|
|
285
295
|
|
|
296
|
+
The same declaration narrowing applies when the runtime assigns the skin
|
|
297
|
+
externally. For example, an exported `MultiplierIR` class is matched to a
|
|
298
|
+
unique compiled `ui.MultiplierIRSkin`, so the renderer remains free of a
|
|
299
|
+
repeated generic skin name:
|
|
300
|
+
|
|
301
|
+
```ts
|
|
302
|
+
import { ItemRenderer } from '@kurot/ui';
|
|
303
|
+
|
|
304
|
+
export class MultiplierIR extends ItemRenderer {
|
|
305
|
+
protected override onSkinReady(): void {
|
|
306
|
+
super.onSkinReady();
|
|
307
|
+
this.skinParts.lblMultiplier.text = '';
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
```
|
|
311
|
+
|
|
286
312
|
The event-based equivalent is useful when initialization is composed externally:
|
|
287
313
|
|
|
288
314
|
```ts
|
|
@@ -298,7 +324,9 @@ initial creation and are not skin-replacement hooks.
|
|
|
298
324
|
|
|
299
325
|
UI 2.0 no longer copies part names onto component instances and no longer
|
|
300
326
|
supports `setSkinPart()`, `partAdded()`, or `partRemoved()`. Read parts through
|
|
301
|
-
`this.skinParts` only while the skin-ready lifecycle is active.
|
|
327
|
+
`this.skinParts` only while the skin-ready lifecycle is active. Use an explicit
|
|
328
|
+
generic skin type when generated host declarations are unavailable outside a
|
|
329
|
+
CLI project.
|
|
302
330
|
|
|
303
331
|
EXML skins compiled by the CLI are registered under their complete `class`
|
|
304
332
|
attribute, so an Egret-style value such as
|
|
@@ -8,5 +8,5 @@ export declare const SKIN_PARTS_DECLARATION_PATH = ".kurot/skin-parts.d.ts";
|
|
|
8
8
|
* Generates the project declaration that augments `@kurot/ui`'s
|
|
9
9
|
* `SkinPartsMap` with every compiled skin and its complete named part set.
|
|
10
10
|
*/
|
|
11
|
-
export declare function generateSkinPartsDeclaration(project: Project, skins: readonly SkinIR[]): string
|
|
11
|
+
export declare function generateSkinPartsDeclaration(project: Project, skins: readonly SkinIR[]): Promise<string>;
|
|
12
12
|
//# sourceMappingURL=skin-parts-declaration.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skin-parts-declaration.d.ts","sourceRoot":"","sources":["../../../src/core/exml/skin-parts-declaration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"skin-parts-declaration.d.ts","sourceRoot":"","sources":["../../../src/core/exml/skin-parts-declaration.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAY,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,2BAA2B,2BAA2B,CAAC;AAcpE;;;GAGG;AACH,wBAAsB,4BAA4B,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA2C9G"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as fs from 'node:fs/promises';
|
|
1
2
|
import * as path from 'node:path';
|
|
2
3
|
/**
|
|
3
4
|
* Project-root-relative path of the generated skin-part declaration.
|
|
@@ -7,7 +8,7 @@ export const SKIN_PARTS_DECLARATION_PATH = '.kurot/skin-parts.d.ts';
|
|
|
7
8
|
* Generates the project declaration that augments `@kurot/ui`'s
|
|
8
9
|
* `SkinPartsMap` with every compiled skin and its complete named part set.
|
|
9
10
|
*/
|
|
10
|
-
export function generateSkinPartsDeclaration(project, skins) {
|
|
11
|
+
export async function generateSkinPartsDeclaration(project, skins) {
|
|
11
12
|
const declarationFile = path.join(project.root, SKIN_PARTS_DECLARATION_PATH);
|
|
12
13
|
const entries = skins
|
|
13
14
|
.map(skin => ({
|
|
@@ -17,6 +18,7 @@ export function generateSkinPartsDeclaration(project, skins) {
|
|
|
17
18
|
.sort((a, b) => a.className.localeCompare(b.className));
|
|
18
19
|
const modules = [...new Set(entries.flatMap(entry => entry.parts.map(part => part.module)))].sort();
|
|
19
20
|
const aliases = new Map(modules.map((module, index) => [module, `SkinPartModule${index}`]));
|
|
21
|
+
const hosts = await collectSkinHosts(project, declarationFile, entries.map(entry => entry.className));
|
|
20
22
|
const lines = ['// Generated by @kurot/cli from compiled EXML skins.', '// @generated — do not edit manually.', ''];
|
|
21
23
|
for (const module of modules) {
|
|
22
24
|
lines.push(`import type * as ${aliases.get(module)} from ${JSON.stringify(module)};`);
|
|
@@ -32,9 +34,107 @@ export function generateSkinPartsDeclaration(project, skins) {
|
|
|
32
34
|
}
|
|
33
35
|
lines.push('\t\t};');
|
|
34
36
|
}
|
|
35
|
-
lines.push('\t}', '}', ''
|
|
37
|
+
lines.push('\t}', '}', '');
|
|
38
|
+
for (const host of hosts) {
|
|
39
|
+
lines.push(`declare module ${JSON.stringify(host.module)} {`, `\tinterface ${host.className} {`, `\t\treadonly skinParts: import("@kurot/ui").SkinPartsOf<${JSON.stringify(host.skinName)}>;`, '\t}', '}', '');
|
|
40
|
+
}
|
|
41
|
+
lines.push('export {};', '');
|
|
36
42
|
return lines.join('\n');
|
|
37
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Finds project classes whose skin is selected explicitly, by reusable-component
|
|
46
|
+
* configuration, or by an unambiguous `<ClassName>Skin` naming convention.
|
|
47
|
+
*/
|
|
48
|
+
async function collectSkinHosts(project, declarationFile, skinNames) {
|
|
49
|
+
const files = await collectTypeScriptFiles(project.srcDir);
|
|
50
|
+
const hosts = new Map();
|
|
51
|
+
const skinNameSet = new Set(skinNames);
|
|
52
|
+
for (const component of project.components) {
|
|
53
|
+
if (!skinNameSet.has(component.skinClass)) {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
const relative = path.relative(path.dirname(declarationFile), component.source).replace(/\.tsx?$/, '.js');
|
|
57
|
+
const module = toModuleSpecifier(relative);
|
|
58
|
+
hosts.set(module, {
|
|
59
|
+
className: component.name,
|
|
60
|
+
module,
|
|
61
|
+
skinName: component.skinClass,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
for (const file of files) {
|
|
65
|
+
const className = path.basename(file).replace(/\.tsx?$/, '');
|
|
66
|
+
if (!/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(className)) {
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
const source = stripComments(await fs.readFile(file, 'utf-8'));
|
|
70
|
+
if (!hasNamedClassExport(source, className)) {
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
const match = /\bthis\.skinName\s*=\s*(['"])([^'"]+)\1/.exec(source);
|
|
74
|
+
const explicitSkinName = match?.[2];
|
|
75
|
+
if (explicitSkinName && !skinNameSet.has(explicitSkinName)) {
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
const conventionalSkinNames = skinNames.filter(skinName => getSkinShortName(skinName) === `${className}Skin`);
|
|
79
|
+
const skinName = explicitSkinName ?? (conventionalSkinNames.length === 1 ? conventionalSkinNames[0] : undefined);
|
|
80
|
+
if (!skinName) {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
const relative = path.relative(path.dirname(declarationFile), file).replace(/\.tsx?$/, '.js');
|
|
84
|
+
const module = toModuleSpecifier(relative);
|
|
85
|
+
hosts.set(module, {
|
|
86
|
+
className,
|
|
87
|
+
module,
|
|
88
|
+
skinName,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
return [...hosts.values()].sort((a, b) => a.module.localeCompare(b.module));
|
|
92
|
+
}
|
|
93
|
+
function getSkinShortName(skinName) {
|
|
94
|
+
return skinName.slice(skinName.lastIndexOf('.') + 1);
|
|
95
|
+
}
|
|
96
|
+
async function collectTypeScriptFiles(directory) {
|
|
97
|
+
const files = [];
|
|
98
|
+
async function walk(current) {
|
|
99
|
+
let entries;
|
|
100
|
+
try {
|
|
101
|
+
entries = await fs.readdir(current, { withFileTypes: true });
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
if (error.code === 'ENOENT') {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
throw error;
|
|
108
|
+
}
|
|
109
|
+
for (const entry of entries) {
|
|
110
|
+
const absolute = path.join(current, entry.name);
|
|
111
|
+
if (entry.isDirectory()) {
|
|
112
|
+
await walk(absolute);
|
|
113
|
+
}
|
|
114
|
+
else if (entry.isFile() && /\.tsx?$/.test(entry.name) && !entry.name.endsWith('.d.ts')) {
|
|
115
|
+
files.push(absolute);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
await walk(directory);
|
|
120
|
+
return files.sort();
|
|
121
|
+
}
|
|
122
|
+
function stripComments(source) {
|
|
123
|
+
return source.replace(/\/\*[\s\S]*?\*\//g, '').replace(/\/\/.*$/gm, '');
|
|
124
|
+
}
|
|
125
|
+
function hasNamedClassExport(source, className) {
|
|
126
|
+
const escaped = className.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
127
|
+
if (new RegExp(`\\bexport\\s+(?:default\\s+)?class\\s+${escaped}\\b`).test(source)) {
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
130
|
+
const declared = new RegExp(`\\bclass\\s+${escaped}\\b`).test(source);
|
|
131
|
+
const exported = new RegExp(`\\bexport\\s*\\{[^}]*\\b${escaped}\\b[^}]*\\}`, 's').test(source);
|
|
132
|
+
return declared && exported;
|
|
133
|
+
}
|
|
134
|
+
function toModuleSpecifier(value) {
|
|
135
|
+
const normalized = value.split(path.sep).join('/');
|
|
136
|
+
return normalized.startsWith('.') ? normalized : `./${normalized}`;
|
|
137
|
+
}
|
|
38
138
|
function collectSkinParts(project, declarationFile, skin) {
|
|
39
139
|
const nodes = new Map();
|
|
40
140
|
collectNodes(skin.children, nodes);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skin-parts-declaration.js","sourceRoot":"","sources":["../../../src/core/exml/skin-parts-declaration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"skin-parts-declaration.js","sourceRoot":"","sources":["../../../src/core/exml/skin-parts-declaration.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,7 +50,7 @@ export function compileExml() {
|
|
|
50
50
|
const built = await buildSkinsModule(ctx, skins);
|
|
51
51
|
ctx.outputs.skinsScript = `js/${built.filename}`;
|
|
52
52
|
ctx.outputs.skinPartsDeclaration = SKIN_PARTS_DECLARATION_PATH;
|
|
53
|
-
await writeFile(path.join(project.root, SKIN_PARTS_DECLARATION_PATH), generateSkinPartsDeclaration(project, built.skins));
|
|
53
|
+
await writeFile(path.join(project.root, SKIN_PARTS_DECLARATION_PATH), await generateSkinPartsDeclaration(project, built.skins));
|
|
54
54
|
const relThemePath = project.config.exml.themeFile;
|
|
55
55
|
const outTheme = { ...theme };
|
|
56
56
|
delete outTheme.exmls;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile-exml.js","sourceRoot":"","sources":["../../../src/core/plugins/compile-exml.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAC9G,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AA6B1C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW;IAC1B,OAAO;QACN,IAAI,EAAE,cAAc;QACpB,KAAK,CAAC,KAAK,CAAC,GAAiB;YAC5B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS;gBAAE,OAAO;YAEvD,GAAG,CAAC,WAAW,CAAC,aAAa,CAAC;gBAC7B,gBAAgB,CAAC,gBAAgB;gBACjC,gBAAgB,CAAC,mBAAmB;gBACpC,gBAAgB,CAAC,4BAA4B;gBAC7C,gBAAgB,CAAC,oBAAoB;gBACrC,gBAAgB,CAAC,kBAAkB;gBACnC,gBAAgB,CAAC,oBAAoB;aACrC,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACZ,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBACzB,OAAO;YACR,CAAC;YAED,MAAM,EAAE,KAAK,EAAE,oBAAoB,EAAE,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC3E,MAAM,KAAK,GAAmB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/F,uBAAuB,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC;YACjE,mBAAmB,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,2BAA2B,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACnF,OAAO,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;gBAC9C,OAAO;YACR,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACjD,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjD,GAAG,CAAC,OAAO,CAAC,oBAAoB,GAAG,2BAA2B,CAAC;YAC/D,MAAM,SAAS,CACd,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,2BAA2B,CAAC,EACpD,4BAA4B,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"compile-exml.js","sourceRoot":"","sources":["../../../src/core/plugins/compile-exml.ts"],"names":[],"mappings":"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"}
|