@kurot/cli 1.1.1 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/README.md +40 -9
  3. package/dist/commands/build.d.ts +3 -0
  4. package/dist/commands/build.d.ts.map +1 -1
  5. package/dist/commands/build.js +3 -0
  6. package/dist/commands/build.js.map +1 -1
  7. package/dist/commands/clean.d.ts +3 -0
  8. package/dist/commands/clean.d.ts.map +1 -1
  9. package/dist/commands/clean.js +3 -0
  10. package/dist/commands/clean.js.map +1 -1
  11. package/dist/commands/create.d.ts +3 -0
  12. package/dist/commands/create.d.ts.map +1 -1
  13. package/dist/commands/create.js +3 -0
  14. package/dist/commands/create.js.map +1 -1
  15. package/dist/commands/dev.d.ts +3 -0
  16. package/dist/commands/dev.d.ts.map +1 -1
  17. package/dist/commands/dev.js +5 -1
  18. package/dist/commands/dev.js.map +1 -1
  19. package/dist/core/components/discover-components.d.ts +16 -0
  20. package/dist/core/components/discover-components.d.ts.map +1 -0
  21. package/dist/core/components/discover-components.js +191 -0
  22. package/dist/core/components/discover-components.js.map +1 -0
  23. package/dist/core/config.d.ts +45 -17
  24. package/dist/core/config.d.ts.map +1 -1
  25. package/dist/core/config.js +16 -6
  26. package/dist/core/config.js.map +1 -1
  27. package/dist/core/dev-server.d.ts +5 -5
  28. package/dist/core/dev-server.d.ts.map +1 -1
  29. package/dist/core/dev-server.js +97 -25
  30. package/dist/core/dev-server.js.map +1 -1
  31. package/dist/core/diagnostics/output.d.ts +31 -0
  32. package/dist/core/diagnostics/output.d.ts.map +1 -1
  33. package/dist/core/diagnostics/output.js +13 -0
  34. package/dist/core/diagnostics/output.js.map +1 -1
  35. package/dist/core/diagnostics/types.d.ts +15 -0
  36. package/dist/core/diagnostics/types.d.ts.map +1 -1
  37. package/dist/core/errors.d.ts.map +1 -1
  38. package/dist/core/errors.js.map +1 -1
  39. package/dist/core/exml/ast.d.ts +27 -0
  40. package/dist/core/exml/ast.d.ts.map +1 -1
  41. package/dist/core/exml/codegen.d.ts +6 -7
  42. package/dist/core/exml/codegen.d.ts.map +1 -1
  43. package/dist/core/exml/codegen.js +57 -87
  44. package/dist/core/exml/codegen.js.map +1 -1
  45. package/dist/core/exml/exml-diagnostics.d.ts +2 -1
  46. package/dist/core/exml/exml-diagnostics.d.ts.map +1 -1
  47. package/dist/core/exml/exml-diagnostics.js +2 -2
  48. package/dist/core/exml/exml-diagnostics.js.map +1 -1
  49. package/dist/core/exml/exml-parser.d.ts +11 -11
  50. package/dist/core/exml/exml-parser.d.ts.map +1 -1
  51. package/dist/core/exml/exml-parser.js +93 -179
  52. package/dist/core/exml/exml-parser.js.map +1 -1
  53. package/dist/core/exml/index.d.ts +13 -13
  54. package/dist/core/exml/index.d.ts.map +1 -1
  55. package/dist/core/exml/index.js +12 -13
  56. package/dist/core/exml/index.js.map +1 -1
  57. package/dist/core/exml/registry.d.ts +39 -33
  58. package/dist/core/exml/registry.d.ts.map +1 -1
  59. package/dist/core/exml/registry.js +56 -43
  60. package/dist/core/exml/registry.js.map +1 -1
  61. package/dist/core/exml/skin-module-builder.d.ts +14 -0
  62. package/dist/core/exml/skin-module-builder.d.ts.map +1 -1
  63. package/dist/core/exml/skin-module-builder.js +8 -2
  64. package/dist/core/exml/skin-module-builder.js.map +1 -1
  65. package/dist/core/exml/xml-parser.d.ts +36 -26
  66. package/dist/core/exml/xml-parser.d.ts.map +1 -1
  67. package/dist/core/exml/xml-parser.js +133 -144
  68. package/dist/core/exml/xml-parser.js.map +1 -1
  69. package/dist/core/namespace-external-plugin.d.ts +5 -5
  70. package/dist/core/namespace-external-plugin.js +5 -5
  71. package/dist/core/pipeline.d.ts +59 -39
  72. package/dist/core/pipeline.d.ts.map +1 -1
  73. package/dist/core/pipeline.js +6 -1
  74. package/dist/core/pipeline.js.map +1 -1
  75. package/dist/core/plugins/clean-output.d.ts +3 -0
  76. package/dist/core/plugins/clean-output.d.ts.map +1 -1
  77. package/dist/core/plugins/clean-output.js +3 -1
  78. package/dist/core/plugins/clean-output.js.map +1 -1
  79. package/dist/core/plugins/compile-custom-namespaces.d.ts +6 -1
  80. package/dist/core/plugins/compile-custom-namespaces.d.ts.map +1 -1
  81. package/dist/core/plugins/compile-custom-namespaces.js +74 -11
  82. package/dist/core/plugins/compile-custom-namespaces.js.map +1 -1
  83. package/dist/core/plugins/compile-engine.d.ts +2 -4
  84. package/dist/core/plugins/compile-engine.d.ts.map +1 -1
  85. package/dist/core/plugins/compile-engine.js +5 -5
  86. package/dist/core/plugins/compile-engine.js.map +1 -1
  87. package/dist/core/plugins/compile-exml.d.ts.map +1 -1
  88. package/dist/core/plugins/compile-exml.js +18 -3
  89. package/dist/core/plugins/compile-exml.js.map +1 -1
  90. package/dist/core/plugins/compile-source.d.ts +1 -1
  91. package/dist/core/plugins/compile-source.d.ts.map +1 -1
  92. package/dist/core/plugins/compile-source.js +10 -8
  93. package/dist/core/plugins/compile-source.js.map +1 -1
  94. package/dist/core/plugins/component-catalog.d.ts +6 -0
  95. package/dist/core/plugins/component-catalog.d.ts.map +1 -0
  96. package/dist/core/plugins/component-catalog.js +30 -0
  97. package/dist/core/plugins/component-catalog.js.map +1 -0
  98. package/dist/core/plugins/copy-assets.d.ts +1 -2
  99. package/dist/core/plugins/copy-assets.d.ts.map +1 -1
  100. package/dist/core/plugins/copy-assets.js +1 -3
  101. package/dist/core/plugins/copy-assets.js.map +1 -1
  102. package/dist/core/plugins/generate-html.d.ts.map +1 -1
  103. package/dist/core/plugins/generate-html.js +1 -1
  104. package/dist/core/plugins/generate-html.js.map +1 -1
  105. package/dist/core/plugins/index.d.ts +1 -0
  106. package/dist/core/plugins/index.d.ts.map +1 -1
  107. package/dist/core/plugins/index.js +3 -0
  108. package/dist/core/plugins/index.js.map +1 -1
  109. package/dist/core/project.d.ts +85 -6
  110. package/dist/core/project.d.ts.map +1 -1
  111. package/dist/core/project.js +53 -8
  112. package/dist/core/project.js.map +1 -1
  113. package/dist/core/template.d.ts +8 -1
  114. package/dist/core/template.d.ts.map +1 -1
  115. package/dist/core/template.js +18 -8
  116. package/dist/core/template.js.map +1 -1
  117. package/dist/define.d.ts +1 -1
  118. package/dist/define.d.ts.map +1 -1
  119. package/dist/utils/fs.d.ts +15 -0
  120. package/dist/utils/fs.d.ts.map +1 -1
  121. package/dist/utils/fs.js +15 -0
  122. package/dist/utils/fs.js.map +1 -1
  123. package/dist/utils/logger.d.ts +7 -3
  124. package/dist/utils/logger.d.ts.map +1 -1
  125. package/dist/utils/logger.js +7 -3
  126. package/dist/utils/logger.js.map +1 -1
  127. package/package.json +1 -1
  128. package/templates/game/kurot.config.ts +4 -2
  129. package/templates/game/src/game-components.ts +0 -6
  130. /package/templates/game/resource/skins/{ButtonSkin.exml → eui/ButtonSkin.exml} +0 -0
  131. /package/templates/game/resource/skins/{CheckBoxSkin.exml → eui/CheckBoxSkin.exml} +0 -0
  132. /package/templates/game/resource/skins/{ComboBoxSkin.exml → eui/ComboBoxSkin.exml} +0 -0
  133. /package/templates/game/resource/skins/{GroupSkin.exml → eui/GroupSkin.exml} +0 -0
  134. /package/templates/game/resource/skins/{HScrollBarSkin.exml → eui/HScrollBarSkin.exml} +0 -0
  135. /package/templates/game/resource/skins/{HSliderSkin.exml → eui/HSliderSkin.exml} +0 -0
  136. /package/templates/game/resource/skins/{ImageSkin.exml → eui/ImageSkin.exml} +0 -0
  137. /package/templates/game/resource/skins/{ItemRendererSkin.exml → eui/ItemRendererSkin.exml} +0 -0
  138. /package/templates/game/resource/skins/{LabelSkin.exml → eui/LabelSkin.exml} +0 -0
  139. /package/templates/game/resource/skins/{ListSkin.exml → eui/ListSkin.exml} +0 -0
  140. /package/templates/game/resource/skins/{PanelSkin.exml → eui/PanelSkin.exml} +0 -0
  141. /package/templates/game/resource/skins/{ProgressBarSkin.exml → eui/ProgressBarSkin.exml} +0 -0
  142. /package/templates/game/resource/skins/{RadioButtonSkin.exml → eui/RadioButtonSkin.exml} +0 -0
  143. /package/templates/game/resource/skins/{ScrollerSkin.exml → eui/ScrollerSkin.exml} +0 -0
  144. /package/templates/game/resource/skins/{TabBarSkin.exml → eui/TabBarSkin.exml} +0 -0
  145. /package/templates/game/resource/skins/{TextInputSkin.exml → eui/TextInputSkin.exml} +0 -0
  146. /package/templates/game/resource/skins/{ToggleButtonSkin.exml → eui/ToggleButtonSkin.exml} +0 -0
  147. /package/templates/game/resource/skins/{ToggleSwitchSkin.exml → eui/ToggleSwitchSkin.exml} +0 -0
  148. /package/templates/game/resource/skins/{VScrollBarSkin.exml → eui/VScrollBarSkin.exml} +0 -0
  149. /package/templates/game/resource/skins/{VSliderSkin.exml → eui/VSliderSkin.exml} +0 -0
  150. /package/templates/game/resource/skins/{ViewStackSkin.exml → eui/ViewStackSkin.exml} +0 -0
