@kurot/cli 1.2.0 → 2.0.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 +47 -0
- package/README.md +115 -303
- package/dist/core/components/discover-components.d.ts.map +1 -1
- package/dist/core/components/discover-components.js +12 -11
- package/dist/core/components/discover-components.js.map +1 -1
- package/dist/core/config.d.ts +8 -16
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +12 -4
- package/dist/core/config.js.map +1 -1
- package/dist/core/dev-server.d.ts +1 -1
- package/dist/core/dev-server.js +13 -13
- package/dist/core/dev-server.js.map +1 -1
- package/dist/core/diagnostics/codes.d.ts +3 -6
- package/dist/core/diagnostics/codes.d.ts.map +1 -1
- package/dist/core/diagnostics/codes.js +4 -10
- package/dist/core/diagnostics/codes.js.map +1 -1
- package/dist/core/diagnostics/output.d.ts +1 -1
- package/dist/core/diagnostics/output.d.ts.map +1 -1
- package/dist/core/{exml → kui}/ast.d.ts +17 -107
- package/dist/core/kui/ast.d.ts.map +1 -0
- package/dist/core/kui/ast.js +8 -0
- package/dist/core/{exml → kui}/ast.js.map +1 -1
- package/dist/core/kui/codegen.d.ts.map +1 -0
- package/dist/core/{exml → kui}/codegen.js +17 -176
- package/dist/core/kui/codegen.js.map +1 -0
- package/dist/core/kui/index.d.ts +29 -0
- package/dist/core/kui/index.d.ts.map +1 -0
- package/dist/core/kui/index.js +23 -0
- package/dist/core/kui/index.js.map +1 -0
- package/dist/core/{exml/exml-diagnostics.d.ts → kui/kui-diagnostics.d.ts} +2 -2
- package/dist/core/kui/kui-diagnostics.d.ts.map +1 -0
- package/dist/core/{exml/exml-diagnostics.js → kui/kui-diagnostics.js} +4 -4
- package/dist/core/kui/kui-diagnostics.js.map +1 -0
- package/dist/core/kui/kui-parser.d.ts +7 -0
- package/dist/core/kui/kui-parser.d.ts.map +1 -0
- package/dist/core/kui/kui-parser.js +157 -0
- package/dist/core/kui/kui-parser.js.map +1 -0
- package/dist/core/{exml → kui}/registry.d.ts +3 -26
- package/dist/core/kui/registry.d.ts.map +1 -0
- package/dist/core/{exml → kui}/registry.js +12 -43
- package/dist/core/kui/registry.js.map +1 -0
- package/dist/core/{exml → kui}/skin-module-builder.d.ts +6 -6
- package/dist/core/kui/skin-module-builder.d.ts.map +1 -0
- package/dist/core/{exml → kui}/skin-module-builder.js +7 -6
- package/dist/core/kui/skin-module-builder.js.map +1 -0
- package/dist/core/{exml → kui}/skin-parts-declaration.d.ts +1 -1
- package/dist/core/kui/skin-parts-declaration.d.ts.map +1 -0
- package/dist/core/kui/skin-parts-declaration.js +182 -0
- package/dist/core/kui/skin-parts-declaration.js.map +1 -0
- package/dist/core/kui/source-location.d.ts.map +1 -0
- package/dist/core/kui/source-location.js.map +1 -0
- package/dist/core/namespace-external-plugin.d.ts +1 -1
- package/dist/core/namespace-external-plugin.js +1 -1
- package/dist/core/plugins/compile-custom-namespaces.d.ts +3 -3
- package/dist/core/plugins/compile-custom-namespaces.js +3 -3
- package/dist/core/plugins/compile-kui.d.ts +6 -0
- package/dist/core/plugins/compile-kui.d.ts.map +1 -0
- package/dist/core/plugins/compile-kui.js +143 -0
- package/dist/core/plugins/compile-kui.js.map +1 -0
- package/dist/core/plugins/copy-assets.d.ts +3 -3
- package/dist/core/plugins/copy-assets.d.ts.map +1 -1
- package/dist/core/plugins/copy-assets.js +7 -6
- package/dist/core/plugins/copy-assets.js.map +1 -1
- package/dist/core/plugins/index.d.ts +1 -1
- package/dist/core/plugins/index.d.ts.map +1 -1
- package/dist/core/plugins/index.js +3 -3
- package/dist/core/plugins/index.js.map +1 -1
- package/dist/core/project.d.ts +14 -10
- package/dist/core/project.d.ts.map +1 -1
- package/dist/core/project.js +11 -7
- package/dist/core/project.js.map +1 -1
- package/dist/core/template.js +1 -1
- package/dist/core/template.js.map +1 -1
- package/dist/define.d.ts +1 -1
- package/dist/define.d.ts.map +1 -1
- package/package.json +5 -3
- package/templates/game/kurot.config.ts +3 -3
- package/templates/game/resource/ui/skins/ButtonSkin.kui.xml +24 -0
- package/templates/game/resource/ui/skins/CheckBoxSkin.kui.xml +45 -0
- package/templates/game/resource/ui/skins/ComboBoxSkin.kui.xml +32 -0
- package/templates/game/resource/ui/skins/GroupSkin.kui.xml +11 -0
- package/templates/game/resource/ui/skins/HScrollBarSkin.kui.xml +11 -0
- package/templates/game/resource/ui/skins/HSliderSkin.kui.xml +13 -0
- package/templates/game/resource/ui/skins/ImageSkin.kui.xml +11 -0
- package/templates/game/resource/ui/skins/ItemRendererSkin.kui.xml +22 -0
- package/templates/game/resource/ui/skins/LabelSkin.kui.xml +11 -0
- package/templates/game/resource/ui/skins/ListSkin.kui.xml +15 -0
- package/templates/game/resource/ui/skins/PanelSkin.kui.xml +18 -0
- package/templates/game/resource/ui/skins/ProgressBarSkin.kui.xml +14 -0
- package/templates/game/resource/ui/skins/RadioButtonSkin.kui.xml +45 -0
- package/templates/game/resource/ui/skins/ScrollerSkin.kui.xml +13 -0
- package/templates/game/resource/ui/skins/TabBarSkin.kui.xml +12 -0
- package/templates/game/resource/ui/skins/TextInputSkin.kui.xml +28 -0
- package/templates/game/resource/ui/skins/ToggleButtonSkin.kui.xml +34 -0
- package/templates/game/resource/ui/skins/ToggleSwitchSkin.kui.xml +29 -0
- package/templates/game/resource/ui/skins/VScrollBarSkin.kui.xml +11 -0
- package/templates/game/resource/ui/skins/VSliderSkin.kui.xml +13 -0
- package/templates/game/resource/ui/skins/ViewStackSkin.kui.xml +11 -0
- package/dist/core/exml/ast.d.ts.map +0 -1
- package/dist/core/exml/ast.js +0 -8
- package/dist/core/exml/codegen.d.ts.map +0 -1
- package/dist/core/exml/codegen.js.map +0 -1
- package/dist/core/exml/exml-diagnostics.d.ts.map +0 -1
- package/dist/core/exml/exml-diagnostics.js.map +0 -1
- package/dist/core/exml/exml-parser.d.ts +0 -27
- package/dist/core/exml/exml-parser.d.ts.map +0 -1
- package/dist/core/exml/exml-parser.js +0 -380
- package/dist/core/exml/exml-parser.js.map +0 -1
- package/dist/core/exml/index.d.ts +0 -54
- package/dist/core/exml/index.d.ts.map +0 -1
- package/dist/core/exml/index.js +0 -51
- package/dist/core/exml/index.js.map +0 -1
- package/dist/core/exml/registry.d.ts.map +0 -1
- package/dist/core/exml/registry.js.map +0 -1
- package/dist/core/exml/skin-module-builder.d.ts.map +0 -1
- package/dist/core/exml/skin-module-builder.js.map +0 -1
- package/dist/core/exml/skin-parts-declaration.d.ts.map +0 -1
- package/dist/core/exml/skin-parts-declaration.js +0 -82
- package/dist/core/exml/skin-parts-declaration.js.map +0 -1
- package/dist/core/exml/source-location.d.ts.map +0 -1
- package/dist/core/exml/source-location.js.map +0 -1
- package/dist/core/exml/xml-parser.d.ts +0 -86
- package/dist/core/exml/xml-parser.d.ts.map +0 -1
- package/dist/core/exml/xml-parser.js +0 -196
- package/dist/core/exml/xml-parser.js.map +0 -1
- package/dist/core/plugins/compile-exml.d.ts +0 -14
- package/dist/core/plugins/compile-exml.d.ts.map +0 -1
- package/dist/core/plugins/compile-exml.js +0 -256
- package/dist/core/plugins/compile-exml.js.map +0 -1
- package/templates/game/resource/default.thm.json +0 -19
- package/templates/game/resource/skins/eui/ButtonSkin.exml +0 -16
- package/templates/game/resource/skins/eui/CheckBoxSkin.exml +0 -18
- package/templates/game/resource/skins/eui/ComboBoxSkin.exml +0 -31
- package/templates/game/resource/skins/eui/GroupSkin.exml +0 -4
- package/templates/game/resource/skins/eui/HScrollBarSkin.exml +0 -6
- package/templates/game/resource/skins/eui/HSliderSkin.exml +0 -7
- package/templates/game/resource/skins/eui/ImageSkin.exml +0 -4
- package/templates/game/resource/skins/eui/ItemRendererSkin.exml +0 -15
- package/templates/game/resource/skins/eui/LabelSkin.exml +0 -7
- package/templates/game/resource/skins/eui/ListSkin.exml +0 -11
- package/templates/game/resource/skins/eui/PanelSkin.exml +0 -15
- package/templates/game/resource/skins/eui/ProgressBarSkin.exml +0 -11
- package/templates/game/resource/skins/eui/RadioButtonSkin.exml +0 -18
- package/templates/game/resource/skins/eui/ScrollerSkin.exml +0 -8
- package/templates/game/resource/skins/eui/TabBarSkin.exml +0 -6
- package/templates/game/resource/skins/eui/TextInputSkin.exml +0 -22
- package/templates/game/resource/skins/eui/ToggleButtonSkin.exml +0 -21
- package/templates/game/resource/skins/eui/ToggleSwitchSkin.exml +0 -15
- package/templates/game/resource/skins/eui/VScrollBarSkin.exml +0 -6
- package/templates/game/resource/skins/eui/VSliderSkin.exml +0 -7
- package/templates/game/resource/skins/eui/ViewStackSkin.exml +0 -4
- /package/dist/core/{exml → kui}/codegen.d.ts +0 -0
- /package/dist/core/{exml → kui}/source-location.d.ts +0 -0
- /package/dist/core/{exml → kui}/source-location.js +0 -0
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import * as fs from 'node:fs/promises';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
import { parseUIDocument } from '@kurot/ui-document';
|
|
4
|
+
import { writeFile } from '../../utils/fs.js';
|
|
5
|
+
import { logger } from '../../utils/logger.js';
|
|
6
|
+
import { DIAGNOSTIC_CODES } from '../diagnostics/index.js';
|
|
7
|
+
import { buildSkinsModule } from '../kui/skin-module-builder.js';
|
|
8
|
+
import { generateSkinPartsDeclaration, SKIN_PARTS_DECLARATION_PATH } from '../kui/skin-parts-declaration.js';
|
|
9
|
+
import { BuildError } from '../errors.js';
|
|
10
|
+
import { KUI_THEME_OUTPUT_PATH } from '../project.js';
|
|
11
|
+
/**
|
|
12
|
+
* Compiles canonical KUI Skin documents and generates the runtime theme map.
|
|
13
|
+
*/
|
|
14
|
+
export function compileKUI() {
|
|
15
|
+
return {
|
|
16
|
+
name: 'compile KUI',
|
|
17
|
+
async apply(ctx) {
|
|
18
|
+
const { project } = ctx;
|
|
19
|
+
if (!project.config.ui || !project.uiSourceDir)
|
|
20
|
+
return;
|
|
21
|
+
ctx.diagnostics.removeByCodes([
|
|
22
|
+
DIAGNOSTIC_CODES.KUI_UNKNOWN_TAG,
|
|
23
|
+
DIAGNOSTIC_CODES.KUI_COMPILE_FAILED,
|
|
24
|
+
DIAGNOSTIC_CODES.KUI_DUPLICATE_DEFAULT,
|
|
25
|
+
]);
|
|
26
|
+
const files = await collectKUIFiles(project.uiSourceDir, project.resourceDir);
|
|
27
|
+
const parsed = parseSkins(ctx, files);
|
|
28
|
+
throwIfInputInvalid(ctx);
|
|
29
|
+
if (parsed.length === 0) {
|
|
30
|
+
await fs.rm(path.join(project.root, SKIN_PARTS_DECLARATION_PATH), { force: true });
|
|
31
|
+
delete ctx.outputs.skinPartsDeclaration;
|
|
32
|
+
logger.step('no KUI Skin files found, skipping');
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const mappings = createDefaultMappings(ctx, parsed);
|
|
36
|
+
throwIfInputInvalid(ctx);
|
|
37
|
+
const built = await buildSkinsModule(ctx, parsed.map(item => item.skin));
|
|
38
|
+
ctx.outputs.skinsScript = `js/${built.filename}`;
|
|
39
|
+
ctx.outputs.skinPartsDeclaration = SKIN_PARTS_DECLARATION_PATH;
|
|
40
|
+
await writeFile(path.join(project.root, SKIN_PARTS_DECLARATION_PATH), await generateSkinPartsDeclaration(project, built.skins));
|
|
41
|
+
const relativeScript = toPosix(path.relative(path.dirname(KUI_THEME_OUTPUT_PATH), `js/${built.filename}`));
|
|
42
|
+
const theme = { skins: mappings, skinsJs: relativeScript };
|
|
43
|
+
await writeFile(path.join(project.outputDir, KUI_THEME_OUTPUT_PATH), JSON.stringify(theme, undefined, '\t'));
|
|
44
|
+
logger.step(`compiled ${parsed.length} KUI skin(s) → ${ctx.outputs.skinsScript}`);
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function parseSkins(ctx, files) {
|
|
49
|
+
const parsed = [];
|
|
50
|
+
for (const file of files) {
|
|
51
|
+
try {
|
|
52
|
+
const document = parseUIDocument(file.contents);
|
|
53
|
+
if (document.assetKind !== 'appearance')
|
|
54
|
+
continue;
|
|
55
|
+
parsed.push({
|
|
56
|
+
document,
|
|
57
|
+
skin: { file, className: document.id },
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
reportDiagnostic(ctx, {
|
|
62
|
+
code: DIAGNOSTIC_CODES.KUI_COMPILE_FAILED,
|
|
63
|
+
severity: 'error',
|
|
64
|
+
message: `KUI parse failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
65
|
+
location: { file: file.relPath },
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return parsed;
|
|
70
|
+
}
|
|
71
|
+
function createDefaultMappings(ctx, skins) {
|
|
72
|
+
const result = {};
|
|
73
|
+
const sources = new Map();
|
|
74
|
+
for (const item of skins) {
|
|
75
|
+
if (item.document.contract.isDefault !== true)
|
|
76
|
+
continue;
|
|
77
|
+
const target = item.document.contract.targetType;
|
|
78
|
+
if (!target)
|
|
79
|
+
continue;
|
|
80
|
+
const key = target.split('.').pop() ?? target;
|
|
81
|
+
const previous = sources.get(key);
|
|
82
|
+
if (previous) {
|
|
83
|
+
reportDiagnostic(ctx, {
|
|
84
|
+
code: DIAGNOSTIC_CODES.KUI_DUPLICATE_DEFAULT,
|
|
85
|
+
severity: 'error',
|
|
86
|
+
message: `Default KUI skins for "${target}" are duplicated by ${previous} and ${item.skin.file.relPath}.`,
|
|
87
|
+
location: { file: item.skin.file.relPath },
|
|
88
|
+
});
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
sources.set(key, item.skin.file.relPath);
|
|
92
|
+
result[key] = item.skin.className;
|
|
93
|
+
}
|
|
94
|
+
return result;
|
|
95
|
+
}
|
|
96
|
+
async function collectKUIFiles(sourceDir, resourceDir) {
|
|
97
|
+
const results = [];
|
|
98
|
+
async function walk(directory) {
|
|
99
|
+
let entries;
|
|
100
|
+
try {
|
|
101
|
+
entries = await fs.readdir(directory, { withFileTypes: true });
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
if (error.code === 'ENOENT')
|
|
105
|
+
return;
|
|
106
|
+
throw error;
|
|
107
|
+
}
|
|
108
|
+
for (const entry of entries) {
|
|
109
|
+
const absolute = path.join(directory, entry.name);
|
|
110
|
+
if (entry.isDirectory()) {
|
|
111
|
+
await walk(absolute);
|
|
112
|
+
}
|
|
113
|
+
else if (entry.isFile() && entry.name.endsWith('.kui.xml')) {
|
|
114
|
+
results.push({
|
|
115
|
+
path: absolute,
|
|
116
|
+
relPath: toPosix(path.relative(resourceDir, absolute)),
|
|
117
|
+
contents: await fs.readFile(absolute, 'utf8'),
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
await walk(sourceDir);
|
|
123
|
+
return results.sort((left, right) => left.relPath.localeCompare(right.relPath));
|
|
124
|
+
}
|
|
125
|
+
function reportDiagnostic(ctx, diagnostic) {
|
|
126
|
+
ctx.diagnostics.report(diagnostic);
|
|
127
|
+
const location = diagnostic.location ? `${diagnostic.location.file}: ` : '';
|
|
128
|
+
if (diagnostic.severity === 'error') {
|
|
129
|
+
logger.error(`${location}${diagnostic.message}`);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
logger.warn(`${location}${diagnostic.message}`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
function throwIfInputInvalid(ctx) {
|
|
136
|
+
if (!ctx.diagnostics.hasErrors())
|
|
137
|
+
return;
|
|
138
|
+
throw new BuildError('KUI input validation failed.');
|
|
139
|
+
}
|
|
140
|
+
function toPosix(value) {
|
|
141
|
+
return value.split(path.sep).join('/');
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=compile-kui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile-kui.js","sourceRoot":"","sources":["../../../src/core/plugins/compile-kui.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,10 @@ import type { BuildPlugin } from '../pipeline.js';
|
|
|
2
2
|
/**
|
|
3
3
|
* Copies the project's `resource/` directory into the output.
|
|
4
4
|
*
|
|
5
|
-
* - The theme file is skipped — `compile
|
|
5
|
+
* - The theme file is skipped — `compile KUI` emits it with the resolved skin
|
|
6
6
|
* payload, so copying the source version would overwrite it.
|
|
7
|
-
* - `.
|
|
8
|
-
* compiled to a JS module and the runtime never reads raw `.
|
|
7
|
+
* - `.kui.xml` source files are skipped when KUI is enabled, since skins are
|
|
8
|
+
* compiled to a JS module and the runtime never reads raw `.kui.xml`.
|
|
9
9
|
*/
|
|
10
10
|
export declare function copyAssets(): BuildPlugin;
|
|
11
11
|
//# sourceMappingURL=copy-assets.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy-assets.d.ts","sourceRoot":"","sources":["../../../src/core/plugins/copy-assets.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"copy-assets.d.ts","sourceRoot":"","sources":["../../../src/core/plugins/copy-assets.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEhE;;;;;;;GAOG;AACH,wBAAgB,UAAU,IAAI,WAAW,CAkBxC"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import * as path from 'node:path';
|
|
2
2
|
import { copyDir, exists } from '../../utils/fs.js';
|
|
3
|
+
import { KUI_THEME_OUTPUT_PATH } from '../project.js';
|
|
3
4
|
/**
|
|
4
5
|
* Copies the project's `resource/` directory into the output.
|
|
5
6
|
*
|
|
6
|
-
* - The theme file is skipped — `compile
|
|
7
|
+
* - The theme file is skipped — `compile KUI` emits it with the resolved skin
|
|
7
8
|
* payload, so copying the source version would overwrite it.
|
|
8
|
-
* - `.
|
|
9
|
-
* compiled to a JS module and the runtime never reads raw `.
|
|
9
|
+
* - `.kui.xml` source files are skipped when KUI is enabled, since skins are
|
|
10
|
+
* compiled to a JS module and the runtime never reads raw `.kui.xml`.
|
|
10
11
|
*/
|
|
11
12
|
export function copyAssets() {
|
|
12
13
|
return {
|
|
@@ -15,13 +16,13 @@ export function copyAssets() {
|
|
|
15
16
|
const { project } = ctx;
|
|
16
17
|
if (!(await exists(project.resourceDir)))
|
|
17
18
|
return;
|
|
18
|
-
const
|
|
19
|
-
const themeName =
|
|
19
|
+
const ui = project.config.ui;
|
|
20
|
+
const themeName = ui ? path.basename(KUI_THEME_OUTPUT_PATH) : undefined;
|
|
20
21
|
const dest = path.join(project.outputDir, 'resource');
|
|
21
22
|
await copyDir(project.resourceDir, dest, name => {
|
|
22
23
|
if (name === themeName)
|
|
23
24
|
return false;
|
|
24
|
-
if (
|
|
25
|
+
if (ui && name.endsWith('.kui.xml'))
|
|
25
26
|
return false;
|
|
26
27
|
return true;
|
|
27
28
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy-assets.js","sourceRoot":"","sources":["../../../src/core/plugins/copy-assets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"copy-assets.js","sourceRoot":"","sources":["../../../src/core/plugins/copy-assets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAGtD;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU;IACzB,OAAO;QACN,IAAI,EAAE,aAAa;QACnB,KAAK,CAAC,KAAK,CAAC,GAAiB;YAC5B,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;YACxB,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAAE,OAAO;YAEjD,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAExE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACtD,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;gBAC/C,IAAI,IAAI,KAAK,SAAS;oBAAE,OAAO,KAAK,CAAC;gBACrC,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;oBAAE,OAAO,KAAK,CAAC;gBAClD,OAAO,IAAI,CAAC;YACb,CAAC,CAAC,CAAC;QACJ,CAAC;KACD,CAAC;AACH,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BuildPlugin } from '../pipeline.js';
|
|
2
2
|
export { cleanOutput } from './clean-output.js';
|
|
3
|
-
export {
|
|
3
|
+
export { compileKUI } from './compile-kui.js';
|
|
4
4
|
export { compileEngine } from './compile-engine.js';
|
|
5
5
|
export { compileCustomNamespaces } from './compile-custom-namespaces.js';
|
|
6
6
|
export { writeComponentCatalog } from './component-catalog.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAWlD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAWlD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;;;GASG;AACH,wBAAgB,cAAc,IAAI,WAAW,EAAE,CAY9C"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { cleanOutput } from './clean-output.js';
|
|
2
|
-
import {
|
|
2
|
+
import { compileKUI } from './compile-kui.js';
|
|
3
3
|
import { compileEngine } from './compile-engine.js';
|
|
4
4
|
import { compileCustomNamespaces } from './compile-custom-namespaces.js';
|
|
5
5
|
import { writeComponentCatalog } from './component-catalog.js';
|
|
@@ -8,7 +8,7 @@ import { generateHtml } from './generate-html.js';
|
|
|
8
8
|
import { writeManifest } from './manifest.js';
|
|
9
9
|
import { copyAssets } from './copy-assets.js';
|
|
10
10
|
export { cleanOutput } from './clean-output.js';
|
|
11
|
-
export {
|
|
11
|
+
export { compileKUI } from './compile-kui.js';
|
|
12
12
|
export { compileEngine } from './compile-engine.js';
|
|
13
13
|
export { compileCustomNamespaces } from './compile-custom-namespaces.js';
|
|
14
14
|
export { writeComponentCatalog } from './component-catalog.js';
|
|
@@ -29,7 +29,7 @@ export { copyAssets } from './copy-assets.js';
|
|
|
29
29
|
export function defaultPlugins() {
|
|
30
30
|
return [
|
|
31
31
|
cleanOutput(),
|
|
32
|
-
|
|
32
|
+
compileKUI(),
|
|
33
33
|
compileEngine(),
|
|
34
34
|
compileCustomNamespaces(),
|
|
35
35
|
writeComponentCatalog(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/plugins/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/plugins/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc;IAC7B,OAAO;QACN,WAAW,EAAE;QACb,UAAU,EAAE;QACZ,aAAa,EAAE;QACf,uBAAuB,EAAE;QACzB,qBAAqB,EAAE;QACvB,aAAa,EAAE;QACf,YAAY,EAAE;QACd,aAAa,EAAE;QACf,UAAU,EAAE;KACZ,CAAC;AACH,CAAC"}
|
package/dist/core/project.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import type { ProjectConfig } from './config.js';
|
|
|
4
4
|
*/
|
|
5
5
|
export type BuildMode = 'development' | 'release';
|
|
6
6
|
/**
|
|
7
|
-
* A project-defined
|
|
7
|
+
* A project-defined KUI namespace (Egret's `xmlns:game="game.*"` convention).
|
|
8
8
|
*
|
|
9
9
|
* `specifier` is the virtual module specifier used in generated `import`
|
|
10
10
|
* statements (e.g. `#ns/game`); it is resolved via an HTML import map to the
|
|
@@ -60,7 +60,7 @@ export interface ProjectComponent {
|
|
|
60
60
|
*/
|
|
61
61
|
readonly name: string;
|
|
62
62
|
/**
|
|
63
|
-
* Complete
|
|
63
|
+
* Complete KUI tag, including the configured namespace prefix.
|
|
64
64
|
*/
|
|
65
65
|
readonly tag: string;
|
|
66
66
|
/**
|
|
@@ -80,15 +80,15 @@ export interface ProjectComponent {
|
|
|
80
80
|
*/
|
|
81
81
|
readonly sourceRelative: string;
|
|
82
82
|
/**
|
|
83
|
-
* Absolute
|
|
83
|
+
* Absolute KUI skin path.
|
|
84
84
|
*/
|
|
85
85
|
readonly skin: string;
|
|
86
86
|
/**
|
|
87
|
-
* POSIX
|
|
87
|
+
* POSIX KUI skin path relative to the project root.
|
|
88
88
|
*/
|
|
89
89
|
readonly skinRelative: string;
|
|
90
90
|
/**
|
|
91
|
-
* Skin class declared by the
|
|
91
|
+
* Skin class declared by the KUI root.
|
|
92
92
|
*/
|
|
93
93
|
readonly skinClass: string;
|
|
94
94
|
}
|
|
@@ -131,20 +131,20 @@ export interface Project {
|
|
|
131
131
|
*/
|
|
132
132
|
readonly resourceDir: string;
|
|
133
133
|
/**
|
|
134
|
-
* Absolute
|
|
134
|
+
* Absolute directory containing authored KUI XML files.
|
|
135
135
|
*/
|
|
136
|
-
readonly
|
|
136
|
+
readonly uiSourceDir?: string;
|
|
137
137
|
/**
|
|
138
|
-
* Absolute path to the
|
|
138
|
+
* Absolute path to the project-owned HTML template, when configured.
|
|
139
139
|
*/
|
|
140
|
-
readonly
|
|
140
|
+
readonly htmlTemplate?: string;
|
|
141
141
|
/**
|
|
142
142
|
* `@kurot/*` engine packages this project depends on (excluding the CLI).
|
|
143
143
|
* Each is bundled into its own chunk and wired up via an HTML import map.
|
|
144
144
|
*/
|
|
145
145
|
readonly enginePackages: string[];
|
|
146
146
|
/**
|
|
147
|
-
* Project-defined
|
|
147
|
+
* Project-defined KUI namespaces from manual barrels and the generated
|
|
148
148
|
* reusable-component entry.
|
|
149
149
|
*/
|
|
150
150
|
readonly customNamespaces: CustomNamespace[];
|
|
@@ -164,6 +164,10 @@ export declare const OUTPUT_DIRS: {
|
|
|
164
164
|
readonly development: "bin-debug";
|
|
165
165
|
readonly release: "bin-release";
|
|
166
166
|
};
|
|
167
|
+
/**
|
|
168
|
+
* Fixed output path for the generated runtime theme manifest.
|
|
169
|
+
*/
|
|
170
|
+
export declare const KUI_THEME_OUTPUT_PATH = "resource/default.thm.json";
|
|
167
171
|
/**
|
|
168
172
|
* Loads and resolves the project rooted at the current working directory.
|
|
169
173
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/core/project.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,OAAO;IACvB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/core/project.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,OAAO;IACvB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,EAAE,eAAe,EAAE,CAAC;IAC7C;;OAEG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IACnD;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,gBAAgB,EAAE,CAAC;CACxC;AAID;;GAEG;AACH,eAAO,MAAM,WAAW;;;CAAgE,CAAC;AAEzF;;GAEG;AACH,eAAO,MAAM,qBAAqB,8BAA8B,CAAC;AAEjE;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAsCnE"}
|
package/dist/core/project.js
CHANGED
|
@@ -8,6 +8,10 @@ const NAMESPACE_SPECIFIER_PREFIX = '#ns/';
|
|
|
8
8
|
* Base output folder names, used by both build and clean.
|
|
9
9
|
*/
|
|
10
10
|
export const OUTPUT_DIRS = { development: 'bin-debug', release: 'bin-release' };
|
|
11
|
+
/**
|
|
12
|
+
* Fixed output path for the generated runtime theme manifest.
|
|
13
|
+
*/
|
|
14
|
+
export const KUI_THEME_OUTPUT_PATH = 'resource/default.thm.json';
|
|
11
15
|
/**
|
|
12
16
|
* Loads and resolves the project rooted at the current working directory.
|
|
13
17
|
*
|
|
@@ -22,10 +26,10 @@ export async function loadProject(mode) {
|
|
|
22
26
|
: path.resolve(root, config.output.dir);
|
|
23
27
|
const componentConvention = resolveComponentConvention(root, config);
|
|
24
28
|
const components = await discoverComponents(root, componentConvention);
|
|
25
|
-
const customNamespaces = resolveCustomNamespaces(root, config.
|
|
29
|
+
const customNamespaces = resolveCustomNamespaces(root, config.ui?.namespaces);
|
|
26
30
|
if (componentConvention) {
|
|
27
31
|
if (customNamespaces.some(namespace => namespace.prefix === componentConvention.prefix)) {
|
|
28
|
-
throw new ConfigError(`Invalid config:
|
|
32
|
+
throw new ConfigError(`Invalid config: ui.components.namespace '${componentConvention.prefix}' conflicts with ui.namespaces.${componentConvention.prefix}`);
|
|
29
33
|
}
|
|
30
34
|
customNamespaces.push({
|
|
31
35
|
prefix: componentConvention.prefix,
|
|
@@ -41,8 +45,8 @@ export async function loadProject(mode) {
|
|
|
41
45
|
srcDir: path.resolve(root, 'src'),
|
|
42
46
|
outputDir,
|
|
43
47
|
resourceDir: path.resolve(root, 'resource'),
|
|
48
|
+
uiSourceDir: config.ui ? path.resolve(root, config.ui.sourceDir) : undefined,
|
|
44
49
|
htmlTemplate: config.html ? path.resolve(root, config.html.template) : undefined,
|
|
45
|
-
themeFile: config.exml ? path.resolve(root, config.exml.themeFile) : undefined,
|
|
46
50
|
enginePackages: detectEnginePackages(root),
|
|
47
51
|
customNamespaces,
|
|
48
52
|
componentConvention,
|
|
@@ -50,7 +54,7 @@ export async function loadProject(mode) {
|
|
|
50
54
|
};
|
|
51
55
|
}
|
|
52
56
|
/**
|
|
53
|
-
* Resolves `config.
|
|
57
|
+
* Resolves `config.ui.namespaces` into `CustomNamespace` entries with
|
|
54
58
|
* absolute barrel paths.
|
|
55
59
|
*/
|
|
56
60
|
function resolveCustomNamespaces(root, namespaces) {
|
|
@@ -72,16 +76,16 @@ function resolveCustomNamespaces(root, namespaces) {
|
|
|
72
76
|
* @throws {ConfigError} If either configured directory escapes its required project root.
|
|
73
77
|
*/
|
|
74
78
|
function resolveComponentConvention(root, config) {
|
|
75
|
-
const components = config.
|
|
79
|
+
const components = config.ui?.components;
|
|
76
80
|
if (!components)
|
|
77
81
|
return undefined;
|
|
78
82
|
const sourceDir = path.resolve(root, components.sourceDir);
|
|
79
83
|
const skinDir = path.resolve(root, components.skinDir);
|
|
80
84
|
if (!isWithin(path.resolve(root, 'src'), sourceDir)) {
|
|
81
|
-
throw new ConfigError('Invalid config:
|
|
85
|
+
throw new ConfigError('Invalid config: ui.components.sourceDir must be inside the project src directory');
|
|
82
86
|
}
|
|
83
87
|
if (!isWithin(path.resolve(root, 'resource'), skinDir)) {
|
|
84
|
-
throw new ConfigError('Invalid config:
|
|
88
|
+
throw new ConfigError('Invalid config: ui.components.skinDir must be inside the project resource directory');
|
|
85
89
|
}
|
|
86
90
|
return {
|
|
87
91
|
prefix: components.namespace,
|
package/dist/core/project.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/core/project.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAsK1C,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAE1C;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAW,CAAC;AAEzF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAe;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAClC,MAAM,SAAS,GACd,IAAI,KAAK,SAAS;QACjB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC7D,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACvE,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/core/project.ts"],"names":[],"mappings":"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"}
|
package/dist/core/template.js
CHANGED
|
@@ -32,7 +32,7 @@ export async function scaffoldProject(name, template) {
|
|
|
32
32
|
if (template === 'game') {
|
|
33
33
|
await Promise.all([
|
|
34
34
|
ensureDir(path.join(destDir, 'src/components')),
|
|
35
|
-
ensureDir(path.join(destDir, 'resource/
|
|
35
|
+
ensureDir(path.join(destDir, 'resource/ui/components')),
|
|
36
36
|
]);
|
|
37
37
|
}
|
|
38
38
|
const pkgPath = path.join(destDir, 'package.json');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/core/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AASvE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;AACjE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;AAE9D;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,CAAU,CAAC;AAOpD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY,EAAE,QAAsB;IACzE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,kBAAkB,WAAW,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,kBAAkB,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACpC,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACzB,MAAM,OAAO,CAAC,GAAG,CAAC;YACjB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YAC/C,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/core/template.ts"],"names":[],"mappings":"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"}
|
package/dist/define.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export type { ProjectConfig, BuildTarget, StageConfig,
|
|
1
|
+
export type { ProjectConfig, BuildTarget, StageConfig, KUIConfig, ComponentsConfig, OutputConfig, } from './core/config.js';
|
|
2
2
|
//# sourceMappingURL=define.d.ts.map
|
package/dist/define.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,YAAY,GACZ,MAAM,kBAAkB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kurot/cli",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "Kurot CLI - build tool for
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "Kurot CLI - build tool for Kurot Editor KUI XML workflows",
|
|
5
5
|
"author": "Kelvin <kyia.x52@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "module",
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
"kurot": "tsx src/index.ts"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
+
"@kurot/ui-document": "^0.6.0",
|
|
30
31
|
"commander": "^13.0.0",
|
|
31
32
|
"esbuild": "^0.25.0"
|
|
32
33
|
},
|
|
@@ -40,7 +41,8 @@
|
|
|
40
41
|
"kurot",
|
|
41
42
|
"cli",
|
|
42
43
|
"game-engine",
|
|
43
|
-
"
|
|
44
|
+
"kui",
|
|
45
|
+
"xml",
|
|
44
46
|
"typescript"
|
|
45
47
|
],
|
|
46
48
|
"repository": {
|
|
@@ -10,12 +10,12 @@ export default {
|
|
|
10
10
|
orientation: 'auto',
|
|
11
11
|
frameRate: 60,
|
|
12
12
|
},
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
ui: {
|
|
14
|
+
sourceDir: 'resource/ui',
|
|
15
15
|
components: {
|
|
16
16
|
namespace: 'game',
|
|
17
17
|
sourceDir: 'src/components',
|
|
18
|
-
skinDir: 'resource/
|
|
18
|
+
skinDir: 'resource/ui/components',
|
|
19
19
|
},
|
|
20
20
|
},
|
|
21
21
|
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<Skin xmlns="https://kurot.dev/ui/1" id="skins.ButtonSkin" version="2" target="kui.Button" default="true">
|
|
3
|
+
<contract>
|
|
4
|
+
<parts>
|
|
5
|
+
<part name="iconDisplay" node="iconDisplay" />
|
|
6
|
+
<part name="labelDisplay" node="labelDisplay" />
|
|
7
|
+
</parts>
|
|
8
|
+
<states>
|
|
9
|
+
<state name="disabled">
|
|
10
|
+
<set target="node_image1" property="alpha" value="0.5" />
|
|
11
|
+
</state>
|
|
12
|
+
<state name="down">
|
|
13
|
+
<set target="node_image1" property="source" value="@resource:image:button_down_png" />
|
|
14
|
+
</state>
|
|
15
|
+
<state name="up">
|
|
16
|
+
</state>
|
|
17
|
+
</states>
|
|
18
|
+
</contract>
|
|
19
|
+
<Group id="root" minHeight="50" minWidth="100">
|
|
20
|
+
<Image id="node_image1" height="100%" scale9Grid="1,3,8,8" source="@resource:image:button_up_png" width="100%" />
|
|
21
|
+
<Label id="labelDisplay" bottom="8" left="8" right="8" size="20" textAlign="center" textColor="16777215" top="8" verticalAlign="middle" />
|
|
22
|
+
<Image id="iconDisplay" horizontalCenter="0" verticalCenter="0" />
|
|
23
|
+
</Group>
|
|
24
|
+
</Skin>
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<Skin xmlns="https://kurot.dev/ui/1" id="skins.CheckBoxSkin" version="2" target="kui.CheckBox" default="true">
|
|
3
|
+
<contract>
|
|
4
|
+
<parts>
|
|
5
|
+
<part name="labelDisplay" node="labelDisplay" />
|
|
6
|
+
</parts>
|
|
7
|
+
<states>
|
|
8
|
+
<state name="disabled">
|
|
9
|
+
<set target="node_image3" property="alpha" value="0.5" />
|
|
10
|
+
</state>
|
|
11
|
+
<state name="disabledAndSelected">
|
|
12
|
+
<set target="node_image3" property="source" value="@resource:image:checkbox_select_disabled_png" />
|
|
13
|
+
</state>
|
|
14
|
+
<state name="down">
|
|
15
|
+
<set target="node_image3" property="alpha" value="0.7" />
|
|
16
|
+
</state>
|
|
17
|
+
<state name="downAndSelected">
|
|
18
|
+
<set target="node_image3" property="source" value="@resource:image:checkbox_select_down_png" />
|
|
19
|
+
</state>
|
|
20
|
+
<state name="up">
|
|
21
|
+
</state>
|
|
22
|
+
<state name="upAndSelected">
|
|
23
|
+
<set target="node_image3" property="source" value="@resource:image:checkbox_select_up_png" />
|
|
24
|
+
</state>
|
|
25
|
+
</states>
|
|
26
|
+
</contract>
|
|
27
|
+
<Group id="root">
|
|
28
|
+
<Group id="node_group1" height="100%" width="100%">
|
|
29
|
+
<properties>
|
|
30
|
+
<property name="layout">
|
|
31
|
+
<object>
|
|
32
|
+
<value name="properties">
|
|
33
|
+
<object>
|
|
34
|
+
<value name="verticalAlign" value="middle" />
|
|
35
|
+
</object>
|
|
36
|
+
</value>
|
|
37
|
+
<value name="type" value="kui.HorizontalLayout" />
|
|
38
|
+
</object>
|
|
39
|
+
</property>
|
|
40
|
+
</properties>
|
|
41
|
+
<Image id="node_image3" alpha="1" fillMode="scale" source="@resource:image:checkbox_unselect_png" />
|
|
42
|
+
<Label id="labelDisplay" fontFamily="Tahoma" size="20" textAlign="center" textColor="7368816" verticalAlign="middle" />
|
|
43
|
+
</Group>
|
|
44
|
+
</Group>
|
|
45
|
+
</Skin>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<Skin xmlns="https://kurot.dev/ui/1" id="skins.ComboBoxSkin" version="2" target="kui.ComboBox" default="true">
|
|
3
|
+
<contract>
|
|
4
|
+
<parts>
|
|
5
|
+
<part name="dropDown" node="dropDown" />
|
|
6
|
+
<part name="labelDisplay" node="labelDisplay" />
|
|
7
|
+
<part name="list" node="list" />
|
|
8
|
+
</parts>
|
|
9
|
+
<states>
|
|
10
|
+
<state name="disabled">
|
|
11
|
+
<set target="node_rect1" property="fillColor" value="1450302" />
|
|
12
|
+
<set target="node_rect1" property="strokeColor" value="4871257" />
|
|
13
|
+
<set target="labelDisplay" property="textColor" value="6516338" />
|
|
14
|
+
</state>
|
|
15
|
+
<state name="normal">
|
|
16
|
+
</state>
|
|
17
|
+
<state name="open">
|
|
18
|
+
<set target="node_rect1" property="fillColor" value="1450302" />
|
|
19
|
+
<set target="node_rect1" property="strokeColor" value="7101671" />
|
|
20
|
+
<set target="node_label2" property="textColor" value="7101671" />
|
|
21
|
+
</state>
|
|
22
|
+
</states>
|
|
23
|
+
</contract>
|
|
24
|
+
<Group id="root" minHeight="36" minWidth="100">
|
|
25
|
+
<Rect id="node_rect1" fillColor="1710638" height="36" strokeColor="996448" strokeWeight="1" width="100%" />
|
|
26
|
+
<Label id="labelDisplay" height="36" left="10" right="36" size="14" textColor="14673641" top="0" verticalAlign="middle" />
|
|
27
|
+
<Label id="node_label2" height="36" right="4" size="10" text="▼" textAlign="center" textColor="6516338" top="0" verticalAlign="middle" width="24" />
|
|
28
|
+
<Scroller id="dropDown" height="180" left="0" right="0" top="36" visible="false">
|
|
29
|
+
<List id="list" height="180" width="100%" />
|
|
30
|
+
</Scroller>
|
|
31
|
+
</Group>
|
|
32
|
+
</Skin>
|