fluframe library

fluFrame CLI — generates production-ready Flutter apps from the fluFrame boilerplate.

Classes

AddonPatch
An exact-string edit on a template-owned file.
BackendAddon
A generation addon applied on top of the base template overlay (auth backends, error reporting, ...). Addons are stackable: each is applied in turn with the same primitives.
CreateCommand
fluframe create <project_name> — scaffolds a new app from the template.
FluframeCommandRunner
Entry point of the fluframe command line interface.
ProjectGenerator
Generates a new Flutter project from the fluFrame template.
Upgrader
Applies template updates to an existing generated app via a per-file three-way merge (ADR 0002): BASE = the bundle of the version the app was generated with (from the pub.dev archive), THEIRS = the current bundle, OURS = the user's working tree.

Enums

UpgradeStatus
How a single file fared during an upgrade (spec 002).

Constants

amplitudeAddon → const BackendAddon
The Amplitude analytics addon: swaps the analytics seam's provider to a real SDK, guarded on a configured API key.
analyticsAddons → const Map<String, BackendAddon>
Analytics addons, keyed by --analytics value.
backendAddons → const Map<String, BackendAddon>
All available backend addons, keyed by --backend value.
cliVersion → const String
The current version of the fluframe CLI. Keep in sync with pubspec.yaml (guarded by test/version_sync_test.dart).
errorReportingAddons → const Map<String, BackendAddon>
Error-reporting addons, keyed by --error-reporting value.
firebaseAddon → const BackendAddon
The Firebase auth backend (stage 3 of the backend roadmap).
overlayEntries → const List<String>
Files and directories copied from the template over a fresh flutter create output.
sentryAddon → const BackendAddon
The Sentry error-reporting addon: wires the crash-reporting seam shipped in the template's core/logging/error_handlers.dart.
supabaseAddon → const BackendAddon
The Supabase auth backend (stage 2 of the backend roadmap).
templateDisplayName → const String
Template display name that gets rewritten into the humanized app title.
templateDisplayNameJa → const String
Japanese template display name (appTitle in app_ja.arb).
templateDisplayNameKo → const String
Korean template display name (appTitle in app_ko.arb), rewritten to the humanized app title so generated apps carry no fluFrame branding in any locale.
templatePackageName → const String
Template package name that gets rewritten into the new project's name.

Functions

downloadPublishedBundle(String version) Future<Directory>
Downloads the pub.dev archive of fluframe version and extracts its templates/ directory (the app bundle + addons) into a temp folder.
humanizePackageName(String name) String
Converts a package name into a human-readable title.
isValidOrg(String org) bool
Whether org is a valid organization identifier for flutter create: dot-separated segments, each starting with a letter (e.g. com.example, dev.my_org.apps).
isValidPackageName(String name) bool
Whether name is a valid Dart package name (lower_snake_case, no leading digit, not a reserved word).
resolveTemplateDirectory({String? explicitPath}) Future<Directory?>
Locates the fluFrame app template on disk.
rewriteTemplateContent(String content, {required String projectName}) String
Rewrites template tokens in content for a project called projectName.

Typedefs

BundleProvider = Future<Directory> Function(String version)
Provides the templates/ root of a published fluframe version; injectable so tests can serve local fixtures instead of the network.
RunProcess = Future<ProcessResult> Function(String executable, List<String> arguments, {String? workingDirectory})
Signature of a process launcher, injectable for tests.