diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 00000000..d1a4a0f6 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,28 @@ +FROM mcr.microsoft.com/devcontainers/base:ubuntu-20.04 + + +# ------------------------ Prepare docker environment ------------------------ # + +RUN apt-get update + +# Install general utilities +RUN apt-get -y install tree + +# Install Flutter dependencies +RUN apt-get -y install curl file git unzip xz-utils zip clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev +# Install app-specific dependencies +RUN apt-get -y install keybinder-3.0 appindicator3-0.1 libappindicator3-1 libappindicator3-dev + +# Install Flutter +RUN git clone https://github.com/flutter/flutter.git /home/vscode/flutter +RUN git config --global --add safe.directory /home/vscode/flutter +ENV PATH="$PATH:/home/vscode/flutter/bin" +RUN flutter upgrade +RUN chown -R vscode:vscode /home/vscode/flutter + +# Prepare environment for building Flatpak +RUN apt-get install -y flatpak flatpak-builder +RUN flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo +RUN flatpak install -y org.freedesktop.Sdk/x86_64/21.08 +RUN flatpak install -y org.freedesktop.Platform/x86_64/21.08 +RUN flatpak install -y flathub org.freedesktop.appstream-glib diff --git a/.devcontainer/build-flatpak-in-container.sh b/.devcontainer/build-flatpak-in-container.sh new file mode 100755 index 00000000..8958b553 --- /dev/null +++ b/.devcontainer/build-flatpak-in-container.sh @@ -0,0 +1,32 @@ +#!/bin/bash + + +# When run from the vscode dev container this will build a .flatpak of the app. + + +set -x + + +projectName=Nyrna +projectId=codes.merritt.Nyrna + +archiveName=$projectName-Linux-Portable.tar.gz + +# ----------------------------- Build Flutter app ---------------------------- # + +flutter pub get +flutter build linux + +workspace=$PWD +cd build/linux/x64/release/bundle || exit +touch PORTABLE +tar -czaf $archiveName ./* +cp -r $archiveName "$workspace"/packaging/linux/flatpak/ +cd "$workspace" || exit + +# ------------------------------- Build Flatpak ------------------------------ # + +cd packaging/linux/flatpak || exit + +flatpak-builder --force-clean build-dir $projectId.yml --repo=repo +flatpak build-bundle repo $projectId.flatpak $projectId diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000..bb374514 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,35 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +// README at: https://github.com/devcontainers/templates/tree/main/src/ubuntu +{ + "name": "Ubuntu", + + // "image": "mcr.microsoft.com/devcontainers/base:focal", + // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile + "build": { + "dockerfile": "Dockerfile" + }, + + // Features to add to the dev container. More info: https://containers.dev/features. + "features": { + "ghcr.io/rocker-org/devcontainer-features/apt-packages:1": {} + }, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + + // Use 'postCreateCommand' to run commands after the container is created. + // "postCreateCommand": "", + + // Configure tool-specific properties. + // "customizations": {}, + + // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "root" + + "privileged": true, + + "remoteEnv": { + // Add Flutter to the PATH variable. + "PATH": "${containerEnv:PATH}:/home/vscode/flutter/bin" + } +} diff --git a/.github/workflows/build-and-release.yml b/.github/workflows/build-and-release.yml index 316a9bfa..65facc3d 100644 --- a/.github/workflows/build-and-release.yml +++ b/.github/workflows/build-and-release.yml @@ -178,7 +178,7 @@ jobs: - name: Compress build for Linux if: matrix.target == 'Linux' run: | - tar czf ${{ env.project-name }}-${{ matrix.target }}-Portable.tar.gz * + tar aczf ${{ env.project-name }}-${{ matrix.target }}-Portable.tar.gz * mv *.tar.gz ${{ github.workspace }}/output/ working-directory: ${{ matrix.build_path }} diff --git a/.github/workflows/flatpak.yml b/.github/workflows/flatpak.yml new file mode 100644 index 00000000..2cf2b51f --- /dev/null +++ b/.github/workflows/flatpak.yml @@ -0,0 +1,75 @@ +# name: Publish Flatpak + +# on: +# # Enable manual run +# workflow_dispatch: +# # Build & deploy for published releases +# release: +# types: +# - published + +# # ${{ secrets.FLATHUB_TOKEN }} is a Personal Access Token to grant push access. + +# env: +# project-id: codes.merritt.bargain + +# jobs: +# update-recipe: +# name: Update Flatpak recipe files +# runs-on: ubuntu-latest +# steps: +# - name: Checkout code +# uses: actions/checkout@v2 +# with: +# path: code + +# - name: Install dependencies +# run: | +# sudo apt-get update +# sudo apt-get install -y flatpak flatpak-builder +# sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo +# sudo flatpak install -y org.freedesktop.Sdk/x86_64/21.08 +# sudo flatpak install -y org.freedesktop.Platform/x86_64/21.08 +# sudo flatpak install -y flathub org.freedesktop.appstream-glib + +# - name: Setup Dart SDK +# uses: dart-lang/setup-dart@v1.3 + +# - name: Prepare for Flatpak build & update recipe files +# working-directory: ${{ github.workspace }}/code/packaging/linux/flatpak +# run: | +# bash prepare-flatpak-build.sh + +# - name: Verify Flatpak builds successfully +# working-directory: ${{ github.workspace }}/code/packaging/linux/flatpak +# run: | +# cp ../${{ env.project-id }}.metainfo.xml . +# flatpak-builder --force-clean build-dir ${{ env.project-id }}.yml + +# - name: Checkout flathub repository +# uses: actions/checkout@v2 +# with: +# repository: flathub/${{ env.project-id }} +# path: flathub +# token: ${{ secrets.FLATHUB_TOKEN }} + +# - name: Push updated recipe to Flathub +# working-directory: ${{ github.workspace }} +# env: +# GH_TOKEN: ${{ secrets.FLATHUB_TOKEN }} +# REPO_KEY: ${{ secrets.FLATHUB_TOKEN }} +# USERNAME: merrit +# run: | +# cd ${{ github.workspace }}/flathub +# cp -r ${{ github.workspace }}/code/packaging/linux/flatpak/${{ env.project-id }}.json . +# cp -r ${{ github.workspace }}/code/packaging/linux/flatpak/${{ env.project-id }}.metainfo.xml . +# git config --local user.name "Kristen McWilliam" +# git config --local user.email "9575627+Merrit@users.noreply.github.com" +# git checkout -b flathub_update +# git add -A +# git commit -m "Update flatpak for new release" +# git push -u origin flathub_update -f +# gh pr create --fill --head flathub_update +# # Disable auto-merge because they are disallowing it (╯°□°)╯︵ ┻━┻ +# # gh pr merge --rebase --delete-branch +# # git push https://$USERNAME:$REPO_KEY@github.com/flathub/${{ env.project-id }}.git diff --git a/.gitignore b/.gitignore index a5d03ef6..4b8af6cd 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,9 @@ appimage-builder-cache packaging/linux/appimage/AppDir packaging/linux/appimage/appimage-builder-cache packaging/output/ +.flatpak-builder +build-dir +shared-modules # PKGBUILD extras packaging/PKGBUILD/.SRCINFO diff --git a/assets/icon/icon.svg b/assets/icon/icon.svg new file mode 100644 index 00000000..a68664bd --- /dev/null +++ b/assets/icon/icon.svg @@ -0,0 +1,21 @@ + + + + + + + + + diff --git a/lib/native_platform/src/linux/flatpak.dart b/lib/native_platform/src/linux/flatpak.dart new file mode 100644 index 00000000..21cf352d --- /dev/null +++ b/lib/native_platform/src/linux/flatpak.dart @@ -0,0 +1,24 @@ +import 'dart:io'; + +import '../typedefs.dart'; + +/// Run commands from within a Flatpak environment, directly on the host. +RunFunction flatpakRun = (String executable, List args) async { + return await Process.run( + 'flatpak-spawn', + ['--host', executable, ...args], + ); +}; + +/// When in Flatpak using the built-in Process.killPid will try to act on the +/// dummy pids it sees inside the container, so we use the host run instead. +KillFunction flatpakKill = ( + int pid, [ + ProcessSignal signal = ProcessSignal.sigcont, +]) { + flatpakRun('kill', ['-${signal.toString()}', '$pid']); + return true; +}; + +/// True if the application is running inside a Flatpak container. +final bool runningInFlatpak = Platform.environment.containsKey('FLATPAK_ID'); diff --git a/lib/native_platform/src/native_platform.dart b/lib/native_platform/src/native_platform.dart index 91dad26a..cc90343d 100644 --- a/lib/native_platform/src/native_platform.dart +++ b/lib/native_platform/src/native_platform.dart @@ -1,5 +1,6 @@ import 'dart:io' as io; +import 'linux/flatpak.dart'; import 'linux/linux.dart'; import 'win32/win32.dart'; import 'window.dart'; @@ -12,7 +13,8 @@ abstract class NativePlatform { // Return correct subtype depending on the current operating system. factory NativePlatform() { if (io.Platform.isLinux) { - return Linux(io.Process.run); + final runFunction = (runningInFlatpak) ? flatpakRun : io.Process.run; + return Linux(runFunction); } else { return Win32(); } diff --git a/lib/native_platform/src/process/repository/process_repository.dart b/lib/native_platform/src/process/repository/process_repository.dart index c8a52304..488eae37 100644 --- a/lib/native_platform/src/process/repository/process_repository.dart +++ b/lib/native_platform/src/process/repository/process_repository.dart @@ -1,5 +1,6 @@ import 'dart:io' as io; +import '../../linux/flatpak.dart'; import '../models/process.dart'; import 'src/linux_process_repository.dart'; import 'src/win32_process_repository.dart'; @@ -13,7 +14,11 @@ abstract class ProcessRepository { static ProcessRepository init() { if (io.Platform.isLinux) { - return const LinuxProcessRepository(io.Process.killPid, io.Process.run); + final runFunction = (runningInFlatpak) ? flatpakRun : io.Process.run; + final killFunction = (runningInFlatpak) // + ? flatpakKill + : io.Process.killPid; + return LinuxProcessRepository(killFunction, runFunction); } else { return const Win32ProcessRepository(io.Process.run); } diff --git a/packaging/linux/codes.merritt.Nyrna.desktop b/packaging/linux/codes.merritt.Nyrna.desktop new file mode 100644 index 00000000..b0f078cb --- /dev/null +++ b/packaging/linux/codes.merritt.Nyrna.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Type=Application +Name=Nyrna +Comment=Suspend games and applications +Exec=nyrna +Icon=codes.merritt.Nyrna +Terminal=false +StartupNotify=false +Categories=Utility; +StartupWMClass=Nyrna diff --git a/packaging/linux/codes.merritt.Nyrna.metainfo.xml b/packaging/linux/codes.merritt.Nyrna.metainfo.xml new file mode 100644 index 00000000..58e45ded --- /dev/null +++ b/packaging/linux/codes.merritt.Nyrna.metainfo.xml @@ -0,0 +1,72 @@ + + + + codes.merritt.Nyrna + Nyrna + Easily compare items when shopping + Merritt Codes + https://merritt.codes/bargain/ + https://merritt.codes/support/ + MIT + GPL-3.0-or-later + + pointing + keyboard + touch + + +

