xwidget_builder 0.7.1 copy "xwidget_builder: ^0.7.1" to clipboard
xwidget_builder: ^0.7.1 copied to clipboard

Development tool for generating XWidget components to build dynamic Flutter UIs with XML based markup.

0.7.1 #

  • Fixed: runCommand returned the Process.run future from inside its try block without awaiting it, so a ProcessException raised asynchronously (missing executable, for example) bypassed the handler that was meant to turn it into a ProcessResult. Now awaited in place, so the documented "returns error details in stderr" behavior actually holds.

0.7.0 #

  • XWidget config and generated schemas now live in a .xwidget/ folder at the project root instead of cluttering the root itself. xwidget_config.yaml and xwidget_cloud.yaml are moved there automatically the first time any command reads them (a copy left in the root alongside a .xwidget/ copy is warned about, never silently deleted). init scaffolds new projects with .xwidget/ from the start.
  • Generated schema files are written to .xwidget/ under new names — fragments_schema.g.xsd, routes_schema.g.xsd, values_schema.g.xsd — together with schema_catalog.g.xml, an XML catalog mapping each namespace to its schema for editors that support catalogs. Stale root copies from earlier versions (xwidget_*.g.xsd) are cleaned up after generation; an explicit schema.target is still honored and never triggers cleanup of files it didn't produce.
  • The fragment schema's namespace is now https://xwidget.dev/fragments (routes and values schemas use https://xwidget.dev/routes and https://xwidget.dev/values).
  • BREAKING: generate no longer takes --config. Config is always read from .xwidget/xwidget_config.yaml (falling back to the project root, which triggers the one-time move above).
  • Fixed: a widget constructor parameter named visible or for no longer produces an invalid schema. The base element type already declares those attributes, and re-declaring one is a "duplicate attribute use" XSD violation — strict validators (e.g. xmllint) refused to compile the schema. The inherited declarations still validate the values.
  • BREAKING: schema.target is no longer user-configurable — the schema is always written to .xwidget/fragments_schema.g.xsd, the location the schema catalog points at. A schema.target in xwidget_config.yaml is ignored with a warning.

0.6.0 #

  • Upgraded the analyzer dependency from 7.x to >=13.0.0 <14.0.0. Generated output is unchanged. Note: projects on current Flutter stable will resolve analyzer 13.0.0 (its flutter_test pins meta 1.18.0, which analyzer 13.1+ does not accept); newer analyzer versions resolve automatically once Flutter updates its meta pin.
  • Minimum Dart SDK is now 3.9; minimum Flutter is 3.35 (the release that ships it).
  • Fixed a crash when resolving type parameters with no supplied type arguments; they now fall back to dynamic.
  • Moved the cloud CLI to the XWidget Cloud v2 deployment model. All endpoints now use /api/v2; older CLI versions are rejected by the server with an upgrade notice.
  • BREAKING: xc cloud deploy no longer takes --channel. Deploying uploads the bundle and mints a monotonic per-version revision, then offers to publish it. Requires xwidget >= 0.6.0 in the target app.
  • BREAKING: xc cloud promote is replaced by xc cloud publish and xc cloud unpublish. Publishing points a channel at a chosen revision — covering promotion and rollback — and unpublishing removes the channel's pointer without deleting the deployment.
  • BREAKING: xc cloud deployment delete now deletes by project and version, optionally scoped to a single revision; channel-scoped deletion is removed. Revisions live on a channel must be unpublished before they can be deleted.
  • xc cloud deployment list now shows Version, Revision, Created By, Updated By, and the channels currently serving each deployment.
  • Version format: build metadata must be a plain number (1.2.0+42); pre-release identifiers are now accepted. The full version string, including the build number, identifies the deployment and scopes its revision counter.
  • Added --yes to publish, unpublish, and deployment delete for non-interactive use. The channel name local is reserved.
  • Added --publish <channel> (-p) to xc cloud deploy — deploys and publishes the new revision to an existing channel in one step. The channel is validated before the upload; if the upload succeeds but publishing fails, the CLI prints the recovery xc cloud publish command and exits non-zero. Deploy output now includes the minted revision.
  • xc cloud deploy now runs fully non-interactive without a TTY: prompts are skipped, --version is required, unconfigured resource paths fall back to the defaults, and first-time project creation is refused (run interactively once to create the project).
  • Rewrote the builder test suite as an end-to-end CLI harness with a golden output baseline and error-path coverage.

0.5.4 #

  • Updated the generated schema documentation for <callback> to match the corrected runtime behavior: returnVar is always stored in the surrounding Dependencies (independent of dependenciesScope), and dependenciesScope controls only how action is evaluated, not where returnVar is stored.