@@ -4,31 +4,28 @@
4
4
  * Walks the XML tree produced by the lightweight XML parser and
5
5
  * produces an intermediate representation ready for code generation.
6
6
  */
7
- import { parseXML, filterElements, getTextContent } from './xml-parser.js';
8
- import { lookupComponent, localName, isPropertyNode, parsePropertyNode } from './registry.js';
7
+ import { filterElements, getTextContent, parseXML } from './xml-parser.js';
8
+ import { isPropertyNode, localName, lookupComponent, parsePropertyNode } from './registry.js';
9
9
  // ── Public API ───────────────────────────────────────────────────────
10
10
  /**
11
- * Parse an EXML source string into a SkinIR.
11
+ * Parses an EXML source string into a skin intermediate representation.
12
12
  *
13
- * @param source - EXML source text
14
- * @param className - Optional class name (used for factory function name)
15
- * @param customNamespaces - Project-defined EXML namespaces
16
- * @returns The parsed skin intermediate representation
13
+ * @param source - EXML source text.
14
+ * @param className - Optional class name used for the generated factory.
15
+ * @param customNamespaces - Project-defined EXML namespaces.
16
+ * @returns The parsed skin intermediate representation.
17
17
  */
18
18
  export function parseEXML(source, className, customNamespaces = []) {
19
19
  const root = parseXML(source);
20
20
  const ir = parseSkinRoot(root, customNamespaces);
21
- if (className) {
22
- ir.className = className;
23
- }
24
- return ir;
21
+ return className ? { ...ir, className } : ir;
25
22
  }