Save money: Unit Bargain Hunter helps you figure out and keep track of the best value for products.

+

Is that family-sized pack really a better value?

+

If a brand-name item is $14.99 for 500g and the no-name item beside it is $13.99 for 20 oz, which is the better deal?

+

Unit Bargain Hunter makes it easy to compare any number of items to find exactly how they stack up against each other.

+
    +
  • Compare unlimited items
  • +
  • Compare by weight, volume, or number of items
  • +
  • Saves your information between sessions
  • +
  • Available cross-platform: Linux, Windows, Web, Android
  • +
  • Open source
  • +
+
+ nyrna.desktop + + + + https://raw.githubusercontent.com/Merrit/unit_bargain_hunter/main/assets/images/promo/promo.png + + + https://raw.githubusercontent.com/Merrit/unit_bargain_hunter/main/assets/images/screenshots/linux-dark1.png + + + https://raw.githubusercontent.com/Merrit/unit_bargain_hunter/main/assets/images/screenshots/linux-dark2.png + + + https://raw.githubusercontent.com/Merrit/unit_bargain_hunter/main/assets/images/screenshots/linux-light1.png + + + https://raw.githubusercontent.com/Merrit/unit_bargain_hunter/main/assets/images/screenshots/linux-light2.png + + + + + + +