0.5.3 #

  • Added keepAlive to the built-in Controller schema element so XML schema validation and IDE completion match the runtime controller attribute.
  • Updated the default schema config to stop excluding *:child attributes globally.

0.5.2 #

  • Controller code generation now registers factories by explicit class name via registerControllerFactoryForName().
  • Fixes generated controller registration for dart2js/minified web builds.
  • Removed import_cache.json output.

0.5.1 #

  • Controller code generation now skips abstract classes.

0.5.0 #

  • BREAKING: Config schema changes in xwidget_config.yaml. The resources: group has been removed; use top-level fragmentsPath and valuesPath keys instead. See the upgrade guide for migration steps.
  • Added a registry builder that generates a single registry.g.dart exporting a registerXWidgetComponents() function. Users call this one function from main.dart instead of calling registerXWidgetIcons(), registerXWidgetInflaters(), and registerXWidgetControllers() manually. Requires xwidget 0.5.0 or newer; on older xwidget the registry is skipped and existing manual-registration patterns continue to work.
  • Added registry: section in xwidget_config.yaml with a target: key controlling the output path (defaults to lib/xwidget/generated/registry.g.dart).
  • Registry generation runs after every generate invocation regardless of the --only flag, so the registry stays in sync with whatever other generated files exist.
  • Orphaned generated files (target exists but source globs no longer match) are detected and excluded from the registry with a warning.

0.4.3 #

  • Reworked schema template for precise child element validation. Context-restricted elements (param, Entry, Item, else) are now validated only where they're actually allowed.
  • Added hover documentation to all built-in elements and their attributes in the generated schema. Includes links to full reference docs.
  • Added schema.documentationFormat option in xwidget_config.yaml (cdata or html). Use html for better hover rendering in IntelliJ-based IDEs.
  • Added --schema-docs CLI flag to override schema.documentationFormat per invocation.
  • Fixed path resolution for xwidget_builder when added as a relative path dependency (path: ../../ in pubspec.yaml).
  • Fixed schema compatibility with strict XSD validators (e.g. xmllint).

0.4.2 #

  • Fixed inflation of nested parameterized collections (List<List<Widget>>, List<Map<String, String>>, etc.). Added castElement callback to addArg that recursively casts inner elements during argument resolution. The inflater generator now emits _buildCastExpression lambdas for arbitrary nesting depth.
  • Simplified <builder> returnType enumeration from Widget, Widget?, List:Widget, List:PopupMenuEntry to List and SingleChild.

0.4.1 #

  • Fixed collection return types in function adapters. Parameterized collections (List, Set, Iterable, Map) now use .cast<>() instead of as to satisfy Dart's reified generics.

0.4.0 #

  • BREAKING: Requires xwidget 0.4.0. Both packages must be upgraded together.
  • Fixed Dart 3.4 function type compatibility issue with Function-typed constructor parameters.
  • Added addFnArg to InflaterArgs for typed function adapter wrapping.
  • Inflater generator now emits typed adapter lambdas for all Function-typed parameters.
  • Fixed duplicate class handling in inflater spec via deduplication.

0.3.1 #

  • Fixed xc init --new-app not copying fragment/count.xml to the resources folder

0.3.0 #

  • Cloud management CLI — deploy, promote, and manage workspaces, projects, channels, and deployments via xc cloud.
  • Analytics CLI — query render, download, error, and page transition data via xc analytics.
  • Project key rotation with configurable grace periods (0–90 days).
  • xc top-level CLI entry point for all XWidget Builder commands.
  • Full documentation site at docs.xwidget.dev.
  • Updated minimum Dart SDK to 3.8.

0.2.1 #

  • Resolved major pain points with default values and imports. Constructor defaults now delegate to the underlying widget, and imports are automatically resolved through export analysis. Manual overrides in xwidget_config.yaml remains available for edge cases.
  • Fixed issue with the source analyzer not recognizing library parts
  • Improved inflater error messages

0.2.0 #

Breaking Changes #

  • Increased Flutter version constraint from >=1.17.0 to >=3.10.0
  • Decreased Dart SDK constraint from >=3.4.4 to >=3.0.0
  • Fixed bug with dependency versioning
  • Fixed builder tests

0.1.2 #

  • Fixed several issues with project initialization scripts

0.1.1 #

  • Added example usage
  • Updated package description

0.1.0 #

  • Initial release.
4
likes
0
points
427
downloads

Publisher

verified publisherappfluent.us

Weekly Downloads

Development tool for generating XWidget components to build dynamic Flutter UIs with XML based markup.

Repository (GitHub)
View/report issues

Topics

#code-generation #server-driven-ui #cli #xml #widget

License

unknown (license)

Dependencies

analyzer, archive, args, crypto, dio, encrypt, flutter, glob, http, interact2, markdown, path, pub_semver, yaml

More

Packages that depend on xwidget_builder