@openfairygui/cli 0.2.4 → 0.2.5

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 (2) hide show
  1. package/dist/cli.mjs +83 -7
  2. package/package.json +4 -4
package/dist/cli.mjs CHANGED
@@ -864,7 +864,7 @@ var ExtensibleProperty = class extends Property {
864
864
  };
865
865
  //#endregion
866
866
  //#region ../core/src/constants.ts
867
- const VERSION = `v0.2.4`;
867
+ const VERSION = `v0.2.5`;
868
868
  /** Binary package file magic number: "FGUI" as uint32. */
869
869
  const FGUI_MAGIC = 1179080009;
870
870
  /** Null string index in the binary string table. */
@@ -6526,6 +6526,10 @@ var Controller = class extends ExtensibleProperty {
6526
6526
  return Object.assign(super.getDefaults(), {
6527
6527
  selectedIndex: 0,
6528
6528
  autoRadioGroupDepth: false,
6529
+ alias: "",
6530
+ exported: false,
6531
+ homePageType: "default",
6532
+ homePage: "",
6529
6533
  pages: new RefList(),
6530
6534
  actions: new RefList()
6531
6535
  });
@@ -6542,6 +6546,30 @@ var Controller = class extends ExtensibleProperty {
6542
6546
  setAutoRadioGroupDepth(v) {
6543
6547
  return this.set("autoRadioGroupDepth", v);
6544
6548
  }
6549
+ getAlias() {
6550
+ return this.get("alias");
6551
+ }
6552
+ setAlias(v) {
6553
+ return this.set("alias", v);
6554
+ }
6555
+ getExported() {
6556
+ return this.get("exported");
6557
+ }
6558
+ setExported(v) {
6559
+ return this.set("exported", v);
6560
+ }
6561
+ getHomePageType() {
6562
+ return this.get("homePageType");
6563
+ }
6564
+ setHomePageType(v) {
6565
+ return this.set("homePageType", v);
6566
+ }
6567
+ getHomePage() {
6568
+ return this.get("homePage");
6569
+ }
6570
+ setHomePage(v) {
6571
+ return this.set("homePage", v);
6572
+ }
6545
6573
  addPage(page) {
6546
6574
  return this.addRef("pages", page);
6547
6575
  }
@@ -16687,7 +16715,12 @@ const GEAR_ATTRS = {
16687
16715
  const CONTROLLER_ATTRS = {
16688
16716
  name: { canonical: "name" },
16689
16717
  pages: { canonical: "pages" },
16690
- selected: { canonical: "selected" }
16718
+ selected: { canonical: "selected" },
16719
+ alias: { canonical: "alias" },
16720
+ autoRadioGroupDepth: { canonical: "autoRadioGroupDepth" },
16721
+ exported: { canonical: "exported" },
16722
+ homePageType: { canonical: "homePageType" },
16723
+ homePage: { canonical: "homePage" }
16691
16724
  };
16692
16725
  const CONTROLLER_ACTION_ATTRS = {
16693
16726
  type: { canonical: "type" },
@@ -18355,6 +18388,12 @@ const EXTENSION_TYPE_MAP = {
18355
18388
  Slider: "GSlider",
18356
18389
  ScrollBar: "GScrollBar"
18357
18390
  };
18391
+ const CONTROLLER_HOME_PAGE_TYPES = new Set([
18392
+ "default",
18393
+ "specific",
18394
+ "branch",
18395
+ "variable"
18396
+ ]);
18358
18397
  const EXTENSION_PROTOCOL_MAP$1 = {
18359
18398
  Button: PROJECT_XML_PROTOCOL.buttonExtension,
18360
18399
  Label: PROJECT_XML_PROTOCOL.labelExtension,
@@ -18679,7 +18718,9 @@ function readComponentXml(ctx, comp, xmlContent) {
18679
18718
  const ctrlName = readXmlAttr(ctrlDef, PROJECT_XML_PROTOCOL.controller.attrs.name) ?? "";
18680
18719
  const ctrl = doc.createController(ctrlName);
18681
18720
  const selected = readXmlAttr(ctrlDef, PROJECT_XML_PROTOCOL.controller.attrs.selected);
18682
- ctrl.setSelectedIndex(parseInt2(selected));
18721
+ const homePageType = readXmlAttr(ctrlDef, PROJECT_XML_PROTOCOL.controller.attrs.homePageType) ?? "default";
18722
+ if (!CONTROLLER_HOME_PAGE_TYPES.has(homePageType)) throw new Error(`Controller "${ctrlName}" has unsupported homePageType "${homePageType}".`);
18723
+ ctrl.setSelectedIndex(parseInt2(selected)).setAlias(readXmlAttr(ctrlDef, PROJECT_XML_PROTOCOL.controller.attrs.alias) ?? "").setAutoRadioGroupDepth(parseBool(readXmlAttr(ctrlDef, PROJECT_XML_PROTOCOL.controller.attrs.autoRadioGroupDepth))).setExported(parseBool(readXmlAttr(ctrlDef, PROJECT_XML_PROTOCOL.controller.attrs.exported))).setHomePageType(homePageType).setHomePage(readXmlAttr(ctrlDef, PROJECT_XML_PROTOCOL.controller.attrs.homePage) ?? "");
18683
18724
  const pages = parseControllerPages(readXmlAttr(ctrlDef, PROJECT_XML_PROTOCOL.controller.attrs.pages) ?? "");
18684
18725
  for (const page of pages) {
18685
18726
  const p = doc.createControllerPage(page.name);
@@ -20661,6 +20702,11 @@ function serializeController(ctrl) {
20661
20702
  writeXmlAttr(attrs, PROJECT_XML_PROTOCOL.controller.attrs.name, ctrl.getName());
20662
20703
  writeXmlAttr(attrs, PROJECT_XML_PROTOCOL.controller.attrs.pages, pagesStr);
20663
20704
  writeXmlAttr(attrs, PROJECT_XML_PROTOCOL.controller.attrs.selected, String(ctrl.getSelectedIndex()));
20705
+ if (ctrl.getAlias()) writeXmlAttr(attrs, PROJECT_XML_PROTOCOL.controller.attrs.alias, ctrl.getAlias());
20706
+ if (ctrl.getAutoRadioGroupDepth()) writeXmlAttr(attrs, PROJECT_XML_PROTOCOL.controller.attrs.autoRadioGroupDepth, "true");
20707
+ if (ctrl.getExported()) writeXmlAttr(attrs, PROJECT_XML_PROTOCOL.controller.attrs.exported, "true");
20708
+ if (ctrl.getHomePageType() !== "default") writeXmlAttr(attrs, PROJECT_XML_PROTOCOL.controller.attrs.homePageType, ctrl.getHomePageType());
20709
+ if (ctrl.getHomePageType() === "specific" || ctrl.getHomePageType() === "variable") writeXmlAttr(attrs, PROJECT_XML_PROTOCOL.controller.attrs.homePage, ctrl.getHomePage());
20664
20710
  const actions = ctrl.listActions().map((action) => serializeControllerAction(action));
20665
20711
  const actionChildName = getProtocolChildName(PROJECT_XML_PROTOCOL.controller, "action");
20666
20712
  if (actions.length > 0 && actionChildName) attrs[actionChildName] = actions;
@@ -21451,21 +21497,31 @@ function decodeComponentControllers(doc, resource, buf) {
21451
21497
  controller.addPage(page);
21452
21498
  }
21453
21499
  let homePageIndex = 0;
21500
+ let homePageType = controller.getHomePageType();
21501
+ let homePage = "";
21454
21502
  if (controllerBuf.version >= 2 && remainingBytes(controllerBuf) >= 1) switch (controllerBuf.getUint8()) {
21455
21503
  case 1:
21456
- if (remainingBytes(controllerBuf) >= 2) homePageIndex = controllerBuf.getInt16();
21504
+ homePageType = "specific";
21505
+ if (remainingBytes(controllerBuf) >= 2) {
21506
+ homePageIndex = controllerBuf.getInt16();
21507
+ homePage = controller.listPages()[homePageIndex]?.getId() ?? "";
21508
+ }
21457
21509
  break;
21458
21510
  case 2:
21511
+ homePageType = "branch";
21459
21512
  homePageIndex = 0;
21460
21513
  break;
21461
21514
  case 3:
21462
- if (remainingBytes(controllerBuf) >= 2) controllerBuf.readS();
21515
+ homePageType = "variable";
21516
+ if (remainingBytes(controllerBuf) >= 2) homePage = controllerBuf.readS() ?? "";
21463
21517
  homePageIndex = 0;
21464
21518
  break;
21465
21519
  default:
21520
+ homePageType = "default";
21466
21521
  homePageIndex = 0;
21467
21522
  break;
21468
21523
  }
21524
+ controller.setHomePageType(homePageType).setHomePage(homePage);
21469
21525
  if (controller.listPages().length > 0) {
21470
21526
  const maxIndex = controller.listPages().length - 1;
21471
21527
  controller.setSelectedIndex(Math.min(Math.max(homePageIndex, 0), maxIndex));
@@ -23093,7 +23149,27 @@ function _writeControllers(buf, comp) {
23093
23149
  buf.writeSEx(page.getId?.() ?? "", false, false);
23094
23150
  buf.writeSEx(page.getName?.() ?? "", false, false);
23095
23151
  }
23096
- buf.writeUint8(0);
23152
+ switch (ctrl.getHomePageType()) {
23153
+ case "default":
23154
+ buf.writeUint8(0);
23155
+ break;
23156
+ case "specific": {
23157
+ const homePageIndex = pages.findIndex((page) => page.getId() === ctrl.getHomePage());
23158
+ if (homePageIndex < 0) throw new Error(`Controller "${ctrl.getName()}" references unknown home page id "${ctrl.getHomePage()}".`);
23159
+ buf.writeUint8(1);
23160
+ buf.writeInt16(homePageIndex);
23161
+ break;
23162
+ }
23163
+ case "branch":
23164
+ buf.writeUint8(2);
23165
+ break;
23166
+ case "variable":
23167
+ if (!ctrl.getHomePage()) throw new Error(`Controller "${ctrl.getName()}" requires a custom property key.`);
23168
+ buf.writeUint8(3);
23169
+ buf.writeS(ctrl.getHomePage());
23170
+ break;
23171
+ default: throw new Error(`Controller "${ctrl.getName()}" has unsupported home page type.`);
23172
+ }
23097
23173
  const cb2 = buf.pos - ctrlIndexPos;
23098
23174
  const actions = ctrl.listActions?.() ?? [];
23099
23175
  buf.writeInt16(actions.length);
@@ -29550,7 +29626,7 @@ function registerRestoreCommand(program) {
29550
29626
  //#region src/utils/package-version.ts
29551
29627
  const require$1 = createRequire(import.meta.url);
29552
29628
  function getInjectedPackageVersion() {
29553
- const version = "0.2.4";
29629
+ const version = "0.2.5";
29554
29630
  return typeof version === "string" && true ? version : null;
29555
29631
  }
29556
29632
  function readPackageVersion() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openfairygui/cli",
3
- "version": "0.2.4",
3
+ "version": "0.2.5",
4
4
  "description": "FairyGUI Headless Authoring SDK — command-line interface.",
5
5
  "author": "OpenFairyGUI Contributors",
6
6
  "license": "MIT",
@@ -33,13 +33,13 @@
33
33
  "restore"
34
34
  ],
35
35
  "devDependencies": {
36
- "@openfairygui/core": "0.2.4",
37
- "@openfairygui/functions": "0.2.4"
36
+ "@openfairygui/functions": "0.2.5",
37
+ "@openfairygui/core": "0.2.5"
38
38
  },
39
39
  "dependencies": {
40
40
  "commander": "^14.0.2",
41
41
  "jiti": "^2.7.0",
42
- "@openfairygui/backend": "0.2.4"
42
+ "@openfairygui/backend": "0.2.5"
43
43
  },
44
44
  "optionalDependencies": {
45
45
  "sharp": ">=0.33.0"