## What's Changed

+

### New Features 🎉

+

* Minimizing/restoring the window automatically is now an option

+

* Setting in the GUI

+

* CLI flag to override settings: `--no-minimize`

+

### Fixes ✨

+

* Several misc changes that should improve performance

+

* Fix "sticky" windows on Linux not showing up

+

### Code Cleanup 🪥

+

* Large amounts of code cleanup

+

* Will improve reliability and confidence when making changes and doing maintenance

+

* Large ongoing refactoring

+

* Many added unit tests

+
+
+
+
\ No newline at end of file diff --git a/packaging/linux/flatpak/README.md b/packaging/linux/flatpak/README.md new file mode 100644 index 00000000..92f0424c --- /dev/null +++ b/packaging/linux/flatpak/README.md @@ -0,0 +1,7 @@ +`prepare-flatpak-build.sh` will update the values in the yml and xml recipe +files for the latest published release. + +`build-flatpak.sh` will use flatpak-builder to construct the flatpak if invoked +manually, however it is intended to be run by the Flathub bot when these updated +files are pushed to the repo at +https://github.com/flathub/codes.merritt.Nyrna diff --git a/packaging/linux/flatpak/build-flatpak.sh b/packaging/linux/flatpak/build-flatpak.sh new file mode 100755 index 00000000..3b28bb39 --- /dev/null +++ b/packaging/linux/flatpak/build-flatpak.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +# No spaces in project name. +projectName=Nyrna +projectId=codes.merritt.Nyrna +executableName=nyrna + +# This script is triggered by the Flatpak manifest. +# It can also be run manually: flatpak-builder build-dir $projectId.yml + +# Exit if any command fails +set -e + +# Echo all commands for debug purposes +set -x + +# Grab Flatpak build files. +cp -r packaging/linux/$projectId.desktop . +cp -r assets/icon/icon.svg . + +# Extract portable Flutter build. +mkdir -p $projectName +tar -xf $projectName-Linux-Portable.tar.gz -C $projectName +# rm $projectName/PORTABLE + +# Copy the portable app to the Flatpak-based location. +cp -r $projectName /app/ +chmod +x /app/$projectName/$executableName +mkdir -p /app/bin +ln -s /app/$projectName/$executableName /app/bin/$executableName + +# Install the icon. +iconDir=/app/share/icons/hicolor/scalable/apps +mkdir -p $iconDir +cp -r icon.svg $iconDir/$projectId.svg + +# Install the desktop file. +desktopFileDir=/app/share/applications +mkdir -p $desktopFileDir +cp -r $projectId.desktop $desktopFileDir/ + +# Install the AppStream metadata file. +metadataDir=/app/share/metainfo +mkdir -p $metadataDir +cp -r $projectId.metainfo.xml $metadataDir/ diff --git a/packaging/linux/flatpak/codes.merritt.Nyrna.metainfo.xml b/packaging/linux/flatpak/codes.merritt.Nyrna.metainfo.xml new file mode 100644 index 00000000..5bfab0cf --- /dev/null +++ b/packaging/linux/flatpak/codes.merritt.Nyrna.metainfo.xml @@ -0,0 +1,57 @@ + + + + codes.merritt.Nyrna + Nyrna + Suspend games and applications + Merritt Codes + https://nyrna.merritt.codes/ + https://merritt.codes/support/ + MIT + GPL-3.0-or-later + + pointing + keyboard + touch + + +

