diff --git a/.forgejo/workflows/e2e.yml b/.forgejo/workflows/e2e.yml deleted file mode 100644 index 134143b..0000000 --- a/.forgejo/workflows/e2e.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: "End-to-end tests" - -on: - push: - branches: ["main"] - pull_request: - workflow_dispatch: - -jobs: - e2e: - runs-on: ["large", "debian-13-x86_64"] - - steps: - - name: Checkout repository - uses: actions/checkout@v6 - with: - submodules: recursive - - - name: Lix GHA Installer Action - uses: samueldr/lix-gha-installer-action@v2026-02-22 - with: - extra_nix_config: experimental-features = nix-command flakes flake-self-attrs - - - name: Generate code - run: nix develop --command bash -c "flutter pub get && dart scripts/generate.dart && flutter pub run build_runner build" - - - name: Run end-to-end tests - run: nix run .#e2e-headless diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index cf64422..dc1e9c7 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -1,39 +1,39 @@ name: "Build APK" on: - push: - branches: ["main"] - tags: ["*"] - workflow_dispatch: + push: + branches: ["main"] + tags: ["*"] + workflow_dispatch: jobs: - build-apk: - runs-on: ubuntu-latest + build-apk: + runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v6 - with: - submodules: recursive + steps: + - name: Checkout repository + uses: actions/checkout@v6 + with: + submodules: recursive - - name: Lix GHA Installer Action - uses: samueldr/lix-gha-installer-action@v2026-02-22 - with: - extra_nix_config: experimental-features = nix-command flakes flake-self-attrs + - name: Lix GHA Installer Action + uses: samueldr/lix-gha-installer-action@v2026-02-22 + with: + extra_nix_config: experimental-features = nix-command flakes flake-self-attrs + + - name: Decode keystore + run: echo "$KEYSTORE_CONTENT" | base64 --decode > keystore.jks + env: + KEYSTORE_CONTENT: ${{ secrets.KEYSTORE_CONTENT }} - - name: Decode keystore - run: echo "$KEYSTORE_CONTENT" | base64 --decode > keystore.jks - env: - KEYSTORE_CONTENT: ${{ secrets.KEYSTORE_CONTENT }} + - name: Build app + run: nix develop --command bash -c "flutter pub get && dart scripts/generate.dart && flutter pub run build_runner build && flutter build apk --release" + env: + KEYSTORE_PATH: ../../keystore.jks + KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} - - name: Build app - run: nix develop --command bash -c "flutter pub get && dart scripts/generate.dart && flutter pub run build_runner build && flutter build apk --target-platform android-arm64 --split-per-abi --dart-define=GIT_COMMIT=${{ github.sha }}" - env: - KEYSTORE_PATH: ../../keystore.jks - KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} - - - name: Upload installer artifact - uses: actions/upload-artifact@v6 - with: - name: APK - path: build/app/outputs/flutter-apk/app-arm64-v8a-release.apk + - name: Upload installer artifact + uses: actions/upload-artifact@v6 + with: + name: APK + path: build/app/outputs/flutter-apk/app-release.apk \ No newline at end of file diff --git a/.github/workflows/flatpak.yml b/.github/workflows/flatpak.yml index c255c8d..d280bc6 100644 --- a/.github/workflows/flatpak.yml +++ b/.github/workflows/flatpak.yml @@ -1,73 +1,37 @@ name: "Build Flatpaks" on: - push: - branches: ["main"] - tags: ["*"] - workflow_dispatch: + push: + branches: ["main"] + tags: ["*"] + workflow_dispatch: jobs: - build-flatpak: - strategy: - fail-fast: false - matrix: - include: - - arch: x86_64 - runner: ubuntu-latest - - arch: aarch64 - runner: ubuntu-24.04-arm - runs-on: ${{ matrix.runner }} + build-flatpak: + strategy: + fail-fast: false + matrix: + include: + - arch: x86_64 + runner: ubuntu-latest + - arch: aarch64 + runner: ubuntu-24.04-arm + runs-on: ${{ matrix.runner }} - steps: - - name: Checkout repository - uses: actions/checkout@v6 + steps: + - name: Checkout repository + uses: actions/checkout@v6 - - name: Lix GHA Installer Action - uses: samueldr/lix-gha-installer-action@v2026-02-22 - with: - extra_nix_config: experimental-features = nix-command flakes flake-self-attrs + - name: Lix GHA Installer Action + uses: samueldr/lix-gha-installer-action@v2026-02-22 + with: + extra_nix_config: experimental-features = nix-command flakes flake-self-attrs - - name: Build app - run: nix build .#flatpak + - name: Build app + run: nix build .#flatpak - - name: Upload installer artifact - uses: actions/upload-artifact@v6 - with: - name: flatpak-${{ matrix.arch }} - path: result/nexus.federated.nexus.flatpak - - publish: - needs: build-flatpak - if: github.ref == 'refs/heads/main' - runs-on: ubuntu-latest - permissions: - pages: write - id-token: write - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - steps: - - name: Install flatpak tooling - run: sudo apt-get update && sudo apt-get install -y flatpak ostree - - - name: Download bundles - uses: actions/download-artifact@v7 - with: - pattern: flatpak-* - path: bundles - - - name: Build OSTree repo - run: | - ostree init --repo=repo --mode=archive-z2 - for bundle in bundles/*/nexus.federated.nexus.flatpak; do - flatpak build-import-bundle repo "$bundle" - done - flatpak build-update-repo --prune repo - - - uses: actions/upload-pages-artifact@v4 - with: - path: repo - - - name: Deploy to Pages - id: deployment - uses: actions/deploy-pages@v4 + - name: Upload installer artifact + uses: actions/upload-artifact@v6 + with: + name: flatpak-${{ matrix.arch }} + path: result/nexus.federated.nexus.flatpak \ No newline at end of file diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index 28344ea..5f16f9f 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -19,7 +19,7 @@ jobs: - name: Set up Flutter uses: subosito/flutter-action@v2 with: - flutter-version: 3.47.4 + flutter-version: 3.44.4 - name: Set up Go uses: actions/setup-go@v6 @@ -31,7 +31,7 @@ jobs: flutter pub get dart scripts/generate.dart flutter pub run build_runner build - flutter build ios --no-codesign --dart-define=GIT_COMMIT=${{ github.sha }} + flutter build ios --release --no-codesign # Unsigned IPA: SideStore/AltStore re-sign this on-device with the # user's own Apple ID at install time, so no certificate is needed here. diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index b56f16f..4005dc5 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -19,29 +19,22 @@ jobs: - name: Set up Flutter uses: subosito/flutter-action@v2 with: - flutter-version: 3.47.4 + flutter-version: 3.44.4 - name: Set up Go uses: actions/setup-go@v6 with: go-version-file: gomuks/go.mod - - name: Build App + - name: Build app run: | flutter pub get dart scripts/generate.dart flutter pub run build_runner build - flutter build macos --dart-define=GIT_COMMIT=${{ github.sha }} + flutter build macos --release - - name: Create DMG - id: create-dmg - uses: L-Super/create-dmg-actions@28511e988b13ca34096d439159a66d468b8e724f - with: - dmg_name: nexus - src_dir: build/macos/Build/Products/Release/Nexus.app - - - name: Upload DMG + - name: Upload installer artifact uses: actions/upload-artifact@v6 with: - name: nexus.dmg - path: ${{ steps.create-dmg.outputs.dmg_path }} + name: Nexus.App + path: build/macos/Build/Products/Release/Nexus.app diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index db339b9..d9c8dd5 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -1,74 +1,65 @@ name: "Build EXE" on: - push: - branches: ["main"] - tags: ["*"] - workflow_dispatch: + push: + branches: ["main"] + tags: ["*"] + workflow_dispatch: jobs: - build-exe: - runs-on: windows-latest + build-exe: + runs-on: windows-latest - steps: - - name: Checkout repository - uses: actions/checkout@v6 - with: - submodules: recursive + steps: + - name: Checkout repository + uses: actions/checkout@v6 + with: + submodules: recursive - - name: Set up Flutter - uses: subosito/flutter-action@v2 - with: - flutter-version: 3.47.4 + - name: Set up Flutter + uses: subosito/flutter-action@v2 + with: + flutter-version: 3.44.4 - - name: Set up Go - uses: actions/setup-go@v6 - with: - go-version-file: gomuks/go.mod + - name: Set up Go + uses: actions/setup-go@v6 + with: + go-version-file: gomuks/go.mod - - name: Setup MSYS2 - uses: msys2/setup-msys2@v2 - with: - msystem: CLANG64 - install: >- - mingw-w64-x86_64-gcc + - name: Setup MSYS2 + uses: msys2/setup-msys2@v2 + with: + msystem: MINGW64 + install: >- + mingw-w64-x86_64-gcc - - name: Go build - run: | - cd gomuks/pkg/ffi - go build -tags goolm,sqlite_fts5 -o ../../../libgomuks.dll -buildmode=c-shared + - name: Go build + run: | + cd gomuks/pkg/ffi + go build -tags goolm,sqlite_fts5 -o ../../../libgomuks.dll -buildmode=c-shared - - name: Build with Flutter - run: | - flutter pub get - dart scripts/generate.dart - flutter pub run build_runner build - flutter build windows --dart-define=GIT_COMMIT=${{ github.sha }} + - name: Build with Flutter + run: | + flutter pub get + dart scripts/generate.dart + flutter pub run build_runner build + flutter build windows --release - - name: Copy MinGW runtime DLLs - shell: msys2 {0} - run: | - cp /mingw64/bin/libgcc_s_seh-1.dll build/windows/x64/runner/Release/ - cp /mingw64/bin/libwinpthread-1.dll build/windows/x64/runner/Release/ - cp /mingw64/bin/libstdc++-6.dll build/windows/x64/runner/Release/ + - name: Copy MinGW runtime DLLs + shell: msys2 {0} + run: | + cp /mingw64/bin/libgcc_s_seh-1.dll build/windows/x64/runner/Release/ + cp /mingw64/bin/libwinpthread-1.dll build/windows/x64/runner/Release/ + cp /mingw64/bin/libstdc++-6.dll build/windows/x64/runner/Release/ - - name: Copy MSVC runtime DLLs - shell: powershell - run: | - $release = "build/windows/x64/runner/Release" + - name: Install Inno Setup + run: choco install innosetup -y - Copy-Item C:\Windows\System32\MSVCP140.dll $release -Force - Copy-Item C:\Windows\System32\VCRUNTIME140.dll $release -Force - Copy-Item C:\Windows\System32\VCRUNTIME140_1.dll $release -Force + - name: Build Inno Setup installer + run: iscc windows/installer.iss - - name: Install Inno Setup - run: choco install innosetup -y - - - name: Build Inno Setup installer - run: iscc windows/installer.iss - - - name: Upload installer artifact - uses: actions/upload-artifact@v6 - with: - name: windows-installer - path: windows/dist/Nexus-Setup.exe + - name: Upload installer artifact + uses: actions/upload-artifact@v6 + with: + name: windows-installer + path: windows/dist/Nexus-Setup.exe \ No newline at end of file diff --git a/.gitignore b/.gitignore index 912ced3..2bec583 100644 --- a/.gitignore +++ b/.gitignore @@ -41,6 +41,4 @@ key.properties password.txt # Nix -/result -# Widget Preview related -.widget_preview/ +/result \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index b300a1f..145276a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "gomuks"] path = gomuks url = https://github.com/gomuks/gomuks - branch = quad/nexus + branch = main diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index b83039c..0000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "configurations": [ - { - "name": "Flutter", - "type": "dart", - "request": "launch", - "program": "lib/main.dart" - }, - { - "name": "Flutter (Headless)", - "type": "dart", - "request": "launch", - "program": "lib/main.dart", - "env": { "FLUTTER_HEADLESS": "1" } - } - ] -} diff --git a/.vscode/settings.json b/.vscode/settings.json index 2d6d7e3..2ff533e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -10,11 +10,7 @@ "msgtype", "muks", "prefs", - "recents", "unban", - "underride", - "unifiedpush", - "unredact", - "webpush" + "unredact" ] } diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index fa4a0a1..fb69a56 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -21,32 +21,28 @@ See [Effective Dart: Style](https://dart.dev/effective-dart/style) for general r Controllers live in `lib/controllers/` and provide a source that exposes data and logic via Riverpod providers, allowing other parts of the code to watch state changes with ref.watch (`ref.watch(MyController.provider)`), access the current value with ref.read (`ref.read(MyController.provider)`), and run helper methods on those classes using the notifier: ```dart -ref.read(MyController.provider.notifier).helperMethod() +ref.watch(MyController.provider.notifier).helperMethod() ``` We use an object oriented style for controllers, where `provider` is a static member on the controller class. E.g. ```dart -class MyController(final SomeInputType input) - extends AsyncNotifier { +class MyController extends AsyncNotifier { + final SomeInputType input; + MyController(this.input); + @override Future build() async { return input.foo; } static final provider = - AsyncNotifierProvider.family( - MyController.new, - ); + AsyncNotifierProvider.family( + AuthorController.new, + ); } ``` -#### `watch` vs `read` - -Only use `ref.watch` in a `build` method, where you want to rebuild when the value changes. Everywhere else, like callbacks, `useEffect`, and methods on a controller, use `ref.read`. - -Use `.select` to narrow down what you depend on, e.g. `ref.watch(RoomsController.provider.select((rooms) => rooms[roomId]))`. - Providers which are not controllers, e.g. they expose no data, only methods, should instead live in `lib/helpers/`. For an example, see `lib/helpers/launch_helper.dart`. Other, non-provider helpers, like extensions or helper methods can also go in `lib/helpers/`. ### Don't use StatefulWidgets ([Flutter Hooks](https://pub.dev/packages/flutter_hooks)) @@ -65,36 +61,6 @@ When possible, use immutable collections instead of the mutable equivalent. For When possible, we prefer not to create global variables or methods. You can usually replace a global variable with a Riverpod controller, and a global method with an extension method. -I'm also not a big fan of unneeded private methods or variables, but this is contextual. - -### Modern Dart syntax - -We try to use newer Dart language features where they make code shorter: - -- Primary constructors for classes, including widgets, e.g. `class const MemberList(final String roomId, {super.key}) extends HookConsumerWidget`. -- Dot shorthands wherever the type can be inferred, e.g. `.new(...)`, `padding: .all(8)`, `relationType == .reply`. -- Patterns and switch expressions over null checks and casts, e.g. `if (event.content case MessageContent(:final body?))` rather than checking `is` then using `!`. - -### Prefer `map` over inline `for` loops - -When building a list (or set, or map) from another collection, use `.map`, `.expand` and friends rather than a `for` inside the collection literal: - -```dart -// Prefer -children: rooms.map((room) => RoomTile(room)).toList(), - -// Over -children: [for (final room in rooms) RoomTile(room)], -``` - -Regular `for` statements are fine for logic that doesn't just build a collection. - -### Async values and errors - -When rendering an `AsyncValue`, use the `betterWhen` extension, which shows our standard loading and error widgets, or a switch expression if you need more control (e.g. `AsyncData(:final value) || AsyncLoading(:final value?)` to keep showing old data while reloading). - -For futures started from the UI that nothing awaits, like button presses, add `.onError(showError)` so failures are shown to the user instead of being lost. - ## LLM/AI Assisted Contributions LLM generated code is NOT allowed. All contributions should be written by humans. Using LLMs for interacting with others, e.g. for Comments, PRs, etc, is also not allowed. diff --git a/README.md b/README.md index 5d3090f..368bb90 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ # Nexus Client +> [!WARNING] +> Nexus Client is still in development, and doesn't support everything needed for daily use. + ## Description A simple and user-friendly Matrix client made with Flutter and a Gomuks backend. @@ -10,63 +13,115 @@ A simple and user-friendly Matrix client made with Flutter and a Gomuks backend. | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------: | | ![Screenshot of Nexus Client in dark mode, showing users talking, with a sidebar showing rooms and spaces, and another sidebar showing members](./assets/screenshotDark.png) | ![The same screenshot as above, but in light mode](./assets/screenshotLight.png) | +## Progress + +- [x] Platform Support + - [x] Linux + - [x] Windows - Currently has some bugs, due to us not having any developers on Windows. If you want to fix these, get in contact with us though the [Nexus Client Matrix room](https://matrix.to/#/#nexus:federated.nexus). + - [x] Android + - [x] MacOS - Unsigned .App only + - [x] iOS - Unsigned .ipa only + - [ ] Web (may not be possible) +- [x] Login (via OAuth) +- [x] Rooms / Spaces + - [x] Displaying and choosing + - [x] Reading, showing unread + - [x] Mark as read button on rooms and spaces + - [ ] Searching + - [ ] Creating (Rooms, Spaces, and DMs) + - [x] Joining + - [x] Parse vias + - [x] Using a text/uri/link + - [x] Plain text + - [x] `matrix:` Uri + - [x] Matrix.to link + - [ ] From space + - [ ] From directory + - [x] Leaving + - [x] Subspaces +- [x] Messages + - [x] Encryption + - [x] Restoring crypto identity from a recovery passphrase/key + - [x] Sending + - [x] Plain text + - [x] HTML/Markdown + - [x] Replies + - [x] Choose ping on/off + - [x] Per message profiles + - [x] Attachments + - [ ] Commands with [MSC4391](https://github.com/matrix-org/matrix-spec-proposals/pull/4391) + - [x] Mentions + - [x] Users + - [x] Rooms + - [ ] Inline emoji picker (Putting this here since it'll be implemented the same way as mentions) + - [ ] Custom emojis/stickers + - [ ] GIFs using Gomuks' GIF proxies + - [x] Receiving + - [x] Plain text + - [x] Per message profiles + - [x] HTML + - [x] URL Previews + - [x] Replies + - [x] Viewing + - [ ] Jump to original message + - [x] In loaded timeline + - [ ] Out of loaded timeline + - [x] Edits + - [x] Attachments + - [x] Unencrypted + - [x] Encrypted + - [x] Blurhashing + - [ ] Downloading attachments + - [x] Opening attachments in their own view + - [ ] Polls + - [x] Mentions + - [x] Users + - [x] Clickable + - [x] Rooms + - [ ] Clickable + - [x] Matrix URIs + - [x] Matrix.to links + - [x] Events + - [ ] Render more nicely + - [ ] Clickable + - [x] Custom emojis/stickers + - [x] History loading + - [x] Editing + - [x] Deleting +- [x] Reactions +- [x] Pins + - [x] Displaying + - [x] Pinning/Unpinning +- [ ] Threads +- [x] Profile popouts + - [x] Working actions +- [x] Copy link to: + - [x] Room + - [x] Space + - [x] Message +- [ ] Reporting + - [x] Events + - [ ] Rooms +- [x] Member list + - [x] Sort by power level + - [ ] Colors based off of power level +- [ ] Notifications using UnifiedPush ([#35](https://git.federated.nexus/Nexus/nexus/issues/35)) +- [ ] Group calls using [MSC4195](https://github.com/matrix-org/matrix-spec-proposals/pull/4195) +- [ ] Invites +- [x] Settings + ## Try it out -If you want to try out Nexus, download the [latest release](https://git.federated.nexus/Nexus/nexus/releases/latest). - -### Nightly Builds - -For the newest changes, grab one of the following nightly artifacts, built by CI from the latest commit on `main`. +If you want to try out Nexus, grab one of the following artifacts from CI: - [Android APK](https://nightly.link/Henry-Hiles/nexus/workflows/android/main/APK.zip) -- [Unsigned iOS IPA](https://nightly.link/Henry-Hiles/nexus/workflows/ios/main/Nexus.ipa.zip) -- [Unsigned MacOS DMG](https://nightly.link/Henry-Hiles/nexus/workflows/macos/main/nexus.dmg.zip) - [Windows EXE](https://nightly.link/Henry-Hiles/nexus/workflows/windows/main/windows-installer.zip) - -Or, use one of the below methods: - -### Nightly Flatpak Repo - -Make sure Flatpak is set up on your system, then run: - -```bash -flatpak install --user https://nexus.federated.nexus/flatpak/nexus.flatpakref -``` - -This adds the Nexus remote and installs the app for your user only, so no root access is needed (x86_64 and aarch64 are supported). To install system-wide instead, use `--system` in place of `--user`. Updates arrive through `flatpak update` or your software center. - -### NixOS Module - -Add Nexus as a flake input, following `nixpkgs` for less fetches: - -```nix -nexus = { - url = "git+https://git.federated.nexus/Nexus/nexus"; - inputs.nixpkgs.follows = "nixpkgs"; -}; -``` - -This tracks the latest commit on `main`. To stay on a release instead, pin the input to its tag: - -```nix -url = "git+https://git.federated.nexus/Nexus/nexus?ref=refs/tags/v1.0.1"; -``` - -Then import the module and enable it in your NixOS configuration: - -```nix -{ inputs, ... }: -{ - imports = [ inputs.nexus.nixosModules.default ]; - - programs.nexus = { - enable = true; - enableNotifications = true; # optional: push notifications via UnifiedPush - }; -} -``` - -This installs Nexus system-wide. With `enableNotifications`, it also installs KUnifiedPush and registers its systemd and D-Bus services so notifications work. The `package` option lets you override the package if you need to. +- [Unsigned iOS IPA](https://nightly.link/Henry-Hiles/nexus/workflows/ios/main/Nexus.ipa.zip) +- [Unsigned MacOS App](https://nightly.link/Henry-Hiles/nexus/workflows/macos/main/Nexus.App.zip) +- [Windows EXE](https://nightly.link/Henry-Hiles/nexus/workflows/windows/main/windows-installer.zip) +- Flatpak + - [AArch64/Arm64](https://nightly.link/Henry-Hiles/nexus/workflows/flatpak/main/flatpak-aarch64.zip) + - [x86_64/AMD64](https://nightly.link/Henry-Hiles/nexus/workflows/flatpak/main/flatpak-x86_64.zip) ## Build it yourself @@ -74,7 +129,7 @@ This installs Nexus system-wide. With `enableNotifications`, it also installs KU #### Linux -- On NixOS: Either use direnv and `direnv allow`, or `nix develop` +- On NixOS: Either use direnv and `direnv allow`, or `nix flake develop` - On other distros: Install Flutter, Go, Git, Libclang, Libass, MPV, and Glibc. Do not use any Snap packages, they cause various compilation issues. #### Windows @@ -153,7 +208,7 @@ Development instructions can be found in [DEVELOPMENT.md](./DEVELOPMENT.md). Join the [Nexus Client Matrix room](https://matrix.to/#/#nexus:federated.nexus) for questions or help with developing or using Nexus Client. -## Credits +# Credits Thank you Hylke Bons (https://planetpeanut.studio) for making the amazing icon for Nexus! Thank you Tulir Asokan for making [Gomuks](https://github.com/gomuks/gomuks), and helping us integrate it into Nexus! diff --git a/altstore-source.json b/altstore-source.json new file mode 100644 index 0000000..4471fb6 --- /dev/null +++ b/altstore-source.json @@ -0,0 +1,22 @@ +{ + "name": "Nexus", + "identifier": "nexus.federated.nexus.source", + "subtitle": "Nexus for iOS", + "description": "Nexus iOS builds for AltStore and SideStore.", + "iconURL": "https://git.federated.nexus/Nexus/nexus/raw/branch/main/assets/icon.png", + "website": "https://git.federated.nexus/Nexus/nexus", + "apps": [ + { + "name": "Nexus", + "bundleIdentifier": "nexus.federated.nexus", + "developerName": "Nexus", + "subtitle": "A Matrix client", + "localizedDescription": "Nexus for iOS. Unsigned builds, resigned at install by AltStore/SideStore.", + "iconURL": "https://git.federated.nexus/Nexus/nexus/raw/branch/main/assets/icon.png", + "category": "social", + "screenshots": [], + "versions": [] + } + ], + "news": [] +} diff --git a/analysis_options.yaml b/analysis_options.yaml index 00df0c4..a8b1078 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -1,18 +1,12 @@ analyzer: - errors: - invalid_annotation_target: ignore - avoid_print: ignore - exclude: - - "build/**" - - "**/*.g.dart" - - "**/*.freezed.dart" - - android/** - - ios/** - - web/** - - windows/** - - macos/** - - linux/** + errors: + invalid_annotation_target: ignore + avoid_print: ignore + exclude: + - "build/**" + - "**/*.g.dart" + - "**/*.freezed.dart" include: package:flutter_lints/flutter.yaml linter: - rules: - prefer_double_quotes: true + rules: + prefer_double_quotes: true \ No newline at end of file diff --git a/android/app/build.gradle b/android/app/build.gradle new file mode 100644 index 0000000..2e7fb67 --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,77 @@ +plugins { + id "com.android.application" + id "kotlin-android" + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id "dev.flutter.flutter-gradle-plugin" +} + +def localProperties = new Properties() +def localPropertiesFile = rootProject.file("local.properties") +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader("UTF-8") { reader -> + localProperties.load(reader) + } +} + +def flutterVersionCode = localProperties.getProperty("flutter.versionCode") +if (flutterVersionCode == null) { + flutterVersionCode = "1" +} + +def flutterVersionName = localProperties.getProperty("flutter.versionName") +if (flutterVersionName == null) { + flutterVersionName = "1.0" +} + +def keystoreProperties = new Properties() +def keystorePropertiesFile = rootProject.file('key.properties') +if (keystorePropertiesFile.exists()) { + keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) +} + +android { + namespace = "nexus.federated.nexus" + ndkVersion = flutter.ndkVersion + compileSdk = 34 + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = "17" + } + + defaultConfig { + applicationId = "nexus.federated.nexus" + minSdk = 29 + targetSdkVersion flutter.targetSdkVersion + versionCode = flutterVersionCode.toInteger() + versionName = flutterVersionName + } + + signingConfigs { + release { + keyAlias "key" + def storePath = keystoreProperties['path'] ?: System.getenv("KEYSTORE_PATH") + storeFile storePath ? file(storePath) : null + keyPassword keystoreProperties['password'] ?: System.getenv("KEYSTORE_PASSWORD") + storePassword keystoreProperties['password'] ?: System.getenv("KEYSTORE_PASSWORD") + } + } + + buildTypes { + release { + signingConfig signingConfigs.release + } + + debug { + applicationIdSuffix = ".debug" + } + } +} + +flutter { + source = "../.." +} diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts deleted file mode 100644 index 9c0d96c..0000000 --- a/android/app/build.gradle.kts +++ /dev/null @@ -1,84 +0,0 @@ -import java.util.Properties - -plugins { - id("com.android.application") - id("dev.flutter.flutter-gradle-plugin") -} - -val keystoreProperties = Properties() -val keystorePropertiesFile = rootProject.file("key.properties") - -if (keystorePropertiesFile.exists()) { - keystorePropertiesFile.inputStream().use { - keystoreProperties.load(it) - } -} - -android { - namespace = "nexus.federated.nexus" - compileSdk = 36 - ndkVersion = flutter.ndkVersion - - compileOptions { - isCoreLibraryDesugaringEnabled = true - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 - } - - defaultConfig { - applicationId = "nexus.federated.nexus" - - minSdk = 29 - targetSdk = flutter.targetSdkVersion - - versionCode = flutter.versionCode - versionName = flutter.versionName - - multiDexEnabled = true - } - - signingConfigs { - create("release") { - keyAlias = "key" - - val storePath = - keystoreProperties["path"]?.toString() - ?: System.getenv("KEYSTORE_PATH") - - storeFile = storePath?.let { file(it) } - - keyPassword = - keystoreProperties["password"]?.toString() - ?: System.getenv("KEYSTORE_PASSWORD") - - storePassword = - keystoreProperties["password"]?.toString() - ?: System.getenv("KEYSTORE_PASSWORD") - } - } - - buildTypes { - release { - signingConfig = signingConfigs.getByName("release") - } - - debug { - applicationIdSuffix = ".debug" - } - } -} - -dependencies { - implementation("org.unifiedpush.android:embedded-fcm-distributor:3.1.0") - coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4") -} - -kotlin { - compilerOptions { - jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_21 - } -} - -flutter { - source = "../.." -} \ No newline at end of file diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 7378547..a0a0bcc 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,16 +1,12 @@ - - - - - - - - - - - - - - nexus.federated.nexus - matrix - NSLocationUsageDescription - Nexus uses your location only when you choose to share it in a message. - NSLocationWhenInUseUsageDescription - Nexus uses your location only when you choose to share it in a message. diff --git a/macos/Runner/Release.entitlements b/macos/Runner/Release.entitlements index 14e2faf..741903e 100644 --- a/macos/Runner/Release.entitlements +++ b/macos/Runner/Release.entitlements @@ -8,7 +8,5 @@ com.apple.security.files.user-selected.read-only - com.apple.security.personal-information.location - diff --git a/pubspec.lock b/pubspec.lock index 0d6edce..9be2c20 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,60 +5,60 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: "1c5591cc6f252d5f440d96ab87c03e43504be552a3fa49d7cb7563f04c51fb0a" + sha256: a49d6cf99e8d8e7a8e93668d09ced0bbdb954d0b4fccc2f5f9241c6b87fad95c url: "https://pub.dev" source: hosted - version: "111.0.0" + version: "99.0.0" analysis_server_plugin: dependency: transitive description: name: analysis_server_plugin - sha256: "1ff5b5f6bc3d4091ffbc4da2ca9a5de36b49d590332d94e502d0746e80b3d64e" + sha256: "3960b28ee740004df39f85d5ebfc91785f7a90e51fd7c9a185e86a36b2f581b4" url: "https://pub.dev" source: hosted - version: "0.3.26" + version: "0.3.14" analyzer: dependency: transitive description: name: analyzer - sha256: "6c39bd5486a310e56217bed7cb1691377959f31be4227e41750107db7e6dd55c" + sha256: "663efa951fb8a45e06f491223a604c93820598f20e6a99c25617a1576065e8b7" url: "https://pub.dev" source: hosted - version: "14.7.0" + version: "12.1.0" analyzer_buffer: dependency: transitive description: name: analyzer_buffer - sha256: f890a2e708e38fbf4238ad2f9fd3d506538acdddb0cd8eb2c3e8c7bd17784b57 + sha256: "445b77e2054fa3e8c8a8ef1b5e9e6b23bb8028fffd34b5e60eaef315b7750674" url: "https://pub.dev" source: hosted - version: "0.3.4" + version: "0.3.3" analyzer_plugin: dependency: transitive description: name: analyzer_plugin - sha256: "8929dfe59ae5ea8e012f1238e368875642370beabffd15d4048545544ae44aa8" + sha256: "0057a98d64d7bb872b0c87dff6e73d2c2d80c77156e7a03f127a26f8aa240649" url: "https://pub.dev" source: hosted - version: "0.14.20" + version: "0.14.8" app_links: dependency: "direct main" description: name: app_links - sha256: "08ba88bf19d9edea33130cb71c8ced2cb982b4e00b82efef4a434d1357bc69c3" + sha256: f8db46d2ea9ff6f3a37191a7fd5b7813da1253ace8c32c1b9eadace41d1188ea url: "https://pub.dev" source: hosted - version: "7.2.2" + version: "7.2.1" app_links_linux: dependency: transitive description: name: app_links_linux - sha256: "9ccb5802085a1e57bb07b6256fd1d61a78c7ec104944d4965e62938b4fefd9cb" + sha256: f5f7173a78609f3dfd4c2ff2c95bd559ab43c80a87dc6a095921d96c05688c81 url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.0.3" app_links_platform_interface: - dependency: "direct dev" + dependency: transitive description: name: app_links_platform_interface sha256: "7546f09a6e93f4a2df2fe2bd40a5c6c64310ac461b036d82b43033be7a59f809" @@ -69,18 +69,18 @@ packages: dependency: transitive description: name: app_links_web - sha256: "382d32c6f486f15b1d7f5d6a37a70a481a4fc08382eef419d373169921a3e765" + sha256: af060ed76183f9e2b87510a9480e56a5352b6c249778d07bd2c95fc35632a555 url: "https://pub.dev" source: hosted - version: "1.0.5" + version: "1.0.4" archive: dependency: transitive description: name: archive - sha256: de5ac590b8155e4e676088d714bd41ea620449a6adc0f7950c5073874b287ddb + sha256: a96e8b390886ee8abb49b7bd3ac8df6f451c621619f52a26e815fdcf568959ff url: "https://pub.dev" source: hosted - version: "4.6.0" + version: "4.0.9" args: dependency: transitive description: @@ -97,14 +97,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.13.1" - avif_native: - dependency: "direct main" - description: - name: avif_native - sha256: fed1aad8f8e855abf40a16484dcbfacea89b65154832d6af8ad46bf9353faf7a - url: "https://pub.dev" - source: hosted - version: "0.2.0" boolean_selector: dependency: transitive description: @@ -117,50 +109,50 @@ packages: dependency: transitive description: name: build - sha256: "50df3d1558953a0d936401c1687cc41dbc039f9132f538c7bcb2aac2a580ae7f" + sha256: "45d14a0fb23e018d8287c32fc98d726ce466b231928ed9b9200f29bd3ccd39ae" url: "https://pub.dev" source: hosted - version: "5.0.0" + version: "4.0.7" build_config: dependency: transitive description: name: build_config - sha256: "4703a785fbc3c266c5c7518589d0863f6a05078ee33f7ca5aa4b87a56f1cedd2" + sha256: "94eaf6708fe64408c632ef2689ca3777b112f9421306ccf4f8c84d7c5c9f83f8" url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.3.2" build_daemon: dependency: transitive description: name: build_daemon - sha256: "39ab65f7c60c19af64b9ef96e6a5d3ab48355f7dddfd98a9079d55a8cb6628fc" + sha256: "79e05eaf15a48d7230b053a4363b8eaac0cc234bbd0134c3229455481f55cbc6" url: "https://pub.dev" source: hosted - version: "4.1.7" + version: "4.1.5" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "96b9da39a3a8d4365aa1ca6f7655437d80f514ba13d4c21d8408cc8aacb94681" + sha256: "5367e521935b102bdf1e735d2aab461e36b2edca6517662d088dd04cc39f8d16" url: "https://pub.dev" source: hosted - version: "2.17.1" + version: "2.15.1" built_collection: dependency: transitive description: name: built_collection - sha256: "44922ecebd8e3d0cef743dadd3b54df4e87e2a4c52a29465a1872aa9e192caa8" + sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" url: "https://pub.dev" source: hosted - version: "5.1.2" + version: "5.1.1" built_value: dependency: transitive description: name: built_value - sha256: f87ea98192116f7093cb214551ce1929caae0681fdba282b3d8b4462adee7bb7 + sha256: "31b24be6615ec7fcf70b3aa5a7469fe35826485e639a16dd7eb83ba30e4cc6a8" url: "https://pub.dev" source: hosted - version: "8.13.0" + version: "8.12.7" button_m3e: dependency: transitive description: @@ -169,14 +161,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.1.2" - change_case: - dependency: transitive - description: - name: change_case - sha256: e41ef3df58521194ef8d7649928954805aeb08061917cf658322305e61568003 - url: "https://pub.dev" - source: hosted - version: "2.2.0" characters: dependency: transitive description: @@ -185,6 +169,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.4.1" + charcode: + dependency: transitive + description: + name: charcode + sha256: fb0f1107cac15a5ea6ef0a6ef71a807b9e4267c713bb93e00e92d737cc8dbd8a + url: "https://pub.dev" + source: hosted + version: "1.4.0" checked_yaml: dependency: transitive description: @@ -193,6 +185,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_util: dependency: transitive description: @@ -205,26 +205,18 @@ packages: dependency: transitive description: name: clock - sha256: e51d50bca3217c9a9fa2b41a30e4a38971133f5f9ec7a3d57bae095007f1d28e + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b url: "https://pub.dev" source: hosted - version: "1.1.3" - cnativeapi: - dependency: transitive - description: - name: cnativeapi - sha256: "3c9e30d513cdc8ecb116f3017308f2480828c766e45aa00083c3d15d621e5d57" - url: "https://pub.dev" - source: hosted - version: "0.5.8" + version: "1.1.2" code_assets: dependency: "direct main" description: name: code_assets - sha256: "828110d598123b5ea96c00c9f3c72105bf79f8ee36c20a39b26209ade421ec57" + sha256: bf394f466ba9205f1812a0433b392d6af280f155f56651eda7c18cc32ed493b8 url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "1.2.1" collection: dependency: "direct main" description: @@ -249,22 +241,30 @@ packages: url: "https://pub.dev" source: hosted version: "3.1.2" + coverage: + dependency: transitive + description: + name: coverage + sha256: "956a3de0725ca232ad353565a8290d3357592bf4250f6f298a185e2d949c5d3d" + url: "https://pub.dev" + source: hosted + version: "1.15.1" cross_file: dependency: transitive description: name: cross_file - sha256: f141ea4f277af142a0356955707f6556f37b03947d39d55585981a06ca437bd6 + sha256: "92c9c43c383bfa1c32079d3bc492d55d6d4318044b7b47edaff8971cbb555c51" url: "https://pub.dev" source: hosted - version: "0.3.5+5" + version: "0.3.5+4" crypto: dependency: transitive description: name: crypto - sha256: e3626ae6270383c9e3a549f34c9e4cd26c09ae6a9adaab2bf4737a00340efdc4 + sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf url: "https://pub.dev" source: hosted - version: "3.0.8" + version: "3.0.7" csslib: dependency: transitive description: @@ -273,54 +273,47 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.2" - cupertino_ui: - dependency: transitive - description: - name: cupertino_ui - sha256: e9dfe7fac704028f8928cbe4028a0be5e8a709498e8daf8247de99e99a32aef3 - url: "https://pub.dev" - source: hosted - version: "1.0.2" - dart_earcut: - dependency: transitive - description: - name: dart_earcut - sha256: e485001bfc05dcbc437d7bfb666316182e3522d4c3f9668048e004d0eb2ce43b - url: "https://pub.dev" - source: hosted - version: "1.2.0" - dart_polylabel2: - dependency: transitive - description: - name: dart_polylabel2 - sha256: "7eeab15ce72894e4bdba6a8765712231fc81be0bd95247de4ad9966abc57adc6" - url: "https://pub.dev" - source: hosted - version: "1.0.0" dart_style: dependency: transitive description: name: dart_style - sha256: a0e4f65339b31eb6a9e6a12e14b4682a48d46fbc54a82f4a702396fbdbac63a7 + sha256: a4c1ccfee44c7e75ed80484071a5c142a385345e658fd8bd7c4b5c97e7198f98 url: "https://pub.dev" source: hosted - version: "3.1.14" + version: "3.1.8" dbus: dependency: transitive description: name: dbus - sha256: a48d5da28e89bd02196e80d81ed8d7954923d00a0f4a68cc20b575038f023383 + sha256: "792974a4007974fbc5c1b5433eb2330a9db3e368c3f906253af4c007d0f49a91" url: "https://pub.dev" source: hosted - version: "0.7.15" + version: "0.7.13" dynamic_color: dependency: "direct main" description: name: dynamic_color - sha256: "869b3bce0100eb519768ecd71c0111f0b5ea679f5f62e1f59c49d80067e730c5" + sha256: "4aeb76de323e8eb660bab5557d826ad7ebbf1434a598f0c6aa8a11a9696a6757" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "1.9.0" + dynamic_polls: + dependency: "direct main" + description: + name: dynamic_polls + sha256: "72ff19cdf041ad8dcfa76adaebb216d005f40b278d955e6e0c7bcb769215fabe" + url: "https://pub.dev" + source: hosted + version: "0.0.7" + emoji_text_field: + dependency: "direct main" + description: + path: "." + ref: HEAD + resolved-ref: "5f7baaf8a6f059ec3ab8ff0f5d02339b00bf6997" + url: "https://github.com/Henry-Hiles/emoji_text_field" + source: git + version: "1.0.0" equatable: dependency: transitive description: @@ -330,13 +323,12 @@ packages: source: hosted version: "2.1.0" fab_m3e: - dependency: "direct overridden" + dependency: transitive description: - path: "packages/fab_m3e" - ref: HEAD - resolved-ref: "35ff1cea8e1a23523428710b27fc5d190ee81e96" - url: "https://github.com/Henry-Hiles/material_3_expressive" - source: git + name: fab_m3e + sha256: e4f5abfa3c8c092005449d56dcac45b85e2dbe9c32789d672c5ed71428e43b59 + url: "https://pub.dev" + source: hosted version: "0.1.1" fake_async: dependency: transitive @@ -350,10 +342,10 @@ packages: dependency: "direct main" description: name: fast_immutable_collections - sha256: "3f791151fe63e27beffdba12835db33c60031e324351f683879ebe18d1b10588" + sha256: "58cec99fc068427c71901e82d4b31b232240ebe6e61200993c2cb91bcada0ff6" url: "https://pub.dev" source: hosted - version: "11.2.1" + version: "11.2.0" ffi: dependency: "direct main" description: @@ -374,10 +366,10 @@ packages: dependency: "direct main" description: name: ffigen - sha256: "6f55d99ac1857fc063b58c3b31753df2bba417028ba98d30c6d625a385855064" + sha256: "56fc0be88937409839a59c133dfdee4165e80da324c9e39f59013060249ffb44" url: "https://pub.dev" source: hosted - version: "23.0.0" + version: "21.0.0" file: dependency: transitive description: @@ -398,34 +390,34 @@ packages: dependency: transitive description: name: file_selector_android - sha256: d670cd0ce77a2e785b18d8b4d0a8d6a222d6a813ec9b7ddf2790a1b4fb6fa92c + sha256: "1d45e9910f68c16eb0c74f0b10097ad81aed516ea28054c027137e8f7d75e840" url: "https://pub.dev" source: hosted - version: "0.5.2+11" + version: "0.5.2+9" file_selector_ios: dependency: transitive description: name: file_selector_ios - sha256: "5b42ec0ef7626124b4624ea244341e9df780406793c204e89fa68a2e71af115c" + sha256: e2ecf2885c121691ce13b60db3508f53c01f869fb6e8dc5c1cfa771e4c46aeca url: "https://pub.dev" source: hosted - version: "0.5.3+7" + version: "0.5.3+5" file_selector_linux: dependency: transitive description: name: file_selector_linux - sha256: da76400e7872ce7637ffdce12749ec24169c25f6195c28372208e65a24bcd2ab + sha256: "2567f398e06ac72dcf2e98a0c95df2a9edd03c2c2e0cacd4780f20cdf56263a0" url: "https://pub.dev" source: hosted - version: "0.9.4+1" + version: "0.9.4" file_selector_macos: dependency: transitive description: name: file_selector_macos - sha256: d785431f1910aac8a50e5c492cae912320158030a88703c67b9ef7f1f96fd7ba + sha256: "5e0bbe9c312416f1787a68259ea1505b52f258c587f12920422671807c4d618a" url: "https://pub.dev" source: hosted - version: "0.9.5+2" + version: "0.9.5" file_selector_platform_interface: dependency: transitive description: @@ -446,10 +438,10 @@ packages: dependency: transitive description: name: file_selector_windows - sha256: fbefc5fb92c6d3cbe8d284a2cd971b593bb07d2cd6da8557b81a862250b4acec + sha256: "62197474ae75893a62df75939c777763d39c2bc5f73ce5b88497208bc269abfd" url: "https://pub.dev" source: hosted - version: "0.9.3+6" + version: "0.9.3+5" fixnum: dependency: transitive description: @@ -471,19 +463,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.9.1" - flutter_driver: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - flutter_file_dialog: - dependency: "direct main" - description: - name: flutter_file_dialog - sha256: "5d270d69b6a5fdf45bdb88ebcf590e073dd89dfb45526ac83a64524ba57303b5" - url: "https://pub.dev" - source: hosted - version: "3.3.3" flutter_hooks: dependency: "direct main" description: @@ -500,6 +479,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.14.4" + flutter_linkify: + dependency: "direct main" + description: + name: flutter_linkify + sha256: "74669e06a8f358fee4512b4320c0b80e51cffc496607931de68d28f099254073" + url: "https://pub.dev" + source: hosted + version: "6.0.0" flutter_lints: dependency: "direct dev" description: @@ -508,59 +495,11 @@ packages: url: "https://pub.dev" source: hosted version: "6.0.0" - flutter_local_notifications: - dependency: "direct main" - description: - name: flutter_local_notifications - sha256: fd5fc8966a8b34337ac182dc394f3506139b69d8138d4e9e174a13d6468adcd4 - url: "https://pub.dev" - source: hosted - version: "22.3.3" - flutter_local_notifications_linux: - dependency: transitive - description: - name: flutter_local_notifications_linux - sha256: "3b89a4bf095fa5f8a99beeabf982c5bd506c3ad25e7b9e61da945e994dc5b615" - url: "https://pub.dev" - source: hosted - version: "8.0.2" - flutter_local_notifications_platform_interface: - dependency: transitive - description: - name: flutter_local_notifications_platform_interface - sha256: "43c3761d916c9bd3d5c7ebbc44d82f4990329840c0c5d62ad5260cc1b5d399bd" - url: "https://pub.dev" - source: hosted - version: "12.2.0" - flutter_local_notifications_web: - dependency: transitive - description: - name: flutter_local_notifications_web - sha256: "516afaf97a2d1e67a036c6617321b00d205d72f7a67b6eccf936cd565f985878" - url: "https://pub.dev" - source: hosted - version: "1.0.0" - flutter_local_notifications_windows: - dependency: transitive - description: - name: flutter_local_notifications_windows - sha256: "6f43bdd03b171b7a90f22647506fea33e2bb12294b7c7c7a3d690e960a382945" - url: "https://pub.dev" - source: hosted - version: "3.1.1" flutter_localizations: dependency: "direct main" description: flutter source: sdk version: "0.0.0" - flutter_map: - dependency: "direct main" - description: - name: flutter_map - sha256: "9bbe5472f66ae648d2ca2efbce97fcaa04e71261fabd3e062f26728222d7f767" - url: "https://pub.dev" - source: hosted - version: "8.3.2" flutter_plugin_android_lifecycle: dependency: transitive description: @@ -573,20 +512,20 @@ packages: dependency: "direct main" description: name: flutter_riverpod - sha256: "2b7f9d2a3c730ac1a98221b420cef966b990fca7ab546ede324642ca57a533e3" + sha256: "9255e1e3ad6e38906a1b4f8287678f95f378744c5b46b1985588543f3f19046e" url: "https://pub.dev" source: hosted - version: "3.4.3" + version: "3.3.2" flutter_svg: dependency: "direct main" description: name: flutter_svg - sha256: "100c19dcc4ff60083e95a44a6f44f3a1bb887d353c5d86f6a9b688aa3cb46236" + sha256: "35882981abcbfb8c15b286f0cd690ff25bac12d95eff3e25ee207f37d4c42e7f" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.3.0" flutter_test: - dependency: "direct dev" + dependency: transitive description: flutter source: sdk version: "0.0.0" @@ -599,27 +538,26 @@ packages: dependency: "direct main" description: name: flutter_widget_from_html_core - sha256: "4eb6b5ece5fa5a2c6b35f621433aa36d5f115cc45e8638c7fac0d709561ea9f6" + sha256: "7ff010b116f6abc16429923e616fbc727f3f65ef4cee12ffdb280aeecbc21e7f" url: "https://pub.dev" source: hosted - version: "0.18.0-beta.1" + version: "0.17.2" fluttertagger: dependency: "direct main" description: - path: "." - ref: HEAD - resolved-ref: "78a5099499728917e7595f738f3b369b47804dc5" - url: "https://github.com/Henry-Hiles/fluttertagger" - source: git + name: fluttertagger + sha256: "04514674b41a063b97901aedf6970d0675b828bd723a0fb9f9dba89b91953382" + url: "https://pub.dev" + source: hosted version: "2.3.2" freezed: dependency: "direct dev" description: name: freezed - sha256: cb910646cb09265d49077b63b600ef1f5a718c1d6031836432237ddeabae1b12 + sha256: "8599ba37236328ff6f97269ecce875d251a367eb2929c9bbf9b811b2ce56c74e" url: "https://pub.dev" source: hosted - version: "4.0.3" + version: "3.2.6-dev.1" freezed_annotation: dependency: "direct main" description: @@ -628,83 +566,30 @@ packages: url: "https://pub.dev" source: hosted version: "3.1.0" - fuchsia_remote_debug_protocol: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - geoclue: + frontend_server_client: dependency: transitive description: - name: geoclue - sha256: c2a998c77474fc57aa00c6baa2928e58f4b267649057a1c76738656e9dbd2a7f + name: frontend_server_client + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 url: "https://pub.dev" source: hosted - version: "0.1.1" - geolocator: - dependency: "direct main" - description: - name: geolocator - sha256: "2b3bc0f7320d5a5fa02f8209ffcf1aaa7c2cabb7b2bedbc0cfeb5ff2778b8b09" - url: "https://pub.dev" - source: hosted - version: "14.1.2" - geolocator_android: + version: "4.0.0" + get_x_storage: dependency: transitive description: - name: geolocator_android - sha256: e67583809a1fab5f4a2255902978e2bc095ace9451fde0d9624e54facd0a5c22 + name: get_x_storage + sha256: "69e4412dd70e25a4991623c10bf72e3b12106f2cb4353a2d167353947597f3aa" url: "https://pub.dev" source: hosted - version: "5.2.1" - geolocator_apple: - dependency: transitive - description: - name: geolocator_apple - sha256: a1e177f3081089724f2095856aeb96eb8d7d1c59e425aed8dd4de7aa2c11ab66 - url: "https://pub.dev" - source: hosted - version: "2.4.3" - geolocator_linux: - dependency: transitive - description: - name: geolocator_linux - sha256: "3da7420f11c3496511a5bd3c18fd67b88e5659f12e46b7ce00a788f6996e850a" - url: "https://pub.dev" - source: hosted - version: "0.2.6" - geolocator_platform_interface: - dependency: transitive - description: - name: geolocator_platform_interface - sha256: e012af6b7e2674e7500237ab11e44ac9119e87fd0105e7bb55cde1750e8e5d80 - url: "https://pub.dev" - source: hosted - version: "4.4.1" - geolocator_web: - dependency: transitive - description: - name: geolocator_web - sha256: "19e485a0f8d6a88abcf9c53cba3a4105e14b7435ed8ac1c108c067b938fe8429" - url: "https://pub.dev" - source: hosted - version: "4.1.4" - geolocator_windows: - dependency: transitive - description: - name: geolocator_windows - sha256: "175435404d20278ffd220de83c2ca293b73db95eafbdc8131fe8609be1421eb6" - url: "https://pub.dev" - source: hosted - version: "0.2.5" + version: "0.0.9" glob: dependency: transitive description: name: glob - sha256: "218aeb56050c714f62a3182775320dfa04602b55074873e24e31bbd39bda96fb" + sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.1.3" graphs: dependency: transitive description: @@ -713,38 +598,38 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.2" - gsettings: + gtk: dependency: transitive description: - name: gsettings - sha256: "1b0ce661f5436d2db1e51f3c4295a49849f03d304003a7ba177d01e3a858249c" + name: gtk + sha256: "4ff85b2a16724029dd9e5bbb5a94b6918f9973f74ba571c949d2002801879cf5" url: "https://pub.dev" source: hosted - version: "0.2.8" + version: "2.2.0" hooks: dependency: "direct main" description: name: hooks - sha256: eaac480a35ec0814146c2c48d96aaa829e0e44a7662c88ae84c9edf4bc35651f + sha256: "9a62a50b50b769a737bc0a8ff381f333529df3ab746b2f6b02e83760231455ba" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.0.2" hooks_riverpod: dependency: "direct main" description: name: hooks_riverpod - sha256: d58e1e14aa112ca9c56d54effb7d0d717b2d3f96dad3cdd1fce16f8740450700 + sha256: dcaf59f0f41489ff08ce61438ada564d67f40cfa37cc7c8589da78fb600c2edc url: "https://pub.dev" source: hosted - version: "3.4.3" + version: "3.3.2" html: - dependency: "direct main" + dependency: transitive description: name: html - sha256: "43b67b8f43321ab066817dfac5619596c98bb1b61624e77203bb4351785f9699" + sha256: "6d1264f2dffa1b1101c25a91dff0dc2daee4c18e87cd8538729773c073dbf602" url: "https://pub.dev" source: hosted - version: "0.15.7" + version: "0.15.6" http: dependency: "direct main" description: @@ -757,10 +642,10 @@ packages: dependency: transitive description: name: http_multi_server - sha256: "361668bdd71f0ae2dc6d17b75a593520f3c414af6534f9eed1aa72049dd71d18" + sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8 url: "https://pub.dev" source: hosted - version: "3.2.3" + version: "3.2.2" http_parser: dependency: transitive description: @@ -781,26 +666,26 @@ packages: dependency: transitive description: name: image - sha256: "89ed75b2f8231fe676808c5564f9590d728024ded7ac782a7ed8474f1c95b72a" + sha256: "6300175e00616bbc832e2fc91bfa4d776af5402c81c7151bee6905bb08473c52" url: "https://pub.dev" source: hosted - version: "4.12.0" + version: "4.9.1" image_picker: dependency: "direct main" description: name: image_picker - sha256: e71b1bd9e40124041128d60fc3034c7b1598e1bba4e570bba0c70301c817013a + sha256: d8402284df184bc05f4a2210c6c23983b0720f4cd87cbd05c5390a78af602667 url: "https://pub.dev" source: hosted - version: "1.2.4" + version: "1.2.3" image_picker_android: dependency: transitive description: name: image_picker_android - sha256: "8a7823d5d3e884f7780829d85d92110d072bdcd9ed48e2be158d2abe91a912d4" + sha256: "6f3a1995eafb000333174fae92202622033b0ee7fd917a6cd3730295264df84a" url: "https://pub.dev" source: hosted - version: "0.8.13+25" + version: "0.8.13+19" image_picker_for_web: dependency: transitive description: @@ -813,10 +698,10 @@ packages: dependency: transitive description: name: image_picker_ios - sha256: b8f508306db2bf71141aba2de4ec13456338bf01e13f034bd2594f341a5f8eb2 + sha256: b9c4a438a9ff4f60808c9cf0039b93a42bb6c2211ef6ebb647394b2b3fa84588 url: "https://pub.dev" source: hosted - version: "0.8.13+14" + version: "0.8.13+6" image_picker_linux: dependency: transitive description: @@ -837,10 +722,10 @@ packages: dependency: transitive description: name: image_picker_platform_interface - sha256: "2dee4b4e3be429db71472c9c559c981498070a61af1ba82e0e4986fc5dadc042" + sha256: "567e056716333a1647c64bb6bd873cff7622233a5c3f694be28a583d4715690c" url: "https://pub.dev" source: hosted - version: "2.11.2" + version: "2.11.1" image_picker_windows: dependency: transitive description: @@ -849,43 +734,22 @@ packages: url: "https://pub.dev" source: hosted version: "0.2.2" - integration_test: - dependency: "direct dev" - description: flutter - source: sdk - version: "0.0.0" intl: dependency: "direct main" description: name: intl - sha256: "1ca20c894b1717686a2319b8548763d812bc0aabdac580420a44c5178c57a867" + sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5" url: "https://pub.dev" source: hosted - version: "0.20.3" + version: "0.20.2" io: dependency: transitive description: name: io - sha256: "2635216ca6a737e60de577ffa1a48a0bec76ca8a62917cfc1bb88c14c570646f" + sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b url: "https://pub.dev" source: hosted - version: "1.1.0" - jni: - dependency: transitive - description: - name: jni - sha256: d8df6dab6847855512fe44dd9032b0bbe34dda7bf7597e41d30750879779813f - url: "https://pub.dev" - source: hosted - version: "1.1.1" - jni_util: - dependency: transitive - description: - name: jni_util - sha256: "1ba86da04a5f2bf18fde2edb235587e70c5b0fc5bd4ba955f46b00942c3fc35f" - url: "https://pub.dev" - source: hosted - version: "1.0.0" + version: "1.0.5" json_annotation: dependency: "direct main" description: @@ -898,18 +762,10 @@ packages: dependency: "direct dev" description: name: json_serializable - sha256: cc7822761b40be9237bcaae62b755ffe5453ceff96a0001f1f5f2439251c66f1 + sha256: e45aefa0324f08c683caafbb94b72837aa6193c61822799c916e45f4a263113d url: "https://pub.dev" source: hosted - version: "6.15.2" - latlong2: - dependency: "direct main" - description: - name: latlong2 - sha256: "84b776b100a84a684a0aaa3fa4dc2c9b1931c658de533701ee4e09bfa991f8dc" - url: "https://pub.dev" - source: hosted - version: "0.10.1" + version: "6.14.1" leak_tracker: dependency: transitive description: @@ -951,14 +807,6 @@ packages: url: "https://pub.dev" source: hosted version: "6.1.0" - listen: - dependency: transitive - description: - name: listen - sha256: "47501a08016a43fcad79252439d723f50f14f88fa7bfd8a177e0a417e5c9e1f2" - url: "https://pub.dev" - source: hosted - version: "1.0.1" logging: dependency: transitive description: @@ -971,43 +819,34 @@ packages: dependency: "direct main" description: name: m3e_buttons - sha256: "25eac5e0afdb88673499c243a863fbf0bbb64c0073e9a8784c1937626a31e412" + sha256: "20b29df165d4d866ffd0d4808090210740690707705f44fc61c9b275bec3af36" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "0.0.5" m3e_card_list: dependency: "direct main" description: name: m3e_card_list - sha256: ed1cc150f051b8812ffd735915ae59fed23517ffeeed04c4b2b8ef6257cc18b7 + sha256: d4aba0123cccda40ac80789befa8d355e1dc16aa7dcee910157690b0546d78d6 url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "0.1.0" m3e_design: - dependency: "direct main" + dependency: transitive description: - path: "packages/m3e_design" - ref: HEAD - resolved-ref: "35ff1cea8e1a23523428710b27fc5d190ee81e96" - url: "https://github.com/Henry-Hiles/material_3_expressive" - source: git + name: m3e_design + sha256: "15ff0ef4c43553d855c5e866a9aee8231d44919fe2bb354b1259337bdfd659b4" + url: "https://pub.dev" + source: hosted version: "0.2.1" matcher: dependency: transitive description: name: matcher - sha256: "31bd099b47c10cd1aeb55146a2d46ce0277630ecef3f7dae54ad7873f36696cd" + sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861 url: "https://pub.dev" source: hosted - version: "0.12.20" - material_adaptive_sheets: - dependency: "direct main" - description: - name: material_adaptive_sheets - sha256: "9299e8dfa7459583516520db1fe0edec83ab306679c3cfd3d0848f666bc956e5" - url: "https://pub.dev" - source: hosted - version: "1.0.0" + version: "0.12.19" material_color_utilities: dependency: transitive description: @@ -1016,22 +855,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.13.0" - material_emoji_picker: - dependency: "direct main" - description: - name: material_emoji_picker - sha256: "7da8621cc827b9f0327f05a3cb22fe638945bd6a278c7bcf9112673a1c2bff90" - url: "https://pub.dev" - source: hosted - version: "2.0.1+1" - material_ui: - dependency: "direct main" - description: - name: material_ui - sha256: feb289df1e5f9ed9522f9fe3d909432a7f7bc76943f16abad09f80a16cd25196 - url: "https://pub.dev" - source: hosted - version: "1.9.0" measure_size: dependency: "direct main" description: @@ -1108,26 +931,18 @@ packages: dependency: transitive description: name: meta - sha256: "307249ce4ff29d58a18e97f6345f539382eb9c9c29ecda628900f31de0443dd9" + sha256: "1741988757a65eb6b36abe716829688cf01910bbf91c34354ff7ec1c3de2b349" url: "https://pub.dev" source: hosted - version: "1.19.0" - mgrs_dart: + version: "1.18.0" + mime: dependency: transitive - description: - name: mgrs_dart - sha256: "385e7168ecc77eb545220223c49eef8ab249da7bf57f22781c40a04d23fb196f" - url: "https://pub.dev" - source: hosted - version: "3.0.0" - mime: - dependency: "direct main" description: name: mime - sha256: bd47de35f07e27267e69c8c8b22edf9473bfee170a60d60fcc93730c5144b7f6 + sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.0.0" motor: dependency: transitive description: @@ -1136,80 +951,55 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" - multi_state_switch: - dependency: "direct main" - description: - name: multi_state_switch - sha256: "501890f46d33d6cba6a84eb8f1689dba180a264ce3373fa689f75f4887d822fd" - url: "https://pub.dev" - source: hosted - version: "1.1.0" native_toolchain_c: dependency: transitive description: name: native_toolchain_c - sha256: "90eaad8059ebc2004a63810a4696ea9acdb02473e47ed3b6b3bafb100ac77e31" + sha256: f9c168717100ae6d9fee9ffb0be379bf1f8b26b0f6bcbd4fdddcd931993a6a72 url: "https://pub.dev" source: hosted - version: "0.19.5" - native_toolchain_cmake: - dependency: "direct overridden" - description: - path: "." - ref: HEAD - resolved-ref: d77984a36a16be22e911850de2cd2050610ff4ed - url: "https://github.com/rainyl/native_toolchain_cmake" - source: git - version: "0.3.2" - nativeapi: - dependency: transitive - description: - name: nativeapi - sha256: "87b0912bde3c9b7e0649c5e12047baf2bf179d3844a9b984313e897872120267" - url: "https://pub.dev" - source: hosted - version: "0.5.8" - nativeapi_flutter: - dependency: transitive - description: - name: nativeapi_flutter - sha256: b62a42b8a86538119ba67b8eab8328eb89d69ac4a2142d623d08ac163faa9cd8 - url: "https://pub.dev" - source: hosted - version: "0.5.8" + version: "0.19.2" navigation_rail_m3e: dependency: "direct main" description: path: "packages/navigation_rail_m3e" ref: HEAD - resolved-ref: "35ff1cea8e1a23523428710b27fc5d190ee81e96" + resolved-ref: "667b0bc8526fd53296778903b6ef3f22424f3aa4" url: "https://github.com/Henry-Hiles/material_3_expressive" source: git version: "0.3.5" + 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: "5c80c2ad6e2c0397de5db38c6d653e69616a3397e13aa7633bf39eb668f2041b" + sha256: b7fb95a6d9a4f009edd63dc5ac69f07420b23a16161c6dd8660290b59c602e8e url: "https://pub.dev" source: hosted - version: "9.6.2" + version: "9.5.0" package_config: dependency: transitive description: name: package_config - sha256: ffcf4cf3d6c0b74ac43708d9f56625506e8a68aa935abe9d267a7330f320eb5d + sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc url: "https://pub.dev" source: hosted - version: "3.0.0" + version: "2.2.0" package_info_plus: dependency: "direct main" description: name: package_info_plus - sha256: "73ef2cd5c11a7548f9b7f6fc2a4f6113de2e64aa2a70de63feede95548822908" + sha256: "127e1751e37ffb2ff4658beeaca77bad0c27bf5f932bd3a501c2296926d4b481" url: "https://pub.dev" source: hosted - version: "10.2.2" + version: "10.2.1" package_info_plus_platform_interface: dependency: transitive description: @@ -1218,14 +1008,6 @@ packages: url: "https://pub.dev" source: hosted version: "4.1.0" - pasteboard: - dependency: "direct main" - description: - name: pasteboard - sha256: e0535da36124e6f2ca9d17424102ce5de34e72acc39f05a1d942b974b48e5eea - url: "https://pub.dev" - source: hosted - version: "0.6.0" path: dependency: "direct main" description: @@ -1251,7 +1033,7 @@ packages: source: hosted version: "2.1.6" path_provider_android: - dependency: transitive + dependency: "direct overridden" description: name: path_provider_android sha256: "149441ca6e4f38193b2e004c0ca6376a3d11f51fa5a77552d8bd4d2b0c0912ba" @@ -1294,18 +1076,18 @@ packages: dependency: transitive description: name: petitparser - sha256: "2f1564aadb14215e478563b5406cb80729d022158c01dc50c96013c2f7eb4790" + sha256: "91bd59303e9f769f108f8df05e371341b15d59e995e6806aefab827b58336675" url: "https://pub.dev" source: hosted - version: "7.1.0" + version: "7.0.2" platform: dependency: transitive description: name: platform - sha256: a36d119c13416516a7b5913fbe8af8531e11633d784c550b2125f76c758524ec + sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "3.1.6" plugin_platform_interface: dependency: transitive description: @@ -1318,50 +1100,34 @@ packages: dependency: transitive description: name: pool - sha256: "4177f68c237ea2128d1bee66ac17b2ce05ba3dbaafcbdd54c5d40a39d0b6b11c" + sha256: "978783255c543aa3586a1b3c21f6e9d720eb315376a915872c61ef8b5c20177d" url: "https://pub.dev" source: hosted - version: "1.5.3" + version: "1.5.2" posix: dependency: transitive description: name: posix - sha256: "613646d076944f3acc125830af935b48d4b8a57a388691547bbfd25b434f4d63" + sha256: bc1bad54ad2b735816e31f8d4600cfde6c7839975085ddfbca48b6c9f7c4044e url: "https://pub.dev" source: hosted - version: "6.5.4" - process: - dependency: transitive - description: - name: process - sha256: "4242ba3508d37e01808bdf71ad1d5bb93a8d671bf2e7450e6b1b353fb0808891" - url: "https://pub.dev" - source: hosted - version: "5.0.6" - proj4dart: - dependency: transitive - description: - name: proj4dart - sha256: ddcedc1f7876e62717de43ab3491e2829bdad0b028261805f94aa080967e5859 - url: "https://pub.dev" - source: hosted - version: "3.0.0" + version: "6.5.2" pub_semver: dependency: transitive description: name: pub_semver - sha256: "261236774e8b1d69cfc6b9eabbc96c40f25e7a2d6b171f3385d4f65d5734fb24" + sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585" url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.2.0" pubspec_parse: dependency: transitive description: name: pubspec_parse - sha256: "9ac81c01ffd6a9cf9b2713288834fbaaf6aebde05ffdf02d380e68b8e06f27d8" + sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" url: "https://pub.dev" source: hosted - version: "1.7.0" + version: "1.5.0" quiver: dependency: transitive description: @@ -1374,66 +1140,114 @@ packages: dependency: transitive description: name: record_use - sha256: "1cb8564af8d43b464294411db9217f5ec04891c6f22ee2c32d73ae05e88a6bd2" + sha256: "2551bd8eecfe95d14ae75f6021ad0248be5c27f138c2ec12fcb52b500b3ba1ed" url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "0.6.0" riverpod: dependency: transitive description: name: riverpod - sha256: "484dfc873ea4c4f4240e5635444fa066f87b07862b7279ebd004a2b71fba4b7a" + sha256: "17100416c51db7810c71a7bb2c34d1f881faa0074fd452afb0c4db6f8f126c76" url: "https://pub.dev" source: hosted - version: "3.4.3" + version: "3.3.2" riverpod_analyzer_utils: dependency: transitive description: name: riverpod_analyzer_utils - sha256: bb13cb3985815840cc103eda1027158358c5fdc00f308fc6f76574d0594107af + sha256: "3e275138862ccc22ed61444a1f9a840f753094c367f28f4123f50289cd204d68" url: "https://pub.dev" source: hosted - version: "1.0.0-dev.12" + version: "1.0.0-dev.10" riverpod_lint: dependency: "direct dev" description: name: riverpod_lint - sha256: "215cb3cd54a97e09bc3512535fa4e8bedd3bf2a06dc2ae015ac8e0050fc71bd1" + sha256: "166f29492228dc471b6fe294092560ccd5545ed15c9fc155622455b58b2451a9" url: "https://pub.dev" source: hosted - version: "3.1.9" + version: "3.1.4" + rxdart: + dependency: transitive + description: + name: rxdart + sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962" + url: "https://pub.dev" + source: hosted + version: "0.28.0" safe_local_storage: dependency: transitive description: name: safe_local_storage - sha256: "76288b689a3e1fddccb377177feed85d73fdfc64c9c3c52991e2d9aba35c4857" + sha256: "494b982d5edb71030650ea463d939670e91b232b588323dc75229d2c5f23e7b7" url: "https://pub.dev" source: hosted - version: "2.0.7" + version: "2.0.6" + 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" shared_preferences: dependency: "direct main" description: name: shared_preferences - sha256: "1e85e0dccf5b4a016077fea7dfbb4a7cb39c759ac1596fcf60c06deadb7da91f" + sha256: c3025c5534b01739267eb7d76959bbc25a6d10f6988e1c2a3036940133dd10bf url: "https://pub.dev" source: hosted - version: "2.5.6" + version: "2.5.5" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - sha256: "33b38b07d9ac7d16aff0426c61418752fd3e7a8c7dc8be786c875d6ce673b002" + sha256: "0634e64bd719f89c012f392938e173521f535d3ecaf66558fa94a056d22b5cc7" url: "https://pub.dev" source: hosted - version: "2.5.4" + version: "2.4.27" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "4e396ac6f8751ab7d2d6e27f22f32c8350b07006028d534f5221503382f1fa69" + sha256: "4e7eaffc2b17ba398759f1151415869a34771ba11ebbccd1b0145472a619a64f" url: "https://pub.dev" source: hosted - version: "2.6.1" + version: "2.5.6" shared_preferences_linux: dependency: transitive description: @@ -1470,10 +1284,26 @@ packages: dependency: transitive description: name: shelf - sha256: e75e9cf311d7fd712048038cc17c25199c38536c20330d53e7db058b543d5a48 + sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 url: "https://pub.dev" source: hosted - version: "1.4.3" + 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: @@ -1482,14 +1312,6 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.0" - simple_sparse_list: - dependency: transitive - description: - name: simple_sparse_list - sha256: aa648fd240fa39b49dcd11c19c266990006006de6699a412de485695910fbc1f - url: "https://pub.dev" - source: hosted - version: "0.1.4" sky_engine: dependency: transitive description: flutter @@ -1499,18 +1321,34 @@ packages: dependency: transitive description: name: source_gen - sha256: "833ea7d15b5be79949d3d6c077da0267a0bd93c16897b36a771395a91e63086e" + sha256: a603f1fb984a7391ae5978d1b92bfaaa08b350dca5c825256f925818f7943bf5 url: "https://pub.dev" source: hosted - version: "4.3.1" + version: "4.2.4" source_helper: dependency: transitive description: name: source_helper - sha256: "279126bce72de3f2b7d4756408a4157988cf6bb4815be551bf55851aa00e9984" + sha256: "5e6f216fdf6376c9f3852381ae037499797a3385377d388b011dac98d303c67c" url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.3.13" + 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: @@ -1523,10 +1361,10 @@ packages: dependency: transitive description: name: stack_trace - sha256: "277654b3034d17ac6f9f1cb5595db011b1d5d41e8806866db28e0abaa101c490" + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" url: "https://pub.dev" source: hosted - version: "1.12.2" + version: "1.12.1" state_notifier: dependency: transitive description: @@ -1547,10 +1385,10 @@ packages: dependency: transitive description: name: stream_transform - sha256: a00e5f18bffc764f923e7dec1038527f7fe7a1791361a7117f0358193f13d53a + sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871 url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.1" string_scanner: dependency: transitive description: @@ -1567,22 +1405,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.4.1" - 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: b3d516dbd3757ff2a458735e4f6cbac9ff261f576f6e87bcb17feabb39e657c5 + sha256: "61894a1956de6b4fc1aefd0892e109514a1a706cbece3ac59decd90ff5a7a423" url: "https://pub.dev" source: hosted - version: "3.5.0" + version: "3.4.1+1" term_glyph: dependency: transitive description: @@ -1591,14 +1421,30 @@ packages: 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: "2a122cbe059f8b610d3a5415f42e255b6c17b1f21eee1d960f31080237fb4f11" + sha256: "949a932224383300f01be9221c39180316445ecb8e7547f70a41a35bf421fb9e" url: "https://pub.dev" source: hosted - version: "0.7.12" + version: "0.7.11" + test_core: + dependency: transitive + description: + name: test_core + sha256: "1991d4cfe85d5043241acac92962c3977c8d2f2add1ee73130c7b286417d1d34" + url: "https://pub.dev" + source: hosted + version: "0.6.17" timeago: dependency: "direct main" description: @@ -1607,14 +1453,6 @@ packages: url: "https://pub.dev" source: hosted version: "3.7.1" - timezone: - dependency: "direct main" - description: - name: timezone - sha256: "9f4e5a1a0e4fef7dd3424842c0575db01bfb7a11730e8d55753fcd5c5c98767b" - url: "https://pub.dev" - source: hosted - version: "0.11.2" typed_data: dependency: transitive description: @@ -1623,64 +1461,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.4.0" - unicode: + universal_html: dependency: transitive description: - name: unicode - sha256: a6f7bcfc8ea1d5ce1f6c0b1c39117a9919f4953edd9fd7a64090a9796c499b57 + name: universal_html + sha256: c0bcae5c733c60f26c7dfc88b10b0fd27cbcc45cb7492311cdaa6067e21c9cd4 url: "https://pub.dev" source: hosted - version: "1.1.9" - unifiedpush: - dependency: "direct main" - description: - name: unifiedpush - sha256: "8ed9767f750a1dc6159a77e2171641d0cb825dc87682d1ce1b8618689b79f58e" - url: "https://pub.dev" - source: hosted - version: "6.2.0" - unifiedpush_android: + version: "2.3.0" + universal_io: dependency: transitive description: - name: unifiedpush_android - sha256: a902e505e91c8e28b54b379bb27f255f66df409274a97af24d6719f12f0d13dc + name: universal_io + sha256: f63cbc48103236abf48e345e07a03ce5757ea86285ed313a6a032596ed9301e2 url: "https://pub.dev" source: hosted - version: "3.5.0" - unifiedpush_linux: - dependency: "direct overridden" - description: - path: unifiedpush_linux - ref: "quad/nexus" - resolved-ref: "5b31fabcc260c2ff07c4499099ae20591e2c2cb9" - url: "https://codeberg.org/Henry-Hiles/flutter-connector" - source: git - version: "1.0.1" - unifiedpush_platform_interface: - dependency: "direct overridden" - description: - path: unifiedpush_platform_interface - ref: "quad/nexus" - resolved-ref: "5b31fabcc260c2ff07c4499099ae20591e2c2cb9" - url: "https://codeberg.org/Henry-Hiles/flutter-connector" - source: git - version: "4.0.0" - unifiedpush_storage_interface: - dependency: transitive - description: - name: unifiedpush_storage_interface - sha256: b8d423a4695efc616aa21d8ab48fb5ef99d6288c68b56282b8faac1579ceabd9 - url: "https://pub.dev" - source: hosted - version: "1.0.0" - unifiedpush_storage_shared_preferences: - dependency: "direct main" - description: - name: unifiedpush_storage_shared_preferences - sha256: eda9c52bac0058f81e0d9c65e33eedc12c5901d2e68ad47fdf68175ddf00a3b4 - url: "https://pub.dev" - source: hosted - version: "1.0.0" + version: "2.3.1" universal_platform: dependency: transitive description: @@ -1701,44 +1497,44 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: e8cc955c97e06df9879140a1fe301f3d493f01b7c62dec7f46834be31d7e9fda + sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8 url: "https://pub.dev" source: hosted - version: "6.3.3" + version: "6.3.2" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: "611e87fb320b70d1dd721dc46af89c98aceccea9b31fde49e084591414e0c610" + sha256: b413d49b73867ac08dd2f9890efd3cc11f2a0e577618d50843440a1fb3776c32 url: "https://pub.dev" source: hosted - version: "6.3.33" + version: "6.3.32" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: "8faa1aab294f1ab4040b43660c887b0418d5fa4f0cffef76a484e6aa1092eb4a" + sha256: "580fe5dfb51671ae38191d316e027f6b76272b026370708c2d898799750a02b0" url: "https://pub.dev" source: hosted - version: "6.4.2" + version: "6.4.1" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - sha256: "10f86fef4c2c43563fa6c211ff9cf757adf4d3ab762c56bd430664a947d70cd0" + sha256: d5e14138b3bc193a0f63c10a53c94b91d399df0512b1f29b94a043db7482384a url: "https://pub.dev" source: hosted - version: "3.2.3" + version: "3.2.2" url_launcher_macos: dependency: transitive description: name: url_launcher_macos - sha256: "5e835a3b869c2d70325349c81c5a45c28e20791265b67b2669da6b08c5cd5201" + sha256: "368adf46f71ad3c21b8f06614adb38346f193f3a59ba8fe9a2fd74133070ba18" url: "https://pub.dev" source: hosted - version: "3.2.6" + version: "3.2.5" url_launcher_platform_interface: - dependency: "direct dev" + dependency: transitive description: name: url_launcher_platform_interface sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" @@ -1757,10 +1553,10 @@ packages: dependency: transitive description: name: url_launcher_windows - sha256: "6c5ad3f22cd4c38e089b81963b3cd7bb83b111b2df5dce008bb066162f42e429" + sha256: "712c70ab1b99744ff066053cbe3e80c73332b38d46e5e945c98689b2e66fc15f" url: "https://pub.dev" source: hosted - version: "3.1.6" + version: "3.1.5" uuid: dependency: transitive description: @@ -1773,10 +1569,10 @@ packages: dependency: transitive description: name: vector_graphics - sha256: "82885f6ac633044e7a4e4d8d745724a67aa0dc50af5d8a81ec29379f63c29035" + sha256: "9d0e3b9cb16542ad660daee871e726a10d13a93b7b5391677c3160e8f5e83935" url: "https://pub.dev" source: hosted - version: "1.2.6" + version: "1.2.3" vector_graphics_codec: dependency: transitive description: @@ -1789,42 +1585,42 @@ packages: dependency: transitive description: name: vector_graphics_compiler - sha256: "4c9d2e7121eea8b4f160e6e435900a0ae7214cfc97c2d6cf84c25532b789b50d" + sha256: "4dca4feb77dc3ec7f6e27e49c53241eb8217f55e4f9b12599a27f8903bca5682" url: "https://pub.dev" source: hosted - version: "1.3.4" + version: "1.3.0" vector_math: dependency: transitive description: name: vector_math - sha256: fa49e1674cb84acb900141714e6c6e1f9ae099827c24d141430ff6819db4e1bc + sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b url: "https://pub.dev" source: hosted - version: "2.4.4" + version: "2.2.0" vm_service: dependency: transitive description: name: vm_service - sha256: "89b11d62e1040ee681af3b4f1c97a803ecbf010c6e8b9c5896ee5b08c3bf7b78" + sha256: "0016aef94fc66495ac78af5859181e3f3bf2026bd8eecc72b9565601e19ab360" url: "https://pub.dev" source: hosted - version: "15.4.0" + version: "15.2.0" wakelock_plus: dependency: transitive description: name: wakelock_plus - sha256: "22b3e7e937721de70e63c85e7139f4ac781dc22863b9262431a53ac030eb074b" + sha256: "7253bca0fcf40d8413ddfcf4d2a1fa0a82475e79be25a4f2c564b695c9351486" url: "https://pub.dev" source: hosted - version: "1.8.0" + version: "1.7.0" wakelock_plus_platform_interface: dependency: transitive description: name: wakelock_plus_platform_interface - sha256: "764c25504562abc8ac3406f5d175f126b276e6ba916c7c2675690b73368ca384" + sha256: "0618d1799f0b28bcf98255b4ee8313e6fc4d38589dc4ee5fe5840d57d1aff6da" url: "https://pub.dev" source: hosted - version: "1.7.0" + version: "1.6.0" watcher: dependency: transitive description: @@ -1837,10 +1633,10 @@ packages: dependency: transitive description: name: web - sha256: e119e82ac4795c7925103b7cf3768191f33941b99e7ccffbd6c645201d9f606b + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.1.1" web_socket: dependency: transitive description: @@ -1857,31 +1653,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.3" - webcrypto: - dependency: "direct overridden" - description: - path: "." - ref: HEAD - resolved-ref: "0e9924f1ff0f485af87da12e7d0f259e41f3cbc5" - url: "https://github.com/google/webcrypto.dart" - source: git - version: "0.6.2-wip" - webdriver: + webkit_inspection_protocol: dependency: transitive description: - name: webdriver - sha256: "28b82ec894fed45dd71c23ba62d1af973ed97dd59a4f5790a4d38b0b13e5657e" + name: webkit_inspection_protocol + sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572" url: "https://pub.dev" source: hosted - version: "3.2.0" - webpush_encryption: - dependency: transitive - description: - name: webpush_encryption - sha256: "5b83272b91acda6ae515fcd980c94f06bf413702282497c5a68f5dfc64fed27f" - url: "https://pub.dev" - source: hosted - version: "1.0.1" + version: "1.2.1" win32: dependency: transitive description: @@ -1894,27 +1673,10 @@ packages: dependency: "direct main" description: name: window_manager - sha256: bdd6b1a2c1ce50f3bba7ffbaa0d5dc5feb6b6a24fd20269da4de90244f77a471 + sha256: "05c231fd7b23d2380f14c5cc10b7b93d60d4fa4a2fb4e0f032de27e44b5560e9" url: "https://pub.dev" source: hosted - version: "0.6.0" - wkt_parser: - dependency: transitive - description: - name: wkt_parser - sha256: "8a555fc60de3116c00aad67891bcab20f81a958e4219cc106e3c037aa3937f13" - url: "https://pub.dev" - source: hosted - version: "2.0.0" - xdg_desktop_portal: - dependency: "direct main" - description: - path: "." - ref: "quad/nexus" - resolved-ref: "964249996e536b3c5b10c2654d1dc69044693431" - url: "https://github.com/Henry-Hiles/xdg_desktop_portal.dart" - source: git - version: "0.1.14" + version: "0.5.2" xdg_directories: dependency: "direct main" description: @@ -1935,10 +1697,10 @@ packages: dependency: transitive description: name: yaml - sha256: f67cdd8e07d3c6329146aaef1ba043542b3134c12489f553ca9a7435d1068aea + sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce url: "https://pub.dev" source: hosted - version: "3.1.4" + version: "3.1.3" yaml_edit: dependency: transitive description: @@ -1948,5 +1710,5 @@ packages: source: hosted version: "2.2.4" sdks: - dart: ">=3.13.3 <4.0.0" - flutter: ">=3.47.0" + dart: ">=3.12.2 <4.0.0" + flutter: ">=3.44.0" diff --git a/pubspec.yaml b/pubspec.yaml index cb0fef1..adf1ba1 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,50 +1,25 @@ name: nexus -description: "A simple and user-friendly Matrix client" -version: 1.1.0-alpha1 +description: "Yet another Matrix client" +version: 0.1.0 publish_to: none flutter: fonts: - - family: bundled-sans + - family: fallback-emoji fonts: - - asset: assets/fonts/Inter.ttf - - family: bundled-mono + - asset: assets/fonts/NotoColorEmoji.ttf + - family: fallback-sans fonts: - - asset: assets/fonts/AtkinsonHyperlegibleMono.ttf + - asset: assets/fonts/Roboto.ttf assets: - - assets/bundled/ + - assets/ uses-material-design: true environment: - sdk: ^3.13.3 + sdk: "^3.12.2" dependency_overrides: - dynamic_color: 2.1.0 - code_assets: 2.1.0 # webcrypto requires ^1.0.0, but works with 2.x - webcrypto: - git: - url: https://github.com/google/webcrypto.dart # Uses build hooks and fixes macOS x86_64, unreleased - native_toolchain_cmake: - git: - url: https://github.com/rainyl/native_toolchain_cmake # Fixes native aarch64 linux builds, unreleased - m3e_design: - git: - url: https://github.com/Henry-Hiles/material_3_expressive - path: packages/m3e_design - fab_m3e: - git: - url: https://github.com/Henry-Hiles/material_3_expressive - path: packages/fab_m3e - unifiedpush_linux: - git: - url: https://codeberg.org/Henry-Hiles/flutter-connector - ref: quad/nexus - path: unifiedpush_linux - unifiedpush_platform_interface: - git: - url: https://codeberg.org/Henry-Hiles/flutter-connector - ref: quad/nexus - path: unifiedpush_platform_interface + path_provider_android: 2.2.23 # Pinned to avoid JNI linkify: git: url: https://github.com/appelladev/linkify @@ -55,100 +30,69 @@ dependencies: sdk: flutter flutter_localizations: sdk: flutter - flutter_riverpod: 3.4.3 - hooks_riverpod: 3.4.3 - intl: 0.20.3 - fast_immutable_collections: 11.2.1 + flutter_riverpod: 3.3.2 + hooks_riverpod: 3.3.2 + intl: 0.20.2 + fast_immutable_collections: 11.2.0 path_provider: 2.1.6 - url_launcher: 6.3.3 + url_launcher: 6.3.2 freezed_annotation: 3.1.0 - image_picker: 1.2.4 + image_picker: ^1.2.3 path: 1.9.1 - dynamic_color: 2.1.0 + dynamic_color: 1.9.0 collection: 1.19.1 - window_manager: 0.6.0 + window_manager: 0.5.2 color_hash: 1.0.1 - flutter_widget_from_html_core: 0.18.0-beta.1 - flutter_svg: 2.3.2 + flutter_widget_from_html_core: 0.17.2 + flutter_svg: 2.3.0 json_annotation: 4.12.0 - shared_preferences: 2.5.6 - fluttertagger: - git: - url: https://github.com/Henry-Hiles/fluttertagger # Fixes the last tag search being dropped from formattedText + shared_preferences: 2.5.5 + fluttertagger: 2.3.2 + dynamic_polls: 0.0.7 flutter_hooks: 0.21.3+1 ffi: 2.2.0 - hooks: 2.2.0 - code_assets: 2.1.0 - ffigen: 23.0.0 + hooks: 2.0.2 + code_assets: 1.2.1 + ffigen: 21.0.0 timeago: 3.7.1 http: 1.6.0 + flutter_linkify: 6.0.0 linkify: 5.0.0 - html: 0.15.7 + emoji_text_field: + git: + url: https://github.com/Henry-Hiles/emoji_text_field flutter_blurhash: 0.9.1 super_sliver_list: 0.4.1 media_kit: 1.2.6 media_kit_video: 2.0.1 media_kit_libs_video: 1.0.7 measure_size: 5.0.2 - m3e_buttons: 1.0.4 - m3e_design: 0.2.1 + m3e_buttons: 0.0.5 navigation_rail_m3e: git: url: https://github.com/Henry-Hiles/material_3_expressive path: packages/navigation_rail_m3e - m3e_card_list: 1.0.0 + m3e_card_list: 0.1.0 xdg_directories: 1.1.0 - package_info_plus: 10.2.2 - app_links: 7.2.2 - file_selector: 1.1.0 - material_ui: 1.9.0 - multi_state_switch: 1.1.0 - unifiedpush: 6.2.0 - unifiedpush_storage_shared_preferences: 1.0.0 - flutter_local_notifications: 22.3.3 - timezone: 0.11.2 - material_emoji_picker: 2.0.1+1 - material_adaptive_sheets: 1.0.0 - xdg_desktop_portal: - git: - url: https://github.com/Henry-Hiles/xdg_desktop_portal.dart - ref: quad/nexus - pasteboard: 0.6.0 - flutter_file_dialog: 3.3.3 - mime: 2.1.0 - avif_native: 0.2.0 - flutter_map: 8.3.2 - latlong2: 0.10.1 - geolocator: 14.1.2 + package_info_plus: 10.2.1 + app_links: 7.2.1 + file_selector: ^1.1.0 + dev_dependencies: - flutter_test: - sdk: flutter - integration_test: - sdk: flutter - app_links_platform_interface: 2.0.4 - url_launcher_platform_interface: 2.3.2 - build_runner: 2.17.1 + build_runner: ^2.15.1 flutter_lints: 6.0.0 - freezed: 4.0.3 - riverpod_lint: 3.1.9 + freezed: 3.2.6-dev.1 + riverpod_lint: 3.1.4 flutter_launcher_icons: 0.14.4 - json_serializable: 6.15.2 + json_serializable: 6.14.1 flutter_launcher_icons: - image_path: assets/icon.png ios: true - image_path_ios: assets/mobile.png android: true + image_path: assets/icon.png adaptive_icon_background: assets/background.png adaptive_icon_foreground: assets/foreground.png adaptive_icon_monochrome: assets/monochrome.png + remove_alpha_ios: true windows: generate: true - macos: - generate: true - image_path: assets/mobile.png - -hooks: - user_defines: - avif_native: - features: decode diff --git a/scripts/generate.dart b/scripts/generate.dart index d8a8cb1..4dc7329 100644 --- a/scripts/generate.dart +++ b/scripts/generate.dart @@ -1,5 +1,4 @@ import "dart:io"; - import "package:ffigen/ffigen.dart"; import "package:path/path.dart"; import "package:nexus/helpers/extensions/get_xcode_sdk.dart"; @@ -7,23 +6,21 @@ import "package:nexus/helpers/extensions/get_xcode_sdk.dart"; void main(List args) async { final repoDir = Directory.fromUri(Platform.script.resolve("../gomuks")); - print("Generating FFI bindings..."); + print("Generating FFI Bindings..."); final libclangPath = Platform.environment["LIBCLANG_PATH"]; FfiGenerator( - output: .new( - dart: .new( - path: Platform.script.resolve("../lib/src/third_party/gomuks.g.dart"), - ), + output: Output( + dartFile: Platform.script.resolve("../lib/src/third_party/gomuks.g.dart"), ), - visitors: [.new(func: (node) => node.isIncluded = true)], - input: .new( + headers: Headers( entryPoints: [File(join(repoDir.path, "pkg", "ffi", "gomuksffi.h")).uri], compilerOptions: [ "--no-warnings", if (Platform.isMacOS) "-I${await getXCodeTool()}/usr/include", ], ), + functions: Functions.includeAll, ).generate( libclangDylib: libclangPath == null ? null @@ -40,5 +37,5 @@ void main(List args) async { ), ), ); - print("FFI bindings generated!"); + print("Done!"); } diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 8df32b4..0694802 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -9,11 +9,11 @@ #include #include #include -#include #include #include -#include +#include #include +#include void RegisterPlugins(flutter::PluginRegistry* registry) { AppLinksPluginCApiRegisterWithRegistrar( @@ -22,14 +22,14 @@ void RegisterPlugins(flutter::PluginRegistry* registry) { registry->GetRegistrarForPlugin("DynamicColorPluginCApi")); FileSelectorWindowsRegisterWithRegistrar( registry->GetRegistrarForPlugin("FileSelectorWindows")); - GeolocatorWindowsRegisterWithRegistrar( - registry->GetRegistrarForPlugin("GeolocatorWindows")); MediaKitLibsWindowsVideoPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("MediaKitLibsWindowsVideoPluginCApi")); MediaKitVideoPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("MediaKitVideoPluginCApi")); - PasteboardPluginRegisterWithRegistrar( - registry->GetRegistrarForPlugin("PasteboardPlugin")); + ScreenRetrieverWindowsPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("ScreenRetrieverWindowsPluginCApi")); UrlLauncherWindowsRegisterWithRegistrar( registry->GetRegistrarForPlugin("UrlLauncherWindows")); + WindowManagerPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("WindowManagerPlugin")); } diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 3435f5e..238ef93 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -6,16 +6,14 @@ list(APPEND FLUTTER_PLUGIN_LIST app_links dynamic_color file_selector_windows - geolocator_windows media_kit_libs_windows_video media_kit_video - pasteboard + screen_retriever_windows url_launcher_windows + window_manager ) list(APPEND FLUTTER_FFI_PLUGIN_LIST - flutter_local_notifications_windows - jni ) set(PLUGIN_BUNDLED_LIBRARIES) diff --git a/windows/installer.iss b/windows/installer.iss index 65f1ce5..22f4dcf 100644 --- a/windows/installer.iss +++ b/windows/installer.iss @@ -18,6 +18,4 @@ Name: "{commondesktop}\Nexus"; Filename: "{app}\nexus.exe" [Registry] Root: HKCU; Subkey: "Software\Classes\nexus.federated.nexus"; ValueType: string; ValueName: "URL Protocol"; ValueData: "" -Root: HKCU; Subkey: "Software\Classes\nexus.federated.nexus\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\nexus.exe"" ""%1""" -Root: HKCU; Subkey: "Software\Classes\matrix"; ValueType: string; ValueName: "URL Protocol"; ValueData: "" -Root: HKCU; Subkey: "Software\Classes\matrix\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\nexus.exe"" ""%1""" +Root: HKCU; Subkey: "Software\Classes\nexus.federated.nexus\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\nexus.exe"" ""%1""" \ No newline at end of file