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

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

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.
3
likes
160
points
134
downloads

Documentation

API reference

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

MIT (license)

Dependencies

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

More

Packages that depend on xwidget_builder