@kurot/cli 2.0.2 → 3.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 +26 -0
- package/README.md +15 -3
- package/dist/core/dev-server.d.ts.map +1 -1
- package/dist/core/dev-server.js +50 -16
- package/dist/core/dev-server.js.map +1 -1
- package/dist/core/kui/codegen.js +20 -4
- package/dist/core/kui/codegen.js.map +1 -1
- package/dist/core/kui/index.d.ts +4 -5
- package/dist/core/kui/index.d.ts.map +1 -1
- package/dist/core/kui/index.js +4 -4
- package/dist/core/kui/index.js.map +1 -1
- package/dist/core/kui/kui-parser.d.ts +2 -1
- package/dist/core/kui/kui-parser.d.ts.map +1 -1
- package/dist/core/kui/kui-parser.js +3 -3
- package/dist/core/kui/kui-parser.js.map +1 -1
- package/dist/core/kui/skin-module-builder.d.ts.map +1 -1
- package/dist/core/kui/skin-module-builder.js +14 -3
- package/dist/core/kui/skin-module-builder.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,32 @@ All notable changes to `@kurot/cli` are documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## 3.0.0 — 2026-10-03
|
|
9
|
+
|
|
10
|
+
### Breaking Changes
|
|
11
|
+
|
|
12
|
+
- KUI builds reject resource manifests with comma-separated sheet `subkeys`.
|
|
13
|
+
Refresh each sheet in the Editor to produce an object-valued frame map before
|
|
14
|
+
building with this CLI.
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- Resolve resource nine-slice defaults into disposable Skin compilation copies.
|
|
19
|
+
Explicit XML grids and `false` opt-outs take precedence; source states clear
|
|
20
|
+
or replace inherited grids without changing authored XML.
|
|
21
|
+
- Development mode watches `resource/default.res.json`, serializes resource
|
|
22
|
+
and component rebuilds, and retains the last good Skin bundle when manifest
|
|
23
|
+
validation fails.
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
|
|
27
|
+
- Require `@kurot/ui-document@^0.7.0` for the shared resource parser and
|
|
28
|
+
default resolver.
|
|
29
|
+
|
|
30
|
+
### Tests
|
|
31
|
+
|
|
32
|
+
- Added parser, generated Skin, and development rebuild regressions.
|
|
33
|
+
|
|
8
34
|
## 2.0.2 — 2026-09-22
|
|
9
35
|
|
|
10
36
|
### Changed
|
package/README.md
CHANGED
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
Build tooling for the Kurot UI Editor workflow. It uses esbuild, emits ES2022
|
|
4
4
|
ESM, and compiles canonical KUI XML skins into runtime theme modules.
|
|
5
5
|
|
|
6
|
-
> **
|
|
6
|
+
> **Prepared release: 3.0.0.** Node.js 20 or later is required.
|
|
7
7
|
|
|
8
|
-
> **Release scope:** The
|
|
8
|
+
> **Release scope:** The 3.x line is dedicated to Kurot Editor integration.
|
|
9
9
|
> Existing game projects that use EXML, including CrashMaster, should remain on
|
|
10
|
-
> `@kurot/cli@1.3.x`.
|
|
10
|
+
> `@kurot/cli@1.3.x`. The KUI toolchain is not an in-place project upgrade and does
|
|
11
11
|
> not require those projects to change their configuration or UI assets.
|
|
12
12
|
|
|
13
13
|
See [CHANGELOG.md](CHANGELOG.md) for release history.
|
|
@@ -186,3 +186,15 @@ my-game/
|
|
|
186
186
|
│ └── Main.ts
|
|
187
187
|
└── template/web/index.html
|
|
188
188
|
```
|
|
189
|
+
|
|
190
|
+
## Resource defaults in 3.0.0
|
|
191
|
+
|
|
192
|
+
KUI builds validate `resource/default.res.json` and inherit image or sheet-frame
|
|
193
|
+
`scale9grid` values into compiled `Image.scale9Grid` when XML does not set one.
|
|
194
|
+
Local grids and `scale9Grid="false"` take priority. Development mode rebuilds
|
|
195
|
+
skins after manifest edits; a malformed manifest leaves the last good Skin
|
|
196
|
+
bundle in place. This release requires `@kurot/ui-document@^0.7.0`.
|
|
197
|
+
|
|
198
|
+
Sheet `subkeys` must be an object-valued frame map. Refresh old sheets in the
|
|
199
|
+
Editor before upgrading a KUI project; string-valued subkeys now fail the build.
|
|
200
|
+
See the [resource nine-slice contract](../ui-document/docs/resource-nine-slice.md).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-server.d.ts","sourceRoot":"","sources":["../../src/core/dev-server.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,WAAW,gBAAgB;IAChC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;CAC7C;AAwBD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"dev-server.d.ts","sourceRoot":"","sources":["../../src/core/dev-server.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,WAAW,gBAAgB;IAChC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;CAC7C;AAwBD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC/F"}
|
package/dist/core/dev-server.js
CHANGED
|
@@ -58,8 +58,9 @@ export async function startDevServer(project, options) {
|
|
|
58
58
|
options.onEvent?.({ type: 'build-complete', success: false, durationMs: Date.now() - startedAt });
|
|
59
59
|
throw error;
|
|
60
60
|
}
|
|
61
|
-
const
|
|
62
|
-
|
|
61
|
+
const enqueue = createResourceBuildQueue(ctx);
|
|
62
|
+
const componentSkinsWatched = watchComponents(project, ctx, options, enqueue);
|
|
63
|
+
watchResources(project, ctx, options, componentSkinsWatched, enqueue);
|
|
63
64
|
const server = startHttpServer(project, options);
|
|
64
65
|
process.on('SIGINT', async () => {
|
|
65
66
|
logger.info('Stopping dev server...');
|
|
@@ -69,24 +70,24 @@ export async function startDevServer(project, options) {
|
|
|
69
70
|
});
|
|
70
71
|
}
|
|
71
72
|
/**
|
|
72
|
-
* Recompiles KUI
|
|
73
|
+
* Recompiles KUI when authored skins or their resource default configuration change.
|
|
73
74
|
*/
|
|
74
|
-
function watchResources(project, ctx, options, componentSkinsWatched) {
|
|
75
|
+
function watchResources(project, ctx, options, componentSkinsWatched, enqueue) {
|
|
75
76
|
if (!project.config.ui)
|
|
76
77
|
return;
|
|
77
78
|
let debounce;
|
|
78
79
|
let watcher;
|
|
79
80
|
try {
|
|
80
81
|
watcher = fsSync.watch(project.resourceDir, { recursive: true }, (_event, filename) => {
|
|
81
|
-
if (!filename || !filename.endsWith('.kui.xml'))
|
|
82
|
+
if (!filename || (!filename.endsWith('.kui.xml') && filename !== 'default.res.json'))
|
|
82
83
|
return;
|
|
83
|
-
if (componentSkinsWatched && project.componentConvention) {
|
|
84
|
+
if (filename.endsWith('.kui.xml') && componentSkinsWatched && project.componentConvention) {
|
|
84
85
|
const changed = path.resolve(project.resourceDir, filename);
|
|
85
86
|
if (isWithin(project.componentConvention.skinDir, changed))
|
|
86
87
|
return;
|
|
87
88
|
}
|
|
88
89
|
clearTimeout(debounce);
|
|
89
|
-
debounce = setTimeout(async () => {
|
|
90
|
+
debounce = setTimeout(() => enqueue(async () => {
|
|
90
91
|
const startedAt = Date.now();
|
|
91
92
|
options.onEvent?.({ type: 'build-start', reason: 'kui-change' });
|
|
92
93
|
logger.info(`KUI changed: ${path.basename(filename)}, recompiling...`);
|
|
@@ -94,27 +95,38 @@ function watchResources(project, ctx, options, componentSkinsWatched) {
|
|
|
94
95
|
await compileKUI().apply(ctx);
|
|
95
96
|
await copyAssets().apply(ctx);
|
|
96
97
|
emitDiagnostics(ctx, options);
|
|
97
|
-
options.onEvent?.({
|
|
98
|
+
options.onEvent?.({
|
|
99
|
+
type: 'build-complete',
|
|
100
|
+
success: true,
|
|
101
|
+
durationMs: Date.now() - startedAt,
|
|
102
|
+
});
|
|
98
103
|
}
|
|
99
104
|
catch (err) {
|
|
100
105
|
emitDiagnostics(ctx, options);
|
|
101
|
-
options.onEvent?.({
|
|
106
|
+
options.onEvent?.({
|
|
107
|
+
type: 'build-complete',
|
|
108
|
+
success: false,
|
|
109
|
+
durationMs: Date.now() - startedAt,
|
|
110
|
+
});
|
|
102
111
|
logger.error(`KUI recompile failed: ${err instanceof Error ? err.message : err}`);
|
|
103
112
|
}
|
|
104
|
-
}, 100);
|
|
113
|
+
}), 100);
|
|
105
114
|
});
|
|
106
115
|
}
|
|
107
116
|
catch {
|
|
108
117
|
logger.warn('KUI watcher unavailable (recursive fs.watch unsupported on this platform).');
|
|
109
118
|
return;
|
|
110
119
|
}
|
|
111
|
-
ctx.disposers.push(() =>
|
|
120
|
+
ctx.disposers.push(() => {
|
|
121
|
+
clearTimeout(debounce);
|
|
122
|
+
watcher.close();
|
|
123
|
+
});
|
|
112
124
|
}
|
|
113
125
|
/**
|
|
114
126
|
* Refreshes the component model and dependent artifacts when a reusable
|
|
115
127
|
* component source or skin changes.
|
|
116
128
|
*/
|
|
117
|
-
function watchComponents(project, ctx, options) {
|
|
129
|
+
function watchComponents(project, ctx, options, enqueue) {
|
|
118
130
|
const convention = project.componentConvention;
|
|
119
131
|
if (!convention)
|
|
120
132
|
return false;
|
|
@@ -123,7 +135,7 @@ function watchComponents(project, ctx, options) {
|
|
|
123
135
|
let skinWatcherActive = false;
|
|
124
136
|
const schedule = () => {
|
|
125
137
|
clearTimeout(debounce);
|
|
126
|
-
debounce = setTimeout(async () => {
|
|
138
|
+
debounce = setTimeout(() => enqueue(async () => {
|
|
127
139
|
const startedAt = Date.now();
|
|
128
140
|
options.onEvent?.({ type: 'build-start', reason: 'source-change' });
|
|
129
141
|
try {
|
|
@@ -133,14 +145,22 @@ function watchComponents(project, ctx, options) {
|
|
|
133
145
|
await writeComponentCatalog().apply(ctx);
|
|
134
146
|
await copyAssets().apply(ctx);
|
|
135
147
|
emitDiagnostics(ctx, options);
|
|
136
|
-
options.onEvent?.({
|
|
148
|
+
options.onEvent?.({
|
|
149
|
+
type: 'build-complete',
|
|
150
|
+
success: true,
|
|
151
|
+
durationMs: Date.now() - startedAt,
|
|
152
|
+
});
|
|
137
153
|
}
|
|
138
154
|
catch (error) {
|
|
139
155
|
emitDiagnostics(ctx, options);
|
|
140
|
-
options.onEvent?.({
|
|
156
|
+
options.onEvent?.({
|
|
157
|
+
type: 'build-complete',
|
|
158
|
+
success: false,
|
|
159
|
+
durationMs: Date.now() - startedAt,
|
|
160
|
+
});
|
|
141
161
|
logger.error(`Component refresh failed: ${error instanceof Error ? error.message : error}`);
|
|
142
162
|
}
|
|
143
|
-
}, 100);
|
|
163
|
+
}), 100);
|
|
144
164
|
};
|
|
145
165
|
for (const [directory, kind, accepts] of [
|
|
146
166
|
[convention.sourceDir, 'source', (file) => file.endsWith('.ts')],
|
|
@@ -169,6 +189,20 @@ function watchComponents(project, ctx, options) {
|
|
|
169
189
|
});
|
|
170
190
|
return skinWatcherActive;
|
|
171
191
|
}
|
|
192
|
+
function createResourceBuildQueue(ctx) {
|
|
193
|
+
let pending = Promise.resolve();
|
|
194
|
+
let disposed = false;
|
|
195
|
+
ctx.disposers.push(() => {
|
|
196
|
+
disposed = true;
|
|
197
|
+
});
|
|
198
|
+
return action => {
|
|
199
|
+
pending = pending.then(async () => {
|
|
200
|
+
if (!disposed) {
|
|
201
|
+
await action();
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
};
|
|
205
|
+
}
|
|
172
206
|
function isWithin(directory, file) {
|
|
173
207
|
const relative = path.relative(directory, file);
|
|
174
208
|
return relative === '' || (!relative.startsWith('..') && !path.isAbsolute(relative));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-server.js","sourceRoot":"","sources":["../../src/core/dev-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EACN,UAAU,EACV,aAAa,EACb,uBAAuB,EACvB,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,UAAU,GACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gCAAgC,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAwB5C,MAAM,UAAU,GAA2B;IAC1C,OAAO,EAAE,0BAA0B;IACnC,KAAK,EAAE,wBAAwB;IAC/B,MAAM,EAAE,wBAAwB;IAChC,MAAM,EAAE,kBAAkB;IAC1B,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,kBAAkB;IAC3B,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,eAAe;IACvB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,YAAY;IACtB,MAAM,EAAE,UAAU;CAClB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAgB,EAAE,OAAyB;IAC/E,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1G,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9D,IAAI,CAAC;QACJ,MAAM,WAAW,CAAC,GAAG,EAAE;YACtB,UAAU,EAAE;YACZ,aAAa,EAAE;YACf,uBAAuB,EAAE;YACzB,qBAAqB,EAAE;YACvB,aAAa,EAAE;YACf,YAAY,EAAE;YACd,UAAU,EAAE;SACZ,CAAC,CAAC;QACH,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;IAClG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;QAClG,MAAM,KAAK,CAAC;IACb,CAAC;IAED,MAAM,qBAAqB,GAAG,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"dev-server.js","sourceRoot":"","sources":["../../src/core/dev-server.ts"],"names":[],"mappings":"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"}
|
package/dist/core/kui/codegen.js
CHANGED
|
@@ -46,8 +46,7 @@ class CodeGenerator {
|
|
|
46
46
|
}
|
|
47
47
|
moduleImports.get(modulePath).add(className);
|
|
48
48
|
}
|
|
49
|
-
//
|
|
50
|
-
// comma-separated form used by the runtime compiler.
|
|
49
|
+
// Resource defaults and authored rectangles share the same runtime constructor.
|
|
51
50
|
if (this.hasPropertyInTree('scale9Grid')) {
|
|
52
51
|
if (!moduleImports.has('@kurot/core')) {
|
|
53
52
|
moduleImports.set('@kurot/core', new Set());
|
|
@@ -185,6 +184,22 @@ class CodeGenerator {
|
|
|
185
184
|
}
|
|
186
185
|
}
|
|
187
186
|
propertyValueToJS(prop, value) {
|
|
187
|
+
if (prop === 'scale9Grid' && value.type === 'literal' && value.value === false) {
|
|
188
|
+
return 'undefined';
|
|
189
|
+
}
|
|
190
|
+
if (prop === 'scale9Grid' &&
|
|
191
|
+
value.type === 'literal' &&
|
|
192
|
+
value.value &&
|
|
193
|
+
typeof value.value === 'object' &&
|
|
194
|
+
'x' in value.value &&
|
|
195
|
+
'y' in value.value &&
|
|
196
|
+
'width' in value.value &&
|
|
197
|
+
'height' in value.value) {
|
|
198
|
+
const { x, y, width, height } = value.value;
|
|
199
|
+
if ([x, y, width, height].every(part => typeof part === 'number' && Number.isFinite(part))) {
|
|
200
|
+
return `new Rectangle(${[x, y, width, height].join(', ')})`;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
188
203
|
if (prop === 'scale9Grid' && value.type === 'literal' && typeof value.value === 'string') {
|
|
189
204
|
const parts = value.value.split(',').map(part => Number(part.trim()));
|
|
190
205
|
if (parts.length === 4 && parts.every(Number.isFinite)) {
|
|
@@ -209,13 +224,14 @@ class CodeGenerator {
|
|
|
209
224
|
return `create${base}`;
|
|
210
225
|
}
|
|
211
226
|
hasPropertyInTree(propertyName) {
|
|
212
|
-
if (this._ir.properties.some(prop => prop.name === propertyName)
|
|
227
|
+
if (this._ir.properties.some(prop => prop.name === propertyName) ||
|
|
228
|
+
this._ir.states.some(state => state.overrides.some(override => override.name === propertyName)))
|
|
213
229
|
return true;
|
|
214
230
|
const visit = (nodes) => {
|
|
215
231
|
for (const node of nodes) {
|
|
216
232
|
if (node.properties.some(prop => prop.name === propertyName))
|
|
217
233
|
return true;
|
|
218
|
-
if (visit(node.children))
|
|
234
|
+
if (visit(node.children) || node.propertyChildren.some(child => visit(child.nodes)))
|
|
219
235
|
return true;
|
|
220
236
|
}
|
|
221
237
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/core/kui/codegen.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAWhD;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,EAAU,EAAE,QAAyB;IACjE,OAAO,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;AACzC,CAAC;AAED,wEAAwE;AAExE,MAAM,aAAa;IAClB,qEAAqE;IAEpD,GAAG,CAAS;IACZ,MAAM,GAAa,EAAE,CAAC;IAC/B,OAAO,GAAG,CAAC,CAAC;IAEpB,qEAAqE;IAErE,YAAmB,EAAU;QAC5B,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;IACf,CAAC;IAED,qEAAqE;IAE9D,QAAQ;QACd,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACtC,CAAC;IAED,qEAAqE;IAE7D,UAAU;QACjB,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM,UAAU,CAAC,CAAC;QACvE,IAAI,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,CAAC;IAEO,WAAW;QAClB,MAAM,aAAa,GAAG,IAAI,GAAG,EAAuB,CAAC;QACrD,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACxD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;YAC1C,CAAC;YACD,aAAa,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC;QAED,
|
|
1
|
+
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/core/kui/codegen.ts"],"names":[],"mappings":"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"}
|
package/dist/core/kui/index.d.ts
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
* KUI Skin parser and ESM factory generator.
|
|
3
|
-
*/
|
|
1
|
+
import type { UIResourceConfigEntry } from '@kurot/ui-document';
|
|
4
2
|
import type { SkinIR } from './ast.js';
|
|
5
3
|
import type { CodeGenOptions } from './codegen.js';
|
|
6
4
|
import type { NamespaceModule } from './registry.js';
|
|
7
5
|
export { SourceLocator, createSourceLocator } from './source-location.js';
|
|
8
6
|
export type { SourcePosition } from './source-location.js';
|
|
9
7
|
export type { SkinIR, SkinNode, PropertyAssignment, PropertyValue, PropertyChild, LiteralValue, PercentValue, StateDef, StateOverride, StateSetProperty, UnresolvedTag, } from './ast.js';
|
|
10
|
-
export { lookupComponent, localName, suggestComponentTag
|
|
8
|
+
export { lookupComponent, localName, suggestComponentTag } from './registry.js';
|
|
11
9
|
export type { ComponentInfo, NamespaceModule } from './registry.js';
|
|
12
10
|
export { parseKUISkin } from './kui-parser.js';
|
|
13
11
|
export { generateCode } from './codegen.js';
|
|
@@ -17,6 +15,7 @@ export interface CompileKUIOptions extends CodeGenOptions {
|
|
|
17
15
|
* Project-defined KUI component namespaces.
|
|
18
16
|
*/
|
|
19
17
|
readonly customNamespaces?: readonly NamespaceModule[];
|
|
18
|
+
readonly resources?: readonly UIResourceConfigEntry[];
|
|
20
19
|
}
|
|
21
20
|
/**
|
|
22
21
|
* Compiles one KUI Skin source string to an ESM factory module.
|
|
@@ -25,5 +24,5 @@ export declare function compileKUI(source: string, className?: string, options?:
|
|
|
25
24
|
/**
|
|
26
25
|
* Parses one KUI Skin source string into the compiler IR.
|
|
27
26
|
*/
|
|
28
|
-
export declare function parseToIR(source: string, className?: string, customNamespaces?: readonly NamespaceModule[]): SkinIR;
|
|
27
|
+
export declare function parseToIR(source: string, className?: string, customNamespaces?: readonly NamespaceModule[], resources?: readonly UIResourceConfigEntry[]): SkinIR;
|
|
29
28
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/kui/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/kui/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAOhE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,YAAY,EACX,MAAM,EACN,QAAQ,EACR,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,aAAa,GACb,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAChF,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACxD;;OAEG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACvD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACtD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAGlG;AAED;;GAEG;AACH,wBAAgB,SAAS,CACxB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,gBAAgB,GAAE,SAAS,eAAe,EAAO,EACjD,SAAS,GAAE,SAAS,qBAAqB,EAAO,GAC9C,MAAM,CAER"}
|
package/dist/core/kui/index.js
CHANGED
|
@@ -4,20 +4,20 @@
|
|
|
4
4
|
import { generateCode } from './codegen.js';
|
|
5
5
|
import { parseKUISkin } from './kui-parser.js';
|
|
6
6
|
export { SourceLocator, createSourceLocator } from './source-location.js';
|
|
7
|
-
export { lookupComponent, localName, suggestComponentTag
|
|
7
|
+
export { lookupComponent, localName, suggestComponentTag } from './registry.js';
|
|
8
8
|
export { parseKUISkin } from './kui-parser.js';
|
|
9
9
|
export { generateCode } from './codegen.js';
|
|
10
10
|
/**
|
|
11
11
|
* Compiles one KUI Skin source string to an ESM factory module.
|
|
12
12
|
*/
|
|
13
13
|
export function compileKUI(source, className, options) {
|
|
14
|
-
const ir = parseKUISkin(source, className, options?.customNamespaces ?? []);
|
|
14
|
+
const ir = parseKUISkin(source, className, options?.customNamespaces ?? [], options?.resources ?? []);
|
|
15
15
|
return generateCode(ir, options);
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* Parses one KUI Skin source string into the compiler IR.
|
|
19
19
|
*/
|
|
20
|
-
export function parseToIR(source, className, customNamespaces = []) {
|
|
21
|
-
return parseKUISkin(source, className, customNamespaces);
|
|
20
|
+
export function parseToIR(source, className, customNamespaces = [], resources = []) {
|
|
21
|
+
return parseKUISkin(source, className, customNamespaces, resources);
|
|
22
22
|
}
|
|
23
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/kui/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/kui/index.ts"],"names":[],"mappings":"AACA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAK/C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAiB1E,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGhF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAW5C;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,SAAkB,EAAE,OAA2B;IACzF,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;IACtG,OAAO,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACxB,MAAc,EACd,SAAkB,EAClB,mBAA+C,EAAE,EACjD,YAA8C,EAAE;IAEhD,OAAO,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import type { UIResourceConfigEntry } from '@kurot/ui-document';
|
|
1
2
|
import type { SkinIR } from './ast.js';
|
|
2
3
|
import type { NamespaceModule } from './registry.js';
|
|
3
4
|
/**
|
|
4
5
|
* Parses a KUI Skin document into the existing skin code-generation IR.
|
|
5
6
|
*/
|
|
6
|
-
export declare function parseKUISkin(source: string, className
|
|
7
|
+
export declare function parseKUISkin(source: string, className?: string, customNamespaces?: readonly NamespaceModule[], resources?: readonly UIResourceConfigEntry[]): SkinIR;
|
|
7
8
|
//# sourceMappingURL=kui-parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kui-parser.d.ts","sourceRoot":"","sources":["../../../src/core/kui/kui-parser.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAIX,MAAM,EAIN,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD;;GAEG;AACH,wBAAgB,YAAY,CAC3B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"kui-parser.d.ts","sourceRoot":"","sources":["../../../src/core/kui/kui-parser.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAuC,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,KAAK,EAIX,MAAM,EAIN,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD;;GAEG;AACH,wBAAgB,YAAY,CAC3B,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,gBAAgB,GAAE,SAAS,eAAe,EAAO,EACjD,SAAS,GAAE,SAAS,qBAAqB,EAAO,GAC9C,MAAM,CAGR"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { isUIAssetReference, isUIDesignTokenReference, isUIResourceReference, isSyntheticNodeId, parseUIDocument, } from '@kurot/ui-document';
|
|
1
|
+
import { isUIAssetReference, isUIDesignTokenReference, isUIResourceReference, isSyntheticNodeId, parseUIDocument, resolveUIResourceDefaults, } from '@kurot/ui-document';
|
|
2
2
|
import { localName, lookupComponent } from './registry.js';
|
|
3
3
|
/**
|
|
4
4
|
* Parses a KUI Skin document into the existing skin code-generation IR.
|
|
5
5
|
*/
|
|
6
|
-
export function parseKUISkin(source, className, customNamespaces = []) {
|
|
7
|
-
const document = parseUIDocument(source);
|
|
6
|
+
export function parseKUISkin(source, className, customNamespaces = [], resources = []) {
|
|
7
|
+
const document = resolveUIResourceDefaults(parseUIDocument(source), resources);
|
|
8
8
|
return new KUIParseContext(source, document, className ?? document.id, customNamespaces).parse();
|
|
9
9
|
}
|
|
10
10
|
class KUIParseContext {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kui-parser.js","sourceRoot":"","sources":["../../../src/core/kui/kui-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,
|
|
1
|
+
{"version":3,"file":"kui-parser.js","sourceRoot":"","sources":["../../../src/core/kui/kui-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skin-module-builder.d.ts","sourceRoot":"","sources":["../../../src/core/kui/skin-module-builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"skin-module-builder.d.ts","sourceRoot":"","sources":["../../../src/core/kui/skin-module-builder.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,OAAO;IACvB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAuCnH"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { parseUIResourceConfigEntries } from '@kurot/ui-document';
|
|
1
2
|
import * as esbuild from 'esbuild';
|
|
2
3
|
import * as fs from 'node:fs/promises';
|
|
3
4
|
import * as os from 'node:os';
|
|
@@ -16,7 +17,17 @@ import { generateCode, parseToIR } from './index.js';
|
|
|
16
17
|
export async function buildSkinsModule(ctx, skins) {
|
|
17
18
|
const temporaryRoot = await fs.mkdtemp(path.join(os.tmpdir(), 'kurot-skins-'));
|
|
18
19
|
try {
|
|
19
|
-
const
|
|
20
|
+
const manifestPath = path.join(ctx.project.resourceDir, 'default.res.json');
|
|
21
|
+
let resources = [];
|
|
22
|
+
try {
|
|
23
|
+
resources = parseUIResourceConfigEntries(JSON.parse(await fs.readFile(manifestPath, 'utf8')));
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
if (error.code !== 'ENOENT') {
|
|
27
|
+
throw new BuildError(`Resource configuration failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
const modules = await Promise.all(skins.map(skin => generateSkinModule(ctx, skin, resources)));
|
|
20
31
|
if (modules.some(module => module === undefined) || ctx.diagnostics.hasErrors()) {
|
|
21
32
|
throw new BuildError('KUI compilation failed.');
|
|
22
33
|
}
|
|
@@ -37,14 +48,14 @@ export async function buildSkinsModule(ctx, skins) {
|
|
|
37
48
|
await fs.rm(temporaryRoot, { recursive: true, force: true });
|
|
38
49
|
}
|
|
39
50
|
}
|
|
40
|
-
async function generateSkinModule(ctx, skin) {
|
|
51
|
+
async function generateSkinModule(ctx, skin, resources) {
|
|
41
52
|
try {
|
|
42
53
|
const namespaces = ctx.project.customNamespaces.map(ns => ({
|
|
43
54
|
prefix: ns.prefix,
|
|
44
55
|
specifier: ns.specifier,
|
|
45
56
|
...(ns.components ? { componentNames: new Set(ns.components.map(component => component.name)) } : {}),
|
|
46
57
|
}));
|
|
47
|
-
const ir = parseToIR(skin.file.contents, skin.className, namespaces);
|
|
58
|
+
const ir = parseToIR(skin.file.contents, skin.className, namespaces, resources);
|
|
48
59
|
const diagnostics = createUnresolvedTagDiagnostics(skin.file.relPath, skin.file.contents, ir.unresolvedTags, namespaces);
|
|
49
60
|
for (const diagnostic of diagnostics) {
|
|
50
61
|
ctx.diagnostics.report(diagnostic);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skin-module-builder.js","sourceRoot":"","sources":["../../../src/core/kui/skin-module-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,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,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA0CrD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAiB,EAAE,KAA8B;IACvF,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IAC/E,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"skin-module-builder.js","sourceRoot":"","sources":["../../../src/core/kui/skin-module-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,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,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA0CrD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAiB,EAAE,KAA8B;IACvF,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IAC/E,IAAI,CAAC;QACJ,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAC5E,IAAI,SAAS,GAAqC,EAAE,CAAC;QACrD,IAAI,CAAC;YACJ,SAAS,GAAG,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACxD,MAAM,IAAI,UAAU,CACnB,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC1F,CAAC;YACH,CAAC;QACF,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/F,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC;YACjF,MAAM,IAAI,UAAU,CAAC,yBAAyB,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CACrC,CAAC,MAAM,EAA8C,EAAE,CAAC,MAAM,KAAK,SAAS,CAC5E,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACrD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9D,MAAM,OAAO,CAAC,GAAG,CAChB,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,KAAK,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAC1G,CAAC;QACF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QAE9E,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAC9D,MAAM,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;QACnF,OAAO;YACN,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;SACjD,CAAC;IACH,CAAC;YAAS,CAAC;QACV,MAAM,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;AACF,CAAC;AAED,KAAK,UAAU,kBAAkB,CAChC,GAAiB,EACjB,IAAkB,EAClB,SAA2C;IAE3C,IAAI,CAAC;QACJ,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1D,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,SAAS,EAAE,EAAE,CAAC,SAAS;YACvB,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrG,CAAC,CAAC,CAAC;QACJ,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAChF,MAAM,WAAW,GAAG,8BAA8B,CACjD,IAAI,CAAC,IAAI,CAAC,OAAO,EACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAClB,EAAE,CAAC,cAAc,EACjB,UAAU,CACV,CAAC;QACF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACtC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,QAAQ,EAAE,IAAI,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,OAAO;YACN,MAAM,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YAC3C,IAAI,EAAE,EAAE;SACR,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,UAAU,GAAe;YAC9B,IAAI,EAAE,gBAAgB,CAAC,kBAAkB;YACzC,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,uBAAuB,OAAO,EAAE;YACzC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;SACrC,CAAC;QACF,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC;AAED,SAAS,WAAW,CAAC,KAA8B;IAClD,OAAO,KAAK;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACpB,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjD,OAAO,CACN,YAAY,YAAY,QAAQ,KAAK,kBAAkB,KAAK,SAAS;YACrE,cAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,GAAG,CAC5D,CAAC;IACH,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,GAAiB,EAAE,OAAe,EAAE,SAAiB;IAC/E,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IACxB,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC;IAC7C,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACjH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC;QAClC,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC7C,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,aAAa;QAChE,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,CAAC,GAAG,cAAc,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;KAClF,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACxF,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,gBAAgB,CAAC,CAAC;AAClD,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,SAAiB,EAAE,UAAkB,EAAE,cAAsB;IACzF,MAAM,SAAS,CAAC,cAAc,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC;IAChF,IAAI,CAAC;QACJ,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACrD,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC;QAChE,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;IACpE,CAAC;YAAS,CAAC;QACV,MAAM,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;AACF,CAAC;AAED,SAAS,WAAW,CAAC,SAAiB;IACrC,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IACpF,OAAO,SAAS,IAAI,EAAE,CAAC;AACxB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kurot/cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "Kurot CLI - build tool for Kurot Editor KUI XML workflows",
|
|
5
5
|
"author": "Kelvin <kyia.x52@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"kurot": "tsx src/index.ts"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@kurot/ui-document": "^0.
|
|
30
|
+
"@kurot/ui-document": "^0.7.0",
|
|
31
31
|
"commander": "^13.0.0",
|
|
32
32
|
"esbuild": "^0.25.0"
|
|
33
33
|
},
|