diff --git a/.fvmrc b/.fvmrc index 457360f8..f6ff4f32 100644 --- a/.fvmrc +++ b/.fvmrc @@ -1,3 +1,3 @@ { - "flutter": "3.44.0" + "flutter": "3.44.6" } \ No newline at end of file diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 4f96ff83..0a696fc5 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -14,23 +14,22 @@ Use the repo-pinned Flutter SDK via FVM to avoid version drift. ```bash fvm use --force -dart pub global activate melos -melos bootstrap +fvm dart run melos bootstrap ``` -> Required by workspace config: Dart `>=3.12.0`, Flutter `>=3.44.0`. +> Required by workspace config: Dart `>=3.12.0`, Flutter `>=3.44.6`. ## High-signal commands (run from repo root) -- Analyze: `melos run analyze` -- Auto-fix: `melos run fix` -- Generate code: `melos run build_runner:build` -- Unit/widget tests: `melos run test` -- Integration tests (Linux): `melos run test:integration` -- Web smoke tests: `melos run test:e2e:web` +- Analyze: `fvm dart run melos run analyze` +- Auto-fix: `fvm dart run melos run fix` +- Generate code: `fvm dart run melos run build_runner:build` +- Unit/widget tests: `fvm dart run melos run test` +- Integration tests (Linux): `fvm dart run melos run test:integration` +- Web smoke tests: `fvm dart run melos run test:e2e:web` ## Agent workflow expectations 1. Keep changes surgical and package-scoped. -2. Run `melos run build_runner:build` before tests when touching code that can affect generated output. +2. Run `fvm dart run melos run build_runner:build` before tests when touching code that can affect generated output. 3. Commit generated files when they change (`*.g.dart`, `*.mapper.dart`). 4. Prefer relative imports in Dart files. 5. Follow existing style: two-space indentation, `snake_case.dart` filenames. @@ -43,8 +42,7 @@ melos bootstrap dart pub global activate fvm export PATH="$HOME/.pub-cache/bin:$PATH" fvm use --force - dart pub global activate melos - melos bootstrap + fvm dart run melos bootstrap ``` - **CI failure while building demo assets (`fvm dart run superdeck_cli:main build`)** diff --git a/.github/workflows/firebase-hosting-merge.yml b/.github/workflows/firebase-hosting-merge.yml index 86a7e983..0cd96234 100644 --- a/.github/workflows/firebase-hosting-merge.yml +++ b/.github/workflows/firebase-hosting-merge.yml @@ -10,7 +10,7 @@ on: paths: - "demo/**" - "packages/**" - - "melos.yaml" + - ".fvmrc" - "pubspec.yaml" - "pubspec.lock" @@ -46,9 +46,11 @@ jobs: - name: Setup Melos uses: bluefireteam/melos-action@v3 + with: + melos-version: 7.8.1 - name: Build Runner - run: melos run build_runner:build + run: melos run build_runner:build --no-select - name: Build SuperDeck assets run: | diff --git a/.github/workflows/firebase-hosting-pull-request.yml b/.github/workflows/firebase-hosting-pull-request.yml index e7c790c0..cc213095 100644 --- a/.github/workflows/firebase-hosting-pull-request.yml +++ b/.github/workflows/firebase-hosting-pull-request.yml @@ -8,7 +8,7 @@ on: paths: - "demo/**" - "packages/**" - - "melos.yaml" + - ".fvmrc" - "pubspec.yaml" - "pubspec.lock" @@ -45,9 +45,11 @@ jobs: - name: Setup Melos uses: bluefireteam/melos-action@v3 + with: + melos-version: 7.8.1 - name: Build Runner - run: melos run build_runner:build + run: melos run build_runner:build --no-select - name: Build SuperDeck assets run: | diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index dd05a714..22846cdc 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -40,6 +40,8 @@ jobs: - name: Setup Melos uses: bluefireteam/melos-action@v3 + with: + melos-version: 7.8.1 - uses: invertase/github-action-dart-analyzer@v1 with: @@ -50,7 +52,7 @@ jobs: run: fvm flutter pub get - name: Build Runner - run: melos run build_runner:build + run: melos run build_runner:build --no-select timeout-minutes: 5 - name: Check Contract Schemas @@ -102,12 +104,14 @@ jobs: - name: Setup Melos uses: bluefireteam/melos-action@v3 + with: + melos-version: 7.8.1 - name: Install dependencies run: fvm flutter pub get - name: Build Runner - run: melos run build_runner:build + run: melos run build_runner:build --no-select timeout-minutes: 5 - name: Build SuperDeck Assets @@ -150,12 +154,14 @@ jobs: - name: Setup Melos uses: bluefireteam/melos-action@v3 + with: + melos-version: 7.8.1 - name: Install dependencies run: fvm flutter pub get - name: Build Runner - run: melos run build_runner:build + run: melos run build_runner:build --no-select timeout-minutes: 5 - name: Build SuperDeck Assets diff --git a/.vscode/settings.json b/.vscode/settings.json index 871ef0d4..711b9bfa 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,5 @@ { - "dart.flutterSdkPath": ".fvm/versions/3.44.0", + "dart.flutterSdkPath": ".fvm/versions/3.44.6", "files.exclude": { "**/.fvm/versions": true, "**/.fvm/flutter_sdk": true diff --git a/AGENTS.md b/AGENTS.md index 4140920d..cfbdc0e2 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -35,45 +35,59 @@ docs/ # User-facing documentation (MDX format) ## Environment Setup -This project uses FVM (Flutter Version Management) configured via `.fvmrc` (pinned to Flutter `3.44.0`): +This project uses FVM (Flutter Version Management) configured via `.fvmrc` (pinned to Flutter `3.44.6`): ```bash fvm use --force -dart pub global activate melos -melos bootstrap +fvm dart run melos bootstrap ``` Always work inside the FVM-provided SDK (`.fvm/flutter_sdk`) to avoid toolchain drift. -**Required SDK versions**: Dart >=3.12.0, Flutter >=3.44.0 +**Required SDK versions**: Dart >=3.12.0, Flutter >=3.44.6 ## Common Commands ### Analysis & Linting ```bash -melos run analyze # Run dart analyze + DCM analysis -melos run analyze:all # Full analysis including unused code/files -melos run fix # Apply dart fix + DCM autofixes -melos run custom_lint_analyze # Run custom lint rules +fvm dart run melos run analyze # Run dart analyze + DCM analysis +fvm dart run melos run analyze:all # Full analysis including unused code/files +fvm dart run melos run fix # Apply dart fix + DCM autofixes +fvm dart run melos run custom_lint_analyze # Run custom lint rules ``` ### Code Generation ```bash -melos run build_runner:build # Generate code (run before tests) -melos run build_runner:watch # Watch mode for development -melos run build_runner:clean # Clean generated files +fvm dart run melos run build_runner:build # Generate code (run before tests) +fvm dart run melos run build_runner:watch # Watch mode for development +fvm dart run melos run build_runner:clean # Clean generated files ``` ### Testing ```bash -melos run test # Run all tests -melos run test:coverage # Run tests with coverage +fvm dart run melos run test # Run all tests +fvm dart run melos run test:coverage # Run tests with coverage fvm flutter test # Run specific test file ``` +### Running Apps & Live Debugging +```bash +cd packages/playground +fvm flutter run -d macos -t lib/main.dart +``` + +When running an app to reproduce or diagnose a UI/runtime issue, launch it with +`fvm flutter run` and keep that process attached for the entire reproduction. +Continue reading its output after each UI interaction so Dart exceptions, +Flutter framework errors, plugin failures, and native macOS logs are captured as +they happen. Do not use `open .app` as the primary debugging launch: it +detaches the app from the observable Flutter process and hides the logs needed +to identify the root cause. Opening a compiled `.app` directly is appropriate +only for a distribution smoke test where live diagnostics are not required. + ### Cleaning ```bash -melos run clean # Clean all Flutter build artifacts +fvm dart run melos run clean # Clean all Flutter build artifacts ``` ## Coding Standards @@ -180,9 +194,9 @@ Styles are defined in Dart through `SlideStyler`, `DeckOptions.baseStyle`, and ` | Task | Command | |------|---------| -| Bootstrap workspace | `melos bootstrap` | -| Run all analysis | `melos run analyze` | -| Generate code | `melos run build_runner:build` | -| Run tests | `melos run test` | -| Apply fixes | `melos run fix` | -| Clean workspace | `melos run clean` | +| Bootstrap workspace | `fvm dart run melos bootstrap` | +| Run all analysis | `fvm dart run melos run analyze` | +| Generate code | `fvm dart run melos run build_runner:build` | +| Run tests | `fvm dart run melos run test` | +| Apply fixes | `fvm dart run melos run fix` | +| Clean workspace | `fvm dart run melos run clean` | diff --git a/README.md b/README.md index a001f556..fef5311c 100644 --- a/README.md +++ b/README.md @@ -82,8 +82,7 @@ SuperDeck is a Melos workspace pinned via FVM in `.fvmrc`. ```bash fvm use --force -dart pub global activate melos -melos bootstrap -melos run analyze -melos run test +fvm dart run melos bootstrap +fvm dart run melos run analyze +fvm dart run melos run test ``` diff --git a/demo/README.md b/demo/README.md index bfc025b0..c80bc10e 100644 --- a/demo/README.md +++ b/demo/README.md @@ -8,8 +8,7 @@ From the repo root: ```bash fvm use --force -dart pub global activate melos -melos bootstrap +fvm dart run melos bootstrap ``` Terminal 1 (build slides): diff --git a/demo/pubspec.yaml b/demo/pubspec.yaml index 8aa4be6d..54041baf 100644 --- a/demo/pubspec.yaml +++ b/demo/pubspec.yaml @@ -4,7 +4,10 @@ publish_to: none version: 1.0.0+1 environment: sdk: ">=3.12.0 <4.0.0" - flutter: ">=3.44.0" + flutter: ">=3.44.6" + +resolution: workspace + dependencies: flutter: sdk: flutter diff --git a/demo/pubspec_overrides.yaml b/demo/pubspec_overrides.yaml deleted file mode 100644 index c31d1032..00000000 --- a/demo/pubspec_overrides.yaml +++ /dev/null @@ -1,14 +0,0 @@ -# melos_managed_dependency_overrides: superdeck,superdeck_builder,superdeck_cli,superdeck_core,superdeck_mermaid,superdeck_pdf -dependency_overrides: - superdeck: - path: ../packages/superdeck - superdeck_builder: - path: ../packages/builder - superdeck_cli: - path: ../packages/cli - superdeck_core: - path: ../packages/core - superdeck_mermaid: - path: ../packages/plugins/mermaid - superdeck_pdf: - path: ../packages/plugins/pdf diff --git a/docs/getting-started.mdx b/docs/getting-started.mdx index 872b27f6..dbfe4d2b 100644 --- a/docs/getting-started.mdx +++ b/docs/getting-started.mdx @@ -9,7 +9,7 @@ Configure a Flutter app for SuperDeck and build your first presentation. ## Prerequisites -- **Flutter SDK** version 3.44.0 or higher +- **Flutter SDK** version 3.44.6 or higher - Use the Dart SDK bundled with your Flutter installation ## Installation diff --git a/melos.yaml b/melos.yaml deleted file mode 100644 index aca793e7..00000000 --- a/melos.yaml +++ /dev/null @@ -1,152 +0,0 @@ -name: superdeck_workspace - -sdkPath: .fvm/flutter_sdk -packages: - - packages/* - - packages/plugins/* - - demo - -command: - bootstrap: - environment: - sdk: ">=3.12.0 <4.0.0" - flutter: ">=3.44.0" - dependencies: - collection: ^1.18.0 - mix: ^2.1.0 - remix: ^0.2.0 - ack: 1.0.1 - # publish: - # hooks: - # pre: melos run gen:build - -scripts: - # ANALYSIS - analyze: - run: fvm flutter pub run melos run analyze:dart && fvm flutter pub run melos run analyze:dcm - description: Run standard static analysis checks. - - analyze:all: - run: fvm flutter pub run melos run analyze && fvm flutter pub run melos run analyze:dcm:unused-files && fvm flutter pub run melos run analyze:dcm:unused-code - description: Run all analysis checks including unused files and code. - - analyze:dart: - run: fvm flutter pub run melos exec -c 10 -- fvm dart analyze --fatal-infos - description: Run Dart static analysis checks. - - analyze:dcm: - run: fvm flutter pub run melos exec -c 10 -- dcm analyze . --fatal-style --fatal-warnings - description: Run DCM static analysis checks. - packageFilters: - dependsOn: "dart_code_metrics_presets" - - analyze:dcm:unused-files: - # Public barrels/plugin entrypoints are not cleanup targets (--exclude-public-api). - # Generated files use DCM defaults (*.g.dart / *.freezed.dart / *.mapper.dart). - # Extra globs: tests + platform conditional files DCM misclassifies as unused. - # Quotes must survive melos exec so brace globs are not shell-expanded. - run: fvm flutter pub run melos exec -c 10 -- "dcm check-unused-files . --fatal-unused --exclude-public-api -e '{**/*.g.dart,**/*.freezed.dart,**/*.mapper.dart,test/**,**/*_web.dart,**/*_stub.dart,**/*_io.dart,**/measure_size.dart}'" - description: Check for unused files using DCM (public API, generated, platform stubs excluded). - packageFilters: - dependsOn: "dart_code_metrics_presets" - - analyze:dcm:unused-code: - # Public API surface stays even if unused in-repo (--exclude-public-api). - # Same exclude set as unused-files (generated + platform stubs + tests). - run: fvm flutter pub run melos exec -c 10 -- "dcm check-unused-code . --fatal-unused --exclude-public-api -e '{**/*.g.dart,**/*.freezed.dart,**/*.mapper.dart,test/**,**/*_web.dart,**/*_stub.dart,**/*_io.dart}'" - description: Check for unused code using DCM (public API, generated, platform stubs excluded). - packageFilters: - dependsOn: "dart_code_metrics_presets" - - fix: - run: fvm flutter pub run melos run fix:dart && fvm flutter pub run melos run fix:dcm - description: Run all static analysis checks and apply fixes. - - fix:dart: - run: fvm flutter pub run melos exec -- fvm dart fix --apply . - description: Run Dart static analysis checks. - - fix:dcm: - run: fvm flutter pub run melos exec -- dcm fix . - description: Run DCM static analysis checks. - packageFilters: - dependsOn: "dart_code_metrics_presets" - - build_runner:watch: - run: fvm flutter pub run melos exec --order-dependents -- dart run build_runner watch --delete-conflicting-outputs - description: Generate code for all packages - packageFilters: - dependsOn: "build_runner" - - build_runner:build: - run: fvm flutter pub run melos run build_runner:clean && fvm flutter pub run melos exec --order-dependents -- dart run build_runner build --delete-conflicting-outputs - description: Generate code for all packages - packageFilters: - dependsOn: "build_runner" - - build_runner:clean: - run: fvm flutter pub run melos exec --order-dependents -- dart run build_runner clean - description: Clean generated code for all packages - packageFilters: - dependsOn: "build_runner" - - contracts:export: - exec: fvm dart run tool/export_contract_schemas.dart - description: Export canonical JSON Schema artifacts for SuperDeck contracts. - packageFilters: - scope: "superdeck_core" - - contracts:check: - exec: fvm dart run tool/export_contract_schemas.dart --check - description: Verify canonical JSON Schema artifacts are up to date. - packageFilters: - scope: "superdeck_core" - - test: - run: fvm flutter pub run melos exec -c 1 -- fvm flutter test --exclude-tags ci-excluded - description: Run flutter tests excluding explicit golden and flaky suites. - packageFilters: - dirExists: test - - test:integration: - run: cd demo && fvm dart run superdeck_cli:main build && fvm flutter test integration_test/all_tests.dart -d linux --fail-fast --timeout 2m - description: Run flutter integration tests on Linux (CI default) - - test:integration:macos: - run: cd demo && fvm dart run superdeck_cli:main build && fvm flutter test integration_test/all_tests.dart -d macos --fail-fast --timeout 2m - description: Run flutter integration tests on macOS (local) - - test:e2e:web:prepare: - run: cd demo && fvm dart run superdeck_cli:main build && fvm flutter build web --release - description: Build demo assets and release web output for Playwright smoke tests. - - test:e2e:web: - run: fvm flutter pub run melos run test:e2e:web:prepare && cd demo/e2e && npm ci && npx playwright install --with-deps chromium webkit && npm run test:smoke - description: Run Playwright smoke tests for the demo web build on Chromium and WebKit. - - test:e2e: - run: fvm flutter pub run melos run test:integration && fvm flutter pub run melos run test:e2e:web - description: Run full desktop integration and web smoke E2E coverage. - - test:all: - run: fvm flutter pub run melos run test && fvm flutter pub run melos run test:integration - description: Run all tests (unit + integration) - - test:coverage: - run: fvm flutter pub run melos exec -- fvm flutter test --coverage - description: Run flutter test with coverage - packageFilters: - dirExists: test - - clean: - run: fvm flutter pub run melos exec -- fvm flutter clean - description: Clean all packages - - brb: - run: fvm flutter pub run melos run gen:build:superdeck - - brbc: - run: fvm flutter pub run melos run gen:clean - - custom_lint_analyze: - run: fvm dart pub global activate custom_lint && fvm flutter pub run melos exec --depends-on="mix_lint" fvm dart run custom_lint diff --git a/packages/builder/pubspec.yaml b/packages/builder/pubspec.yaml index 90879753..ee643cbd 100644 --- a/packages/builder/pubspec.yaml +++ b/packages/builder/pubspec.yaml @@ -7,6 +7,7 @@ documentation: https://docs.page/btwld/superdeck environment: sdk: ">=3.12.0 <4.0.0" +resolution: workspace dependencies: superdeck_core: ^1.0.0 diff --git a/packages/builder/pubspec_overrides.yaml b/packages/builder/pubspec_overrides.yaml deleted file mode 100644 index 2b6fee8b..00000000 --- a/packages/builder/pubspec_overrides.yaml +++ /dev/null @@ -1,4 +0,0 @@ -# melos_managed_dependency_overrides: superdeck_core -dependency_overrides: - superdeck_core: - path: ../core diff --git a/packages/cli/pubspec.yaml b/packages/cli/pubspec.yaml index c06eb766..273b3411 100644 --- a/packages/cli/pubspec.yaml +++ b/packages/cli/pubspec.yaml @@ -9,6 +9,7 @@ executables: environment: sdk: ">=3.12.0 <4.0.0" +resolution: workspace dependencies: yaml: ^3.1.3 diff --git a/packages/cli/pubspec_overrides.yaml b/packages/cli/pubspec_overrides.yaml deleted file mode 100644 index 314df6b3..00000000 --- a/packages/cli/pubspec_overrides.yaml +++ /dev/null @@ -1,6 +0,0 @@ -# melos_managed_dependency_overrides: superdeck_builder,superdeck_core -dependency_overrides: - superdeck_builder: - path: ../builder - superdeck_core: - path: ../core diff --git a/packages/core/pubspec.yaml b/packages/core/pubspec.yaml index cd3cee3e..9b901b47 100644 --- a/packages/core/pubspec.yaml +++ b/packages/core/pubspec.yaml @@ -8,6 +8,7 @@ documentation: https://docs.page/btwld/superdeck environment: sdk: ">=3.12.0 <4.0.0" +resolution: workspace # Add regular dependencies here. dependencies: diff --git a/packages/core/pubspec_overrides.yaml b/packages/core/pubspec_overrides.yaml deleted file mode 100644 index d884f3df..00000000 --- a/packages/core/pubspec_overrides.yaml +++ /dev/null @@ -1,3 +0,0 @@ -dependency_overrides: - superdeck_builder: - path: ../builder \ No newline at end of file diff --git a/packages/playground/lib/features/ai/wizard/core/ai/services/ai_conversation_viewmodel.dart b/packages/playground/lib/features/ai/wizard/core/ai/services/ai_conversation_viewmodel.dart index 28784fb8..d8546e3c 100644 --- a/packages/playground/lib/features/ai/wizard/core/ai/services/ai_conversation_viewmodel.dart +++ b/packages/playground/lib/features/ai/wizard/core/ai/services/ai_conversation_viewmodel.dart @@ -185,10 +185,7 @@ final class AiConversationViewModel implements Disposable { final next = [..._messages.value]; final index = _streamingAiMessageIndex; - if (index != null && - index >= 0 && - index < next.length && - next[index] is SuperdeckAiMessage) { + if (index != null && index >= 0 && index < next.length) { next[index] = SuperdeckAiMessage(_streamingAiResponse); } else { _streamingAiMessageIndex = next.length; diff --git a/packages/playground/macos/Podfile.lock b/packages/playground/macos/Podfile.lock new file mode 100644 index 00000000..318eae9a --- /dev/null +++ b/packages/playground/macos/Podfile.lock @@ -0,0 +1,80 @@ +PODS: + - audioplayers_darwin (0.0.1): + - Flutter + - FlutterMacOS + - device_info_plus (0.0.1): + - FlutterMacOS + - FlutterMacOS (1.0.0) + - irondash_engine_context (0.0.1): + - FlutterMacOS + - screen_retriever_macos (0.0.1): + - FlutterMacOS + - sqflite_darwin (0.0.4): + - Flutter + - FlutterMacOS + - super_native_extensions (0.0.1): + - FlutterMacOS + - url_launcher_macos (0.0.1): + - FlutterMacOS + - video_player_avfoundation (0.0.1): + - Flutter + - FlutterMacOS + - webview_flutter_wkwebview (0.0.1): + - Flutter + - FlutterMacOS + - window_manager (0.5.0): + - FlutterMacOS + +DEPENDENCIES: + - audioplayers_darwin (from `Flutter/ephemeral/.symlinks/plugins/audioplayers_darwin/darwin`) + - device_info_plus (from `Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos`) + - FlutterMacOS (from `Flutter/ephemeral`) + - irondash_engine_context (from `Flutter/ephemeral/.symlinks/plugins/irondash_engine_context/macos`) + - screen_retriever_macos (from `Flutter/ephemeral/.symlinks/plugins/screen_retriever_macos/macos`) + - sqflite_darwin (from `Flutter/ephemeral/.symlinks/plugins/sqflite_darwin/darwin`) + - super_native_extensions (from `Flutter/ephemeral/.symlinks/plugins/super_native_extensions/macos`) + - url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`) + - video_player_avfoundation (from `Flutter/ephemeral/.symlinks/plugins/video_player_avfoundation/darwin`) + - webview_flutter_wkwebview (from `Flutter/ephemeral/.symlinks/plugins/webview_flutter_wkwebview/darwin`) + - window_manager (from `Flutter/ephemeral/.symlinks/plugins/window_manager/macos`) + +EXTERNAL SOURCES: + audioplayers_darwin: + :path: Flutter/ephemeral/.symlinks/plugins/audioplayers_darwin/darwin + device_info_plus: + :path: Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos + FlutterMacOS: + :path: Flutter/ephemeral + irondash_engine_context: + :path: Flutter/ephemeral/.symlinks/plugins/irondash_engine_context/macos + screen_retriever_macos: + :path: Flutter/ephemeral/.symlinks/plugins/screen_retriever_macos/macos + sqflite_darwin: + :path: Flutter/ephemeral/.symlinks/plugins/sqflite_darwin/darwin + super_native_extensions: + :path: Flutter/ephemeral/.symlinks/plugins/super_native_extensions/macos + url_launcher_macos: + :path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos + video_player_avfoundation: + :path: Flutter/ephemeral/.symlinks/plugins/video_player_avfoundation/darwin + webview_flutter_wkwebview: + :path: Flutter/ephemeral/.symlinks/plugins/webview_flutter_wkwebview/darwin + window_manager: + :path: Flutter/ephemeral/.symlinks/plugins/window_manager/macos + +SPEC CHECKSUMS: + audioplayers_darwin: 835ced6edd4c9fc8ebb0a7cc9e294a91d99917d5 + device_info_plus: 4fb280989f669696856f8b129e4a5e3cd6c48f76 + FlutterMacOS: d0db08ddef1a9af05a5ec4b724367152bb0500b1 + irondash_engine_context: 893c7d96d20ce361d7e996f39d360c4c2f9869ba + screen_retriever_macos: c5508cc3c66ff0d4db650480cf0ab691e220d933 + sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0 + super_native_extensions: c2795d6d9aedf4a79fae25cb6160b71b50549189 + url_launcher_macos: f87a979182d112f911de6820aefddaf56ee9fbfd + video_player_avfoundation: 3453f792138786248960ca029747fcd9f318ef52 + webview_flutter_wkwebview: 8ebf4fded22593026f7dbff1fbff31ea98573c8d + window_manager: b729e31d38fb04905235df9ea896128991cad99e + +PODFILE CHECKSUM: 54d867c82ac51cbd61b565781b9fada492027009 + +COCOAPODS: 1.16.2 diff --git a/packages/playground/macos/Runner.xcodeproj/project.pbxproj b/packages/playground/macos/Runner.xcodeproj/project.pbxproj index 7583817c..965e768c 100644 --- a/packages/playground/macos/Runner.xcodeproj/project.pbxproj +++ b/packages/playground/macos/Runner.xcodeproj/project.pbxproj @@ -27,8 +27,10 @@ 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; + 607761A9960048984A5A4E6F /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B2CD240576EF27BE303B514 /* Pods_Runner.framework */; }; 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; A51F9B022F12ABCD00000001 /* SecurityScopedBookmarkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A51F9B012F12ABCD00000001 /* SecurityScopedBookmarkManager.swift */; }; + B495E5BD97984C6EF0C5B96A /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA381DA986524D8EF0AA2DEF /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -62,11 +64,13 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 1B2CD240576EF27BE303B514 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 2B336C8BC1FE0C09D4DD0753 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; - 33CC10ED2044A3C60003C045 /* playground.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "playground.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10ED2044A3C60003C045 /* playground.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = playground.app; sourceTree = BUILT_PRODUCTS_DIR; }; 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; @@ -78,10 +82,16 @@ 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 48B89F3DB390ACC609FA2E21 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 59FFBDFBB38319137F6C084B /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; + 79792DA5E87C85B8068E045D /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 7E9A6C0725AE267ECBE50B9D /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; A51F9B012F12ABCD00000001 /* SecurityScopedBookmarkManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecurityScopedBookmarkManager.swift; sourceTree = ""; }; + DA381DA986524D8EF0AA2DEF /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + DBDEAEBB3B165959B92AA66F /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -89,6 +99,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + B495E5BD97984C6EF0C5B96A /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -97,6 +108,7 @@ buildActionMask = 2147483647; files = ( 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, + 607761A9960048984A5A4E6F /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -130,6 +142,7 @@ 331C80D6294CF71000263BE5 /* RunnerTests */, 33CC10EE2044A3C60003C045 /* Products */, D73912EC22F37F3D000D13A0 /* Frameworks */, + 97D196F8A91B306EF7A8B9E1 /* Pods */, ); sourceTree = ""; }; @@ -179,9 +192,25 @@ path = Runner; sourceTree = ""; }; + 97D196F8A91B306EF7A8B9E1 /* Pods */ = { + isa = PBXGroup; + children = ( + DBDEAEBB3B165959B92AA66F /* Pods-Runner.debug.xcconfig */, + 59FFBDFBB38319137F6C084B /* Pods-Runner.release.xcconfig */, + 48B89F3DB390ACC609FA2E21 /* Pods-Runner.profile.xcconfig */, + 7E9A6C0725AE267ECBE50B9D /* Pods-RunnerTests.debug.xcconfig */, + 2B336C8BC1FE0C09D4DD0753 /* Pods-RunnerTests.release.xcconfig */, + 79792DA5E87C85B8068E045D /* Pods-RunnerTests.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; D73912EC22F37F3D000D13A0 /* Frameworks */ = { isa = PBXGroup; children = ( + 1B2CD240576EF27BE303B514 /* Pods_Runner.framework */, + DA381DA986524D8EF0AA2DEF /* Pods_RunnerTests.framework */, ); name = Frameworks; sourceTree = ""; @@ -193,6 +222,7 @@ isa = PBXNativeTarget; buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( + 578E78DF22ACC6449EDD2890 /* [CP] Check Pods Manifest.lock */, 331C80D1294CF70F00263BE5 /* Sources */, 331C80D2294CF70F00263BE5 /* Frameworks */, 331C80D3294CF70F00263BE5 /* Resources */, @@ -211,11 +241,13 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( + A817824FB62B3558AA381ABF /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, + 45ECCD83F1130CE08987BEC1 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -271,7 +303,7 @@ ); mainGroup = 33CC10E42044A3C60003C045; packageReferences = ( - 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */, ); productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; projectDirPath = ""; @@ -342,6 +374,67 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; + 45ECCD83F1130CE08987BEC1 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 578E78DF22ACC6449EDD2890 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + A817824FB62B3558AA381ABF /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -394,6 +487,7 @@ /* Begin XCBuildConfiguration section */ 331C80DB294CF71000263BE5 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 7E9A6C0725AE267ECBE50B9D /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -408,6 +502,7 @@ }; 331C80DC294CF71000263BE5 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 2B336C8BC1FE0C09D4DD0753 /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -422,6 +517,7 @@ }; 331C80DD294CF71000263BE5 /* Profile */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 79792DA5E87C85B8068E045D /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -716,7 +812,7 @@ /* End XCConfigurationList section */ /* Begin XCLocalSwiftPackageReference section */ - 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = { + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = { isa = XCLocalSwiftPackageReference; relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; }; diff --git a/packages/playground/macos/Runner.xcworkspace/contents.xcworkspacedata b/packages/playground/macos/Runner.xcworkspace/contents.xcworkspacedata index 1d526a16..21a3cc14 100644 --- a/packages/playground/macos/Runner.xcworkspace/contents.xcworkspacedata +++ b/packages/playground/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -4,4 +4,7 @@ + + diff --git a/packages/playground/macos/Runner/MainFlutterWindow.swift b/packages/playground/macos/Runner/MainFlutterWindow.swift index 23a8c4af..f330b959 100644 --- a/packages/playground/macos/Runner/MainFlutterWindow.swift +++ b/packages/playground/macos/Runner/MainFlutterWindow.swift @@ -2,6 +2,9 @@ import Cocoa import FlutterMacOS class MainFlutterWindow: NSWindow { + private static let initialContentSize = NSSize(width: 1440, height: 900) + private static let minimumContentSize = NSSize(width: 1200, height: 700) + private let bookmarkManager = SecurityScopedBookmarkManager() override func awakeFromNib() { @@ -10,6 +13,17 @@ class MainFlutterWindow: NSWindow { self.contentViewController = flutterViewController self.setFrame(windowFrame, display: true) + // Both editor sidebars are visible by default. The template's 800-point + // window leaves the central editor with almost no width, so start at a + // useful desktop size and prevent the window from shrinking back into that + // unusable layout. + self.contentMinSize = Self.minimumContentSize + if self.contentLayoutRect.width < Self.minimumContentSize.width || + self.contentLayoutRect.height < Self.minimumContentSize.height { + self.setContentSize(Self.initialContentSize) + self.center() + } + let registrar = flutterViewController.registrar( forPlugin: "SecurityScopedBookmarks") let bookmarkChannel = FlutterMethodChannel( diff --git a/packages/playground/pubspec.yaml b/packages/playground/pubspec.yaml index bef637ac..de0dba6b 100644 --- a/packages/playground/pubspec.yaml +++ b/packages/playground/pubspec.yaml @@ -4,7 +4,9 @@ publish_to: none environment: sdk: ">=3.12.0 <4.0.0" - flutter: ">=3.44.0" + flutter: ">=3.44.6" + +resolution: workspace dependencies: flutter: @@ -27,12 +29,9 @@ dependencies: url: https://github.com/tilucasoli/hero_ui ref: v0.0.6 # SuperDeck packages - superdeck: - path: ../superdeck - superdeck_core: - path: ../core - superdeck_builder: - path: ../builder + superdeck: ^1.0.0 + superdeck_core: ^1.0.0 + superdeck_builder: ^1.0.0 # AI generation genui: ^0.9.2 googleai_dart: ^9.0.0 diff --git a/packages/plugins/mermaid/lib/src/mermaid_generator.dart b/packages/plugins/mermaid/lib/src/mermaid_generator.dart index d43941b7..ece07fb8 100644 --- a/packages/plugins/mermaid/lib/src/mermaid_generator.dart +++ b/packages/plugins/mermaid/lib/src/mermaid_generator.dart @@ -287,8 +287,9 @@ class MermaidGenerator { for (final rawPackage in packages.cast>()) { if (rawPackage['name'] != 'superdeck_mermaid') continue; + final rawRootUri = rawPackage['rootUri'] as String; final rootUri = packageConfig.uri.resolve( - rawPackage['rootUri'] as String, + rawRootUri.endsWith('/') ? rawRootUri : '$rawRootUri/', ); final packageUri = rawPackage['packageUri'] as String? ?? 'lib/'; diff --git a/packages/plugins/mermaid/pubspec.yaml b/packages/plugins/mermaid/pubspec.yaml index a08f6b1b..e87ab6b2 100644 --- a/packages/plugins/mermaid/pubspec.yaml +++ b/packages/plugins/mermaid/pubspec.yaml @@ -7,6 +7,7 @@ documentation: https://docs.page/btwld/superdeck environment: sdk: ">=3.12.0 <4.0.0" +resolution: workspace dependencies: crypto: ^3.0.6 diff --git a/packages/plugins/pdf/pubspec.yaml b/packages/plugins/pdf/pubspec.yaml index 0a4fd8cb..883ac3ce 100644 --- a/packages/plugins/pdf/pubspec.yaml +++ b/packages/plugins/pdf/pubspec.yaml @@ -6,7 +6,9 @@ documentation: https://docs.page/btwld/superdeck environment: sdk: ">=3.12.0 <4.0.0" - flutter: ">=3.44.0" + flutter: ">=3.44.6" + +resolution: workspace dependencies: flutter: diff --git a/packages/superdeck/pubspec.yaml b/packages/superdeck/pubspec.yaml index fe86d8cc..b52614aa 100644 --- a/packages/superdeck/pubspec.yaml +++ b/packages/superdeck/pubspec.yaml @@ -6,8 +6,9 @@ documentation: https://docs.page/btwld/superdeck environment: sdk: ">=3.12.0 <4.0.0" - flutter: ">=3.44.0" + flutter: ">=3.44.6" +resolution: workspace dependencies: flutter: @@ -46,8 +47,7 @@ dev_dependencies: dart_mappable_builder: ^4.7.0 mix_generator: ^2.1.2 path_provider_platform_interface: ^2.1.2 - superdeck_builder: - path: ../builder + superdeck_builder: ^1.0.0 flutter: uses-material-design: true diff --git a/packages/superdeck/pubspec_overrides.yaml b/packages/superdeck/pubspec_overrides.yaml deleted file mode 100644 index 3dd1c611..00000000 --- a/packages/superdeck/pubspec_overrides.yaml +++ /dev/null @@ -1,6 +0,0 @@ -# melos_managed_dependency_overrides: superdeck_core,superdeck_builder -dependency_overrides: - superdeck_core: - path: ../core - superdeck_builder: - path: ../builder diff --git a/packages/superdeck/test/integration/authoring_integration_test.dart b/packages/superdeck/test/integration/authoring_integration_test.dart index 2d480862..39f0e686 100644 --- a/packages/superdeck/test/integration/authoring_integration_test.dart +++ b/packages/superdeck/test/integration/authoring_integration_test.dart @@ -8,6 +8,7 @@ import 'package:superdeck_core/superdeck_core.dart'; const _fixturePath = 'packages/superdeck/test/integration/fixtures/authoring_deck.md'; const _builderPackagePath = 'packages/builder'; +const _packageConfigPath = '.dart_tool/package_config.json'; const _buildScriptSource = r''' import 'package:superdeck_builder/superdeck_builder.dart'; import 'package:superdeck_core/superdeck_core.dart'; @@ -201,9 +202,7 @@ Future> _buildFixtureDeck() async { Future _runBuilder(Directory repoRoot, DeckWorkspace workspace) async { final builderDir = Directory(p.join(repoRoot.path, _builderPackagePath)); - final packageConfig = File( - p.join(builderDir.path, '.dart_tool/package_config.json'), - ); + final packageConfig = File(p.join(repoRoot.path, _packageConfigPath)); final buildScript = File( p.join(workspace.projectDir, 'build_authoring_deck.dart'), ); @@ -242,7 +241,7 @@ DeckWorkspace _createTestWorkspace(Directory tempDir) { Directory _repoRoot() { var current = Directory.current; - while (!File(p.join(current.path, 'melos.yaml')).existsSync()) { + while (!File(p.join(current.path, '.fvmrc')).existsSync()) { final parent = current.parent; if (parent.path == current.path) { fail('Could not locate repository root from ${Directory.current.path}.'); diff --git a/pubspec.lock b/pubspec.lock index 408d58d1..ebb0baad 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,6 +1,54 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: c209688d9f5a5f26b2fb47a188131a6fb9e876ae9e47af3737c0b4f58a93470d + url: "https://pub.dev" + source: hosted + version: "91.0.0" + ack: + dependency: transitive + description: + name: ack + sha256: da555e043d1f549db783bc534fdff86dc19a205ec97da58eb2745c9121d30797 + url: "https://pub.dev" + source: hosted + version: "1.0.1" + ack_annotations: + dependency: transitive + description: + name: ack_annotations + sha256: "082da2332bff04a004f63c0b1997b091adedb35c7bd1bf06814ea6dd94986f67" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + ack_generator: + dependency: transitive + description: + name: ack_generator + sha256: "5a2885d4325e7df75d7c57c947bfdf80f833d6c476d3e453a275829a358b2247" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + ack_json_schema_builder: + dependency: transitive + description: + name: ack_json_schema_builder + sha256: "541f863050600a7fb96503c2ce46bf64f157c2c761e7d3d13cf06c0d2c27d684" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + analyzer: + dependency: "direct overridden" + description: + name: analyzer + sha256: f51c8499b35f9b26820cfe914828a6a98a94efd5cc78b37bb7d03debae3a1d08 + url: "https://pub.dev" + source: hosted + version: "8.4.1" ansi_styles: dependency: transitive description: @@ -9,6 +57,30 @@ packages: url: "https://pub.dev" source: hosted version: "0.3.2+1" + ansicolor: + dependency: transitive + description: + name: ansicolor + sha256: "50e982d500bc863e1d703448afdbf9e5a72eb48840a4f766fa361ffd6877055f" + url: "https://pub.dev" + source: hosted + version: "2.0.3" + anthropic_sdk_dart: + dependency: transitive + description: + name: anthropic_sdk_dart + sha256: b0e91039942930341b24e3871d5b9481b6d31528b711eb752f413f4d1f5980eb + url: "https://pub.dev" + source: hosted + version: "1.5.0" + archive: + dependency: transitive + description: + name: archive + sha256: a96e8b390886ee8abb49b7bd3ac8df6f451c621619f52a26e815fdcf568959ff + url: "https://pub.dev" + source: hosted + version: "4.0.9" args: dependency: transitive description: @@ -25,6 +97,190 @@ packages: url: "https://pub.dev" source: hosted version: "2.13.1" + attributed_text: + dependency: transitive + description: + name: attributed_text + sha256: "73161d761d77e33ae1375e5ea996d609379f4e4a483047605da7e638e9fae8af" + url: "https://pub.dev" + source: hosted + version: "0.4.7" + audioplayers: + dependency: transitive + description: + name: audioplayers + sha256: "2ba4bb2944baacbdd5372ff8254a8e7feb8c10d7739545e392f5605a8f618745" + url: "https://pub.dev" + source: hosted + version: "6.8.1" + audioplayers_android: + dependency: transitive + description: + name: audioplayers_android + sha256: f5ff5b15620fbab8cb0849e9636c48e2b96c3f0f71723bbbe2ad3c761b205f05 + url: "https://pub.dev" + source: hosted + version: "5.3.0" + audioplayers_darwin: + dependency: transitive + description: + name: audioplayers_darwin + sha256: "1ca553add991384ecf421b9569da850f3ab2472ffb83f6970b0416365abc51be" + url: "https://pub.dev" + source: hosted + version: "6.5.0" + audioplayers_linux: + dependency: transitive + description: + name: audioplayers_linux + sha256: "15178b726b7cdee5364d0463c8d445630c4e0fb7d26612b73c767e7d25de9417" + url: "https://pub.dev" + source: hosted + version: "4.3.0" + audioplayers_platform_interface: + dependency: transitive + description: + name: audioplayers_platform_interface + sha256: "765f6f0e6dca55cb471c9483fc77700564b3484d19198aca4ebb5147c6c85acb" + url: "https://pub.dev" + source: hosted + version: "7.2.0" + audioplayers_web: + dependency: transitive + description: + name: audioplayers_web + sha256: ae1e0103c865a03e273f6d13d97b93f5595eac09915729cd5e37ef96e2857319 + url: "https://pub.dev" + source: hosted + version: "5.3.0" + audioplayers_windows: + dependency: transitive + description: + name: audioplayers_windows + sha256: a70ae82bba2dfcb6eb03dd4815d737a2d46d33ea5a96a03f535cfcaac490e413 + url: "https://pub.dev" + source: hosted + version: "4.4.1" + barcode: + dependency: transitive + description: + name: barcode + sha256: "7b6729c37e3b7f34233e2318d866e8c48ddb46c1f7ad01ff7bb2a8de1da2b9f4" + url: "https://pub.dev" + source: hosted + version: "2.2.9" + bidi: + dependency: transitive + description: + name: bidi + sha256: "77f475165e94b261745cf1032c751e2032b8ed92ccb2bf5716036db79320637d" + url: "https://pub.dev" + source: hosted + version: "2.0.13" + binarize: + dependency: transitive + description: + name: binarize + sha256: "9f0ff4059989f8b9ff09a951e1896998d55cac5fa0d86f701d0165ededf06622" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + build: + dependency: transitive + description: + name: build + sha256: "45d14a0fb23e018d8287c32fc98d726ce466b231928ed9b9200f29bd3ccd39ae" + url: "https://pub.dev" + source: hosted + version: "4.0.7" + build_config: + dependency: transitive + description: + name: build_config + sha256: f2c223156a26eea323e6244b85141d76413a80aeee9fe0b380773789fabaf8ae + url: "https://pub.dev" + source: hosted + version: "1.3.1" + build_daemon: + dependency: transitive + description: + name: build_daemon + sha256: fd754058c342243718d5171a95f352cfc9fcf0cba8cfa26df67cb13a5836db78 + url: "https://pub.dev" + source: hosted + version: "4.1.2" + build_runner: + dependency: transitive + description: + name: build_runner + sha256: "5367e521935b102bdf1e735d2aab461e36b2edca6517662d088dd04cc39f8d16" + url: "https://pub.dev" + source: hosted + version: "2.15.1" + built_collection: + dependency: transitive + description: + name: built_collection + sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" + url: "https://pub.dev" + source: hosted + version: "5.1.1" + built_value: + dependency: transitive + description: + name: built_value + sha256: "34e4067d30ce212937df995f03b69992eea683539ceeac7f679a1f1eba055b56" + url: "https://pub.dev" + source: hosted + version: "8.12.6" + cached_network_image: + dependency: transitive + description: + name: cached_network_image + sha256: "7c1183e361e5c8b0a0f21a28401eecdbde252441106a9816400dd4c2b2424916" + url: "https://pub.dev" + source: hosted + version: "3.4.1" + cached_network_image_platform_interface: + dependency: transitive + description: + name: cached_network_image_platform_interface + sha256: "35814b016e37fbdc91f7ae18c8caf49ba5c88501813f73ce8a07027a395e2829" + url: "https://pub.dev" + source: hosted + version: "4.1.1" + cached_network_image_web: + dependency: transitive + description: + name: cached_network_image_web + sha256: "980842f4e8e2535b8dbd3d5ca0b1f0ba66bf61d14cc3a17a9b4788a3685ba062" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + cached_value: + dependency: transitive + description: + name: cached_value + sha256: "534a6c618e2e891548236c90a3a3ac055dfe4c870efff29719cf28c51ca8b7a5" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + characters: + dependency: transitive + description: + name: characters + sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b + url: "https://pub.dev" + source: hosted + version: "1.4.1" charcode: dependency: transitive description: @@ -41,6 +297,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.4" + cli_config: + dependency: transitive + description: + name: cli_config + sha256: ac20a183a07002b700f0c25e61b7ee46b23c309d76ab7b7640a028f18e4d99ec + url: "https://pub.dev" + source: hosted + version: "0.2.0" cli_launcher: dependency: transitive description: @@ -57,6 +321,30 @@ packages: url: "https://pub.dev" source: hosted version: "0.4.2" + clock: + dependency: transitive + description: + name: clock + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b + url: "https://pub.dev" + source: hosted + version: "1.1.2" + code_assets: + dependency: transitive + description: + name: code_assets + sha256: bf394f466ba9205f1812a0433b392d6af280f155f56651eda7c18cc32ed493b8 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + code_builder: + dependency: transitive + description: + name: code_builder + sha256: "6a6cab2ba4680d6423f34a9b972a4c9a94ebe1b62ecec4e1a1f2cba91fd1319d" + url: "https://pub.dev" + source: hosted + version: "4.11.1" collection: dependency: transitive description: @@ -73,214 +361,1810 @@ packages: url: "https://pub.dev" source: hosted version: "0.6.1+1" - file: + convert: dependency: transitive description: - name: file - sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 + name: convert + sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 url: "https://pub.dev" source: hosted - version: "7.0.1" - glob: + version: "3.1.2" + coverage: dependency: transitive description: - name: glob - sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de + name: coverage + sha256: "956a3de0725ca232ad353565a8290d3357592bf4250f6f298a185e2d949c5d3d" url: "https://pub.dev" source: hosted - version: "2.1.3" - graphs: + version: "1.15.1" + cross_file: dependency: transitive description: - name: graphs - sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" + name: cross_file + sha256: "92c9c43c383bfa1c32079d3bc492d55d6d4318044b7b47edaff8971cbb555c51" url: "https://pub.dev" source: hosted - version: "2.3.2" - http: + version: "0.3.5+4" + crypto: dependency: transitive description: - name: http - sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412" + name: crypto + sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf url: "https://pub.dev" source: hosted - version: "1.6.0" - http_parser: + version: "3.0.7" + csslib: dependency: transitive description: - name: http_parser - sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" + name: csslib + sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e" url: "https://pub.dev" source: hosted - version: "4.1.2" - io: + version: "1.0.2" + cupertino_icons: dependency: transitive description: - name: io - sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b + name: cupertino_icons + sha256: "41e005c33bd814be4d3096aff55b1908d419fde52ca656c8c47719ec745873cd" url: "https://pub.dev" source: hosted - version: "1.0.5" - json_annotation: + version: "1.0.9" + dart_code_metrics_presets: dependency: transitive description: - name: json_annotation - sha256: "2a743920d81b7910627f68ee2c9ac1fc0bfee32b9fc3403587d7c6791ca12f80" + name: dart_code_metrics_presets + sha256: c2b890695e732329c79085194c6fc815a20acf44e553fad6c72f75bf3ae203cf url: "https://pub.dev" source: hosted - version: "4.12.0" - melos: - dependency: "direct main" + version: "2.32.0" + dart_mappable: + dependency: transitive description: - name: melos - sha256: "4280dc46bd5b741887cce1e67e5c1a6aaf3c22310035cf5bd33dceeeda62ed22" + name: dart_mappable + sha256: "960746478faaa68ed6b9d3c6fd03c87c7b8614e6c33e75fe1b0c6d7a60adcf29" url: "https://pub.dev" source: hosted - version: "6.3.3" - meta: + version: "4.8.0" + dart_mappable_builder: dependency: transitive description: - name: meta - sha256: c82594181e3312f3d0695fc95aaaf7758d75b8d4ae2bbecf223b9fd5109a059d + name: dart_mappable_builder + sha256: "6d174a1853c47cf7c1d2a1c80bd56b54f8fd89aa78e0644b6a65860f9af7acf8" url: "https://pub.dev" source: hosted - version: "1.18.3" - mustache_template: + version: "4.7.0" + dart_quill_delta: dependency: transitive description: - name: mustache_template - sha256: c689b4d59176f8c7a2860aab765d205916aa5b06cfafff7613bfcc42fa996143 + name: dart_quill_delta + sha256: "6aa89f0903ca3e70f5ceeb1d75d722f6ca583e87a2a8893c7b9f42f7a947f6e5" url: "https://pub.dev" source: hosted - version: "2.0.5" - path: + version: "9.6.0" + dart_style: dependency: transitive description: - name: path - sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" + name: dart_style + sha256: a9c30492da18ff84efe2422ba2d319a89942d93e58eb0b73d32abe822ef54b7b url: "https://pub.dev" source: hosted - version: "1.9.1" - platform: + version: "3.1.3" + dartantic_ai: dependency: transitive description: - name: platform - sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" + name: dartantic_ai + sha256: "613dec7c2ec14d571af248b8642c05c23f3e930a94ce2fb3932d02d93bbdffca" url: "https://pub.dev" source: hosted - version: "3.1.6" - pool: + version: "3.3.0" + dartantic_interface: dependency: transitive description: - name: pool - sha256: "978783255c543aa3586a1b3c21f6e9d720eb315376a915872c61ef8b5c20177d" + name: dartantic_interface + sha256: dceb490d410d2880906bf298ba649075a9d1d97e3ef832d932adeb6bd09538a6 url: "https://pub.dev" source: hosted - version: "1.5.2" - process: + version: "4.0.1" + decimal: dependency: transitive description: - name: process - sha256: c6248e4526673988586e8c00bb22a49210c258dc91df5227d5da9748ecf79744 + name: decimal + sha256: fc706a5618b81e5b367b01dd62621def37abc096f2b46a9bd9068b64c1fa36d0 url: "https://pub.dev" source: hosted - version: "5.0.5" - prompts: + version: "3.2.4" + device_info_plus: dependency: transitive description: - name: prompts - sha256: "3773b845e85a849f01e793c4fc18a45d52d7783b4cb6c0569fad19f9d0a774a1" + name: device_info_plus + sha256: "98f28b42168cc509abc92f88518882fd58061ea372d7999aecc424345c7bff6a" url: "https://pub.dev" source: hosted - version: "2.0.0" - pub_semver: + version: "11.5.0" + device_info_plus_platform_interface: dependency: transitive description: - name: pub_semver - sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585" + name: device_info_plus_platform_interface + sha256: e1ea89119e34903dca74b883d0dd78eb762814f97fb6c76f35e9ff74d261a18f url: "https://pub.dev" source: hosted - version: "2.2.0" - pub_updater: + version: "7.0.3" + diff_match_patch: dependency: transitive description: - name: pub_updater - sha256: "739a0161d73a6974c0675b864fb0cf5147305f7b077b7f03a58fa7a9ab3e7e7d" + name: diff_match_patch + sha256: "2efc9e6e8f449d0abe15be240e2c2a3bcd977c8d126cfd70598aee60af35c0a4" url: "https://pub.dev" source: hosted - version: "0.5.0" - pubspec_parse: + version: "0.4.1" + dio: dependency: transitive description: - name: pubspec_parse - sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" + name: dio + sha256: ea2bad3c89a27635ce2d85cce4d6b199da49a5a48ec77b03e45b65a3b90922b0 url: "https://pub.dev" source: hosted - version: "1.5.0" - source_span: + version: "5.10.0" + dio_web_adapter: dependency: transitive description: - name: source_span - sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab" + name: dio_web_adapter + sha256: dd58dc3861eb36edb13b217efc006a1c21e5bbc341de8c229b85634fa5e362e4 url: "https://pub.dev" source: hosted - version: "1.10.2" - stack_trace: + version: "2.2.0" + dotprompt_dart: dependency: transitive description: - name: stack_trace - sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" + name: dotprompt_dart + sha256: "1eb67900c783ea91eb70fd3c1a6c90fd753aa9b8b214fc6a807b7737fe2d9fef" url: "https://pub.dev" source: hosted - version: "1.12.1" - string_scanner: + version: "0.5.0" + email_validator: dependency: transitive description: - name: string_scanner - sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" + name: email_validator + sha256: b19aa5d92fdd76fbc65112060c94d45ba855105a28bb6e462de7ff03b12fa1fb url: "https://pub.dev" source: hosted - version: "1.4.1" - term_glyph: + version: "3.0.0" + fake_async: dependency: transitive description: - name: term_glyph - sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" + name: fake_async + sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" url: "https://pub.dev" source: hosted - version: "1.2.2" - typed_data: + version: "1.3.3" + ffi: dependency: transitive description: - name: typed_data - sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 + name: ffi + sha256: "6d7fd89431262d8f3125e81b50d3847a091d846eafcd4fdb88dd06f36d705a45" url: "https://pub.dev" source: hosted - version: "1.4.0" - web: + version: "2.2.0" + file: dependency: transitive description: - name: web - sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" + name: file + sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 url: "https://pub.dev" source: hosted - version: "1.1.1" - yaml: + version: "7.0.1" + file_saver: dependency: transitive description: - name: yaml - sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce + name: file_saver + sha256: "68c9a085d9bb4546e0a31d1e583a48d7c17a6987d538788ea064f0043b1fc02d" url: "https://pub.dev" source: hosted - version: "3.1.3" - yaml_edit: + version: "0.4.0" + fixnum: dependency: transitive description: - name: yaml_edit - sha256: "07c9e63ba42519745182b88ca12264a7ba2484d8239958778dfe4d44fe760488" + name: fixnum + sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be url: "https://pub.dev" source: hosted - version: "2.2.4" + version: "1.1.1" + flutter: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + flutter_cache_manager: + dependency: transitive + description: + name: flutter_cache_manager + sha256: "400b6592f16a4409a7f2bb929a9a7e38c72cceb8ffb99ee57bbf2cb2cecf8386" + url: "https://pub.dev" + source: hosted + version: "3.4.1" + flutter_driver: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + flutter_hooks: + dependency: transitive + description: + name: flutter_hooks + sha256: "8ae1f090e5f4ef5cfa6670ce1ab5dddadd33f3533a7f9ba19d9f958aa2a89f42" + url: "https://pub.dev" + source: hosted + version: "0.21.3+1" + flutter_lints: + dependency: transitive + description: + name: flutter_lints + sha256: "3105dc8492f6183fb076ccf1f351ac3d60564bff92e20bfc4af9cc1651f4e7e1" + url: "https://pub.dev" + source: hosted + version: "6.0.0" + flutter_markdown_plus: + dependency: transitive + description: + name: flutter_markdown_plus + sha256: fce641d6c2106cc495de1cd603f97a4f9d615a97a64011928ded380dbdade935 + url: "https://pub.dev" + source: hosted + version: "1.0.12" + flutter_math_fork: + dependency: transitive + description: + name: flutter_math_fork + sha256: "6d5f2f1aa57ae539ffb0a04bb39d2da67af74601d685a161aff7ce5bda5fa407" + url: "https://pub.dev" + source: hosted + version: "0.7.4" + flutter_plugin_android_lifecycle: + dependency: transitive + description: + name: flutter_plugin_android_lifecycle + sha256: "3854fe5e3bff0b113c658f260b90c95dea17c92db0f2addeac2e343dd9969785" + url: "https://pub.dev" + source: hosted + version: "2.0.35" + flutter_shaders: + dependency: transitive + description: + name: flutter_shaders + sha256: "34794acadd8275d971e02df03afee3dee0f98dbfb8c4837082ad0034f612a3e2" + url: "https://pub.dev" + source: hosted + version: "0.1.3" + flutter_svg: + dependency: transitive + description: + name: flutter_svg + sha256: "35882981abcbfb8c15b286f0cd690ff25bac12d95eff3e25ee207f37d4c42e7f" + url: "https://pub.dev" + source: hosted + version: "2.3.0" + flutter_test: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + flutter_test_robots: + dependency: transitive + description: + name: flutter_test_robots + sha256: "3b00f2081148bde55190997c2772f934ad2f4529cbcfc4ccfa593f8ddc117a28" + url: "https://pub.dev" + source: hosted + version: "0.0.24" + flutter_test_runners: + dependency: transitive + description: + name: flutter_test_runners + sha256: cc575117ed66a79185a26995399d7048341517a1bd21188cb43753739627832d + url: "https://pub.dev" + source: hosted + version: "0.0.4" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + follow_the_leader: + dependency: transitive + description: + name: follow_the_leader + sha256: "5cc5676008b786e8a34725874c750489c778431d2f9c423f0cc3c18527535236" + url: "https://pub.dev" + source: hosted + version: "0.5.3" + frontend_server_client: + dependency: transitive + description: + name: frontend_server_client + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 + url: "https://pub.dev" + source: hosted + version: "4.0.0" + fuchsia_remote_debug_protocol: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + genai_primitives: + dependency: transitive + description: + name: genai_primitives + sha256: "2468ecd2984f32232ab199315e384821c61a198e356828e34b9a5bcf0fda863e" + url: "https://pub.dev" + source: hosted + version: "0.2.3" + genui: + dependency: transitive + description: + name: genui + sha256: "3e6688a9bc5e0147be3c3837f9bfc4588618416dd5a346b746aa9f64f8ffd7bf" + url: "https://pub.dev" + source: hosted + version: "0.9.2" + glob: + dependency: transitive + description: + name: glob + sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de + url: "https://pub.dev" + source: hosted + version: "2.1.3" + go_router: + dependency: transitive + description: + name: go_router + sha256: "5922b2861e2235a3504896f0d6fa07d84141b480cf52eecd2f42cd25585a9e8a" + url: "https://pub.dev" + source: hosted + version: "17.3.0" + golden_toolkit: + dependency: transitive + description: + name: golden_toolkit + sha256: "8f74adab33154fe7b731395782797021f97d2edc52f7bfb85ff4f1b5c4a215f0" + url: "https://pub.dev" + source: hosted + version: "0.15.0" + google_cloud: + dependency: transitive + description: + name: google_cloud + sha256: b385e20726ef5315d302c5933bfb728103116c5be2d3d17094b01a82da538c1f + url: "https://pub.dev" + source: hosted + version: "0.5.0" + google_cloud_ai_generativelanguage_v1beta: + dependency: transitive + description: + name: google_cloud_ai_generativelanguage_v1beta + sha256: "5d8fc1023ca8d6b1357a2cac1331944bf3d866fc9bfce5ab46ddf7fa2d0713c0" + url: "https://pub.dev" + source: hosted + version: "0.5.2" + google_cloud_longrunning: + dependency: transitive + description: + name: google_cloud_longrunning + sha256: "6795a17c5b14f50a7db2bb8564f2e033973fad698eae75fe7bd59f5614d5dda6" + url: "https://pub.dev" + source: hosted + version: "0.5.2" + google_cloud_protobuf: + dependency: transitive + description: + name: google_cloud_protobuf + sha256: f45f656c63d040b21d5cf947a3c44d537eb82ee68e485ccfcf2edbcbd1041461 + url: "https://pub.dev" + source: hosted + version: "0.5.2" + google_cloud_rpc: + dependency: transitive + description: + name: google_cloud_rpc + sha256: "143ca2179dbcc5e4d16e8ee352aa4891b105b0aafc4e617bd4d713715a4afef2" + url: "https://pub.dev" + source: hosted + version: "0.5.2" + google_cloud_type: + dependency: transitive + description: + name: google_cloud_type + sha256: f82055273f7f7a9f52d96285fd4fd61a79fc7ef86454d880b93cf81347c1d1ad + url: "https://pub.dev" + source: hosted + version: "0.5.2" + google_fonts: + dependency: transitive + description: + name: google_fonts + sha256: "4e9391085e524954a51e3625b7c9c7e9851dc3f376603208bb45c24b9a66255d" + url: "https://pub.dev" + source: hosted + version: "8.1.0" + google_identity_services_web: + dependency: transitive + description: + name: google_identity_services_web + sha256: "5d187c46dc59e02646e10fe82665fc3884a9b71bc1c90c2b8b749316d33ee454" + url: "https://pub.dev" + source: hosted + version: "0.3.3+1" + googleai_dart: + dependency: transitive + description: + name: googleai_dart + sha256: "58c628b8b96ffff9d8a80e23ef7d2813ad38c0b48360a9c84e7234f15a8098de" + url: "https://pub.dev" + source: hosted + version: "9.0.0" + googleapis_auth: + dependency: transitive + description: + name: googleapis_auth + sha256: ea53b290aaf1fdff615c8d79091b02c9150ff81c48f7f3b7460598c444f3c50a + url: "https://pub.dev" + source: hosted + version: "2.3.3" + gpt_markdown: + dependency: transitive + description: + name: gpt_markdown + sha256: c14c2a4599a67df5b6a984808cbb7631b8d15c91984ffdd7998597b93a6ff136 + url: "https://pub.dev" + source: hosted + version: "1.1.7" + graphs: + dependency: transitive + description: + name: graphs + sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + hero_ui: + dependency: transitive + description: + path: "." + ref: "v0.0.6" + resolved-ref: "24d42c465f5ff34c3e3f30850a4d6b5b9d4e11fa" + url: "https://github.com/tilucasoli/hero_ui" + source: git + version: "1.0.0+1" + hooks: + dependency: transitive + description: + name: hooks + sha256: "9a62a50b50b769a737bc0a8ff381f333529df3ab746b2f6b02e83760231455ba" + url: "https://pub.dev" + source: hosted + version: "2.0.2" + html: + dependency: transitive + description: + name: html + sha256: "6d1264f2dffa1b1101c25a91dff0dc2daee4c18e87cd8538729773c073dbf602" + url: "https://pub.dev" + source: hosted + version: "0.15.6" + http: + dependency: transitive + description: + name: http + sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412" + url: "https://pub.dev" + source: hosted + version: "1.6.0" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8 + url: "https://pub.dev" + source: hosted + version: "3.2.2" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" + url: "https://pub.dev" + source: hosted + version: "4.1.2" + image: + dependency: transitive + description: + name: image + sha256: f9881ff4998044947ec38d098bc7c8316ae1186fa786eddffdb867b9bc94dfce + url: "https://pub.dev" + source: hosted + version: "4.8.0" + integration_test: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + intl: + dependency: transitive + description: + name: intl + sha256: "1ca20c894b1717686a2319b8548763d812bc0aabdac580420a44c5178c57a867" + url: "https://pub.dev" + source: hosted + version: "0.20.3" + io: + dependency: transitive + description: + name: io + sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b + url: "https://pub.dev" + source: hosted + version: "1.0.5" + irondash_engine_context: + dependency: transitive + description: + name: irondash_engine_context + sha256: "2bb0bc13dfda9f5aaef8dde06ecc5feb1379f5bb387d59716d799554f3f305d7" + url: "https://pub.dev" + source: hosted + version: "0.5.5" + irondash_message_channel: + dependency: transitive + description: + name: irondash_message_channel + sha256: b4101669776509c76133b8917ab8cfc704d3ad92a8c450b92934dd8884a2f060 + url: "https://pub.dev" + source: hosted + version: "0.7.0" + jni: + dependency: transitive + description: + name: jni + sha256: c2230682d5bc2362c1c9e8d3c7f406d9cbba23ab3f2e203a025dd47e0fb2e68f + url: "https://pub.dev" + source: hosted + version: "1.0.0" + jni_flutter: + dependency: transitive + description: + name: jni_flutter + sha256: "8b59e590786050b1cd866677dddaf76b1ade5e7bc751abe04b86e84d379d3ba6" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: "2a743920d81b7910627f68ee2c9ac1fc0bfee32b9fc3403587d7c6791ca12f80" + url: "https://pub.dev" + source: hosted + version: "4.12.0" + json_schema: + dependency: transitive + description: + name: json_schema + sha256: f37d9c3fdfe8c9aae55fdfd5af815d24ce63c3a0f6a2c1f0982c30f43643fa1a + url: "https://pub.dev" + source: hosted + version: "5.2.2" + json_schema_builder: + dependency: transitive + description: + name: json_schema_builder + sha256: "9c45a80bc25d3b091e96a5a5da49dc7f80d5b0c8496cff60409f9739331ccefb" + url: "https://pub.dev" + source: hosted + version: "0.1.5" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" + url: "https://pub.dev" + source: hosted + version: "11.0.2" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" + url: "https://pub.dev" + source: hosted + version: "3.0.10" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + linkify: + dependency: transitive + description: + name: linkify + sha256: "4139ea77f4651ab9c315b577da2dd108d9aa0bd84b5d03d33323f1970c645832" + url: "https://pub.dev" + source: hosted + version: "5.0.0" + lints: + dependency: transitive + description: + name: lints + sha256: "12f842a479589fea194fe5c5a3095abc7be0c1f2ddfa9a0e76aed1dbd26a87df" + url: "https://pub.dev" + source: hosted + version: "6.1.0" + logging: + dependency: transitive + description: + name: logging + sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 + url: "https://pub.dev" + source: hosted + version: "1.3.0" + markdown: + dependency: transitive + description: + name: markdown + sha256: ee85086ad7698b42522c6ad42fe195f1b9898e4d974a1af4576c1a3a176cada9 + url: "https://pub.dev" + source: hosted + version: "7.3.1" + mason_logger: + dependency: transitive + description: + name: mason_logger + sha256: "1d46102c6f299c0df7fe986dd3dd3271d57c2ec7c00ae590660b7c3018810048" + url: "https://pub.dev" + source: hosted + version: "0.3.5" + matcher: + dependency: transitive + description: + name: matcher + sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861 + url: "https://pub.dev" + source: hosted + version: "0.12.19" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b" + url: "https://pub.dev" + source: hosted + version: "0.13.0" + mcp_dart: + dependency: transitive + description: + name: mcp_dart + sha256: bc43d364974cc55d9d4bb5ad3708e614274a9218ba66f9ff2e47493e3b32474e + url: "https://pub.dev" + source: hosted + version: "2.2.2" + melos: + dependency: "direct dev" + description: + name: melos + sha256: b40731f34d3aacb199641a9b4955e52a866b0b0bc93ffc5c8ff21bffc6593134 + url: "https://pub.dev" + source: hosted + version: "7.8.1" + mesh: + dependency: transitive + description: + name: mesh + sha256: "513eeca4f4decd6c4c5f829a7fdd68a55abe9b2b379a894dfb17978dee44b8f7" + url: "https://pub.dev" + source: hosted + version: "0.5.0" + meta: + dependency: transitive + description: + name: meta + sha256: "1741988757a65eb6b36abe716829688cf01910bbf91c34354ff7ec1c3de2b349" + url: "https://pub.dev" + source: hosted + version: "1.18.0" + mime: + dependency: transitive + description: + name: mime + sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + mistralai_dart: + dependency: transitive + description: + name: mistralai_dart + sha256: ee6a06c6cac399fc3f4a707f379acd3afea79775033fe4b605da6a8c2dfd3768 + url: "https://pub.dev" + source: hosted + version: "1.3.0" + mix: + dependency: transitive + description: + name: mix + sha256: ed8382ac70d5d85c3d0f753c9f8f68f61d74958afbd05f3e3d7144a11ab8efad + url: "https://pub.dev" + source: hosted + version: "2.1.0" + mix_annotations: + dependency: transitive + description: + name: mix_annotations + sha256: "9673764279b878c7ddb9d9e8f6ad75e838b84ed8d5f561943f52fcc4f7264db9" + url: "https://pub.dev" + source: hosted + version: "2.1.3" + mix_generator: + dependency: transitive + description: + name: mix_generator + sha256: "331a7e96188390833bf7f628f9efbe86ae25743db215b101111865264075aadf" + url: "https://pub.dev" + source: hosted + version: "2.1.3" + mockito: + dependency: transitive + description: + name: mockito + sha256: eff30d002f0c8bf073b6f929df4483b543133fcafce056870163587b03f1d422 + url: "https://pub.dev" + source: hosted + version: "5.6.4" + mocktail: + dependency: transitive + description: + name: mocktail + sha256: "5e1bf53cc7baa8062a33b84424deb61513858ea05c601b8509e683815b5914aa" + url: "https://pub.dev" + source: hosted + version: "1.0.5" + mustache_template: + dependency: transitive + description: + name: mustache_template + sha256: c689b4d59176f8c7a2860aab765d205916aa5b06cfafff7613bfcc42fa996143 + url: "https://pub.dev" + source: hosted + version: "2.0.5" + naked_ui: + dependency: transitive + description: + name: naked_ui + sha256: "7c908f67a5b37d6434183bf261d0adc9cd53a52b62e58dca6f1e2e78929b29f7" + url: "https://pub.dev" + source: hosted + version: "0.2.0-beta.7" + nested: + dependency: transitive + description: + name: nested + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + node_preamble: + dependency: transitive + description: + name: node_preamble + sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db" + url: "https://pub.dev" + source: hosted + version: "2.0.2" + objective_c: + dependency: transitive + description: + name: objective_c + sha256: "6cb691c686fa2838c6deb34980d426145c2a5d537491cb83d463c33cdbc726ed" + url: "https://pub.dev" + source: hosted + version: "9.4.1" + octo_image: + dependency: transitive + description: + name: octo_image + sha256: "34faa6639a78c7e3cbe79be6f9f96535867e879748ade7d17c9b1ae7536293bd" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + oklch: + dependency: transitive + description: + name: oklch + sha256: fefbda1e6c1f8bae10d52474e5b3d30dff33879e3d5686ff0e77f93401d02b1d + url: "https://pub.dev" + source: hosted + version: "1.0.1" + ollama_dart: + dependency: transitive + description: + name: ollama_dart + sha256: d301154465e07810bd0c6ebb4ebc24f1e0f51372a299ae6b28433ac3bea91031 + url: "https://pub.dev" + source: hosted + version: "1.4.1" + openai_dart: + dependency: transitive + description: + name: openai_dart + sha256: "4731f94ea9a09cd9e92333debcfb87efda2764718e506538206df9f540e9ab60" + url: "https://pub.dev" + source: hosted + version: "1.4.0" + overlord: + dependency: transitive + description: + name: overlord + sha256: "532f5685ac09ee805d97ce89794a4eeda41672c32955b4a835bdfce93e720a05" + url: "https://pub.dev" + source: hosted + version: "0.4.2" + package_config: + dependency: transitive + description: + name: package_config + sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc + url: "https://pub.dev" + source: hosted + version: "2.2.0" + path: + dependency: transitive + description: + name: path + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" + url: "https://pub.dev" + source: hosted + version: "1.9.1" + path_parsing: + dependency: transitive + description: + name: path_parsing + sha256: "883402936929eac138ee0a45da5b0f2c80f89913e6dc3bf77eb65b84b409c6ca" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + path_provider: + dependency: transitive + description: + name: path_provider + sha256: a7f4874f987173da295a61c181b8ee71dab59b332a486b391babf26a1b884825 + url: "https://pub.dev" + source: hosted + version: "2.1.6" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + sha256: "69cbd515a62b94d32a7944f086b2f82b4ac40a1d45bebfc00813a430ab2dabcd" + url: "https://pub.dev" + source: hosted + version: "2.3.1" + path_provider_foundation: + dependency: transitive + description: + name: path_provider_foundation + sha256: "2a376b7d6392d80cd3705782d2caa734ca4727776db0b6ec36ef3f1855197699" + url: "https://pub.dev" + source: hosted + version: "2.6.0" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: "58c2005f147315b11e9b4a7bc889cd5203e250cba8e3f012dae259b4972b5c16" + url: "https://pub.dev" + source: hosted + version: "2.2.2" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "484838772624c3a4b94f1e44a3e19897fee738f2d5c4ce448443b0417f7c9dda" + url: "https://pub.dev" + source: hosted + version: "2.1.3" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 + url: "https://pub.dev" + source: hosted + version: "2.3.0" + pdf: + dependency: transitive + description: + name: pdf + sha256: e47a275b267873d5944ad5f5ff0dcc7ac2e36c02b3046a0ffac9b72fd362c44b + url: "https://pub.dev" + source: hosted + version: "3.12.0" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: "91bd59303e9f769f108f8df05e371341b15d59e995e6806aefab827b58336675" + url: "https://pub.dev" + source: hosted + version: "7.0.2" + pixel_snap: + dependency: transitive + description: + name: pixel_snap + sha256: "677410ea37b07cd37ecb6d5e6c0d8d7615a7cf3bd92ba406fd1ac57e937d1fb0" + url: "https://pub.dev" + source: hosted + version: "0.1.5" + platform: + dependency: transitive + description: + name: platform + sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" + url: "https://pub.dev" + source: hosted + version: "3.1.6" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + pool: + dependency: transitive + description: + name: pool + sha256: "978783255c543aa3586a1b3c21f6e9d720eb315376a915872c61ef8b5c20177d" + url: "https://pub.dev" + source: hosted + version: "1.5.2" + posix: + dependency: transitive + description: + name: posix + sha256: "185ef7606574f789b40f289c233efa52e96dead518aed988e040a10737febb07" + url: "https://pub.dev" + source: hosted + version: "6.5.0" + preact_signals: + dependency: transitive + description: + name: preact_signals + sha256: "18f45e7f91a4dfad8bd0138efa6b85770bb25e13278b863fdaafd28a56579b16" + url: "https://pub.dev" + source: hosted + version: "7.0.0" + prism: + dependency: transitive + description: + name: prism + sha256: cb5b80867392ed138ca7651d55c1c0013903f20355e3e015e2f6be5c1dcf7020 + url: "https://pub.dev" + source: hosted + version: "2.1.0" + prism_flutter: + dependency: transitive + description: + name: prism_flutter + sha256: c915d488b864d92dc605091f28e631748a723f77d5c755d08dc4b70726a7bef4 + url: "https://pub.dev" + source: hosted + version: "2.1.0" + process: + dependency: transitive + description: + name: process + sha256: c6248e4526673988586e8c00bb22a49210c258dc91df5227d5da9748ecf79744 + url: "https://pub.dev" + source: hosted + version: "5.0.5" + prompts: + dependency: transitive + description: + name: prompts + sha256: "3773b845e85a849f01e793c4fc18a45d52d7783b4cb6c0569fad19f9d0a774a1" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + provider: + dependency: transitive + description: + name: provider + sha256: "4e82183fa20e5ca25703ead7e05de9e4cceed1fbd1eadc1ac3cb6f565a09f272" + url: "https://pub.dev" + source: hosted + version: "6.1.5+1" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + pub_updater: + dependency: transitive + description: + name: pub_updater + sha256: "739a0161d73a6974c0675b864fb0cf5147305f7b077b7f03a58fa7a9ab3e7e7d" + url: "https://pub.dev" + source: hosted + version: "0.5.0" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" + url: "https://pub.dev" + source: hosted + version: "1.5.0" + puppeteer: + dependency: transitive + description: + name: puppeteer + sha256: "1e77a7c4206172d6205849eef04a88d374f6eb7213652fbe500c404df9975155" + url: "https://pub.dev" + source: hosted + version: "3.25.1" + qr: + dependency: transitive + description: + name: qr + sha256: "5a1d2586170e172b8a8c8470bbbffd5eb0cd38a66c0d77155ea138d3af3a4445" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + qr_flutter: + dependency: transitive + description: + name: qr_flutter + sha256: "5095f0fc6e3f71d08adef8feccc8cea4f12eec18a2e31c2e8d82cb6019f4b097" + url: "https://pub.dev" + source: hosted + version: "4.1.0" + quiver: + dependency: transitive + description: + name: quiver + sha256: ea0b925899e64ecdfbf9c7becb60d5b50e706ade44a85b2363be2a22d88117d2 + url: "https://pub.dev" + source: hosted + version: "3.2.2" + rational: + dependency: transitive + description: + name: rational + sha256: cb808fb6f1a839e6fc5f7d8cb3b0a10e1db48b3be102de73938c627f0b636336 + url: "https://pub.dev" + source: hosted + version: "2.2.3" + record_use: + dependency: transitive + description: + name: record_use + sha256: "2551bd8eecfe95d14ae75f6021ad0248be5c27f138c2ec12fcb52b500b3ba1ed" + url: "https://pub.dev" + source: hosted + version: "0.6.0" + remix: + dependency: transitive + description: + name: remix + sha256: ada40eeb64342eeeb6b294598b147c38f00baf581f1936931e90dfae6e4b8311 + url: "https://pub.dev" + source: hosted + version: "0.2.0" + rfc_6901: + dependency: transitive + description: + name: rfc_6901 + sha256: "6a43b1858dca2febaf93e15639aa6b0c49ccdfd7647775f15a499f872b018154" + url: "https://pub.dev" + source: hosted + version: "0.2.1" + rxdart: + dependency: transitive + description: + name: rxdart + sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962" + url: "https://pub.dev" + source: hosted + version: "0.28.0" + screen_retriever: + dependency: transitive + description: + name: screen_retriever + sha256: ace919117a7520c13a50a6259e60c4a0d4cbe98809468792a91b5c5adada2aa6 + url: "https://pub.dev" + source: hosted + version: "0.2.2" + screen_retriever_linux: + dependency: transitive + description: + name: screen_retriever_linux + sha256: "7b52006a5ceae1f3d5af7f77188c3290d6e7d8ded16d99809bea84967c65c257" + url: "https://pub.dev" + source: hosted + version: "0.2.2" + screen_retriever_macos: + dependency: transitive + description: + name: screen_retriever_macos + sha256: a1489b99cce597c45a54b9aae1cd94c8d4705353b7e0bb2457a6e4de44e0ad8a + url: "https://pub.dev" + source: hosted + version: "0.2.2" + screen_retriever_platform_interface: + dependency: transitive + description: + name: screen_retriever_platform_interface + sha256: "94a5535277510a63184ca178ce12a1449bc0b38618879aa1c18bf57369c5064a" + url: "https://pub.dev" + source: hosted + version: "0.2.2" + screen_retriever_windows: + dependency: transitive + description: + name: screen_retriever_windows + sha256: dafc6922b0bfbf1d48cf3ccbf519b4fff47bdcb820da1728ea6db675fecc9324 + url: "https://pub.dev" + source: hosted + version: "0.2.2" + scrollable_positioned_list: + dependency: transitive + description: + name: scrollable_positioned_list + sha256: "1b54d5f1329a1e263269abc9e2543d90806131aa14fe7c6062a8054d57249287" + url: "https://pub.dev" + source: hosted + version: "0.3.8" + shelf: + dependency: transitive + description: + name: shelf + sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 + url: "https://pub.dev" + source: hosted + version: "1.4.2" + shelf_packages_handler: + dependency: transitive + description: + name: shelf_packages_handler + sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + shelf_static: + dependency: transitive + description: + name: shelf_static + sha256: c87c3875f91262785dade62d135760c2c69cb217ac759485334c5857ad89f6e3 + url: "https://pub.dev" + source: hosted + version: "1.1.3" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925" + url: "https://pub.dev" + source: hosted + version: "3.0.0" + signals: + dependency: transitive + description: + name: signals + sha256: "3b6be91d04808b542612a525eaeb1875e50be153671e618a42f74e0607088ecd" + url: "https://pub.dev" + source: hosted + version: "7.1.0" + signals_core: + dependency: transitive + description: + name: signals_core + sha256: "04d7ccb0265264191a4e2666050031129f47c2bbf4ac3f31f6586889a9903b62" + url: "https://pub.dev" + source: hosted + version: "7.0.0" + signals_flutter: + dependency: transitive + description: + name: signals_flutter + sha256: f0285fd2f98d720724df879c258dc41725f260f8e5b1184655ef64ba679197ad + url: "https://pub.dev" + source: hosted + version: "7.1.0" + signals_hooks: + dependency: transitive + description: + name: signals_hooks + sha256: af6c2c4be47f06214292fedab6f6e943433c02086c956eeaffe45c4a23a57413 + url: "https://pub.dev" + source: hosted + version: "7.1.0" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + source_gen: + dependency: transitive + description: + name: source_gen + sha256: ec37cc0e6694374cbef59ed79685572c870a54ede6fa30a3e420feb3adffea02 + url: "https://pub.dev" + source: hosted + version: "4.2.3" + source_map_stack_trace: + dependency: transitive + description: + name: source_map_stack_trace + sha256: c0713a43e323c3302c2abe2a1cc89aa057a387101ebd280371d6a6c9fa68516b + url: "https://pub.dev" + source: hosted + version: "2.1.2" + source_maps: + dependency: transitive + description: + name: source_maps + sha256: "190222579a448b03896e0ca6eca5998fa810fda630c1d65e2f78b3f638f54812" + url: "https://pub.dev" + source: hosted + version: "0.10.13" + source_span: + dependency: transitive + description: + name: source_span + sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab" + url: "https://pub.dev" + source: hosted + version: "1.10.2" + sqflite: + dependency: transitive + description: + name: sqflite + sha256: "58a799e6ac17dd32fbab93813d39ed835a75ccc0f8f85b8955fe318c6712b082" + url: "https://pub.dev" + source: hosted + version: "2.4.3" + sqflite_android: + dependency: transitive + description: + name: sqflite_android + sha256: d0548f9d7422a2dae99ec6f8b0a3074463b132d216fa5ba0d230eeefc901983b + url: "https://pub.dev" + source: hosted + version: "2.4.3" + sqflite_common: + dependency: transitive + description: + name: sqflite_common + sha256: "5bf6a55c166e73bf651ba7ec3ed486e577620e3dc8f3a9c6a258a8031b624590" + url: "https://pub.dev" + source: hosted + version: "2.5.11" + sqflite_darwin: + dependency: transitive + description: + name: sqflite_darwin + sha256: c86ca18b8f666bbf903924687fe21cc16fc385d086005067e26619ca530bef9f + url: "https://pub.dev" + source: hosted + version: "2.4.3+1" + sqflite_platform_interface: + dependency: transitive + description: + name: sqflite_platform_interface + sha256: f84939f84350d92d04416f8bc4dc52d3896aec7716cc9e80cf0146342139dc50 + url: "https://pub.dev" + source: hosted + version: "2.4.1" + sse: + dependency: transitive + description: + name: sse + sha256: a9a804dbde8bfd369da3b4aa241d44d63a6486a97388c54ec166073d88c52302 + url: "https://pub.dev" + source: hosted + version: "4.2.0" + sse_channel: + dependency: transitive + description: + name: sse_channel + sha256: ad85fda353fae12533fd762dbd3ff275e710f216644e39459bf11a138124acad + url: "https://pub.dev" + source: hosted + version: "0.2.2" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" + url: "https://pub.dev" + source: hosted + version: "1.12.1" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + stream_transform: + dependency: transitive + description: + name: stream_transform + sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871 + url: "https://pub.dev" + source: hosted + version: "2.1.1" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" + url: "https://pub.dev" + source: hosted + version: "1.4.1" + super_clipboard: + dependency: transitive + description: + name: super_clipboard + sha256: e73f3bb7e66cc9260efa1dc507f979138e7e106c3521e2dda2d0311f6d728a16 + url: "https://pub.dev" + source: hosted + version: "0.9.1" + super_editor: + dependency: transitive + description: + name: super_editor + sha256: a711dabfa443a0b55771b9e459d5ab8d8b6fa46db797e13b1aba9ed33fa447f8 + url: "https://pub.dev" + source: hosted + version: "0.3.0-dev.52" + super_keyboard: + dependency: transitive + description: + name: super_keyboard + sha256: b5381ca46cf2cbc8cae79f8304e848f83363a8f47c1851125133c8af87d0f488 + url: "https://pub.dev" + source: hosted + version: "0.4.0" + super_native_extensions: + dependency: transitive + description: + name: super_native_extensions + sha256: b9611dcb68f1047d6f3ef11af25e4e68a21b1a705bbcc3eb8cb4e9f5c3148569 + url: "https://pub.dev" + source: hosted + version: "0.9.1" + super_text_layout: + dependency: transitive + description: + name: super_text_layout + sha256: "203409387b44c85e1d0a8e365c8a8791199b99440411f221ad02fa9fb07530b1" + url: "https://pub.dev" + source: hosted + version: "0.1.21" + sync_http: + dependency: transitive + description: + name: sync_http + sha256: "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961" + url: "https://pub.dev" + source: hosted + version: "0.3.1" + synchronized: + dependency: transitive + description: + name: synchronized + sha256: "93b153dcb6a26dcddee6ca087dd634b53e38c10b5aa163e8e49501a776456153" + url: "https://pub.dev" + source: hosted + version: "3.4.1" + syntax_highlight: + dependency: transitive + description: + name: syntax_highlight + sha256: "4d3ba40658cadba6ba55d697f29f00b43538ebb6eb4a0ca0e895c568eaced138" + url: "https://pub.dev" + source: hosted + version: "0.5.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" + url: "https://pub.dev" + source: hosted + version: "1.2.2" + test: + dependency: transitive + description: + name: test + sha256: "8d9ceddbab833f180fbefed08afa76d7c03513dfdba87ffcec2718b02bbcbf20" + url: "https://pub.dev" + source: hosted + version: "1.31.0" + test_api: + dependency: transitive + description: + name: test_api + sha256: "949a932224383300f01be9221c39180316445ecb8e7547f70a41a35bf421fb9e" + url: "https://pub.dev" + source: hosted + version: "0.7.11" + test_core: + dependency: transitive + description: + name: test_core + sha256: "1991d4cfe85d5043241acac92962c3977c8d2f2add1ee73130c7b286417d1d34" + url: "https://pub.dev" + source: hosted + version: "0.6.17" + text_table: + dependency: transitive + description: + name: text_table + sha256: a42b35675be614274b884ee482d4bdf4bdf707bc65de18cb8f1ad288c1beb1f4 + url: "https://pub.dev" + source: hosted + version: "4.0.3" + tuple: + dependency: transitive + description: + name: tuple + sha256: a97ce2013f240b2f3807bcbaf218765b6f301c3eff91092bcfa23a039e7dd151 + url: "https://pub.dev" + source: hosted + version: "2.0.2" + type_plus: + dependency: transitive + description: + name: type_plus + sha256: d5d1019471f0d38b91603adb9b5fd4ce7ab903c879d2fbf1a3f80a630a03fcc9 + url: "https://pub.dev" + source: hosted + version: "2.1.1" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + uri: + dependency: transitive + description: + name: uri + sha256: "889eea21e953187c6099802b7b4cf5219ba8f3518f604a1033064d45b1b8268a" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + url_launcher: + dependency: transitive + description: + name: url_launcher + sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8 + url: "https://pub.dev" + source: hosted + version: "6.3.2" + url_launcher_android: + dependency: transitive + description: + name: url_launcher_android + sha256: b413d49b73867ac08dd2f9890efd3cc11f2a0e577618d50843440a1fb3776c32 + url: "https://pub.dev" + source: hosted + version: "6.3.32" + url_launcher_ios: + dependency: transitive + description: + name: url_launcher_ios + sha256: "580fe5dfb51671ae38191d316e027f6b76272b026370708c2d898799750a02b0" + url: "https://pub.dev" + source: hosted + version: "6.4.1" + url_launcher_linux: + dependency: transitive + description: + name: url_launcher_linux + sha256: d5e14138b3bc193a0f63c10a53c94b91d399df0512b1f29b94a043db7482384a + url: "https://pub.dev" + source: hosted + version: "3.2.2" + url_launcher_macos: + dependency: transitive + description: + name: url_launcher_macos + sha256: "368adf46f71ad3c21b8f06614adb38346f193f3a59ba8fe9a2fd74133070ba18" + url: "https://pub.dev" + source: hosted + version: "3.2.5" + url_launcher_platform_interface: + dependency: transitive + description: + name: url_launcher_platform_interface + sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + url_launcher_web: + dependency: transitive + description: + name: url_launcher_web + sha256: "85c81589622fbc87c1c683aaea164d3604a7777495a79d91e39ffcdec39ddb34" + url: "https://pub.dev" + source: hosted + version: "2.4.3" + url_launcher_windows: + dependency: transitive + description: + name: url_launcher_windows + sha256: "712c70ab1b99744ff066053cbe3e80c73332b38d46e5e945c98689b2e66fc15f" + url: "https://pub.dev" + source: hosted + version: "3.1.5" + uuid: + dependency: transitive + description: + name: uuid + sha256: "1fef9e8e11e2991bb773070d4656b7bd5d850967a2456cfc83cf47925ba79489" + url: "https://pub.dev" + source: hosted + version: "4.5.3" + vector_graphics: + dependency: transitive + description: + name: vector_graphics + sha256: "2306c03da2ba81724afeb589c351ebbc0aa7d86005925be8f8735856dbe5e42d" + url: "https://pub.dev" + source: hosted + version: "1.2.2" + vector_graphics_codec: + dependency: transitive + description: + name: vector_graphics_codec + sha256: "99fd9fbd34d9f9a32efd7b6a6aae14125d8237b10403b422a6a6dfeac2806146" + url: "https://pub.dev" + source: hosted + version: "1.1.13" + vector_graphics_compiler: + dependency: transitive + description: + name: vector_graphics_compiler + sha256: "142a9146f447d15b10bdc00e21d5f4d83e5b32bb5f8f8f5a04c75311344923a3" + url: "https://pub.dev" + source: hosted + version: "1.2.6" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b + url: "https://pub.dev" + source: hosted + version: "2.2.0" + video_player: + dependency: transitive + description: + name: video_player + sha256: "20ef311160e2ced020a62f38e4cc399a1bf289e722fc5fe37c9d7b18e44c9e8d" + url: "https://pub.dev" + source: hosted + version: "2.13.0" + video_player_android: + dependency: transitive + description: + name: video_player_android + sha256: "5121de08444d00363efdda630a69ad4d27a208a9f7586482d4909a44a1cdbc63" + url: "https://pub.dev" + source: hosted + version: "2.11.0" + video_player_avfoundation: + dependency: transitive + description: + name: video_player_avfoundation + sha256: c238f5f0a26845cd0bcc2956049b63065a4d3c40ddfc22c3414cd170bef7fff9 + url: "https://pub.dev" + source: hosted + version: "2.11.0" + video_player_platform_interface: + dependency: transitive + description: + name: video_player_platform_interface + sha256: "92c0fbabe20c788e71fd10d26cea998d0d253282e65d145aed0818731cf593ce" + url: "https://pub.dev" + source: hosted + version: "6.9.0" + video_player_web: + dependency: transitive + description: + name: video_player_web + sha256: "9f3c00be2ef9b76a95d94ac5119fb843dca6f2c69e6c9968f6f2b6c9e7afbdeb" + url: "https://pub.dev" + source: hosted + version: "2.4.0" + video_player_win: + dependency: transitive + description: + name: video_player_win + sha256: a4caca55ead1eb469d10060592e7ecdcbcd4493c6e2b63e4e666ff5446c790f1 + url: "https://pub.dev" + source: hosted + version: "3.2.2" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: "0016aef94fc66495ac78af5859181e3f3bf2026bd8eecc72b9565601e19ab360" + url: "https://pub.dev" + source: hosted + version: "15.2.0" + watcher: + dependency: transitive + description: + name: watcher + sha256: "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + web: + dependency: transitive + description: + name: web + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8 + url: "https://pub.dev" + source: hosted + version: "3.0.3" + webdriver: + dependency: transitive + description: + name: webdriver + sha256: "2f3a14ca026957870cfd9c635b83507e0e51d8091568e90129fbf805aba7cade" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + webkit_inspection_protocol: + dependency: transitive + description: + name: webkit_inspection_protocol + sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + webview_flutter: + dependency: transitive + description: + name: webview_flutter + sha256: d53e1ccf5516f25017e3c9d44c39034db352d20fa34fe200674270242c2c5111 + url: "https://pub.dev" + source: hosted + version: "4.14.1" + webview_flutter_android: + dependency: transitive + description: + name: webview_flutter_android + sha256: a97db7a44f8e71af2f3971c45550a08cce1fb60059c1b8e534251e6cfb753490 + url: "https://pub.dev" + source: hosted + version: "4.13.0" + webview_flutter_platform_interface: + dependency: transitive + description: + name: webview_flutter_platform_interface + sha256: "1221c1b12f5278791042f2ec2841743784cf25c5a644e23d6680e5d718824f04" + url: "https://pub.dev" + source: hosted + version: "2.15.1" + webview_flutter_web: + dependency: transitive + description: + name: webview_flutter_web + sha256: "18a7ccc1c31dd9a5c759a1b7217a2a1e04bd8f65712714a4070bfac19a23ca9e" + url: "https://pub.dev" + source: hosted + version: "0.2.3+4" + webview_flutter_wkwebview: + dependency: transitive + description: + name: webview_flutter_wkwebview + sha256: c879dd64b87c452aa84381b244d5469da57ba7e8cca6884c7b1e0d406372c12d + url: "https://pub.dev" + source: hosted + version: "3.26.0" + win32: + dependency: transitive + description: + name: win32 + sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e + url: "https://pub.dev" + source: hosted + version: "5.15.0" + win32_registry: + dependency: transitive + description: + name: win32_registry + sha256: "6f1b564492d0147b330dd794fee8f512cec4977957f310f9951b5f9d83618dae" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + window_manager: + dependency: transitive + description: + name: window_manager + sha256: "05c231fd7b23d2380f14c5cc10b7b93d60d4fa4a2fb4e0f032de27e44b5560e9" + url: "https://pub.dev" + source: hosted + version: "0.5.2" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + xml: + dependency: transitive + description: + name: xml + sha256: "971043b3a0d3da28727e40ed3e0b5d18b742fa5a68665cca88e74b7876d5e025" + url: "https://pub.dev" + source: hosted + version: "6.6.1" + yaml: + dependency: transitive + description: + name: yaml + sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce + url: "https://pub.dev" + source: hosted + version: "3.1.3" + yaml_edit: + dependency: transitive + description: + name: yaml_edit + sha256: "07c9e63ba42519745182b88ca12264a7ba2484d8239958778dfe4d44fe760488" + url: "https://pub.dev" + source: hosted + version: "2.2.4" + yaml_writer: + dependency: transitive + description: + name: yaml_writer + sha256: "69651cd7238411179ac32079937d4aa9a2970150d6b2ae2c6fe6de09402a5dc5" + url: "https://pub.dev" + source: hosted + version: "2.1.0" sdks: dart: ">=3.12.0 <4.0.0" - flutter: ">=3.44.0" + flutter: ">=3.44.6" diff --git a/pubspec.yaml b/pubspec.yaml index 18ec1c4c..2b2f1464 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -3,10 +3,159 @@ publish_to: none environment: sdk: ">=3.12.0 <4.0.0" - flutter: ">=3.44.0" + flutter: ">=3.44.6" -dependencies: - melos: ^6.3.3 +workspace: + - demo + - packages/* + - packages/plugins/* + +dev_dependencies: + # Melos 7.8.2+ requires cli_util 0.5.x, while custom_lint 0.8.1 + # requires cli_util 0.4.x. 7.8.1 is the latest compatible workspace release. + melos: 7.8.1 + +# ack_generator 1.x requires analyzer <9, while mix_generator 2.1.x declares +# analyzer >=9. Both generators are exercised by build_runner below. +dependency_overrides: + analyzer: 8.4.1 lint_staged: '**.dart': fvm dart fix --apply && dcm fix + +melos: + sdkPath: .fvm/flutter_sdk + ide: + intellij: + enabled: false + + scripts: + # ANALYSIS + analyze: + run: fvm dart run melos run analyze:dart && fvm dart run melos run analyze:dcm + description: Run standard static analysis checks. + + analyze:all: + run: fvm dart run melos run analyze && fvm dart run melos run analyze:dcm:unused-files && fvm dart run melos run analyze:dcm:unused-code + description: Run all analysis checks including unused files and code. + + analyze:dart: + run: fvm dart run melos exec -c 10 -- fvm dart analyze --fatal-infos + description: Run Dart static analysis checks. + + analyze:dcm: + run: fvm dart run melos exec -c 10 -- dcm analyze . --fatal-style --fatal-warnings + description: Run DCM static analysis checks. + packageFilters: + dependsOn: dart_code_metrics_presets + + analyze:dcm:unused-files: + # Public barrels/plugin entrypoints are not cleanup targets (--exclude-public-api). + # Generated files use DCM defaults (*.g.dart / *.freezed.dart / *.mapper.dart). + # Extra globs: tests + platform conditional files DCM misclassifies as unused. + # Quotes must survive melos exec so brace globs are not shell-expanded. + run: fvm dart run melos exec -c 10 -- "dcm check-unused-files . --fatal-unused --exclude-public-api -e '{**/*.g.dart,**/*.freezed.dart,**/*.mapper.dart,test/**,**/*_web.dart,**/*_stub.dart,**/*_io.dart,**/measure_size.dart}'" + description: Check for unused files using DCM (public API, generated, platform stubs excluded). + packageFilters: + dependsOn: dart_code_metrics_presets + + analyze:dcm:unused-code: + # Public API surface stays even if unused in-repo (--exclude-public-api). + # Same exclude set as unused-files (generated + platform stubs + tests). + run: fvm dart run melos exec -c 10 -- "dcm check-unused-code . --fatal-unused --exclude-public-api -e '{**/*.g.dart,**/*.freezed.dart,**/*.mapper.dart,test/**,**/*_web.dart,**/*_stub.dart,**/*_io.dart}'" + description: Check for unused code using DCM (public API, generated, platform stubs excluded). + packageFilters: + dependsOn: dart_code_metrics_presets + + fix: + run: fvm dart run melos run fix:dart && fvm dart run melos run fix:dcm + description: Run all static analysis checks and apply fixes. + + fix:dart: + run: fvm dart run melos exec -- fvm dart fix --apply . + description: Run Dart static analysis checks. + + fix:dcm: + run: fvm dart run melos exec -- dcm fix . + description: Run DCM static analysis checks. + packageFilters: + dependsOn: dart_code_metrics_presets + + build_runner:watch: + run: fvm dart run melos exec --order-dependents -- fvm dart run build_runner watch + description: Generate code for all packages + packageFilters: + dependsOn: build_runner + + build_runner:build: + run: fvm dart run melos run build_runner:clean && fvm dart run melos exec --order-dependents -- fvm dart run build_runner build + description: Generate code for all packages + packageFilters: + dependsOn: build_runner + + build_runner:clean: + run: fvm dart run melos exec --order-dependents -- fvm dart run build_runner clean + description: Clean generated code for all packages + packageFilters: + dependsOn: build_runner + + contracts:export: + exec: fvm dart run tool/export_contract_schemas.dart + description: Export canonical JSON Schema artifacts for SuperDeck contracts. + packageFilters: + scope: superdeck_core + + contracts:check: + exec: fvm dart run tool/export_contract_schemas.dart --check + description: Verify canonical JSON Schema artifacts are up to date. + packageFilters: + scope: superdeck_core + + test: + run: fvm dart run melos exec -c 1 -- fvm flutter test --exclude-tags ci-excluded + description: Run flutter tests excluding explicit golden and flaky suites. + packageFilters: + dirExists: test + + test:integration: + run: cd demo && fvm dart run superdeck_cli:main build && fvm flutter test integration_test/all_tests.dart -d linux --fail-fast --timeout 2m + description: Run flutter integration tests on Linux (CI default) + + test:integration:macos: + run: cd demo && fvm dart run superdeck_cli:main build && fvm flutter test integration_test/all_tests.dart -d macos --fail-fast --timeout 2m + description: Run flutter integration tests on macOS (local) + + test:e2e:web:prepare: + run: cd demo && fvm dart run superdeck_cli:main build && fvm flutter build web --release + description: Build demo assets and release web output for Playwright smoke tests. + + test:e2e:web: + run: fvm dart run melos run test:e2e:web:prepare && cd demo/e2e && npm ci && npx playwright install --with-deps chromium webkit && npm run test:smoke + description: Run Playwright smoke tests for the demo web build on Chromium and WebKit. + + test:e2e: + run: fvm dart run melos run test:integration && fvm dart run melos run test:e2e:web + description: Run full desktop integration and web smoke E2E coverage. + + test:all: + run: fvm dart run melos run test && fvm dart run melos run test:integration + description: Run all tests (unit + integration) + + test:coverage: + run: fvm dart run melos exec -- fvm flutter test --coverage + description: Run flutter test with coverage + packageFilters: + dirExists: test + + clean: + run: fvm dart run melos exec -- fvm flutter clean + description: Clean all packages + + brb: + run: fvm dart run melos run gen:build:superdeck + + brbc: + run: fvm dart run melos run gen:clean + + custom_lint_analyze: + run: fvm dart run melos exec --depends-on=mix_lint -- fvm dart run custom_lint