+ Similar to the incredibly useful sleep/suspend function found in consoles like the Nintendo + Switch and Sony PlayStation; suspend your game (and its resource usage) at any time, and + resume whenever you wish - at the push of a button. +

+

+ Nyrna can be used to suspend normal, non-game applications as well. For example: +

+
    +
  • 3D renders
  • +
  • video encoding
  • +
  • software compilation
  • +
+

+ The CPU and GPU resources are being used by said task - maybe for hours - when you would like + to use the system for something else. With Nyrna you can suspend that program, freeing up the + resources (excluding RAM) until the process is resumed, without losing where you were - like + the middle of a long job, or a gaming session between save points. +

+
+ codes.merritt.Nyrna.desktop + + + https://github.com/Merrit/nyrna/raw/main/assets/images/promo/promo.jpg + + + https://nyrna.merritt.codes/assets/images/nyrna-window.png + + + + + + + + + +
\ No newline at end of file diff --git a/packaging/linux/flatpak/codes.merritt.Nyrna.yaml b/packaging/linux/flatpak/codes.merritt.Nyrna.yaml deleted file mode 100644 index f9bd58e8..00000000 --- a/packaging/linux/flatpak/codes.merritt.Nyrna.yaml +++ /dev/null @@ -1,41 +0,0 @@ -# In progress, not yet working - -app-id: codes.merritt.Nyrna -runtime: org.freedesktop.Platform -runtime-version: '20.08.0' -sdk: org.freedesktop.Sdk -command: nyrna -rename-icon: nyrna -rename-desktop-file: nyrna -finish-args: - # X11 + XShm access - - --share=ipc - - --socket=x11 - # Needs to talk to the network: - - --share=network - # Needs to save files locally - #- --filesystem=xdg-documents - #- --metadata=X-DConf=migrate-path=/org/gnome/dictionary/ -modules: - - name: icons - buildsystem: simple - build-commands: - - install -Dm644 nyrna.png /app/share/icons/hicolor/256x256/apps/nyrna.png - sources: - - type: file - path: assets/icons/nyrna.png - - name: desktop-file - buildsystem: simple - build-commands: - - install -Dm644 nyrna.desktop /app/share/applications/nyrna.desktop - sources: - - type: file - path: packaging/linux/nyrna.desktop - - name: nyrna - buildsystem: simple - sources: - - type: archive - url: https://download.gnome.org/sources/gnome-dictionary/3.26/gnome-dictionary-3.26.1.tar.xz - sha256: 16b8bc248dcf68987826d5e39234b1bb7fd24a2607fcdbf4258fde88f012f300 - - type: patch - path: appdata_oars.patch diff --git a/packaging/linux/flatpak/codes.merritt.Nyrna.yml b/packaging/linux/flatpak/codes.merritt.Nyrna.yml new file mode 100644 index 00000000..03a75996 --- /dev/null +++ b/packaging/linux/flatpak/codes.merritt.Nyrna.yml @@ -0,0 +1,44 @@ +--- +app-id: codes.merritt.Nyrna +runtime: org.freedesktop.Platform +runtime-version: '21.08' +sdk: org.freedesktop.Sdk +command: nyrna +separate-locales: false +finish-args: +- --share=ipc +- --socket=fallback-x11 +- --socket=wayland +- --device=dri +- --socket=pulseaudio +- --share=network +- --talk-name=org.freedesktop.Flatpak # Access host processes +modules: +# Nyrna +- name: nyrna + buildsystem: simple + only-arches: + - x86_64 + build-commands: + - cp -r packaging/linux/flatpak/build-flatpak.sh . + - "./build-flatpak.sh" + sources: + - type: file + url: https://github.com/Merrit/nyrna/releases/download/v2.8.0/Nyrna-Linux-Portable.tar.gz + sha256: 301fe2227d93f45e2e9ca623cfe6d871d90f80c0487a8a3f198e438d9e102907 + - type: git + url: https://github.com/Merrit/nyrna.git + tag: v2.8.0 + - type: file + path: codes.merritt.Nyrna.metainfo.xml +- name: keybinder3 + buildsystem: autotools + only-arches: + - x86_64 + post-install: install -Dm644 COPYING /app/share/licenses/keybinder-3/COPYING + sources: + - type: archive + url: https://github.com/kupferlauncher/keybinder/releases/download/keybinder-3.0-v0.3.2/keybinder-3.0-0.3.2.tar.gz + sha256: e6e3de4e1f3b201814a956ab8f16dfc8a262db1937ff1eee4d855365398c6020 +# libappindicator +- shared-modules/libappindicator/libappindicator-gtk3-12.10.json diff --git a/packaging/linux/flatpak/prepare-flatpak-build.sh b/packaging/linux/flatpak/prepare-flatpak-build.sh new file mode 100755 index 00000000..8b8bf552 --- /dev/null +++ b/packaging/linux/flatpak/prepare-flatpak-build.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# Expand variables and echo all commands +set -x + +# ---------------------------------------------------------------------------- # +# Prepare the environment for a Flatpak build # +# ---------------------------------------------------------------------------- # + +projectId=codes.merritt.Nyrna +# repository=nyrna +# githubUsername=merrit + +# Get shared modules +gh repo clone flathub/shared-modules + +# Automatic recipe update disabled because the updater cannot currently handle a +# yaml manifest or Flatpak submodules. Will revisit feasability. + +# Update AppStream metadata and Flathub manifest files. +# dart pub global activate --source path /home/merritt/Development/linux_packaging_updater +# updater --projectId $projectId --repository $repository --user $githubUsername --verbose +# dart pub global activate --source git https://github.com/Merrit/linux_packaging_updater.git +# updater $projectId $repository $githubUsername + +# Verify AppStream metadata file for Flathub. +flatpak run org.freedesktop.appstream-glib validate $projectId.metainfo.xml diff --git a/packaging/win32/update_windows_version_info/pubspec.lock b/packaging/win32/update_windows_version_info/pubspec.lock index d656528d..822a87fd 100644 --- a/packaging/win32/update_windows_version_info/pubspec.lock +++ b/packaging/win32/update_windows_version_info/pubspec.lock @@ -7,105 +7,98 @@ packages: name: _fe_analyzer_shared url: "https://pub.dartlang.org" source: hosted - version: "38.0.0" + version: "51.0.0" analyzer: dependency: transitive description: name: analyzer url: "https://pub.dartlang.org" source: hosted - version: "3.4.1" + version: "5.3.1" args: dependency: transitive description: name: args url: "https://pub.dartlang.org" source: hosted - version: "2.3.0" + version: "2.3.1" async: dependency: transitive description: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.8.2" + version: "2.10.0" boolean_selector: dependency: transitive description: name: boolean_selector url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" - charcode: - dependency: transitive - description: - name: charcode - url: "https://pub.dartlang.org" - source: hosted - version: "1.3.1" + version: "2.1.1" collection: dependency: transitive description: name: collection url: "https://pub.dartlang.org" source: hosted - version: "1.16.0" + version: "1.17.0" convert: dependency: transitive description: name: convert url: "https://pub.dartlang.org" source: hosted - version: "3.0.1" + version: "3.1.1" coverage: dependency: transitive description: name: coverage url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.6.1" crypto: dependency: transitive description: name: crypto url: "https://pub.dartlang.org" source: hosted - version: "3.0.1" + version: "3.0.2" file: dependency: transitive description: name: file url: "https://pub.dartlang.org" source: hosted - version: "6.1.2" + version: "6.1.4" frontend_server_client: dependency: transitive description: name: frontend_server_client url: "https://pub.dartlang.org" source: hosted - version: "2.1.2" + version: "3.2.0" glob: dependency: transitive description: name: glob url: "https://pub.dartlang.org" source: hosted - version: "2.0.2" + version: "2.1.1" http_multi_server: dependency: transitive description: name: http_multi_server url: "https://pub.dartlang.org" source: hosted - version: "3.2.0" + version: "3.2.1" http_parser: dependency: transitive description: name: http_parser url: "https://pub.dartlang.org" source: hosted - version: "4.0.0" + version: "4.0.2" io: dependency: transitive description: @@ -119,7 +112,7 @@ packages: name: js url: "https://pub.dartlang.org" source: hosted - version: "0.6.4" + version: "0.6.5" lints: dependency: "direct dev" description: @@ -133,28 +126,28 @@ packages: name: logging url: "https://pub.dartlang.org" source: hosted - version: "1.0.2" + version: "1.1.0" matcher: dependency: transitive description: name: matcher url: "https://pub.dartlang.org" source: hosted - version: "0.12.11" + version: "0.12.14" meta: dependency: transitive description: name: meta url: "https://pub.dartlang.org" source: hosted - version: "1.7.0" + version: "1.8.0" mime: dependency: transitive description: name: mime url: "https://pub.dartlang.org" source: hosted - version: "1.0.1" + version: "1.0.3" node_preamble: dependency: transitive description: @@ -168,167 +161,167 @@ packages: name: package_config url: "https://pub.dartlang.org" source: hosted - version: "2.0.2" + version: "2.1.0" path: dependency: transitive description: name: path url: "https://pub.dartlang.org" source: hosted - version: "1.8.1" + version: "1.8.3" pool: dependency: transitive description: name: pool url: "https://pub.dartlang.org" source: hosted - version: "1.5.0" + version: "1.5.1" pub_semver: dependency: "direct main" description: name: pub_semver url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" + version: "2.1.3" shelf: dependency: transitive description: name: shelf url: "https://pub.dartlang.org" source: hosted - version: "1.3.0" + version: "1.4.0" shelf_packages_handler: dependency: transitive description: name: shelf_packages_handler url: "https://pub.dartlang.org" source: hosted - version: "3.0.0" + version: "3.0.1" shelf_static: dependency: transitive description: name: shelf_static url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.1.1" shelf_web_socket: dependency: transitive description: name: shelf_web_socket url: "https://pub.dartlang.org" source: hosted - version: "1.0.1" + version: "1.0.3" source_map_stack_trace: dependency: transitive description: name: source_map_stack_trace url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.1.1" source_maps: dependency: transitive description: name: source_maps url: "https://pub.dartlang.org" source: hosted - version: "0.10.10" + version: "0.10.11" source_span: dependency: transitive description: name: source_span url: "https://pub.dartlang.org" source: hosted - version: "1.8.2" + version: "1.9.1" stack_trace: dependency: transitive description: name: stack_trace url: "https://pub.dartlang.org" source: hosted - version: "1.10.0" + version: "1.11.0" stream_channel: dependency: transitive description: name: stream_channel url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.1.1" string_scanner: dependency: transitive description: name: string_scanner url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.2.0" term_glyph: dependency: transitive description: name: term_glyph url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.2.1" test: dependency: "direct dev" description: name: test url: "https://pub.dartlang.org" source: hosted - version: "1.20.2" + version: "1.22.1" test_api: dependency: transitive description: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.4.9" + version: "0.4.17" test_core: dependency: transitive description: name: test_core url: "https://pub.dartlang.org" source: hosted - version: "0.4.11" + version: "0.4.21" typed_data: dependency: transitive description: name: typed_data url: "https://pub.dartlang.org" source: hosted - version: "1.3.0" + version: "1.3.1" vm_service: dependency: transitive description: name: vm_service url: "https://pub.dartlang.org" source: hosted - version: "8.2.2" + version: "9.4.0" watcher: dependency: transitive description: name: watcher url: "https://pub.dartlang.org" source: hosted - version: "1.0.1" + version: "1.0.2" web_socket_channel: dependency: transitive description: name: web_socket_channel url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.2.0" webkit_inspection_protocol: dependency: transitive description: name: webkit_inspection_protocol url: "https://pub.dartlang.org" source: hosted - version: "1.0.0" + version: "1.2.0" yaml: dependency: "direct main" description: name: yaml url: "https://pub.dartlang.org" source: hosted - version: "3.1.0" + version: "3.1.1" sdks: - dart: ">=2.17.0-182.1.beta <3.0.0" + dart: ">=2.18.0 <3.0.0" diff --git a/pubspec.lock b/pubspec.lock index 1015a767..4256968d 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -7,14 +7,14 @@ packages: name: _fe_analyzer_shared url: "https://pub.dartlang.org" source: hosted - version: "36.0.0" + version: "47.0.0" analyzer: dependency: transitive description: name: analyzer url: "https://pub.dartlang.org" source: hosted - version: "3.3.1" + version: "4.7.0" archive: dependency: transitive description: @@ -28,7 +28,7 @@ packages: name: args url: "https://pub.dartlang.org" source: hosted - version: "2.3.0" + version: "2.3.1" async: dependency: transitive description: @@ -42,7 +42,7 @@ packages: name: bloc url: "https://pub.dartlang.org" source: hosted - version: "8.0.3" + version: "8.1.0" boolean_selector: dependency: transitive description: @@ -57,13 +57,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.2.1" - charcode: - dependency: transitive - description: - name: charcode - url: "https://pub.dartlang.org" - source: hosted - version: "1.3.1" clock: dependency: transitive description: @@ -84,7 +77,7 @@ packages: name: convert url: "https://pub.dartlang.org" source: hosted - version: "3.0.1" + version: "3.1.1" coverage: dependency: transitive description: @@ -121,7 +114,7 @@ packages: name: equatable url: "https://pub.dartlang.org" source: hosted - version: "2.0.3" + version: "2.0.5" fake_async: dependency: transitive description: @@ -154,7 +147,7 @@ packages: name: flutter_bloc url: "https://pub.dartlang.org" source: hosted - version: "8.0.1" + version: "8.1.1" flutter_driver: dependency: transitive description: flutter @@ -173,7 +166,7 @@ packages: name: flutter_markdown url: "https://pub.dartlang.org" source: hosted - version: "0.6.9+1" + version: "0.6.13" flutter_svg: dependency: transitive description: @@ -204,7 +197,7 @@ packages: name: frontend_server_client url: "https://pub.dartlang.org" source: hosted - version: "2.1.2" + version: "2.1.3" fuchsia_remote_debug_protocol: dependency: transitive description: flutter @@ -216,7 +209,7 @@ packages: name: glob url: "https://pub.dartlang.org" source: hosted - version: "2.0.2" + version: "2.1.0" gsettings: dependency: transitive description: @@ -239,7 +232,7 @@ packages: name: hive url: "https://pub.dartlang.org" source: hosted - version: "2.0.6" + version: "2.2.3" hive_flutter: dependency: "direct main" description: @@ -260,21 +253,21 @@ packages: name: http url: "https://pub.dartlang.org" source: hosted - version: "0.13.4" + version: "0.13.5" http_multi_server: dependency: transitive description: name: http_multi_server url: "https://pub.dartlang.org" source: hosted - version: "3.2.0" + version: "3.2.1" http_parser: dependency: transitive description: name: http_parser url: "https://pub.dartlang.org" source: hosted - version: "4.0.0" + version: "4.0.2" image: dependency: "direct main" description: @@ -335,14 +328,14 @@ packages: name: logging url: "https://pub.dartlang.org" source: hosted - version: "1.0.2" + version: "1.1.0" markdown: dependency: transitive description: name: markdown url: "https://pub.dartlang.org" source: hosted - version: "4.0.1" + version: "6.0.1" matcher: dependency: transitive description: @@ -377,7 +370,7 @@ packages: name: mime url: "https://pub.dartlang.org" source: hosted - version: "1.0.1" + version: "1.0.3" mocktail: dependency: "direct dev" description: @@ -405,7 +398,7 @@ packages: name: package_config url: "https://pub.dartlang.org" source: hosted - version: "2.0.2" + version: "2.1.0" package_info_plus: dependency: "direct main" description: @@ -440,14 +433,14 @@ packages: name: package_info_plus_web url: "https://pub.dartlang.org" source: hosted - version: "1.0.5" + version: "1.0.6" package_info_plus_windows: dependency: transitive description: name: package_info_plus_windows url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.1.0" path: dependency: transitive description: @@ -482,14 +475,14 @@ packages: name: path_provider_android url: "https://pub.dartlang.org" source: hosted - version: "2.0.12" + version: "2.0.22" path_provider_ios: dependency: transitive description: name: path_provider_ios url: "https://pub.dartlang.org" source: hosted - version: "2.0.8" + version: "2.0.11" path_provider_linux: dependency: transitive description: @@ -503,21 +496,21 @@ packages: name: path_provider_macos url: "https://pub.dartlang.org" source: hosted - version: "2.0.5" + version: "2.0.6" path_provider_platform_interface: dependency: transitive description: name: path_provider_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "2.0.3" + version: "2.0.5" path_provider_windows: dependency: transitive description: name: path_provider_windows url: "https://pub.dartlang.org" source: hosted - version: "2.1.2" + version: "2.1.3" petitparser: dependency: transitive description: @@ -538,14 +531,14 @@ packages: name: plugin_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "2.1.2" + version: "2.1.3" pool: dependency: transitive description: name: pool url: "https://pub.dartlang.org" source: hosted - version: "1.5.0" + version: "1.5.1" popover_gtk: dependency: transitive description: @@ -566,105 +559,105 @@ packages: name: provider url: "https://pub.dartlang.org" source: hosted - version: "6.0.2" + version: "6.0.5" pub_semver: dependency: "direct main" description: name: pub_semver url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" + version: "2.1.3" screen_retriever: dependency: transitive description: name: screen_retriever url: "https://pub.dartlang.org" source: hosted - version: "0.1.2" + version: "0.1.4" shared_preferences: dependency: "direct main" description: name: shared_preferences url: "https://pub.dartlang.org" source: hosted - version: "2.0.13" + version: "2.0.15" shared_preferences_android: dependency: transitive description: name: shared_preferences_android url: "https://pub.dartlang.org" source: hosted - version: "2.0.11" + version: "2.0.14" shared_preferences_ios: dependency: transitive description: name: shared_preferences_ios url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.1.1" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.1.2" shared_preferences_macos: dependency: transitive description: name: shared_preferences_macos url: "https://pub.dartlang.org" source: hosted - version: "2.0.3" + version: "2.0.4" shared_preferences_platform_interface: dependency: transitive description: name: shared_preferences_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.1.0" shared_preferences_web: dependency: transitive description: name: shared_preferences_web url: "https://pub.dartlang.org" source: hosted - version: "2.0.3" + version: "2.0.4" shared_preferences_windows: dependency: transitive description: name: shared_preferences_windows url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.1.2" shelf: dependency: transitive description: name: shelf url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.4.0" shelf_packages_handler: dependency: transitive description: name: shelf_packages_handler url: "https://pub.dartlang.org" source: hosted - version: "3.0.0" + version: "3.0.1" shelf_static: dependency: transitive description: name: shelf_static url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.1.1" shelf_web_socket: dependency: transitive description: name: shelf_web_socket url: "https://pub.dartlang.org" source: hosted - version: "1.0.1" + version: "1.0.3" shortid: dependency: transitive description: @@ -683,14 +676,14 @@ packages: name: source_map_stack_trace url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.1.1" source_maps: dependency: transitive description: name: source_maps url: "https://pub.dartlang.org" source: hosted - version: "0.10.10" + version: "0.10.11" source_span: dependency: transitive description: @@ -760,7 +753,7 @@ packages: name: tray_manager url: "https://pub.dartlang.org" source: hosted - version: "0.1.8" + version: "0.1.9" typed_data: dependency: transitive description: @@ -781,28 +774,28 @@ packages: name: url_launcher_android url: "https://pub.dartlang.org" source: hosted - version: "6.0.15" + version: "6.0.22" url_launcher_ios: dependency: transitive description: name: url_launcher_ios url: "https://pub.dartlang.org" source: hosted - version: "6.0.15" + version: "6.0.17" url_launcher_linux: dependency: transitive description: name: url_launcher_linux url: "https://pub.dartlang.org" source: hosted - version: "3.0.0" + version: "3.0.1" url_launcher_macos: dependency: transitive description: name: url_launcher_macos url: "https://pub.dartlang.org" source: hosted - version: "3.0.0" + version: "3.0.1" url_launcher_platform_interface: dependency: transitive description: @@ -816,21 +809,21 @@ packages: name: url_launcher_web url: "https://pub.dartlang.org" source: hosted - version: "2.0.9" + version: "2.0.13" url_launcher_windows: dependency: transitive description: name: url_launcher_windows url: "https://pub.dartlang.org" source: hosted - version: "3.0.0" + version: "3.0.1" uuid: dependency: transitive description: name: uuid url: "https://pub.dartlang.org" source: hosted - version: "3.0.6" + version: "3.0.7" vector_math: dependency: transitive description: @@ -851,14 +844,14 @@ packages: name: watcher url: "https://pub.dartlang.org" source: hosted - version: "1.0.1" + version: "1.0.2" web_socket_channel: dependency: transitive description: name: web_socket_channel url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.2.0" webdriver: dependency: transitive description: @@ -872,7 +865,7 @@ packages: name: webkit_inspection_protocol url: "https://pub.dartlang.org" source: hosted - version: "1.0.0" + version: "1.2.0" win32: dependency: "direct main" description: @@ -893,7 +886,7 @@ packages: name: window_manager url: "https://pub.dartlang.org" source: hosted - version: "0.2.5" + version: "0.2.8" window_size: dependency: "direct main" description: @@ -909,7 +902,7 @@ packages: name: xdg_directories url: "https://pub.dartlang.org" source: hosted - version: "0.2.0+1" + version: "0.2.0+2" xml: dependency: transitive description: @@ -923,7 +916,7 @@ packages: name: yaml url: "https://pub.dartlang.org" source: hosted - version: "3.1.0" + version: "3.1.1" sdks: dart: ">=2.18.0 <3.0.0" flutter: ">=3.0.0"