components/flutterstart_recipes/flutterstart_recipes
library
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.