26
23
  /**
27
- * Parse an already-parsed XML root element into a SkinIR.
24
+ * Converts an already-parsed XML root into a skin intermediate representation.
28
25
  *
29
- * @param root - The parsed XML root element
30
- * @param customNamespaces - Project-defined EXML namespaces
31
- * @returns The parsed skin intermediate representation
26
+ * @param root - Parsed XML root element.
27
+ * @param customNamespaces - Project-defined EXML namespaces.
28
+ * @returns The parsed skin intermediate representation.
32
29
  */
33
30
  export function parseSkinRoot(root, customNamespaces = []) {
34
31
  const ctx = new ParseContext(customNamespaces);
@@ -37,51 +34,37 @@ export function parseSkinRoot(root, customNamespaces = []) {
37
34
  }
38
35
  // ── Parse context ────────────────────────────────────────────────────
39
36
  class ParseContext {
40
- customNamespaces;
41
- /**
42
- * Collected imports: className → module.
43
- */
44
- imports = new Map();
45
- /**
46
- * Skin part IDs.
47
- */
48
- skinParts = [];
49
- /**
50
- * All nodes (flat list for state processing).
51
- */
52
- allNodes = [];
53
- /**
54
- * State definitions.
55
- */
56
- states = [];
57
- /**
58
- * Declarations.
59
- */
60
- declarations = [];
61
- /**
62
- * Tag names that could not be resolved to a component or namespace.
63
- */
64
- unresolvedTags = [];
65
- /**
66
- * Counter for generating unique variable names.
67
- */
68
- varCounter = 0;
69
- constructor(customNamespaces) {
70
- this.customNamespaces = customNamespaces;
37
+ _customNamespaces;
38
+ // ── Instance fields ───────────────────────────────────────────────
39
+ _imports = new Map();
40
+ _skinParts = [];
41
+ _allNodes = [];
42
+ _states = [];
43
+ _declarations = [];
44
+ _unresolvedTags = [];
45
+ _rootProperties = [];
46
+ _idSet = new Set();
47
+ _className = '';
48
+ _width;
49
+ _height;
50
+ _varCounter = 0;
51
+ // ── Constructor ───────────────────────────────────────────────────
52
+ constructor(_customNamespaces) {
53
+ this._customNamespaces = _customNamespaces;
71
54
  }
55
+ // ── Public methods ────────────────────────────────────────────────
72
56
  /**
73
- * Process the root `<eui:Skin>` element.
57
+ * Processes the root `<eui:Skin>` element.
74
58
  */
75
59
  processRoot(root) {
76
- // Root should be a Skin tag
77
60
  const rootClass = localName(root.name);
78
61
  if (rootClass !== 'Skin') {
79
62
  throw new Error(`EXML: expected root element to be Skin, got "${rootClass}"`);
80
63
  }
81
- // Ensure Skin is imported
82
64
  this.addImport('Skin', '@kurot/ui');
83
- // Extract root-level properties (class, width, height, etc.)
84
65
  for (const attr of root.attributes) {
66
+ if (attr.name === 'xmlns' || attr.name.startsWith('xmlns:'))
67
+ continue;
85
68
  if (attr.name === 'class') {
86
69
  this._className = attr.value;
87
70
  }
@@ -92,64 +75,73 @@ class ParseContext {
92
75
  this._height = this.parseValue(attr.value);
93
76
  }
94
77
  else if (attr.name === 'states') {
95
- // Shorthand: states="up,down,disabled" → expand to StateDef list
96
78
  const stateNames = attr.value
97
79
  .split(',')
98
80
  .map(s => s.trim())
99
81
  .filter(Boolean);
100
82
  for (const name of stateNames) {
101
- if (!this.states.find(s => s.name === name)) {
102
- this.states.push({ name, stateGroups: [], overrides: [] });
83
+ if (!this._states.find(s => s.name === name)) {
84
+ this._states.push({ name, stateGroups: [], overrides: [] });
103
85
  }
104
86
  }
105
87
  }
106
- else if (attr.name === 'xmlns' || attr.name.startsWith('xmlns:')) {
107
- // Skip namespace declarations
108
- }
109
88
  else {
110
89
  const dotIndex = attr.name.indexOf('.');
111
- this.rootProperties.push({
90
+ this._rootProperties.push({
112
91
  name: dotIndex >= 0 ? attr.name.substring(0, dotIndex) : attr.name,
113
92
  state: dotIndex >= 0 ? attr.name.substring(dotIndex + 1) : '',
114
93
  value: this.parseValue(attr.value),
115
94
  });
116
95
  }
117
96
  }
118
- // First pass: collect state definitions from property children
119
- // (e.g. <eui:states><eui:State name="up"/></eui:states>)
97
+ // State names must exist before node attributes generate their overrides.
120
98
  const childElements = filterElements(root.children);
121
99
  this.collectStates(childElements);
122
- // Second pass: process non-state children
123
100
  for (const el of childElements) {
124
101
  const cls = localName(el.name);
125
102
  const isPropNode = isPropertyNode(el.name);
126
103
  const isLowerProp = cls.length > 0 && cls[0] === cls[0].toLowerCase();
127
- // Skip property nodes (dot notation or lowercase-first like <eui:states>)
128
104
  if (isPropNode || isLowerProp)
129
105
  continue;
130
106
  if (cls === 'Declarations') {
131
107
  this.processDeclarations(el);
132
108
  continue;
133
109
  }
134
- // Regular child node
135
110
  const node = this.parseNode(el);
136
111
  if (node) {
137
- this.allNodes.push(node);
112
+ this._allNodes.push(node);
138
113
  }
139
114
  }
140
- // Collect state-specific property overrides from nodes
141
115
  this.collectStateOverrides();
142
116
  }
143
117
  /**
144
- * Class name extracted from the root `class` attribute.
118
+ * Returns the completed immutable-facing skin representation.
145
119
  */
146
- _className = '';
147
- /**
148
- * Root width/height.
149
- */
150
- _width;
151
- _height;
152
- rootProperties = [];
120
+ toIR() {
121
+ let width;
122
+ let height;
123
+ if (this._width?.type === 'literal' && typeof this._width.value === 'number') {
124
+ width = this._width.value;
125
+ }
126
+ if (this._height?.type === 'literal' && typeof this._height.value === 'number') {
127
+ height = this._height.value;
128
+ }
129
+ return {
130
+ className: this._className,
131
+ superClassName: 'Skin',
132
+ width,
133
+ height,
134
+ properties: this._rootProperties,
135
+ imports: this._imports,
136
+ skinParts: this._skinParts,
137
+ children: this._allNodes,
138
+ propertyChildren: [],
139
+ states: this._states,
140
+ declarations: this._declarations,
141
+ unresolvedTags: this._unresolvedTags,
142
+ };
143
+ }
144
+ // ── Private methods ───────────────────────────────────────────────
153
145
  /**
154
146
  * Collect state definitions from children.
155
147
  *
@@ -159,38 +151,30 @@ class ParseContext {
159
151
  collectStates(childElements) {
160
152
  for (const el of childElements) {
161
153
  const cls = localName(el.name);
162
- // Direct State child
163
154
  if (cls === 'State') {
164
- this.states.push(this.parseState(el));
155
+ this._states.push(this.parseState(el));
165
156
  continue;
166
157
  }
167
- // Property child with lowercase first char (e.g. <eui:states>)
168
158
  const isLowerProp = cls.length > 0 && cls[0] === cls[0].toLowerCase();
169
159
  if (isLowerProp || isPropertyNode(el.name)) {
170
- // Look inside for State elements
171
160
  for (const child of filterElements(el.children)) {
172
161
  const childCls = localName(child.name);
173
162
  if (childCls === 'State') {
174
- this.states.push(this.parseState(child));
163
+ this._states.push(this.parseState(child));
175
164
  }
176
165
  }
177
166
  }
178
167
  }
179
168
  }
180
- /**
181
- * Process a `<Declarations>` element.
182
- */
183
169
  processDeclarations(el) {
184
170
  const children = filterElements(el.children);
185
171
  for (const child of children) {
186
172
  const node = this.parseNode(child);
187
- if (node)
188
- this.declarations.push(node);
173
+ if (node) {
174
+ this._declarations.push(node);
175
+ }
189
176
  }
190
177
  }
191
- /**
192
- * Parse a `State` element and its overrides.
193
- */
194
178
  parseState(el) {
195
179
  const nameAttr = this.getAttr(el, 'name') ?? '';
196
180
  const stateGroups = (this.getAttr(el, 'stateGroups') ?? '')
@@ -209,21 +193,15 @@ class ParseContext {
209
193
  }
210
194
  return { name: nameAttr, stateGroups, overrides };
211
195
  }
212
- /**
213
- * Parse an `AddItems` override.
214
- */
215
196
  parseAddItems(el) {
216
197
  return {
217
198
  type: 'AddItems',
218
199
  targetId: this.getAttr(el, 'target') ?? '',
219
200
  destinationId: this.getAttr(el, 'destination') ?? '',
220
- position: parseInt(this.getAttr(el, 'position') ?? '-1', 10),
201
+ position: Number.parseInt(this.getAttr(el, 'position') ?? '-1', 10),
221
202
  propertyName: this.getAttr(el, 'propertyName') ?? '',
222
203
  };
223
204
  }
224
- /**
225
- * Parse a `SetProperty` override.
226
- */
227
205
  parseSetProperty(el) {
228
206
  const rawValue = this.getAttr(el, 'value') ?? '';
229
207
  return {
@@ -233,25 +211,15 @@ class ParseContext {
233
211
  value: this.parseValue(rawValue),
234
212
  };
235
213
  }
236
- /**
237
- * Collected IDs for duplicate detection.
238
- */
239
- _idSet = new Set();
240
- /**
241
- * Parse a component XML element into a `SkinNode`.
242
- */
243
214
  parseNode(el) {
244
215
  const cls = localName(el.name);
245
- const info = lookupComponent(el.name, this.customNamespaces);
216
+ const info = lookupComponent(el.name, this._customNamespaces);
246
217
  if (!info) {
247
- // Unknown component — dropped from the generated skin; the caller
248
- // (see `unresolvedTags`) is responsible for surfacing this as a warning.
249
- this.unresolvedTags.push({ name: el.name, range: el.range });
250
- return null;
218
+ // Unknown nodes remain diagnostic data but never enter generated code.
219
+ this._unresolvedTags.push({ name: el.name, range: el.range });
220
+ return undefined;
251
221
  }
252
- // Register import
253
222
  this.addImport(cls, info.module);
254
- // Generate variable name
255
223
  const id = this.getAttr(el, 'id');
256
224
  if (id) {
257
225
  if (this._idSet.has(id)) {
@@ -260,11 +228,9 @@ class ParseContext {
260
228
  this._idSet.add(id);
261
229
  }
262
230
  const varName = id || this.genVar(cls);
263
- // Track skin parts
264
231
  if (id) {
265
- this.skinParts.push(id);
232
+ this._skinParts.push(id);
266
233
  }
267
- // Parse properties from attributes
268
234
  const properties = [];
269
235
  const includeIn = this.getAttr(el, 'includeIn')
270
236
  ?.split(',')
@@ -275,10 +241,9 @@ class ParseContext {
275
241
  for (const attr of el.attributes) {
276
242
  const attrName = attr.name;
277
243
  const attrValue = attr.value;
278
- // Skip special attributes
279
244
  if (attrName === 'id' || attrName === 'includeIn' || attrName === 'excludeFrom')
280
245
  continue;
281
- // Check for state-specific property (e.g. "label.up")
246
+ // Dotted attributes target a named skin state, for example `label.up`.
282
247
  const dotIdx = attrName.lastIndexOf('.');
283
248
  if (dotIdx > 0) {
284
249
  const prop = attrName.substring(0, dotIdx);
@@ -297,7 +262,6 @@ class ParseContext {
297
262
  });
298
263
  }
299
264
  }
300
- // Process child elements
301
265
  const children = [];
302
266
  const propertyChildren = [];
303
267
  for (const child of filterElements(el.children)) {
@@ -310,16 +274,15 @@ class ParseContext {
310
274
  const propertyName = parsed?.property ?? (isLowerProperty ? childClass : '');
311
275
  if (propertyName) {
312
276
  const childNodes = [];
313
- // Check for text content
314
277
  const text = getTextContent(child.children).trim();
315
278
  if (text) {
316
279
  childNodes.push(text);
317
280
  }
318
- // Check for element children
319
281
  for (const sub of filterElements(child.children)) {
320
282
  const node = this.parseNode(sub);
321
- if (node)
283
+ if (node) {
322
284
  childNodes.push(node);
285
+ }
323
286
  }
324
287
  propertyChildren.push({
325
288
  propertyName,
@@ -328,14 +291,12 @@ class ParseContext {
328
291
  }
329
292
  continue;
330
293
  }
331
- // Regular child → goes to default property
294
+ // Ordinary children are assigned through the component's default property.
332
295
  const childNode = this.parseNode(child);
333
296
  if (childNode) {
334
297
  children.push(childNode);
335
298
  }
336
299
  }
337
- // Check for text content (useful for Label, etc.)
338
- const textContent = getTextContent(el.children).trim();
339
300
  return {
340
301
  className: cls,
341
302
  module: info.module,
@@ -349,52 +310,45 @@ class ParseContext {
349
310
  };
350
311
  }
351
312
  /**
352
- * Parse a raw attribute value string into a `PropertyValue`.
313
+ * Coerces EXML attributes in protocol order: binding, percent, boolean,
314
+ * `null`, number, then string.
353
315
  */
354
316
  parseValue(raw) {
355
- // Check for binding expression {expr}
356
317
  const bindingMatch = raw.match(/^\{(.+)\}$/);
357
318
  if (bindingMatch) {
358
319
  return { type: 'binding', expression: bindingMatch[1].trim() };
359
320
  }
360
- // Check for percent value
361
321
  if (raw.endsWith('%')) {
362
- const num = parseFloat(raw);
363
- if (!isNaN(num)) {
322
+ const num = Number.parseFloat(raw);
323
+ if (!Number.isNaN(num)) {
364
324
  return { type: 'percent', value: num };
365
325
  }
366
326
  }
367
- // Check for boolean
368
327
  if (raw === 'true')
369
328
  return { type: 'literal', value: true };
370
329
  if (raw === 'false')
371
330
  return { type: 'literal', value: false };
372
- // Check for null
373
331
  if (raw === 'null')
374
332
  return { type: 'literal', value: null };
375
- // Check for number
376
333
  const num = Number(raw);
377
- if (raw !== '' && !isNaN(num)) {
334
+ if (raw !== '' && !Number.isNaN(num)) {
378
335
  return { type: 'literal', value: num };
379
336
  }
380
- // Default to string
381
- return { type: 'literal', value: raw };
337
+ // Egret EXML treats the two-character `\n` sequence in string
338
+ // attributes as a hard line break before generating runtime code.
339
+ return { type: 'literal', value: raw.replace(/\\n/g, '\n') };
382
340
  }
383
341
  /**
384
- * After all nodes are parsed, collect state-specific overrides.
342
+ * Converts `includeIn` and `excludeFrom` membership into `AddItems` overrides.
385
343
  */
386
344
  collectStateOverrides() {
387
- // Process includeIn/excludeFrom on nodes → generate AddItems overrides
388
- for (const node of this.allNodes) {
345
+ for (const node of this._allNodes) {
389
346
  const includedStates = node.includeIn.length > 0
390
347
  ? node.includeIn
391
348
  : node.excludeFrom.length > 0
392
- ? this.states.map(state => state.name).filter(name => !node.excludeFrom.includes(name))
349
+ ? this._states.map(state => state.name).filter(name => !node.excludeFrom.includes(name))
393
350
  : [];
394
351
  if (includedStates.length > 0) {
395
- // Node should only exist in specified states
396
- // Generate AddItems for each state, and the node is NOT added to
397
- // elementsContent by default — it's only added via state overrides
398
352
  for (const stateName of includedStates) {
399
353
  this.addStateOverride(stateName, {
400
354
  type: 'AddItems',
@@ -407,60 +361,20 @@ class ParseContext {
407
361
  }
408
362
  }
409
363
  }
410
- /**
411
- * Add an override to an existing state definition.
412
- */
413
364
  addStateOverride(stateName, override) {
414
- const state = this.states.find(s => s.name === stateName);
365
+ const state = this._states.find(s => s.name === stateName);
415
366
  if (state) {
416
367
  state.overrides.push(override);
417
368
  }
418
369
  }
419
- /**
420
- * Generate a unique variable name.
421
- */
422
370
  genVar(base) {
423
- return `_${base.charAt(0).toLowerCase() + base.slice(1)}${++this.varCounter}`;
371
+ return `_${base.charAt(0).toLowerCase() + base.slice(1)}${++this._varCounter}`;
424
372
  }
425
- /**
426
- * Get an attribute value by name.
427
- */
428
373
  getAttr(el, name) {
429
374
  return el.attributes.find(a => a.name === name)?.value;
430
375
  }
431
- /**
432
- * Register an import.
433
- */
434
376
  addImport(className, module) {
435
- this.imports.set(className, module);
436
- }
437
- /**
438
- * Build the final `SkinIR`.
439
- */
440
- toIR() {
441
- // Extract numeric width/height (percent not valid for skin itself)
442
- let width;
443
- let height;
444
- if (this._width?.type === 'literal' && typeof this._width.value === 'number') {
445
- width = this._width.value;
446
- }
447
- if (this._height?.type === 'literal' && typeof this._height.value === 'number') {
448
- height = this._height.value;
449
- }
450
- return {
451
- className: this._className,
452
- superClassName: 'Skin',
453
- width,
454
- height,
455
- properties: this.rootProperties,
456
- imports: this.imports,
457
- skinParts: this.skinParts,
458
- children: this.allNodes,
459
- propertyChildren: [],
460
- states: this.states,
461
- declarations: this.declarations,
462
- unresolvedTags: this.unresolvedTags,
463
- };
377
+ this._imports.set(className, module);
464
378
  }
465
379
  }
466
380
  //# sourceMappingURL=exml-parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"exml-parser.js","sourceRoot":"","sources":["../../../src/core/exml/exml-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exml-parser.js","sourceRoot":"","sources":["../../../src/core/exml/exml-parser.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,9 @@
14
14
  * const jsCode = generateCode(ir);
15
15
  * ```
16
16
  */
17
+ import type { SkinIR } from './ast.js';
18
+ import type { CodeGenOptions } from './codegen.js';
19
+ import type { NamespaceModule } from './registry.js';
17
20
  export { parseXML, filterElements, getTextContent } from './xml-parser.js';
18
21
  export type { SourceRange, XNode, XText, XAttribute, XElement } from './xml-parser.js';
19
22
  export { SourceLocator, createSourceLocator } from './source-location.js';
@@ -24,9 +27,6 @@ export type { ComponentInfo, NamespaceModule } from './registry.js';
24
27
  export { parseEXML, parseSkinRoot } from './exml-parser.js';
25
28
  export { generateCode } from './codegen.js';
26
29
  export type { CodeGenOptions } from './codegen.js';
27
- import type { CodeGenOptions } from './codegen.js';
28
- import type { NamespaceModule } from './registry.js';
29
- import type { SkinIR } from './ast.js';
30
30
  export interface CompileExmlOptions extends CodeGenOptions {
31
31
  /**
32
32
  * Project-defined EXML namespaces (see `ProjectConfig.exml.namespaces`).
@@ -34,21 +34,21 @@ export interface CompileExmlOptions extends CodeGenOptions {
34
34
  customNamespaces?: readonly NamespaceModule[];
35
35
  }
36
36
  /**
37
- * Compile an EXML source string directly to JavaScript.
37
+ * Compiles an EXML source string directly to JavaScript.
38
38
  *
39
- * @param source - EXML source text
40
- * @param className - Optional class name (used for factory function name)
41
- * @param options - Code generation options, plus project-defined namespaces
42
- * @returns Generated JS source string
39
+ * @param source - EXML source text.
40
+ * @param className - Optional class name used for the factory function name.
41
+ * @param options - Code generation options and project-defined namespaces.
42
+ * @returns Generated JavaScript source.
43
43
  */
44
44
  export declare function compileEXML(source: string, className?: string, options?: CompileExmlOptions): string;
45
45
  /**
46
- * Compile an EXML source string to a SkinIR (parse only, no codegen).
46
+ * Parses an EXML source string into its intermediate representation.
47
47
  *
48
- * @param source - EXML source text
49
- * @param className - Optional class name
50
- * @param customNamespaces - Project-defined EXML namespaces
51
- * @returns SkinIR intermediate representation
48
+ * @param source - EXML source text.
49
+ * @param className - Optional skin class name.
50
+ * @param customNamespaces - Project-defined EXML namespaces.
51
+ * @returns The parsed skin intermediate representation.
52
52
  */
53
53
  export declare function parseToIR(source: string, className?: string, customNamespaces?: readonly NamespaceModule[]): SkinIR;
54
54
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/exml/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC3E,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,YAAY,EACX,MAAM,EACN,QAAQ,EACR,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACV,aAAa,GACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EACN,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,mBAAmB,GACnB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGpE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAG5D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAMnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACzD;;OAEG;IACH,gBAAgB,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;CAC9C;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAGpG;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACxB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,gBAAgB,GAAE,SAAS,eAAe,EAAO,GAC/C,MAAM,CAER"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/exml/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,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;AAGrD,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC3E,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,YAAY,EACX,MAAM,EACN,QAAQ,EACR,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACV,aAAa,GACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EACN,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,mBAAmB,GACnB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGpE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAG5D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACzD;;OAEG;IACH,gBAAgB,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;CAC9C;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAGpG;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACxB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,gBAAgB,GAAE,SAAS,eAAe,EAAO,GAC/C,MAAM,CAER"}