bloom_cli 0.7.1
bloom_cli: ^0.7.1 copied to clipboard
The official command-line interface for the Bloom application framework and developer platform.
Changelog #
0.7.1 - 2026-08-26 #
Added #
bloom build web_dom: pure-Dart web apps now build into a dedicatedbuild/web/output directory (matching Flutter web's convention) instead of in place inside the sourceweb/directory.TailwindStaticBuildwraps the real@tailwindcss/cliv4 viabunxto emit a minified, staticbuild/web/dist/app.cssfor production, swapping the dev-mode@tailwindcss/browser<script>tag for a production<link rel="stylesheet">in the built copy ofindex.htmlonly.bloom deployforweb_domprojects now targetsbuild/web, matching every other web target — abloom build web_domrun is required before deploying (previously deploy could point straight at source).bloom js dev --experimental-ddc: on a Dart source edit, the dev server now performs an in-page fast remount (dispose the active mount, evict the cached RequireJS module, re-invokemain()) instead of a fullwindow.location.reload()— no browser navigation. Thedart2jsdev path's reload behavior is unchanged.
Fixed #
- CSS hot-swap (
css_hot_swap.dart) no longer misidentifies certain brace boundaries during its skeleton diff.
0.7.0 - 2026-08-25 #
Added #
bloom format: AST-aware formatter forbloom_js_nativeprojects. Runs the officialdart_style(tall-style) formatter, then apackage:analyzer-based pre-pass that wraps long named-argument string literals (e.g.className: '...') into adjacent string literals split at word boundaries — the one thingdart_stylestructurally cannot do for any Dart code, since splitting a literal could change its meaning. Also normalizes embedded raw CSS strings (const fooCss = r'''...''';andStyle(r'''...''')blocks) — reindents selectors/declarations/at-rules without ever rewriting property or value tokens.--checkmode matchesdart format --set-exit-if-changedsemantics for CI. Automatically skips generatedlib/src/plugins/bindings frombloom add npm:<pkg>.bloom lint: AST-based static analysis for Bloom-specific footguns, grounded in COOKBOOK.md's "Best Practices & Common Pitfalls" section: force-unwrapping nullableBloomEvent.value/.checked,ForEach<T>(...)missing akey:extractor, importingbrowser.dartin test files,Live(...)builders that never read a signal (so can never react to anything), in-place mutation of a signal's List/Map (signal.value.add(...)instead of reassigning.value), and hand-authored<style>/<link rel="stylesheet">tags inweb/index.htmlfortarget: web_domprojects.
0.6.2 - 2026-08-24 #
Added #
bloom add npm:@tailwindcss/browsernow works correctly: writes a dedicated self-executing<script type="module">(Tailwind's browser build has no JS API to bind, so no Dart interop binding is generated for it), fixed a regex collision that could delete this script when a second package was later added..d.ts-driven@JS()binding generator (bloom add npm:<package>) now parses a package's real exported member names instead of emitting a single guessed member.bloom create --js-native's generatedbloom.yamlnow setstarget: web_dom, which several CLI subsystems (bloom add,bloom build,bloom dev) key off of — without it,bloom add npm:<package>misrouted js-native projects through native mobile plugin handling instead of npm.bloom create --js-native's generatedAGENTS.mdand COOKBOOK.md now document the realbloom add/Tailwind/design-token/font workflows in full.
0.6.1 - 2026-08-24 #
Added #
bloom create --js-native's generatedAGENTS.mdnow includes a full best-practices checklist (reactivity, nullable event fields, the two-entry-point rule, SSR gotchas, disposal, styling, testing) mirroring COOKBOOK.md's new Section 20.
0.6.0 - 2026-08-24 #
Added #
bloom create <name> --js-native: scaffolds a Flutter-free Bloom JS Native project (pubspec.yaml with noflutterdependency,bloom.yaml,web/index.html,lib/main.dartcorrectly importingbrowser.dartformount(), a smoke test, and a generatedAGENTS.md) instead of shelling out toflutter create.
Fixed #
bloom --version/bloom -vprinted a stale hardcoded0.1.0regardless of the installed release; now kept in sync withpubspec.yaml.
0.5.0 - 2026-08-24 #
Added #
bloom typegen: compile-checked, typed route builder generation from route annotations.bloom insights: live dev-server request log (GET /__insightson the dev server;--url/--json/--limitflags, with port auto-discovery when--urlis omitted).bloom doctor: new System Information section (OS/CPU/CLI process memory) and a best-effort Version Check against pub.dev.- Open in editor: dev error overlay entries now have an "Open
file:line" button that launches$VISUAL/$EDITOR(orcode --goto) at the exact error location, with path-containment and shell-injection guards. bloom fonts optimize: self-hosts Google Fonts.woff2files at build time and generatesfonts.g.csswith a CLS-mitigation fallback face.bloom og generate: build-time Open Graph social card PNG generator (1200x630).- Server-side image optimizer for responsive variants.
- Production deployment for web targets.
0.4.0 - 2026-08-23 #
- Bun vendoring, SSR router endpoint, and SSG prerendering delivered end to end.
- Module authoring/scaffolding improvements.
- Scaffolded projects now resolve
bloom_js_nativeandbloom_seofrom pub.dev rather than from sibling paths.
0.3.1 #
Added #
- Live SSE Hot Reload Dev Server: Introduced
BloomLiveReloadServerwith automatic script injection and Server-Sent Events on/_bloom_hr. - Debounced Recursive Source Watcher: Added
BloomSourceWatcherwith 150ms debouncing and multi-directory inotify tracking for.dart,.html,.css, and.yamlfiles. - Server Hot Restart: Integrated sub-80ms isolate hot restart in
bloom server run --watch. - Fast JS Dev Compiler: Upgraded
bloom js devwith-O0fast development compiler and live browser reload.
0.3.0 #
Breaking #
bloom addandbloom removenow validate plugin names: an unrecognized name prints the supported plugin ids and exits with code1, writing nothing tobloom.yamland skipping prebuild. Previously any string was accepted and written straight tobloom.yaml, so a typo such asbloom add camreareported success while silently configuring nothing.- Plugin names are canonicalized (trimmed, lowercased,
-converted to_), sosecure-storage,secure_storageandSecure-Storageall resolve to the single canonical idsecure_storage, and that canonical id is what gets written tobloom.yaml.
Added #
- Incremental Static Regeneration (ISR) for SSR: Wires up the
revalidate: Duration(...)parameter in@BloomLoaderannotations to enable stale-while-revalidate full-page HTML caching inbloom build web --server. Routes withrevalidateserve cached HTML within the duration, serve stale HTML immediately while regenerating in the background once stale, and populate cache on demand on first hit. - Real headless-browser prerendering for SSG/SSR:
bloom build web --static/--servernow compile the real Flutter web app (flutter build web --release) and drive a real headless Chromium instance (viapuppeteer) to capture the genuine rendered DOM for each route, replacing the previous static placeholder-shell HTML. Falls back gracefully to the old shell template whenever Chromium is unavailable or a route fails to render, so a build never fails or hangs because of prerendering.bloom_framework'sBloomAppnow signals readiness (and force-enables the Flutter semantics/accessibility tree, which is what produces real descriptive DOM content) after its first frame, on web only. - Real Bloom-branded PWA icons:
bloom build web --static/--servernow generate genuineIcon-192.png/Icon-512.png/maskable/apple-touch-icon/favicon assets from the real Bloom five-petal gradient mark (rasterized via the same headless Chromium pipeline), instead of amanifest.jsonthat pointed at files which never actually existed. Falls back to leaving any pre-existing icons untouched when Chromium is unavailable.
Fixed #
- Documented plugins received no prebuild transformations: the prebuild engines only recognized
camera,notificationsandlocation, sobackground_tasksnever hadWAKE_LOCKinjected and the hyphenated spellings shown in the docs matched nothing at all. Plugin metadata now lives in a single sharedBloomPluginCatalogread by both the Android and iOS prebuild engines and bybloom add/bloom remove, so the CLI and the platform manifests can no longer drift apart.
0.1.0 #
- Project Creation & Templates:
bloom create <app>with official and community starter templates (--template). - Interactive Dev Server:
bloom devwith wireless LAN pairing and TUI shortcuts. - Diagnostics & Continuous CI Health:
bloom doctorand strictbloom doctor --ci. - Zero-Config Native Autolinking:
bloom add,bloom deps,bloom why, andbloom workspace. - Native Module Authoring & Sandbox:
bloom create module,bloom module dev, andbloom module test. - Asset Optimization Pipeline:
bloom assets optimize,bloom assets analyze,bloom assets generate. - Security & Vulnerability Auditing:
bloom auditandbloom security scan. - Architectural Explanation:
bloom explain route <path>andbloom graph. - Ecosystem Package Registry:
bloom registry searchandbloom registry info. - Automated Upgrades & Migrations:
bloom upgradeandbloom doctor --upgrade.