components/flutterstart_recipes/flutterstart_recipes library

Classes

ComposedResult
A single deterministic, de-duplicated, dependency-ordered composed unit (data-model.md §6). The composer's output — not a new type over Contribution.
Contribution
One capability's contribution toward a single composed output unit.
ResolvedBrick
TemplateVariableSchema
Closed template variable schema per FR-046.

Enums

ContributionKind
What kind of composed unit a Contribution targets — the four things FR-036 requires merged exactly once across overlapping capabilities: shared files, dependencies, DI registrations, and initialization.

Constants

foundationBaseBrickPath → const String
foundationRecipeBrickPaths → const Map<String, String>
migratedMinimalSingleSelections → const Map<String, String>
migratedRecommendedMultiSelections → const Map<String, List<String>>
migratedRecommendedSingleSelections → const Map<String, String>
The pre-0.3 Recommended selection set after relocation. Migration owns this data so new preset defaults can never leak into old configurations.
minimalMultiSelections → const Map<String, List<String>>
Minimal's multi-select choices — Backend and Local Storage are both skipped (R-205), so both are absent, not present-with-empty-list (INV-B6): a skipped section leaves no key, exactly as the configurator does.
minimalSingleSelections → const Map<String, String>
Minimal's single-select choices — the leanest valid stack (R-205): codegen-free, DI-container-free, no state-management library.
recommendedMultiSelections → const Map<String, List<String>>
Recommended's multi-select choices (R-202: Dio backend; no local storage or l10n in the shipped 0.1 stack). Skipped sections are absent, not present-with-empty-list (INV-B6) — so org.local_storage is omitted, matching what the interactive configurator produces for a skipped section.
recommendedSingleSelections → const Map<String, String>
Recommended's production-oriented Release 0.3 choices.

Functions

compose(List<Contribution> contributions) ComposedResult
Resolves capability contributions into a deterministic operation set (R-204):
dependencyContributionsFor(Blueprint blueprint, Catalog catalog) List<Contribution>
Expands a Blueprint's selections into catalog-declared regular dependency contributions.
foundationBrickPathsFor(Blueprint blueprint, Catalog catalog) List<String>
foundationContributionsFor(Blueprint blueprint, Catalog catalog) List<Contribution>
Expands selected foundation recipes across the composer's four existing canonical channels. Recipe bricks provide the file bytes at staging time; this function provides the deterministic plan identities used before it.
loadCatalog([String? path]) Future<Catalog>
Loads the Capability Catalog shipped with this package (R-201), mirroring loadRecipeLock's offline, deterministic two-tier resolution: the real file when running from source (dart run/dart test), the embedded catalogYaml constant once compiled to a standalone executable where no .dart_tool/package_config.json exists to resolve against.
loadRecipeLock([String? path]) Future<RecipeLock>
Loads the recipe lock shipped with this package.
migrateOrParseBlueprint(Map<String, dynamic> json, {required RecipeLock lock}) Blueprint
Resolves external Blueprint/config input by schema version — the read-time migration rule (R-202, FR-048-FR-050), not a workflow:
relocateV2SingleSelections(Map<String, String> selections) Map<String, String>
resolveAppScaffoldBrick() Future<ResolvedBrick>
resolveBrick(String relativePath) Future<ResolvedBrick>
resolveMinimal({required String projectName, required String description, required String organization, required String destination, required Set<String> targetPlatforms, required bool gitPreference, required ValidationProfile validationProfile, required RecipeLock lock}) Blueprint
Resolves the Minimal preset to a schema_version: 3 Blueprint holding only the leanest valid selections (INV-SM3, FR-042, US8).
resolveRecommended({required String projectName, required String description, required String organization, required String destination, required Set<String> targetPlatforms, required bool gitPreference, required ValidationProfile validationProfile, required RecipeLock lock, SetupMode setupMode = SetupMode.recommended}) Blueprint
Resolves the Recommended preset to a schema_version: 3 Blueprint.

Exceptions / Errors

BlueprintMigrationException
Thrown when external Blueprint/config input cannot be resolved: an unknown/future schema_version, or a schema_version: 1 input naming an unrecognized recipe/token set. Never silently substituted with a default (FR-045, FR-049, INV-MIG1) — callers map this to exit 4.
ComposerConflictException
Thrown when two capabilities declare the same (kind, canonicalKey) with genuinely different content — a real authoring conflict, not the "shared, identical contribution" case FR-036 asks the composer to merge.