diff --git a/.envrc b/.envrc deleted file mode 100644 index 3550a30..0000000 --- a/.envrc +++ /dev/null @@ -1 +0,0 @@ -use flake diff --git a/.forgejo/workflows/deploy-dev.yml b/.forgejo/workflows/deploy-dev.yml index 4d321a7..36c5efe 100644 --- a/.forgejo/workflows/deploy-dev.yml +++ b/.forgejo/workflows/deploy-dev.yml @@ -5,110 +5,74 @@ on: paths-ignore: - flake.nix -env: - NIX_CONFIG: experimental-features = nix-command flakes - jobs: build-web: - runs-on: nixos + runs-on: docker steps: - - name: Install node - run: nix profile add nixpkgs#nodejs_24 - - name: Check out repo uses: https://data.forgejo.org/actions/checkout@v4 + - name: Install Packages + run: apt-get update && apt-get install -y sudo curl jq fakeroot dpkg rpm + + - name: Install Nix + uses: https://github.com/cachix/install-nix-action@v30 + + - name: Install Bun + uses: oven-sh/setup-bun@v2 + - name: Install dependencies - run: nix develop .#electron --command bun install --frozen-lockfile + run: bun install --frozen-lockfile - name: Copy licenses - run: nix develop .#electron --command bun --bun run copy-licenses + run: bun run copy-licenses - name: Build packages - run: nix develop .#electron --command bun --bun run build:packages + run: bun run build:packages - name: Build web - run: nix develop .#electron --command bun --bun run build:web + run: bun run build:web + + - name: Install rsync + run: apt-get update && apt-get install -y rsync - name: Deploy - run: nix develop .#electron --command rsync -a --delete apps/web/dist/ /var/lib/www/tensamin-web-dev/ + run: rsync -a --delete apps/web/dist/ /var/lib/www/tensamin-web-dev/ build-mobile: - runs-on: nixos + runs-on: docker steps: - - name: Install node - run: nix profile add nixpkgs#nodejs_24 - - name: Check out repo uses: https://data.forgejo.org/actions/checkout@v4 + - name: Install Packages + run: apt-get update && apt-get install -y sudo curl jq fakeroot dpkg rpm + + - name: Install Nix + uses: https://github.com/cachix/install-nix-action@v30 + + - name: Install Bun + uses: oven-sh/setup-bun@v2 + - name: Install dependencies - run: nix develop .#tauri --command bun install --frozen-lockfile + run: bun install --frozen-lockfile - name: Copy licenses - run: nix develop .#tauri --command bun --bun run copy-licenses + run: bun run copy-licenses - name: Build packages - run: nix develop .#tauri --command bun --bun run build:packages + run: bun run build:packages - name: Setup Android Keystore env: KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }} KEYSTORE_PROPERTIES: ${{ secrets.ANDROID_KEYSTORE_PROPERTIES }} run: | - nix profile add nixpkgs#gnused - - set -euo pipefail - - if [ -z "$KEYSTORE_BASE64" ]; then - echo "ANDROID_KEYSTORE_BASE64 secret is missing or empty" - exit 1 - fi - - if [ -z "$KEYSTORE_PROPERTIES" ]; then - echo "ANDROID_KEYSTORE_PROPERTIES secret is missing or empty" - exit 1 - fi - - printf '%s' "$KEYSTORE_BASE64" \ - | tr -d '[:space:]' \ - | base64 -d > keystore.jks - - printf '%s' "$KEYSTORE_PROPERTIES" \ - | sed 's/\\n/\n/g' \ - | tr -d '\r' \ - | sed 's|^[[:space:]]*storeFile[[:space:]]*=.*|storeFile=keystore.jks|' \ - > keystore.properties - - grep -q '^[[:space:]]*storeFile[[:space:]]*=' keystore.properties || printf '\nstoreFile=keystore.jks\n' >> keystore.properties - - if [ ! -s keystore.jks ]; then - echo "Decoded keystore.jks is missing or empty" - exit 1 - fi - - if [ ! -s keystore.properties ]; then - echo "Generated keystore.properties is missing or empty" - exit 1 - fi - - if ! grep -q '^[[:space:]]*keyAlias[[:space:]]*=' keystore.properties; then - echo "keystore.properties is missing keyAlias" - exit 1 - fi - - if ! grep -Eq '^[[:space:]]*(keyPassword|password)[[:space:]]*=' keystore.properties; then - echo "keystore.properties is missing keyPassword or password" - exit 1 - fi - - if ! grep -Eq '^[[:space:]]*(storePassword|password)[[:space:]]*=' keystore.properties; then - echo "keystore.properties is missing storePassword or password" - exit 1 - fi + bun -e "require('fs').writeFileSync('keystore.jks', Buffer.from(process.env.KEYSTORE_BASE64.replace(/\s+/g, ''), 'base64'))" + bun -e "const content = process.env.KEYSTORE_PROPERTIES.replace(/\\n/g, '\n').replace(/\r/g, '').split('\n').map(l => l.trim()).filter(l => l).join('\n'); require('fs').writeFileSync('keystore.properties', content)" - name: Build mobile - run: nix develop .#tauri --command bun --bun run build:mobile + run: bun run build:mobile - name: Upload mobile artifact uses: https://data.forgejo.org/actions/upload-artifact@v3 @@ -117,30 +81,31 @@ jobs: path: apps/tauri/src-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release.apk build-desktop: - runs-on: nixos + runs-on: docker strategy: matrix: target: [linux] steps: - - name: Install node - run: nix profile add nixpkgs#nodejs_24 - - name: Check out repo uses: https://data.forgejo.org/actions/checkout@v4 + - name: Install Packages + run: apt-get update && apt-get install -y sudo curl jq fakeroot dpkg rpm xz-utils + + - name: Install Bun + uses: oven-sh/setup-bun@v2 + - name: Install dependencies - run: nix develop .#electron --command bun install --frozen-lockfile + run: bun install --frozen-lockfile - name: Copy licenses - run: nix develop .#electron --command bun --bun run copy-licenses + run: bun run copy-licenses - name: Build packages - run: nix develop .#electron --command bun --bun run build:packages + run: bun run build:packages - name: Set Electron dev version run: | - nix develop .#electron --command bash <<'EOF' - set -euo pipefail VERSION="$(node -p "require('./package.json').version")" SHORT_SHA="$(git rev-parse --short HEAD)" DEV_VERSION="$VERSION-dev-$SHORT_SHA" @@ -152,10 +117,9 @@ jobs: pkg.version = process.env.DEV_VERSION; fs.writeFileSync(path, JSON.stringify(pkg, null, 2) + "\n"); ' - EOF - name: Build Electron desktop - run: nix develop .#electron --command bun --bun run build:desktop + run: bun run build:desktop - name: Upload desktop artifacts uses: https://data.forgejo.org/actions/upload-artifact@v3 @@ -164,19 +128,22 @@ jobs: path: apps/electron/release/ release: - runs-on: nixos + runs-on: docker needs: [build-web, build-mobile, build-desktop] steps: - - name: Install node - run: nix profile add nixpkgs#nodejs_24 - - name: Check out repo uses: https://data.forgejo.org/actions/checkout@v4 with: fetch-depth: 0 + - name: Install Packages + run: apt-get update && apt-get install -y sudo curl jq + + - name: Install Bun + uses: oven-sh/setup-bun@v2 + - name: Install dependencies - run: nix develop .#electron --command bun install --frozen-lockfile + run: bun install --frozen-lockfile - name: Download mobile artifact uses: https://data.forgejo.org/actions/download-artifact@v3 @@ -193,27 +160,21 @@ jobs: - name: Read version and hash id: version run: | - nix develop .#electron --command bash <<'EOF' - set -euo pipefail VERSION="$(node -p "require('./package.json').version")" SHORT_SHA="$(git rev-parse --short HEAD)" echo "version=$VERSION" >> "$FORGEJO_OUTPUT" echo "short_sha=$SHORT_SHA" >> "$FORGEJO_OUTPUT" echo "tag=${VERSION}-dev-${SHORT_SHA}" >> "$FORGEJO_OUTPUT" echo "title=${VERSION}-dev-${SHORT_SHA}" >> "$FORGEJO_OUTPUT" - EOF - name: Copy releases env: TENSAMIN_RELEASE_VERSION: ${{ steps.version.outputs.tag }} TENSAMIN_RELEASE_TAG: ${{ steps.version.outputs.tag }} run: | - nix develop .#electron --command bash <<'EOF' - set -euo pipefail ASSET_BASE_URL="${{ forgejo.api_url }}" ASSET_BASE_URL="${ASSET_BASE_URL%/api/v1}/${{ forgejo.repository }}/releases/download/${{ steps.version.outputs.tag }}" FORGEJO_RELEASE_ASSET_BASE_URL="$ASSET_BASE_URL" bun --bun run copy-releases - EOF - name: Create pre-release and upload files env: @@ -224,7 +185,6 @@ jobs: TAG: ${{ steps.version.outputs.tag }} TITLE: ${{ steps.version.outputs.title }} run: | - nix develop .#electron --command bash <<'EOF' set -eu test -d releases @@ -313,4 +273,3 @@ jobs: -H "Authorization: token $TOKEN" \ -F "attachment=@$file" done - EOF diff --git a/.forgejo/workflows/deploy-prod.yml b/.forgejo/workflows/deploy-prod.yml index 42ac0e4..6adc499 100644 --- a/.forgejo/workflows/deploy-prod.yml +++ b/.forgejo/workflows/deploy-prod.yml @@ -6,110 +6,74 @@ on: paths-ignore: - flake.nix -env: - NIX_CONFIG: experimental-features = nix-command flakes - jobs: build-web: - runs-on: nixos + runs-on: docker steps: - - name: Install node - run: nix profile add nixpkgs#nodejs_24 - - name: Check out repo uses: https://data.forgejo.org/actions/checkout@v4 + - name: Install Packages + run: apt-get update && apt-get install -y sudo curl jq fakeroot dpkg rpm + + - name: Install Nix + uses: https://github.com/cachix/install-nix-action@v30 + + - name: Install Bun + uses: oven-sh/setup-bun@v2 + - name: Install dependencies - run: nix develop .#electron --command bun install --frozen-lockfile + run: bun install --frozen-lockfile - name: Copy licenses - run: nix develop .#electron --command bun --bun run copy-licenses + run: bun run copy-licenses - name: Build packages - run: nix develop .#electron --command bun --bun run build:packages + run: bun run build:packages - name: Build web - run: nix develop .#electron --command bun --bun run build:web + run: bun run build:web + + - name: Install rsync + run: apt-get update && apt-get install -y rsync - name: Deploy - run: nix develop .#electron --command rsync -a --delete apps/web/dist/ /var/lib/www/tensamin-web-prod/ + run: rsync -a --delete apps/web/dist/ /var/lib/www/tensamin-web-prod/ build-mobile: - runs-on: nixos + runs-on: docker steps: - - name: Install node - run: nix profile add nixpkgs#nodejs_24 - - name: Check out repo uses: https://data.forgejo.org/actions/checkout@v4 + - name: Install Packages + run: apt-get update && apt-get install -y sudo curl jq fakeroot dpkg rpm + + - name: Install Nix + uses: https://github.com/cachix/install-nix-action@v30 + + - name: Install Bun + uses: oven-sh/setup-bun@v2 + - name: Install dependencies - run: nix develop .#tauri --command bun install --frozen-lockfile + run: bun install --frozen-lockfile - name: Copy licenses - run: nix develop .#tauri --command bun --bun run copy-licenses + run: bun run copy-licenses - name: Build packages - run: nix develop .#tauri --command bun --bun run build:packages + run: bun run build:packages - name: Setup Android Keystore env: KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }} KEYSTORE_PROPERTIES: ${{ secrets.ANDROID_KEYSTORE_PROPERTIES }} run: | - nix profile add nixpkgs#gnused - - set -euo pipefail - - if [ -z "$KEYSTORE_BASE64" ]; then - echo "ANDROID_KEYSTORE_BASE64 secret is missing or empty" - exit 1 - fi - - if [ -z "$KEYSTORE_PROPERTIES" ]; then - echo "ANDROID_KEYSTORE_PROPERTIES secret is missing or empty" - exit 1 - fi - - printf '%s' "$KEYSTORE_BASE64" \ - | tr -d '[:space:]' \ - | base64 -d > keystore.jks - - printf '%s' "$KEYSTORE_PROPERTIES" \ - | sed 's/\\n/\n/g' \ - | tr -d '\r' \ - | sed 's|^[[:space:]]*storeFile[[:space:]]*=.*|storeFile=keystore.jks|' \ - > keystore.properties - - grep -q '^[[:space:]]*storeFile[[:space:]]*=' keystore.properties || printf '\nstoreFile=keystore.jks\n' >> keystore.properties - - if [ ! -s keystore.jks ]; then - echo "Decoded keystore.jks is missing or empty" - exit 1 - fi - - if [ ! -s keystore.properties ]; then - echo "Generated keystore.properties is missing or empty" - exit 1 - fi - - if ! grep -q '^[[:space:]]*keyAlias[[:space:]]*=' keystore.properties; then - echo "keystore.properties is missing keyAlias" - exit 1 - fi - - if ! grep -Eq '^[[:space:]]*(keyPassword|password)[[:space:]]*=' keystore.properties; then - echo "keystore.properties is missing keyPassword or password" - exit 1 - fi - - if ! grep -Eq '^[[:space:]]*(storePassword|password)[[:space:]]*=' keystore.properties; then - echo "keystore.properties is missing storePassword or password" - exit 1 - fi + bun -e "require('fs').writeFileSync('keystore.jks', Buffer.from(process.env.KEYSTORE_BASE64.replace(/\s+/g, ''), 'base64'))" + bun -e "const content = process.env.KEYSTORE_PROPERTIES.replace(/\\n/g, '\n').replace(/\r/g, '').split('\n').map(l => l.trim()).filter(l => l).join('\n'); require('fs').writeFileSync('keystore.properties', content)" - name: Build mobile - run: nix develop .#tauri --command bun --bun run build:mobile + run: bun run build:mobile - name: Upload mobile artifact uses: https://data.forgejo.org/actions/upload-artifact@v3 @@ -118,30 +82,31 @@ jobs: path: apps/tauri/src-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release.apk build-desktop: - runs-on: nixos + runs-on: docker strategy: matrix: target: [linux] steps: - - name: Install node - run: nix profile add nixpkgs#nodejs_24 - - name: Check out repo uses: https://data.forgejo.org/actions/checkout@v4 + - name: Install Packages + run: apt-get update && apt-get install -y sudo curl jq fakeroot dpkg rpm xz-utils + + - name: Install Bun + uses: oven-sh/setup-bun@v2 + - name: Install dependencies - run: nix develop .#electron --command bun install --frozen-lockfile + run: bun install --frozen-lockfile - name: Copy licenses - run: nix develop .#electron --command bun --bun run copy-licenses + run: bun run copy-licenses - name: Build packages - run: nix develop .#electron --command bun --bun run build:packages + run: bun run build:packages - name: Set Electron prod version run: | - nix develop .#electron --command bash <<'EOF' - set -euo pipefail VERSION="$(node -p "require('./package.json').version")" export VERSION node -e ' @@ -151,10 +116,9 @@ jobs: pkg.version = process.env.VERSION; fs.writeFileSync(path, JSON.stringify(pkg, null, 2) + "\n"); ' - EOF - name: Build Electron desktop - run: nix develop .#electron --command bun --bun run build:desktop + run: bun run build:desktop - name: Upload desktop artifacts uses: https://data.forgejo.org/actions/upload-artifact@v3 @@ -163,17 +127,20 @@ jobs: path: apps/electron/release/ release: - runs-on: nixos + runs-on: docker needs: [build-web, build-mobile, build-desktop] steps: - - name: Install node - run: nix profile add nixpkgs#nodejs_24 - - name: Check out repo uses: https://data.forgejo.org/actions/checkout@v4 + - name: Install Packages + run: apt-get update && apt-get install -y sudo curl jq + + - name: Install Bun + uses: oven-sh/setup-bun@v2 + - name: Install dependencies - run: nix develop .#electron --command bun install --frozen-lockfile + run: bun install --frozen-lockfile - name: Download mobile artifact uses: https://data.forgejo.org/actions/download-artifact@v3 @@ -190,24 +157,18 @@ jobs: - name: Read version id: version run: | - nix develop .#electron --command bash <<'EOF' - set -euo pipefail VERSION="$(node -p "require('./package.json').version")" echo "version=$VERSION" >> "$FORGEJO_OUTPUT" echo "tag=$VERSION" >> "$FORGEJO_OUTPUT" - EOF - name: Copy releases env: TENSAMIN_RELEASE_VERSION: ${{ steps.version.outputs.tag }} TENSAMIN_RELEASE_TAG: ${{ steps.version.outputs.tag }} run: | - nix develop .#electron --command bash <<'EOF' - set -euo pipefail ASSET_BASE_URL="${{ forgejo.api_url }}" ASSET_BASE_URL="${ASSET_BASE_URL%/api/v1}/${{ forgejo.repository }}/releases/download/${{ steps.version.outputs.tag }}" FORGEJO_RELEASE_ASSET_BASE_URL="$ASSET_BASE_URL" bun --bun run copy-releases - EOF - name: Create release and upload files env: @@ -217,7 +178,6 @@ jobs: SHA: ${{ forgejo.sha }} TAG: ${{ steps.version.outputs.tag }} run: | - nix develop .#electron --command bash <<'EOF' set -eu test -d releases @@ -271,18 +231,18 @@ jobs: -H "Authorization: token $TOKEN" \ -F "attachment=@$file" done - EOF - - name: Delete dev releases + - name: Delete dev releases for prod version env: TOKEN: ${{ forgejo.token }} API: ${{ forgejo.api_url }} REPO: ${{ forgejo.repository }} + TAG: ${{ steps.version.outputs.tag }} run: | - nix develop .#electron --command bash <<'EOF' set -eu PAGE=1 + PREFIX="$TAG-dev-" DELETE_RELEASES=delete-dev-releases.tsv : > "$DELETE_RELEASES" @@ -297,7 +257,8 @@ jobs: test "$COUNT" -gt 0 || break jq -r \ - '.[] | select(.prerelease == true) | select(.tag_name | contains("-dev-")) | [.id, .tag_name] | @tsv' releases.json \ + --arg prefix "$PREFIX" \ + '.[] | select(.prerelease == true) | select(.tag_name | startswith($prefix)) | [.id, .tag_name] | @tsv' releases.json \ >> "$DELETE_RELEASES" PAGE="$((PAGE + 1))" @@ -310,13 +271,11 @@ jobs: -H "Authorization: token $TOKEN" \ "$API/repos/$REPO/releases/$release_id" done < "$DELETE_RELEASES" - EOF - name: Update root flake release hash env: TAG: ${{ steps.version.outputs.tag }} run: | - nix develop .#electron --command bash <<'EOF' set -eu DEB="$(find releases -maxdepth 1 -type f -name 'Tensamin-*-linux-amd64.deb' -print -quit)" @@ -365,4 +324,3 @@ jobs: git add flake.nix git -c user.name="forgejo-actions" -c user.email="forgejo-actions@localhost" commit -m "(qol): update release flake hash" git push origin HEAD:dev - EOF diff --git a/.gitignore b/.gitignore index c0e6a9b..87d0fc3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ node_modules releases -.fallow -.direnv +.fallow/ diff --git a/apps/electron/.gitignore b/apps/electron/.gitignore index b53a288..158494b 100644 --- a/apps/electron/.gitignore +++ b/apps/electron/.gitignore @@ -1,2 +1,2 @@ dist -release +release \ No newline at end of file diff --git a/apps/electron/build/icons/128x128.png b/apps/electron/build/icons/128x128.png index 357e1c2..425ffb4 100644 Binary files a/apps/electron/build/icons/128x128.png and b/apps/electron/build/icons/128x128.png differ diff --git a/apps/electron/build/icons/128x128@2x.png b/apps/electron/build/icons/128x128@2x.png index be55e24..9fe4117 100644 Binary files a/apps/electron/build/icons/128x128@2x.png and b/apps/electron/build/icons/128x128@2x.png differ diff --git a/apps/electron/build/icons/32x32.png b/apps/electron/build/icons/32x32.png index bc4fba4..3c9a880 100644 Binary files a/apps/electron/build/icons/32x32.png and b/apps/electron/build/icons/32x32.png differ diff --git a/apps/electron/build/icons/64x64.png b/apps/electron/build/icons/64x64.png index 567f4ad..0f9e690 100644 Binary files a/apps/electron/build/icons/64x64.png and b/apps/electron/build/icons/64x64.png differ diff --git a/apps/electron/build/icons/icon.icns b/apps/electron/build/icons/icon.icns index 7f3b591..7ea0993 100644 Binary files a/apps/electron/build/icons/icon.icns and b/apps/electron/build/icons/icon.icns differ diff --git a/apps/electron/build/icons/icon.ico b/apps/electron/build/icons/icon.ico index c5c68f8..fc67bfb 100644 Binary files a/apps/electron/build/icons/icon.ico and b/apps/electron/build/icons/icon.ico differ diff --git a/apps/electron/build/icons/icon.png b/apps/electron/build/icons/icon.png index dad3edb..8e56359 100644 Binary files a/apps/electron/build/icons/icon.png and b/apps/electron/build/icons/icon.png differ diff --git a/apps/electron/flake.lock b/apps/electron/flake.lock new file mode 100644 index 0000000..88748a4 --- /dev/null +++ b/apps/electron/flake.lock @@ -0,0 +1,61 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1779508470, + "narHash": "sha256-Ap9KJX+5xHIn3bPIpfNgT6MEXdAECECwo4/rmlQD74M=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "29916453413845e54a65b8a1cf996842300cd299", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/apps/electron/flake.nix b/apps/electron/flake.nix new file mode 100644 index 0000000..5bb9cd5 --- /dev/null +++ b/apps/electron/flake.nix @@ -0,0 +1,88 @@ +{ + description = "Electron Development Environment"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + flake-utils.url = "github:numtide/flake-utils"; + }; + + outputs = {nixpkgs, flake-utils, ...}: + flake-utils.lib.eachDefaultSystem (system: let + pkgs = import nixpkgs {inherit system; config.allowUnfree = true;}; + electronRuntimeLibs = with pkgs; [ + alsa-lib + at-spi2-atk + at-spi2-core + atk + cairo + cups + dbus + expat + fontconfig + freetype + gdk-pixbuf + glib + gtk3 + libdrm + libgbm + libglvnd + libnotify + libpulseaudio + libuuid + libxkbcommon + mesa + nspr + nss + pango + pipewire + systemd + wayland + # xorg + libX11 + libXScrnSaver + libXcomposite + libXcursor + libXdamage + libXext + libXfixes + libXi + libXrandr + libXtst + libxcb + ]; + in { + devShells.default = pkgs.mkShell { + packages = with pkgs; [ + nodejs_22 + corepack_22 + bun + electron + pkg-config + python3 + gcc + gnumake + git + jq + patchelf + dpkg + rpm + fpm + ] ++ electronRuntimeLibs; + + shellHook = '' + export LD_LIBRARY_PATH="${pkgs.lib.makeLibraryPath electronRuntimeLibs}:$LD_LIBRARY_PATH" + export ELECTRON_ENABLE_LOGGING=1 + export ELECTRON_OZONE_PLATFORM_HINT="''${ELECTRON_OZONE_PLATFORM_HINT:-auto}" + export NPM_CONFIG_TARGET_ARCH="''${NPM_CONFIG_TARGET_ARCH:-x64}" + export npm_config_build_from_source=true + export USE_SYSTEM_FPM=true + + alias electron-install='cd ../.. && bun install' + alias electron-build-web='cd ../.. && bun run build:web' + alias electron-dev='bun run dev' + alias electron-package='bun run package:linux' + alias electron-validate='bun run validate' + ''; + }; + }); +} diff --git a/apps/electron/package.json b/apps/electron/package.json index 7a1780c..d650270 100644 --- a/apps/electron/package.json +++ b/apps/electron/package.json @@ -13,19 +13,19 @@ "build:web": "cd ../.. && bun run build:web", "build": "tsc -p tsconfig.json && esbuild src/preload/preload.ts --bundle --platform=node --format=cjs --external:electron --outfile=dist/preload/preload.cjs", "dev:raw": "cd ../.. && bun run build:web && cd apps/electron && bun run build && electron . --verbose", - "dev": "if command -v nix >/dev/null 2>&1 && [ -z \"$IN_NIX_SHELL\" ]; then nix develop ../..#electron --command bun run dev:raw; else bun run dev:raw; fi", + "dev": "if command -v nix >/dev/null 2>&1 && [ -z \"$IN_NIX_SHELL\" ]; then nix develop --command bun run dev:raw; else bun run dev:raw; fi", "start:raw": "bun run build && electron .", - "start": "if command -v nix >/dev/null 2>&1 && [ -z \"$IN_NIX_SHELL\" ]; then nix develop ../..#electron --command bun run start:raw; else bun run start:raw; fi", + "start": "if command -v nix >/dev/null 2>&1 && [ -z \"$IN_NIX_SHELL\" ]; then nix develop --command bun run start:raw; else bun run start:raw; fi", "package:raw": "cd ../.. && bun run build:web && cd apps/electron && bun run build && electron-builder --publish never", - "package": "if command -v nix >/dev/null 2>&1 && [ -z \"$IN_NIX_SHELL\" ]; then nix develop ../..#electron --command bun run package:raw; else bun run package:raw; fi", + "package": "if command -v nix >/dev/null 2>&1 && [ -z \"$IN_NIX_SHELL\" ]; then nix develop --command bun run package:raw; else bun run package:raw; fi", "package:linux:raw": "cd ../.. && bun run build:web && cd apps/electron && bun run build && electron-builder --linux --publish never", - "package:linux": "if command -v nix >/dev/null 2>&1 && [ -z \"$IN_NIX_SHELL\" ]; then nix develop ../..#electron --command bun run package:linux:raw; else bun run package:linux:raw; fi", + "package:linux": "if command -v nix >/dev/null 2>&1 && [ -z \"$IN_NIX_SHELL\" ]; then nix develop --command bun run package:linux:raw; else bun run package:linux:raw; fi", "package:windows:raw": "cd ../.. && bun run build:web && cd apps/electron && bun run build && electron-builder --win --publish never", - "package:windows": "if command -v nix >/dev/null 2>&1 && [ -z \"$IN_NIX_SHELL\" ]; then nix develop ../..#electron --command bun run package:windows:raw; else bun run package:windows:raw; fi", + "package:windows": "if command -v nix >/dev/null 2>&1 && [ -z \"$IN_NIX_SHELL\" ]; then nix develop --command bun run package:windows:raw; else bun run package:windows:raw; fi", "checksum": "bun scripts/generate-release-metadata.ts", "generate-signing-key": "bun scripts/generate-signing-key.ts", "validate:raw": "bun run build && bun run package:linux:raw", - "validate": "if command -v nix >/dev/null 2>&1 && [ -z \"$IN_NIX_SHELL\" ]; then nix develop ../..#electron --command bun run validate:raw; else bun run validate:raw; fi" + "validate": "if command -v nix >/dev/null 2>&1 && [ -z \"$IN_NIX_SHELL\" ]; then nix develop --command bun run validate:raw; else bun run validate:raw; fi" }, "dependencies": {}, "devDependencies": { diff --git a/apps/tauri/android.png b/apps/tauri/android.png index cdee032..f77258e 100644 Binary files a/apps/tauri/android.png and b/apps/tauri/android.png differ diff --git a/apps/tauri/flake.lock b/apps/tauri/flake.lock new file mode 100644 index 0000000..c3c71cb --- /dev/null +++ b/apps/tauri/flake.lock @@ -0,0 +1,96 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1775036866, + "narHash": "sha256-ZojAnPuCdy657PbTq5V0Y+AHKhZAIwSIT2cb8UgAz/U=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "6201e203d09599479a3b3450ed24fa81537ebc4e", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1744536153, + "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs", + "rust-overlay": "rust-overlay" + } + }, + "rust-overlay": { + "inputs": { + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1775272153, + "narHash": "sha256-FwYb64ysv8J2TxaqsYYcDyHAHBUEaQlriPMWPMi1K7M=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "740fb0203b2852917b909a72b948d34d0b171ec0", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/apps/tauri/flake.nix b/apps/tauri/flake.nix new file mode 100644 index 0000000..4e491e8 --- /dev/null +++ b/apps/tauri/flake.nix @@ -0,0 +1,108 @@ +{ + description = "Tauri mobile development environment"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + rust-overlay.url = "github:oxalica/rust-overlay"; + flake-utils.url = "github:numtide/flake-utils"; + }; + + outputs = { + self, + nixpkgs, + rust-overlay, + flake-utils, + }: + flake-utils.lib.eachDefaultSystem ( + system: let + overlays = [(import rust-overlay)]; + pkgs = import nixpkgs { + inherit system overlays; + config = { + allowUnfree = true; + android_sdk.accept_license = true; + }; + }; + + projectRoot = "."; + androidHome = "${projectRoot}/.android"; + sdkRoot = "${androidHome}/sdk"; + ndkVersion = "29.0.14206865"; + + android = pkgs.androidenv.composeAndroidPackages { + cmdLineToolsVersion = "8.0"; + toolsVersion = "26.1.1"; + platformToolsVersion = "35.0.2"; + buildToolsVersions = ["35.0.0"]; + platformVersions = ["35" "36"]; + includeSources = false; + includeSystemImages = false; + includeNDK = true; + ndkVersions = [ndkVersion]; + useGoogleAPIs = false; + }; + + rustToolchain = pkgs.rust-bin.stable.latest.default.override { + extensions = ["rust-src" "rust-analyzer"]; + targets = [ + "aarch64-linux-android" + "armv7-linux-androideabi" + "i686-linux-android" + "x86_64-linux-android" + "wasm32-unknown-unknown" + ]; + }; + + in { + devShells.default = pkgs.mkShell { + buildInputs = with pkgs; + [ + jdk17 + rustToolchain + gradle + nodejs + pkg-config + ] + ++ [ + android.androidsdk + pkgs.android-studio-tools + ]; + + shellHook = '' + sdkSource="${android.androidsdk}/libexec/android-sdk" + + mkdir -p "${androidHome}" + if [ -L "${sdkRoot}" ]; then + rm -f "${sdkRoot}" + fi + mkdir -p "${sdkRoot}" + + ln -sfn "$sdkSource/build-tools" "${sdkRoot}/build-tools" + ln -sfn "$sdkSource/cmake" "${sdkRoot}/cmake" + ln -sfn "$sdkSource/licenses" "${sdkRoot}/licenses" + ln -sfn "$sdkSource/ndk" "${sdkRoot}/ndk" + ln -sfn "$sdkSource/ndk-bundle" "${sdkRoot}/ndk-bundle" + ln -sfn "$sdkSource/platforms" "${sdkRoot}/platforms" + ln -sfn "$sdkSource/platform-tools" "${sdkRoot}/platform-tools" + ln -sfn "$sdkSource/tools" "${sdkRoot}/tools" + + mkdir -p "${sdkRoot}/cmdline-tools" + ln -sfn "$sdkSource/cmdline-tools/8.0" "${sdkRoot}/cmdline-tools/8.0" + ln -sfn "8.0" "${sdkRoot}/cmdline-tools/latest" + + sdkRootAbs="$(realpath "${sdkRoot}")" + ndkRootAbs="''${sdkRootAbs}/ndk/${ndkVersion}" + + export PATH="''${sdkRootAbs}/cmdline-tools/latest/bin:''${sdkRootAbs}/platform-tools:''${ndkRootAbs}:${pkgs.android-studio-tools}/bin:$PATH" + export ANDROID_HOME="''${sdkRootAbs}" + export ANDROID_SDK_ROOT="''${sdkRootAbs}" + export ANDROID_NDK_ROOT="''${ndkRootAbs}" + export ANDROID_NDK_HOME="$ANDROID_NDK_ROOT" + export NDK_HOME="$ANDROID_NDK_ROOT" + export NDK_PATH="$ANDROID_NDK_ROOT" + export JAVA_HOME="${pkgs.jdk17}" + ''; + }; + } + ); +} diff --git a/apps/tauri/logo.svg b/apps/tauri/logo.svg index d6b091a..e40aa0f 100644 --- a/apps/tauri/logo.svg +++ b/apps/tauri/logo.svg @@ -2,14 +2,14 @@ /dev/null 2>&1; then nix develop ../..#tauri --command bun dev:mobile:raw; else bun dev:mobile:raw; fi", - "start-adb:mobile": "if command -v nix >/dev/null 2>&1; then nix develop ../..#tauri --command bun start-adb:mobile:raw; else bun start-adb:mobile:raw; fi", - "build:mobile": "bun run render-version.ts && if command -v nix >/dev/null 2>&1; then nix develop ../..#tauri --command bun build:mobile:raw; else bun build:mobile:raw; fi && bun run render-version.ts --unrender", + "dev:mobile": "if command -v nix >/dev/null 2>&1; then nix develop --command bun dev:mobile:raw; else bun dev:mobile:raw; fi", + "start-adb:mobile": "if command -v nix >/dev/null 2>&1; then nix develop --command bun start-adb:mobile:raw; else bun start-adb:mobile:raw; fi", + "build:mobile": "bun run render-version.ts && if command -v nix >/dev/null 2>&1; then nix develop --command bun build:mobile:raw; else bun build:mobile:raw; fi && bun run render-version.ts --unrender", "gen-icons": "tauri icon ./logo.json && bun scripts/sync-electron-icons.ts", "format": "bunx prettier --write .", "lint": "eslint src" diff --git a/apps/tauri/src-tauri/Cargo.lock b/apps/tauri/src-tauri/Cargo.lock index c872475..37a6827 100644 --- a/apps/tauri/src-tauri/Cargo.lock +++ b/apps/tauri/src-tauri/Cargo.lock @@ -36,9 +36,9 @@ checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" [[package]] name = "alloc-stdlib" -version = "0.2.4" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e76a019e91224d279006ff972f1e984179a6e9feb050adba6ce8274aef23195" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" dependencies = [ "alloc-no-stdlib", ] @@ -71,15 +71,54 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.103" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "arrayvec" -version = "0.7.8" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "asn1-rs" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7f43a50ac4fdca5df8e885c21b835997f0a1cdee65494a6847694a98652d9d8" +dependencies = [ + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror 2.0.18", + "time", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3109e49b1e4909e9db6515a30c633684d68cdeaa252f215214cb4fa1a5bfee2c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", + "synstructure", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] [[package]] name = "async-broadcast" @@ -174,7 +213,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -209,7 +248,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -247,6 +286,29 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" +[[package]] +name = "aws-lc-rs" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ec2f1fc3ec205783a5da9a7e6c1509cc69dedf09a1949e412c1e18469326d00" +dependencies = [ + "aws-lc-sys", + "untrusted 0.7.1", + "zeroize", +] + +[[package]] +name = "aws-lc-sys" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a2f9779ce85b93ab6170dd940ad0169b5766ff848247aff13bb788b832fe3f4" +dependencies = [ + "cc", + "cmake", + "dunce", + "fs_extra", +] + [[package]] name = "base64" version = "0.21.7" @@ -265,7 +327,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" dependencies = [ - "bit-vec", + "bit-vec 0.8.0", ] [[package]] @@ -274,6 +336,15 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" +[[package]] +name = "bit-vec" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71798fca2c1fe1086445a7258a4bc81e6e49dcd24c8d0dd9a1e57395b603f51" +dependencies = [ + "serde", +] + [[package]] name = "bitflags" version = "1.3.2" @@ -291,9 +362,9 @@ dependencies = [ [[package]] name = "bitvec" -version = "1.1.1" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddcec3d12c579d40898fe0a9a358a803c23e9c52ca3c425707f81c9436211837" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" dependencies = [ "funty", "radium", @@ -310,6 +381,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-buffer" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdd35008169921d80bc60d3d0ab416eecb028c4cd653352907921d95084790be" +dependencies = [ + "hybrid-array", +] + [[package]] name = "block2" version = "0.6.2" @@ -334,9 +414,9 @@ dependencies = [ [[package]] name = "borsh" -version = "1.7.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f3f6da4992df95bbcd9af42a6c7dcb994498fc9048230405f3b36ff7cd3f145" +checksum = "cfd1e3f8955a5d7de9fab72fc8373fade9fb8a703968cb200ae3dc6cf08e185a" dependencies = [ "borsh-derive", "bytes", @@ -345,22 +425,22 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.7.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae8fb4fb5740e4b2c4884ff95f5f32f5e8479db1e8fd8eb49ddbe09eb09bb7c" +checksum = "bfcfdc083699101d5a7965e49925975f2f55060f94f9a05e7187be95d530ca59" dependencies = [ "once_cell", "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] name = "brotli" -version = "8.0.4" +version = "8.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc91aac060a7a1e25823bdccbfb6af1875b88f17c6daac97894eed8207166b3" +checksum = "8119e4516436f5708bbc474a9d395bf12f1b5395e93a92a56e647ac3388c8610" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -369,9 +449,9 @@ dependencies = [ [[package]] name = "brotli-decompressor" -version = "5.0.3" +version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a32acac15fe1967bc3986b2a6347dffc965602354ea6f450ad07e8bfd253583" +checksum = "5962523e1b92ce1b5e793d9169b9943eece10d39f62550bc04bb605d75b94924" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -394,9 +474,9 @@ checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" [[package]] name = "byte-unit" -version = "5.2.5" +version = "5.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a813de7f2bbedb7dce265b64f1cf5908ebe4d56281ece8d847e98113788b9b0" +checksum = "8c6d47a4e2961fb8721bcfc54feae6455f2f64e7054f9bc67e875f0e77f4c58d" dependencies = [ "rust_decimal", "schemars 1.2.1", @@ -440,9 +520,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.12.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae3f5d315924270530207e2a68396c3cc547f6dca3fbdca317cfb1a51edb593" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" dependencies = [ "serde", ] @@ -474,9 +554,9 @@ dependencies = [ [[package]] name = "camino" -version = "1.2.4" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f2d30e4173c4026932d51d31d6b0613b1fd3014bf3f9f8943d4ba139c437ba0" +checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48" dependencies = [ "serde_core", ] @@ -516,11 +596,13 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.65" +version = "1.2.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e228eec9be7c17ccb640b59b36a5cd805ea2a564a4c5e162c2f659fea30d3b96" +checksum = "556e016178bb5662a08681bbe0f00f8e17631781a4dfc8c45e466e4b185ec27f" dependencies = [ "find-msvc-tools", + "jobserver", + "libc", "shlex", ] @@ -575,6 +657,15 @@ dependencies = [ "windows-link 0.2.1", ] +[[package]] +name = "cmake" +version = "0.1.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" +dependencies = [ + "cc", +] + [[package]] name = "combine" version = "4.6.7" @@ -594,6 +685,12 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "const-oid" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" + [[package]] name = "const-random" version = "0.1.18" @@ -673,6 +770,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + [[package]] name = "crc32fast" version = "1.5.0" @@ -713,6 +819,15 @@ dependencies = [ "typenum", ] +[[package]] +name = "crypto-common" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" +dependencies = [ + "hybrid-array", +] + [[package]] name = "cssparser" version = "0.36.0" @@ -733,7 +848,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -772,7 +887,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -783,9 +898,15 @@ checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" dependencies = [ "darling_core", "quote", - "syn 2.0.118", + "syn 2.0.117", ] +[[package]] +name = "data-encoding" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4ae5f15dda3c708c0ade84bfee31ccab44a3da4f88015ed22f63732abe300c8" + [[package]] name = "dbus" version = "0.9.11" @@ -797,12 +918,27 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "der-parser" +version = "10.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07da5016415d5a3c4dd39b11ed26f915f52fc4e0dc197d87908bc916e51bc1a6" +dependencies = [ + "asn1-rs", + "displaydoc", + "nom", + "num-bigint", + "num-traits", + "rusticata-macros", +] + [[package]] name = "deranged" version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" dependencies = [ + "powerfmt", "serde_core", ] @@ -824,7 +960,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -833,8 +969,19 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer", - "crypto-common", + "block-buffer 0.10.4", + "crypto-common 0.1.7", +] + +[[package]] +name = "digest" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" +dependencies = [ + "block-buffer 0.12.0", + "const-oid", + "crypto-common 0.2.2", ] [[package]] @@ -878,7 +1025,7 @@ checksum = "1ac70aa55017e108007fbaf5aa0f54b021c98f92ff8af59d42eda9da96e3dd4f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -901,7 +1048,7 @@ checksum = "0fbbb781877580993a8707ec48672673ec7b81eeba04cfd2310bd28c08e47c8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -921,7 +1068,7 @@ checksum = "521e380c0c8afb8d9a1e83a1822ee03556fc3e3e7dbc1fd30be14e37f9cb3f89" dependencies = [ "bit-set", "cssparser", - "foldhash", + "foldhash 0.2.0", "html5ever", "precomputed-hash", "selectors", @@ -981,9 +1128,9 @@ checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "embed-resource" -version = "3.0.11" +version = "3.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbfdaacccebec3b28e4866b8973543c7647797db5ada1bdab552e48fe665fbbd" +checksum = "c31a88c8d26de40ed18fe748c547845aa39de1db3afd958f8cb91579f3644bcb" dependencies = [ "cc", "memchr", @@ -1023,7 +1170,7 @@ checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -1140,6 +1287,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + [[package]] name = "foldhash" version = "0.2.0" @@ -1164,7 +1317,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -1182,6 +1335,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fs_extra" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" + [[package]] name = "funty" version = "2.0.0" @@ -1241,7 +1400,7 @@ checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -1388,8 +1547,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi", + "wasm-bindgen", ] [[package]] @@ -1399,20 +1560,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", + "js-sys", "libc", "r-efi 5.3.0", "wasip2", + "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.4.3" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ "cfg-if", "libc", "r-efi 6.0.0", + "wasip2", + "wasip3", ] [[package]] @@ -1481,7 +1646,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -1560,7 +1725,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -1578,6 +1743,15 @@ version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "foldhash 0.1.5", +] + [[package]] name = "hashbrown" version = "0.17.1" @@ -1618,6 +1792,12 @@ dependencies = [ "markup5ever", ] +[[package]] +name = "httlib-huffman" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a9fcbcc408c5526c3ab80d534e5c86e7967c1fb7aa0a8c76abd1edc27deb877" + [[package]] name = "http" version = "1.4.2" @@ -1657,6 +1837,15 @@ version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" +[[package]] +name = "hybrid-array" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9155a582abd142abc056962c29e3ce5ff2ad5469f4246b537ed42c5deba857da" +dependencies = [ + "typenum", +] + [[package]] name = "hyper" version = "1.10.1" @@ -1816,6 +2005,12 @@ dependencies = [ "zerovec", ] +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + [[package]] name = "ident_case" version = "1.0.1" @@ -1970,14 +2165,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" dependencies = [ "quote", - "syn 2.0.118", + "syn 2.0.117", +] + +[[package]] +name = "jobserver" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" +dependencies = [ + "getrandom 0.3.4", + "libc", ] [[package]] name = "js-sys" -version = "0.3.103" +version = "0.3.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102" +checksum = "f2025f20d7a4fa7785846e7b63d10a76d3f1cee98ee5cb79ea59703f95e42162" dependencies = [ "cfg-if", "futures-util", @@ -2017,6 +2222,18 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + [[package]] name = "libappindicator" version = "0.9.0" @@ -2068,9 +2285,9 @@ dependencies = [ [[package]] name = "libredox" -version = "0.1.18" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c943259e342f1e06ff2da7a83eabdfe7f92ce10262688dbf1895ff0b3e6e4652" +checksum = "f02ab6bace2054fb888a3c16f990117b579d14a3088e472d63c6011fa185c9d3" dependencies = [ "libc", ] @@ -2098,25 +2315,29 @@ dependencies = [ [[package]] name = "log" -version = "0.4.33" +version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" +checksum = "953f07c43838f8e6f9758cab68bf5bed85465e7587ebe0b823f1bcd81978ad3a" dependencies = [ "value-bag", ] [[package]] -name = "mac-notification-sys" -version = "0.6.15" +name = "lru-slab" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd604973958ddcc11b561193c0fb96ba146506ef2f231ef2e7c35fd2cbc9beca" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + +[[package]] +name = "mac-notification-sys" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50efa634682b3fc5a1ab6f3dd5b2bce7b848011fc485b53b063dc68f2f74feae" dependencies = [ "cc", - "log", "objc2", "objc2-foundation", "time", - "uuid", ] [[package]] @@ -2132,9 +2353,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.8.2" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4" +checksum = "6b947ae49db0d222b1dbc6b113ce7248a3fc3a6ca21b696717bfc000ba4484d8" [[package]] name = "memoffset" @@ -2151,6 +2372,12 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + [[package]] name = "miniz_oxide" version = "0.8.9" @@ -2174,9 +2401,9 @@ dependencies = [ [[package]] name = "muda" -version = "0.19.3" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd04e60bc0b07438a6771710ee1698f98f6ebbc7f89b61264af1563b8aeb878" +checksum = "47a2e3dff89cd322c66647942668faee0a2b1f88ea6cbb4d374b4a8d7e92528c" dependencies = [ "crossbeam-channel", "dpi", @@ -2224,10 +2451,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" [[package]] -name = "notify-rust" -version = "4.18.0" +name = "nom" +version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5b4c1b4f2aa9f25f63a7a49d3dd0ed567b3670da15330a66b29434be899b891" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "notify-rust" +version = "4.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50ff2e74231b72c832d82982193b417f230945be6bdb5575b251d941d31adb00" dependencies = [ "futures-lite", "log", @@ -2237,12 +2474,31 @@ dependencies = [ "zbus", ] +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + [[package]] name = "num-conv" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.19" @@ -2271,7 +2527,7 @@ dependencies = [ "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -2502,6 +2758,21 @@ dependencies = [ "objc2-security", ] +[[package]] +name = "octets" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8311fa8ab7a57759b4ff1f851a3048d9ef0effaa0130726426b742d26d8a88e7" + +[[package]] +name = "oid-registry" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f40cff3dde1b6087cc5d5f5d4d65712f34016a03ed60e9c08dcc392736b5b7" +dependencies = [ + "asn1-rs", +] + [[package]] name = "once_cell" version = "1.21.4" @@ -2510,15 +2781,22 @@ checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" [[package]] name = "open" -version = "5.3.6" +version = "5.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd8d3b65c44123a56e0133d2cd06ce4361bd3ca99d41198b2f25e3c3db9b8b4a" +checksum = "2fbaa89d2ddc8473c78a3adf69eea8cffa28c483b8e02a971ef31527cd0fc92c" dependencies = [ "dunce", "is-wsl", "libc", + "pathdiff", ] +[[package]] +name = "openssl-probe" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" + [[package]] name = "option-ext" version = "0.2.0" @@ -2599,6 +2877,22 @@ dependencies = [ "windows-link 0.2.1", ] +[[package]] +name = "pathdiff" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" + +[[package]] +name = "pem" +version = "3.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" +dependencies = [ + "base64 0.22.1", + "serde_core", +] + [[package]] name = "percent-encoding" version = "2.3.2" @@ -2646,7 +2940,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -2689,7 +2983,7 @@ checksum = "092791278e026273c1b65bbdcfbba3a300f2994c896bd01ab01da613c29c46f1" dependencies = [ "base64 0.22.1", "indexmap 2.14.0", - "quick-xml", + "quick-xml 0.39.4", "serde", "time", ] @@ -2764,6 +3058,16 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn 2.0.117", +] + [[package]] name = "proc-macro-crate" version = "1.3.1" @@ -2846,6 +3150,15 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "quick-xml" +version = "0.37.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb" +dependencies = [ + "memchr", +] + [[package]] name = "quick-xml" version = "0.39.4" @@ -2856,10 +3169,66 @@ dependencies = [ ] [[package]] -name = "quote" -version = "1.0.46" +name = "quinn" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" +dependencies = [ + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2", + "thiserror 2.0.18", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-proto" +version = "0.11.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" +dependencies = [ + "aws-lc-rs", + "bytes", + "getrandom 0.3.4", + "lru-slab", + "rand 0.9.4", + "ring", + "rustc-hash", + "rustls", + "rustls-pki-types", + "slab", + "thiserror 2.0.18", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.60.2", +] + +[[package]] +name = "quote" +version = "1.0.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -2947,6 +3316,19 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" +[[package]] +name = "rcgen" +version = "0.14.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57f6d249aad744e274e682777a50283a225a32705394ee6d5fcc01efa25e4055" +dependencies = [ + "aws-lc-rs", + "rustls-pki-types", + "time", + "x509-parser", + "yasna", +] + [[package]] name = "redox_syscall" version = "0.5.18" @@ -2984,7 +3366,7 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -3059,6 +3441,20 @@ dependencies = [ "web-sys", ] +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.17", + "libc", + "untrusted 0.9.0", + "windows-sys 0.52.0", +] + [[package]] name = "rkyv" version = "0.7.46" @@ -3100,9 +3496,9 @@ dependencies = [ [[package]] name = "rust_decimal" -version = "1.42.1" +version = "1.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be2a24f50780bc85f09cc6ac299bdf1424302742d77221106859c9d8b102126a" +checksum = "0c5108e3d4d903e21aac27f12ba5377b6b34f9f44b325e4894c7924169d06995" dependencies = [ "arrayvec", "borsh", @@ -3130,6 +3526,15 @@ dependencies = [ "semver", ] +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom", +] + [[package]] name = "rustix" version = "1.1.4" @@ -3143,6 +3548,56 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "rustls" +version = "0.23.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b" +dependencies = [ + "aws-lc-rs", + "log", + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-native-certs" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dab5152771c58876a2146916e53e35057e1a4dfa2b9df0f0305b07f611fdea4d" +dependencies = [ + "openssl-probe", + "rustls-pki-types", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pki-types" +version = "1.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9" +dependencies = [ + "web-time", + "zeroize", +] + +[[package]] +name = "rustls-webpki" +version = "0.103.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" +dependencies = [ + "aws-lc-rs", + "ring", + "rustls-pki-types", + "untrusted 0.9.0", +] + [[package]] name = "rustversion" version = "1.0.22" @@ -3158,6 +3613,15 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "schannel" +version = "0.1.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" +dependencies = [ + "windows-sys 0.61.2", +] + [[package]] name = "schemars" version = "0.8.22" @@ -3209,7 +3673,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -3221,7 +3685,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -3236,6 +3700,29 @@ version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" +[[package]] +name = "security-framework" +version = "3.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" +dependencies = [ + "bitflags 2.13.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "selectors" version = "0.36.1" @@ -3304,7 +3791,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -3315,7 +3802,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -3340,7 +3827,7 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -3390,7 +3877,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -3412,7 +3899,7 @@ checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -3431,8 +3918,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", - "cpufeatures", - "digest", + "cpufeatures 0.2.17", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "digest 0.11.3", ] [[package]] @@ -3477,9 +3975,9 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "smallvec" -version = "1.15.2" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "socket2" @@ -3575,6 +4073,30 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" +[[package]] +name = "strum" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd" + +[[package]] +name = "strum_macros" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + [[package]] name = "swift-rs" version = "1.0.7" @@ -3599,9 +4121,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.118" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -3625,7 +4147,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -3689,7 +4211,7 @@ checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -3706,8 +4228,8 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.11.3" -source = "git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef#20f3f2515c65ca1e115991c3ef3625e2c29c1bbb" +version = "2.11.2" +source = "git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef#7372c8ee97fe590046aca95388895d7cf6b7d807" dependencies = [ "anyhow", "bytes", @@ -3739,11 +4261,11 @@ dependencies = [ "serde_repr", "serialize-to-javascript", "swift-rs", - "tauri-build", + "tauri-build 2.6.2 (git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef)", "tauri-macros", "tauri-runtime", "tauri-runtime-wry", - "tauri-utils 2.9.3 (git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef)", + "tauri-utils 2.9.2 (git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef)", "thiserror 2.0.18", "tokio", "tray-icon", @@ -3756,8 +4278,29 @@ dependencies = [ [[package]] name = "tauri-build" -version = "2.6.3" -source = "git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef#20f3f2515c65ca1e115991c3ef3625e2c29c1bbb" +version = "2.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4aa1f9055fc23919a54e4e125052bed16ed04aef0487086e758fe01a67b451c7" +dependencies = [ + "anyhow", + "cargo_toml", + "dirs", + "glob", + "heck 0.5.0", + "json-patch", + "schemars 0.8.22", + "semver", + "serde", + "serde_json", + "tauri-utils 2.9.2 (registry+https://github.com/rust-lang/crates.io-index)", + "tauri-winres", + "walkdir", +] + +[[package]] +name = "tauri-build" +version = "2.6.2" +source = "git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef#7372c8ee97fe590046aca95388895d7cf6b7d807" dependencies = [ "anyhow", "cargo_toml", @@ -3769,15 +4312,15 @@ dependencies = [ "semver", "serde", "serde_json", - "tauri-utils 2.9.3 (git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef)", + "tauri-utils 2.9.2 (git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef)", "tauri-winres", "walkdir", ] [[package]] name = "tauri-codegen" -version = "2.6.3" -source = "git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef#20f3f2515c65ca1e115991c3ef3625e2c29c1bbb" +version = "2.6.2" +source = "git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef#7372c8ee97fe590046aca95388895d7cf6b7d807" dependencies = [ "base64 0.22.1", "brotli", @@ -3790,9 +4333,9 @@ dependencies = [ "semver", "serde", "serde_json", - "sha2", - "syn 2.0.118", - "tauri-utils 2.9.3 (git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef)", + "sha2 0.10.9", + "syn 2.0.117", + "tauri-utils 2.9.2 (git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef)", "thiserror 2.0.18", "time", "url", @@ -3802,22 +4345,22 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.6.3" -source = "git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef#20f3f2515c65ca1e115991c3ef3625e2c29c1bbb" +version = "2.6.2" +source = "git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef#7372c8ee97fe590046aca95388895d7cf6b7d807" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", "tauri-codegen", - "tauri-utils 2.9.3 (git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef)", + "tauri-utils 2.9.2 (git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef)", ] [[package]] name = "tauri-plugin" -version = "2.6.3" +version = "2.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74be5dd4bed9afbd145e5716b5fa2ec28cbc29c34ffa61c258c9273d896c8020" +checksum = "e126abc9e84e35cdfd01596140a73a1850cdb0df0a23acf0185776c30b469a6e" dependencies = [ "anyhow", "glob", @@ -3825,7 +4368,7 @@ dependencies = [ "schemars 0.8.22", "serde", "serde_json", - "tauri-utils 2.9.3 (registry+https://github.com/rust-lang/crates.io-index)", + "tauri-utils 2.9.2 (registry+https://github.com/rust-lang/crates.io-index)", "walkdir", ] @@ -3868,7 +4411,7 @@ dependencies = [ "serde_json", "tauri", "tauri-plugin", - "tauri-utils 2.9.3 (registry+https://github.com/rust-lang/crates.io-index)", + "tauri-utils 2.9.2 (registry+https://github.com/rust-lang/crates.io-index)", "thiserror 2.0.18", "tracing", "url", @@ -3941,8 +4484,8 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "2.11.3" -source = "git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef#20f3f2515c65ca1e115991c3ef3625e2c29c1bbb" +version = "2.11.2" +source = "git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef#7372c8ee97fe590046aca95388895d7cf6b7d807" dependencies = [ "cookie", "dpi", @@ -3954,7 +4497,7 @@ dependencies = [ "raw-window-handle", "serde", "serde_json", - "tauri-utils 2.9.3 (git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef)", + "tauri-utils 2.9.2 (git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef)", "thiserror 2.0.18", "url", "windows", @@ -3962,8 +4505,8 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" -version = "2.11.3" -source = "git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef#20f3f2515c65ca1e115991c3ef3625e2c29c1bbb" +version = "2.11.2" +source = "git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef#7372c8ee97fe590046aca95388895d7cf6b7d807" dependencies = [ "gtk", "http", @@ -3978,7 +4521,7 @@ dependencies = [ "softbuffer", "tao", "tauri-runtime", - "tauri-utils 2.9.3 (git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef)", + "tauri-utils 2.9.2 (git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef)", "url", "webkit2gtk", "webview2-com", @@ -3988,9 +4531,9 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "2.9.3" +version = "2.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e176a18e67764923c4f1ce66f25ae4abe5f688384d5eb1a0fa6c77f3d90f887" +checksum = "092379df9a707631978e6c56b1bc2401d387f01e2d4a3c123360d167bbb9aa95" dependencies = [ "anyhow", "cargo_metadata", @@ -4020,12 +4563,13 @@ dependencies = [ "url", "urlpattern", "uuid", + "walkdir", ] [[package]] name = "tauri-utils" -version = "2.9.3" -source = "git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef#20f3f2515c65ca1e115991c3ef3625e2c29c1bbb" +version = "2.9.2" +source = "git+https://github.com/tauri-apps/tauri?branch=feat%2Fcef#7372c8ee97fe590046aca95388895d7cf6b7d807" dependencies = [ "anyhow", "brotli", @@ -4072,10 +4616,11 @@ dependencies = [ [[package]] name = "tauri-winrt-notification" -version = "0.7.3" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed071c670382e85fc2f48ae706492d8c338f4f89bf72520d32f8abfe880aade" +checksum = "0b1e66e07de489fe43a46678dd0b8df65e0c973909df1b60ba33874e297ba9b9" dependencies = [ + "quick-xml 0.37.5", "thiserror 2.0.18", "windows", "windows-version", @@ -4088,7 +4633,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.4.3", + "getrandom 0.4.2", "once_cell", "rustix", "windows-sys 0.61.2", @@ -4111,13 +4656,15 @@ dependencies = [ "serde", "serde_json", "tauri", - "tauri-build", + "tauri-build 2.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "tauri-plugin-app-events", "tauri-plugin-barcode-scanner", "tauri-plugin-deep-link", "tauri-plugin-log", "tauri-plugin-notification", "tauri-plugin-opener", + "ttp-core", + "ttp-tauri", ] [[package]] @@ -4146,7 +4693,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -4157,16 +4704,17 @@ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] name = "time" -version = "0.3.53" +version = "0.3.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18dfaaeddcb932337b5e7866ee7d0ce9b76d2fd092997146f187ec09b4558a50" +checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" dependencies = [ "deranged", + "itoa", "libc", "num-conv", "num_threads", @@ -4178,15 +4726,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.9" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109" +checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" [[package]] name = "time-macros" -version = "0.2.31" +version = "0.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c431b87111666e491a90baa837f914fb45cd5dc3c268591b0220ff5057f2085f" +checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" dependencies = [ "num-conv", "time-core", @@ -4235,11 +4783,25 @@ dependencies = [ "bytes", "libc", "mio", + "parking_lot", "pin-project-lite", + "signal-hook-registry", "socket2", + "tokio-macros", "windows-sys 0.61.2", ] +[[package]] +name = "tokio-macros" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "tokio-util" version = "0.7.18" @@ -4437,7 +4999,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -4451,9 +5013,9 @@ dependencies = [ [[package]] name = "tray-icon" -version = "0.24.1" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65ba1e5f6b9ef9fd87e21b9c6f351554dbd717960089168fcfdef854686961dc" +checksum = "e47e6d063cfe4ad2e416fcbb310be3a37c5fd85c745b62cb562bfa4a003df674" dependencies = [ "crossbeam-channel", "dirs", @@ -4477,6 +5039,49 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "ttp-core" +version = "0.1.0" +source = "git+https://git.methanium.net/tensamin/ttp.git#0ccc2b808c1f8ff38ede906491ef703a51bd7786" +dependencies = [ + "base64 0.22.1", + "byteorder", + "rand 0.8.6", + "serde_json", + "strum", + "strum_macros", +] + +[[package]] +name = "ttp-native" +version = "0.1.0" +source = "git+https://git.methanium.net/tensamin/ttp.git#0ccc2b808c1f8ff38ede906491ef703a51bd7786" +dependencies = [ + "quinn", + "rustls", + "rustls-native-certs", + "thiserror 2.0.18", + "tokio", + "ttp-core", + "webpki-roots", + "wtransport", +] + +[[package]] +name = "ttp-tauri" +version = "0.1.0" +source = "git+https://git.methanium.net/tensamin/ttp.git#0ccc2b808c1f8ff38ede906491ef703a51bd7786" +dependencies = [ + "serde", + "serde_json", + "tauri", + "tauri-plugin", + "thiserror 2.0.18", + "tokio", + "ttp-core", + "ttp-native", +] + [[package]] name = "typeid" version = "1.0.3" @@ -4553,6 +5158,24 @@ version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "url" version = "2.5.8" @@ -4598,11 +5221,11 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "uuid" -version = "1.23.4" +version = "1.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf80a72845275afea99e7f2b434723d3bc7e38470fcd1c7ed39a599c73319a53" +checksum = "144d6b123cef80b301b8f72a9e2ca4370ddec21950d0a103dd22c437006d2db7" dependencies = [ - "getrandom 0.4.3", + "getrandom 0.4.2", "js-sys", "serde_core", "wasm-bindgen", @@ -4673,18 +5296,27 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.4+wasi-0.2.12" +version = "1.0.3+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" +checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" dependencies = [ - "wit-bindgen", + "wit-bindgen 0.57.1", +] + +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen 0.51.0", ] [[package]] name = "wasm-bindgen" -version = "0.2.126" +version = "0.2.123" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4" +checksum = "a254a4b10c19a76f09a27640e7ffbf9bc30bf67e16a3bf28aaefa4920fe81563" dependencies = [ "cfg-if", "once_cell", @@ -4695,9 +5327,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.76" +version = "0.4.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62df1340f32221cb9c54d6a27b030e3dba64361d4a95bed55f9aacb44da291d" +checksum = "54568702fabf5d4849ce2b90fadfa64168a097eaf4b351ce9df8b687a0086aaf" dependencies = [ "js-sys", "wasm-bindgen", @@ -4705,9 +5337,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.126" +version = "0.2.123" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1" +checksum = "24a40fc75b0ec6f3746ceb10d36f53a93dcd68a93b11b6445983945d79eba0dc" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4715,26 +5347,48 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.126" +version = "0.2.123" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e" +checksum = "908f34bd9b9ce3d4caf07b72dfab63d61504d156856c6bd3cd87fa350cf3985b" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.126" +version = "0.2.123" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24" +checksum = "7acbf7616c27b194bbb550bf77ed0c2c3e5b7fd1260a93082b95fb7f47959b92" dependencies = [ "unicode-ident", ] +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap 2.14.0", + "wasm-encoder", + "wasmparser", +] + [[package]] name = "wasm-streams" version = "0.5.0" @@ -4749,10 +5403,32 @@ dependencies = [ ] [[package]] -name = "web-sys" -version = "0.3.103" +name = "wasmparser" +version = "0.244.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8622dcb61c0bcc9fffa6938bed81210af2da9a7e4a1a834b2e37a59b6dfb6141" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags 2.13.0", + "hashbrown 0.15.5", + "indexmap 2.14.0", + "semver", +] + +[[package]] +name = "web-sys" +version = "0.3.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e0871acf327f283dc6da28a1696cdc64fb355ba9f935d052021fa77f35cce69" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ "js-sys", "wasm-bindgen", @@ -4760,9 +5436,9 @@ dependencies = [ [[package]] name = "web_atoms" -version = "0.2.5" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "075474b12bcb3d2e3d4546580e9de478eeeead668a1761e2a8860c836b7ef297" +checksum = "d7cff6eef815df1834fd250e3a2ff436044d82a9f1bc1980ca1dbdf07effc538" dependencies = [ "phf", "phf_codegen", @@ -4814,6 +5490,15 @@ dependencies = [ "system-deps", ] +[[package]] +name = "webpki-roots" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52f5ee44c96cf55f1b349600768e3ece3a8f26010c05265ab73f945bb1a2eb9d" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "webview2-com" version = "0.38.2" @@ -4836,7 +5521,7 @@ checksum = "67a921c1b6914c367b2b823cd4cde6f96beec77d30a939c8199bb377cf9b9b54" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -4963,7 +5648,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -4974,7 +5659,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -5055,6 +5740,15 @@ dependencies = [ "windows-targets 0.42.2", ] +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + [[package]] name = "windows-sys" version = "0.59.0" @@ -5064,6 +5758,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.5", +] + [[package]] name = "windows-sys" version = "0.61.2" @@ -5097,13 +5800,30 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", + "windows_i686_gnullvm 0.52.6", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] +[[package]] +name = "windows-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link 0.2.1", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", +] + [[package]] name = "windows-threading" version = "0.1.0" @@ -5134,6 +5854,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + [[package]] name = "windows_aarch64_msvc" version = "0.42.2" @@ -5146,6 +5872,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + [[package]] name = "windows_i686_gnu" version = "0.42.2" @@ -5158,12 +5890,24 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + [[package]] name = "windows_i686_msvc" version = "0.42.2" @@ -5176,6 +5920,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + [[package]] name = "windows_x86_64_gnu" version = "0.42.2" @@ -5188,6 +5938,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" @@ -5200,6 +5956,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + [[package]] name = "windows_x86_64_msvc" version = "0.42.2" @@ -5212,6 +5974,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + [[package]] name = "winnow" version = "0.5.40" @@ -5246,12 +6014,100 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "wit-bindgen" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] + [[package]] name = "wit-bindgen" version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap 2.14.0", + "prettyplease", + "syn 2.0.117", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn 2.0.117", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags 2.13.0", + "indexmap 2.14.0", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap 2.14.0", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] + [[package]] name = "writeable" version = "0.6.3" @@ -5288,7 +6144,7 @@ dependencies = [ "once_cell", "percent-encoding", "raw-window-handle", - "sha2", + "sha2 0.10.9", "soup3", "tao-macros", "thiserror 2.0.18", @@ -5302,6 +6158,42 @@ dependencies = [ "x11-dl", ] +[[package]] +name = "wtransport" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea4aacf790813ee1956751491800537f4e04af7557b7b370501ccbfbc85963e4" +dependencies = [ + "bytes", + "pem", + "quinn", + "rcgen", + "rustls", + "rustls-native-certs", + "rustls-pki-types", + "sha2 0.11.0", + "socket2", + "thiserror 2.0.18", + "time", + "tokio", + "tracing", + "url", + "wtransport-proto", + "x509-parser", +] + +[[package]] +name = "wtransport-proto" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5867c629e4252f7439d82315923daaf27f4fa442410d51b78ab93ef4c432a11" +dependencies = [ + "httlib-huffman", + "octets", + "thiserror 2.0.18", + "url", +] + [[package]] name = "wyz" version = "0.5.1" @@ -5332,6 +6224,34 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "x509-parser" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d43b0f71ce057da06bc0851b23ee24f3f86190b07203dd8f567d0b706a185202" +dependencies = [ + "asn1-rs", + "aws-lc-rs", + "data-encoding", + "der-parser", + "lazy_static", + "nom", + "oid-registry", + "rusticata-macros", + "thiserror 2.0.18", + "time", +] + +[[package]] +name = "yasna" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5f6765e852b9b4dc8e2a76843e4d64d1cea8e79bcde0b6901aea8e7c7f08282" +dependencies = [ + "bit-vec 0.9.1", + "time", +] + [[package]] name = "yoke" version = "0.8.3" @@ -5351,7 +6271,7 @@ checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", "synstructure", ] @@ -5399,7 +6319,7 @@ dependencies = [ "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", "zbus_names", "zvariant", "zvariant_utils", @@ -5418,22 +6338,22 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.52" +version = "0.8.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce1022995ff5ff5d841ad7d994facc23098cd40152f2c1d11cd607c6f530653f" +checksum = "3b065d4f0e55f82fae73202e189638116a87c55ab6b8e6c2721e13dd9d854ad1" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.52" +version = "0.8.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ae7f38b72ec2a254e2b87ef277cf2cd4fb97cbebf944faa6f33354da0867930" +checksum = "0b631b19d36a892ab55420c92dbc83ccd79274f25be714855d3074aa71cab639" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -5453,10 +6373,16 @@ checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", "synstructure", ] +[[package]] +name = "zeroize" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" + [[package]] name = "zerotrie" version = "0.2.4" @@ -5487,7 +6413,7 @@ checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" dependencies = [ "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", ] [[package]] @@ -5519,7 +6445,7 @@ dependencies = [ "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 2.0.118", + "syn 2.0.117", "zvariant_utils", ] @@ -5532,6 +6458,6 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.118", + "syn 2.0.117", "winnow 1.0.3", ] diff --git a/apps/tauri/src-tauri/Cargo.toml b/apps/tauri/src-tauri/Cargo.toml index 1d3bdf5..556bb8b 100644 --- a/apps/tauri/src-tauri/Cargo.toml +++ b/apps/tauri/src-tauri/Cargo.toml @@ -15,7 +15,7 @@ name = "mobile_lib" crate-type = ["staticlib", "cdylib", "rlib"] [build-dependencies] -tauri-build = { git = "https://github.com/tauri-apps/tauri", branch = "feat/cef", features = [] } +tauri-build = { version = "2", features = [] } [dependencies] tauri-plugin-opener = "2" @@ -23,6 +23,8 @@ serde = { version = "1", features = ["derive"] } serde_json = "1" tauri-plugin-deep-link = "2" tauri-plugin-notification = "2" +ttp-core = { git = "https://git.methanium.net/tensamin/ttp.git", package = "ttp-core" } +ttp-tauri = { git = "https://git.methanium.net/tensamin/ttp.git", package = "ttp-tauri" } tauri-plugin-log = "2" [target.'cfg(target_os = "android")'.dependencies.tauri] diff --git a/apps/tauri/src-tauri/capabilities/default.json b/apps/tauri/src-tauri/capabilities/default.json index 73d510a..352eda0 100644 --- a/apps/tauri/src-tauri/capabilities/default.json +++ b/apps/tauri/src-tauri/capabilities/default.json @@ -9,9 +9,17 @@ "core:default", "opener:default", "core:window:default", + "core:window:allow-start-dragging", + "core:window:allow-close", + "core:window:allow-toggle-maximize", + "core:window:allow-minimize", "core:event:default", "deep-link:default", "notification:default", - "log:default" + "log:default", + "ttp-tauri:allow-connect", + "ttp-tauri:allow-send", + "ttp-tauri:allow-close", + "ttp-tauri:allow-ready-state" ] } diff --git a/apps/tauri/src-tauri/capabilities/mobile.json b/apps/tauri/src-tauri/capabilities/mobile.json index 342dd9e..d9914a6 100644 --- a/apps/tauri/src-tauri/capabilities/mobile.json +++ b/apps/tauri/src-tauri/capabilities/mobile.json @@ -14,6 +14,10 @@ "barcode-scanner:allow-scan", "barcode-scanner:allow-cancel", "notification:default", - "log:default" + "log:default", + "ttp-tauri:allow-connect", + "ttp-tauri:allow-send", + "ttp-tauri:allow-close", + "ttp-tauri:allow-ready-state" ] } diff --git a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png index cd21ec7..fbd7184 100644 Binary files a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png index fcd876f..0eac8d0 100644 Binary files a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png and b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png differ diff --git a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png index 772d941..7b90201 100644 Binary files a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png and b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png index 22e9714..10832d3 100644 Binary files a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png index 3de42b8..b2a3603 100644 Binary files a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png and b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png differ diff --git a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png index 6823287..f5fb52c 100644 Binary files a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png and b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png index de98c38..4a07614 100644 Binary files a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png index cab8a74..ac4b850 100644 Binary files a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png and b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png differ diff --git a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png index fe68af3..7ed0607 100644 Binary files a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png and b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index 0f90d7b..7aee207 100644 Binary files a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png index 8fca244..6ab46b6 100644 Binary files a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png and b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png differ diff --git a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png index 2f8677f..f596b89 100644 Binary files a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 93598e4..1030031 100644 Binary files a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png index b3b35ee..f20325b 100644 Binary files a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png and b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png differ diff --git a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png index 94582d8..d70a938 100644 Binary files a/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and b/apps/tauri/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/apps/tauri/src-tauri/icons/128x128.png b/apps/tauri/src-tauri/icons/128x128.png index 357e1c2..425ffb4 100644 Binary files a/apps/tauri/src-tauri/icons/128x128.png and b/apps/tauri/src-tauri/icons/128x128.png differ diff --git a/apps/tauri/src-tauri/icons/128x128@2x.png b/apps/tauri/src-tauri/icons/128x128@2x.png index be55e24..9fe4117 100644 Binary files a/apps/tauri/src-tauri/icons/128x128@2x.png and b/apps/tauri/src-tauri/icons/128x128@2x.png differ diff --git a/apps/tauri/src-tauri/icons/32x32.png b/apps/tauri/src-tauri/icons/32x32.png index bc4fba4..3c9a880 100644 Binary files a/apps/tauri/src-tauri/icons/32x32.png and b/apps/tauri/src-tauri/icons/32x32.png differ diff --git a/apps/tauri/src-tauri/icons/64x64.png b/apps/tauri/src-tauri/icons/64x64.png index 567f4ad..0f9e690 100644 Binary files a/apps/tauri/src-tauri/icons/64x64.png and b/apps/tauri/src-tauri/icons/64x64.png differ diff --git a/apps/tauri/src-tauri/icons/Square107x107Logo.png b/apps/tauri/src-tauri/icons/Square107x107Logo.png index 48dd0e1..1ec3cb3 100644 Binary files a/apps/tauri/src-tauri/icons/Square107x107Logo.png and b/apps/tauri/src-tauri/icons/Square107x107Logo.png differ diff --git a/apps/tauri/src-tauri/icons/Square142x142Logo.png b/apps/tauri/src-tauri/icons/Square142x142Logo.png index be8a336..5b92228 100644 Binary files a/apps/tauri/src-tauri/icons/Square142x142Logo.png and b/apps/tauri/src-tauri/icons/Square142x142Logo.png differ diff --git a/apps/tauri/src-tauri/icons/Square150x150Logo.png b/apps/tauri/src-tauri/icons/Square150x150Logo.png index 78b70fe..e1c1b1b 100644 Binary files a/apps/tauri/src-tauri/icons/Square150x150Logo.png and b/apps/tauri/src-tauri/icons/Square150x150Logo.png differ diff --git a/apps/tauri/src-tauri/icons/Square284x284Logo.png b/apps/tauri/src-tauri/icons/Square284x284Logo.png index c896c52..2d33951 100644 Binary files a/apps/tauri/src-tauri/icons/Square284x284Logo.png and b/apps/tauri/src-tauri/icons/Square284x284Logo.png differ diff --git a/apps/tauri/src-tauri/icons/Square30x30Logo.png b/apps/tauri/src-tauri/icons/Square30x30Logo.png index f8f8e7a..686bcb7 100644 Binary files a/apps/tauri/src-tauri/icons/Square30x30Logo.png and b/apps/tauri/src-tauri/icons/Square30x30Logo.png differ diff --git a/apps/tauri/src-tauri/icons/Square310x310Logo.png b/apps/tauri/src-tauri/icons/Square310x310Logo.png index 5fe0250..20207a5 100644 Binary files a/apps/tauri/src-tauri/icons/Square310x310Logo.png and b/apps/tauri/src-tauri/icons/Square310x310Logo.png differ diff --git a/apps/tauri/src-tauri/icons/Square44x44Logo.png b/apps/tauri/src-tauri/icons/Square44x44Logo.png index fbfc485..7fcb138 100644 Binary files a/apps/tauri/src-tauri/icons/Square44x44Logo.png and b/apps/tauri/src-tauri/icons/Square44x44Logo.png differ diff --git a/apps/tauri/src-tauri/icons/Square71x71Logo.png b/apps/tauri/src-tauri/icons/Square71x71Logo.png index 091f375..6be9a53 100644 Binary files a/apps/tauri/src-tauri/icons/Square71x71Logo.png and b/apps/tauri/src-tauri/icons/Square71x71Logo.png differ diff --git a/apps/tauri/src-tauri/icons/Square89x89Logo.png b/apps/tauri/src-tauri/icons/Square89x89Logo.png index 861261f..84bab9e 100644 Binary files a/apps/tauri/src-tauri/icons/Square89x89Logo.png and b/apps/tauri/src-tauri/icons/Square89x89Logo.png differ diff --git a/apps/tauri/src-tauri/icons/StoreLogo.png b/apps/tauri/src-tauri/icons/StoreLogo.png index 7cc6b2d..df2463e 100644 Binary files a/apps/tauri/src-tauri/icons/StoreLogo.png and b/apps/tauri/src-tauri/icons/StoreLogo.png differ diff --git a/apps/tauri/src-tauri/icons/icon.icns b/apps/tauri/src-tauri/icons/icon.icns index 7f3b591..7ea0993 100644 Binary files a/apps/tauri/src-tauri/icons/icon.icns and b/apps/tauri/src-tauri/icons/icon.icns differ diff --git a/apps/tauri/src-tauri/icons/icon.ico b/apps/tauri/src-tauri/icons/icon.ico index c5c68f8..fc67bfb 100644 Binary files a/apps/tauri/src-tauri/icons/icon.ico and b/apps/tauri/src-tauri/icons/icon.ico differ diff --git a/apps/tauri/src-tauri/icons/icon.png b/apps/tauri/src-tauri/icons/icon.png index dad3edb..8e56359 100644 Binary files a/apps/tauri/src-tauri/icons/icon.png and b/apps/tauri/src-tauri/icons/icon.png differ diff --git a/apps/tauri/src-tauri/icons/ios/AppIcon-20x20@1x.png b/apps/tauri/src-tauri/icons/ios/AppIcon-20x20@1x.png index e18a9c8..d7880c7 100644 Binary files a/apps/tauri/src-tauri/icons/ios/AppIcon-20x20@1x.png and b/apps/tauri/src-tauri/icons/ios/AppIcon-20x20@1x.png differ diff --git a/apps/tauri/src-tauri/icons/ios/AppIcon-20x20@2x-1.png b/apps/tauri/src-tauri/icons/ios/AppIcon-20x20@2x-1.png index 0861c9d..a447149 100644 Binary files a/apps/tauri/src-tauri/icons/ios/AppIcon-20x20@2x-1.png and b/apps/tauri/src-tauri/icons/ios/AppIcon-20x20@2x-1.png differ diff --git a/apps/tauri/src-tauri/icons/ios/AppIcon-20x20@2x.png b/apps/tauri/src-tauri/icons/ios/AppIcon-20x20@2x.png index 0861c9d..a447149 100644 Binary files a/apps/tauri/src-tauri/icons/ios/AppIcon-20x20@2x.png and b/apps/tauri/src-tauri/icons/ios/AppIcon-20x20@2x.png differ diff --git a/apps/tauri/src-tauri/icons/ios/AppIcon-20x20@3x.png b/apps/tauri/src-tauri/icons/ios/AppIcon-20x20@3x.png index 20e1a6e..3524382 100644 Binary files a/apps/tauri/src-tauri/icons/ios/AppIcon-20x20@3x.png and b/apps/tauri/src-tauri/icons/ios/AppIcon-20x20@3x.png differ diff --git a/apps/tauri/src-tauri/icons/ios/AppIcon-29x29@1x.png b/apps/tauri/src-tauri/icons/ios/AppIcon-29x29@1x.png index 1720996..5aa9fac 100644 Binary files a/apps/tauri/src-tauri/icons/ios/AppIcon-29x29@1x.png and b/apps/tauri/src-tauri/icons/ios/AppIcon-29x29@1x.png differ diff --git a/apps/tauri/src-tauri/icons/ios/AppIcon-29x29@2x-1.png b/apps/tauri/src-tauri/icons/ios/AppIcon-29x29@2x-1.png index a534e4c..36d8549 100644 Binary files a/apps/tauri/src-tauri/icons/ios/AppIcon-29x29@2x-1.png and b/apps/tauri/src-tauri/icons/ios/AppIcon-29x29@2x-1.png differ diff --git a/apps/tauri/src-tauri/icons/ios/AppIcon-29x29@2x.png b/apps/tauri/src-tauri/icons/ios/AppIcon-29x29@2x.png index a534e4c..36d8549 100644 Binary files a/apps/tauri/src-tauri/icons/ios/AppIcon-29x29@2x.png and b/apps/tauri/src-tauri/icons/ios/AppIcon-29x29@2x.png differ diff --git a/apps/tauri/src-tauri/icons/ios/AppIcon-29x29@3x.png b/apps/tauri/src-tauri/icons/ios/AppIcon-29x29@3x.png index e1cd9f0..4ece183 100644 Binary files a/apps/tauri/src-tauri/icons/ios/AppIcon-29x29@3x.png and b/apps/tauri/src-tauri/icons/ios/AppIcon-29x29@3x.png differ diff --git a/apps/tauri/src-tauri/icons/ios/AppIcon-40x40@1x.png b/apps/tauri/src-tauri/icons/ios/AppIcon-40x40@1x.png index 0861c9d..a447149 100644 Binary files a/apps/tauri/src-tauri/icons/ios/AppIcon-40x40@1x.png and b/apps/tauri/src-tauri/icons/ios/AppIcon-40x40@1x.png differ diff --git a/apps/tauri/src-tauri/icons/ios/AppIcon-40x40@2x-1.png b/apps/tauri/src-tauri/icons/ios/AppIcon-40x40@2x-1.png index 4fe3372..8b4aaa8 100644 Binary files a/apps/tauri/src-tauri/icons/ios/AppIcon-40x40@2x-1.png and b/apps/tauri/src-tauri/icons/ios/AppIcon-40x40@2x-1.png differ diff --git a/apps/tauri/src-tauri/icons/ios/AppIcon-40x40@2x.png b/apps/tauri/src-tauri/icons/ios/AppIcon-40x40@2x.png index 4fe3372..8b4aaa8 100644 Binary files a/apps/tauri/src-tauri/icons/ios/AppIcon-40x40@2x.png and b/apps/tauri/src-tauri/icons/ios/AppIcon-40x40@2x.png differ diff --git a/apps/tauri/src-tauri/icons/ios/AppIcon-40x40@3x.png b/apps/tauri/src-tauri/icons/ios/AppIcon-40x40@3x.png index a9e0a6c..dd1ff43 100644 Binary files a/apps/tauri/src-tauri/icons/ios/AppIcon-40x40@3x.png and b/apps/tauri/src-tauri/icons/ios/AppIcon-40x40@3x.png differ diff --git a/apps/tauri/src-tauri/icons/ios/AppIcon-512@2x.png b/apps/tauri/src-tauri/icons/ios/AppIcon-512@2x.png index 7ebf2f2..25d9e54 100644 Binary files a/apps/tauri/src-tauri/icons/ios/AppIcon-512@2x.png and b/apps/tauri/src-tauri/icons/ios/AppIcon-512@2x.png differ diff --git a/apps/tauri/src-tauri/icons/ios/AppIcon-60x60@2x.png b/apps/tauri/src-tauri/icons/ios/AppIcon-60x60@2x.png index a9e0a6c..dd1ff43 100644 Binary files a/apps/tauri/src-tauri/icons/ios/AppIcon-60x60@2x.png and b/apps/tauri/src-tauri/icons/ios/AppIcon-60x60@2x.png differ diff --git a/apps/tauri/src-tauri/icons/ios/AppIcon-60x60@3x.png b/apps/tauri/src-tauri/icons/ios/AppIcon-60x60@3x.png index 6e946d2..e46366a 100644 Binary files a/apps/tauri/src-tauri/icons/ios/AppIcon-60x60@3x.png and b/apps/tauri/src-tauri/icons/ios/AppIcon-60x60@3x.png differ diff --git a/apps/tauri/src-tauri/icons/ios/AppIcon-76x76@1x.png b/apps/tauri/src-tauri/icons/ios/AppIcon-76x76@1x.png index 22f1af4..c732ee4 100644 Binary files a/apps/tauri/src-tauri/icons/ios/AppIcon-76x76@1x.png and b/apps/tauri/src-tauri/icons/ios/AppIcon-76x76@1x.png differ diff --git a/apps/tauri/src-tauri/icons/ios/AppIcon-76x76@2x.png b/apps/tauri/src-tauri/icons/ios/AppIcon-76x76@2x.png index 828c395..52368fe 100644 Binary files a/apps/tauri/src-tauri/icons/ios/AppIcon-76x76@2x.png and b/apps/tauri/src-tauri/icons/ios/AppIcon-76x76@2x.png differ diff --git a/apps/tauri/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png b/apps/tauri/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png index ee9fc5d..d328f97 100644 Binary files a/apps/tauri/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png and b/apps/tauri/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png differ diff --git a/apps/tauri/src-tauri/src/lib.rs b/apps/tauri/src-tauri/src/lib.rs index 2a51174..cfa496a 100644 --- a/apps/tauri/src-tauri/src/lib.rs +++ b/apps/tauri/src-tauri/src/lib.rs @@ -2,7 +2,8 @@ pub fn run() { let builder = tauri::Builder::default() .plugin(tauri_plugin_log::Builder::new().level(tauri_plugin_log::log::LevelFilter::Info).build()) - .plugin(tauri_plugin_notification::init()); + .plugin(tauri_plugin_notification::init()) + .plugin(ttp_tauri::init()); let builder = builder .plugin(tauri_plugin_deep_link::init()) diff --git a/apps/web/package.json b/apps/web/package.json index 6526978..5cbfb60 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -12,41 +12,9 @@ "preview": "cd dist && nix-shell -p python3 --run 'python3 -m http.server 3000' && cd .." }, "dependencies": { - "@base-ui/react": "^1.0.0", - "@base-ui/utils": "0.3.1", - "@babel/runtime": "^7.29.2", - "@fontsource-variable/inter": "^5.2.8", "@fontsource-variable/public-sans": "^5.2.7", - "@floating-ui/core": "^1.7.0", - "@floating-ui/dom": "^1.7.0", - "@floating-ui/react-dom": "^2.1.8", - "@floating-ui/utils": "^0.2.11", - "@radix-ui/primitive": "^1.1.0", - "@radix-ui/react-compose-refs": "^1.1.1", - "@radix-ui/react-context": "^1.1.4", - "@radix-ui/react-dialog": "^1.1.6", - "@radix-ui/react-dismissable-layer": "^1.1.11", - "@radix-ui/react-focus-guards": "^1.1.4", - "@radix-ui/react-focus-scope": "^1.1.11", - "@radix-ui/react-id": "^1.1.0", - "@radix-ui/react-portal": "^1.1.13", - "@radix-ui/react-presence": "^1.1.6", - "@radix-ui/react-primitive": "^2.0.2", - "@radix-ui/react-slot": "^1.1.2", - "@radix-ui/react-use-callback-ref": "^1.1.1", - "@radix-ui/react-use-controllable-state": "^1.2.3", - "@radix-ui/react-use-effect-event": "^0.0.2", - "@radix-ui/react-use-layout-effect": "^1.1.0", - "@reduxjs/toolkit": "^2.0.0", "@tailwindcss/vite": "^4.2.4", - "@tanstack/devtools-event-client": "^0.3.0", - "@tanstack/query-core": "^5.0.0", "@tanstack/react-router": "^1.169.1", - "@tanstack/history": "1.162.0", - "@tanstack/react-store": "^0.9.3", - "@tanstack/router-core": "^1.169.1", - "@tanstack/store": "^0.9.3", - "@tanstack/virtual-core": "^3.13.24", "@tanstack/react-virtual": "^3.13.24", "@tauri-apps/api": "^2", "@tensamin/call": "workspace:*", @@ -55,75 +23,19 @@ "@tensamin/shared": "workspace:*", "@tensamin/storage": "workspace:*", "@tensamin/tauri": "workspace:*", - "@tensamin/mtp": "workspace:*", + "@tensamin/ttp": "workspace:*", "@tensamin/tauth": "workspace:*", "@tensamin/markdown": "workspace:*", "@tensamin/ui": "*", "@tensamin/user": "workspace:*", "@tensamin/notifications": "workspace:*", - "aria-hidden": "^1.2.4", - "class-variance-authority": "^0.7.1", - "clsx": "^2.1.1", - "cmdk": "^1.1.1", - "cookie-es": "^3.0.0", - "d3-array": "^3.1.6", - "d3-color": "^3.1.0", - "d3-ease": "^3.0.1", - "d3-format": "^3.1.0", - "d3-interpolate": "^3.0.1", - "d3-path": "^3.0.1", - "d3-scale": "^4.0.2", - "d3-shape": "^3.1.0", - "d3-time": "^3.0.0", - "d3-time-format": "^4.1.0", - "d3-timer": "^3.0.1", - "date-fns": "^4.4.0", - "decimal.js-light": "^2.5.1", - "detect-node-es": "^1.1.0", - "dijkstrajs": "^1.0.1", - "embla-carousel": "8.6.0", - "embla-carousel-react": "^8.6.0", - "embla-carousel-reactive-utils": "8.6.0", - "es-toolkit": "^1.39.3", - "eventemitter3": "^5.0.1", - "get-nonce": "^1.0.1", - "immer": "^10.1.1", - "input-otp": "^1.4.2", - "internmap": "^2.0.3", "tw-animate-css": "^1.4.0", "lucide-react": "^1.14.0", - "next-themes": "^0.4.6", - "pngjs": "^5.0.0", "qrcode": "^1.5.4", "react": "^19.2.0", - "react-day-picker": "^10.0.1", "react-dom": "^19.2.0", - "react-is": "^19.0.0", - "react-redux": "^9.0.0", - "react-remove-scroll": "^2.7.2", - "react-remove-scroll-bar": "^2.3.7", - "react-resizable-panels": "^4.11.2", - "react-style-singleton": "^2.2.3", - "recharts": "3.8.1", - "redux": "^5.0.0", - "redux-thunk": "^3.1.0", - "reselect": "5.1.1", - "scheduler": "^0.27.0", - "seroval": "^1.5.4", - "seroval-plugins": "^1.5.4", - "shadcn": "^4.11.0", - "sonner": "^2.0.7", "tailwindcss": "^4.2.4", - "tailwind-merge": "^3.6.0", "tailwind-scrollbar-hide": "^4.0.0", - "tiny-invariant": "^1.3.3", - "tslib": "^2.8.1", - "use-callback-ref": "^1.3.3", - "use-sidecar": "^1.1.3", - "use-sync-external-store": "^1.2.2", - "vaul": "^1.1.2", - "victory-vendor": "^37.0.2", - "yargs": "^15.3.1", "zod": "^4.3.6" }, "devDependencies": { diff --git a/apps/web/src/components/modals/basic.tsx b/apps/web/src/components/modals/basic.tsx index eb9a27b..8a7df3b 100644 --- a/apps/web/src/components/modals/basic.tsx +++ b/apps/web/src/components/modals/basic.tsx @@ -19,7 +19,7 @@ export function Basic({ extra?: React.ReactNode; }) { return ( - +
@@ -34,7 +34,7 @@ export function Basic({
@@ -42,7 +42,8 @@ export function Basic({ } /> - {user.OnlineStatus.split("_") + {user.online_status + .split("_") .map((word) => word.charAt(0).toUpperCase() + word.slice(1)) .join(" ")} diff --git a/apps/web/src/components/modals/profile.tsx b/apps/web/src/components/modals/profile.tsx index e34a9ac..c46e4ef 100644 --- a/apps/web/src/components/modals/profile.tsx +++ b/apps/web/src/components/modals/profile.tsx @@ -34,8 +34,8 @@ export default function Profile({ user }: { user: User }) { const ownData = await get(ownId); const secret = await getSharedSecret( privateKey, - ownData.PublicKey, - user.PublicKey, + ownData.public_key, + user.public_key, ); if (active) { @@ -51,7 +51,7 @@ export default function Profile({ user }: { user: User }) { return () => { active = false; }; - }, [get, getSharedSecret, load, user.PublicKey]); + }, [get, getSharedSecret, load, user.public_key]); const sharedSecretCode = sharedSecret ? toLossySixDigitCode(sharedSecret) @@ -98,13 +98,13 @@ export default function Profile({ user }: { user: User }) {

- Iota ID: {user.IotaId} + Iota ID: {user.iota_id}

- User ID: {user.UserId} + User ID: {user.user_id}

- Public Key: {user.PublicKey} + Public Key: {user.public_key}

)} diff --git a/apps/web/src/components/navbar.tsx b/apps/web/src/components/navbar.tsx index 0d396c6..7550b28 100644 --- a/apps/web/src/components/navbar.tsx +++ b/apps/web/src/components/navbar.tsx @@ -28,7 +28,7 @@ export default function Navbar({ forMobile }: { forMobile: boolean }) { const { id } = useSearch({ strict: false }); const currentCalls = calls.filter((call) => - call.CallMembers.some((member) => member === id), + call.call_members.some((member) => member === id), ); const isMobile = useIsMobile(); @@ -121,8 +121,8 @@ export default function Navbar({ forMobile }: { forMobile: boolean }) { onClick={() => { void joinCall( id, - currentCalls[0].CallSecret, - currentCalls[0].CallId, + currentCalls[0].call_secret, + currentCalls[0].call_id, ); }} className="w-9 h-9 aspect-square rounded-lg" @@ -147,13 +147,13 @@ export default function Navbar({ forMobile }: { forMobile: boolean }) { {currentCalls.map((call) => ( { - void joinCall(id, call.CallSecret, call.CallId); + void joinCall(id, call.call_secret, call.call_id); }} > - {displayCallId(call.CallId)} + {displayCallId(call.call_id)} ))} diff --git a/apps/web/src/components/screens/login/form.tsx b/apps/web/src/components/screens/login/form.tsx index 9b1a1db..e318c4b 100644 --- a/apps/web/src/components/screens/login/form.tsx +++ b/apps/web/src/components/screens/login/form.tsx @@ -105,7 +105,7 @@ export default function Form() { await save("user_id", parsed.userId); await save("private_key", parsed.privateKey); if (parsed.domain) { - await save("mtp_url", `https://${parsed.domain}/`); + await save("ttp_url", `https://${parsed.domain}/`); } location.href = "/"; @@ -253,7 +253,7 @@ export default function Form() { await save("user_id", user.user_id); await save("private_key", inputParse.data.private_key); if (domain) { - await save("mtp_url", `https://${domain}/`); + await save("ttp_url", `https://${domain}/`); } location.href = "/"; @@ -287,7 +287,7 @@ export default function Form() { await save("private_key", privateKey); if (domain) { - await save("mtp_url", `https://${domain}/`); + await save("ttp_url", `https://${domain}/`); } location.href = "/"; diff --git a/apps/web/src/components/sidebar.tsx b/apps/web/src/components/sidebar.tsx index 95fcd51..c9851a3 100644 --- a/apps/web/src/components/sidebar.tsx +++ b/apps/web/src/components/sidebar.tsx @@ -12,6 +12,7 @@ import { DropdownMenuContent, DropdownMenuItem, DropdownMenuGroup, + DropdownMenuLabel, Dialog, DialogContent, DialogFooter, @@ -37,11 +38,11 @@ import { Ellipsis, Check } from "lucide-react"; import { useState } from "react"; import type { User } from "@tensamin/user/context"; import type z from "zod"; -import { mtp } from "@tensamin/shared/data"; -import { useMTP } from "@tensamin/mtp"; +import { ttp } from "@tensamin/shared/data"; +import { useTTP } from "@tensamin/ttp"; type OnlineStatus = z.infer< - typeof mtp.get_user_data.response.shape.OnlineStatus + typeof ttp.get_user_data.response.shape.online_status >; const onlineStatusLabels: Record = { @@ -73,7 +74,7 @@ function StatusDialog({ user: User; open: boolean; onOpenChange: (open: boolean) => void; - send: ReturnType["send"]; + send: ReturnType["send"]; draftStatus: string; setDraftStatus: (value: string) => void; draftOnlineStatus: OnlineStatus; @@ -89,7 +90,7 @@ function StatusDialog({ onOpenChange={(nextOpen) => { if (!nextOpen) { setDraftStatus(user.status ?? ""); - setDraftOnlineStatus(user.OnlineStatus); + setDraftOnlineStatus(user.online_status); setErrorMessage(""); setSaveSucceeded(false); } @@ -144,11 +145,11 @@ function StatusDialog({ onClick={async () => { const payload = { ...(draftStatus && { status: draftStatus }), - OnlineStatus: draftOnlineStatus, + online_status: draftOnlineStatus, }; const validation = - mtp.change_user_data.request.safeParse(payload); + ttp.change_user_data.request.safeParse(payload); if (!validation.success) { setSaveSucceeded(false); @@ -194,7 +195,7 @@ export default function Sidebar() { const [statusErrorMessage, setStatusErrorMessage] = useState(""); const [statusSaveSucceeded, setStatusSaveSucceeded] = useState(false); - const { send } = useMTP(); + const { send } = useTTP(); const content = ( <> @@ -227,10 +228,11 @@ export default function Sidebar() { /> + Profile { setDraftStatus(user.status ?? ""); - setDraftOnlineStatus(user.OnlineStatus); + setDraftOnlineStatus(user.online_status); setStatusErrorMessage(""); setStatusSaveSucceeded(false); setDialogOpen(true); @@ -249,7 +251,7 @@ export default function Sidebar() { onOpenChange={(nextOpen) => { if (!nextOpen) { setDraftStatus(user.status ?? ""); - setDraftOnlineStatus(user.OnlineStatus); + setDraftOnlineStatus(user.online_status); setStatusErrorMessage(""); setStatusSaveSucceeded(false); } diff --git a/apps/web/src/features/conversation/list/body.tsx b/apps/web/src/features/conversation/list/body.tsx index 36399e9..d240655 100644 --- a/apps/web/src/features/conversation/list/body.tsx +++ b/apps/web/src/features/conversation/list/body.tsx @@ -65,7 +65,7 @@ export default function List() { {category === "conversations" ? ( contacts?.[virtualItem.index] ? ( ) : null ) : communities?.[virtualItem.index] ? ( diff --git a/apps/web/src/features/conversation/list/switch.tsx b/apps/web/src/features/conversation/list/switch.tsx index be3e10e..1839e6a 100644 --- a/apps/web/src/features/conversation/list/switch.tsx +++ b/apps/web/src/features/conversation/list/switch.tsx @@ -23,10 +23,10 @@ export default function Switch(props: { return (
{ - if (!active) { - return; - } + ]).then(([color, palette, primaryColor, polarity, tint]) => { + if (!active) { + return; + } - setThemeColor(color); - setThemePalette(palette); - setThemePrimaryColor(primaryColor); - setThemePolarity(polarity); - setThemeTint(tint); - setThemeBorderRadius(borderRadius); - setThemeCustomCss(customCss); - loadedRef.current = true; - }, - ); + setThemeColor(color); + setThemePalette(palette); + setThemePrimaryColor(primaryColor); + setThemePolarity(polarity); + setThemeTint(tint); + loadedRef.current = true; + }); return () => { active = false; }; }, [ load, - setThemeBorderRadius, setThemeColor, - setThemeCustomCss, setThemePalette, setThemePolarity, setThemePrimaryColor, @@ -177,33 +157,45 @@ function ThemeStorageBridge() { ]); useEffect(() => { - if (loadedRef.current) save("theme_color", themeColor); + if (!loadedRef.current) { + return; + } + + save("theme_color", themeColor); }, [save, themeColor]); useEffect(() => { - if (loadedRef.current) save("theme_palette", themePalette); + if (!loadedRef.current) { + return; + } + + save("theme_palette", themePalette); }, [save, themePalette]); useEffect(() => { - if (loadedRef.current) save("theme_primary_color", themePrimaryColor); + if (!loadedRef.current) { + return; + } + + save("theme_primary_color", themePrimaryColor); }, [save, themePrimaryColor]); useEffect(() => { - if (loadedRef.current) save("theme_polarity", themePolarity); + if (!loadedRef.current) { + return; + } + + save("theme_polarity", themePolarity); }, [save, themePolarity]); useEffect(() => { - if (loadedRef.current) save("theme_tint", themeTint); + if (!loadedRef.current) { + return; + } + + save("theme_tint", themeTint); }, [save, themeTint]); - useEffect(() => { - if (loadedRef.current) save("theme_border_radius", themeBorderRadius); - }, [save, themeBorderRadius]); - - useEffect(() => { - if (loadedRef.current) save("theme_custom_css", themeCustomCss); - }, [save, themeCustomCss]); - return null; } @@ -218,8 +210,6 @@ function RootShell() { paletteStorageKey={null} primaryColorStorageKey={null} tintStorageKey={null} - borderRadiusStorageKey={null} - customCssStorageKey={null} >
+ @@ -270,13 +260,12 @@ function AppShell() { - + ); } function CallInit() { - useInitializeCall(); - return null; + return useInitializeCall(); } const rootRoute = createRootRoute({ diff --git a/apps/web/src/routes/app/home.tsx b/apps/web/src/routes/app/home.tsx index 832d498..ed725b1 100644 --- a/apps/web/src/routes/app/home.tsx +++ b/apps/web/src/routes/app/home.tsx @@ -11,7 +11,7 @@ import { useIsMobile, } from "@tensamin/ui"; import z from "zod"; -import { useMTP } from "@tensamin/mtp"; +import { useTTP } from "@tensamin/ttp"; import { useState } from "react"; import { Loader2 } from "lucide-react"; import { isTauri } from "@tauri-apps/api/core"; @@ -31,7 +31,7 @@ export default function Page() { // Add Conversation Button Component function AddConversationButton() { - const { send } = useMTP(); + const { send } = useTTP(); const { contacts, insertContact } = useSession(); const [loading, setLoading] = useState(false); const [open, setOpen] = useState(false); @@ -59,7 +59,7 @@ function AddConversationButton() { username: result.data, }) .then((data) => { - if (data.data.UserId === 0) { + if (data.data.user_id === 0) { throw new Error(); } @@ -72,7 +72,7 @@ function AddConversationButton() { if (!user) return; // alrady added check - if (contacts.some((contact) => contact.UserId === user.data.UserId)) { + if (contacts.some((contact) => contact.user_id === user.data.user_id)) { setError("Conversation already exists"); return; } @@ -81,10 +81,10 @@ function AddConversationButton() { const timeout = setTimeout(() => setLoading(true), 500); send("add_conversation", { - ChatPartnerName: result.data, + chat_partner_name: result.data, }) .then(() => { - insertContact(user.data.UserId); + insertContact(user.data.user_id); setOpen(false); }) .catch((error) => { diff --git a/apps/web/src/routes/settings/profile.tsx b/apps/web/src/routes/settings/profile.tsx index b9e8fa9..e0d6847 100644 --- a/apps/web/src/routes/settings/profile.tsx +++ b/apps/web/src/routes/settings/profile.tsx @@ -11,8 +11,8 @@ import { import { useUser, type User } from "@tensamin/user/context"; import { useEffect, useRef, useState } from "react"; import MDInput from "@tensamin/markdown/input"; -import { mtp } from "@tensamin/shared/data"; -import { useMTP } from "@tensamin/mtp"; +import { ttp } from "@tensamin/shared/data"; +import { useTTP } from "@tensamin/ttp"; import { Check } from "lucide-react"; async function prepImage( @@ -43,7 +43,7 @@ async function prepImage( export default function Page() { const { get } = useUser(); const { load } = useStorage(); - const { send } = useMTP(); + const { send } = useTTP(); const [currentUser, setCurrentUser] = useState(null); const [draftUser, setDraftUser] = useState>({}); const [errorMessage, setErrorMessage] = useState(""); @@ -178,7 +178,7 @@ export default function Page() { : {}), }; - const validation = mtp.change_user_data.request.safeParse(payload); + const validation = ttp.change_user_data.request.safeParse(payload); if (!validation.success) { setSaveSucceeded(false); diff --git a/apps/web/src/routes/settings/security.tsx b/apps/web/src/routes/settings/security.tsx index 45d1b2b..86c580e 100644 --- a/apps/web/src/routes/settings/security.tsx +++ b/apps/web/src/routes/settings/security.tsx @@ -59,7 +59,7 @@ function QrCodeLogin() { setUserId(value); } }); - load("mtp_url") + load("ttp_url") .then((value) => { if (value) { const url = new URL(value); diff --git a/apps/web/src/routes/settings/theme.tsx b/apps/web/src/routes/settings/theme.tsx index 2d512b3..353dcc4 100644 --- a/apps/web/src/routes/settings/theme.tsx +++ b/apps/web/src/routes/settings/theme.tsx @@ -1,20 +1,5 @@ import { StylePicker } from "@tensamin/ui"; export default function Page() { - return ( - - ); + return ; } diff --git a/apps/web/vite.config.ts b/apps/web/vite.config.ts index a224653..71fb4ac 100644 --- a/apps/web/vite.config.ts +++ b/apps/web/vite.config.ts @@ -3,10 +3,9 @@ import type { IncomingMessage, ServerResponse } from "node:http"; import { dirname, resolve } from "node:path"; import { fileURLToPath } from "node:url"; -import { defineConfig, normalizePath, type Plugin } from "vite"; +import { defineConfig, type Plugin } from "vite"; import react from "@vitejs/plugin-react"; import tailwindcss from "@tailwindcss/vite"; -import { mtp } from "mtp/vite"; const host = process.env.TAURI_DEV_HOST; const appDir = dirname(fileURLToPath(import.meta.url)); @@ -51,38 +50,6 @@ function deepFilterAssetHeaders(rootDir: string): Plugin { }; } -function restartOnMtpSourceChange(srcDir: string): Plugin { - const watchedDir = normalizePath(realpathSync(srcDir)); - - return { - name: "restart-on-mtp-source-change", - apply: "serve", - configureServer(server) { - server.watcher.add(watchedDir); - let restartTimer: ReturnType | null = null; - - const restart = (file: string) => { - if (!normalizePath(file).startsWith(`${watchedDir}/`)) { - return; - } - - if (restartTimer) { - clearTimeout(restartTimer); - } - - restartTimer = setTimeout(() => { - restartTimer = null; - void server.restart(); - }, 50); - }; - - server.watcher.on("add", restart); - server.watcher.on("change", restart); - server.watcher.on("unlink", restart); - }, - }; -} - export default defineConfig({ base: "./", clearScreen: false, @@ -107,13 +74,6 @@ export default defineConfig({ }, ], dedupe: [ - "react", - "react-dom", - "react-redux", - "use-sync-external-store", - "@tensamin/crypto", - "@tensamin/storage", - "@tensamin/mtp", "@codemirror/commands", "@codemirror/lang-markdown", "@codemirror/state", @@ -137,36 +97,7 @@ export default defineConfig({ }, envPrefix: ["VITE_", "TAURI_ENV_*"], optimizeDeps: { - include: [ - "react-redux", - "use-sync-external-store/shim/with-selector", - "use-sync-external-store/with-selector", - "decimal.js-light", - "eventemitter3", - "react-is", - ], - exclude: [ - "mtp", - "mtp/raw", - "mtp/type-map", - "@tensamin/call", - "@tensamin/call/utils", - "@tensamin/chat", - "@tensamin/crypto", - "@tensamin/crypto/context", - "@tensamin/crypto/worker", - "@tensamin/markdown", - "@tensamin/mtp", - "@tensamin/notifications", - "@tensamin/shared", - "@tensamin/shared/data", - "@tensamin/shared/log", - "@tensamin/storage", - "@tensamin/storage/context", - "@tensamin/tauri", - "@tensamin/tauth", - "@tensamin/user", - ], + exclude: ["@tensamin/ttp-core"], }, build: { minify: !process.env.TAURI_ENV_DEBUG ? "esbuild" : false, @@ -174,8 +105,6 @@ export default defineConfig({ }, plugins: [ deepFilterAssetHeaders(resolve(appDir, "public")), - restartOnMtpSourceChange(resolve(appDir, "../../packages/mtp/src")), - mtp({ typeMaps: resolve(appDir, "../../type-maps.yaml") }), react(), tailwindcss(), ], diff --git a/bun.lock b/bun.lock index 376d438..bfa8ee8 100644 --- a/bun.lock +++ b/bun.lock @@ -5,8 +5,8 @@ "": { "name": "tensamin", "dependencies": { + "@tensamin/ttp-core": "*", "@tensamin/ui": "*", - "mtp": "*", "sonner": "^2.0.7", }, "devDependencies": { @@ -59,118 +59,30 @@ "name": "@tensamin/web", "version": "0.0.0", "dependencies": { - "@babel/runtime": "^7.29.2", - "@base-ui/react": "^1.0.0", - "@base-ui/utils": "0.3.1", - "@floating-ui/core": "^1.7.0", - "@floating-ui/dom": "^1.7.0", - "@floating-ui/react-dom": "^2.1.8", - "@floating-ui/utils": "^0.2.11", - "@fontsource-variable/inter": "^5.2.8", "@fontsource-variable/public-sans": "^5.2.7", - "@radix-ui/primitive": "^1.1.0", - "@radix-ui/react-compose-refs": "^1.1.1", - "@radix-ui/react-context": "^1.1.4", - "@radix-ui/react-dialog": "^1.1.6", - "@radix-ui/react-dismissable-layer": "^1.1.11", - "@radix-ui/react-focus-guards": "^1.1.4", - "@radix-ui/react-focus-scope": "^1.1.11", - "@radix-ui/react-id": "^1.1.0", - "@radix-ui/react-portal": "^1.1.13", - "@radix-ui/react-presence": "^1.1.6", - "@radix-ui/react-primitive": "^2.0.2", - "@radix-ui/react-slot": "^1.1.2", - "@radix-ui/react-use-callback-ref": "^1.1.1", - "@radix-ui/react-use-controllable-state": "^1.2.3", - "@radix-ui/react-use-effect-event": "^0.0.2", - "@radix-ui/react-use-layout-effect": "^1.1.0", - "@reduxjs/toolkit": "^2.0.0", "@tailwindcss/vite": "^4.2.4", - "@tanstack/devtools-event-client": "^0.3.0", - "@tanstack/history": "1.162.0", - "@tanstack/query-core": "^5.0.0", "@tanstack/react-router": "^1.169.1", - "@tanstack/react-store": "^0.9.3", "@tanstack/react-virtual": "^3.13.24", - "@tanstack/router-core": "^1.169.1", - "@tanstack/store": "^0.9.3", - "@tanstack/virtual-core": "^3.13.24", "@tauri-apps/api": "^2", "@tensamin/call": "workspace:*", "@tensamin/chat": "workspace:*", "@tensamin/crypto": "workspace:*", "@tensamin/markdown": "workspace:*", - "@tensamin/mtp": "workspace:*", "@tensamin/notifications": "workspace:*", "@tensamin/shared": "workspace:*", "@tensamin/storage": "workspace:*", "@tensamin/tauri": "workspace:*", "@tensamin/tauth": "workspace:*", + "@tensamin/ttp": "workspace:*", "@tensamin/ui": "*", "@tensamin/user": "workspace:*", - "aria-hidden": "^1.2.4", - "class-variance-authority": "^0.7.1", - "clsx": "^2.1.1", - "cmdk": "^1.1.1", - "cookie-es": "^3.0.0", - "d3-array": "^3.1.6", - "d3-color": "^3.1.0", - "d3-ease": "^3.0.1", - "d3-format": "^3.1.0", - "d3-interpolate": "^3.0.1", - "d3-path": "^3.0.1", - "d3-scale": "^4.0.2", - "d3-shape": "^3.1.0", - "d3-time": "^3.0.0", - "d3-time-format": "^4.1.0", - "d3-timer": "^3.0.1", - "date-fns": "^4.4.0", - "decimal.js-light": "^2.5.1", - "detect-node-es": "^1.1.0", - "dijkstrajs": "^1.0.1", - "embla-carousel": "8.6.0", - "embla-carousel-react": "^8.6.0", - "embla-carousel-reactive-utils": "8.6.0", - "es-toolkit": "^1.39.3", - "eventemitter3": "^5.0.1", - "get-nonce": "^1.0.1", - "immer": "^10.1.1", - "input-otp": "^1.4.2", - "internmap": "^2.0.3", "lucide-react": "^1.14.0", - "next-themes": "^0.4.6", - "pngjs": "^5.0.0", "qrcode": "^1.5.4", "react": "^19.2.0", - "react-day-picker": "^10.0.1", "react-dom": "^19.2.0", - "react-is": "^19.0.0", - "react-redux": "^9.0.0", - "react-remove-scroll": "^2.7.2", - "react-remove-scroll-bar": "^2.3.7", - "react-resizable-panels": "^4.11.2", - "react-style-singleton": "^2.2.3", - "recharts": "3.8.1", - "redux": "^5.0.0", - "redux-thunk": "^3.1.0", - "reselect": "5.1.1", - "scheduler": "^0.27.0", - "seroval": "^1.5.4", - "seroval-plugins": "^1.5.4", - "shadcn": "^4.11.0", - "sonner": "^2.0.7", - "tailwind-merge": "^3.6.0", "tailwind-scrollbar-hide": "^4.0.0", "tailwindcss": "^4.2.4", - "tiny-invariant": "^1.3.3", - "tslib": "^2.8.1", "tw-animate-css": "^1.4.0", - "use-callback-ref": "^1.3.3", - "use-sidecar": "^1.1.3", - "use-sync-external-store": "^1.2.2", - "vaul": "^1.1.2", - "victory-vendor": "^37.0.2", - "yargs": "^15.3.1", "zod": "^4.3.6", }, "devDependencies": { @@ -195,9 +107,9 @@ "@tanstack/react-router": "^1.169.1", "@tauri-apps/api": "^2", "@tensamin/crypto": "workspace:*", - "@tensamin/mtp": "workspace:*", "@tensamin/shared": "workspace:*", "@tensamin/storage": "workspace:*", + "@tensamin/ttp": "workspace:*", "@tensamin/ui": "*", "@tensamin/user": "workspace:*", "deepfilternet3-noise-filter": "^1.2.1", @@ -220,9 +132,9 @@ "@tanstack/react-virtual": "^3.0.0", "@tensamin/crypto": "workspace:*", "@tensamin/markdown": "workspace:*", - "@tensamin/mtp": "workspace:*", "@tensamin/shared": "workspace:*", "@tensamin/storage": "workspace:*", + "@tensamin/ttp": "workspace:*", "@tensamin/ui": "*", "@tensamin/user": "workspace:*", "lucide-react": "^1.14.0", @@ -236,7 +148,6 @@ "version": "0.0.0", "dependencies": { "@noble/curves": "^2.0.1", - "@noble/hashes": "^2.0.1", "comlink": "^4.4.2", "react": "^19.2.0", "react-dom": "^19.2.0", @@ -254,25 +165,6 @@ "react-dom": "^19.2.0", }, }, - "packages/mtp": { - "name": "@tensamin/mtp", - "version": "0.0.0", - "dependencies": { - "@tauri-apps/api": "^2", - "@tensamin/crypto": "workspace:*", - "@tensamin/shared": "workspace:*", - "@tensamin/storage": "workspace:*", - "@tensamin/ui": "*", - "mtp": "*", - "react": "^19.2.0", - "react-dom": "^19.2.0", - "tauri-plugin-app-events-api": "^0.2.0", - "zod": "^4.4.2", - }, - "devDependencies": { - "eslint": "^10.0.3", - }, - }, "packages/notifications": { "name": "@tensamin/notifications", "version": "0.0.0", @@ -281,9 +173,9 @@ "@tauri-apps/api": "^2.11.0", "@tensamin/chat": "workspace:*", "@tensamin/crypto": "workspace:*", - "@tensamin/mtp": "workspace:*", "@tensamin/shared": "workspace:*", "@tensamin/storage": "workspace:*", + "@tensamin/ttp": "workspace:*", "@tensamin/ui": "*", "@tensamin/user": "workspace:*", "react": "^19.2.0", @@ -307,8 +199,8 @@ "name": "@tensamin/storage", "version": "0.0.0", "dependencies": { - "@tensamin/mtp": "workspace:*", "@tensamin/shared": "workspace:*", + "@tensamin/ttp": "workspace:*", "@tensamin/ui": "*", "react": "^19.2.0", "react-dom": "^19.2.0", @@ -321,10 +213,10 @@ "@tanstack/react-router": "^1.0.0", "@tauri-apps/api": "^2.10.1", "@tensamin/crypto": "workspace:*", - "@tensamin/mtp": "workspace:*", "@tensamin/shared": "workspace:*", "@tensamin/storage": "workspace:*", "@tensamin/tauri": "workspace:*", + "@tensamin/ttp": "workspace:*", "@tensamin/ui": "*", "@tensamin/user": "workspace:*", "lucide-react": "^1.8.0", @@ -332,13 +224,32 @@ "react-dom": "^19.2.0", }, }, + "packages/ttp": { + "name": "@tensamin/ttp", + "version": "0.0.0", + "dependencies": { + "@tanstack/react-router": "^1.0.0", + "@tauri-apps/api": "^2", + "@tensamin/crypto": "workspace:*", + "@tensamin/shared": "workspace:*", + "@tensamin/storage": "workspace:*", + "@tensamin/ttp-core": "*", + "@tensamin/ui": "*", + "react": "^19.2.0", + "react-dom": "^19.2.0", + "tauri-plugin-app-events-api": "^0.2.0", + }, + "devDependencies": { + "eslint": "^10.0.3", + }, + }, "packages/user": { "name": "@tensamin/user", "version": "0.0.0", "dependencies": { - "@tensamin/mtp": "workspace:*", "@tensamin/shared": "workspace:*", "@tensamin/storage": "workspace:*", + "@tensamin/ttp": "workspace:*", "react": "^19.2.0", "react-dom": "^19.2.0", "zod": "^4.3.6", @@ -346,10 +257,12 @@ }, }, "overrides": { - "@tensamin/ui": "https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz", - "mtp": "https://git.methanium.net/methanium/mtp/releases/download/0.1.0-dev-c3fbeb2/mtp-0.1.0.tgz", + "@tensamin/ttp-core": "https://git.methanium.net/tensamin/ttp/archive/0.0.24.tar.gz", + "@tensamin/ui": "https://git.methanium.net/tensamin/ui/archive/0.0.37.tar.gz", }, "packages": { + "@antfu/ni": ["@antfu/ni@25.0.0", "", { "dependencies": { "ansis": "^4.0.0", "fzf": "^0.5.2", "package-manager-detector": "^1.3.0", "tinyexec": "^1.0.1" }, "bin": { "na": "bin/na.mjs", "ni": "bin/ni.mjs", "nr": "bin/nr.mjs", "nci": "bin/nci.mjs", "nlx": "bin/nlx.mjs", "nun": "bin/nun.mjs", "nup": "bin/nup.mjs" } }, "sha512-9q/yCljni37pkMr4sPrI3G4jqdIk074+iukc5aFJl7kmDCCsiJrbZ6zKxnES1Gwg+i9RcDZwvktl23puGslmvA=="], + "@babel/code-frame": ["@babel/code-frame@7.29.7", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.29.7", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw=="], "@babel/compat-data": ["@babel/compat-data@7.29.7", "", {}, "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg=="], @@ -408,15 +321,15 @@ "@babel/types": ["@babel/types@7.29.7", "", { "dependencies": { "@babel/helper-string-parser": "^7.29.7", "@babel/helper-validator-identifier": "^7.29.7" } }, "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA=="], - "@base-ui/react": ["@base-ui/react@1.6.0", "", { "dependencies": { "@babel/runtime": "^7.29.2", "@base-ui/utils": "0.3.1", "@floating-ui/react-dom": "^2.1.8", "@floating-ui/utils": "^0.2.11", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "@date-fns/tz": "^1.2.0", "@types/react": "^17 || ^18 || ^19", "date-fns": "^4.0.0", "react": "^17 || ^18 || ^19", "react-dom": "^17 || ^18 || ^19" }, "optionalPeers": ["@date-fns/tz", "@types/react", "date-fns"] }, "sha512-/jzjTWJYXhRFO45Bev9lc3cHbmjzCMpUqbMZ2AgKy/z25mY9B6shGSNcXcjQar9n5doM0KYW1W8fcFv2jZBuMw=="], + "@base-ui/react": ["@base-ui/react@1.5.0", "", { "dependencies": { "@babel/runtime": "^7.29.2", "@base-ui/utils": "0.2.9", "@floating-ui/react-dom": "^2.1.8", "@floating-ui/utils": "^0.2.11", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "@date-fns/tz": "^1.2.0", "@types/react": "^17 || ^18 || ^19", "date-fns": "^4.0.0", "react": "^17 || ^18 || ^19", "react-dom": "^17 || ^18 || ^19" }, "optionalPeers": ["@date-fns/tz", "@types/react", "date-fns"] }, "sha512-z1gSAlced1yY+iM+mHDEtIkD8UI3Ebs52MuBPxvV6f5hRutk+xvCH/wuB7hDqDzK9JG5FoMz5nhrqtSs1wjt1A=="], - "@base-ui/utils": ["@base-ui/utils@0.3.1", "", { "dependencies": { "@babel/runtime": "^7.29.2", "@floating-ui/utils": "^0.2.11", "reselect": "^5.2.0", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "@types/react": "^17 || ^18 || ^19", "react": "^17 || ^18 || ^19", "react-dom": "^17 || ^18 || ^19" }, "optionalPeers": ["@types/react"] }, "sha512-gFFiltORVmW/N6IILTGxizP3PBpVpysqML1ALY5Vk0mH+7faVkCknOU31goYHN5Aoek2dkjxva1XOD2Ce9WuIg=="], + "@base-ui/utils": ["@base-ui/utils@0.2.9", "", { "dependencies": { "@babel/runtime": "^7.29.2", "@floating-ui/utils": "^0.2.11", "reselect": "^5.1.1", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "@types/react": "^17 || ^18 || ^19", "react": "^17 || ^18 || ^19", "react-dom": "^17 || ^18 || ^19" }, "optionalPeers": ["@types/react"] }, "sha512-x/PDDCYzoqPpjrdyb3VcyylTI2IjUXEtYDGi5foh7KsnmNJIIaVwA2GLgDH1dps1GgXiJbA60hM+AyuTfQzIvw=="], "@bufbuild/protobuf": ["@bufbuild/protobuf@1.10.1", "", {}, "sha512-wJ8ReQbHxsAfXhrf9ixl0aYbZorRuOWpBNzm8pL8ftmSxQx/wnJD5Eg861NwJU/czy2VXFIebCeZnZrI9rktIQ=="], "@codemirror/autocomplete": ["@codemirror/autocomplete@6.20.3", "", { "dependencies": { "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.17.0", "@lezer/common": "^1.0.0" } }, "sha512-tlosUqb+3BbxCxZdu4tKeRghPFC+QM7q4X5YhKV2eCmPG+1r2F3f4AaSz5sCrFqUtX4Jh20VFTKecl16MgiV9g=="], - "@codemirror/commands": ["@codemirror/commands@6.10.4", "", { "dependencies": { "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.7.0", "@codemirror/view": "^6.27.0", "@lezer/common": "^1.1.0" } }, "sha512-Ryk9y9T0FFVF0cUGhAknveAyUOl/A1qReTFi+qPKtOh2Z9F4AUBz3XOrYD4ZEgZirdugVzHvd/2/Wcwy5OliTg=="], + "@codemirror/commands": ["@codemirror/commands@6.10.3", "", { "dependencies": { "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.6.0", "@codemirror/view": "^6.27.0", "@lezer/common": "^1.1.0" } }, "sha512-JFRiqhKu+bvSkDLI+rUhJwSxQxYb759W5GBezE8Uc8mHLqC9aV/9aTC7yJSqCtB3F00pylrLCwnyS91Ap5ej4Q=="], "@codemirror/lang-css": ["@codemirror/lang-css@6.3.1", "", { "dependencies": { "@codemirror/autocomplete": "^6.0.0", "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.0.0", "@lezer/common": "^1.0.2", "@lezer/css": "^1.1.7" } }, "sha512-kr5fwBGiGtmz6l0LSJIbno9QrifNMUusivHbnA1H6Dmqy4HZFte3UAICix1VuKo0lMPKQr2rqB+0BkKi/S3Ejg=="], @@ -426,19 +339,19 @@ "@codemirror/lang-markdown": ["@codemirror/lang-markdown@6.5.0", "", { "dependencies": { "@codemirror/autocomplete": "^6.7.1", "@codemirror/lang-html": "^6.0.0", "@codemirror/language": "^6.3.0", "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.0.0", "@lezer/common": "^1.2.1", "@lezer/markdown": "^1.0.0" } }, "sha512-0K40bZ35jpHya6FriukbgaleaqzBLZfOh7HuzqbMxBXkbYMJDxfF39c23xOgxFezR+3G+tR2/Mup+Xk865OMvw=="], - "@codemirror/language": ["@codemirror/language@6.12.4", "", { "dependencies": { "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.23.0", "@lezer/common": "^1.5.0", "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.0.0", "style-mod": "^4.0.0" } }, "sha512-1q4PaT+o6PbgpkJt4Q8Fv5XJxTy4FUZ4MWETtyiDw3J0Pyr9E2vqcKL+k9wcvjNTIsauxvE7OfmWj3FRPHQ76A=="], + "@codemirror/language": ["@codemirror/language@6.12.3", "", { "dependencies": { "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.23.0", "@lezer/common": "^1.5.0", "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.0.0", "style-mod": "^4.0.0" } }, "sha512-QwCZW6Tt1siP37Jet9Tb02Zs81TQt6qQrZR2H+eGMcFsL1zMrk2/b9CLC7/9ieP1fjIUMgviLWMmgiHoJrj+ZA=="], "@codemirror/lint": ["@codemirror/lint@6.9.7", "", { "dependencies": { "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.42.0", "crelt": "^1.0.5" } }, "sha512-28/+iWLYxKxsvGYhSYL7zaCZqLz5+FFFDq9tVsvGv9kv8RY4fFAchJ5WX9M3YrrRlTIsECjsXPqeNgnSmNP2dg=="], - "@codemirror/state": ["@codemirror/state@6.7.0", "", { "dependencies": { "@marijn/find-cluster-break": "^1.0.0" } }, "sha512-Zbl9NyscLMZkfXPQnNAIIAFftidrA1UbcJEIMp24C0Bukc2I5T8wJS0wsXYsnDOqCFJUeJ1BITGNs5CqPDSmSg=="], + "@codemirror/state": ["@codemirror/state@6.6.0", "", { "dependencies": { "@marijn/find-cluster-break": "^1.0.0" } }, "sha512-4nbvra5R5EtiCzr9BTHiTLc+MLXK2QGiAVYMyi8PkQd3SR+6ixar/Q/01Fa21TBIDOZXgeWV4WppsQolSreAPQ=="], - "@codemirror/view": ["@codemirror/view@6.43.4", "", { "dependencies": { "@codemirror/state": "^6.7.0", "crelt": "^1.0.6", "style-mod": "^4.1.0", "w3c-keyname": "^2.2.4" } }, "sha512-YImu23iyKfncJzT7sRy+rEqEhSc8RhOHqDxwy4WzXRKJwYm6iwf/9OJk5ctCAdZ6yi2ZqaGEvmf55fSVqMDrgg=="], + "@codemirror/view": ["@codemirror/view@6.43.1", "", { "dependencies": { "@codemirror/state": "^6.6.0", "crelt": "^1.0.6", "style-mod": "^4.1.0", "w3c-keyname": "^2.2.4" } }, "sha512-+BIjw/AG3tDQ4pJgTLPYdAW25eDE66YsvM4LKyVPgGzVgZ4a9Wj1SRX8kPVKgBDdPt8oHtZ15F0qx7p0oOHdHw=="], "@date-fns/tz": ["@date-fns/tz@1.5.0", "", {}, "sha512-lwYN/vDPeNRULcepoE/LO2Pgx+7/RV+S9ARfbc9lr2DtGkOD7pAiruHvbR1RX3Qyf6ja47EWJDMsNK5vK08DJg=="], - "@dotenvx/dotenvx": ["@dotenvx/dotenvx@1.75.1", "", { "dependencies": { "@dotenvx/primitives": "^0.8.0", "commander": "^11.1.0", "conf": "^10.2.0", "dotenv": "^17.2.1", "enquirer": "^2.4.1", "env-paths": "^2.2.1", "execa": "^5.1.1", "fdir": "^6.2.0", "ignore": "^5.3.0", "object-treeify": "1.1.33", "open": "^8.4.2", "picomatch": "^4.0.4", "systeminformation": "^5.22.11", "undici": "^7.11.0", "which": "^4.0.0", "yocto-spinner": "^1.1.0" }, "bin": { "dotenvx": "src/cli/dotenvx.js" } }, "sha512-/BITOC9dmS/edY2zQwZNicQ059O6RKabtQfyEafV0nGtfYRNHYy1DIPiYVcov40+tob9hfmBnbR963dS+EQ1DQ=="], + "@dotenvx/dotenvx": ["@dotenvx/dotenvx@1.71.3", "", { "dependencies": { "commander": "^11.1.0", "dotenv": "^17.2.1", "eciesjs": "^0.4.10", "enquirer": "^2.4.1", "execa": "^5.1.1", "fdir": "^6.2.0", "ignore": "^5.3.0", "object-treeify": "1.1.33", "picomatch": "^4.0.4", "which": "^4.0.0", "yocto-spinner": "^1.1.0" }, "bin": { "dotenvx": "src/cli/dotenvx.js" } }, "sha512-WSmox5aD+XxJEUEOTk7gKLpd5+Iz9Nik89Zpbu5DijMln6LsFiv3xpNKBMc/b9sSkUlKvAblzrhik2TqKFE7NA=="], - "@dotenvx/primitives": ["@dotenvx/primitives@0.8.0", "", {}, "sha512-VYJy0uhFm9zTJ1TxBaW/pA8bjbOM/OttaNMwZ1RHG4JKyRG7DhSdiqD1ipQoAyoD22olUtxbP78W9xY3Wd11bg=="], + "@ecies/ciphers": ["@ecies/ciphers@0.2.6", "", { "peerDependencies": { "@noble/ciphers": "^1.0.0" } }, "sha512-patgsRPKGkhhoBjETV4XxD0En4ui5fbX0hzayqI3M8tvNMGUoUvmyYAIWwlxBc1KX5cturfqByYdj5bYGRpN9g=="], "@electron/asar": ["@electron/asar@3.4.1", "", { "dependencies": { "commander": "^5.0.0", "glob": "^7.1.6", "minimatch": "^3.0.4" }, "bin": { "asar": "bin/asar.js" } }, "sha512-i4/rNPRS84t0vSRa2HorerGRXWyF4vThfHesw0dmcWHp+cspK743UanA0suA5Q5y8kzY2y6YKrvbIUn69BCAiA=="], @@ -450,17 +363,17 @@ "@electron/osx-sign": ["@electron/osx-sign@1.3.3", "", { "dependencies": { "compare-version": "^0.1.2", "debug": "^4.3.4", "fs-extra": "^10.0.0", "isbinaryfile": "^4.0.8", "minimist": "^1.2.6", "plist": "^3.0.5" }, "bin": { "electron-osx-flat": "bin/electron-osx-flat.js", "electron-osx-sign": "bin/electron-osx-sign.js" } }, "sha512-KZ8mhXvWv2rIEgMbWZ4y33bDHyUKMXnx4M0sTyPNK/vcB81ImdeY9Ggdqy0SWbMDgmbqyQ+phgejh6V3R2QuSg=="], - "@electron/rebuild": ["@electron/rebuild@4.1.0", "", { "dependencies": { "@malept/cross-spawn-promise": "^2.0.0", "debug": "^4.1.1", "node-abi": "^4.2.0", "node-api-version": "^0.2.1", "node-gyp": "^12.2.0", "read-binary-file-arch": "^1.0.6" }, "bin": { "electron-rebuild": "lib/cli.js" } }, "sha512-GFky+1JeO8fpSqtZCh+2wFRN/MVbAhm7tXI2M7BA1Os79OR8LEoxRtAbRPyxvmKWhEMF/p10rNJkkgP1klI13g=="], + "@electron/rebuild": ["@electron/rebuild@4.0.4", "", { "dependencies": { "@malept/cross-spawn-promise": "^2.0.0", "debug": "^4.1.1", "node-abi": "^4.2.0", "node-api-version": "^0.2.1", "node-gyp": "^12.2.0", "read-binary-file-arch": "^1.0.6" }, "bin": { "electron-rebuild": "lib/cli.js" } }, "sha512-Rzc39XPdk/+/wBG8MfwAHohXflep0ITUfulb6Rgz3R0NeSB1noE+E9/M/cb8ftCAiyDD9PPhLuuWgE1GaInbKg=="], "@electron/universal": ["@electron/universal@2.0.3", "", { "dependencies": { "@electron/asar": "^3.3.1", "@malept/cross-spawn-promise": "^2.0.0", "debug": "^4.3.1", "dir-compare": "^4.2.0", "fs-extra": "^11.1.1", "minimatch": "^9.0.3", "plist": "^3.1.0" } }, "sha512-Wn9sPYIVFRFl5HmwMJkARCCf7rqK/EurkfQ/rJZ14mHP3iYTjZSIOSVonEAnhWeAXwtw7zOekGRlc6yTtZ0t+g=="], "@electron/windows-sign": ["@electron/windows-sign@1.2.2", "", { "dependencies": { "cross-dirname": "^0.1.0", "debug": "^4.3.4", "fs-extra": "^11.1.1", "minimist": "^1.2.8", "postject": "^1.0.0-alpha.6" }, "bin": { "electron-windows-sign": "bin/electron-windows-sign.js" } }, "sha512-dfZeox66AvdPtb2lD8OsIIQh12Tp0GNCRUDfBHIKGpbmopZto2/A8nSpYYLoedPIHpqkeblZ/k8OV0Gy7PYuyQ=="], - "@emnapi/core": ["@emnapi/core@1.11.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.2", "tslib": "^2.4.0" } }, "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ=="], + "@emnapi/core": ["@emnapi/core@1.10.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" } }, "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw=="], - "@emnapi/runtime": ["@emnapi/runtime@1.11.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw=="], + "@emnapi/runtime": ["@emnapi/runtime@1.10.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA=="], - "@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.2", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA=="], + "@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w=="], "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA=="], @@ -530,25 +443,25 @@ "@eslint/plugin-kit": ["@eslint/plugin-kit@0.7.2", "", { "dependencies": { "@eslint/core": "^1.2.1", "levn": "^0.4.1" } }, "sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A=="], - "@fallow-cli/darwin-arm64": ["@fallow-cli/darwin-arm64@2.104.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-5kKt3JuoYVz5/9PpHdu8u41vOZ6CzIu+5SqNBR8MktGLVMBSERm85+NN63XqgbZrVwIC/5uiP8eHQ0RYw0qhHg=="], + "@fallow-cli/darwin-arm64": ["@fallow-cli/darwin-arm64@2.96.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-y5zqGloIyeDnLXtrmCDSaANK+jrEXIR9an3UokkIhtCvztq2/Oi4ha2kWgBuNDQhrT8dk9tXTYX/+lBV9a7Yhg=="], - "@fallow-cli/darwin-x64": ["@fallow-cli/darwin-x64@2.104.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-BEwwYccutb8RxyAm3uE8vwCJ3JSLYYeREj3fpLPFFCjh9eXBBo3Q1Mu5pxBjjUeehfbR6r/FLJb9JV28bCia9g=="], + "@fallow-cli/darwin-x64": ["@fallow-cli/darwin-x64@2.96.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-ofN1Y4MoGV2bO19j0p7REZBdflZJ7oSAAel8DOQkrcoAqa5rEu2iJAFO0u9I0gSDxQG/g++GawojPK2jWsGz7Q=="], - "@fallow-cli/linux-arm64-gnu": ["@fallow-cli/linux-arm64-gnu@2.104.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-IyIkmwxm0AfVKXfHYuSBO6Fzt6fgZsRE0arbtObeDlKSv7zZMzqHZPpbSGZxPEmVODBMScdSxxaFSli9xFHBTA=="], + "@fallow-cli/linux-arm64-gnu": ["@fallow-cli/linux-arm64-gnu@2.96.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-GlHpuXQhrK/BpDLV2GahGHSL+LawzufDLGfFujdrLCsOsCHggqWr0T3NR6fuzHgapel/nhtjBRzWJSYAMz0PLg=="], - "@fallow-cli/linux-arm64-musl": ["@fallow-cli/linux-arm64-musl@2.104.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-YskAeLCUUPnbwqtMC452ksI+miw6hN4K6peTFRJ0j2gSpkTriJfUgkudFB1+JX2/YqV41yDAqe5XeDYhuXxjOA=="], + "@fallow-cli/linux-arm64-musl": ["@fallow-cli/linux-arm64-musl@2.96.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-EAKnmAxvALNiSomznrT/UwGOSI3B/V2ISFoJFaIOcd+K2tVr9rbxNyv40gPWgzECWukiDn+u+vWMO+ul7fpd4A=="], - "@fallow-cli/linux-x64-gnu": ["@fallow-cli/linux-x64-gnu@2.104.0", "", { "os": "linux", "cpu": "x64" }, "sha512-v3Um0fXwTPg7kGRD1hKeS36A7P/3J7h3TiQ2KAzE8ThKkDViHYjKGEkajtGGSIj/Tv+GVnJBOvJ7i752/6iSBA=="], + "@fallow-cli/linux-x64-gnu": ["@fallow-cli/linux-x64-gnu@2.96.0", "", { "os": "linux", "cpu": "x64" }, "sha512-gobVZ9J1rhPanZyPkVHT0T9SmPHgC+C46IPPcjdjC0C655X7pAGV6CysVjvIBAo+pAIcUWVvkD5DiDa1OFYwgw=="], - "@fallow-cli/linux-x64-musl": ["@fallow-cli/linux-x64-musl@2.104.0", "", { "os": "linux", "cpu": "x64" }, "sha512-wMVyeSp5uHvzVUgNHk6xuTCisVOAUv8FTC6z1swANdLQlQgd4Trnu8GYwhJhO7cU9RuL85yn1XksCs6+PkRM8A=="], + "@fallow-cli/linux-x64-musl": ["@fallow-cli/linux-x64-musl@2.96.0", "", { "os": "linux", "cpu": "x64" }, "sha512-SjeU14V5SYUhXzYjKOVo2oijpxYSbMxKoiKzeiKNK+hmMGC7SoCPruP9jD8IdsTr1NmgR+MdkKafxuGmWBvWKw=="], - "@fallow-cli/win32-arm64-msvc": ["@fallow-cli/win32-arm64-msvc@2.104.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-qDRn7zoRKVAHVz+BqKUnUPa8H4gD/g26Fs/hqH9futbthecgjXmPyRJwycE8HTQBNlVwck5d5w36a+PEPsCYaQ=="], + "@fallow-cli/win32-arm64-msvc": ["@fallow-cli/win32-arm64-msvc@2.96.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-KL6Xf/J/XPOhK0VfIURFYCyJ11tfa4pn6+HzKc8hKa4DucwJlvpO+Pk4937hEQgCkLC/HmCzZWPn3rE7WiIvNQ=="], - "@fallow-cli/win32-x64-msvc": ["@fallow-cli/win32-x64-msvc@2.104.0", "", { "os": "win32", "cpu": "x64" }, "sha512-irER9HuZ9DXunl4H9RNsWQ9AvGmHs/Zp1+Yr2ATmgSNumERPXvgXa2IiGtCvKFqI72639TlhUj8+2WqIXZ54WQ=="], + "@fallow-cli/win32-x64-msvc": ["@fallow-cli/win32-x64-msvc@2.96.0", "", { "os": "win32", "cpu": "x64" }, "sha512-WXrNyYxqW4A1jMAZuMLInGuzL4E35kQlaDfLtGqkbC3vbbq36eMPmdoXuK8trtllqg0NA8Cd+KYQwN8xA8zzNA=="], "@floating-ui/core": ["@floating-ui/core@1.7.5", "", { "dependencies": { "@floating-ui/utils": "^0.2.11" } }, "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ=="], - "@floating-ui/dom": ["@floating-ui/dom@1.7.6", "", { "dependencies": { "@floating-ui/core": "^1.7.5", "@floating-ui/utils": "^0.2.11" } }, "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ=="], + "@floating-ui/dom": ["@floating-ui/dom@1.7.4", "", { "dependencies": { "@floating-ui/core": "^1.7.3", "@floating-ui/utils": "^0.2.10" } }, "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA=="], "@floating-ui/react-dom": ["@floating-ui/react-dom@2.1.8", "", { "dependencies": { "@floating-ui/dom": "^1.7.6" }, "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, "sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A=="], @@ -570,6 +483,16 @@ "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="], + "@inquirer/ansi": ["@inquirer/ansi@2.0.7", "", {}, "sha512-3eTuUO1vH2cZm2ZKHeQxnOqlTi9EfZDGgIe3BL3I4u+rJHocr9Fz86M4fjYABPvFnQG/gGK551HqDiIcETwU6Q=="], + + "@inquirer/confirm": ["@inquirer/confirm@6.1.1", "", { "dependencies": { "@inquirer/core": "^11.2.1", "@inquirer/type": "^4.0.7" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-eb8DBZcz/2qHWQda4rk2JiQk5h9QV/cVHi1yjt0f69WFZMRFn0sJTye3EAP8icut8UDMjQPsaH5KbcOogefrFQ=="], + + "@inquirer/core": ["@inquirer/core@11.2.1", "", { "dependencies": { "@inquirer/ansi": "^2.0.7", "@inquirer/figures": "^2.0.7", "@inquirer/type": "^4.0.7", "cli-width": "^4.1.0", "fast-wrap-ansi": "^0.2.0", "mute-stream": "^3.0.0", "signal-exit": "^4.1.0" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-Qd6GJT1yVyrZZCfN8W2qKF5ApmqryXRhRKCuip8h01x2w/esJQ2XIYc6f9abMIHgKQdBfFTSOdbHRLAhuM09UA=="], + + "@inquirer/figures": ["@inquirer/figures@2.0.7", "", {}, "sha512-aJ8TBPOGB6f/2qziPfElISTCEd5XOYTFckA2SGjhNmiKzfK/u4ot3v0DUzGVdUnKjN10EqnnEPck36BkyfLnJw=="], + + "@inquirer/type": ["@inquirer/type@4.0.7", "", { "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-t28inv14nMQ1PhKpsJPY+kEs/c00qzeCOS2gTNRyTjG5d6qsVA2fItxW4hkvGZ5lvanGLdtCzVIx5dwdRpN1+g=="], + "@isaacs/fs-minipass": ["@isaacs/fs-minipass@4.0.1", "", { "dependencies": { "minipass": "^7.0.4" } }, "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w=="], "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], @@ -584,7 +507,7 @@ "@lezer/common": ["@lezer/common@1.5.2", "", {}, "sha512-sxQE460fPZyU3sdc8lafxiPwJHBzZRy/udNFynGQky1SePYBdhkBl1kOagA9uT3pxR8K09bOrmTUqA9wb/PjSQ=="], - "@lezer/css": ["@lezer/css@1.3.4", "", { "dependencies": { "@lezer/common": "^1.2.0", "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.3.0" } }, "sha512-N+tn9tej2hPvyKgHEApMOQfHczDJCwxrRFS3SPn9QjYN+uwHvEDnCgKRrb3mxDYxRS8sKMM8fhC3+lc04Abz5Q=="], + "@lezer/css": ["@lezer/css@1.3.3", "", { "dependencies": { "@lezer/common": "^1.2.0", "@lezer/highlight": "^1.0.0", "@lezer/lr": "^1.3.0" } }, "sha512-RzBo8r+/6QJeow7aPHIpGVIH59xTcJXp399820gZoMo9noQDRVpJLheIBUicYwKcsbOYoBRoLZlf2720dG/4Tg=="], "@lezer/highlight": ["@lezer/highlight@1.2.3", "", { "dependencies": { "@lezer/common": "^1.3.0" } }, "sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g=="], @@ -602,17 +525,21 @@ "@livekit/mutex": ["@livekit/mutex@1.1.1", "", {}, "sha512-EsshAucklmpuUAfkABPxJNhzj9v2sG7JuzFDL4ML1oJQSV14sqrpTYnsaOudMAw9yOaW53NU3QQTlUQoRs4czw=="], - "@livekit/protocol": ["@livekit/protocol@1.46.6", "", { "dependencies": { "@bufbuild/protobuf": "^1.10.0" } }, "sha512-upzlHP1vi/kZ/QqALZTFskQ0ifqc2f15RKucHYOsIHJsaXvEYanG75mAb7o+Yomfs4XhQ4BaRsdY+TFHXpaqrg=="], + "@livekit/protocol": ["@livekit/protocol@1.45.8", "", { "dependencies": { "@bufbuild/protobuf": "^1.10.0" } }, "sha512-Q+l57E7w/xxOBFVWzdX5rkAZO7ffyF+rlDzNUYq2SU114+5aTyCq+PK4unaEVDNd4952Af7wteKr3sOgasGuaA=="], "@malept/cross-spawn-promise": ["@malept/cross-spawn-promise@2.0.0", "", { "dependencies": { "cross-spawn": "^7.0.1" } }, "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg=="], "@malept/flatpak-bundler": ["@malept/flatpak-bundler@0.4.0", "", { "dependencies": { "debug": "^4.1.1", "fs-extra": "^9.0.0", "lodash": "^4.17.15", "tmp-promise": "^3.0.2" } }, "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q=="], - "@marijn/find-cluster-break": ["@marijn/find-cluster-break@1.0.3", "", {}, "sha512-FY+MKLBoTsLNJF/eLWaOsXGdz6uh3Iu1axjPf6TUq92IYumcTcXWHoS747JARLkcdlJ/Waiaxc5wQfFO8jC6NA=="], + "@marijn/find-cluster-break": ["@marijn/find-cluster-break@1.0.2", "", {}, "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g=="], "@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.29.0", "", { "dependencies": { "@hono/node-server": "^1.19.9", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", "content-type": "^1.0.5", "cors": "^2.8.5", "cross-spawn": "^7.0.5", "eventsource": "^3.0.2", "eventsource-parser": "^3.0.0", "express": "^5.2.1", "express-rate-limit": "^8.2.1", "hono": "^4.11.4", "jose": "^6.1.3", "json-schema-typed": "^8.0.2", "pkce-challenge": "^5.0.0", "raw-body": "^3.0.0", "zod": "^3.25 || ^4.0", "zod-to-json-schema": "^3.25.1" }, "peerDependencies": { "@cfworker/json-schema": "^4.1.1" }, "optionalPeers": ["@cfworker/json-schema"] }, "sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ=="], - "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.6", "", { "dependencies": { "@tybys/wasm-util": "^0.10.3" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" } }, "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg=="], + "@mswjs/interceptors": ["@mswjs/interceptors@0.41.9", "", { "dependencies": { "@open-draft/deferred-promise": "^2.2.0", "@open-draft/logger": "^0.3.0", "@open-draft/until": "^2.0.0", "is-node-process": "^1.2.0", "outvariant": "^1.4.3", "strict-event-emitter": "^0.5.1" } }, "sha512-VVPPgHyQ6ShqnrmDWuxjmUIsO9gWyOZFmuOfLd9LfBGQJwZfy0gvv9pbHSJuoFNIYC7ZDX9aoFwowjcdSC4E8w=="], + + "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.5", "", { "dependencies": { "@tybys/wasm-util": "^0.10.2" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" } }, "sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q=="], + + "@noble/ciphers": ["@noble/ciphers@1.3.0", "", {}, "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw=="], "@noble/curves": ["@noble/curves@2.2.0", "", { "dependencies": { "@noble/hashes": "2.2.0" } }, "sha512-T/BoHgFXirb0ENSPBquzX0rcjXeM6Lo892a2jlYJkqk83LqZx0l1Of7DzlKJ6jkpvMrkHSnAcgb5JegL8SeIkQ=="], @@ -624,7 +551,13 @@ "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="], - "@oxc-project/types": ["@oxc-project/types@0.138.0", "", {}, "sha512-1a7ZKmrRTCoN1XMZ4L0PyyqrMnrNlLyPuOkdSX2MZg7IiIGRUyurNhAm73ptDOraoBcIordsIGKNPKUzy3ZmfA=="], + "@open-draft/deferred-promise": ["@open-draft/deferred-promise@3.0.0", "", {}, "sha512-XW375UK8/9SqUVNVa6M0yEy8+iTi4QN5VZ7aZuRFQmy76LRwI9wy5F4YIBU6T+eTe2/DNDo8tqu8RHlwLHM6RA=="], + + "@open-draft/logger": ["@open-draft/logger@0.3.0", "", { "dependencies": { "is-node-process": "^1.2.0", "outvariant": "^1.4.0" } }, "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ=="], + + "@open-draft/until": ["@open-draft/until@2.1.0", "", {}, "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg=="], + + "@oxc-project/types": ["@oxc-project/types@0.133.0", "", {}, "sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA=="], "@peculiar/asn1-schema": ["@peculiar/asn1-schema@2.8.0", "", { "dependencies": { "@peculiar/utils": "^2.0.2", "asn1js": "^3.0.10", "tslib": "^2.8.1" } }, "sha512-7YT0U/ze0tF2QOBbE15gKZwy5tvgGyLRiRHLzhlbOpf7BT032oBSd0haZqXn5W6l26WLlu3dyxzjM+2638/z2Q=="], @@ -640,21 +573,21 @@ "@radix-ui/react-context": ["@radix-ui/react-context@1.1.4", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-QwH4PO5urrbO+FaGd5Aglg+YJgWTyyuZ3g/6mKvsqraLkglDdckw9JafgL5McL5VEJ6EPNduPaT3ZE9BttDAqg=="], - "@radix-ui/react-dialog": ["@radix-ui/react-dialog@1.1.18", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-dismissable-layer": "1.1.14", "@radix-ui/react-focus-guards": "1.1.4", "@radix-ui/react-focus-scope": "1.1.11", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-portal": "1.1.13", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.7", "@radix-ui/react-slot": "1.3.0", "@radix-ui/react-use-controllable-state": "1.2.3", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.7.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-apa28mldjMgORmE6g/w3sCcA0Y9UAVeeDVoozN4i7kOw12mLl9RBchfzK3Nn6qxOWjrZhK1Lfy7f07kyzxtnBw=="], + "@radix-ui/react-dialog": ["@radix-ui/react-dialog@1.1.17", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-dismissable-layer": "1.1.13", "@radix-ui/react-focus-guards": "1.1.4", "@radix-ui/react-focus-scope": "1.1.10", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-portal": "1.1.12", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-slot": "1.3.0", "@radix-ui/react-use-controllable-state": "1.2.3", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.7.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-TDTYmpdq8dI2+Xgvgj9AJ8Ghqq+Eph/TRVEdaFQPDItIY+6QSkU7MJMeevw1568Yw/2Ijz8BTphPSP2XejKphw=="], - "@radix-ui/react-dismissable-layer": ["@radix-ui/react-dismissable-layer@1.1.14", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-primitive": "2.1.7", "@radix-ui/react-use-callback-ref": "1.1.2", "@radix-ui/react-use-effect-event": "0.0.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-4lUhWTWAjbDIqFrAPWJ3WqBOpO5YchVZ88X3nh6H9Lu5AFi5nCUeTPj3D8FSDmabmFeRe9ME0BDA4MwKTha5GQ=="], + "@radix-ui/react-dismissable-layer": ["@radix-ui/react-dismissable-layer@1.1.13", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-callback-ref": "1.1.2", "@radix-ui/react-use-escape-keydown": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-2v+zNAWWe0ySxgC0D0yeXMPQ23xZVgXZTerTz+JKlmdRj6gfTqmCcR29jb6d290DezXPGgruHWDX/vYUebtErg=="], "@radix-ui/react-focus-guards": ["@radix-ui/react-focus-guards@1.1.4", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-cot/aB/mOm0IYVYTTmQcEEK1M48lZWi8FlYe5nDPQQ8NYZUlXEFgncJ9p2Kzer3RKSrY7cTTpEMLZKNo9QoP5Q=="], - "@radix-ui/react-focus-scope": ["@radix-ui/react-focus-scope@1.1.11", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-primitive": "2.1.7", "@radix-ui/react-use-callback-ref": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Mn88Vg2whaRocGJNOH+DKFqYm6ySFPQaiwHNxZPyjn99B52KAEJWWY9NP83+nWdk2HM3rdov+STu9AG471Rt9w=="], + "@radix-ui/react-focus-scope": ["@radix-ui/react-focus-scope@1.1.10", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-callback-ref": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Fas/lXQqhVvqwAb64s5RFeHiHYElZ6SUQbZaNd6EkfhP/Al7wTIQ9WIR4QVX475tlu5yFCEdDcJH6/UwsZjMWw=="], "@radix-ui/react-id": ["@radix-ui/react-id@1.1.2", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-orBC88futVpqCmhX1p4cvquNHsELQ+w+vBJnuj3ftETI5bJb0bZn3Tqu3SWN2IOcPycTnMGnhwoermvISt72sA=="], - "@radix-ui/react-portal": ["@radix-ui/react-portal@1.1.13", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.7", "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-z3oXfmaHLJTF1wktbjgD6cn9jiEbq3WSondB10LIuIt2m2Ym4iJlrW04/euMwENDdWDdE7z+OuY7Qyp1YpRSwA=="], + "@radix-ui/react-portal": ["@radix-ui/react-portal@1.1.12", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-m309havGzsjLHHaIX50G5PlvRs3xkgPCsGk/5PTvYm8D5q33yG0J7w/712PTOhid7NTaFETtnSXjngHQavvhVw=="], "@radix-ui/react-presence": ["@radix-ui/react-presence@1.1.6", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-zdTk4PlUO0E18HnZ3wYbW0KkJJxWCdiNYp6g6X1PtONFhxVkg01vliTJAmwIszU6mHiyBOoW9P0rAugl5/hULQ=="], - "@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.7", "", { "dependencies": { "@radix-ui/react-slot": "1.3.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-bC3NiwsprbxKjuon9l7X6BUTw7FPVzEYaL92MPEY5SCd/9hUTPXVFtVwRix7778wtRsVao+zE062gL79FZleeQ=="], + "@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.6", "", { "dependencies": { "@radix-ui/react-slot": "1.3.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-wetd0QI77DbvrPpTAvH1SqOxsYF2wZe5TNxqwOd5Ty4XDpV3dpV0s8K/1MGMJBeY5o7lg8ub5VIt1Ub+yVen6g=="], "@radix-ui/react-slot": ["@radix-ui/react-slot@1.3.0", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.3" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA=="], @@ -662,41 +595,43 @@ "@radix-ui/react-use-controllable-state": ["@radix-ui/react-use-controllable-state@1.2.3", "", { "dependencies": { "@radix-ui/react-use-effect-event": "0.0.3", "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-PLzC90MS+ReootmjC597dvopoelpZ8Q61HJkDXZSExitIq7PL55vHNnesAHwguHK0aPfBnpdNzQtv1uliaqQrA=="], - "@radix-ui/react-use-effect-event": ["@radix-ui/react-use-effect-event@0.0.2", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA=="], + "@radix-ui/react-use-effect-event": ["@radix-ui/react-use-effect-event@0.0.3", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA=="], + + "@radix-ui/react-use-escape-keydown": ["@radix-ui/react-use-escape-keydown@1.1.2", "", { "dependencies": { "@radix-ui/react-use-callback-ref": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-2uVLvLjgO7NZCWw01/FdqRwmA42J0BcjPMUCA+koFEOAb+zjqIP7SiFz/7zWPrKnVmSqr76Omq2ALyCuX4dhLw=="], "@radix-ui/react-use-layout-effect": ["@radix-ui/react-use-layout-effect@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA=="], "@reduxjs/toolkit": ["@reduxjs/toolkit@2.12.0", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "@standard-schema/utils": "^0.3.0", "immer": "^11.0.0", "redux": "^5.0.1", "redux-thunk": "^3.1.0", "reselect": "^5.1.0" }, "peerDependencies": { "react": "^16.9.0 || ^17.0.0 || ^18 || ^19", "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" }, "optionalPeers": ["react", "react-redux"] }, "sha512-KiT+RzZbp6mQET+Mg+h2c97+9j1sNflUxQkIHI7Yuzf6Peu+OYpmkn6nbHWmLLWj+1ZODUJFwGZ7gx3L9R9EOw=="], - "@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.1.4", "", { "os": "android", "cpu": "arm64" }, "sha512-EZLpf/8y7GXkkra90ML47kzik/GMP3EMcE9bPyHmRfxLC6z9+aW5A8poCsoxjrT5GfEcNAAvWwUHjvP1pUQkfw=="], + "@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.0.3", "", { "os": "android", "cpu": "arm64" }, "sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw=="], - "@rolldown/binding-darwin-arm64": ["@rolldown/binding-darwin-arm64@1.1.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-aUi+HBvmYb7j8krl1+qJgkG8C17fO79gk3c+jPw4S8glRFc1DTija9S3EyaTSQUm5GJXYKDAsugBEhFHH2vYiQ=="], + "@rolldown/binding-darwin-arm64": ["@rolldown/binding-darwin-arm64@1.0.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA=="], - "@rolldown/binding-darwin-x64": ["@rolldown/binding-darwin-x64@1.1.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-F7hHC3gwY11+vByKPRWqwGbeXWVgKmL+pTGCinaEhdihzBV2aQ0fvZOch9cXYUOKuKKq429HeYXOqQLc7wFCEg=="], + "@rolldown/binding-darwin-x64": ["@rolldown/binding-darwin-x64@1.0.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg=="], - "@rolldown/binding-freebsd-x64": ["@rolldown/binding-freebsd-x64@1.1.4", "", { "os": "freebsd", "cpu": "x64" }, "sha512-sI5yw+7s92SK6odiEhD5lKCBlWcpjHS5qyqpVQbZAJ0fIzEUXrmbl3DH2ybR3PZogulNJF+COLtmA8hUfvkCCQ=="], + "@rolldown/binding-freebsd-x64": ["@rolldown/binding-freebsd-x64@1.0.3", "", { "os": "freebsd", "cpu": "x64" }, "sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g=="], - "@rolldown/binding-linux-arm-gnueabihf": ["@rolldown/binding-linux-arm-gnueabihf@1.1.4", "", { "os": "linux", "cpu": "arm" }, "sha512-mCi0OKgEieFircrtVYmQAFGszRtMnZ6fpZAXrxanXAu7lqZcsK1E1RAaZNG0uKAnxox3B1f4EyQNnoyMfN1vAA=="], + "@rolldown/binding-linux-arm-gnueabihf": ["@rolldown/binding-linux-arm-gnueabihf@1.0.3", "", { "os": "linux", "cpu": "arm" }, "sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw=="], - "@rolldown/binding-linux-arm64-gnu": ["@rolldown/binding-linux-arm64-gnu@1.1.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-B9Ial3Kv5sh0SHnB1g/QWcUQCEvCF6QKGAl4zXypYj65mVI+B4AhFBwPtSN7pDrJeIx8Z7zdy4ntx+wQABom7w=="], + "@rolldown/binding-linux-arm64-gnu": ["@rolldown/binding-linux-arm64-gnu@1.0.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw=="], - "@rolldown/binding-linux-arm64-musl": ["@rolldown/binding-linux-arm64-musl@1.1.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-lZVym0PuHE1KZ22gmFTC15lAkrg9iTszR617oYRB/iPY1A56ywoJzVKOJBKaot5RiikCObmur6pogpse3gRcng=="], + "@rolldown/binding-linux-arm64-musl": ["@rolldown/binding-linux-arm64-musl@1.0.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q=="], - "@rolldown/binding-linux-ppc64-gnu": ["@rolldown/binding-linux-ppc64-gnu@1.1.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-t2DNiLJWNTbnEHyUzTumldML6ET4/g16467LZoDDJ3tSxGvguL5/NyC2lCsNKuyRycg9XeDQF5SSv+TNOhQEXg=="], + "@rolldown/binding-linux-ppc64-gnu": ["@rolldown/binding-linux-ppc64-gnu@1.0.3", "", { "os": "linux", "cpu": "ppc64" }, "sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg=="], - "@rolldown/binding-linux-s390x-gnu": ["@rolldown/binding-linux-s390x-gnu@1.1.4", "", { "os": "linux", "cpu": "s390x" }, "sha512-0WIRnL1Uw4BvTZRLQt+PVgo6ZKTJadlC2btP+/EOXv2f/DWbY0rEgl+y834mIVwP1FkTlWVTrGGJXf12lru7EQ=="], + "@rolldown/binding-linux-s390x-gnu": ["@rolldown/binding-linux-s390x-gnu@1.0.3", "", { "os": "linux", "cpu": "s390x" }, "sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg=="], - "@rolldown/binding-linux-x64-gnu": ["@rolldown/binding-linux-x64-gnu@1.1.4", "", { "os": "linux", "cpu": "x64" }, "sha512-JWtGshGfX+oENAKonoNkqEJX+7hC8yfhi9GUyPX1VX4mdh1y5r+ZiJLR5XzAB0aoP6s/PcILsGjKq8O0mm24bw=="], + "@rolldown/binding-linux-x64-gnu": ["@rolldown/binding-linux-x64-gnu@1.0.3", "", { "os": "linux", "cpu": "x64" }, "sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg=="], - "@rolldown/binding-linux-x64-musl": ["@rolldown/binding-linux-x64-musl@1.1.4", "", { "os": "linux", "cpu": "x64" }, "sha512-rT6yQcxUuXs4CnbofqwHRRV0iem349rLMYpTjkgQGLjrY4ado/eDzwPZPTCgTOlF6Nkp8NEv70yLMTn6qkWxsQ=="], + "@rolldown/binding-linux-x64-musl": ["@rolldown/binding-linux-x64-musl@1.0.3", "", { "os": "linux", "cpu": "x64" }, "sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow=="], - "@rolldown/binding-openharmony-arm64": ["@rolldown/binding-openharmony-arm64@1.1.4", "", { "os": "none", "cpu": "arm64" }, "sha512-KXMGoboq5cyaCQjDA4GLuRiOwBQ0EyFnJoVViLeZ45/3rFItRODEr+NdsBcVpll40hhNArlm/speWGRvj08LzA=="], + "@rolldown/binding-openharmony-arm64": ["@rolldown/binding-openharmony-arm64@1.0.3", "", { "os": "none", "cpu": "arm64" }, "sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg=="], - "@rolldown/binding-wasm32-wasi": ["@rolldown/binding-wasm32-wasi@1.1.4", "", { "dependencies": { "@emnapi/core": "1.11.1", "@emnapi/runtime": "1.11.1", "@napi-rs/wasm-runtime": "^1.1.6" }, "cpu": "none" }, "sha512-5K83rb36oJiY7BCyE9zLZtGcPV4g5wvq+xwdO0XPIwDVZI8cyB/AUjkNXGb92/rnmezEkjMOpgY61rtwjQtFwg=="], + "@rolldown/binding-wasm32-wasi": ["@rolldown/binding-wasm32-wasi@1.0.3", "", { "dependencies": { "@emnapi/core": "1.10.0", "@emnapi/runtime": "1.10.0", "@napi-rs/wasm-runtime": "^1.1.4" }, "cpu": "none" }, "sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg=="], - "@rolldown/binding-win32-arm64-msvc": ["@rolldown/binding-win32-arm64-msvc@1.1.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-PnWBtw3TV5KOg69HQQDR0mnQuyCmSGR2pAB4DC1rPF808fgKeTUMj2EOEyKATpgiuxuR5APQmiDO7PDgEjTFSA=="], + "@rolldown/binding-win32-arm64-msvc": ["@rolldown/binding-win32-arm64-msvc@1.0.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g=="], - "@rolldown/binding-win32-x64-msvc": ["@rolldown/binding-win32-x64-msvc@1.1.4", "", { "os": "win32", "cpu": "x64" }, "sha512-M1lpniBePobTfsa7Ks9a199e1akxsXn+GYBUKsEzv3YFzOm1HJAMNwKI3qr0Zq+mxwx9gOZoTdP1yXRYsZUocQ=="], + "@rolldown/binding-win32-x64-msvc": ["@rolldown/binding-win32-x64-msvc@1.0.3", "", { "os": "win32", "cpu": "x64" }, "sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA=="], "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.1", "", {}, "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw=="], @@ -712,83 +647,85 @@ "@szmarczak/http-timer": ["@szmarczak/http-timer@4.0.6", "", { "dependencies": { "defer-to-connect": "^2.0.0" } }, "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w=="], - "@tailwindcss/node": ["@tailwindcss/node@4.3.2", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "enhanced-resolve": "5.21.6", "jiti": "^2.7.0", "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.3.2" } }, "sha512-yWP/sqEcBLaD8JuA6zNwxoYKr75qxTioYwlRwekj5Jr/I5GXnoJfjetH/psLUIv74cYTH2lBUEzBkinthoYcBg=="], + "@tabby_ai/hijri-converter": ["@tabby_ai/hijri-converter@1.0.5", "", {}, "sha512-r5bClKrcIusDoo049dSL8CawnHR6mRdDwhlQuIgZRNty68q0x8k3Lf1BtPAMxRf/GgnHBnIO4ujd3+GQdLWzxQ=="], - "@tailwindcss/oxide": ["@tailwindcss/oxide@4.3.2", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.3.2", "@tailwindcss/oxide-darwin-arm64": "4.3.2", "@tailwindcss/oxide-darwin-x64": "4.3.2", "@tailwindcss/oxide-freebsd-x64": "4.3.2", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.2", "@tailwindcss/oxide-linux-arm64-gnu": "4.3.2", "@tailwindcss/oxide-linux-arm64-musl": "4.3.2", "@tailwindcss/oxide-linux-x64-gnu": "4.3.2", "@tailwindcss/oxide-linux-x64-musl": "4.3.2", "@tailwindcss/oxide-wasm32-wasi": "4.3.2", "@tailwindcss/oxide-win32-arm64-msvc": "4.3.2", "@tailwindcss/oxide-win32-x64-msvc": "4.3.2" } }, "sha512-z8ZgnzX8gdNoWLBLqBPoh/sjnxkwvf9ZuWjnO0l0yIzbLa5/9S+eC5QxGZKRobVHIC3/1BoMWjHblqWjcgFgag=="], + "@tailwindcss/node": ["@tailwindcss/node@4.3.1", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "enhanced-resolve": "5.21.6", "jiti": "^2.7.0", "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.3.1" } }, "sha512-6NDaqRoAMSXD1mr/RXu0HBvNE9a2n5tHPsxu9XHLws8o4Twes5rBM2205SUUiJ9goAtadrN6xTGX0UDEwp/N4A=="], - "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.3.2", "", { "os": "android", "cpu": "arm64" }, "sha512-WHxqIuHpvZ5VtdX6GTl1Ik/Vp2YuN42Et+0CdeaVd/frQ9jAvGmvR8vLT+jk3e8/Q3x8kECB9+R17pgpp2BulA=="], + "@tailwindcss/oxide": ["@tailwindcss/oxide@4.3.1", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.3.1", "@tailwindcss/oxide-darwin-arm64": "4.3.1", "@tailwindcss/oxide-darwin-x64": "4.3.1", "@tailwindcss/oxide-freebsd-x64": "4.3.1", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.1", "@tailwindcss/oxide-linux-arm64-gnu": "4.3.1", "@tailwindcss/oxide-linux-arm64-musl": "4.3.1", "@tailwindcss/oxide-linux-x64-gnu": "4.3.1", "@tailwindcss/oxide-linux-x64-musl": "4.3.1", "@tailwindcss/oxide-wasm32-wasi": "4.3.1", "@tailwindcss/oxide-win32-arm64-msvc": "4.3.1", "@tailwindcss/oxide-win32-x64-msvc": "4.3.1" } }, "sha512-yVPyo8RNkabVr3O2EhHEE0Rewu7YKzc1DhIqfL46LKveFrmu9XbDazNOJY7/GRuvw1h6u3utWnR29H/p5JPlgA=="], - "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.3.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-GZypeUY/IDJW3877KeM+O67vbXr3MBnbtEL4aYhNErv/JWZhye2vGSWWG9tB6iiqR2MqRNkY8IOUy4NdSZV26w=="], + "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.3.1", "", { "os": "android", "cpu": "arm64" }, "sha512-SVlyf61g374l5cHyg8x9kf5xmLcOaxvOTsbsqDnSsDJaKOEFZ7GCvi84VAVGpxojYOs1+3K6M0UjXfqPU8vmOQ=="], - "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.3.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-UIIzmefR6KO1sDU7MzRqAxC8iBpft/VhkGjTjnhoS6k7Z3rQ9wEgA1ODSiyH/tcSYssulNm4Ci3hOeK1jH7ccQ=="], + "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.3.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-hVnWLwv+e/l7c4WKyVtHVrIPvYdqWHjRB3MDIqARynzFtnQg85kmQEFCbV9Ja0VVx4xXTIiDWY60Y7iz/iNoDA=="], - "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.3.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-GN+uAmcI6DNspnCDwtOAZrTz6oukJnp337qZvxqCGLd3BHBzJpO0ZbTLRvJNdztOeAmTzewewGIMPb0tk2R4WA=="], + "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.3.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-Cf7abu0WVgbhU7ANgPUnSAvm7nCvMweusHb8FnaHlLfv/Caq4GYaEZg7ZImzzmjx4lIAfuS8q+eLIS7A7IzxIg=="], - "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.3.2", "", { "os": "linux", "cpu": "arm" }, "sha512-4ABn7qSbdHRwTiDiuWNegCyb5+2FJ4vKIKc3DmKrvAFw7MU1Lm11dIkTPwUaFdTzc7IsOpDbqBrlh0x6y36U/w=="], + "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.3.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-ZZqzX2Y+GXtXXfqSfpJhDm60OoZfvLHLCgm+J7NVqgHHJjG/m9ugZI77RwTsVd4fnBJuCFP6Ae6kTJb71UdS8g=="], - "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.3.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-wDgEIGwoM8w8pufh9LVt1PahDgNdKXrLC2qfAnV3vAmococ9RWbxeAw4pxPttd/TsJfwjyLf90Dg1y9y8I6Emw=="], + "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.3.1", "", { "os": "linux", "cpu": "arm" }, "sha512-/Ah/xik0LaMYfv9DZ0S/t4pBlBNYOcqtRwusjgovHkvT8ixueWCLyJjsaF5kQIckjb4IT8Q6K6p/iPmZMixYgg=="], - "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.3.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-J5Nuk0uZQIiMTJj3LEx4sAA9tMFUoXQZFv1J6An+QGYe53HKRJuFDi0rpq/tuouCZeAbOBY3kQ6g8qeD4TUjtA=="], + "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.3.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-gqdFoVJlw444GvpnheZLHmvTzSxI/cOUUh2KSNejQjTcYkW062SVD+En0rUgD+QV91bz1XGIGtt1HJd48xUGbQ=="], - "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.3.2", "", { "os": "linux", "cpu": "x64" }, "sha512-kqCZpSKOBEJO4mz7OqWoofBZeXTAwaVGPj0ErAj7CojmhKpWVWVOnrt9dE8odoIraZq4oj3ausM37kXi+Tow8w=="], + "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.3.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-Bwv9KwOvE0VKa86xPFif9b9c3Y1NxOV1P0gLti/IYaWEsQYZXDlxfGEtA8mdDZ7SG3wyNXAWYT5SIn3giL57oA=="], - "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.3.2", "", { "os": "linux", "cpu": "x64" }, "sha512-cixpqbh2toJDmkuCRI68nXA8ZxNmdK9Y+9v5h3MC3ZQKy/0BO8AWzlkWyRM7JAFSGBlfig4YVTPsK6MVgqz1uw=="], + "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.3.1", "", { "os": "linux", "cpu": "x64" }, "sha512-Ymi8O8T15HYQdOUWUtTI6ldN0neHP85FC+Qz32xTcZ7iJXtem/x8ITev0o1e9e5rkqj4lONZfTRLvkmin1+tKg=="], - "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.3.2", "", { "dependencies": { "@emnapi/core": "^1.11.1", "@emnapi/runtime": "^1.11.1", "@emnapi/wasi-threads": "^1.2.2", "@napi-rs/wasm-runtime": "^1.1.4", "@tybys/wasm-util": "^0.10.2", "tslib": "^2.8.1" }, "cpu": "none" }, "sha512-4ec2Z/LOmRsAgU23CS4xeJfcJlmRg94A/XrbGRCF1gyU/zdDfRLYDVsS+ynSZCmGNxQ1jQriQOKMQeQxBA3Isw=="], + "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.3.1", "", { "os": "linux", "cpu": "x64" }, "sha512-M+P/91qJ6uILLw4k2G93GMDRAXj61SMvFQYt39AqvUqYgExXpLL5aepfns7sj4HiAQeolirQF9E0lzRvdf4zPQ=="], - "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.3.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-Zyr/M0+XcYZu3bZrUytc7TXvrk0ftWfl8gN2MwekNDzhqhKRUucMPSeOzM0o0wH5AWOU49BsKRrfKxI2atCPMQ=="], + "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.3.1", "", { "dependencies": { "@emnapi/core": "^1.10.0", "@emnapi/runtime": "^1.10.0", "@emnapi/wasi-threads": "^1.2.1", "@napi-rs/wasm-runtime": "^1.1.4", "@tybys/wasm-util": "^0.10.2", "tslib": "^2.8.1" }, "cpu": "none" }, "sha512-zsM8uOeqvVGHsAXsJxsT28ttosFahLJKCLOTUBqRAtKnVgGSRitds9T432QiT8b77Yga7JIBkulIRRlJPtYhRA=="], - "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.3.2", "", { "os": "win32", "cpu": "x64" }, "sha512-QI9BO7KlNZsp2GuO0jwAAj5jCDABOKXRkCk2XuKTSaNEFSdfzqswYVTtCHBNKHLsqyjFyFkqlDiwkNbTYSssMQ=="], + "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.3.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-aiNvSq9BsVk8V513lDKlrCFAgf8qBMPZTpgEhInL+NwQqs97mYmupVMrPrgBBSL8Pv/0zXu9MrMF9rMun1ZeNg=="], - "@tailwindcss/vite": ["@tailwindcss/vite@4.3.2", "", { "dependencies": { "@tailwindcss/node": "4.3.2", "@tailwindcss/oxide": "4.3.2", "tailwindcss": "4.3.2" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7 || ^8" } }, "sha512-eHpMeX4JXfVNJDEcsouTeCBubJBTcTLigeaw/NTUW6PB5ATKKXdyonnXgTBX2VuRbjz1hjfz6C5XAhr52ImQXA=="], + "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.3.1", "", { "os": "win32", "cpu": "x64" }, "sha512-xDEyu1rg290472FEGaKHnzyDyh5QH+AlWvsU5hMoMtPpzmKlRI0jaYKCgSHDYtaQWZOYbMaduSyCwFwY4n1HmA=="], - "@tanstack/devtools-event-client": ["@tanstack/devtools-event-client@0.3.5", "", {}, "sha512-RL1f5ZlfZMpghrCIdzl6mLOFLTuhqmPNblZgBaeKfdtk5rfbjykurv+VfYydOFXj0vxVIoA2d/zT7xfD7Ph8fw=="], + "@tailwindcss/vite": ["@tailwindcss/vite@4.3.1", "", { "dependencies": { "@tailwindcss/node": "4.3.1", "@tailwindcss/oxide": "4.3.1", "tailwindcss": "4.3.1" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7 || ^8" } }, "sha512-hItDHuIIlEV61R+faXu66s1K36aTurO/Qw0e45Vskz57gXl9pWOT6eg3zmcEui6CZXddbN7zd41bwmvag4JGwQ=="], + + "@tanstack/devtools-event-client": ["@tanstack/devtools-event-client@0.4.3", "", { "bin": { "intent": "bin/intent.js" } }, "sha512-OZI6QyULw0FI0wjgmeYzCIfbgPsOEzwJtCpa69XrfLMtNXLGnz3d/dIabk7frg0TmHo+Ah49w5I4KC7Tufwsvw=="], "@tanstack/history": ["@tanstack/history@1.162.0", "", {}, "sha512-79pf/RkhteYZTRgcR4F9kbk84P2N8rugQJswxfIqovlbRiT3yI7eBE+5QorIrZaOKktsgzRlXh1l/du/xpl4iA=="], "@tanstack/pacer": ["@tanstack/pacer@0.21.1", "", { "dependencies": { "@tanstack/devtools-event-client": "^0.4.3", "@tanstack/store": "^0.11.0" } }, "sha512-hB01dd4rlsYcTCNP7wK186jgAe6K5qimgM1Y5Jtvz+9PUaILvpmeLLjmQNUNSO1l23lIt+CeQR6mO1mjlPvRtQ=="], - "@tanstack/query-core": ["@tanstack/query-core@5.101.2", "", {}, "sha512-hH5MLoJhF7KaIGd7q3xTXGXvslI+GYlM1Z/35aSHHWaCJWB7XvTSHYuV3eM7tw+aE0mT/xMro4M4Q9rCGHT0lw=="], + "@tanstack/query-core": ["@tanstack/query-core@5.101.0", "", {}, "sha512-cQetA74EB+seWySv1TTKr828TnP0u39m6LykwDXIo84SNortpDkp30TMEjkqtYCNP9c40uT/iwl6MLiufEt0Ow=="], - "@tanstack/react-query": ["@tanstack/react-query@5.101.2", "", { "dependencies": { "@tanstack/query-core": "5.101.2" }, "peerDependencies": { "react": "^18 || ^19" } }, "sha512-seDkr6kzGzX1okaaTtZPtgA688CDPlXUz1C6xSg0ESqn04Vuc8tlrYms1s3de+znBqhPVxFRfpAfUf+6XvfPWg=="], + "@tanstack/react-query": ["@tanstack/react-query@5.101.0", "", { "dependencies": { "@tanstack/query-core": "5.101.0" }, "peerDependencies": { "react": "^18 || ^19" } }, "sha512-rLlJXSpkqfizLWgkR5+eLeIk0MvTx/meEIR7LRjxic+qxiQP8zVjq7BqQkiCMNLQBlLfuOLqqr6KO5GtrDlmSg=="], - "@tanstack/react-router": ["@tanstack/react-router@1.170.17", "", { "dependencies": { "@tanstack/history": "1.162.0", "@tanstack/react-store": "^0.9.3", "@tanstack/router-core": "1.171.14", "isbot": "^5.1.22" }, "peerDependencies": { "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0" } }, "sha512-ppLkjCfSMaeug9rmFRYzOd4TIqWV+yTE7tzIny7alJsSnM7w4lzEZm6eqCehG0SPetpZ0R3K+UnanSmBgOAVcQ=="], + "@tanstack/react-router": ["@tanstack/react-router@1.170.15", "", { "dependencies": { "@tanstack/history": "1.162.0", "@tanstack/react-store": "^0.9.3", "@tanstack/router-core": "1.171.13", "isbot": "^5.1.22" }, "peerDependencies": { "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0" } }, "sha512-GawYz7HEjj8rTUUDoT/SemDEVm63pZUO+2mOcXHY9Jl3EwMS5gFBnPu/2UvcrwRm1jN1k79fokc0d4aFmrLatg=="], "@tanstack/react-store": ["@tanstack/react-store@0.9.3", "", { "dependencies": { "@tanstack/store": "0.9.3", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-y2iHd/N9OkoQbFJLUX1T9vbc2O9tjH0pQRgTcx1/Nz4IlwLvkgpuglXUx+mXt0g5ZDFrEeDnONPqkbfxXJKwRg=="], - "@tanstack/react-virtual": ["@tanstack/react-virtual@3.14.5", "", { "dependencies": { "@tanstack/virtual-core": "3.17.3" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-4EKRXh7zBLkbKbFmG3AUVkircuHd+7OdT1pocJSepxtfBd3qnrJgJ5rtPkRYyo9fmyVb2+pI2xPy5oYvMLQy6A=="], + "@tanstack/react-virtual": ["@tanstack/react-virtual@3.14.2", "", { "dependencies": { "@tanstack/virtual-core": "3.17.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-IpWnmCLvuymRfeeLNVXIzNEYBFLpd3drVIS91sqV78VTZFyldlChkOocZRCPp1B+Wnk09bcLNme8WaMU/9/9bQ=="], - "@tanstack/router-core": ["@tanstack/router-core@1.171.14", "", { "dependencies": { "@tanstack/history": "1.162.0", "cookie-es": "^3.0.0", "seroval": "^1.5.4", "seroval-plugins": "^1.5.4" } }, "sha512-Mo3hwx0qB0cJsVYGDjG0+Ouf7VV74h/vsoDMGztdlyzDanp4gBA2s7IVvm6hFrmQM6GpD9F0Z7SqD7OldfLE7g=="], + "@tanstack/router-core": ["@tanstack/router-core@1.171.13", "", { "dependencies": { "@tanstack/history": "1.162.0", "cookie-es": "^3.0.0", "seroval": "^1.5.4", "seroval-plugins": "^1.5.4" } }, "sha512-+NOwEj1kO/6IGmpHRIZHasYxYWpyBQGNIZAST9aNrk9Q3YlU9SgqVnl1pbLa9qAKfeNdXQIRve0RQb/0kyDeDA=="], - "@tanstack/store": ["@tanstack/store@0.9.3", "", {}, "sha512-8reSzl/qGWGGVKhBoxXPMWzATSbZLZFWhwBAFO9NAyp0TxzfBP0mIrGb8CP8KrQTmvzXlR/vFPPUrHTLBGyFyw=="], + "@tanstack/store": ["@tanstack/store@0.11.0", "", {}, "sha512-WlzzCt3xi0G6pCAJu1U+2jiECwabETDpQDi3hfkFZvJii9AuZqEKbOiVarX1/bWhTNjU486yQtJCCasi/0q+Cw=="], - "@tanstack/virtual-core": ["@tanstack/virtual-core@3.17.3", "", {}, "sha512-8Np/TFELpI0ySuJoVmjvOrQYXH/8sTX0Biv9szhFhY39xOdAAY+smrMxjxOum/ux3eM8MUJQsEJ0/R0UpvC8dw=="], + "@tanstack/virtual-core": ["@tanstack/virtual-core@3.17.0", "", {}, "sha512-gOxY/hFkPh/XQYhnThBHzkbkX3Ed+z/iushyz+R+JAr213aXxUDgQoTgTdrDpBSRsjFM73P/KfUyWmaF9WHMkQ=="], - "@tauri-apps/api": ["@tauri-apps/api@2.11.1", "", {}, "sha512-M2FPuYND2m+wh5hfW9ZpSdxMPdEJovPBWwoHJmwUpysTYNHaOkVFN419m/K0LIgjb/7KU2vBgsUepJWugQCvAA=="], + "@tauri-apps/api": ["@tauri-apps/api@2.11.0", "", {}, "sha512-7CinYODhky9lmO23xHnUFv0Xt43fbtWMyxZcLcRBlFkcgXKuEirBvHpmtJ89YMhyeGcq20Wuc47Fa4XjyniywA=="], - "@tauri-apps/cli": ["@tauri-apps/cli@2.11.4", "", { "optionalDependencies": { "@tauri-apps/cli-darwin-arm64": "2.11.4", "@tauri-apps/cli-darwin-x64": "2.11.4", "@tauri-apps/cli-linux-arm-gnueabihf": "2.11.4", "@tauri-apps/cli-linux-arm64-gnu": "2.11.4", "@tauri-apps/cli-linux-arm64-musl": "2.11.4", "@tauri-apps/cli-linux-riscv64-gnu": "2.11.4", "@tauri-apps/cli-linux-x64-gnu": "2.11.4", "@tauri-apps/cli-linux-x64-musl": "2.11.4", "@tauri-apps/cli-win32-arm64-msvc": "2.11.4", "@tauri-apps/cli-win32-ia32-msvc": "2.11.4", "@tauri-apps/cli-win32-x64-msvc": "2.11.4" }, "bin": { "tauri": "tauri.js" } }, "sha512-R8xGtMpwyetawSqm9kYOuMmEqkhUbvcUy8n0aNXIxollKBLESUu5f4Fx+64hgASYm1H+jSWq6jCW6zqTnH6hqQ=="], + "@tauri-apps/cli": ["@tauri-apps/cli@2.11.2", "", { "optionalDependencies": { "@tauri-apps/cli-darwin-arm64": "2.11.2", "@tauri-apps/cli-darwin-x64": "2.11.2", "@tauri-apps/cli-linux-arm-gnueabihf": "2.11.2", "@tauri-apps/cli-linux-arm64-gnu": "2.11.2", "@tauri-apps/cli-linux-arm64-musl": "2.11.2", "@tauri-apps/cli-linux-riscv64-gnu": "2.11.2", "@tauri-apps/cli-linux-x64-gnu": "2.11.2", "@tauri-apps/cli-linux-x64-musl": "2.11.2", "@tauri-apps/cli-win32-arm64-msvc": "2.11.2", "@tauri-apps/cli-win32-ia32-msvc": "2.11.2", "@tauri-apps/cli-win32-x64-msvc": "2.11.2" }, "bin": { "tauri": "tauri.js" } }, "sha512-bk3HemqvGRoy+5D/dVMUQHKMYLglD0jVnMm/0iGMH6ufZ+p8r14m6BpIixwij3PBvZdvORUp1YifTD8QxVZ1Nw=="], - "@tauri-apps/cli-darwin-arm64": ["@tauri-apps/cli-darwin-arm64@2.11.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-1ryOF3ZhpZ/nemHV5zVwBQBz9jDGKmKPvWPADOhc83ig0P4bMc2iER4NbC6r9sjeIZ6RVQ4g3RZIYvezhcl4TQ=="], + "@tauri-apps/cli-darwin-arm64": ["@tauri-apps/cli-darwin-arm64@2.11.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-+4UZzLt+eOAEQCwgd+TqKgyUJMrvx+BgdXLLaqJYmPqzP+nE6YZr/hY6CWLYGQb8jFn99jEkmC6uA3tNvamA1w=="], - "@tauri-apps/cli-darwin-x64": ["@tauri-apps/cli-darwin-x64@2.11.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-uFsGQAAfuyz1k/yGLmkWfkBlgKAqZfxqlHmLWx81QU27RJWfmbNHCIq8T8w1e+VClleIuZUjpHWfoE4E3DLo3A=="], + "@tauri-apps/cli-darwin-x64": ["@tauri-apps/cli-darwin-x64@2.11.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-VjYYtZUPqDMLutSfJEyxFE3Bz+DPi7c8wC3imckgvciLDZLq4qwKJxBicg0BXGhXjJsl8vKWgWRFNMPELQ+Xyg=="], - "@tauri-apps/cli-linux-arm-gnueabihf": ["@tauri-apps/cli-linux-arm-gnueabihf@2.11.4", "", { "os": "linux", "cpu": "arm" }, "sha512-IaHZn5CdBL21oUmjiVOS1ctw6Ip1O0pjp70FwOWmYz1myWe0SY96ZIj2FYf7pT0m8bI2h/hrs5ZbEXXh44/MkQ=="], + "@tauri-apps/cli-linux-arm-gnueabihf": ["@tauri-apps/cli-linux-arm-gnueabihf@2.11.2", "", { "os": "linux", "cpu": "arm" }, "sha512-yMemD6f4i95AQriS8EazyOFzbE34yjnP16i3IOzpHGQvBoy2DjypFMFBq0NtPuITURv/cOGguRtHR5d79/9CSA=="], - "@tauri-apps/cli-linux-arm64-gnu": ["@tauri-apps/cli-linux-arm64-gnu@2.11.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-N41/ukTRVe6XSuUTESuFdGeOW2i7k62tK+6gHK5Kd5/q5RPvvi19GaWAVPPb9u95HSGmTChSolBfzynUsssFaA=="], + "@tauri-apps/cli-linux-arm64-gnu": ["@tauri-apps/cli-linux-arm64-gnu@2.11.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-cgI91D2wL8GSgoWwZXDqt+DwnuZCP2/bz03QAE4TrhgAKIsrB4hX26W/H1EONPUUNkqrsgeCD0wU6pcNjV/5kw=="], - "@tauri-apps/cli-linux-arm64-musl": ["@tauri-apps/cli-linux-arm64-musl@2.11.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-v277UnT/fB64xAfSroL5N3Km3tLmvATWqJJw/wRI+g6o+HkeD0slyE7gOhNs1MbjE41R7bQOTxMVoL3aomUJmw=="], + "@tauri-apps/cli-linux-arm64-musl": ["@tauri-apps/cli-linux-arm64-musl@2.11.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-X1rm0BERqAAggtYTESSgXrS3sz4Sb/OiPiz54UqISlXW+GkR3vNIGnsy/lejNmoXGVqri3Q53BCfQiclOIyRPw=="], - "@tauri-apps/cli-linux-riscv64-gnu": ["@tauri-apps/cli-linux-riscv64-gnu@2.11.4", "", { "os": "linux", "cpu": "none" }, "sha512-qqgNkQ2u1yZHxjhxsZaxUtRDW8dIqIYm33rx/mzwQv0SfY9x1B+iraj8vWeFiXjjSVVhEMepXSOts1TqPzvXNQ=="], + "@tauri-apps/cli-linux-riscv64-gnu": ["@tauri-apps/cli-linux-riscv64-gnu@2.11.2", "", { "os": "linux", "cpu": "none" }, "sha512-usbMLJbT3KtkOrBMDVeGYNM35aTHXx38SJSzTMSqqjeUIOQ+iVPjb2yAGNAE+KqmBbAx4FOFIyMeKXx2M/JKGQ=="], - "@tauri-apps/cli-linux-x64-gnu": ["@tauri-apps/cli-linux-x64-gnu@2.11.4", "", { "os": "linux", "cpu": "x64" }, "sha512-2VRNWl84FOH0m2giiDkO2h0QXlcMJeX+zJDpI5kDIQAx6s+geF3v48F4DXfJez4GS/FdoDGnPnw1C2iYGbQ7bQ=="], + "@tauri-apps/cli-linux-x64-gnu": ["@tauri-apps/cli-linux-x64-gnu@2.11.2", "", { "os": "linux", "cpu": "x64" }, "sha512-Ru4gwJKPG0ctVGchRGpRup4Y4lW2SSfFnrbQcyHhCliKy4g8Qz97TrUgCur4CbWyAgKxvGh3SjrkA0LDYzDGiw=="], - "@tauri-apps/cli-linux-x64-musl": ["@tauri-apps/cli-linux-x64-musl@2.11.4", "", { "os": "linux", "cpu": "x64" }, "sha512-o9GyhYor/nc7xarmwDE3ka2szuW3uuZzXjHWh64Q8YX5AtSgxdQkFWzrY4O8KiGtVNvFBI14H3Q49Qj5TOIP/A=="], + "@tauri-apps/cli-linux-x64-musl": ["@tauri-apps/cli-linux-x64-musl@2.11.2", "", { "os": "linux", "cpu": "x64" }, "sha512-eUm7T6clN1MMmNSRQ9gaWsQdyehQx2Gmn5hht/QUlqZQI/qcP2OJK5dnaxqwFzCr2HdsEo9ydxaqcS1oJzMvUw=="], - "@tauri-apps/cli-win32-arm64-msvc": ["@tauri-apps/cli-win32-arm64-msvc@2.11.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-ld5Ehb598m0VkYyylRPNeCFsBe/km0jxis6KgMpl3IGY6I/i1RwQXO05I1AsXUXO2WC6AvB/Lw4qTf/asiuEiQ=="], + "@tauri-apps/cli-win32-arm64-msvc": ["@tauri-apps/cli-win32-arm64-msvc@2.11.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-HeeZW80jU+gVTOEX4X/hC6NVSAdDVXajwP5fxIZ/3z9WvUC7qrudX2GMTilYq6Dg0e0sk0XgsAJD1hZ5wPBXUA=="], - "@tauri-apps/cli-win32-ia32-msvc": ["@tauri-apps/cli-win32-ia32-msvc@2.11.4", "", { "os": "win32", "cpu": "ia32" }, "sha512-12Hxi0XX/H5VFxO/bGgHkFWhml9VMgEOu9CidjeCeTNQ1l6fpUlbiGgSP7CLI3PFtW9/FfbeHieZ+kyWK5H7CA=="], + "@tauri-apps/cli-win32-ia32-msvc": ["@tauri-apps/cli-win32-ia32-msvc@2.11.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-YhjQNZcXfbkCLyazSv1nPnJ9iRFE1wm6kc51FDbU10/Dk09io+6PAGMLjkxnX2GdM0qMnDmTjstY8mTDVvtKeA=="], - "@tauri-apps/cli-win32-x64-msvc": ["@tauri-apps/cli-win32-x64-msvc@2.11.4", "", { "os": "win32", "cpu": "x64" }, "sha512-+vDiqBIU5dMISg/wNvX3sF+ZHfgJGJ5T0AcO+EHNXV9GGAG+P5fzodlDXD3QdKCRgZxMoCm5PPvj3BqLNjBthw=="], + "@tauri-apps/cli-win32-x64-msvc": ["@tauri-apps/cli-win32-x64-msvc@2.11.2", "", { "os": "win32", "cpu": "x64" }, "sha512-d2JchlFIpZevZVReyqhQOekJmb1UH3rhZ5VX6sH3ty9ETE0TKQavpihvoScUXfKKpW6HZC0MrFGRU0ZtD+w3gA=="], "@tauri-apps/plugin-barcode-scanner": ["@tauri-apps/plugin-barcode-scanner@2.4.5", "", { "dependencies": { "@tauri-apps/api": "^2.11.0" } }, "sha512-sIPRYEfxww8/y8skZ2LcAp/h5bwvlHkQiq+3w6QEl+2BHs13xnpn7hP+pv4fkBs8DyDfpUbOBIYS5YBwP7x1QQ=="], @@ -808,8 +745,6 @@ "@tensamin/markdown": ["@tensamin/markdown@workspace:packages/markdown"], - "@tensamin/mtp": ["@tensamin/mtp@workspace:packages/mtp"], - "@tensamin/notifications": ["@tensamin/notifications@workspace:packages/notifications"], "@tensamin/shared": ["@tensamin/shared@workspace:packages/shared"], @@ -820,7 +755,11 @@ "@tensamin/tauth": ["@tensamin/tauth@workspace:packages/tauth"], - "@tensamin/ui": ["@tensamin/ui@https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz", { "dependencies": { "@base-ui/react": "^1.6.0", "@fontsource-variable/inter": "^5.2.8", "@tauri-apps/api": "^2.11.1", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", "date-fns": "^4.4.0", "embla-carousel-react": "^8.6.0", "input-otp": "^1.4.2", "lucide-react": "^1.21.0", "next-themes": "^0.4.6", "react-day-picker": "^10.0.1", "react-resizable-panels": "^4.11.2", "recharts": "3.8.1", "shadcn": "^4.11.0", "sonner": "^2.0.7", "tailwind-merge": "^3.6.0", "tw-animate-css": "^1.4.0", "vaul": "^1.1.2" }, "peerDependencies": { "react": "^19.2.7", "react-dom": "^19.2.7" } }, "sha512-tOvNNwGWnj/LJCXHIUtN+uZG2VoRUGZXuVAoHP18OypgsmlSbx2iQNhkLF1t1qnIboVf5V5mvraVGLXtz4csgQ=="], + "@tensamin/ttp": ["@tensamin/ttp@workspace:packages/ttp"], + + "@tensamin/ttp-core": ["@tensamin/ttp-core@https://git.methanium.net/tensamin/ttp/archive/0.0.24.tar.gz", { "dependencies": { "@eslint/js": "^10.0.1", "@tauri-apps/api": "^2.9.0", "@typescript-eslint/parser": "^8.59.1", "@webtransport-bun/webtransport": "^0.3.0", "globals": "^17.5.0", "typescript": "^6.0.3", "typescript-eslint": "^8.59.1", "zod": "^4.4.1" } }, "sha512-Db94CDOTYvzJSQDZGDgziUXRvXx9PiEfYDQt6sYe8Nyg+KD/aiKnyQx7NeEiG03TfYE3ogNxXOsrcsip4di8+g=="], + + "@tensamin/ui": ["@tensamin/ui@https://git.methanium.net/tensamin/ui/archive/0.0.37.tar.gz", { "dependencies": { "@base-ui/react": "^1.3.0", "@fontsource-variable/inter": "^5.2.6", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", "date-fns": "^4.1.0", "embla-carousel-react": "^8.6.0", "input-otp": "^1.4.2", "lucide-react": "^1.8.0", "next-themes": "^0.4.6", "react-day-picker": "^9.14.0", "react-resizable-panels": "^4.10.0", "recharts": "3.8.0", "shadcn": "^3.5.0", "sonner": "^2.0.7", "tailwind-merge": "^3.5.0", "tw-animate-css": "^1.3.0", "vaul": "^1.1.2" }, "peerDependencies": { "react": "^19.2.0", "react-dom": "^19.2.0" } }, "sha512-yxZjHxzagey2+r5UqXi2+Z2GYVSuj2QKVtitHLAuXzdidobGDdtV8tHkTJP7WKLdFASJ/g4ULSWvGJ12PHPoaw=="], "@tensamin/user": ["@tensamin/user@workspace:packages/user"], @@ -828,7 +767,7 @@ "@ts-morph/common": ["@ts-morph/common@0.27.0", "", { "dependencies": { "fast-glob": "^3.3.3", "minimatch": "^10.0.1", "path-browserify": "^1.0.1" } }, "sha512-Wf29UqxWDpc+i61k3oIOzcUfQt79PIT9y/MWfAGlrkjg6lBC1hwDECLXPVJAhWjiGbfBCxZd65F/LIZF3+jeJQ=="], - "@tybys/wasm-util": ["@tybys/wasm-util@0.10.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg=="], + "@tybys/wasm-util": ["@tybys/wasm-util@0.10.2", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg=="], "@types/cacheable-request": ["@types/cacheable-request@6.0.3", "", { "dependencies": { "@types/http-cache-semantics": "*", "@types/keyv": "^3.1.4", "@types/node": "*", "@types/responselike": "^1.0.0" } }, "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw=="], @@ -868,7 +807,7 @@ "@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="], - "@types/node": ["@types/node@25.9.4", "", { "dependencies": { "undici-types": ">=7.24.0 <7.24.7" } }, "sha512-dszCsrKb5U7ZsVZBWiHFklTloVl0mSEnWH/iZXfZUlI4rzCUnsvGmgqfuVRHL54ugE7/wRuxEIXRa2iMZ+BG6g=="], + "@types/node": ["@types/node@25.9.3", "", { "dependencies": { "undici-types": ">=7.24.0 <7.24.7" } }, "sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg=="], "@types/qrcode": ["@types/qrcode@1.5.6", "", { "dependencies": { "@types/node": "*" } }, "sha512-te7NQcV2BOvdj2b1hCAHzAoMNuj65kNBMz0KBaxM6c3VGBOhU0dURQKOtH8CFNI/dsKkwlv32p26qYQTWoB5bw=="], @@ -878,33 +817,39 @@ "@types/responselike": ["@types/responselike@1.0.3", "", { "dependencies": { "@types/node": "*" } }, "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw=="], + "@types/set-cookie-parser": ["@types/set-cookie-parser@2.4.10", "", { "dependencies": { "@types/node": "*" } }, "sha512-GGmQVGpQWUe5qglJozEjZV/5dyxbOOZ0LHe/lqyWssB88Y4svNfst0uqBVscdDeIKl5Jy5+aPSvy7mI9tYRguw=="], + + "@types/statuses": ["@types/statuses@2.0.6", "", {}, "sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA=="], + "@types/use-sync-external-store": ["@types/use-sync-external-store@0.0.6", "", {}, "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg=="], "@types/validate-npm-package-name": ["@types/validate-npm-package-name@4.0.2", "", {}, "sha512-lrpDziQipxCEeK5kWxvljWYhUvOiB2A9izZd9B2AFarYAkqZshb4lPbRs7zKEic6eGtH8V/2qJW+dPp9OtF6bw=="], "@types/yauzl": ["@types/yauzl@2.10.3", "", { "dependencies": { "@types/node": "*" } }, "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q=="], - "@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.62.1", "", { "dependencies": { "@eslint-community/regexpp": "^4.12.2", "@typescript-eslint/scope-manager": "8.62.1", "@typescript-eslint/type-utils": "8.62.1", "@typescript-eslint/utils": "8.62.1", "@typescript-eslint/visitor-keys": "8.62.1", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.62.1", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-4EQM77WgVNxj7OkL/5b/D/xZsw00G577+UriYTC7JF5opcF3T2AuoeY7ueLaZgSVjSgCS6yOAJB5bRGLPSJUzA=="], + "@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.61.1", "", { "dependencies": { "@eslint-community/regexpp": "^4.12.2", "@typescript-eslint/scope-manager": "8.61.1", "@typescript-eslint/type-utils": "8.61.1", "@typescript-eslint/utils": "8.61.1", "@typescript-eslint/visitor-keys": "8.61.1", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.61.1", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-ZPlVl3PB3et/59Ne0fv/sci6ZXz4T4Hp4nTJ56i/Y0gR89ARb+KphojTq6j+56E5PIezmOIOOWyY+aWQFd+IkQ=="], - "@typescript-eslint/parser": ["@typescript-eslint/parser@8.62.1", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.62.1", "@typescript-eslint/types": "8.62.1", "@typescript-eslint/typescript-estree": "8.62.1", "@typescript-eslint/visitor-keys": "8.62.1", "debug": "^4.4.3" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-sPhE4iHuJDSvoAiec+Ro8JyXw8f0ql13HFR82P99nCm9GwTEKG0KYLvDe6REk8BCXuit6vJAv/Yxg5ABaNS2rA=="], + "@typescript-eslint/parser": ["@typescript-eslint/parser@8.61.1", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.61.1", "@typescript-eslint/types": "8.61.1", "@typescript-eslint/typescript-estree": "8.61.1", "@typescript-eslint/visitor-keys": "8.61.1", "debug": "^4.4.3" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-PJ5vePq5/ognBbrIcoC5+SHO5dfpeLPzP9FpLkzWrguoYQEeeSjlJpVwOpo1JRSTEi7dRcwNy4h4dzV70PqHcg=="], - "@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.62.1", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.62.1", "@typescript-eslint/types": "^8.62.1", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-yQ3RgY5RkSBpsNS1Bx/JQEcA24FOSdfGktoyprAr5u18390UQdtVcfnEv4nIrIshNnavlVyZBKxQwT1fIAE6cg=="], + "@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.61.1", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.61.1", "@typescript-eslint/types": "^8.61.1", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-PrC4JYGmR241lYnfhmKGTXkFqv8+ymbTFgSAY0fVXpY82/QkMw5TZPl+vGzuDDU2QYJk9fIDOBTntF+yDv9LEA=="], - "@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.62.1", "", { "dependencies": { "@typescript-eslint/types": "8.62.1", "@typescript-eslint/visitor-keys": "8.62.1" } }, "sha512-r4d249KbQ1SFdpeStvob8Ih6aPPIzfqllPVOtvhve6ZcpuVcYo5/7zUWckKpHE7StASX4kTKZTLf0WQm/wPkcg=="], + "@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.61.1", "", { "dependencies": { "@typescript-eslint/types": "8.61.1", "@typescript-eslint/visitor-keys": "8.61.1" } }, "sha512-L2bdIeoQS8FlKAvONAr20w6OcLXeB+qiDKbAooS9A0Ben+iSIkBef0FxqwKWYqt5sa0i4KJtxVyVmhMylKzF5w=="], - "@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.62.1", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-xadytJqX9vJVQ2fdQjkcIVigwaOJNWkpjdLt6cEQ+xPnrI1fkp+/jZE/I97k9KUjqtpd25i0HeyZf3T6dutv2g=="], + "@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.61.1", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-UN/H4di+OO7EWx2ovME+8t31YO+KVnK0RRKEHR3kOt21/Ay8BOq3M1OMvWs5vNiqcFCYGYoxK3MXPZzmMUE+yg=="], - "@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.62.1", "", { "dependencies": { "@typescript-eslint/types": "8.62.1", "@typescript-eslint/typescript-estree": "8.62.1", "@typescript-eslint/utils": "8.62.1", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-aXM5xlqXiTxPibXB93cLAURfT3rlizf7uMXISCXy66Isr/9hISJx3yDsKl0L7lKa51b8JpFuNKby0/O0pEm9jg=="], + "@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.61.1", "", { "dependencies": { "@typescript-eslint/types": "8.61.1", "@typescript-eslint/typescript-estree": "8.61.1", "@typescript-eslint/utils": "8.61.1", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-GYRicKmVK0C4fsKgaACaknOUAq9Oa2kwsjnpFhFcS/5p4Ht5IP9OVLbgIgcK4SRk92nVHFluurg1lumD9dBcLw=="], - "@typescript-eslint/types": ["@typescript-eslint/types@8.62.1", "", {}, "sha512-ooCzJFaf+Hg+uG6fA3NRFGuFjlfNlDhBthbv4ZPU/0elCAFUfnyXUvf/WOpHz/jYwSmvU2GkR2LtyUfy1AxZ1Q=="], + "@typescript-eslint/types": ["@typescript-eslint/types@8.61.1", "", {}, "sha512-G+CRlPqLv7Bz1IZVs03x5K59F1veqL0EJUROAdGhKsEq8qOiRiZbI+HUojPq5l0fEGOKModD9br6lObhB8zkoA=="], - "@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.62.1", "", { "dependencies": { "@typescript-eslint/project-service": "8.62.1", "@typescript-eslint/tsconfig-utils": "8.62.1", "@typescript-eslint/types": "8.62.1", "@typescript-eslint/visitor-keys": "8.62.1", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-xMcW9oP9u7fAMXYs9A65CVmtLQe2r//oXINHfi8HV+oiqhih17sbLdhXr4540YWlgpDKQdY854OL5ZrdCiQsAA=="], + "@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.61.1", "", { "dependencies": { "@typescript-eslint/project-service": "8.61.1", "@typescript-eslint/tsconfig-utils": "8.61.1", "@typescript-eslint/types": "8.61.1", "@typescript-eslint/visitor-keys": "8.61.1", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-u+oQD3BqYWPc8YV9Zab4vaJElJuwOLPRc10Jm1o/qS+6Qwen14HCWwx0Seo4LnSn2wxea2Ik8DxPt2/FHmuhrg=="], - "@typescript-eslint/utils": ["@typescript-eslint/utils@8.62.1", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.62.1", "@typescript-eslint/types": "8.62.1", "@typescript-eslint/typescript-estree": "8.62.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-sHtbPfuKNZCG+ih8SyjjucqRntSVmp8XgL5u6o9mAhiSn8ds5o/M/XdM0abweme2Tln3szOstOrZ9OXitvPh0g=="], + "@typescript-eslint/utils": ["@typescript-eslint/utils@8.61.1", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.61.1", "@typescript-eslint/types": "8.61.1", "@typescript-eslint/typescript-estree": "8.61.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-1+P/3Dj6jvtybE1q0HQ6yBt/gq+oKJyLdEv4HdnqasaEXRSYCAsD59mXEVQnM/ULNdQxbX77tdG4jPRjIS6knA=="], - "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.62.1", "", { "dependencies": { "@typescript-eslint/types": "8.62.1", "eslint-visitor-keys": "^5.0.0" } }, "sha512-4g3BLxfdTMy8iZG0MaBkadnlRrCJ74cQiFbyEVMrkwIoqdyaXXQM22cotDvrl4x28wgIZ9rEJRoM+mmhSJpJ1g=="], + "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.61.1", "", { "dependencies": { "@typescript-eslint/types": "8.61.1", "eslint-visitor-keys": "^5.0.0" } }, "sha512-6fJ9MHWtK14C1DSkiMlHUSOmrVebL7150xZJBlJiL62jjhIA4JmOq6flwBgDxIdBKKdoiZRel+dfPD5MLfny3w=="], - "@vitejs/plugin-react": ["@vitejs/plugin-react@6.0.3", "", { "dependencies": { "@rolldown/pluginutils": "^1.0.1" }, "peerDependencies": { "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", "babel-plugin-react-compiler": "^1.0.0", "vite": "^8.0.0" }, "optionalPeers": ["@rolldown/plugin-babel", "babel-plugin-react-compiler"] }, "sha512-vmFvco5/QuC2f9Oj+wTk0+9XeDFkHxSamwZKYc7MxYwKICfvUvlMhqKI0VuICPltGqh1neqBKDvO4kes1ya8vg=="], + "@vitejs/plugin-react": ["@vitejs/plugin-react@6.0.2", "", { "dependencies": { "@rolldown/pluginutils": "^1.0.0" }, "peerDependencies": { "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", "babel-plugin-react-compiler": "^1.0.0", "vite": "^8.0.0" }, "optionalPeers": ["@rolldown/plugin-babel", "babel-plugin-react-compiler"] }, "sha512-DlSMqo4WhThw4vB8Mpn0Woe9J+Jfq1geJ61AKW0QEgLzGMNwtIMdxbDUzLxcun8W7NbJO0e2Jg/Nxm3cCSVzzg=="], + + "@webtransport-bun/webtransport": ["@webtransport-bun/webtransport@0.3.0", "", { "os": [ "linux", "win32", "darwin", ], "cpu": [ "x64", "arm64", ] }, "sha512-/OX/TCgBD64n/0BjMNytObq5NK2pAM0KOoXBEw49l3sTmbVXNTPP1ZRPIdIyV43agM+mKtZBaV3Er3k3YoB6sw=="], "@xmldom/xmldom": ["@xmldom/xmldom@0.8.13", "", {}, "sha512-KRYzxepc14G/CEpEGc3Yn+JKaAeT63smlDr+vjB8jRfgTBBI9wRj/nkQEO+ucV8p8I9bfKLWp37uHgFrbntPvw=="], @@ -928,6 +873,8 @@ "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "ansis": ["ansis@4.3.1", "", {}, "sha512-BJ8/l4R5LRE7hW9WdSuGYrLSHi2ynxeFpDFbH0K/CgNeY/tyhk+vO6TYxXC5r5CpUhNVX310xzPsN/H9lCdfOA=="], + "app-builder-lib": ["app-builder-lib@26.15.3", "", { "dependencies": { "@electron/asar": "3.4.1", "@electron/fuses": "^1.8.0", "@electron/get": "^3.0.0", "@electron/notarize": "2.5.0", "@electron/osx-sign": "1.3.3", "@electron/rebuild": "^4.0.4", "@electron/universal": "2.0.3", "@malept/flatpak-bundler": "^0.4.0", "@noble/hashes": "^2.2.0", "@peculiar/webcrypto": "^1.7.1", "@types/fs-extra": "9.0.13", "ajv": "^8.18.0", "asn1js": "^3.0.10", "async-exit-hook": "^2.0.1", "builder-util": "26.15.3", "builder-util-runtime": "9.7.0", "chromium-pickle-js": "^0.2.0", "ci-info": "4.3.1", "debug": "^4.3.4", "dotenv": "^16.4.5", "dotenv-expand": "^11.0.6", "ejs": "^3.1.8", "electron-publish": "26.15.3", "fs-extra": "^10.1.0", "hosted-git-info": "^4.1.0", "isbinaryfile": "^5.0.0", "jiti": "^2.4.2", "js-yaml": "^4.1.0", "json5": "^2.2.3", "lazy-val": "^1.0.5", "minimatch": "^10.2.5", "pkijs": "^3.4.0", "plist": "3.1.0", "proper-lockfile": "^4.1.2", "resedit": "^1.7.0", "semver": "~7.7.3", "tar": "^7.5.7", "temp-file": "^3.4.0", "tiny-async-pool": "1.3.0", "unzipper": "^0.12.3", "which": "^5.0.0" }, "peerDependencies": { "dmg-builder": "26.15.3", "electron-builder-squirrel-windows": "26.15.3" } }, "sha512-2VnyWkqsP5v5XbBhL3tD5Syx8iNPBYsoU7kY4S2fz7wg8Rj/nztWKCUzGKaFRTv0Xwf3/H058CR1Kvtd/3lRow=="], "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], @@ -946,15 +893,13 @@ "at-least-node": ["at-least-node@1.0.0", "", {}, "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg=="], - "atomically": ["atomically@1.7.0", "", {}, "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w=="], - "aws4": ["aws4@1.13.2", "", {}, "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw=="], "balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], "base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="], - "baseline-browser-mapping": ["baseline-browser-mapping@2.10.41", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-WwS7MHhqGHHlaVsqRZnhvCEMS0owDX+SxRlve7JkuH7My1Ara3ZriTmCQupPfYjxMZ8I/tgxtJYr2t7taHaH4A=="], + "baseline-browser-mapping": ["baseline-browser-mapping@2.10.37", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-girxaJ7WZssDOFhzCGZTDKoTa1gk6A1TbflaYTpykLJ4UU9Fz9kx1aREM8JCuoVHbL8X8T/mJg7w2oYSq72Oig=="], "bluebird": ["bluebird@3.7.2", "", {}, "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="], @@ -962,11 +907,11 @@ "boolean": ["boolean@3.2.0", "", {}, "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw=="], - "brace-expansion": ["brace-expansion@5.0.7", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA=="], + "brace-expansion": ["brace-expansion@5.0.6", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g=="], "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], - "browserslist": ["browserslist@4.28.4", "", { "dependencies": { "baseline-browser-mapping": "^2.10.38", "caniuse-lite": "^1.0.30001799", "electron-to-chromium": "^1.5.376", "node-releases": "^2.0.48", "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-MTc8i/x9jBQd1iMw2CFGS+rwMa07eYjLR0CCTLDACl9xhxy+nIs3KeML/biicXtk9JrZ6dnnTatmc7ErPXIxqw=="], + "browserslist": ["browserslist@4.28.2", "", { "dependencies": { "baseline-browser-mapping": "^2.10.12", "caniuse-lite": "^1.0.30001782", "electron-to-chromium": "^1.5.328", "node-releases": "^2.0.36", "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg=="], "buffer-crc32": ["buffer-crc32@0.2.13", "", {}, "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ=="], @@ -994,7 +939,7 @@ "camelcase": ["camelcase@5.3.1", "", {}, "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="], - "caniuse-lite": ["caniuse-lite@1.0.30001800", "", {}, "sha512-MMHtuAz9Ys840zAY5F4k6fV5GaivZ9sPk+nz0mY+GYVzRBnYkN0mpqkSR92oWRQ19yQWo4HvBV/FnC16AJX8MA=="], + "caniuse-lite": ["caniuse-lite@1.0.30001799", "", {}, "sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw=="], "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], @@ -1010,7 +955,9 @@ "cli-spinners": ["cli-spinners@2.9.2", "", {}, "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg=="], - "cliui": ["cliui@6.0.0", "", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^6.2.0" } }, "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ=="], + "cli-width": ["cli-width@4.1.0", "", {}, "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ=="], + + "cliui": ["cliui@8.0.1", "", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } }, "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ=="], "clone-response": ["clone-response@1.0.3", "", { "dependencies": { "mimic-response": "^1.0.0" } }, "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA=="], @@ -1034,15 +981,13 @@ "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], - "conf": ["conf@10.2.0", "", { "dependencies": { "ajv": "^8.6.3", "ajv-formats": "^2.1.1", "atomically": "^1.7.0", "debounce-fn": "^4.0.0", "dot-prop": "^6.0.1", "env-paths": "^2.2.1", "json-schema-typed": "^7.0.3", "onetime": "^5.1.2", "pkg-up": "^3.1.0", "semver": "^7.3.5" } }, "sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg=="], - "content-disposition": ["content-disposition@1.1.0", "", {}, "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g=="], "content-type": ["content-type@1.0.5", "", {}, "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="], "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], - "cookie": ["cookie@0.7.2", "", {}, "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w=="], + "cookie": ["cookie@1.1.1", "", {}, "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ=="], "cookie-es": ["cookie-es@3.1.1", "", {}, "sha512-UaXxwISYJPTr9hwQxMFYZ7kNhSXboMXP+Z3TRX6f1/NyaGPfuNUZOWP1pUEb75B2HjfklIYLVRfWiFZJyC6Npg=="], @@ -1054,7 +999,7 @@ "cosmiconfig": ["cosmiconfig@9.0.2", "", { "dependencies": { "env-paths": "^2.2.1", "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", "parse-json": "^5.2.0" }, "peerDependencies": { "typescript": ">=4.9.5" }, "optionalPeers": ["typescript"] }, "sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg=="], - "crelt": ["crelt@1.0.7", "", {}, "sha512-aK6BbWfhf4U/wCcLHKPJl/xa6VkVstRaPywWtMKGwuOLc/wZTyQYuoxgvZnNsBvv7Kg3YTBQYYBCggcviQczuA=="], + "crelt": ["crelt@1.0.6", "", {}, "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g=="], "cross-dirname": ["cross-dirname@0.1.0", "", {}, "sha512-+R08/oI0nl3vfPcqftZRpytksBXDzOUveBq/NBVx0sUp1axwzPQrKinNx5yd5sxPu8j1wIy8AfnVQ+5eFdha6Q=="], @@ -1086,9 +1031,11 @@ "d3-timer": ["d3-timer@3.0.1", "", {}, "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA=="], + "data-uri-to-buffer": ["data-uri-to-buffer@4.0.1", "", {}, "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A=="], + "date-fns": ["date-fns@4.4.0", "", {}, "sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w=="], - "debounce-fn": ["debounce-fn@4.0.0", "", { "dependencies": { "mimic-fn": "^3.0.0" } }, "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ=="], + "date-fns-jalali": ["date-fns-jalali@4.1.0-0", "", {}, "sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg=="], "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], @@ -1102,7 +1049,7 @@ "deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="], - "deepfilternet3-noise-filter": ["deepfilternet3-noise-filter@1.3.0", "", { "peerDependencies": { "livekit-client": "^2.0.0" } }, "sha512-yYFUlPuvPguqcd/R6/OSsr0noGqlqOE50JkCWYHogk+PjLj9qrNgwTt5zKraVkKnw0l4+eXJagkz2SUWtUl4sQ=="], + "deepfilternet3-noise-filter": ["deepfilternet3-noise-filter@1.2.1", "", { "peerDependencies": { "livekit-client": "^2.0.0" } }, "sha512-OAyrHTDlUHH+AhfpVNKYEOhVqb9cZpu0fdNThplA/tB/Ts4PF/UsI+abl2n1IbSxUkhiF0OqDejEhk1n42Oqpw=="], "deepmerge": ["deepmerge@4.3.1", "", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="], @@ -1136,8 +1083,6 @@ "dmg-builder": ["dmg-builder@26.15.3", "", { "dependencies": { "app-builder-lib": "26.15.3", "builder-util": "26.15.3", "fs-extra": "^10.1.0", "js-yaml": "^4.1.0" } }, "sha512-O3zJUFUYHJKgzPqioHxfxzBzlSC1eXCSr79gMSBKBP5AgjjpmrydMsMLotEg9fAJF36vdUncb+4ndRNxoPdlSQ=="], - "dot-prop": ["dot-prop@6.0.1", "", { "dependencies": { "is-obj": "^2.0.0" } }, "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA=="], - "dotenv": ["dotenv@16.6.1", "", {}, "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow=="], "dotenv-expand": ["dotenv-expand@11.0.7", "", { "dependencies": { "dotenv": "^16.4.5" } }, "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA=="], @@ -1146,6 +1091,8 @@ "duplexer2": ["duplexer2@0.1.4", "", { "dependencies": { "readable-stream": "^2.0.2" } }, "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA=="], + "eciesjs": ["eciesjs@0.4.18", "", { "dependencies": { "@ecies/ciphers": "^0.2.5", "@noble/ciphers": "^1.3.0", "@noble/curves": "^1.9.7", "@noble/hashes": "^1.8.0" } }, "sha512-wG99Zcfcys9fZux7Cft8BAX/YrOJLJSZ3jyYPfhZHqN2E+Ffx+QXBDsv3gubEgPtV6dTzJMSQUwk1H98/t/0wQ=="], + "ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="], "ejs": ["ejs@3.1.10", "", { "dependencies": { "jake": "^10.8.5" }, "bin": { "ejs": "bin/cli.js" } }, "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA=="], @@ -1158,7 +1105,7 @@ "electron-publish": ["electron-publish@26.15.3", "", { "dependencies": { "@types/fs-extra": "^9.0.11", "aws4": "^1.13.2", "builder-util": "26.15.3", "builder-util-runtime": "9.7.0", "chalk": "^4.1.2", "form-data": "^4.0.5", "fs-extra": "^10.1.0", "lazy-val": "^1.0.5", "mime": "^2.5.2" } }, "sha512-g/2bn8YTavY4cuS5F+jOS7zmZbXXBV8KZ8yHKfJjFPoKtzBqrpCdNPxBd3tqdBwP7BVd0lGzf7Bk2s0KesWZ4Q=="], - "electron-to-chromium": ["electron-to-chromium@1.5.384", "", {}, "sha512-g6KAKY1vkYsADvSPWvdJsuYT0ixdcu6lUtD9P/wJKGBEDlZVXh2AX42j1mPqqaQPDluWjara9ziQ7xqAeXCt5A=="], + "electron-to-chromium": ["electron-to-chromium@1.5.372", "", {}, "sha512-M3yhbAlilnwqC8D21t28UCDGHyitShTmmLRU/H+b74P6Ski16Nb9HONYEaVpMj/pwC7BEo5B95FpjODLCWbtfA=="], "electron-winstaller": ["electron-winstaller@5.4.0", "", { "dependencies": { "@electron/asar": "^3.2.1", "debug": "^4.1.1", "fs-extra": "^7.0.1", "lodash": "^4.17.21", "temp": "^0.9.0" }, "optionalDependencies": { "@electron/windows-sign": "^1.1.2" } }, "sha512-bO3y10YikuUwUuDUQRM4KfwNkKhnpVO7IPdbsrejwN9/AABJzzTQ4GeHwyzNSrVO+tEH3/Np255a3sVZpZDjvg=="], @@ -1192,7 +1139,7 @@ "es-set-tostringtag": ["es-set-tostringtag@2.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="], - "es-toolkit": ["es-toolkit@1.49.0", "", {}, "sha512-G5iZ6Pc/FNRY/soKZHC+TxGDD83rHUDXxzaWhGCX44vAv/tMs56WMusnm/KMNK+luUPsgA9U28cGr4RDlSzL2g=="], + "es-toolkit": ["es-toolkit@1.47.1", "", {}, "sha512-5RAqEwf4P4E17p+W75KLOWw/nOvKZzSQpxM32IpI2KZLaVonjTrZ0Ai5ghMaVI9eKC2p8eoQgcBdkEDgzFk6+Q=="], "es6-error": ["es6-error@4.1.1", "", {}, "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg=="], @@ -1204,7 +1151,7 @@ "escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], - "eslint": ["eslint@10.6.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.2", "@eslint/config-array": "^0.23.5", "@eslint/config-helpers": "^0.6.0", "@eslint/core": "^1.2.1", "@eslint/plugin-kit": "^0.7.2", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "ajv": "^6.14.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^9.1.2", "eslint-visitor-keys": "^5.0.1", "espree": "^11.2.0", "esquery": "^1.7.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "minimatch": "^10.2.4", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-6lVbcqSodALYo+4ELD0heG6lFiFxnLMuLkiMi2qV8LMp54N8tE8FT1GMH+ev4Ti00nFjNze2+Su6DsV5OQW3Dg=="], + "eslint": ["eslint@10.5.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.2", "@eslint/config-array": "^0.23.5", "@eslint/config-helpers": "^0.6.0", "@eslint/core": "^1.2.1", "@eslint/plugin-kit": "^0.7.2", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "ajv": "^6.14.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^9.1.2", "eslint-visitor-keys": "^5.0.1", "espree": "^11.2.0", "esquery": "^1.7.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "minimatch": "^10.2.4", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-1y+7C+vi12bUK1IpZeaV3gsH9fHLBmPvYmPx42pvT/E9yG0IC8g3PUZZgp0+JLJl7ZDK0flc2gc+Aw9dpCvIsQ=="], "eslint-plugin-react-hooks": ["eslint-plugin-react-hooks@7.1.1", "", { "dependencies": { "@babel/core": "^7.24.4", "@babel/parser": "^7.24.4", "hermes-parser": "^0.25.1", "zod": "^3.25.0 || ^4.0.0", "zod-validation-error": "^3.5.0 || ^4.0.0" }, "peerDependencies": { "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0" } }, "sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g=="], @@ -1244,7 +1191,7 @@ "extract-zip": ["extract-zip@2.0.1", "", { "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", "yauzl": "^2.10.0" }, "optionalDependencies": { "@types/yauzl": "^2.9.1" }, "bin": { "extract-zip": "cli.js" } }, "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg=="], - "fallow": ["fallow@2.104.0", "", { "dependencies": { "detect-libc": "2.1.2" }, "optionalDependencies": { "@fallow-cli/darwin-arm64": "2.104.0", "@fallow-cli/darwin-x64": "2.104.0", "@fallow-cli/linux-arm64-gnu": "2.104.0", "@fallow-cli/linux-arm64-musl": "2.104.0", "@fallow-cli/linux-x64-gnu": "2.104.0", "@fallow-cli/linux-x64-musl": "2.104.0", "@fallow-cli/win32-arm64-msvc": "2.104.0", "@fallow-cli/win32-x64-msvc": "2.104.0" }, "bin": { "fallow": "bin/fallow", "fallow-lsp": "bin/fallow-lsp", "fallow-mcp": "bin/fallow-mcp" } }, "sha512-UX6Q10Feyb7epe5tTI0sHCHPReOhuKOtxdVpkbqr1lLSZirv2PJiLTTrJr7gKeLHbztE9CHR1y7YARSe0rNYag=="], + "fallow": ["fallow@2.96.0", "", { "dependencies": { "detect-libc": "2.1.2" }, "optionalDependencies": { "@fallow-cli/darwin-arm64": "2.96.0", "@fallow-cli/darwin-x64": "2.96.0", "@fallow-cli/linux-arm64-gnu": "2.96.0", "@fallow-cli/linux-arm64-musl": "2.96.0", "@fallow-cli/linux-x64-gnu": "2.96.0", "@fallow-cli/linux-x64-musl": "2.96.0", "@fallow-cli/win32-arm64-msvc": "2.96.0", "@fallow-cli/win32-x64-msvc": "2.96.0" }, "bin": { "fallow": "bin/fallow", "fallow-lsp": "bin/fallow-lsp", "fallow-mcp": "bin/fallow-mcp" } }, "sha512-fNEj+b/LUVXwfyxZPnr+SJjdQHCKjUbWgluW/wC7Q5kcJENHNEJtmFDgpHEqKY6gY257xRCgyg1AlSC8YQgROA=="], "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], @@ -1254,7 +1201,13 @@ "fast-levenshtein": ["fast-levenshtein@2.0.6", "", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="], - "fast-uri": ["fast-uri@3.1.3", "", {}, "sha512-i70LwGWUduXqzicKXWshooq+sWL1K3WUU5rKZNG/0i3a1OSoX3HqhH5WbWwTmqWfor4urUakGPiRQcleRZTwOg=="], + "fast-string-truncated-width": ["fast-string-truncated-width@3.0.3", "", {}, "sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g=="], + + "fast-string-width": ["fast-string-width@3.0.2", "", { "dependencies": { "fast-string-truncated-width": "^3.0.2" } }, "sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg=="], + + "fast-uri": ["fast-uri@3.1.2", "", {}, "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ=="], + + "fast-wrap-ansi": ["fast-wrap-ansi@0.2.2", "", { "dependencies": { "fast-string-width": "^3.0.2" } }, "sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q=="], "fastq": ["fastq@1.20.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw=="], @@ -1262,6 +1215,8 @@ "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], + "fetch-blob": ["fetch-blob@3.2.0", "", { "dependencies": { "node-domexception": "^1.0.0", "web-streams-polyfill": "^3.0.3" } }, "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ=="], + "figures": ["figures@6.1.0", "", { "dependencies": { "is-unicode-supported": "^2.0.0" } }, "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg=="], "file-entry-cache": ["file-entry-cache@8.0.0", "", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="], @@ -1280,6 +1235,8 @@ "form-data": ["form-data@4.0.6", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.4", "mime-types": "^2.1.35" } }, "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ=="], + "formdata-polyfill": ["formdata-polyfill@4.0.10", "", { "dependencies": { "fetch-blob": "^3.1.2" } }, "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g=="], + "forwarded": ["forwarded@0.2.0", "", {}, "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="], "fresh": ["fresh@2.0.0", "", {}, "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A=="], @@ -1294,6 +1251,8 @@ "fuzzysort": ["fuzzysort@3.1.0", "", {}, "sha512-sR9BNCjBg6LNgwvxlBd0sBABvQitkLzoVY9MYYROQVX/FvfJ4Mai9LsGhDgd8qYdds0bY77VzYd5iuB+v5rwQQ=="], + "fzf": ["fzf@0.5.2", "", {}, "sha512-Tt4kuxLXFKHy8KT40zwsUPUkg1CrsgY25FxA2U/j/0WgEDCk3ddc/zLTCCcbSHX9FcKtLuVaDGtGE/STWC+j3Q=="], + "gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], "get-caller-file": ["get-caller-file@2.0.5", "", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="], @@ -1316,7 +1275,7 @@ "global-agent": ["global-agent@3.0.0", "", { "dependencies": { "boolean": "^3.0.1", "es6-error": "^4.1.1", "matcher": "^3.0.0", "roarr": "^2.15.3", "semver": "^7.3.2", "serialize-error": "^7.0.1" } }, "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q=="], - "globals": ["globals@17.7.0", "", {}, "sha512-Czmyns5dUsq4seFBR/Kdydhmo8y9kC79hiSkPn0YcGtNnYWnrgt0vjrSjx9tspoDGWm2CMarffRuLjM4xUz8xg=="], + "globals": ["globals@17.6.0", "", {}, "sha512-sepffkT8stwnIYbsMBpoCHJuJM5l98FUF2AnE07hfvE0m/qp3R586hw4jF4uadbhvg1ooIdzuu7CsfD2jzCaNA=="], "globalthis": ["globalthis@1.0.4", "", { "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" } }, "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ=="], @@ -1326,6 +1285,8 @@ "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], + "graphql": ["graphql@16.14.2", "", {}, "sha512-Chq1s4CY7jmh8gO2qvLIJyfCDIN+EHLFW/9iShnp1z8FjBQMoodWP1kDC36VAMXXIvAjj4ARa7ntfAV2BrjsbA=="], + "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], "has-property-descriptors": ["has-property-descriptors@1.0.2", "", { "dependencies": { "es-define-property": "^1.0.0" } }, "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg=="], @@ -1336,11 +1297,13 @@ "hasown": ["hasown@2.0.4", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A=="], + "headers-polyfill": ["headers-polyfill@5.0.1", "", { "dependencies": { "@types/set-cookie-parser": "^2.4.10", "set-cookie-parser": "^3.0.1" } }, "sha512-1TJ6Fih/b8h5TIcv+1+Hw0PDQWJTKDKzFZzcKOiW1wJza3XoAQlkCuXLbymPYB8+ZQyw8mHvdw560e8zVFIWyA=="], + "hermes-estree": ["hermes-estree@0.25.1", "", {}, "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw=="], "hermes-parser": ["hermes-parser@0.25.1", "", { "dependencies": { "hermes-estree": "0.25.1" } }, "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA=="], - "hono": ["hono@4.12.27", "", {}, "sha512-1yrb/+w6HWQJrUCLkJ2IF5jNIPvvFkblV5RNOYl6bV+OA6p9GLcMpHFFGTosSvHvcAUibuUukRqhlYI4z32C7Q=="], + "hono": ["hono@4.12.25", "", {}, "sha512-2NFaIyNVgJmBs/ecmtGzlmluTFs5cHEWGTdu0t1HBwYzoGXOL5nUQBRMXsXWla5i4KkG//QMzVP88m1+I3fdAQ=="], "hosted-git-info": ["hosted-git-info@4.1.0", "", { "dependencies": { "lru-cache": "^6.0.0" } }, "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA=="], @@ -1380,7 +1343,7 @@ "is-arrayish": ["is-arrayish@0.2.1", "", {}, "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="], - "is-docker": ["is-docker@2.2.1", "", { "bin": { "is-docker": "cli.js" } }, "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="], + "is-docker": ["is-docker@3.0.0", "", { "bin": { "is-docker": "cli.js" } }, "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ=="], "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], @@ -1394,6 +1357,8 @@ "is-interactive": ["is-interactive@2.0.0", "", {}, "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ=="], + "is-node-process": ["is-node-process@1.2.0", "", {}, "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw=="], + "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], "is-obj": ["is-obj@3.0.0", "", {}, "sha512-IlsXEHOjtKhpN8r/tRFj2nDyTmHvcfNeu/nrRIcXE17ROeatXchkojffa1SpdqW4cr/Fj6QkEf/Gn4zf6KKvEQ=="], @@ -1408,13 +1373,13 @@ "is-unicode-supported": ["is-unicode-supported@2.1.0", "", {}, "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ=="], - "is-wsl": ["is-wsl@2.2.0", "", { "dependencies": { "is-docker": "^2.0.0" } }, "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww=="], + "is-wsl": ["is-wsl@3.1.1", "", { "dependencies": { "is-inside-container": "^1.0.0" } }, "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw=="], "isarray": ["isarray@1.0.0", "", {}, "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="], "isbinaryfile": ["isbinaryfile@5.0.7", "", {}, "sha512-gnWD14Jh3FzS3CPhF0AxNOJ8CxqeblPTADzI38r0wt8ZyQl5edpy75myt08EG2oKvpyiqSqsx+Wkz9vtkbTqYQ=="], - "isbot": ["isbot@5.1.44", "", {}, "sha512-PGEHtwMnKbZpeSEXW2Utx+/JWed7dp6DiH0WWg33vGSDA7RUvpUeJSVlLrVkQ1RCpvDOUc/eH9ql7VsdbBZ8pA=="], + "isbot": ["isbot@5.1.43", "", {}, "sha512-drJhFmibra4LO6Wd7D3Oi6UICRK9244vSZkmxzhlZP0TTdwCA2ueK4PEkUkzPYeuqug9+cqqdWPgihjk5+83Cg=="], "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], @@ -1426,7 +1391,7 @@ "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], - "js-yaml": ["js-yaml@4.3.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q=="], + "js-yaml": ["js-yaml@4.2.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw=="], "jsesc": ["jsesc@3.1.0", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], @@ -1482,7 +1447,7 @@ "lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="], - "livekit-client": ["livekit-client@2.20.0", "", { "dependencies": { "@livekit/mutex": "1.1.1", "@livekit/protocol": "1.46.6", "events": "^3.3.0", "jose": "^6.1.0", "loglevel": "^1.9.2", "sdp-transform": "^2.15.0", "tslib": "2.8.1", "typed-emitter": "^2.1.0", "webrtc-adapter": "9.0.5" }, "peerDependencies": { "@types/dom-mediacapture-record": "^1" } }, "sha512-RIJcpvBmOmwz3jTj3rmdY6Dzr55HrhcaJjMgY+HSmoEM+yIRyA40m7r8UKv0hnZWM3z/AYhP1q8C8ciz5UWFKQ=="], + "livekit-client": ["livekit-client@2.19.2", "", { "dependencies": { "@livekit/mutex": "1.1.1", "@livekit/protocol": "1.45.8", "events": "^3.3.0", "jose": "^6.1.0", "loglevel": "^1.9.2", "sdp-transform": "^2.15.0", "tslib": "2.8.1", "typed-emitter": "^2.1.0", "webrtc-adapter": "9.0.5" }, "peerDependencies": { "@types/dom-mediacapture-record": "^1" } }, "sha512-Kvk07QYDWRAbmYNLRll04ZIuxMQobW/oLPYnmR1kCy8GGHpU0gqyHf704Rz+29zfy8IJZRjKqeVbzGSKn9sumw=="], "locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], @@ -1498,7 +1463,7 @@ "lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], - "lucide-react": ["lucide-react@1.23.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-38BpJcD0JhFosxHApP/BYsBetLpQFRoTRzEzstM/XCc3jsAG7wqaY1lgVwxiUe3xqYE+lNxo2PkCmYwXWrwwIw=="], + "lucide-react": ["lucide-react@1.18.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-LZDb7H/0YfM+RJncD0hDQRCAu+vSGODqpe35TuVI8EuXaRjkczbsx7p8dY4J87F/MUSj6bpYqeI8nw8qXaAdmA=="], "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], @@ -1522,7 +1487,7 @@ "mime-types": ["mime-types@3.0.2", "", { "dependencies": { "mime-db": "^1.54.0" } }, "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A=="], - "mimic-fn": ["mimic-fn@3.1.0", "", {}, "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ=="], + "mimic-fn": ["mimic-fn@2.1.0", "", {}, "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="], "mimic-function": ["mimic-function@5.0.1", "", {}, "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA=="], @@ -1540,9 +1505,11 @@ "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], - "mtp": ["mtp@https://git.methanium.net/methanium/mtp/releases/download/0.1.0-dev-c3fbeb2/mtp-0.1.0.tgz", {}, "sha512-j/RGQY9/3NXzZptXbY44Kv7YnGr38CQQOehRAzPPFvnEVj+kxCwzVLgSImT765+vfgl2L+bkAE9aI2PWwOBTow=="], + "msw": ["msw@2.14.6", "", { "dependencies": { "@inquirer/confirm": "^6.0.11", "@mswjs/interceptors": "^0.41.3", "@open-draft/deferred-promise": "^3.0.0", "@types/statuses": "^2.0.6", "cookie": "^1.1.1", "graphql": "^16.13.2", "headers-polyfill": "^5.0.1", "is-node-process": "^1.2.0", "outvariant": "^1.4.3", "path-to-regexp": "^6.3.0", "picocolors": "^1.1.1", "rettime": "^0.11.11", "statuses": "^2.0.2", "strict-event-emitter": "^0.5.1", "tough-cookie": "^6.0.1", "type-fest": "^5.5.0", "until-async": "^3.0.2", "yargs": "^17.7.2" }, "peerDependencies": { "typescript": ">= 4.8.x" }, "optionalPeers": ["typescript"], "bin": { "msw": "cli/index.js" } }, "sha512-ALe+N10S72cyx94cMcy3Zs4HhXCj35sgeAL4c+WTvKi0zWnbd8/h0lcFqv0mb2P+aSgAdD7p9HzvA0DiUPxsyg=="], - "nanoid": ["nanoid@3.3.15", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA=="], + "mute-stream": ["mute-stream@3.0.0", "", {}, "sha512-dkEJPVvun4FryqBmZ5KhDo0K9iDXAwn08tMLDinNdRBNPcYEDiWYysLcc6k3mjTMlbP9KyylvRpd4wFtwrT9rw=="], + + "nanoid": ["nanoid@3.3.12", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ=="], "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], @@ -1550,15 +1517,19 @@ "next-themes": ["next-themes@0.4.6", "", { "peerDependencies": { "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc" } }, "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA=="], - "node-abi": ["node-abi@4.32.0", "", { "dependencies": { "semver": "^7.6.3" } }, "sha512-2cvOMwK7aQ8eQhHTG9DBK/akKfNaJDwtbxgUaA1u3BHGpd6cbUvWCbA0u3aKan+s7Nl60tMGx4tn11+VS1fiUA=="], + "node-abi": ["node-abi@4.31.0", "", { "dependencies": { "semver": "^7.6.3" } }, "sha512-Erq5w/t3syw3s4sDsUaX4QttIdBPsGKTT1DTRsCkTonGggczhlDKm/wDX3o+HPJpQ41EjXCbcmXf0tgr5YZJXw=="], "node-api-version": ["node-api-version@0.2.1", "", { "dependencies": { "semver": "^7.3.5" } }, "sha512-2xP/IGGMmmSQpI1+O/k72jF/ykvZ89JeuKX3TLJAYPDVLUalrshrLHkeVcCCZqG/eEa635cr8IBYzgnDvM2O8Q=="], + "node-domexception": ["node-domexception@1.0.0", "", {}, "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ=="], + + "node-fetch": ["node-fetch@3.3.2", "", { "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", "formdata-polyfill": "^4.0.10" } }, "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA=="], + "node-gyp": ["node-gyp@12.4.0", "", { "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", "graceful-fs": "^4.2.6", "nopt": "^9.0.0", "proc-log": "^6.0.0", "semver": "^7.3.5", "tar": "^7.5.4", "tinyglobby": "^0.2.12", "undici": "^6.25.0", "which": "^6.0.0" }, "bin": { "node-gyp": "bin/node-gyp.js" } }, "sha512-OMcPNvqTCFUnNaBlmdgq+lfNqY7gTiSmNRDjY3uAXRyudeKZEZxu3CLtjMQrx4zZxCX2b/mpNqTtwuCJgXhHkw=="], "node-int64": ["node-int64@0.4.0", "", {}, "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="], - "node-releases": ["node-releases@2.0.50", "", {}, "sha512-J6l92tKHX6w8Jy5nO1Vuc01NoIiRGi/d6qBKVxh+IQ8Cr3b6HbVNfKiF8ZpFKufTwpwxMmce2W3iQZ861ZRyTg=="], + "node-releases": ["node-releases@2.0.47", "", {}, "sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og=="], "nopt": ["nopt@9.0.0", "", { "dependencies": { "abbrev": "^4.0.0" }, "bin": { "nopt": "bin/nopt.js" } }, "sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw=="], @@ -1586,6 +1557,8 @@ "ora": ["ora@8.2.0", "", { "dependencies": { "chalk": "^5.3.0", "cli-cursor": "^5.0.0", "cli-spinners": "^2.9.2", "is-interactive": "^2.0.0", "is-unicode-supported": "^2.0.0", "log-symbols": "^6.0.0", "stdin-discarder": "^0.2.2", "string-width": "^7.2.0", "strip-ansi": "^7.1.0" } }, "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw=="], + "outvariant": ["outvariant@1.4.3", "", {}, "sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA=="], + "p-cancelable": ["p-cancelable@2.1.1", "", {}, "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg=="], "p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], @@ -1594,6 +1567,8 @@ "p-try": ["p-try@2.2.0", "", {}, "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="], + "package-manager-detector": ["package-manager-detector@1.6.0", "", {}, "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA=="], + "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], "parse-json": ["parse-json@5.2.0", "", { "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" } }, "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg=="], @@ -1610,7 +1585,7 @@ "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], - "path-to-regexp": ["path-to-regexp@8.4.2", "", {}, "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA=="], + "path-to-regexp": ["path-to-regexp@6.3.0", "", {}, "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ=="], "pe-library": ["pe-library@0.4.1", "", {}, "sha512-eRWB5LBz7PpDu4PUlwT0PhnQfTQJlDDdPa35urV4Osrm0t0AqQFGn+UIkU3klZvwJ8KPO3VbBFsXquA6p6kqZw=="], @@ -1618,19 +1593,17 @@ "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], - "picomatch": ["picomatch@4.0.5", "", {}, "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A=="], + "picomatch": ["picomatch@4.0.4", "", {}, "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A=="], "pkce-challenge": ["pkce-challenge@5.0.1", "", {}, "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ=="], - "pkg-up": ["pkg-up@3.1.0", "", { "dependencies": { "find-up": "^3.0.0" } }, "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA=="], - "pkijs": ["pkijs@3.4.0", "", { "dependencies": { "@noble/hashes": "1.4.0", "asn1js": "^3.0.6", "bytestreamjs": "^2.0.1", "pvtsutils": "^1.3.6", "pvutils": "^1.1.3", "tslib": "^2.8.1" } }, "sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw=="], "plist": ["plist@3.1.0", "", { "dependencies": { "@xmldom/xmldom": "^0.8.8", "base64-js": "^1.5.1", "xmlbuilder": "^15.1.1" } }, "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ=="], "pngjs": ["pngjs@5.0.0", "", {}, "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw=="], - "postcss": ["postcss@8.5.16", "", { "dependencies": { "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg=="], + "postcss": ["postcss@8.5.15", "", { "dependencies": { "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A=="], "postcss-selector-parser": ["postcss-selector-parser@7.1.4", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg=="], @@ -1640,7 +1613,7 @@ "prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="], - "prettier": ["prettier@3.9.4", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-yWG/o/4oJfo036EKAfK6ACAoDOfHeRHx4tuxkfBZiauURiaSmYwlpOr5LQqKtIkRD2z1PLteme2WoxEnj4tHTg=="], + "prettier": ["prettier@3.8.4", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-N2MylSdi48+5N/6S5j+maeHbUSIzzZ5uOcX5Hm4QpV8Dkb1HFjfAKTKX6yNPJQD9AhcT3ifHNB66tWTTJDi11Q=="], "pretty-ms": ["pretty-ms@9.3.0", "", { "dependencies": { "parse-ms": "^4.0.0" } }, "sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ=="], @@ -1668,19 +1641,19 @@ "qrcode": ["qrcode@1.5.4", "", { "dependencies": { "dijkstrajs": "^1.0.1", "pngjs": "^5.0.0", "yargs": "^15.3.1" }, "bin": { "qrcode": "bin/qrcode" } }, "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg=="], - "qs": ["qs@6.15.3", "", { "dependencies": { "es-define-property": "^1.0.1", "side-channel": "^1.1.1" } }, "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A=="], + "qs": ["qs@6.15.2", "", { "dependencies": { "side-channel": "^1.1.0" } }, "sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw=="], "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], "quick-lru": ["quick-lru@5.1.1", "", {}, "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA=="], - "range-parser": ["range-parser@1.3.0", "", {}, "sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw=="], + "range-parser": ["range-parser@1.2.1", "", {}, "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="], "raw-body": ["raw-body@3.0.2", "", { "dependencies": { "bytes": "~3.1.2", "http-errors": "~2.0.1", "iconv-lite": "~0.7.0", "unpipe": "~1.0.0" } }, "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA=="], "react": ["react@19.2.7", "", {}, "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ=="], - "react-day-picker": ["react-day-picker@10.0.1", "", { "dependencies": { "@date-fns/tz": "^1.4.1", "date-fns": "^4.1.0" }, "peerDependencies": { "@types/react": ">=16.8.0", "react": ">=16.8.0" }, "optionalPeers": ["@types/react"] }, "sha512-eNh6BlwcYInWaJtRv18mXQ06Ys/H6rdTZAnTaSdOYJuTpwP1JMCHNd1FDRadA+gbeinq+psdULN5Xnowy9mV8w=="], + "react-day-picker": ["react-day-picker@9.14.0", "", { "dependencies": { "@date-fns/tz": "^1.4.1", "@tabby_ai/hijri-converter": "1.0.5", "date-fns": "^4.1.0", "date-fns-jalali": "4.1.0-0" }, "peerDependencies": { "react": ">=16.8.0" } }, "sha512-tBaoDWjPwe0M5pGrum4H0SR6Lyk+BO9oHnp9JbKpGKW2mlraNPgP9BMfsg5pWpwrssARmeqk7YBl2oXutZTaHA=="], "react-dom": ["react-dom@19.2.7", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.7" } }, "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ=="], @@ -1692,7 +1665,7 @@ "react-remove-scroll-bar": ["react-remove-scroll-bar@2.3.8", "", { "dependencies": { "react-style-singleton": "^2.2.2", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, "optionalPeers": ["@types/react"] }, "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q=="], - "react-resizable-panels": ["react-resizable-panels@4.12.0", "", { "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-t/Gp57qSCxGQ52ckhz+8lM7dnuymeU95TEzl2U203qEbGkSLHrtm7US2/ANzq/zOlja3CwPTAfCDuh1unv9mfw=="], + "react-resizable-panels": ["react-resizable-panels@4.11.2", "", { "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-+kfFbDZ8mygc7g0vxOcDzCVGuwiIUOnILqPoUHo6/uP+Mmyx6HzZU+kj1aOPDlktXuobYbr6BtQekvJwHRX4Eg=="], "react-style-singleton": ["react-style-singleton@2.2.3", "", { "dependencies": { "get-nonce": "^1.0.0", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ=="], @@ -1700,9 +1673,9 @@ "readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="], - "recast": ["recast@0.23.12", "", { "dependencies": { "ast-types": "^0.16.1", "esprima": "~4.0.0", "source-map": "~0.6.1", "tiny-invariant": "^1.3.3", "tslib": "^2.0.1" } }, "sha512-dEWRjcINDu/F4l2dYx57ugBtD7HV9KXESyxhzw/MqWLeglJrsjJKqACPyUPg+6AF8mIgm+Zi0dZ3ACoIg+QtpA=="], + "recast": ["recast@0.23.11", "", { "dependencies": { "ast-types": "^0.16.1", "esprima": "~4.0.0", "source-map": "~0.6.1", "tiny-invariant": "^1.3.3", "tslib": "^2.0.1" } }, "sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA=="], - "recharts": ["recharts@3.9.1", "", { "dependencies": { "@reduxjs/toolkit": "^1.9.0 || 2.x.x", "clsx": "^2.1.1", "decimal.js-light": "^2.5.1", "es-toolkit": "^1.39.3", "eventemitter3": "^5.0.1", "immer": "^11.1.8", "react-redux": "8.x.x || 9.x.x", "reselect": "5.2.0", "tiny-invariant": "^1.3.3", "use-sync-external-store": "^1.2.2", "victory-vendor": "^37.0.2" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-is": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-WMcwlXcB7l+BbxiEdyClkG+1sxrMHNZpzT577LEvU4+rXPd8oTAy1wXk72hnk2KOOmxuLvw3z5DtXT7HEAydtg=="], + "recharts": ["recharts@3.8.1", "", { "dependencies": { "@reduxjs/toolkit": "^1.9.0 || 2.x.x", "clsx": "^2.1.1", "decimal.js-light": "^2.5.1", "es-toolkit": "^1.39.3", "eventemitter3": "^5.0.1", "immer": "^10.1.1", "react-redux": "8.x.x || 9.x.x", "reselect": "5.1.1", "tiny-invariant": "^1.3.3", "use-sync-external-store": "^1.2.2", "victory-vendor": "^37.0.2" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-is": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-mwzmO1s9sFL0TduUpwndxCUNoXsBw3u3E/0+A+cLcrSfQitSG62L32N69GhqUrrT5qKcAE3pCGVINC6pqkBBQg=="], "redux": ["redux@5.0.1", "", {}, "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w=="], @@ -1728,13 +1701,15 @@ "retry": ["retry@0.12.0", "", {}, "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow=="], + "rettime": ["rettime@0.11.11", "", {}, "sha512-ILJRqVWBCTlg9r42fFgwVZx1gnFAcQF8mRoMkbgQfIrjEDf9nbBFDFx00oloOa+Q869FUtaYDXZvEfnecQSCoQ=="], + "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="], "rimraf": ["rimraf@2.6.3", "", { "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "./bin.js" } }, "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA=="], "roarr": ["roarr@2.15.4", "", { "dependencies": { "boolean": "^3.0.1", "detect-node": "^2.0.4", "globalthis": "^1.0.1", "json-stringify-safe": "^5.0.1", "semver-compare": "^1.0.0", "sprintf-js": "^1.1.2" } }, "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A=="], - "rolldown": ["rolldown@1.1.4", "", { "dependencies": { "@oxc-project/types": "=0.138.0", "@rolldown/pluginutils": "^1.0.0" }, "optionalDependencies": { "@rolldown/binding-android-arm64": "1.1.4", "@rolldown/binding-darwin-arm64": "1.1.4", "@rolldown/binding-darwin-x64": "1.1.4", "@rolldown/binding-freebsd-x64": "1.1.4", "@rolldown/binding-linux-arm-gnueabihf": "1.1.4", "@rolldown/binding-linux-arm64-gnu": "1.1.4", "@rolldown/binding-linux-arm64-musl": "1.1.4", "@rolldown/binding-linux-ppc64-gnu": "1.1.4", "@rolldown/binding-linux-s390x-gnu": "1.1.4", "@rolldown/binding-linux-x64-gnu": "1.1.4", "@rolldown/binding-linux-x64-musl": "1.1.4", "@rolldown/binding-openharmony-arm64": "1.1.4", "@rolldown/binding-wasm32-wasi": "1.1.4", "@rolldown/binding-win32-arm64-msvc": "1.1.4", "@rolldown/binding-win32-x64-msvc": "1.1.4" }, "bin": { "rolldown": "./bin/cli.mjs" } }, "sha512-IjZYiLxZwpnhwhdBH2ugdTGVSdhCQUmLxLoqyjiL0JxYjyRst+5a0P3xfrTxJ5F638j4Mvvw5FAX5XE6eHpXbA=="], + "rolldown": ["rolldown@1.0.3", "", { "dependencies": { "@oxc-project/types": "=0.133.0", "@rolldown/pluginutils": "^1.0.0" }, "optionalDependencies": { "@rolldown/binding-android-arm64": "1.0.3", "@rolldown/binding-darwin-arm64": "1.0.3", "@rolldown/binding-darwin-x64": "1.0.3", "@rolldown/binding-freebsd-x64": "1.0.3", "@rolldown/binding-linux-arm-gnueabihf": "1.0.3", "@rolldown/binding-linux-arm64-gnu": "1.0.3", "@rolldown/binding-linux-arm64-musl": "1.0.3", "@rolldown/binding-linux-ppc64-gnu": "1.0.3", "@rolldown/binding-linux-s390x-gnu": "1.0.3", "@rolldown/binding-linux-x64-gnu": "1.0.3", "@rolldown/binding-linux-x64-musl": "1.0.3", "@rolldown/binding-openharmony-arm64": "1.0.3", "@rolldown/binding-wasm32-wasi": "1.0.3", "@rolldown/binding-win32-arm64-msvc": "1.0.3", "@rolldown/binding-win32-x64-msvc": "1.0.3" }, "bin": { "rolldown": "./bin/cli.mjs" } }, "sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g=="], "router": ["router@2.2.0", "", { "dependencies": { "debug": "^4.4.0", "depd": "^2.0.0", "is-promise": "^4.0.0", "parseurl": "^1.3.3", "path-to-regexp": "^8.0.0" } }, "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ=="], @@ -1758,7 +1733,7 @@ "sdp-transform": ["sdp-transform@2.15.0", "", { "bin": { "sdp-verify": "checker.js" } }, "sha512-KrOH82c/W+GYQ0LHqtr3caRpM3ITglq3ljGUIb8LTki7ByacJZ9z+piSGiwZDsRyhQbYBOBJgr2k6X4BZXi3Kw=="], - "semver": ["semver@7.7.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="], + "semver": ["semver@7.8.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA=="], "semver-compare": ["semver-compare@1.0.0", "", {}, "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow=="], @@ -1774,9 +1749,11 @@ "set-blocking": ["set-blocking@2.0.0", "", {}, "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="], + "set-cookie-parser": ["set-cookie-parser@3.1.0", "", {}, "sha512-kjnC1DXBHcxaOaOXBHBeRtltsDG2nUiUni+jP92M9gYdW12rsmx92UsfpH7o5tDRs7I1ZZPSQJQGv3UaRfCiuw=="], + "setprototypeof": ["setprototypeof@1.2.0", "", {}, "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="], - "shadcn": ["shadcn@4.12.0", "", { "dependencies": { "@babel/core": "^7.28.0", "@babel/parser": "^7.28.0", "@babel/plugin-transform-typescript": "^7.28.0", "@babel/preset-typescript": "^7.27.1", "@dotenvx/dotenvx": "^1.48.4", "@modelcontextprotocol/sdk": "^1.26.0", "@types/validate-npm-package-name": "^4.0.2", "browserslist": "^4.26.2", "commander": "^14.0.0", "cosmiconfig": "^9.0.0", "dedent": "^1.6.0", "deepmerge": "^4.3.1", "diff": "^8.0.2", "execa": "^9.6.0", "fast-glob": "^3.3.3", "fs-extra": "^11.3.1", "fuzzysort": "^3.1.0", "kleur": "^4.1.5", "open": "^11.0.0", "ora": "^8.2.0", "postcss": "^8.5.6", "postcss-selector-parser": "^7.1.0", "prompts": "^2.4.2", "recast": "^0.23.11", "stringify-object": "^5.0.0", "tailwind-merge": "^3.0.1", "ts-morph": "^26.0.0", "tsconfig-paths": "^4.2.0", "undici": "^7.27.2", "validate-npm-package-name": "^7.0.1", "zod": "^3.24.1", "zod-to-json-schema": "^3.24.6" }, "bin": { "shadcn": "dist/index.js" } }, "sha512-o781ieQziCnXH2FKsEqxp1fnbHdbgAPO9inTSPeZ59hQfsZXuMGp3ul8oFSV5KQS4nbUK9b+DrDE6C7OvfKKQQ=="], + "shadcn": ["shadcn@3.8.5", "", { "dependencies": { "@antfu/ni": "^25.0.0", "@babel/core": "^7.28.0", "@babel/parser": "^7.28.0", "@babel/plugin-transform-typescript": "^7.28.0", "@babel/preset-typescript": "^7.27.1", "@dotenvx/dotenvx": "^1.48.4", "@modelcontextprotocol/sdk": "^1.26.0", "@types/validate-npm-package-name": "^4.0.2", "browserslist": "^4.26.2", "commander": "^14.0.0", "cosmiconfig": "^9.0.0", "dedent": "^1.6.0", "deepmerge": "^4.3.1", "diff": "^8.0.2", "execa": "^9.6.0", "fast-glob": "^3.3.3", "fs-extra": "^11.3.1", "fuzzysort": "^3.1.0", "https-proxy-agent": "^7.0.6", "kleur": "^4.1.5", "msw": "^2.10.4", "node-fetch": "^3.3.2", "open": "^11.0.0", "ora": "^8.2.0", "postcss": "^8.5.6", "postcss-selector-parser": "^7.1.0", "prompts": "^2.4.2", "recast": "^0.23.11", "stringify-object": "^5.0.0", "tailwind-merge": "^3.0.1", "ts-morph": "^26.0.0", "tsconfig-paths": "^4.2.0", "validate-npm-package-name": "^7.0.1", "zod": "^3.24.1", "zod-to-json-schema": "^3.24.6" }, "bin": { "shadcn": "dist/index.js" } }, "sha512-jPRx44e+eyeV7xwY3BLJXcfrks00+M0h5BGB9l6DdcBW4BpAj4x3lVmVy0TXPEs2iHEisxejr62sZAAw6B1EVA=="], "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], @@ -1812,6 +1789,8 @@ "stdin-discarder": ["stdin-discarder@0.2.2", "", {}, "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ=="], + "strict-event-emitter": ["strict-event-emitter@0.5.1", "", {}, "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ=="], + "string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], "string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="], @@ -1830,17 +1809,17 @@ "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], - "systeminformation": ["systeminformation@5.31.11", "", { "os": "!aix", "bin": { "systeminformation": "lib/cli.js" } }, "sha512-I6O7iaUj23AXRgCPDDnvi3xHvdOLp4+1YMbF+X194lJwY1NeWojgHJPhslVKcmTtrLTguRk3QJK+xEdTiI3P0w=="], + "tagged-tag": ["tagged-tag@1.0.0", "", {}, "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng=="], "tailwind-merge": ["tailwind-merge@3.6.0", "", {}, "sha512-uxL7qAVQriqRQPAyK3pj66VqskWqoZ37PW94jwOTwNfq/z9oyu1V+eqrZqtR2+fCiXdYOZe/Modt8GtvqNzu+w=="], "tailwind-scrollbar-hide": ["tailwind-scrollbar-hide@4.0.0", "", { "peerDependencies": { "tailwindcss": ">=3.0.0 || >= 4.0.0 || >= 4.0.0-beta.8 || >= 4.0.0-alpha.20" } }, "sha512-gobtvVcThB2Dxhy0EeYSS1RKQJ5baDFkamkhwBvzvevwX6L4XQfpZ3me9s25Ss1ecFVT5jPYJ50n+7xTBJG9WQ=="], - "tailwindcss": ["tailwindcss@4.3.2", "", {}, "sha512-WtctNNSH8A9jlMIqxzuYumOHU5uGZyRv0Q5svQl+oEPy5w84YpBxdb7MdqyiSPQge5jTJ6zFQLq0PFygdccSBA=="], + "tailwindcss": ["tailwindcss@4.3.1", "", {}, "sha512-hk+TB1m+K8CYNrP6rjQaq/Y+4Zylwpa87mLYBKCunwnnQ9p+fHb7kmSfGqyEJoxF/O6CDyABWVFEafNSYKll+Q=="], "tapable": ["tapable@2.3.3", "", {}, "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A=="], - "tar": ["tar@7.5.19", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.1.0", "yallist": "^5.0.0" } }, "sha512-4LeEWl96twnS2Q7Bz4MGqgazLqO+hJN63GZxXoIqh1T3VweYD997gbU1ItNsQafqqXTXd5WFyFdReLtwvRBNiw=="], + "tar": ["tar@7.5.16", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.1.0", "yallist": "^5.0.0" } }, "sha512-56adEpPMouktRlBLXiaYFFzZ/3+JXa8P9n7WbR+ibIjtviN55mEaOkiysCnPnWm+7kkui1Dn8J9l+g6zV8731w=="], "tauri-plugin-app-events-api": ["tauri-plugin-app-events-api@0.2.0", "", { "dependencies": { "@tauri-apps/api": "^2.0.3" } }, "sha512-CnlAeucWhT+Rgx6CCsqUpq2D3pqgx0fhjSPKomH7O2t1rGVu5kGLMkYvaCX6gqVTUYpIWX5BLV7LGY2DRri0QA=="], @@ -1852,8 +1831,14 @@ "tiny-invariant": ["tiny-invariant@1.3.3", "", {}, "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg=="], + "tinyexec": ["tinyexec@1.2.4", "", {}, "sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg=="], + "tinyglobby": ["tinyglobby@0.2.17", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g=="], + "tldts": ["tldts@7.4.3", "", { "dependencies": { "tldts-core": "^7.4.3" }, "bin": { "tldts": "bin/cli.js" } }, "sha512-A3BDQBeeukYPzB4QdQ1DtdlUmp4x2OCH8n5UVhEWbyANxNep8GavottKzd1xYKFJKjUgMyPT7EzOfnBO55s8Sg=="], + + "tldts-core": ["tldts-core@7.4.3", "", {}, "sha512-27ep5H9PzdBrNd5OFM/j3WCU8F3kPwM9D0BOaOf7uYfxMJfyr0K5Tjj69Gri+sZlh2WXd5buIm47NuPF29CDiw=="], + "tmp": ["tmp@0.2.7", "", {}, "sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw=="], "tmp-promise": ["tmp-promise@3.0.3", "", { "dependencies": { "tmp": "^0.2.0" } }, "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ=="], @@ -1862,6 +1847,8 @@ "toidentifier": ["toidentifier@1.0.1", "", {}, "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="], + "tough-cookie": ["tough-cookie@6.0.1", "", { "dependencies": { "tldts": "^7.0.5" } }, "sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw=="], + "truncate-utf8-bytes": ["truncate-utf8-bytes@1.0.2", "", { "dependencies": { "utf8-byte-length": "^1.0.1" } }, "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ=="], "ts-api-utils": ["ts-api-utils@2.5.0", "", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA=="], @@ -1876,7 +1863,7 @@ "type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], - "type-fest": ["type-fest@0.13.1", "", {}, "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg=="], + "type-fest": ["type-fest@5.7.0", "", { "dependencies": { "tagged-tag": "^1.0.0" } }, "sha512-1URUxUqfHFM1c+zfSPsa3gnkO7Aq21qyH75SIduNYz4SzY964rn1X2vCMQaHSHhktiw+0kPa2iyb6PUpXqB6Vg=="], "type-is": ["type-is@2.1.0", "", { "dependencies": { "content-type": "^2.0.0", "media-typer": "^1.1.0", "mime-types": "^3.0.0" } }, "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA=="], @@ -1884,9 +1871,9 @@ "typescript": ["typescript@6.0.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw=="], - "typescript-eslint": ["typescript-eslint@8.62.1", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.62.1", "@typescript-eslint/parser": "8.62.1", "@typescript-eslint/typescript-estree": "8.62.1", "@typescript-eslint/utils": "8.62.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-vymnnM5g0AKQDSAyfP12nMIBvgwgA42syg74kkuZ4x1VuTzwQKwc5h9rGxeShCjny5o+zWAb6OEoz7XLgrIkIw=="], + "typescript-eslint": ["typescript-eslint@8.61.1", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.61.1", "@typescript-eslint/parser": "8.61.1", "@typescript-eslint/typescript-estree": "8.61.1", "@typescript-eslint/utils": "8.61.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-V7PayAfJokV3pEHgN7/v03D1SpujhRfQtYLbLIiBfDDncdg4PAiRBfoS4cnCANK4jmAPncczi59QO3afiXUlNw=="], - "undici": ["undici@7.28.0", "", {}, "sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA=="], + "undici": ["undici@6.27.0", "", {}, "sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg=="], "undici-types": ["undici-types@7.24.6", "", {}, "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg=="], @@ -1896,7 +1883,9 @@ "unpipe": ["unpipe@1.0.0", "", {}, "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="], - "unzipper": ["unzipper@0.12.5", "", { "dependencies": { "bluebird": "~3.7.2", "duplexer2": "~0.1.4", "fs-extra": "11.3.1", "graceful-fs": "^4.2.2", "node-int64": "^0.4.0" } }, "sha512-tXYOi9R57Uj/2Z25SOs5RRSzq886MBQj2gY8dPL+xl/kv6s6SvByoKfAtvfVeEuhntWDgjd2o9p2lb4TVPAz0A=="], + "until-async": ["until-async@3.0.2", "", {}, "sha512-IiSk4HlzAMqTUseHHe3VhIGyuFmN90zMTpD3Z3y8jeQbzLIq500MVM7Jq2vUAnTKAFPJrqwkzr6PoTcPhGcOiw=="], + + "unzipper": ["unzipper@0.12.3", "", { "dependencies": { "bluebird": "~3.7.2", "duplexer2": "~0.1.4", "fs-extra": "^11.2.0", "graceful-fs": "^4.2.2", "node-int64": "^0.4.0" } }, "sha512-PZ8hTS+AqcGxsaQntl3IRBw65QrBI6lxzqDEL7IAo/XCEqRTKGfOX56Vea5TH9SZczRVxuzk1re04z/YjuYCJA=="], "update-browserslist-db": ["update-browserslist-db@1.2.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w=="], @@ -1922,10 +1911,12 @@ "victory-vendor": ["victory-vendor@37.3.6", "", { "dependencies": { "@types/d3-array": "^3.0.3", "@types/d3-ease": "^3.0.0", "@types/d3-interpolate": "^3.0.1", "@types/d3-scale": "^4.0.2", "@types/d3-shape": "^3.1.0", "@types/d3-time": "^3.0.0", "@types/d3-timer": "^3.0.0", "d3-array": "^3.1.6", "d3-ease": "^3.0.1", "d3-interpolate": "^3.0.1", "d3-scale": "^4.0.2", "d3-shape": "^3.1.0", "d3-time": "^3.0.0", "d3-timer": "^3.0.1" } }, "sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ=="], - "vite": ["vite@8.1.3", "", { "dependencies": { "lightningcss": "^1.32.0", "picomatch": "^4.0.4", "postcss": "^8.5.16", "rolldown": "~1.1.3", "tinyglobby": "^0.2.17" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.3.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "@vitejs/devtools", "esbuild", "jiti", "less", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-Ds+gBRbj0lwRO2Y5hwnUBdxSwlAve9LeRyU4sNnAr0ewW0gWF0n5bgXgUzbgZ49MV9BVUAQUFYVcDUcilUExMA=="], + "vite": ["vite@8.0.16", "", { "dependencies": { "lightningcss": "^1.32.0", "picomatch": "^4.0.4", "postcss": "^8.5.15", "rolldown": "1.0.3", "tinyglobby": "^0.2.17" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.1.18", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "@vitejs/devtools", "esbuild", "jiti", "less", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw=="], "w3c-keyname": ["w3c-keyname@2.2.8", "", {}, "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ=="], + "web-streams-polyfill": ["web-streams-polyfill@3.3.3", "", {}, "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw=="], + "webcrypto-core": ["webcrypto-core@1.9.2", "", { "dependencies": { "@peculiar/asn1-schema": "^2.7.0", "@peculiar/json-schema": "^1.1.12", "@peculiar/utils": "^2.0.2", "asn1js": "^3.0.10", "tslib": "^2.8.1" } }, "sha512-gsXecm82UQNlTBURJGuqOWy1Ww08S3kZUcr3aOJS02Pk0xLtkfeUAVC0u0xhgdonFme80edSJUIJyuvL/7250Q=="], "webrtc-adapter": ["webrtc-adapter@9.0.5", "", { "dependencies": { "sdp": "^3.2.0" } }, "sha512-U9vjByy/sK2OMXu5mmfuZFKTMIUQe34c0JXRO+oDrxJTsntdYT2iIFwYMOV7HhMTuktcZLGf2W1N/OcSf9ssWg=="], @@ -1936,7 +1927,7 @@ "word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="], - "wrap-ansi": ["wrap-ansi@6.2.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA=="], + "wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="], @@ -1944,13 +1935,13 @@ "xmlbuilder": ["xmlbuilder@15.1.1", "", {}, "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg=="], - "y18n": ["y18n@4.0.3", "", {}, "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="], + "y18n": ["y18n@5.0.8", "", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="], "yallist": ["yallist@5.0.0", "", {}, "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw=="], - "yargs": ["yargs@15.4.1", "", { "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", "find-up": "^4.1.0", "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", "string-width": "^4.2.0", "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" } }, "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A=="], + "yargs": ["yargs@17.7.2", "", { "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" } }, "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w=="], - "yargs-parser": ["yargs-parser@18.1.3", "", { "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" } }, "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ=="], + "yargs-parser": ["yargs-parser@21.1.1", "", {}, "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="], "yauzl": ["yauzl@2.10.0", "", { "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } }, "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g=="], @@ -1974,16 +1965,12 @@ "@babel/helper-create-class-features-plugin/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "@base-ui/utils/reselect": ["reselect@5.2.0", "", {}, "sha512-AgZ3UOZm3YndfrJ4OYjgrT7bmCm/1iqkjvEfH/oYjzh6PD2qw4QuT3jjnXIrpdt4MTpMXclMT3lXbmRY+XRakw=="], - "@dotenvx/dotenvx/commander": ["commander@11.1.0", "", {}, "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ=="], "@dotenvx/dotenvx/dotenv": ["dotenv@17.4.2", "", {}, "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw=="], "@dotenvx/dotenvx/execa": ["execa@5.1.1", "", { "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^4.0.1", "onetime": "^5.1.2", "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" } }, "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg=="], - "@dotenvx/dotenvx/open": ["open@8.4.2", "", { "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", "is-wsl": "^2.2.0" } }, "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ=="], - "@dotenvx/dotenvx/which": ["which@4.0.0", "", { "dependencies": { "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" } }, "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg=="], "@electron/asar/commander": ["commander@5.1.0", "", {}, "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg=="], @@ -2000,15 +1987,15 @@ "@electron/osx-sign/isbinaryfile": ["isbinaryfile@4.0.10", "", {}, "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw=="], - "@electron/universal/fs-extra": ["fs-extra@11.3.6", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-w8ZNZr2mKIc7qeNaQ9AVPT1+iFaI+Avd4xudVOvdDJ8VytREi1Ft5Ih7hd9jjehod8vAM5GMsfQ/TpPf4EyoEA=="], + "@electron/universal/fs-extra": ["fs-extra@11.3.5", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg=="], "@electron/universal/minimatch": ["minimatch@9.0.9", "", { "dependencies": { "brace-expansion": "^2.0.2" } }, "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg=="], - "@electron/windows-sign/fs-extra": ["fs-extra@11.3.6", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-w8ZNZr2mKIc7qeNaQ9AVPT1+iFaI+Avd4xudVOvdDJ8VytREi1Ft5Ih7hd9jjehod8vAM5GMsfQ/TpPf4EyoEA=="], + "@electron/windows-sign/fs-extra": ["fs-extra@11.3.5", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg=="], "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], - "@livekit/components-core/@floating-ui/dom": ["@floating-ui/dom@1.7.4", "", { "dependencies": { "@floating-ui/core": "^1.7.3", "@floating-ui/utils": "^0.2.10" } }, "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA=="], + "@floating-ui/react-dom/@floating-ui/dom": ["@floating-ui/dom@1.7.6", "", { "dependencies": { "@floating-ui/core": "^1.7.5", "@floating-ui/utils": "^0.2.11" } }, "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ=="], "@livekit/components-core/loglevel": ["loglevel@1.9.1", "", {}, "sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg=="], @@ -2016,35 +2003,25 @@ "@modelcontextprotocol/sdk/ajv": ["ajv@8.20.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA=="], - "@radix-ui/react-dismissable-layer/@radix-ui/react-use-effect-event": ["@radix-ui/react-use-effect-event@0.0.3", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA=="], + "@mswjs/interceptors/@open-draft/deferred-promise": ["@open-draft/deferred-promise@2.2.0", "", {}, "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA=="], - "@radix-ui/react-use-controllable-state/@radix-ui/react-use-effect-event": ["@radix-ui/react-use-effect-event@0.0.3", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA=="], + "@reduxjs/toolkit/immer": ["immer@11.1.8", "", {}, "sha512-/tbkHMW7y10Lx6i1crLjD4/OhNkRG+Fo7byZHtah0547nIeXYcpIXaUh0IAQY6gO5459qpGGYapcEOHtFXkIuA=="], - "@radix-ui/react-use-effect-event/@radix-ui/react-use-layout-effect": ["@radix-ui/react-use-layout-effect@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ=="], + "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.10.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" }, "bundled": true }, "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw=="], - "@reduxjs/toolkit/immer": ["immer@11.1.9", "", {}, "sha512-sc/z0Cyti70bZa0ZU4sWfAElfovFb9Ni8tArJZLuklYWxegPiK3pDOql1Rq5H0FIRAW9LSQRG6OX4KqBldbhBA=="], - - "@reduxjs/toolkit/reselect": ["reselect@5.2.0", "", {}, "sha512-AgZ3UOZm3YndfrJ4OYjgrT7bmCm/1iqkjvEfH/oYjzh6PD2qw4QuT3jjnXIrpdt4MTpMXclMT3lXbmRY+XRakw=="], - - "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.11.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.2", "tslib": "^2.4.0" }, "bundled": true }, "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ=="], - - "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.11.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw=="], + "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.10.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA=="], "@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.2", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA=="], - "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.6", "", { "dependencies": { "@tybys/wasm-util": "^0.10.3" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" }, "bundled": true }, "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg=="], + "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.5", "", { "dependencies": { "@tybys/wasm-util": "^0.10.2" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" }, "bundled": true }, "sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q=="], - "@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util": ["@tybys/wasm-util@0.10.3", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg=="], + "@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util": ["@tybys/wasm-util@0.10.2", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg=="], "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - "@tanstack/pacer/@tanstack/devtools-event-client": ["@tanstack/devtools-event-client@0.4.4", "", { "bin": { "intent": "./bin/intent.js" } }, "sha512-6T5Yop/793YI+H+5J8Hsyj4kCih9sl4t3ElLgKioW5hk3ocn+ZdSJ94tT7vL7uabxSugWYBZlOTMPzEw2puvQw=="], + "@tanstack/react-store/@tanstack/store": ["@tanstack/store@0.9.3", "", {}, "sha512-8reSzl/qGWGGVKhBoxXPMWzATSbZLZFWhwBAFO9NAyp0TxzfBP0mIrGb8CP8KrQTmvzXlR/vFPPUrHTLBGyFyw=="], - "@tanstack/pacer/@tanstack/store": ["@tanstack/store@0.11.0", "", {}, "sha512-WlzzCt3xi0G6pCAJu1U+2jiECwabETDpQDi3hfkFZvJii9AuZqEKbOiVarX1/bWhTNjU486yQtJCCasi/0q+Cw=="], - - "@tensamin/ui/recharts": ["recharts@3.8.1", "", { "dependencies": { "@reduxjs/toolkit": "^1.9.0 || 2.x.x", "clsx": "^2.1.1", "decimal.js-light": "^2.5.1", "es-toolkit": "^1.39.3", "eventemitter3": "^5.0.1", "immer": "^10.1.1", "react-redux": "8.x.x || 9.x.x", "reselect": "5.1.1", "tiny-invariant": "^1.3.3", "use-sync-external-store": "^1.2.2", "victory-vendor": "^37.0.2" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-is": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-mwzmO1s9sFL0TduUpwndxCUNoXsBw3u3E/0+A+cLcrSfQitSG62L32N69GhqUrrT5qKcAE3pCGVINC6pqkBBQg=="], - - "@tensamin/web/recharts": ["recharts@3.8.1", "", { "dependencies": { "@reduxjs/toolkit": "^1.9.0 || 2.x.x", "clsx": "^2.1.1", "decimal.js-light": "^2.5.1", "es-toolkit": "^1.39.3", "eventemitter3": "^5.0.1", "immer": "^10.1.1", "react-redux": "8.x.x || 9.x.x", "reselect": "5.1.1", "tiny-invariant": "^1.3.3", "use-sync-external-store": "^1.2.2", "victory-vendor": "^37.0.2" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-is": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-mwzmO1s9sFL0TduUpwndxCUNoXsBw3u3E/0+A+cLcrSfQitSG62L32N69GhqUrrT5qKcAE3pCGVINC6pqkBBQg=="], + "@tensamin/ui/recharts": ["recharts@3.8.0", "", { "dependencies": { "@reduxjs/toolkit": "^1.9.0 || 2.x.x", "clsx": "^2.1.1", "decimal.js-light": "^2.5.1", "es-toolkit": "^1.39.3", "eventemitter3": "^5.0.1", "immer": "^10.1.1", "react-redux": "8.x.x || 9.x.x", "reselect": "5.1.1", "tiny-invariant": "^1.3.3", "use-sync-external-store": "^1.2.2", "victory-vendor": "^37.0.2" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-is": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-Z/m38DX3L73ExO4Tpc9/iZWHmHnlzWG4njQbxsF5aSjwqmHNDDIm0rdEBArkwsBvR8U6EirlEHiQNYWCVh9sGQ=="], "@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], @@ -2056,6 +2033,8 @@ "app-builder-lib/ci-info": ["ci-info@4.3.1", "", {}, "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA=="], + "app-builder-lib/semver": ["semver@7.7.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="], + "app-builder-lib/which": ["which@5.0.0", "", { "dependencies": { "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" } }, "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ=="], "body-parser/content-type": ["content-type@2.0.0", "", {}, "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ=="], @@ -2064,19 +2043,13 @@ "clone-response/mimic-response": ["mimic-response@1.0.1", "", {}, "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="], - "conf/ajv": ["ajv@8.20.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA=="], - - "conf/ajv-formats": ["ajv-formats@2.1.1", "", { "dependencies": { "ajv": "^8.0.0" } }, "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA=="], - - "conf/json-schema-typed": ["json-schema-typed@7.0.3", "", {}, "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A=="], - "dir-compare/minimatch": ["minimatch@3.1.5", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w=="], - "dot-prop/is-obj": ["is-obj@2.0.0", "", {}, "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w=="], + "eciesjs/@noble/curves": ["@noble/curves@1.9.7", "", { "dependencies": { "@noble/hashes": "1.8.0" } }, "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw=="], - "electron/@types/node": ["@types/node@22.20.0", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-QWlFW2wf3nTjC13/DqRnBpR4ZO36VJH/JVBkA/vcnmbTBNQIlnObqyqZE1tUR7+Ni23Lda8R1BxMfbXRpCUx5g=="], + "eciesjs/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], - "electron-builder/yargs": ["yargs@17.7.3", "", { "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" } }, "sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g=="], + "electron/@types/node": ["@types/node@22.19.21", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-VMeFBSCKQKmm2swI2kW51SFusDqekC6q9trBCvJ/JliDchFSuoYYKN7yVNjPthP1HKZcx3U1gI/wTcEBjEFKTA=="], "electron-winstaller/fs-extra": ["fs-extra@7.0.1", "", { "dependencies": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw=="], @@ -2084,6 +2057,8 @@ "execa/get-stream": ["get-stream@9.0.1", "", { "dependencies": { "@sec-ant/readable-stream": "^0.4.1", "is-stream": "^4.0.1" } }, "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA=="], + "express/cookie": ["cookie@0.7.2", "", {}, "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w=="], + "fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], "filelist/minimatch": ["minimatch@5.1.9", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw=="], @@ -2094,8 +2069,6 @@ "hosted-git-info/lru-cache": ["lru-cache@6.0.0", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="], - "is-inside-container/is-docker": ["is-docker@3.0.0", "", { "bin": { "is-docker": "cli.js" } }, "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ=="], - "log-symbols/chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], "log-symbols/is-unicode-supported": ["is-unicode-supported@1.3.0", "", {}, "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ=="], @@ -2104,20 +2077,14 @@ "micromatch/picomatch": ["picomatch@2.3.2", "", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="], - "node-gyp/undici": ["undici@6.27.0", "", {}, "sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg=="], - "node-gyp/which": ["which@6.0.1", "", { "dependencies": { "isexe": "^4.0.0" }, "bin": { "node-which": "bin/which.js" } }, "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg=="], "npm-run-path/path-key": ["path-key@4.0.0", "", {}, "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ=="], - "onetime/mimic-fn": ["mimic-fn@2.1.0", "", {}, "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="], - "ora/chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], "ora/string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], - "pkg-up/find-up": ["find-up@3.0.0", "", { "dependencies": { "locate-path": "^3.0.0" } }, "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg=="], - "pkijs/@noble/hashes": ["@noble/hashes@1.4.0", "", {}, "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg=="], "postject/commander": ["commander@9.5.0", "", {}, "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ=="], @@ -2126,13 +2093,15 @@ "proper-lockfile/signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], - "recharts/immer": ["immer@11.1.9", "", {}, "sha512-sc/z0Cyti70bZa0ZU4sWfAElfovFb9Ni8tArJZLuklYWxegPiK3pDOql1Rq5H0FIRAW9LSQRG6OX4KqBldbhBA=="], - - "recharts/reselect": ["reselect@5.2.0", "", {}, "sha512-AgZ3UOZm3YndfrJ4OYjgrT7bmCm/1iqkjvEfH/oYjzh6PD2qw4QuT3jjnXIrpdt4MTpMXclMT3lXbmRY+XRakw=="], + "qrcode/yargs": ["yargs@15.4.1", "", { "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", "find-up": "^4.1.0", "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", "string-width": "^4.2.0", "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" } }, "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A=="], "restore-cursor/onetime": ["onetime@7.0.0", "", { "dependencies": { "mimic-function": "^5.0.0" } }, "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ=="], - "shadcn/fs-extra": ["fs-extra@11.3.6", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-w8ZNZr2mKIc7qeNaQ9AVPT1+iFaI+Avd4xudVOvdDJ8VytREi1Ft5Ih7hd9jjehod8vAM5GMsfQ/TpPf4EyoEA=="], + "router/path-to-regexp": ["path-to-regexp@8.4.2", "", {}, "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA=="], + + "serialize-error/type-fest": ["type-fest@0.13.1", "", {}, "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg=="], + + "shadcn/fs-extra": ["fs-extra@11.3.5", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg=="], "shadcn/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], @@ -2142,14 +2111,10 @@ "type-is/content-type": ["content-type@2.0.0", "", {}, "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ=="], - "unzipper/fs-extra": ["fs-extra@11.3.1", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g=="], + "unzipper/fs-extra": ["fs-extra@11.3.5", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg=="], "wrap-ansi/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "wsl-utils/is-wsl": ["is-wsl@3.1.1", "", { "dependencies": { "is-inside-container": "^1.0.0" } }, "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw=="], - - "yargs/find-up": ["find-up@4.1.0", "", { "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="], - "@dotenvx/dotenvx/execa/get-stream": ["get-stream@6.0.1", "", {}, "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="], "@dotenvx/dotenvx/execa/human-signals": ["human-signals@2.1.0", "", {}, "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="], @@ -2162,8 +2127,6 @@ "@dotenvx/dotenvx/execa/strip-final-newline": ["strip-final-newline@2.0.0", "", {}, "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="], - "@dotenvx/dotenvx/open/define-lazy-prop": ["define-lazy-prop@2.0.0", "", {}, "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og=="], - "@dotenvx/dotenvx/which/isexe": ["isexe@3.1.5", "", {}, "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w=="], "@electron/asar/minimatch/brace-expansion": ["brace-expansion@1.1.15", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg=="], @@ -2176,6 +2139,8 @@ "@modelcontextprotocol/sdk/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], + "@tailwindcss/oxide-wasm32-wasi/@emnapi/core/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w=="], + "ajv-formats/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], "app-builder-lib/@electron/get/fs-extra": ["fs-extra@8.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g=="], @@ -2188,16 +2153,8 @@ "cliui/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - "conf/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], - "dir-compare/minimatch/brace-expansion": ["brace-expansion@1.1.15", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg=="], - "electron-builder/yargs/cliui": ["cliui@8.0.1", "", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } }, "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ=="], - - "electron-builder/yargs/y18n": ["y18n@5.0.8", "", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="], - - "electron-builder/yargs/yargs-parser": ["yargs-parser@21.1.1", "", {}, "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="], - "electron-winstaller/fs-extra/jsonfile": ["jsonfile@4.0.0", "", { "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg=="], "electron-winstaller/fs-extra/universalify": ["universalify@0.1.2", "", {}, "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="], @@ -2218,14 +2175,18 @@ "ora/string-width/emoji-regex": ["emoji-regex@10.6.0", "", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="], - "pkg-up/find-up/locate-path": ["locate-path@3.0.0", "", { "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" } }, "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A=="], + "qrcode/yargs/cliui": ["cliui@6.0.0", "", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^6.2.0" } }, "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ=="], + + "qrcode/yargs/find-up": ["find-up@4.1.0", "", { "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="], + + "qrcode/yargs/y18n": ["y18n@4.0.3", "", {}, "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="], + + "qrcode/yargs/yargs-parser": ["yargs-parser@18.1.3", "", { "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" } }, "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ=="], "string-width/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], "wrap-ansi/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - "yargs/find-up/locate-path": ["locate-path@5.0.0", "", { "dependencies": { "p-locate": "^4.1.0" } }, "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="], - "@electron/asar/minimatch/brace-expansion/balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], "@electron/universal/minimatch/brace-expansion/balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], @@ -2236,24 +2197,20 @@ "dir-compare/minimatch/brace-expansion/balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], - "electron-builder/yargs/cliui/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - - "electron-builder/yargs/cliui/wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], - "filelist/minimatch/brace-expansion/balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], "glob/minimatch/brace-expansion/balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], - "pkg-up/find-up/locate-path/p-locate": ["p-locate@3.0.0", "", { "dependencies": { "p-limit": "^2.0.0" } }, "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ=="], + "qrcode/yargs/cliui/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "pkg-up/find-up/locate-path/path-exists": ["path-exists@3.0.0", "", {}, "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ=="], + "qrcode/yargs/cliui/wrap-ansi": ["wrap-ansi@6.2.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA=="], - "yargs/find-up/locate-path/p-locate": ["p-locate@4.1.0", "", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="], + "qrcode/yargs/find-up/locate-path": ["locate-path@5.0.0", "", { "dependencies": { "p-locate": "^4.1.0" } }, "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="], - "electron-builder/yargs/cliui/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + "qrcode/yargs/cliui/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - "pkg-up/find-up/locate-path/p-locate/p-limit": ["p-limit@2.3.0", "", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], + "qrcode/yargs/find-up/locate-path/p-locate": ["p-locate@4.1.0", "", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="], - "yargs/find-up/locate-path/p-locate/p-limit": ["p-limit@2.3.0", "", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], + "qrcode/yargs/find-up/locate-path/p-locate/p-limit": ["p-limit@2.3.0", "", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], } } diff --git a/flake.lock b/flake.lock index aeb3d70..ea7bf8c 100644 --- a/flake.lock +++ b/flake.lock @@ -2,58 +2,22 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 1782467914, - "narHash": "sha256-pGvFkM8N0xEkIIXDe5YYfbEAvHrk4IxBrjB/x8OomhE=", + "lastModified": 1779508470, + "narHash": "sha256-Ap9KJX+5xHIn3bPIpfNgT6MEXdAECECwo4/rmlQD74M=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e73de5be04e0eff4190a1432b946d469c794e7b4", + "rev": "29916453413845e54a65b8a1cf996842300cd299", "type": "github" }, "original": { - "owner": "NixOS", + "id": "nixpkgs", "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1744536153, - "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" + "type": "indirect" } }, "root": { "inputs": { - "nixpkgs": "nixpkgs", - "rust-overlay": "rust-overlay" - } - }, - "rust-overlay": { - "inputs": { - "nixpkgs": "nixpkgs_2" - }, - "locked": { - "lastModified": 1782616745, - "narHash": "sha256-NN5B1cKBXF6h1Ec681gMGZ2o/99d7vKXAAfFNEvyOKA=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "b916d014dc57eb555f84e51172a82f7f6fb560d7", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" + "nixpkgs": "nixpkgs" } } }, diff --git a/flake.nix b/flake.nix index 55990bb..cefe9d2 100644 --- a/flake.nix +++ b/flake.nix @@ -1,39 +1,23 @@ { - description = "Tensamin Client"; + description = "Tensamin desktop client"; - inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - rust-overlay.url = "github:oxalica/rust-overlay"; - }; + inputs.nixpkgs.url = "nixpkgs/nixos-unstable"; - outputs = { - self, - nixpkgs, - rust-overlay, - ... - }: let + outputs = {nixpkgs, ...}: let systems = ["x86_64-linux"]; forAllSystems = nixpkgs.lib.genAttrs systems; - version = "0.0.10"; - x86_64DebHash = "sha256-VVKkZ9yQ7BoLnYnCf5OSHcrakoBNfUx/uWxBmm3gBZE="; + version = "0.0.9"; + x86_64DebHash = "sha256-8rVb12SGGSac6l1NVPGyRLsAKAGDAOJVUwG8l+hoRCU="; forgejoBaseUrl = "https://git.methanium.net/tensamin/client/releases/download/${version}"; in { packages = forAllSystems (system: let - pkgs = import nixpkgs { - inherit system; - overlays = [(import rust-overlay)]; - config = { - allowUnfree = true; - android_sdk.accept_license = true; - }; - }; + pkgs = import nixpkgs {inherit system;}; debArtifact = "Tensamin-${version}-linux-amd64.deb"; electronRuntimeLibs = with pkgs; [ alsa-lib at-spi2-atk at-spi2-core - atk cairo cups dbus @@ -45,7 +29,6 @@ gtk3 libdrm libgbm - libglvnd libnotify libpulseaudio libuuid @@ -54,7 +37,6 @@ nspr nss pango - pipewire systemd wayland libX11 @@ -110,221 +92,8 @@ url = "${forgejoBaseUrl}/${debArtifact}"; hash = x86_64DebHash; }); - localDebPath = builtins.getEnv "TENSAMIN_DEB"; - localPathPackage = - if localDebPath == "" - then - pkgs.writeShellScriptBin "tensamin" '' - echo "Set TENSAMIN_DEB to a local .deb path and run with --impure." >&2 - exit 1 - '' - else - packageDeb (builtins.path { - path = localDebPath; - name = debArtifact; - }); in { default = defaultPackage; - tensamin = defaultPackage; - electron = defaultPackage; - localPathForDev = localPathPackage; - }); - - devShells = forAllSystems (system: let - pkgs = import nixpkgs { - inherit system; - overlays = [(import rust-overlay)]; - config = { - allowUnfree = true; - android_sdk.accept_license = true; - }; - }; - - electronRuntimeLibs = with pkgs; [ - alsa-lib - at-spi2-atk - at-spi2-core - atk - cairo - cups - dbus - expat - fontconfig - freetype - gdk-pixbuf - glib - gtk3 - libdrm - libgbm - libglvnd - libnotify - libpulseaudio - libuuid - libxkbcommon - mesa - nspr - nss - pango - pipewire - systemd - wayland - libX11 - libXScrnSaver - libXcomposite - libXcursor - libXdamage - libXext - libXfixes - libXi - libXrandr - libXtst - libxcb - ]; - - buildToolsVersion = "35.0.0"; - ndkVersion = "29.0.14206865"; - android = pkgs.androidenv.composeAndroidPackages { - cmdLineToolsVersion = "8.0"; - toolsVersion = "26.1.1"; - platformToolsVersion = "35.0.2"; - buildToolsVersions = [buildToolsVersion]; - platformVersions = ["35" "36"]; - includeSources = false; - includeSystemImages = false; - includeNDK = true; - ndkVersions = [ndkVersion]; - useGoogleAPIs = false; - }; - rustToolchain = pkgs.rust-bin.stable.latest.default.override { - extensions = ["rust-src" "rust-analyzer"]; - targets = [ - "aarch64-linux-android" - "armv7-linux-androideabi" - "i686-linux-android" - "x86_64-linux-android" - "wasm32-unknown-unknown" - ]; - }; - - commonDeps = [rustToolchain pkgs.wasm-pack pkgs.lld]; - in rec { - default = electron; - - electron = pkgs.mkShell { - packages = with pkgs; - [ - nodejs_22 - corepack_22 - coreutils - bun - pkgs.electron - pkg-config - python3 - gcc - gnumake - git - jq - patchelf - dpkg - rpm - fpm - sudo - curl - fakeroot - rsync - xz - ] - ++ electronRuntimeLibs ++ commonDeps; - - shellHook = '' - export LD_LIBRARY_PATH="${pkgs.lib.makeLibraryPath electronRuntimeLibs}:$LD_LIBRARY_PATH" - export ELECTRON_ENABLE_LOGGING=1 - export ELECTRON_OZONE_PLATFORM_HINT="''${ELECTRON_OZONE_PLATFORM_HINT:-auto}" - export NPM_CONFIG_TARGET_ARCH="''${NPM_CONFIG_TARGET_ARCH:-x64}" - export npm_config_build_from_source=true - export USE_SYSTEM_FPM=true - - alias electron-install='cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" && bun install' - alias electron-build-web='cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" && bun run build:web' - alias electron-dev='bun run dev' - alias electron-package='bun run package:linux' - alias electron-validate='bun run validate' - ''; - }; - - tauri = pkgs.mkShell { - buildInputs = with pkgs; - [ - jdk17 - gradle - bun - nodejs - coreutils - pkg-config - git - jq - curl - ] - ++ [ - android.androidsdk - android-studio-tools - ] - ++ commonDeps; - - shellHook = '' - sdkSource="${android.androidsdk}/libexec/android-sdk" - if [ -d apps/tauri/src-tauri ]; then - projectRoot="$PWD/apps/tauri" - else - projectRoot="$PWD" - fi - androidHome="$projectRoot/.android" - sdkRoot="$androidHome/sdk" - - mkdir -p "$androidHome" - if [ -L "$sdkRoot" ]; then - rm -f "$sdkRoot" - fi - mkdir -p "$sdkRoot" - - ln -sfn "$sdkSource/build-tools" "$sdkRoot/build-tools" - ln -sfn "$sdkSource/cmake" "$sdkRoot/cmake" - ln -sfn "$sdkSource/licenses" "$sdkRoot/licenses" - ln -sfn "$sdkSource/ndk" "$sdkRoot/ndk" - ln -sfn "$sdkSource/ndk-bundle" "$sdkRoot/ndk-bundle" - ln -sfn "$sdkSource/platforms" "$sdkRoot/platforms" - ln -sfn "$sdkSource/platform-tools" "$sdkRoot/platform-tools" - ln -sfn "$sdkSource/tools" "$sdkRoot/tools" - - mkdir -p "$sdkRoot/cmdline-tools" - ln -sfn "$sdkSource/cmdline-tools/8.0" "$sdkRoot/cmdline-tools/8.0" - ln -sfn "8.0" "$sdkRoot/cmdline-tools/latest" - - sdkRootAbs="$(realpath "$sdkRoot")" - ndkRootAbs="''${sdkRootAbs}/ndk/${ndkVersion}" - - export PATH="''${sdkRootAbs}/cmdline-tools/latest/bin:''${sdkRootAbs}/platform-tools:''${ndkRootAbs}:${pkgs.android-studio-tools}/bin:$PATH" - export ANDROID_HOME="''${sdkRootAbs}" - export ANDROID_SDK_ROOT="''${sdkRootAbs}" - export ANDROID_NDK_ROOT="''${ndkRootAbs}" - export ANDROID_NDK_HOME="$ANDROID_NDK_ROOT" - export NDK_HOME="$ANDROID_NDK_ROOT" - export NDK_PATH="$ANDROID_NDK_ROOT" - export JAVA_HOME="${pkgs.jdk17}" - - aapt2Path="''${sdkRootAbs}/build-tools/${buildToolsVersion}/aapt2" - if [ -x "$aapt2Path" ]; then - mkdir -p "$HOME/.gradle" - gradleProperties="$HOME/.gradle/gradle.properties" - touch "$gradleProperties" - if grep -q '^android\.aapt2FromMavenOverride=' "$gradleProperties"; then - sed -i "s|^android\.aapt2FromMavenOverride=.*|android.aapt2FromMavenOverride=$aapt2Path|" "$gradleProperties" - else - printf '\nandroid.aapt2FromMavenOverride=%s\n' "$aapt2Path" >> "$gradleProperties" - fi - fi - ''; - }; }); }; } diff --git a/licenses/@babel_runtime@7.29.7/LICENSE b/licenses/@babel_runtime@7.29.7/LICENSE deleted file mode 100644 index f31575e..0000000 --- a/licenses/@babel_runtime@7.29.7/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -MIT License - -Copyright (c) 2014-present Sebastian McKenzie and other contributors - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/licenses/@base-ui_react@1.6.0/LICENSE b/licenses/@base-ui_react@1.6.0/LICENSE deleted file mode 100644 index 510c55e..0000000 --- a/licenses/@base-ui_react@1.6.0/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019 Material-UI SAS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@base-ui_utils@0.3.1/LICENSE b/licenses/@base-ui_utils@0.3.1/LICENSE deleted file mode 100644 index 510c55e..0000000 --- a/licenses/@base-ui_utils@0.3.1/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019 Material-UI SAS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@codemirror_commands@6.10.4/LICENSE b/licenses/@codemirror_commands@6.10.3/LICENSE similarity index 100% rename from licenses/@codemirror_commands@6.10.4/LICENSE rename to licenses/@codemirror_commands@6.10.3/LICENSE diff --git a/licenses/@codemirror_state@6.7.0/LICENSE b/licenses/@codemirror_state@6.6.0/LICENSE similarity index 100% rename from licenses/@codemirror_state@6.7.0/LICENSE rename to licenses/@codemirror_state@6.6.0/LICENSE diff --git a/licenses/@codemirror_view@6.43.4/LICENSE b/licenses/@codemirror_view@6.41.1/LICENSE similarity index 100% rename from licenses/@codemirror_view@6.43.4/LICENSE rename to licenses/@codemirror_view@6.41.1/LICENSE diff --git a/licenses/@floating-ui_core@1.7.5/LICENSE b/licenses/@floating-ui_core@1.7.5/LICENSE deleted file mode 100644 index 639cdc6..0000000 --- a/licenses/@floating-ui_core@1.7.5/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -MIT License - -Copyright (c) 2021-present Floating UI contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/licenses/@floating-ui_dom@1.7.6/LICENSE b/licenses/@floating-ui_dom@1.7.6/LICENSE deleted file mode 100644 index 639cdc6..0000000 --- a/licenses/@floating-ui_dom@1.7.6/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -MIT License - -Copyright (c) 2021-present Floating UI contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/licenses/@floating-ui_react-dom@2.1.8/LICENSE b/licenses/@floating-ui_react-dom@2.1.8/LICENSE deleted file mode 100644 index 639cdc6..0000000 --- a/licenses/@floating-ui_react-dom@2.1.8/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -MIT License - -Copyright (c) 2021-present Floating UI contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/licenses/@floating-ui_utils@0.2.11/LICENSE b/licenses/@floating-ui_utils@0.2.11/LICENSE deleted file mode 100644 index 639cdc6..0000000 --- a/licenses/@floating-ui_utils@0.2.11/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -MIT License - -Copyright (c) 2021-present Floating UI contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/licenses/@fontsource-variable_public-sans@5.2.7/LICENSE b/licenses/@fontsource-variable_public-sans@5.2.7/LICENSE deleted file mode 100644 index a6cb63a..0000000 --- a/licenses/@fontsource-variable_public-sans@5.2.7/LICENSE +++ /dev/null @@ -1,93 +0,0 @@ -Copyright 2015 The Public Sans Project Authors (https://github.com/uswds/public-sans) PublicSans-Italic[wght].ttf: Copyright 2015 The Public Sans Project Authors (https://github.com/uswds/public-sans) - -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: -http://scripts.sil.org/OFL - - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/licenses/@livekit_components-react@2.9.21/LICENSE b/licenses/@livekit_components-react@2.9.20/LICENSE similarity index 100% rename from licenses/@livekit_components-react@2.9.21/LICENSE rename to licenses/@livekit_components-react@2.9.20/LICENSE diff --git a/licenses/@noble_hashes@2.2.0/LICENSE b/licenses/@noble_hashes@2.2.0/LICENSE deleted file mode 100644 index 9297a04..0000000 --- a/licenses/@noble_hashes@2.2.0/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2022 Paul Miller (https://paulmillr.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the “Software”), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/licenses/@radix-ui_primitive@1.1.4/LICENSE b/licenses/@radix-ui_primitive@1.1.4/LICENSE deleted file mode 100644 index a18858f..0000000 --- a/licenses/@radix-ui_primitive@1.1.4/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 WorkOS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@radix-ui_react-compose-refs@1.1.3/LICENSE b/licenses/@radix-ui_react-compose-refs@1.1.3/LICENSE deleted file mode 100644 index a18858f..0000000 --- a/licenses/@radix-ui_react-compose-refs@1.1.3/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 WorkOS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@radix-ui_react-context@1.1.4/LICENSE b/licenses/@radix-ui_react-context@1.1.4/LICENSE deleted file mode 100644 index a18858f..0000000 --- a/licenses/@radix-ui_react-context@1.1.4/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 WorkOS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@radix-ui_react-dialog@1.1.18/LICENSE b/licenses/@radix-ui_react-dialog@1.1.18/LICENSE deleted file mode 100644 index a18858f..0000000 --- a/licenses/@radix-ui_react-dialog@1.1.18/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 WorkOS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@radix-ui_react-dismissable-layer@1.1.14/LICENSE b/licenses/@radix-ui_react-dismissable-layer@1.1.14/LICENSE deleted file mode 100644 index a18858f..0000000 --- a/licenses/@radix-ui_react-dismissable-layer@1.1.14/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 WorkOS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@radix-ui_react-focus-guards@1.1.4/LICENSE b/licenses/@radix-ui_react-focus-guards@1.1.4/LICENSE deleted file mode 100644 index a18858f..0000000 --- a/licenses/@radix-ui_react-focus-guards@1.1.4/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 WorkOS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@radix-ui_react-focus-scope@1.1.11/LICENSE b/licenses/@radix-ui_react-focus-scope@1.1.11/LICENSE deleted file mode 100644 index a18858f..0000000 --- a/licenses/@radix-ui_react-focus-scope@1.1.11/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 WorkOS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@radix-ui_react-id@1.1.2/LICENSE b/licenses/@radix-ui_react-id@1.1.2/LICENSE deleted file mode 100644 index a18858f..0000000 --- a/licenses/@radix-ui_react-id@1.1.2/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 WorkOS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@radix-ui_react-portal@1.1.13/LICENSE b/licenses/@radix-ui_react-portal@1.1.13/LICENSE deleted file mode 100644 index a18858f..0000000 --- a/licenses/@radix-ui_react-portal@1.1.13/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 WorkOS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@radix-ui_react-presence@1.1.6/LICENSE b/licenses/@radix-ui_react-presence@1.1.6/LICENSE deleted file mode 100644 index a18858f..0000000 --- a/licenses/@radix-ui_react-presence@1.1.6/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 WorkOS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@radix-ui_react-primitive@2.1.7/LICENSE b/licenses/@radix-ui_react-primitive@2.1.7/LICENSE deleted file mode 100644 index a18858f..0000000 --- a/licenses/@radix-ui_react-primitive@2.1.7/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 WorkOS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@radix-ui_react-slot@1.3.0/LICENSE b/licenses/@radix-ui_react-slot@1.3.0/LICENSE deleted file mode 100644 index a18858f..0000000 --- a/licenses/@radix-ui_react-slot@1.3.0/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 WorkOS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@radix-ui_react-use-callback-ref@1.1.2/LICENSE b/licenses/@radix-ui_react-use-callback-ref@1.1.2/LICENSE deleted file mode 100644 index a18858f..0000000 --- a/licenses/@radix-ui_react-use-callback-ref@1.1.2/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 WorkOS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@radix-ui_react-use-controllable-state@1.2.3/LICENSE b/licenses/@radix-ui_react-use-controllable-state@1.2.3/LICENSE deleted file mode 100644 index a18858f..0000000 --- a/licenses/@radix-ui_react-use-controllable-state@1.2.3/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 WorkOS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@radix-ui_react-use-effect-event@0.0.2/LICENSE b/licenses/@radix-ui_react-use-effect-event@0.0.2/LICENSE deleted file mode 100644 index a18858f..0000000 --- a/licenses/@radix-ui_react-use-effect-event@0.0.2/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 WorkOS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@radix-ui_react-use-layout-effect@1.1.2/LICENSE b/licenses/@radix-ui_react-use-layout-effect@1.1.2/LICENSE deleted file mode 100644 index a18858f..0000000 --- a/licenses/@radix-ui_react-use-layout-effect@1.1.2/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 WorkOS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@reduxjs_toolkit@2.12.0/LICENSE b/licenses/@reduxjs_toolkit@2.12.0/LICENSE deleted file mode 100644 index 1daa252..0000000 --- a/licenses/@reduxjs_toolkit@2.12.0/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2018 Mark Erikson - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@tailwindcss_vite@4.3.2/LICENSE b/licenses/@tailwindcss_vite@4.2.4/LICENSE similarity index 100% rename from licenses/@tailwindcss_vite@4.3.2/LICENSE rename to licenses/@tailwindcss_vite@4.2.4/LICENSE diff --git a/licenses/@tanstack_devtools-event-client@0.3.5/LICENSE b/licenses/@tanstack_devtools-event-client@0.3.5/LICENSE deleted file mode 100644 index 0ede5e8..0000000 --- a/licenses/@tanstack_devtools-event-client@0.3.5/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2025 TanStack - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@tanstack_pacer@0.21.1/LICENSE b/licenses/@tanstack_pacer@0.21.1/LICENSE deleted file mode 100644 index 308cb68..0000000 --- a/licenses/@tanstack_pacer@0.21.1/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2025 Tanner Linsley - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@tanstack_history@1.162.0/LICENSE b/licenses/@tanstack_react-query@5.100.8/LICENSE similarity index 100% rename from licenses/@tanstack_history@1.162.0/LICENSE rename to licenses/@tanstack_react-query@5.100.8/LICENSE diff --git a/licenses/@tanstack_query-core@5.101.2/LICENSE b/licenses/@tanstack_react-router@1.169.1/LICENSE similarity index 100% rename from licenses/@tanstack_query-core@5.101.2/LICENSE rename to licenses/@tanstack_react-router@1.169.1/LICENSE diff --git a/licenses/@tanstack_react-router@1.170.17/LICENSE b/licenses/@tanstack_react-router@1.170.17/LICENSE deleted file mode 100644 index 1869e21..0000000 --- a/licenses/@tanstack_react-router@1.170.17/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021-present Tanner Linsley - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@tanstack_react-store@0.9.3/LICENSE b/licenses/@tanstack_react-store@0.9.3/LICENSE deleted file mode 100644 index 77eca38..0000000 --- a/licenses/@tanstack_react-store@0.9.3/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021 Tanner Linsley - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@tanstack_react-query@5.101.2/LICENSE b/licenses/@tanstack_react-virtual@3.13.24/LICENSE similarity index 100% rename from licenses/@tanstack_react-query@5.101.2/LICENSE rename to licenses/@tanstack_react-virtual@3.13.24/LICENSE diff --git a/licenses/@tanstack_react-virtual@3.14.5/LICENSE b/licenses/@tanstack_react-virtual@3.14.5/LICENSE deleted file mode 100644 index 1869e21..0000000 --- a/licenses/@tanstack_react-virtual@3.14.5/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021-present Tanner Linsley - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@tanstack_router-core@1.171.14/LICENSE b/licenses/@tanstack_router-core@1.171.14/LICENSE deleted file mode 100644 index 1869e21..0000000 --- a/licenses/@tanstack_router-core@1.171.14/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021-present Tanner Linsley - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@tanstack_store@0.9.3/LICENSE b/licenses/@tanstack_store@0.9.3/LICENSE deleted file mode 100644 index 77eca38..0000000 --- a/licenses/@tanstack_store@0.9.3/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021 Tanner Linsley - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@tanstack_virtual-core@3.17.3/LICENSE b/licenses/@tanstack_virtual-core@3.17.3/LICENSE deleted file mode 100644 index 1869e21..0000000 --- a/licenses/@tanstack_virtual-core@3.17.3/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021-present Tanner Linsley - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/@tauri-apps_api@2.11.1/LICENSE_APACHE-2.0 b/licenses/@tauri-apps_api@2.11.0/LICENSE_APACHE-2.0 similarity index 100% rename from licenses/@tauri-apps_api@2.11.1/LICENSE_APACHE-2.0 rename to licenses/@tauri-apps_api@2.11.0/LICENSE_APACHE-2.0 diff --git a/licenses/@tauri-apps_api@2.11.1/LICENSE_MIT b/licenses/@tauri-apps_api@2.11.0/LICENSE_MIT similarity index 100% rename from licenses/@tauri-apps_api@2.11.1/LICENSE_MIT rename to licenses/@tauri-apps_api@2.11.0/LICENSE_MIT diff --git a/licenses/@tauri-apps_cli@2.11.4/LICENSE_APACHE-2.0 b/licenses/@tauri-apps_cli@2.11.0/LICENSE_APACHE-2.0 similarity index 100% rename from licenses/@tauri-apps_cli@2.11.4/LICENSE_APACHE-2.0 rename to licenses/@tauri-apps_cli@2.11.0/LICENSE_APACHE-2.0 diff --git a/licenses/@tauri-apps_cli@2.11.4/LICENSE_MIT b/licenses/@tauri-apps_cli@2.11.0/LICENSE_MIT similarity index 100% rename from licenses/@tauri-apps_cli@2.11.4/LICENSE_MIT rename to licenses/@tauri-apps_cli@2.11.0/LICENSE_MIT diff --git a/licenses/@tauri-apps_plugin-barcode-scanner@2.4.5/LICENSE.spdx b/licenses/@tauri-apps_plugin-barcode-scanner@2.4.4/LICENSE.spdx similarity index 100% rename from licenses/@tauri-apps_plugin-barcode-scanner@2.4.5/LICENSE.spdx rename to licenses/@tauri-apps_plugin-barcode-scanner@2.4.4/LICENSE.spdx diff --git a/licenses/@tauri-apps_plugin-notification@2.3.3/LICENSE.spdx b/licenses/@tauri-apps_plugin-notification@2.3.3/LICENSE.spdx deleted file mode 100644 index cdd0df5..0000000 --- a/licenses/@tauri-apps_plugin-notification@2.3.3/LICENSE.spdx +++ /dev/null @@ -1,20 +0,0 @@ -SPDXVersion: SPDX-2.1 -DataLicense: CC0-1.0 -PackageName: tauri -DataFormat: SPDXRef-1 -PackageSupplier: Organization: The Tauri Programme in the Commons Conservancy -PackageHomePage: https://tauri.app -PackageLicenseDeclared: Apache-2.0 -PackageLicenseDeclared: MIT -PackageCopyrightText: 2019-2022, The Tauri Programme in the Commons Conservancy -PackageSummary: Tauri is a rust project that enables developers to make secure -and small desktop applications using a web frontend. - -PackageComment: The package includes the following libraries; see -Relationship information. - -Created: 2019-05-20T09:00:00Z -PackageDownloadLocation: git://github.com/tauri-apps/tauri -PackageDownloadLocation: git+https://github.com/tauri-apps/tauri.git -PackageDownloadLocation: git+ssh://github.com/tauri-apps/tauri.git -Creator: Person: Daniel Thompson-Yvetot \ No newline at end of file diff --git a/licenses/@tauri-apps_plugin-log@2.8.0/LICENSE.spdx b/licenses/@tauri-apps_plugin-opener@2.5.4/LICENSE.spdx similarity index 100% rename from licenses/@tauri-apps_plugin-log@2.8.0/LICENSE.spdx rename to licenses/@tauri-apps_plugin-opener@2.5.4/LICENSE.spdx diff --git a/licenses/@tensamin_ttp-core@0.0.19/LICENSE b/licenses/@tensamin_ttp-core@0.0.19/LICENSE new file mode 100644 index 0000000..7ba2513 --- /dev/null +++ b/licenses/@tensamin_ttp-core@0.0.19/LICENSE @@ -0,0 +1,16 @@ +Copyright (c) [2026] [Methanium] +All rights reserved. + +This software is protected by copyright. Copying, editing, +distributing, publicly performing, or any other use of this software +or its components, in source or binary form, is strictly prohibited without the express +written permission of the copyright holder. + +FUTURE LICENSE ACCEPTANCE: +It is the copyright holder's intention to release this software in the future +under a license yet to be defined, which will, among other things, +allow private, non-commercial use. This statement does not constitute +a current license grant and does not alter the above +prohibition on use, copying, or modification. Until the formal +publication of such a future license, all rights remain +reserved. diff --git a/licenses/@types_node@25.9.4/LICENSE b/licenses/@types_node@25.6.0/LICENSE similarity index 100% rename from licenses/@types_node@25.9.4/LICENSE rename to licenses/@types_node@25.6.0/LICENSE diff --git a/licenses/@types_react@19.2.17/LICENSE b/licenses/@types_react@19.2.14/LICENSE similarity index 100% rename from licenses/@types_react@19.2.17/LICENSE rename to licenses/@types_react@19.2.14/LICENSE diff --git a/licenses/@typescript-eslint_parser@8.62.1/LICENSE b/licenses/@typescript-eslint_parser@8.59.1/LICENSE similarity index 100% rename from licenses/@typescript-eslint_parser@8.62.1/LICENSE rename to licenses/@typescript-eslint_parser@8.59.1/LICENSE diff --git a/licenses/@vitejs_plugin-react@6.0.3/LICENSE b/licenses/@vitejs_plugin-react@6.0.1/LICENSE similarity index 100% rename from licenses/@vitejs_plugin-react@6.0.3/LICENSE rename to licenses/@vitejs_plugin-react@6.0.1/LICENSE diff --git a/licenses/THIRD_PARTY_NOTICES.md b/licenses/THIRD_PARTY_NOTICES.md index 33aad1a..2dcc4e3 100644 --- a/licenses/THIRD_PARTY_NOTICES.md +++ b/licenses/THIRD_PARTY_NOTICES.md @@ -2,42 +2,13 @@ Generated from bun.lock and installed packages in workspace node_modules folders. -## @babel/runtime@7.29.7 +## @codemirror/commands@6.10.3 - License: MIT -- Homepage: https://babel.dev/docs/en/next/babel-runtime -- Repository: https://github.com/babel/babel.git -- Description: babel's modular runtime helpers -- Included files: LICENSE -- Folder: `licenses/@babel_runtime@7.29.7` -- Source package dir: `apps/web/node_modules/@babel/runtime` - -## @base-ui/react@1.6.0 - -- License: MIT -- Homepage: https://base-ui.com -- Repository: git+https://github.com/mui/base-ui.git -- Description: Base UI is a library of headless ('unstyled') React components and low-level hooks. You gain complete control over your app's CSS and accessibility features. -- Included files: LICENSE -- Folder: `licenses/@base-ui_react@1.6.0` -- Source package dir: `apps/web/node_modules/@base-ui/react` - -## @base-ui/utils@0.3.1 - -- License: MIT -- Repository: git+https://github.com/mui/base-ui.git -- Description: A collection of React utility functions for Base UI. -- Included files: LICENSE -- Folder: `licenses/@base-ui_utils@0.3.1` -- Source package dir: `apps/web/node_modules/@base-ui/utils` - -## @codemirror/commands@6.10.4 - -- License: MIT -- Repository: git+https://code.haverbeke.berlin/codemirror/commands.git +- Repository: git+https://github.com/codemirror/commands.git - Description: Collection of editing commands for the CodeMirror code editor - Included files: LICENSE -- Folder: `licenses/@codemirror_commands@6.10.4` +- Folder: `licenses/@codemirror_commands@6.10.3` - Source package dir: `packages/markdown/node_modules/@codemirror/commands` ## @codemirror/lang-markdown@6.5.0 @@ -49,22 +20,22 @@ Generated from bun.lock and installed packages in workspace node_modules folders - Folder: `licenses/@codemirror_lang-markdown@6.5.0` - Source package dir: `packages/markdown/node_modules/@codemirror/lang-markdown` -## @codemirror/state@6.7.0 +## @codemirror/state@6.6.0 - License: MIT -- Repository: git+https://code.haverbeke.berlin/codemirror/state.git +- Repository: git+https://github.com/codemirror/state.git - Description: Editor state data structures for the CodeMirror code editor - Included files: LICENSE -- Folder: `licenses/@codemirror_state@6.7.0` +- Folder: `licenses/@codemirror_state@6.6.0` - Source package dir: `packages/markdown/node_modules/@codemirror/state` -## @codemirror/view@6.43.4 +## @codemirror/view@6.41.1 - License: MIT - Repository: git+https://code.haverbeke.berlin/codemirror/view.git - Description: DOM view component for the CodeMirror code editor - Included files: LICENSE -- Folder: `licenses/@codemirror_view@6.43.4` +- Folder: `licenses/@codemirror_view@6.41.1` - Source package dir: `packages/markdown/node_modules/@codemirror/view` ## @eslint/js@10.0.1 @@ -77,46 +48,6 @@ Generated from bun.lock and installed packages in workspace node_modules folders - Folder: `licenses/@eslint_js@10.0.1` - Source package dir: `apps/web/node_modules/@eslint/js` -## @floating-ui/core@1.7.5 - -- License: MIT -- Homepage: https://floating-ui.com -- Repository: https://github.com/floating-ui/floating-ui.git -- Description: Positioning library for floating elements: tooltips, popovers, dropdowns, and more -- Included files: LICENSE -- Folder: `licenses/@floating-ui_core@1.7.5` -- Source package dir: `apps/web/node_modules/@floating-ui/core` - -## @floating-ui/dom@1.7.6 - -- License: MIT -- Homepage: https://floating-ui.com -- Repository: https://github.com/floating-ui/floating-ui.git -- Description: Floating UI for the web -- Included files: LICENSE -- Folder: `licenses/@floating-ui_dom@1.7.6` -- Source package dir: `apps/web/node_modules/@floating-ui/dom` - -## @floating-ui/react-dom@2.1.8 - -- License: MIT -- Homepage: https://floating-ui.com/docs/react-dom -- Repository: https://github.com/floating-ui/floating-ui.git -- Description: Floating UI for React DOM -- Included files: LICENSE -- Folder: `licenses/@floating-ui_react-dom@2.1.8` -- Source package dir: `apps/web/node_modules/@floating-ui/react-dom` - -## @floating-ui/utils@0.2.11 - -- License: MIT -- Homepage: https://floating-ui.com -- Repository: https://github.com/floating-ui/floating-ui.git -- Description: Utilities for Floating UI -- Included files: LICENSE -- Folder: `licenses/@floating-ui_utils@0.2.11` -- Source package dir: `apps/web/node_modules/@floating-ui/utils` - ## @fontsource-variable/inter@5.2.8 - License: OFL-1.1 @@ -127,22 +58,12 @@ Generated from bun.lock and installed packages in workspace node_modules folders - Folder: `licenses/@fontsource-variable_inter@5.2.8` - Source package dir: `apps/web/node_modules/@fontsource-variable/inter` -## @fontsource-variable/public-sans@5.2.7 - -- License: OFL-1.1 -- Homepage: https://fontsource.org/fonts/public-sans -- Repository: git+https://github.com/fontsource/font-files.git -- Description: Self-host the Public Sans font in a neatly bundled NPM package. -- Included files: LICENSE -- Folder: `licenses/@fontsource-variable_public-sans@5.2.7` -- Source package dir: `apps/web/node_modules/@fontsource-variable/public-sans` - -## @livekit/components-react@2.9.21 +## @livekit/components-react@2.9.20 - License: Apache-2.0 - Repository: https://github.com/livekit/components-js.git - Included files: LICENSE -- Folder: `licenses/@livekit_components-react@2.9.21` +- Folder: `licenses/@livekit_components-react@2.9.20` - Source package dir: `packages/call/node_modules/@livekit/components-react` ## @noble/curves@2.2.0 @@ -153,319 +74,75 @@ Generated from bun.lock and installed packages in workspace node_modules folders - Description: Audited & minimal JS implementation of elliptic curve cryptography - Included files: LICENSE - Folder: `licenses/@noble_curves@2.2.0` -- Source package dir: `packages/crypto/node_modules/@noble/curves` +- Source package dir: `apps/web/node_modules/@noble/curves` -## @noble/hashes@2.2.0 - -- License: MIT -- Homepage: https://paulmillr.com/noble/ -- Repository: git+https://github.com/paulmillr/noble-hashes.git -- Description: Audited & minimal 0-dependency JS implementation of SHA, RIPEMD, BLAKE, HMAC, HKDF, PBKDF & Scrypt -- Included files: LICENSE -- Folder: `licenses/@noble_hashes@2.2.0` -- Source package dir: `packages/crypto/node_modules/@noble/hashes` - -## @radix-ui/primitive@1.1.4 - -- License: MIT -- Homepage: https://radix-ui.com/primitives -- Repository: git+https://github.com/radix-ui/primitives.git -- Included files: LICENSE -- Folder: `licenses/@radix-ui_primitive@1.1.4` -- Source package dir: `apps/web/node_modules/@radix-ui/primitive` - -## @radix-ui/react-compose-refs@1.1.3 - -- License: MIT -- Homepage: https://radix-ui.com/primitives -- Repository: git+https://github.com/radix-ui/primitives.git -- Included files: LICENSE -- Folder: `licenses/@radix-ui_react-compose-refs@1.1.3` -- Source package dir: `apps/web/node_modules/@radix-ui/react-compose-refs` - -## @radix-ui/react-context@1.1.4 - -- License: MIT -- Homepage: https://radix-ui.com/primitives -- Repository: git+https://github.com/radix-ui/primitives.git -- Included files: LICENSE -- Folder: `licenses/@radix-ui_react-context@1.1.4` -- Source package dir: `apps/web/node_modules/@radix-ui/react-context` - -## @radix-ui/react-dialog@1.1.18 - -- License: MIT -- Homepage: https://radix-ui.com/primitives -- Repository: git+https://github.com/radix-ui/primitives.git -- Included files: LICENSE -- Folder: `licenses/@radix-ui_react-dialog@1.1.18` -- Source package dir: `apps/web/node_modules/@radix-ui/react-dialog` - -## @radix-ui/react-dismissable-layer@1.1.14 - -- License: MIT -- Homepage: https://radix-ui.com/primitives -- Repository: git+https://github.com/radix-ui/primitives.git -- Included files: LICENSE -- Folder: `licenses/@radix-ui_react-dismissable-layer@1.1.14` -- Source package dir: `apps/web/node_modules/@radix-ui/react-dismissable-layer` - -## @radix-ui/react-focus-guards@1.1.4 - -- License: MIT -- Homepage: https://radix-ui.com/primitives -- Repository: git+https://github.com/radix-ui/primitives.git -- Included files: LICENSE -- Folder: `licenses/@radix-ui_react-focus-guards@1.1.4` -- Source package dir: `apps/web/node_modules/@radix-ui/react-focus-guards` - -## @radix-ui/react-focus-scope@1.1.11 - -- License: MIT -- Homepage: https://radix-ui.com/primitives -- Repository: git+https://github.com/radix-ui/primitives.git -- Included files: LICENSE -- Folder: `licenses/@radix-ui_react-focus-scope@1.1.11` -- Source package dir: `apps/web/node_modules/@radix-ui/react-focus-scope` - -## @radix-ui/react-id@1.1.2 - -- License: MIT -- Homepage: https://radix-ui.com/primitives -- Repository: git+https://github.com/radix-ui/primitives.git -- Included files: LICENSE -- Folder: `licenses/@radix-ui_react-id@1.1.2` -- Source package dir: `apps/web/node_modules/@radix-ui/react-id` - -## @radix-ui/react-portal@1.1.13 - -- License: MIT -- Homepage: https://radix-ui.com/primitives -- Repository: git+https://github.com/radix-ui/primitives.git -- Included files: LICENSE -- Folder: `licenses/@radix-ui_react-portal@1.1.13` -- Source package dir: `apps/web/node_modules/@radix-ui/react-portal` - -## @radix-ui/react-presence@1.1.6 - -- License: MIT -- Homepage: https://radix-ui.com/primitives -- Repository: git+https://github.com/radix-ui/primitives.git -- Included files: LICENSE -- Folder: `licenses/@radix-ui_react-presence@1.1.6` -- Source package dir: `apps/web/node_modules/@radix-ui/react-presence` - -## @radix-ui/react-primitive@2.1.7 - -- License: MIT -- Homepage: https://radix-ui.com/primitives -- Repository: git+https://github.com/radix-ui/primitives.git -- Included files: LICENSE -- Folder: `licenses/@radix-ui_react-primitive@2.1.7` -- Source package dir: `apps/web/node_modules/@radix-ui/react-primitive` - -## @radix-ui/react-slot@1.3.0 - -- License: MIT -- Homepage: https://radix-ui.com/primitives -- Repository: git+https://github.com/radix-ui/primitives.git -- Included files: LICENSE -- Folder: `licenses/@radix-ui_react-slot@1.3.0` -- Source package dir: `apps/web/node_modules/@radix-ui/react-slot` - -## @radix-ui/react-use-callback-ref@1.1.2 - -- License: MIT -- Homepage: https://radix-ui.com/primitives -- Repository: git+https://github.com/radix-ui/primitives.git -- Included files: LICENSE -- Folder: `licenses/@radix-ui_react-use-callback-ref@1.1.2` -- Source package dir: `apps/web/node_modules/@radix-ui/react-use-callback-ref` - -## @radix-ui/react-use-controllable-state@1.2.3 - -- License: MIT -- Homepage: https://radix-ui.com/primitives -- Repository: git+https://github.com/radix-ui/primitives.git -- Included files: LICENSE -- Folder: `licenses/@radix-ui_react-use-controllable-state@1.2.3` -- Source package dir: `apps/web/node_modules/@radix-ui/react-use-controllable-state` - -## @radix-ui/react-use-effect-event@0.0.2 - -- License: MIT -- Homepage: https://radix-ui.com/primitives -- Repository: git+https://github.com/radix-ui/primitives.git -- Included files: LICENSE -- Folder: `licenses/@radix-ui_react-use-effect-event@0.0.2` -- Source package dir: `apps/web/node_modules/@radix-ui/react-use-effect-event` - -## @radix-ui/react-use-layout-effect@1.1.2 - -- License: MIT -- Homepage: https://radix-ui.com/primitives -- Repository: git+https://github.com/radix-ui/primitives.git -- Included files: LICENSE -- Folder: `licenses/@radix-ui_react-use-layout-effect@1.1.2` -- Source package dir: `apps/web/node_modules/@radix-ui/react-use-layout-effect` - -## @reduxjs/toolkit@2.12.0 - -- License: MIT -- Homepage: https://redux-toolkit.js.org -- Repository: git+https://github.com/reduxjs/redux-toolkit.git -- Description: The official, opinionated, batteries-included toolset for efficient Redux development -- Included files: LICENSE -- Folder: `licenses/@reduxjs_toolkit@2.12.0` -- Source package dir: `apps/web/node_modules/@reduxjs/toolkit` - -## @tailwindcss/vite@4.3.2 +## @tailwindcss/vite@4.2.4 - License: MIT - Homepage: https://tailwindcss.com - Repository: https://github.com/tailwindlabs/tailwindcss.git - Description: A utility-first CSS framework for rapidly building custom user interfaces. - Included files: LICENSE -- Folder: `licenses/@tailwindcss_vite@4.3.2` +- Folder: `licenses/@tailwindcss_vite@4.2.4` - Source package dir: `apps/web/node_modules/@tailwindcss/vite` -## @tanstack/devtools-event-client@0.3.5 - -- License: MIT -- Homepage: https://tanstack.com/devtools -- Repository: https://github.com/TanStack/devtools.git -- Description: TanStack Event Client is a lightweight event client for TanStack Devtools event bus. -- Included files: LICENSE -- Folder: `licenses/@tanstack_devtools-event-client@0.3.5` -- Source package dir: `apps/web/node_modules/@tanstack/devtools-event-client` - -## @tanstack/history@1.162.0 - -- License: MIT -- Homepage: https://tanstack.com/router -- Repository: git+https://github.com/TanStack/router.git -- Description: Modern and scalable routing for React applications -- Included files: LICENSE -- Folder: `licenses/@tanstack_history@1.162.0` -- Source package dir: `apps/web/node_modules/@tanstack/history` - -## @tanstack/pacer@0.21.1 - -- License: MIT -- Homepage: https://tanstack.com/pacer -- Repository: git+https://github.com/TanStack/pacer.git -- Description: Utilities for debouncing, throttling, rate-limiting, queuing, and more. -- Included files: LICENSE -- Folder: `licenses/@tanstack_pacer@0.21.1` -- Source package dir: `packages/chat/node_modules/@tanstack/pacer` - -## @tanstack/query-core@5.101.2 - -- License: MIT -- Homepage: https://tanstack.com/query -- Repository: git+https://github.com/TanStack/query.git -- Description: The framework agnostic core that powers TanStack Query -- Included files: LICENSE -- Folder: `licenses/@tanstack_query-core@5.101.2` -- Source package dir: `apps/web/node_modules/@tanstack/query-core` - -## @tanstack/react-query@5.101.2 +## @tanstack/react-query@5.100.8 - License: MIT - Homepage: https://tanstack.com/query - Repository: git+https://github.com/TanStack/query.git - Description: Hooks for managing, caching and syncing asynchronous and remote data in React - Included files: LICENSE -- Folder: `licenses/@tanstack_react-query@5.101.2` -- Source package dir: `packages/chat/node_modules/@tanstack/react-query` +- Folder: `licenses/@tanstack_react-query@5.100.8` +- Source package dir: `packages/call/node_modules/@tanstack/react-query` -## @tanstack/react-router@1.170.17 +## @tanstack/react-router@1.169.1 - License: MIT - Homepage: https://tanstack.com/router - Repository: git+https://github.com/TanStack/router.git - Description: Modern and scalable routing for React applications - Included files: LICENSE -- Folder: `licenses/@tanstack_react-router@1.170.17` +- Folder: `licenses/@tanstack_react-router@1.169.1` - Source package dir: `apps/web/node_modules/@tanstack/react-router` -## @tanstack/react-store@0.9.3 - -- License: MIT -- Homepage: https://tanstack.com/store -- Repository: https://github.com/TanStack/store.git -- Description: Framework agnostic type-safe store w/ reactive framework adapters -- Included files: LICENSE -- Folder: `licenses/@tanstack_react-store@0.9.3` -- Source package dir: `apps/web/node_modules/@tanstack/react-store` - -## @tanstack/react-virtual@3.14.5 +## @tanstack/react-virtual@3.13.24 - License: MIT - Homepage: https://tanstack.com/virtual - Repository: git+https://github.com/TanStack/virtual.git - Description: Headless UI for virtualizing scrollable elements in React - Included files: LICENSE -- Folder: `licenses/@tanstack_react-virtual@3.14.5` +- Folder: `licenses/@tanstack_react-virtual@3.13.24` - Source package dir: `apps/web/node_modules/@tanstack/react-virtual` -## @tanstack/router-core@1.171.14 - -- License: MIT -- Homepage: https://tanstack.com/router -- Repository: git+https://github.com/TanStack/router.git -- Description: Modern and scalable routing for React applications -- Included files: LICENSE -- Folder: `licenses/@tanstack_router-core@1.171.14` -- Source package dir: `apps/web/node_modules/@tanstack/router-core` - -## @tanstack/store@0.9.3 - -- License: MIT -- Homepage: https://tanstack.com/store -- Repository: git+https://github.com/TanStack/store.git -- Description: Framework agnostic type-safe store w/ reactive framework adapters -- Included files: LICENSE -- Folder: `licenses/@tanstack_store@0.9.3` -- Source package dir: `apps/web/node_modules/@tanstack/store` - -## @tanstack/virtual-core@3.17.3 - -- License: MIT -- Homepage: https://tanstack.com/virtual -- Repository: git+https://github.com/TanStack/virtual.git -- Description: Headless UI for virtualizing scrollable elements in TS/JS + Frameworks -- Included files: LICENSE -- Folder: `licenses/@tanstack_virtual-core@3.17.3` -- Source package dir: `apps/web/node_modules/@tanstack/virtual-core` - -## @tauri-apps/api@2.11.1 +## @tauri-apps/api@2.11.0 - License: Apache-2.0 OR MIT - Homepage: https://github.com/tauri-apps/tauri#readme - Repository: git+https://github.com/tauri-apps/tauri.git - Description: Tauri API definitions - Included files: LICENSE_MIT, LICENSE_APACHE-2.0 -- Folder: `licenses/@tauri-apps_api@2.11.1` +- Folder: `licenses/@tauri-apps_api@2.11.0` - Source package dir: `apps/tauri/node_modules/@tauri-apps/api` -## @tauri-apps/cli@2.11.4 +## @tauri-apps/cli@2.11.0 - License: Apache-2.0 OR MIT - Homepage: https://github.com/tauri-apps/tauri#readme - Repository: git+https://github.com/tauri-apps/tauri.git - Description: Command line interface for building Tauri apps - Included files: LICENSE_MIT, LICENSE_APACHE-2.0 -- Folder: `licenses/@tauri-apps_cli@2.11.4` +- Folder: `licenses/@tauri-apps_cli@2.11.0` - Source package dir: `apps/tauri/node_modules/@tauri-apps/cli` -## @tauri-apps/plugin-barcode-scanner@2.4.5 +## @tauri-apps/plugin-barcode-scanner@2.4.4 - License: MIT OR Apache-2.0 - Repository: https://github.com/tauri-apps/plugins-workspace - Description: Scan QR codes, EAN-13 and other kinds of barcodes on Android and iOS - Included files: LICENSE.spdx -- Folder: `licenses/@tauri-apps_plugin-barcode-scanner@2.4.5` +- Folder: `licenses/@tauri-apps_plugin-barcode-scanner@2.4.4` - Source package dir: `apps/tauri/node_modules/@tauri-apps/plugin-barcode-scanner` ## @tauri-apps/plugin-deep-link@2.4.9 @@ -477,39 +154,38 @@ Generated from bun.lock and installed packages in workspace node_modules folders - Folder: `licenses/@tauri-apps_plugin-deep-link@2.4.9` - Source package dir: `apps/tauri/node_modules/@tauri-apps/plugin-deep-link` -## @tauri-apps/plugin-log@2.8.0 +## @tauri-apps/plugin-opener@2.5.4 - License: MIT OR Apache-2.0 - Repository: https://github.com/tauri-apps/plugins-workspace -- Description: Configurable logging for your Tauri app. +- Description: Open files and URLs using their default application. - Included files: LICENSE.spdx -- Folder: `licenses/@tauri-apps_plugin-log@2.8.0` -- Source package dir: `apps/tauri/node_modules/@tauri-apps/plugin-log` +- Folder: `licenses/@tauri-apps_plugin-opener@2.5.4` +- Source package dir: `apps/tauri/node_modules/@tauri-apps/plugin-opener` -## @tauri-apps/plugin-notification@2.3.3 +## @tensamin/ttp-core@0.0.19 -- License: MIT OR Apache-2.0 -- Repository: https://github.com/tauri-apps/plugins-workspace -- Included files: LICENSE.spdx -- Folder: `licenses/@tauri-apps_plugin-notification@2.3.3` -- Source package dir: `apps/tauri/node_modules/@tauri-apps/plugin-notification` +- License: UNKNOWN +- Included files: LICENSE +- Folder: `licenses/@tensamin_ttp-core@0.0.19` +- Source package dir: `packages/ttp/node_modules/@tensamin/ttp-core` -## @tensamin/ui@0.0.39 +## @tensamin/ui@0.0.34 - License: UNKNOWN - Included files: none found -- Folder: `licenses/@tensamin_ui@0.0.39` +- Folder: `licenses/@tensamin_ui@0.0.34` - Source package dir: `apps/tauri/node_modules/@tensamin/ui` -## @types/node@25.9.4 +## @types/node@25.6.0 - License: MIT - Homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node - Repository: https://github.com/DefinitelyTyped/DefinitelyTyped.git - Description: TypeScript definitions for node - Included files: LICENSE -- Folder: `licenses/@types_node@25.9.4` -- Source package dir: `apps/electron/node_modules/@types/node` +- Folder: `licenses/@types_node@25.6.0` +- Source package dir: `node_modules/@types/node` ## @types/qrcode@1.5.6 @@ -521,14 +197,14 @@ Generated from bun.lock and installed packages in workspace node_modules folders - Folder: `licenses/@types_qrcode@1.5.6` - Source package dir: `apps/web/node_modules/@types/qrcode` -## @types/react@19.2.17 +## @types/react@19.2.14 - License: MIT - Homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react - Repository: https://github.com/DefinitelyTyped/DefinitelyTyped.git - Description: TypeScript definitions for react - Included files: LICENSE -- Folder: `licenses/@types_react@19.2.17` +- Folder: `licenses/@types_react@19.2.14` - Source package dir: `apps/web/node_modules/@types/react` ## @types/react-dom@19.2.3 @@ -541,36 +217,26 @@ Generated from bun.lock and installed packages in workspace node_modules folders - Folder: `licenses/@types_react-dom@19.2.3` - Source package dir: `apps/web/node_modules/@types/react-dom` -## @typescript-eslint/parser@8.62.1 +## @typescript-eslint/parser@8.59.1 - License: MIT - Homepage: https://typescript-eslint.io/packages/parser - Repository: https://github.com/typescript-eslint/typescript-eslint.git - Description: An ESLint custom parser which leverages TypeScript ESTree - Included files: LICENSE -- Folder: `licenses/@typescript-eslint_parser@8.62.1` +- Folder: `licenses/@typescript-eslint_parser@8.59.1` - Source package dir: `node_modules/@typescript-eslint/parser` -## @vitejs/plugin-react@6.0.3 +## @vitejs/plugin-react@6.0.1 - License: MIT - Homepage: https://github.com/vitejs/vite-plugin-react/tree/main/packages/plugin-react#readme - Repository: git+https://github.com/vitejs/vite-plugin-react.git - Description: The default Vite plugin for React projects - Included files: LICENSE -- Folder: `licenses/@vitejs_plugin-react@6.0.3` +- Folder: `licenses/@vitejs_plugin-react@6.0.1` - Source package dir: `apps/web/node_modules/@vitejs/plugin-react` -## aria-hidden@1.2.6 - -- License: MIT -- Homepage: https://github.com/theKashey/aria-hidden#readme -- Repository: git+https://github.com/theKashey/aria-hidden.git -- Description: Cast aria-hidden to everything, except... -- Included files: LICENSE -- Folder: `licenses/aria-hidden@1.2.6` -- Source package dir: `apps/web/node_modules/aria-hidden` - ## class-variance-authority@0.7.1 - License: Apache-2.0 @@ -590,15 +256,6 @@ Generated from bun.lock and installed packages in workspace node_modules folders - Folder: `licenses/clsx@2.1.1` - Source package dir: `apps/web/node_modules/clsx` -## cmdk@1.1.1 - -- License: MIT -- Homepage: https://github.com/pacocoursey/cmdk#readme -- Repository: git+https://github.com/pacocoursey/cmdk.git -- Included files: LICENSE.md -- Folder: `licenses/cmdk@1.1.1` -- Source package dir: `apps/web/node_modules/cmdk` - ## comlink@4.4.2 - License: Apache-2.0 @@ -606,233 +263,18 @@ Generated from bun.lock and installed packages in workspace node_modules folders - Description: Comlink makes WebWorkers enjoyable - Included files: LICENSE - Folder: `licenses/comlink@4.4.2` -- Source package dir: `packages/crypto/node_modules/comlink` +- Source package dir: `apps/web/node_modules/comlink` -## cookie-es@3.1.1 - -- License: MIT -- Repository: unjs/cookie-es -- Included files: LICENSE -- Folder: `licenses/cookie-es@3.1.1` -- Source package dir: `apps/web/node_modules/cookie-es` - -## d3-array@3.2.4 - -- License: ISC -- Homepage: https://d3js.org/d3-array/ -- Repository: https://github.com/d3/d3-array.git -- Description: Array manipulation, ordering, searching, summarizing, etc. -- Included files: LICENSE -- Folder: `licenses/d3-array@3.2.4` -- Source package dir: `apps/web/node_modules/d3-array` - -## d3-color@3.1.0 - -- License: ISC -- Homepage: https://d3js.org/d3-color/ -- Repository: https://github.com/d3/d3-color.git -- Description: Color spaces! RGB, HSL, Cubehelix, Lab and HCL (Lch). -- Included files: LICENSE -- Folder: `licenses/d3-color@3.1.0` -- Source package dir: `apps/web/node_modules/d3-color` - -## d3-ease@3.0.1 - -- License: BSD-3-Clause -- Homepage: https://d3js.org/d3-ease/ -- Repository: https://github.com/d3/d3-ease.git -- Description: Easing functions for smooth animation. -- Included files: LICENSE -- Folder: `licenses/d3-ease@3.0.1` -- Source package dir: `apps/web/node_modules/d3-ease` - -## d3-format@3.1.2 - -- License: ISC -- Homepage: https://d3js.org/d3-format/ -- Repository: https://github.com/d3/d3-format.git -- Description: Format numbers for human consumption. -- Included files: LICENSE -- Folder: `licenses/d3-format@3.1.2` -- Source package dir: `apps/web/node_modules/d3-format` - -## d3-interpolate@3.0.1 - -- License: ISC -- Homepage: https://d3js.org/d3-interpolate/ -- Repository: https://github.com/d3/d3-interpolate.git -- Description: Interpolate numbers, colors, strings, arrays, objects, whatever! -- Included files: LICENSE -- Folder: `licenses/d3-interpolate@3.0.1` -- Source package dir: `apps/web/node_modules/d3-interpolate` - -## d3-path@3.1.0 - -- License: ISC -- Homepage: https://d3js.org/d3-path/ -- Repository: https://github.com/d3/d3-path.git -- Description: Serialize Canvas path commands to SVG. -- Included files: LICENSE -- Folder: `licenses/d3-path@3.1.0` -- Source package dir: `apps/web/node_modules/d3-path` - -## d3-scale@4.0.2 - -- License: ISC -- Homepage: https://d3js.org/d3-scale/ -- Repository: https://github.com/d3/d3-scale.git -- Description: Encodings that map abstract data to visual representation. -- Included files: LICENSE -- Folder: `licenses/d3-scale@4.0.2` -- Source package dir: `apps/web/node_modules/d3-scale` - -## d3-shape@3.2.0 - -- License: ISC -- Homepage: https://d3js.org/d3-shape/ -- Repository: https://github.com/d3/d3-shape.git -- Description: Graphical primitives for visualization, such as lines and areas. -- Included files: LICENSE -- Folder: `licenses/d3-shape@3.2.0` -- Source package dir: `apps/web/node_modules/d3-shape` - -## d3-time@3.1.0 - -- License: ISC -- Homepage: https://d3js.org/d3-time/ -- Repository: https://github.com/d3/d3-time.git -- Description: A calculator for humanity’s peculiar conventions of time. -- Included files: LICENSE -- Folder: `licenses/d3-time@3.1.0` -- Source package dir: `apps/web/node_modules/d3-time` - -## d3-time-format@4.1.0 - -- License: ISC -- Homepage: https://d3js.org/d3-time-format/ -- Repository: https://github.com/d3/d3-time-format.git -- Description: A JavaScript time formatter and parser inspired by strftime and strptime. -- Included files: LICENSE -- Folder: `licenses/d3-time-format@4.1.0` -- Source package dir: `apps/web/node_modules/d3-time-format` - -## d3-timer@3.0.1 - -- License: ISC -- Homepage: https://d3js.org/d3-timer/ -- Repository: https://github.com/d3/d3-timer.git -- Description: An efficient queue capable of managing thousands of concurrent animations. -- Included files: LICENSE -- Folder: `licenses/d3-timer@3.0.1` -- Source package dir: `apps/web/node_modules/d3-timer` - -## date-fns@4.4.0 - -- License: MIT -- Repository: https://github.com/date-fns/date-fns -- Description: Modern JavaScript date utility library -- Included files: LICENSE.md -- Folder: `licenses/date-fns@4.4.0` -- Source package dir: `apps/web/node_modules/date-fns` - -## decimal.js-light@2.5.1 - -- License: MIT -- Repository: https://github.com/MikeMcl/decimal.js-light.git -- Description: An arbitrary-precision Decimal type for JavaScript. -- Included files: LICENCE.md -- Folder: `licenses/decimal.js-light@2.5.1` -- Source package dir: `apps/web/node_modules/decimal.js-light` - -## deepfilternet3-noise-filter@1.3.0 +## deepfilternet3-noise-filter@1.2.1 - License: (Apache-2.0 OR MIT) - Homepage: https://github.com/mezonai/mezon-noise-suppression#readme - Repository: git+https://github.com/mezonai/mezon-noise-suppression.git - Description: Custom audio processor with DeepFilterNet3 noise filtering integrated with LiveKit client - Included files: LICENSE-APACHE, LICENSE-MIT -- Folder: `licenses/deepfilternet3-noise-filter@1.3.0` +- Folder: `licenses/deepfilternet3-noise-filter@1.2.1` - Source package dir: `packages/call/node_modules/deepfilternet3-noise-filter` -## detect-node-es@1.1.0 - -- License: MIT -- Homepage: https://github.com/thekashey/detect-node -- Repository: https://github.com/thekashey/detect-node -- Description: Detect Node.JS (as opposite to browser environment). ESM modification -- Included files: LICENSE -- Folder: `licenses/detect-node-es@1.1.0` -- Source package dir: `apps/web/node_modules/detect-node-es` - -## dijkstrajs@1.0.3 - -- License: MIT -- Homepage: https://github.com/tcort/dijkstrajs -- Repository: git://github.com/tcort/dijkstrajs -- Description: A simple JavaScript implementation of Dijkstra's single-source shortest-paths algorithm. -- Included files: LICENSE.md -- Folder: `licenses/dijkstrajs@1.0.3` -- Source package dir: `apps/web/node_modules/dijkstrajs` - -## electron@39.8.10 - -- License: MIT -- Repository: https://github.com/electron/electron -- Description: Build cross platform desktop apps with JavaScript, HTML, and CSS -- Included files: LICENSE -- Folder: `licenses/electron@39.8.10` -- Source package dir: `apps/electron/node_modules/electron` - -## electron-builder@26.15.3 - -- License: MIT -- Homepage: https://github.com/electron-userland/electron-builder -- Repository: git+https://github.com/electron-userland/electron-builder.git -- Description: A complete solution to package and build a ready for distribution Electron app for MacOS, Windows and Linux with “auto update” support out of the box -- Included files: LICENSE -- Folder: `licenses/electron-builder@26.15.3` -- Source package dir: `apps/electron/node_modules/electron-builder` - -## embla-carousel@8.6.0 - -- License: MIT -- Homepage: https://www.embla-carousel.com -- Repository: git+https://github.com/davidjerleke/embla-carousel -- Description: A lightweight carousel library with fluid motion and great swipe precision -- Included files: none found -- Folder: `licenses/embla-carousel@8.6.0` -- Source package dir: `apps/web/node_modules/embla-carousel` - -## embla-carousel-react@8.6.0 - -- License: MIT -- Homepage: https://www.embla-carousel.com -- Repository: git+https://github.com/davidjerleke/embla-carousel -- Description: A lightweight carousel library with fluid motion and great swipe precision -- Included files: none found -- Folder: `licenses/embla-carousel-react@8.6.0` -- Source package dir: `apps/web/node_modules/embla-carousel-react` - -## embla-carousel-reactive-utils@8.6.0 - -- License: MIT -- Homepage: https://www.embla-carousel.com -- Repository: git+https://github.com/davidjerleke/embla-carousel -- Description: Reactive utilities for Embla Carousel -- Included files: none found -- Folder: `licenses/embla-carousel-reactive-utils@8.6.0` -- Source package dir: `apps/web/node_modules/embla-carousel-reactive-utils` - -## es-toolkit@1.49.0 - -- License: MIT -- Homepage: https://es-toolkit.dev -- Repository: https://github.com/toss/es-toolkit.git -- Description: A state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations. -- Included files: LICENSE -- Folder: `licenses/es-toolkit@1.49.0` -- Source package dir: `apps/web/node_modules/es-toolkit` - ## esbuild@0.25.12 - License: MIT @@ -840,16 +282,16 @@ Generated from bun.lock and installed packages in workspace node_modules folders - Description: An extremely fast JavaScript and CSS bundler and minifier. - Included files: LICENSE.md - Folder: `licenses/esbuild@0.25.12` -- Source package dir: `apps/electron/node_modules/esbuild` +- Source package dir: `apps/web/node_modules/esbuild` -## eslint@10.6.0 +## eslint@10.3.0 - License: MIT - Homepage: https://eslint.org - Repository: eslint/eslint - Description: An AST-based pattern checker for JavaScript. - Included files: LICENSE -- Folder: `licenses/eslint@10.6.0` +- Folder: `licenses/eslint@10.3.0` - Source package dir: `apps/web/node_modules/eslint` ## eslint-plugin-react-hooks@7.1.1 @@ -862,74 +304,24 @@ Generated from bun.lock and installed packages in workspace node_modules folders - Folder: `licenses/eslint-plugin-react-hooks@7.1.1` - Source package dir: `node_modules/eslint-plugin-react-hooks` -## eventemitter3@5.0.4 +## framer-motion@12.38.0 - License: MIT -- Repository: git://github.com/primus/eventemitter3.git -- Description: EventEmitter3 focuses on performance while maintaining a Node.js AND browser compatible interface. -- Included files: LICENSE -- Folder: `licenses/eventemitter3@5.0.4` -- Source package dir: `apps/web/node_modules/eventemitter3` +- Repository: https://github.com/motiondivision/motion/ +- Description: A simple and powerful JavaScript animation library +- Included files: LICENSE.md +- Folder: `licenses/framer-motion@12.38.0` +- Source package dir: `apps/web/node_modules/framer-motion` -## fallow@2.104.0 - -- License: MIT -- Homepage: https://docs.fallow.tools -- Repository: git+https://github.com/fallow-rs/fallow.git -- Description: Deterministic codebase intelligence for TypeScript and JavaScript. Quality, risk, architecture, dependencies, duplication, and safe cleanup evidence for humans, CI, and agents. Optional runtime intelligence layer (Fallow Runtime) adds production execution evidence. Rust-native, sub-second, zero-config framework support. -- Included files: none found -- Folder: `licenses/fallow@2.104.0` -- Source package dir: `node_modules/fallow` - -## get-nonce@1.0.1 - -- License: MIT -- Homepage: https://github.com/theKashey/get-nonce -- Repository: git@github.com:theKashey/get-nonce.git -- Description: returns nonce -- Included files: LICENSE -- Folder: `licenses/get-nonce@1.0.1` -- Source package dir: `apps/web/node_modules/get-nonce` - -## globals@17.7.0 +## globals@17.6.0 - License: MIT - Repository: sindresorhus/globals - Description: Global identifiers from different JavaScript environments - Included files: license -- Folder: `licenses/globals@17.7.0` +- Folder: `licenses/globals@17.6.0` - Source package dir: `apps/web/node_modules/globals` -## immer@10.2.0 - -- License: MIT -- Homepage: https://github.com/immerjs/immer#readme -- Repository: https://github.com/immerjs/immer.git -- Description: Create your next immutable state by mutating the current one -- Included files: LICENSE -- Folder: `licenses/immer@10.2.0` -- Source package dir: `apps/web/node_modules/immer` - -## input-otp@1.4.2 - -- License: MIT -- Homepage: https://input-otp.rodz.dev/ -- Repository: git+https://github.com/guilhermerodz/input-otp.git -- Description: One-time password input component for React. -- Included files: none found -- Folder: `licenses/input-otp@1.4.2` -- Source package dir: `apps/web/node_modules/input-otp` - -## internmap@2.0.3 - -- License: ISC -- Homepage: https://github.com/mbostock/internmap/ -- Repository: https://github.com/mbostock/internmap.git -- Description: Map and Set with automatic key interning -- Included files: LICENSE -- Folder: `licenses/internmap@2.0.3` -- Source package dir: `apps/web/node_modules/internmap` - ## jsonc-parser@3.3.1 - License: MIT @@ -939,59 +331,33 @@ Generated from bun.lock and installed packages in workspace node_modules folders - Folder: `licenses/jsonc-parser@3.3.1` - Source package dir: `node_modules/jsonc-parser` -## livekit-client@2.20.0 +## livekit-client@2.18.8 - License: Apache-2.0 - Repository: git@github.com:livekit/client-sdk-js.git - Description: JavaScript/TypeScript client SDK for LiveKit - Included files: LICENSE -- Folder: `licenses/livekit-client@2.20.0` +- Folder: `licenses/livekit-client@2.18.8` - Source package dir: `packages/call/node_modules/livekit-client` -## lucide-react@1.23.0 +## lucide-react@1.14.0 - License: ISC - Homepage: https://lucide.dev - Repository: https://github.com/lucide-icons/lucide.git - Description: A Lucide icon library package for React applications. - Included files: LICENSE -- Folder: `licenses/lucide-react@1.23.0` -- Source package dir: `apps/web/node_modules/lucide-react` +- Folder: `licenses/lucide-react@1.14.0` +- Source package dir: `apps/tauri/node_modules/lucide-react` -## mtp@0.1.0 - -- License: UNKNOWN -- Description: MTP TypeScript SDK -- Included files: none found -- Folder: `licenses/mtp@0.1.0` -- Source package dir: `packages/mtp/node_modules/mtp` - -## next-themes@0.4.6 - -- License: MIT -- Repository: https://github.com/pacocoursey/next-themes.git -- Included files: license.md -- Folder: `licenses/next-themes@0.4.6` -- Source package dir: `apps/web/node_modules/next-themes` - -## pngjs@5.0.0 - -- License: MIT -- Homepage: https://github.com/lukeapage/pngjs -- Repository: git://github.com/lukeapage/pngjs.git -- Description: PNG encoder/decoder in pure JS, supporting any bit size & interlace, async & sync with full test suite. -- Included files: LICENSE -- Folder: `licenses/pngjs@5.0.0` -- Source package dir: `apps/web/node_modules/pngjs` - -## prettier@3.9.4 +## prettier@3.8.3 - License: MIT - Homepage: https://prettier.io - Repository: prettier/prettier - Description: Prettier is an opinionated code formatter - Included files: LICENSE -- Folder: `licenses/prettier@3.9.4` +- Folder: `licenses/prettier@3.8.3` - Source package dir: `node_modules/prettier` ## qrcode@1.5.4 @@ -1004,93 +370,26 @@ Generated from bun.lock and installed packages in workspace node_modules folders - Folder: `licenses/qrcode@1.5.4` - Source package dir: `apps/web/node_modules/qrcode` -## react@19.2.7 +## react@19.2.5 - License: MIT - Homepage: https://react.dev/ - Repository: https://github.com/facebook/react.git - Description: React is a JavaScript library for building user interfaces. - Included files: LICENSE -- Folder: `licenses/react@19.2.7` +- Folder: `licenses/react@19.2.5` - Source package dir: `apps/tauri/node_modules/react` -## react-day-picker@10.0.1 - -- License: MIT -- Homepage: https://daypicker.dev -- Repository: git+https://github.com/gpbl/react-day-picker.git -- Description: Customizable Date Picker for React -- Included files: LICENSE -- Folder: `licenses/react-day-picker@10.0.1` -- Source package dir: `apps/web/node_modules/react-day-picker` - -## react-dom@19.2.7 +## react-dom@19.2.5 - License: MIT - Homepage: https://react.dev/ - Repository: https://github.com/facebook/react.git - Description: React package for working with the DOM. - Included files: LICENSE -- Folder: `licenses/react-dom@19.2.7` +- Folder: `licenses/react-dom@19.2.5` - Source package dir: `apps/tauri/node_modules/react-dom` -## react-is@19.2.7 - -- License: MIT -- Homepage: https://react.dev/ -- Repository: https://github.com/facebook/react.git -- Description: Brand checking of React Elements. -- Included files: LICENSE -- Folder: `licenses/react-is@19.2.7` -- Source package dir: `apps/web/node_modules/react-is` - -## react-redux@9.3.0 - -- License: MIT -- Homepage: https://github.com/reduxjs/react-redux -- Repository: github:reduxjs/react-redux -- Description: Official React bindings for Redux -- Included files: LICENSE.md -- Folder: `licenses/react-redux@9.3.0` -- Source package dir: `apps/web/node_modules/react-redux` - -## react-remove-scroll@2.7.2 - -- License: MIT -- Repository: https://github.com/theKashey/react-remove-scroll -- Description: Disables scroll outside of `children` node. -- Included files: LICENSE -- Folder: `licenses/react-remove-scroll@2.7.2` -- Source package dir: `apps/web/node_modules/react-remove-scroll` - -## react-remove-scroll-bar@2.3.8 - -- License: MIT -- Repository: https://github.com/theKashey/react-remove-scroll-bar -- Description: Removes body scroll without content _shake_ -- Included files: none found -- Folder: `licenses/react-remove-scroll-bar@2.3.8` -- Source package dir: `apps/web/node_modules/react-remove-scroll-bar` - -## react-resizable-panels@4.12.0 - -- License: MIT -- Homepage: https://react-resizable-panels.vercel.app/ -- Repository: https://github.com/bvaughn/react-resizable-panels.git -- Included files: LICENSE.md -- Folder: `licenses/react-resizable-panels@4.12.0` -- Source package dir: `apps/web/node_modules/react-resizable-panels` - -## react-style-singleton@2.2.3 - -- License: MIT -- Homepage: https://github.com/theKashey/react-style-singleton#readme -- Repository: https://github.com/theKashey/react-style-singleton -- Description: Just create a single stylesheet... -- Included files: LICENSE -- Folder: `licenses/react-style-singleton@2.2.3` -- Source package dir: `apps/web/node_modules/react-style-singleton` - ## recharts@3.8.1 - License: MIT @@ -1099,74 +398,15 @@ Generated from bun.lock and installed packages in workspace node_modules folders - Description: React charts - Included files: LICENSE - Folder: `licenses/recharts@3.8.1` -- Source package dir: `apps/web/node_modules/recharts` +- Source package dir: `packages/call/node_modules/recharts` -## redux@5.0.1 - -- License: MIT -- Homepage: http://redux.js.org -- Repository: github:reduxjs/redux -- Description: Predictable state container for JavaScript apps -- Included files: LICENSE.md -- Folder: `licenses/redux@5.0.1` -- Source package dir: `apps/web/node_modules/redux` - -## redux-thunk@3.1.0 - -- License: MIT -- Homepage: https://github.com/reduxjs/redux-thunk -- Repository: github:reduxjs/redux-thunk -- Description: Thunk middleware for Redux. -- Included files: LICENSE.md -- Folder: `licenses/redux-thunk@3.1.0` -- Source package dir: `apps/web/node_modules/redux-thunk` - -## reselect@5.1.1 - -- License: MIT -- Repository: https://github.com/reduxjs/reselect.git -- Description: Selectors for Redux. -- Included files: LICENSE -- Folder: `licenses/reselect@5.1.1` -- Source package dir: `apps/web/node_modules/reselect` - -## scheduler@0.27.0 - -- License: MIT -- Homepage: https://react.dev/ -- Repository: https://github.com/facebook/react.git -- Description: Cooperative scheduler for the browser environment. -- Included files: LICENSE -- Folder: `licenses/scheduler@0.27.0` -- Source package dir: `apps/web/node_modules/scheduler` - -## seroval@1.5.4 - -- License: MIT -- Homepage: https://github.com/lxsmnsyc/seroval/tree/main/packages/seroval -- Repository: https://github.com/lxsmnsyc/seroval.git -- Description: Stringify JS values -- Included files: LICENSE -- Folder: `licenses/seroval@1.5.4` -- Source package dir: `apps/web/node_modules/seroval` - -## seroval-plugins@1.5.4 - -- License: MIT -- Homepage: https://github.com/lxsmnsyc/seroval/tree/main/packages/plugins -- Repository: https://github.com/lxsmnsyc/seroval.git -- Description: Stringify JS values -- Included files: LICENSE -- Folder: `licenses/seroval-plugins@1.5.4` -- Source package dir: `apps/web/node_modules/seroval-plugins` - -## shadcn@4.12.0 +## shadcn@4.6.0 - License: MIT - Repository: https://github.com/shadcn-ui/ui.git - Description: Add components to your apps. - Included files: LICENSE.md -- Folder: `licenses/shadcn@4.12.0` +- Folder: `licenses/shadcn@4.6.0` - Source package dir: `apps/web/node_modules/shadcn` ## sonner@2.0.7 @@ -1179,14 +419,14 @@ Generated from bun.lock and installed packages in workspace node_modules folders - Folder: `licenses/sonner@2.0.7` - Source package dir: `apps/web/node_modules/sonner` -## tailwind-merge@3.6.0 +## tailwind-merge@3.5.0 - License: MIT - Homepage: https://github.com/dcastil/tailwind-merge - Repository: https://github.com/dcastil/tailwind-merge.git - Description: Merge Tailwind CSS classes without style conflicts - Included files: LICENSE.md -- Folder: `licenses/tailwind-merge@3.6.0` +- Folder: `licenses/tailwind-merge@3.5.0` - Source package dir: `apps/web/node_modules/tailwind-merge` ## tailwind-scrollbar-hide@4.0.0 @@ -1199,14 +439,14 @@ Generated from bun.lock and installed packages in workspace node_modules folders - Folder: `licenses/tailwind-scrollbar-hide@4.0.0` - Source package dir: `apps/web/node_modules/tailwind-scrollbar-hide` -## tailwindcss@4.3.2 +## tailwindcss@4.2.4 - License: MIT - Homepage: https://tailwindcss.com - Repository: https://github.com/tailwindlabs/tailwindcss.git - Description: A utility-first CSS framework for rapidly building custom user interfaces. - Included files: LICENSE -- Folder: `licenses/tailwindcss@4.3.2` +- Folder: `licenses/tailwindcss@4.2.4` - Source package dir: `apps/web/node_modules/tailwindcss` ## tauri-plugin-app-events-api@0.2.0 @@ -1217,26 +457,7 @@ Generated from bun.lock and installed packages in workspace node_modules folders - Description: A plugin for tauri@v2 to listen some events on iOS and Android. - Included files: LICENSE - Folder: `licenses/tauri-plugin-app-events-api@0.2.0` -- Source package dir: `packages/mtp/node_modules/tauri-plugin-app-events-api` - -## tiny-invariant@1.3.3 - -- License: MIT -- Repository: https://github.com/alexreardon/tiny-invariant.git -- Description: A tiny invariant function -- Included files: LICENSE -- Folder: `licenses/tiny-invariant@1.3.3` -- Source package dir: `apps/web/node_modules/tiny-invariant` - -## tslib@2.8.1 - -- License: 0BSD -- Homepage: https://www.typescriptlang.org/ -- Repository: https://github.com/Microsoft/tslib.git -- Description: Runtime library for TypeScript helper functions -- Included files: LICENSE.txt -- Folder: `licenses/tslib@2.8.1` -- Source package dir: `apps/web/node_modules/tslib` +- Source package dir: `apps/web/node_modules/tauri-plugin-app-events-api` ## tw-animate-css@1.4.0 @@ -1256,102 +477,44 @@ Generated from bun.lock and installed packages in workspace node_modules folders - Description: TypeScript is a language for application scale JavaScript development - Included files: LICENSE.txt - Folder: `licenses/typescript@6.0.3` -- Source package dir: `apps/electron/node_modules/typescript` +- Source package dir: `apps/web/node_modules/typescript` -## typescript-eslint@8.62.1 +## typescript-eslint@8.59.1 - License: MIT - Homepage: https://typescript-eslint.io/packages/typescript-eslint - Repository: https://github.com/typescript-eslint/typescript-eslint.git - Description: Tooling which enables you to use TypeScript with ESLint - Included files: LICENSE -- Folder: `licenses/typescript-eslint@8.62.1` +- Folder: `licenses/typescript-eslint@8.59.1` - Source package dir: `apps/web/node_modules/typescript-eslint` -## use-callback-ref@1.3.3 - -- License: MIT -- Repository: https://github.com/theKashey/use-callback-ref/ -- Description: The same useRef, but with callback -- Included files: LICENSE -- Folder: `licenses/use-callback-ref@1.3.3` -- Source package dir: `apps/web/node_modules/use-callback-ref` - -## use-sidecar@1.1.3 - -- License: MIT -- Homepage: https://github.com/theKashey/use-sidecar -- Repository: https://github.com/theKashey/use-sidecar -- Description: Sidecar code splitting utils -- Included files: LICENSE -- Folder: `licenses/use-sidecar@1.1.3` -- Source package dir: `apps/web/node_modules/use-sidecar` - -## use-sync-external-store@1.6.0 - -- License: MIT -- Repository: https://github.com/facebook/react.git -- Description: Backwards compatible shim for React's useSyncExternalStore. Works with any React that supports hooks. -- Included files: LICENSE -- Folder: `licenses/use-sync-external-store@1.6.0` -- Source package dir: `apps/web/node_modules/use-sync-external-store` - -## vaul@1.1.2 - -- License: MIT -- Homepage: https://vaul.emilkowal.ski/ -- Repository: https://github.com/emilkowalski/vaul.git -- Description: Drawer component for React. -- Included files: LICENSE.md -- Folder: `licenses/vaul@1.1.2` -- Source package dir: `apps/web/node_modules/vaul` - -## victory-vendor@37.3.6 - -- License: MIT AND ISC -- Homepage: https://commerce.nearform.com/open-source/victory -- Repository: https://github.com/FormidableLabs/victory -- Description: Vendored dependencies for Victory -- Included files: none found -- Folder: `licenses/victory-vendor@37.3.6` -- Source package dir: `apps/web/node_modules/victory-vendor` - -## vite@8.1.3 +## vite@8.0.10 - License: MIT - Homepage: https://vite.dev - Repository: git+https://github.com/vitejs/vite.git - Description: Native-ESM powered web dev build tool - Included files: LICENSE.md -- Folder: `licenses/vite@8.1.3` +- Folder: `licenses/vite@8.0.10` - Source package dir: `apps/web/node_modules/vite` -## yargs@15.4.1 - -- License: MIT -- Homepage: https://yargs.js.org/ -- Repository: https://github.com/yargs/yargs.git -- Description: yargs the modern, pirate-themed, successor to optimist. -- Included files: LICENSE -- Folder: `licenses/yargs@15.4.1` -- Source package dir: `apps/web/node_modules/yargs` - -## zod@4.4.3 +## zod@4.4.2 - License: MIT - Homepage: https://zod.dev - Repository: git+https://github.com/colinhacks/zod.git - Description: TypeScript-first schema declaration and validation library with static type inference - Included files: LICENSE -- Folder: `licenses/zod@4.4.3` +- Folder: `licenses/zod@4.4.2` - Source package dir: `apps/web/node_modules/zod` -## zustand@5.0.14 +## zustand@5.0.12 - License: MIT - Homepage: https://github.com/pmndrs/zustand - Repository: git+https://github.com/pmndrs/zustand.git - Description: 🐻 Bear necessities for state management in React - Included files: LICENSE -- Folder: `licenses/zustand@5.0.14` +- Folder: `licenses/zustand@5.0.12` - Source package dir: `packages/call/node_modules/zustand` diff --git a/licenses/aria-hidden@1.2.6/LICENSE b/licenses/aria-hidden@1.2.6/LICENSE deleted file mode 100644 index a194c88..0000000 --- a/licenses/aria-hidden@1.2.6/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Anton Korzunov - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/cmdk@1.1.1/LICENSE.md b/licenses/cmdk@1.1.1/LICENSE.md deleted file mode 100644 index 76228cc..0000000 --- a/licenses/cmdk@1.1.1/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 Paco Coursey - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/cookie-es@3.1.1/LICENSE b/licenses/cookie-es@3.1.1/LICENSE deleted file mode 100644 index db7eac1..0000000 --- a/licenses/cookie-es@3.1.1/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -MIT License - -Cookie-es copyright (c) Pooya Parsa - -Cookie parsing based on https://github.com/jshttp/cookie -Copyright (c) 2012-2014 Roman Shtylman -Copyright (c) 2015 Douglas Christopher Wilson - -Set-Cookie parsing based on https://github.com/nfriedly/set-cookie-parser -Copyright (c) 2015 Nathan Friedly (http://nfriedly.com/) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/d3-array@3.2.4/LICENSE b/licenses/d3-array@3.2.4/LICENSE deleted file mode 100644 index 3594fff..0000000 --- a/licenses/d3-array@3.2.4/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright 2010-2023 Mike Bostock - -Permission to use, copy, modify, and/or distribute this software for any purpose -with or without fee is hereby granted, provided that the above copyright notice -and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. diff --git a/licenses/d3-color@3.1.0/LICENSE b/licenses/d3-color@3.1.0/LICENSE deleted file mode 100644 index fbe44bd..0000000 --- a/licenses/d3-color@3.1.0/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright 2010-2022 Mike Bostock - -Permission to use, copy, modify, and/or distribute this software for any purpose -with or without fee is hereby granted, provided that the above copyright notice -and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. diff --git a/licenses/d3-ease@3.0.1/LICENSE b/licenses/d3-ease@3.0.1/LICENSE deleted file mode 100644 index 83cc997..0000000 --- a/licenses/d3-ease@3.0.1/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -Copyright 2010-2021 Mike Bostock -Copyright 2001 Robert Penner -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of the author nor the names of contributors may be used to - endorse or promote products derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/licenses/d3-format@3.1.2/LICENSE b/licenses/d3-format@3.1.2/LICENSE deleted file mode 100644 index a8918c4..0000000 --- a/licenses/d3-format@3.1.2/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright 2010-2026 Mike Bostock - -Permission to use, copy, modify, and/or distribute this software for any purpose -with or without fee is hereby granted, provided that the above copyright notice -and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. diff --git a/licenses/d3-interpolate@3.0.1/LICENSE b/licenses/d3-interpolate@3.0.1/LICENSE deleted file mode 100644 index b014515..0000000 --- a/licenses/d3-interpolate@3.0.1/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright 2010-2021 Mike Bostock - -Permission to use, copy, modify, and/or distribute this software for any purpose -with or without fee is hereby granted, provided that the above copyright notice -and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. diff --git a/licenses/d3-path@3.1.0/LICENSE b/licenses/d3-path@3.1.0/LICENSE deleted file mode 100644 index ed25746..0000000 --- a/licenses/d3-path@3.1.0/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright 2015-2022 Mike Bostock - -Permission to use, copy, modify, and/or distribute this software for any purpose -with or without fee is hereby granted, provided that the above copyright notice -and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. diff --git a/licenses/d3-scale@4.0.2/LICENSE b/licenses/d3-scale@4.0.2/LICENSE deleted file mode 100644 index b014515..0000000 --- a/licenses/d3-scale@4.0.2/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright 2010-2021 Mike Bostock - -Permission to use, copy, modify, and/or distribute this software for any purpose -with or without fee is hereby granted, provided that the above copyright notice -and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. diff --git a/licenses/d3-shape@3.2.0/LICENSE b/licenses/d3-shape@3.2.0/LICENSE deleted file mode 100644 index fbe44bd..0000000 --- a/licenses/d3-shape@3.2.0/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright 2010-2022 Mike Bostock - -Permission to use, copy, modify, and/or distribute this software for any purpose -with or without fee is hereby granted, provided that the above copyright notice -and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. diff --git a/licenses/d3-time-format@4.1.0/LICENSE b/licenses/d3-time-format@4.1.0/LICENSE deleted file mode 100644 index b014515..0000000 --- a/licenses/d3-time-format@4.1.0/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright 2010-2021 Mike Bostock - -Permission to use, copy, modify, and/or distribute this software for any purpose -with or without fee is hereby granted, provided that the above copyright notice -and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. diff --git a/licenses/d3-time@3.1.0/LICENSE b/licenses/d3-time@3.1.0/LICENSE deleted file mode 100644 index fbe44bd..0000000 --- a/licenses/d3-time@3.1.0/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright 2010-2022 Mike Bostock - -Permission to use, copy, modify, and/or distribute this software for any purpose -with or without fee is hereby granted, provided that the above copyright notice -and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. diff --git a/licenses/d3-timer@3.0.1/LICENSE b/licenses/d3-timer@3.0.1/LICENSE deleted file mode 100644 index b014515..0000000 --- a/licenses/d3-timer@3.0.1/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright 2010-2021 Mike Bostock - -Permission to use, copy, modify, and/or distribute this software for any purpose -with or without fee is hereby granted, provided that the above copyright notice -and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. diff --git a/licenses/date-fns@4.4.0/LICENSE.md b/licenses/date-fns@4.4.0/LICENSE.md deleted file mode 100644 index 29c6e85..0000000 --- a/licenses/date-fns@4.4.0/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021 Sasha Koss and Lesha Koss https://kossnocorp.mit-license.org - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/decimal.js-light@2.5.1/LICENCE.md b/licenses/decimal.js-light@2.5.1/LICENCE.md deleted file mode 100644 index 538bf23..0000000 --- a/licenses/decimal.js-light@2.5.1/LICENCE.md +++ /dev/null @@ -1,23 +0,0 @@ -The MIT Expat Licence. - -Copyright (c) 2020 Michael Mclaughlin - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - diff --git a/licenses/deepfilternet3-noise-filter@1.3.0/LICENSE-APACHE b/licenses/deepfilternet3-noise-filter@1.2.1/LICENSE-APACHE similarity index 100% rename from licenses/deepfilternet3-noise-filter@1.3.0/LICENSE-APACHE rename to licenses/deepfilternet3-noise-filter@1.2.1/LICENSE-APACHE diff --git a/licenses/deepfilternet3-noise-filter@1.3.0/LICENSE-MIT b/licenses/deepfilternet3-noise-filter@1.2.1/LICENSE-MIT similarity index 100% rename from licenses/deepfilternet3-noise-filter@1.3.0/LICENSE-MIT rename to licenses/deepfilternet3-noise-filter@1.2.1/LICENSE-MIT diff --git a/licenses/detect-node-es@1.1.0/LICENSE b/licenses/detect-node-es@1.1.0/LICENSE deleted file mode 100644 index 3113356..0000000 --- a/licenses/detect-node-es@1.1.0/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Ilya Kantor - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/dijkstrajs@1.0.3/LICENSE.md b/licenses/dijkstrajs@1.0.3/LICENSE.md deleted file mode 100644 index b662d80..0000000 --- a/licenses/dijkstrajs@1.0.3/LICENSE.md +++ /dev/null @@ -1,19 +0,0 @@ -``` -Dijkstra path-finding functions. Adapted from the Dijkstar Python project. - -Copyright (C) 2008 - Wyatt Baldwin - All rights reserved - -Licensed under the MIT license. - - http://www.opensource.org/licenses/mit-license.php - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -``` diff --git a/licenses/electron-builder@26.15.3/LICENSE b/licenses/electron-builder@26.15.3/LICENSE deleted file mode 100644 index 7d8fa01..0000000 --- a/licenses/electron-builder@26.15.3/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Loopline Systems - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/licenses/electron@39.8.10/LICENSE b/licenses/electron@39.8.10/LICENSE deleted file mode 100644 index 536d54e..0000000 --- a/licenses/electron@39.8.10/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -Copyright (c) Electron contributors -Copyright (c) 2013-2020 GitHub Inc. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/licenses/es-toolkit@1.49.0/LICENSE b/licenses/es-toolkit@1.49.0/LICENSE deleted file mode 100644 index 69dc6a7..0000000 --- a/licenses/es-toolkit@1.49.0/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2024 Viva Republica, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/eslint@10.6.0/LICENSE b/licenses/eslint@10.3.0/LICENSE similarity index 100% rename from licenses/eslint@10.6.0/LICENSE rename to licenses/eslint@10.3.0/LICENSE diff --git a/licenses/eventemitter3@5.0.4/LICENSE b/licenses/eventemitter3@5.0.4/LICENSE deleted file mode 100644 index abcbd54..0000000 --- a/licenses/eventemitter3@5.0.4/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Arnout Kazemier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/react-resizable-panels@4.12.0/LICENSE.md b/licenses/framer-motion@12.38.0/LICENSE.md similarity index 97% rename from licenses/react-resizable-panels@4.12.0/LICENSE.md rename to licenses/framer-motion@12.38.0/LICENSE.md index 0569d0a..b5b8d6a 100644 --- a/licenses/react-resizable-panels@4.12.0/LICENSE.md +++ b/licenses/framer-motion@12.38.0/LICENSE.md @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2018 Brian Vaughn +Copyright (c) 2018 Framer B.V. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/licenses/get-nonce@1.0.1/LICENSE b/licenses/get-nonce@1.0.1/LICENSE deleted file mode 100644 index 9455bf5..0000000 --- a/licenses/get-nonce@1.0.1/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020 Anton Korzunov - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/globals@17.7.0/license b/licenses/globals@17.6.0/license similarity index 100% rename from licenses/globals@17.7.0/license rename to licenses/globals@17.6.0/license diff --git a/licenses/immer@10.2.0/LICENSE b/licenses/immer@10.2.0/LICENSE deleted file mode 100644 index c014115..0000000 --- a/licenses/immer@10.2.0/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Michel Weststrate - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/internmap@2.0.3/LICENSE b/licenses/internmap@2.0.3/LICENSE deleted file mode 100644 index 6fca711..0000000 --- a/licenses/internmap@2.0.3/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright 2021 Mike Bostock - -Permission to use, copy, modify, and/or distribute this software for any purpose -with or without fee is hereby granted, provided that the above copyright notice -and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS -OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER -TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. diff --git a/licenses/livekit-client@2.20.0/LICENSE b/licenses/livekit-client@2.18.8/LICENSE similarity index 100% rename from licenses/livekit-client@2.20.0/LICENSE rename to licenses/livekit-client@2.18.8/LICENSE diff --git a/licenses/lucide-react@1.23.0/LICENSE b/licenses/lucide-react@1.14.0/LICENSE similarity index 100% rename from licenses/lucide-react@1.23.0/LICENSE rename to licenses/lucide-react@1.14.0/LICENSE diff --git a/licenses/next-themes@0.4.6/license.md b/licenses/next-themes@0.4.6/license.md deleted file mode 100644 index 76228cc..0000000 --- a/licenses/next-themes@0.4.6/license.md +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 Paco Coursey - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/pngjs@5.0.0/LICENSE b/licenses/pngjs@5.0.0/LICENSE deleted file mode 100644 index 6942e25..0000000 --- a/licenses/pngjs@5.0.0/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -pngjs2 original work Copyright (c) 2015 Luke Page & Original Contributors -pngjs derived work Copyright (c) 2012 Kuba Niegowski - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/licenses/prettier@3.9.4/LICENSE b/licenses/prettier@3.8.3/LICENSE similarity index 100% rename from licenses/prettier@3.9.4/LICENSE rename to licenses/prettier@3.8.3/LICENSE diff --git a/licenses/react-day-picker@10.0.1/LICENSE b/licenses/react-day-picker@10.0.1/LICENSE deleted file mode 100644 index 07372a1..0000000 --- a/licenses/react-day-picker@10.0.1/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-2026 Giampaolo Bellavite and contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/react-dom@19.2.7/LICENSE b/licenses/react-dom@19.2.5/LICENSE similarity index 100% rename from licenses/react-dom@19.2.7/LICENSE rename to licenses/react-dom@19.2.5/LICENSE diff --git a/licenses/react-redux@9.3.0/LICENSE.md b/licenses/react-redux@9.3.0/LICENSE.md deleted file mode 100644 index 55bc8df..0000000 --- a/licenses/react-redux@9.3.0/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015-present Dan Abramov - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/react-remove-scroll@2.7.2/LICENSE b/licenses/react-remove-scroll@2.7.2/LICENSE deleted file mode 100644 index a194c88..0000000 --- a/licenses/react-remove-scroll@2.7.2/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Anton Korzunov - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/react-style-singleton@2.2.3/LICENSE b/licenses/react-style-singleton@2.2.3/LICENSE deleted file mode 100644 index a194c88..0000000 --- a/licenses/react-style-singleton@2.2.3/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Anton Korzunov - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/react-is@19.2.7/LICENSE b/licenses/react@19.2.5/LICENSE similarity index 100% rename from licenses/react-is@19.2.7/LICENSE rename to licenses/react@19.2.5/LICENSE diff --git a/licenses/react@19.2.7/LICENSE b/licenses/react@19.2.7/LICENSE deleted file mode 100644 index b93be90..0000000 --- a/licenses/react@19.2.7/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) Meta Platforms, Inc. and affiliates. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/redux-thunk@3.1.0/LICENSE.md b/licenses/redux-thunk@3.1.0/LICENSE.md deleted file mode 100644 index c108bf3..0000000 --- a/licenses/redux-thunk@3.1.0/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015-present Dan Abramov - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/redux@5.0.1/LICENSE.md b/licenses/redux@5.0.1/LICENSE.md deleted file mode 100644 index 55bc8df..0000000 --- a/licenses/redux@5.0.1/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015-present Dan Abramov - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/reselect@5.1.1/LICENSE b/licenses/reselect@5.1.1/LICENSE deleted file mode 100644 index 2a957b4..0000000 --- a/licenses/reselect@5.1.1/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015-2018 Reselect Contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/sbom.cyclonedx.json b/licenses/sbom.cyclonedx.json index 8a52ab9..4d1284c 100644 --- a/licenses/sbom.cyclonedx.json +++ b/licenses/sbom.cyclonedx.json @@ -3,7 +3,7 @@ "specVersion": "1.5", "version": 1, "metadata": { - "timestamp": "2026-07-02T17:59:19.433Z", + "timestamp": "2026-05-21T10:15:15.541Z", "tools": [ { "vendor": "OpenAI", @@ -18,111 +18,10 @@ "components": [ { "type": "library", - "bomRef": "pkg:npm/%40babel/runtime@7.29.7", - "name": "@babel/runtime", - "version": "7.29.7", - "purl": "pkg:npm/%40babel/runtime@7.29.7", - "description": "babel's modular runtime helpers", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://babel.dev/docs/en/next/babel-runtime" - }, - { - "type": "vcs", - "url": "https://github.com/babel/babel.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@babel_runtime@7.29.7" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@babel/runtime" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40base-ui/react@1.6.0", - "name": "@base-ui/react", - "version": "1.6.0", - "purl": "pkg:npm/%40base-ui/react@1.6.0", - "description": "Base UI is a library of headless ('unstyled') React components and low-level hooks. You gain complete control over your app's CSS and accessibility features.", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://base-ui.com" - }, - { - "type": "vcs", - "url": "git+https://github.com/mui/base-ui.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@base-ui_react@1.6.0" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@base-ui/react" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40base-ui/utils@0.3.1", - "name": "@base-ui/utils", - "version": "0.3.1", - "purl": "pkg:npm/%40base-ui/utils@0.3.1", - "description": "A collection of React utility functions for Base UI.", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "vcs", - "url": "git+https://github.com/mui/base-ui.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@base-ui_utils@0.3.1" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@base-ui/utils" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40codemirror/commands@6.10.4", + "bomRef": "pkg:npm/%40codemirror/commands@6.10.3", "name": "@codemirror/commands", - "version": "6.10.4", - "purl": "pkg:npm/%40codemirror/commands@6.10.4", + "version": "6.10.3", + "purl": "pkg:npm/%40codemirror/commands@6.10.3", "description": "Collection of editing commands for the CodeMirror code editor", "licenses": [ { @@ -134,13 +33,13 @@ "externalReferences": [ { "type": "vcs", - "url": "git+https://code.haverbeke.berlin/codemirror/commands.git" + "url": "git+https://github.com/codemirror/commands.git" } ], "properties": [ { "name": "local:licenseFolder", - "value": "licenses/@codemirror_commands@6.10.4" + "value": "licenses/@codemirror_commands@6.10.3" }, { "name": "local:sourcePackageDir", @@ -181,10 +80,10 @@ }, { "type": "library", - "bomRef": "pkg:npm/%40codemirror/state@6.7.0", + "bomRef": "pkg:npm/%40codemirror/state@6.6.0", "name": "@codemirror/state", - "version": "6.7.0", - "purl": "pkg:npm/%40codemirror/state@6.7.0", + "version": "6.6.0", + "purl": "pkg:npm/%40codemirror/state@6.6.0", "description": "Editor state data structures for the CodeMirror code editor", "licenses": [ { @@ -196,13 +95,13 @@ "externalReferences": [ { "type": "vcs", - "url": "git+https://code.haverbeke.berlin/codemirror/state.git" + "url": "git+https://github.com/codemirror/state.git" } ], "properties": [ { "name": "local:licenseFolder", - "value": "licenses/@codemirror_state@6.7.0" + "value": "licenses/@codemirror_state@6.6.0" }, { "name": "local:sourcePackageDir", @@ -212,10 +111,10 @@ }, { "type": "library", - "bomRef": "pkg:npm/%40codemirror/view@6.43.4", + "bomRef": "pkg:npm/%40codemirror/view@6.41.1", "name": "@codemirror/view", - "version": "6.43.4", - "purl": "pkg:npm/%40codemirror/view@6.43.4", + "version": "6.41.1", + "purl": "pkg:npm/%40codemirror/view@6.41.1", "description": "DOM view component for the CodeMirror code editor", "licenses": [ { @@ -233,7 +132,7 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/@codemirror_view@6.43.4" + "value": "licenses/@codemirror_view@6.41.1" }, { "name": "local:sourcePackageDir", @@ -276,146 +175,6 @@ } ] }, - { - "type": "library", - "bomRef": "pkg:npm/%40floating-ui/core@1.7.5", - "name": "@floating-ui/core", - "version": "1.7.5", - "purl": "pkg:npm/%40floating-ui/core@1.7.5", - "description": "Positioning library for floating elements: tooltips, popovers, dropdowns, and more", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://floating-ui.com" - }, - { - "type": "vcs", - "url": "https://github.com/floating-ui/floating-ui.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@floating-ui_core@1.7.5" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@floating-ui/core" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40floating-ui/dom@1.7.6", - "name": "@floating-ui/dom", - "version": "1.7.6", - "purl": "pkg:npm/%40floating-ui/dom@1.7.6", - "description": "Floating UI for the web", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://floating-ui.com" - }, - { - "type": "vcs", - "url": "https://github.com/floating-ui/floating-ui.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@floating-ui_dom@1.7.6" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@floating-ui/dom" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40floating-ui/react-dom@2.1.8", - "name": "@floating-ui/react-dom", - "version": "2.1.8", - "purl": "pkg:npm/%40floating-ui/react-dom@2.1.8", - "description": "Floating UI for React DOM", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://floating-ui.com/docs/react-dom" - }, - { - "type": "vcs", - "url": "https://github.com/floating-ui/floating-ui.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@floating-ui_react-dom@2.1.8" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@floating-ui/react-dom" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40floating-ui/utils@0.2.11", - "name": "@floating-ui/utils", - "version": "0.2.11", - "purl": "pkg:npm/%40floating-ui/utils@0.2.11", - "description": "Utilities for Floating UI", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://floating-ui.com" - }, - { - "type": "vcs", - "url": "https://github.com/floating-ui/floating-ui.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@floating-ui_utils@0.2.11" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@floating-ui/utils" - } - ] - }, { "type": "library", "bomRef": "pkg:npm/%40fontsource-variable/inter@5.2.8", @@ -453,45 +212,10 @@ }, { "type": "library", - "bomRef": "pkg:npm/%40fontsource-variable/public-sans@5.2.7", - "name": "@fontsource-variable/public-sans", - "version": "5.2.7", - "purl": "pkg:npm/%40fontsource-variable/public-sans@5.2.7", - "description": "Self-host the Public Sans font in a neatly bundled NPM package.", - "licenses": [ - { - "license": { - "id": "OFL-1.1" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://fontsource.org/fonts/public-sans" - }, - { - "type": "vcs", - "url": "git+https://github.com/fontsource/font-files.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@fontsource-variable_public-sans@5.2.7" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@fontsource-variable/public-sans" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40livekit/components-react@2.9.21", + "bomRef": "pkg:npm/%40livekit/components-react@2.9.20", "name": "@livekit/components-react", - "version": "2.9.21", - "purl": "pkg:npm/%40livekit/components-react@2.9.21", + "version": "2.9.20", + "purl": "pkg:npm/%40livekit/components-react@2.9.20", "licenses": [ { "license": { @@ -508,7 +232,7 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/@livekit_components-react@2.9.21" + "value": "licenses/@livekit_components-react@2.9.20" }, { "name": "local:sourcePackageDir", @@ -547,630 +271,16 @@ }, { "name": "local:sourcePackageDir", - "value": "packages/crypto/node_modules/@noble/curves" + "value": "apps/web/node_modules/@noble/curves" } ] }, { "type": "library", - "bomRef": "pkg:npm/%40noble/hashes@2.2.0", - "name": "@noble/hashes", - "version": "2.2.0", - "purl": "pkg:npm/%40noble/hashes@2.2.0", - "description": "Audited & minimal 0-dependency JS implementation of SHA, RIPEMD, BLAKE, HMAC, HKDF, PBKDF & Scrypt", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://paulmillr.com/noble/" - }, - { - "type": "vcs", - "url": "git+https://github.com/paulmillr/noble-hashes.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@noble_hashes@2.2.0" - }, - { - "name": "local:sourcePackageDir", - "value": "packages/crypto/node_modules/@noble/hashes" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40radix-ui/primitive@1.1.4", - "name": "@radix-ui/primitive", - "version": "1.1.4", - "purl": "pkg:npm/%40radix-ui/primitive@1.1.4", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://radix-ui.com/primitives" - }, - { - "type": "vcs", - "url": "git+https://github.com/radix-ui/primitives.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@radix-ui_primitive@1.1.4" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@radix-ui/primitive" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40radix-ui/react-compose-refs@1.1.3", - "name": "@radix-ui/react-compose-refs", - "version": "1.1.3", - "purl": "pkg:npm/%40radix-ui/react-compose-refs@1.1.3", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://radix-ui.com/primitives" - }, - { - "type": "vcs", - "url": "git+https://github.com/radix-ui/primitives.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@radix-ui_react-compose-refs@1.1.3" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@radix-ui/react-compose-refs" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40radix-ui/react-context@1.1.4", - "name": "@radix-ui/react-context", - "version": "1.1.4", - "purl": "pkg:npm/%40radix-ui/react-context@1.1.4", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://radix-ui.com/primitives" - }, - { - "type": "vcs", - "url": "git+https://github.com/radix-ui/primitives.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@radix-ui_react-context@1.1.4" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@radix-ui/react-context" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40radix-ui/react-dialog@1.1.18", - "name": "@radix-ui/react-dialog", - "version": "1.1.18", - "purl": "pkg:npm/%40radix-ui/react-dialog@1.1.18", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://radix-ui.com/primitives" - }, - { - "type": "vcs", - "url": "git+https://github.com/radix-ui/primitives.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@radix-ui_react-dialog@1.1.18" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@radix-ui/react-dialog" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40radix-ui/react-dismissable-layer@1.1.14", - "name": "@radix-ui/react-dismissable-layer", - "version": "1.1.14", - "purl": "pkg:npm/%40radix-ui/react-dismissable-layer@1.1.14", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://radix-ui.com/primitives" - }, - { - "type": "vcs", - "url": "git+https://github.com/radix-ui/primitives.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@radix-ui_react-dismissable-layer@1.1.14" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@radix-ui/react-dismissable-layer" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40radix-ui/react-focus-guards@1.1.4", - "name": "@radix-ui/react-focus-guards", - "version": "1.1.4", - "purl": "pkg:npm/%40radix-ui/react-focus-guards@1.1.4", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://radix-ui.com/primitives" - }, - { - "type": "vcs", - "url": "git+https://github.com/radix-ui/primitives.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@radix-ui_react-focus-guards@1.1.4" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@radix-ui/react-focus-guards" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40radix-ui/react-focus-scope@1.1.11", - "name": "@radix-ui/react-focus-scope", - "version": "1.1.11", - "purl": "pkg:npm/%40radix-ui/react-focus-scope@1.1.11", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://radix-ui.com/primitives" - }, - { - "type": "vcs", - "url": "git+https://github.com/radix-ui/primitives.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@radix-ui_react-focus-scope@1.1.11" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@radix-ui/react-focus-scope" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40radix-ui/react-id@1.1.2", - "name": "@radix-ui/react-id", - "version": "1.1.2", - "purl": "pkg:npm/%40radix-ui/react-id@1.1.2", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://radix-ui.com/primitives" - }, - { - "type": "vcs", - "url": "git+https://github.com/radix-ui/primitives.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@radix-ui_react-id@1.1.2" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@radix-ui/react-id" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40radix-ui/react-portal@1.1.13", - "name": "@radix-ui/react-portal", - "version": "1.1.13", - "purl": "pkg:npm/%40radix-ui/react-portal@1.1.13", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://radix-ui.com/primitives" - }, - { - "type": "vcs", - "url": "git+https://github.com/radix-ui/primitives.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@radix-ui_react-portal@1.1.13" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@radix-ui/react-portal" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40radix-ui/react-presence@1.1.6", - "name": "@radix-ui/react-presence", - "version": "1.1.6", - "purl": "pkg:npm/%40radix-ui/react-presence@1.1.6", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://radix-ui.com/primitives" - }, - { - "type": "vcs", - "url": "git+https://github.com/radix-ui/primitives.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@radix-ui_react-presence@1.1.6" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@radix-ui/react-presence" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40radix-ui/react-primitive@2.1.7", - "name": "@radix-ui/react-primitive", - "version": "2.1.7", - "purl": "pkg:npm/%40radix-ui/react-primitive@2.1.7", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://radix-ui.com/primitives" - }, - { - "type": "vcs", - "url": "git+https://github.com/radix-ui/primitives.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@radix-ui_react-primitive@2.1.7" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@radix-ui/react-primitive" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40radix-ui/react-slot@1.3.0", - "name": "@radix-ui/react-slot", - "version": "1.3.0", - "purl": "pkg:npm/%40radix-ui/react-slot@1.3.0", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://radix-ui.com/primitives" - }, - { - "type": "vcs", - "url": "git+https://github.com/radix-ui/primitives.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@radix-ui_react-slot@1.3.0" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@radix-ui/react-slot" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40radix-ui/react-use-callback-ref@1.1.2", - "name": "@radix-ui/react-use-callback-ref", - "version": "1.1.2", - "purl": "pkg:npm/%40radix-ui/react-use-callback-ref@1.1.2", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://radix-ui.com/primitives" - }, - { - "type": "vcs", - "url": "git+https://github.com/radix-ui/primitives.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@radix-ui_react-use-callback-ref@1.1.2" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@radix-ui/react-use-callback-ref" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40radix-ui/react-use-controllable-state@1.2.3", - "name": "@radix-ui/react-use-controllable-state", - "version": "1.2.3", - "purl": "pkg:npm/%40radix-ui/react-use-controllable-state@1.2.3", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://radix-ui.com/primitives" - }, - { - "type": "vcs", - "url": "git+https://github.com/radix-ui/primitives.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@radix-ui_react-use-controllable-state@1.2.3" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@radix-ui/react-use-controllable-state" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40radix-ui/react-use-effect-event@0.0.2", - "name": "@radix-ui/react-use-effect-event", - "version": "0.0.2", - "purl": "pkg:npm/%40radix-ui/react-use-effect-event@0.0.2", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://radix-ui.com/primitives" - }, - { - "type": "vcs", - "url": "git+https://github.com/radix-ui/primitives.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@radix-ui_react-use-effect-event@0.0.2" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@radix-ui/react-use-effect-event" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40radix-ui/react-use-layout-effect@1.1.2", - "name": "@radix-ui/react-use-layout-effect", - "version": "1.1.2", - "purl": "pkg:npm/%40radix-ui/react-use-layout-effect@1.1.2", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://radix-ui.com/primitives" - }, - { - "type": "vcs", - "url": "git+https://github.com/radix-ui/primitives.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@radix-ui_react-use-layout-effect@1.1.2" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@radix-ui/react-use-layout-effect" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40reduxjs/toolkit@2.12.0", - "name": "@reduxjs/toolkit", - "version": "2.12.0", - "purl": "pkg:npm/%40reduxjs/toolkit@2.12.0", - "description": "The official, opinionated, batteries-included toolset for efficient Redux development", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://redux-toolkit.js.org" - }, - { - "type": "vcs", - "url": "git+https://github.com/reduxjs/redux-toolkit.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@reduxjs_toolkit@2.12.0" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@reduxjs/toolkit" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40tailwindcss/vite@4.3.2", + "bomRef": "pkg:npm/%40tailwindcss/vite@4.2.4", "name": "@tailwindcss/vite", - "version": "4.3.2", - "purl": "pkg:npm/%40tailwindcss/vite@4.3.2", + "version": "4.2.4", + "purl": "pkg:npm/%40tailwindcss/vite@4.2.4", "description": "A utility-first CSS framework for rapidly building custom user interfaces.", "licenses": [ { @@ -1192,7 +302,7 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/@tailwindcss_vite@4.3.2" + "value": "licenses/@tailwindcss_vite@4.2.4" }, { "name": "local:sourcePackageDir", @@ -1202,150 +312,10 @@ }, { "type": "library", - "bomRef": "pkg:npm/%40tanstack/devtools-event-client@0.3.5", - "name": "@tanstack/devtools-event-client", - "version": "0.3.5", - "purl": "pkg:npm/%40tanstack/devtools-event-client@0.3.5", - "description": "TanStack Event Client is a lightweight event client for TanStack Devtools event bus.", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://tanstack.com/devtools" - }, - { - "type": "vcs", - "url": "https://github.com/TanStack/devtools.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@tanstack_devtools-event-client@0.3.5" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@tanstack/devtools-event-client" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40tanstack/history@1.162.0", - "name": "@tanstack/history", - "version": "1.162.0", - "purl": "pkg:npm/%40tanstack/history@1.162.0", - "description": "Modern and scalable routing for React applications", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://tanstack.com/router" - }, - { - "type": "vcs", - "url": "git+https://github.com/TanStack/router.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@tanstack_history@1.162.0" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@tanstack/history" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40tanstack/pacer@0.21.1", - "name": "@tanstack/pacer", - "version": "0.21.1", - "purl": "pkg:npm/%40tanstack/pacer@0.21.1", - "description": "Utilities for debouncing, throttling, rate-limiting, queuing, and more.", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://tanstack.com/pacer" - }, - { - "type": "vcs", - "url": "git+https://github.com/TanStack/pacer.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@tanstack_pacer@0.21.1" - }, - { - "name": "local:sourcePackageDir", - "value": "packages/chat/node_modules/@tanstack/pacer" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40tanstack/query-core@5.101.2", - "name": "@tanstack/query-core", - "version": "5.101.2", - "purl": "pkg:npm/%40tanstack/query-core@5.101.2", - "description": "The framework agnostic core that powers TanStack Query", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://tanstack.com/query" - }, - { - "type": "vcs", - "url": "git+https://github.com/TanStack/query.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@tanstack_query-core@5.101.2" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@tanstack/query-core" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40tanstack/react-query@5.101.2", + "bomRef": "pkg:npm/%40tanstack/react-query@5.100.8", "name": "@tanstack/react-query", - "version": "5.101.2", - "purl": "pkg:npm/%40tanstack/react-query@5.101.2", + "version": "5.100.8", + "purl": "pkg:npm/%40tanstack/react-query@5.100.8", "description": "Hooks for managing, caching and syncing asynchronous and remote data in React", "licenses": [ { @@ -1367,20 +337,20 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/@tanstack_react-query@5.101.2" + "value": "licenses/@tanstack_react-query@5.100.8" }, { "name": "local:sourcePackageDir", - "value": "packages/chat/node_modules/@tanstack/react-query" + "value": "packages/call/node_modules/@tanstack/react-query" } ] }, { "type": "library", - "bomRef": "pkg:npm/%40tanstack/react-router@1.170.17", + "bomRef": "pkg:npm/%40tanstack/react-router@1.169.1", "name": "@tanstack/react-router", - "version": "1.170.17", - "purl": "pkg:npm/%40tanstack/react-router@1.170.17", + "version": "1.169.1", + "purl": "pkg:npm/%40tanstack/react-router@1.169.1", "description": "Modern and scalable routing for React applications", "licenses": [ { @@ -1402,7 +372,7 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/@tanstack_react-router@1.170.17" + "value": "licenses/@tanstack_react-router@1.169.1" }, { "name": "local:sourcePackageDir", @@ -1412,45 +382,10 @@ }, { "type": "library", - "bomRef": "pkg:npm/%40tanstack/react-store@0.9.3", - "name": "@tanstack/react-store", - "version": "0.9.3", - "purl": "pkg:npm/%40tanstack/react-store@0.9.3", - "description": "Framework agnostic type-safe store w/ reactive framework adapters", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://tanstack.com/store" - }, - { - "type": "vcs", - "url": "https://github.com/TanStack/store.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@tanstack_react-store@0.9.3" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@tanstack/react-store" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40tanstack/react-virtual@3.14.5", + "bomRef": "pkg:npm/%40tanstack/react-virtual@3.13.24", "name": "@tanstack/react-virtual", - "version": "3.14.5", - "purl": "pkg:npm/%40tanstack/react-virtual@3.14.5", + "version": "3.13.24", + "purl": "pkg:npm/%40tanstack/react-virtual@3.13.24", "description": "Headless UI for virtualizing scrollable elements in React", "licenses": [ { @@ -1472,7 +407,7 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/@tanstack_react-virtual@3.14.5" + "value": "licenses/@tanstack_react-virtual@3.13.24" }, { "name": "local:sourcePackageDir", @@ -1482,115 +417,10 @@ }, { "type": "library", - "bomRef": "pkg:npm/%40tanstack/router-core@1.171.14", - "name": "@tanstack/router-core", - "version": "1.171.14", - "purl": "pkg:npm/%40tanstack/router-core@1.171.14", - "description": "Modern and scalable routing for React applications", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://tanstack.com/router" - }, - { - "type": "vcs", - "url": "git+https://github.com/TanStack/router.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@tanstack_router-core@1.171.14" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@tanstack/router-core" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40tanstack/store@0.9.3", - "name": "@tanstack/store", - "version": "0.9.3", - "purl": "pkg:npm/%40tanstack/store@0.9.3", - "description": "Framework agnostic type-safe store w/ reactive framework adapters", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://tanstack.com/store" - }, - { - "type": "vcs", - "url": "git+https://github.com/TanStack/store.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@tanstack_store@0.9.3" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@tanstack/store" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40tanstack/virtual-core@3.17.3", - "name": "@tanstack/virtual-core", - "version": "3.17.3", - "purl": "pkg:npm/%40tanstack/virtual-core@3.17.3", - "description": "Headless UI for virtualizing scrollable elements in TS/JS + Frameworks", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://tanstack.com/virtual" - }, - { - "type": "vcs", - "url": "git+https://github.com/TanStack/virtual.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@tanstack_virtual-core@3.17.3" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/@tanstack/virtual-core" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40tauri-apps/api@2.11.1", + "bomRef": "pkg:npm/%40tauri-apps/api@2.11.0", "name": "@tauri-apps/api", - "version": "2.11.1", - "purl": "pkg:npm/%40tauri-apps/api@2.11.1", + "version": "2.11.0", + "purl": "pkg:npm/%40tauri-apps/api@2.11.0", "description": "Tauri API definitions", "licenses": [ { @@ -1612,7 +442,7 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/@tauri-apps_api@2.11.1" + "value": "licenses/@tauri-apps_api@2.11.0" }, { "name": "local:sourcePackageDir", @@ -1622,10 +452,10 @@ }, { "type": "library", - "bomRef": "pkg:npm/%40tauri-apps/cli@2.11.4", + "bomRef": "pkg:npm/%40tauri-apps/cli@2.11.0", "name": "@tauri-apps/cli", - "version": "2.11.4", - "purl": "pkg:npm/%40tauri-apps/cli@2.11.4", + "version": "2.11.0", + "purl": "pkg:npm/%40tauri-apps/cli@2.11.0", "description": "Command line interface for building Tauri apps", "licenses": [ { @@ -1647,7 +477,7 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/@tauri-apps_cli@2.11.4" + "value": "licenses/@tauri-apps_cli@2.11.0" }, { "name": "local:sourcePackageDir", @@ -1657,10 +487,10 @@ }, { "type": "library", - "bomRef": "pkg:npm/%40tauri-apps/plugin-barcode-scanner@2.4.5", + "bomRef": "pkg:npm/%40tauri-apps/plugin-barcode-scanner@2.4.4", "name": "@tauri-apps/plugin-barcode-scanner", - "version": "2.4.5", - "purl": "pkg:npm/%40tauri-apps/plugin-barcode-scanner@2.4.5", + "version": "2.4.4", + "purl": "pkg:npm/%40tauri-apps/plugin-barcode-scanner@2.4.4", "description": "Scan QR codes, EAN-13 and other kinds of barcodes on Android and iOS", "licenses": [ { @@ -1678,7 +508,7 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/@tauri-apps_plugin-barcode-scanner@2.4.5" + "value": "licenses/@tauri-apps_plugin-barcode-scanner@2.4.4" }, { "name": "local:sourcePackageDir", @@ -1719,11 +549,11 @@ }, { "type": "library", - "bomRef": "pkg:npm/%40tauri-apps/plugin-log@2.8.0", - "name": "@tauri-apps/plugin-log", - "version": "2.8.0", - "purl": "pkg:npm/%40tauri-apps/plugin-log@2.8.0", - "description": "Configurable logging for your Tauri app.", + "bomRef": "pkg:npm/%40tauri-apps/plugin-opener@2.5.4", + "name": "@tauri-apps/plugin-opener", + "version": "2.5.4", + "purl": "pkg:npm/%40tauri-apps/plugin-opener@2.5.4", + "description": "Open files and URLs using their default application.", "licenses": [ { "license": { @@ -1740,55 +570,43 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/@tauri-apps_plugin-log@2.8.0" + "value": "licenses/@tauri-apps_plugin-opener@2.5.4" }, { "name": "local:sourcePackageDir", - "value": "apps/tauri/node_modules/@tauri-apps/plugin-log" + "value": "apps/tauri/node_modules/@tauri-apps/plugin-opener" } ] }, { "type": "library", - "bomRef": "pkg:npm/%40tauri-apps/plugin-notification@2.3.3", - "name": "@tauri-apps/plugin-notification", - "version": "2.3.3", - "purl": "pkg:npm/%40tauri-apps/plugin-notification@2.3.3", - "licenses": [ - { - "license": { - "name": "MIT OR Apache-2.0" - } - } - ], - "externalReferences": [ - { - "type": "vcs", - "url": "https://github.com/tauri-apps/plugins-workspace" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/@tauri-apps_plugin-notification@2.3.3" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/tauri/node_modules/@tauri-apps/plugin-notification" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/%40tensamin/ui@0.0.39", - "name": "@tensamin/ui", - "version": "0.0.39", - "purl": "pkg:npm/%40tensamin/ui@0.0.39", + "bomRef": "pkg:npm/%40tensamin/ttp-core@0.0.19", + "name": "@tensamin/ttp-core", + "version": "0.0.19", + "purl": "pkg:npm/%40tensamin/ttp-core@0.0.19", "externalReferences": [], "properties": [ { "name": "local:licenseFolder", - "value": "licenses/@tensamin_ui@0.0.39" + "value": "licenses/@tensamin_ttp-core@0.0.19" + }, + { + "name": "local:sourcePackageDir", + "value": "packages/ttp/node_modules/@tensamin/ttp-core" + } + ] + }, + { + "type": "library", + "bomRef": "pkg:npm/%40tensamin/ui@0.0.34", + "name": "@tensamin/ui", + "version": "0.0.34", + "purl": "pkg:npm/%40tensamin/ui@0.0.34", + "externalReferences": [], + "properties": [ + { + "name": "local:licenseFolder", + "value": "licenses/@tensamin_ui@0.0.34" }, { "name": "local:sourcePackageDir", @@ -1798,10 +616,10 @@ }, { "type": "library", - "bomRef": "pkg:npm/%40types/node@25.9.4", + "bomRef": "pkg:npm/%40types/node@25.6.0", "name": "@types/node", - "version": "25.9.4", - "purl": "pkg:npm/%40types/node@25.9.4", + "version": "25.6.0", + "purl": "pkg:npm/%40types/node@25.6.0", "description": "TypeScript definitions for node", "licenses": [ { @@ -1823,11 +641,11 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/@types_node@25.9.4" + "value": "licenses/@types_node@25.6.0" }, { "name": "local:sourcePackageDir", - "value": "apps/electron/node_modules/@types/node" + "value": "node_modules/@types/node" } ] }, @@ -1868,10 +686,10 @@ }, { "type": "library", - "bomRef": "pkg:npm/%40types/react@19.2.17", + "bomRef": "pkg:npm/%40types/react@19.2.14", "name": "@types/react", - "version": "19.2.17", - "purl": "pkg:npm/%40types/react@19.2.17", + "version": "19.2.14", + "purl": "pkg:npm/%40types/react@19.2.14", "description": "TypeScript definitions for react", "licenses": [ { @@ -1893,7 +711,7 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/@types_react@19.2.17" + "value": "licenses/@types_react@19.2.14" }, { "name": "local:sourcePackageDir", @@ -1938,10 +756,10 @@ }, { "type": "library", - "bomRef": "pkg:npm/%40typescript-eslint/parser@8.62.1", + "bomRef": "pkg:npm/%40typescript-eslint/parser@8.59.1", "name": "@typescript-eslint/parser", - "version": "8.62.1", - "purl": "pkg:npm/%40typescript-eslint/parser@8.62.1", + "version": "8.59.1", + "purl": "pkg:npm/%40typescript-eslint/parser@8.59.1", "description": "An ESLint custom parser which leverages TypeScript ESTree", "licenses": [ { @@ -1963,7 +781,7 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/@typescript-eslint_parser@8.62.1" + "value": "licenses/@typescript-eslint_parser@8.59.1" }, { "name": "local:sourcePackageDir", @@ -1973,10 +791,10 @@ }, { "type": "library", - "bomRef": "pkg:npm/%40vitejs/plugin-react@6.0.3", + "bomRef": "pkg:npm/%40vitejs/plugin-react@6.0.1", "name": "@vitejs/plugin-react", - "version": "6.0.3", - "purl": "pkg:npm/%40vitejs/plugin-react@6.0.3", + "version": "6.0.1", + "purl": "pkg:npm/%40vitejs/plugin-react@6.0.1", "description": "The default Vite plugin for React projects", "licenses": [ { @@ -1998,7 +816,7 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/@vitejs_plugin-react@6.0.3" + "value": "licenses/@vitejs_plugin-react@6.0.1" }, { "name": "local:sourcePackageDir", @@ -2006,41 +824,6 @@ } ] }, - { - "type": "library", - "bomRef": "pkg:npm/aria-hidden@1.2.6", - "name": "aria-hidden", - "version": "1.2.6", - "purl": "pkg:npm/aria-hidden@1.2.6", - "description": "Cast aria-hidden to everything, except...", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://github.com/theKashey/aria-hidden#readme" - }, - { - "type": "vcs", - "url": "git+https://github.com/theKashey/aria-hidden.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/aria-hidden@1.2.6" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/aria-hidden" - } - ] - }, { "type": "library", "bomRef": "pkg:npm/class-variance-authority@0.7.1", @@ -2107,40 +890,6 @@ } ] }, - { - "type": "library", - "bomRef": "pkg:npm/cmdk@1.1.1", - "name": "cmdk", - "version": "1.1.1", - "purl": "pkg:npm/cmdk@1.1.1", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://github.com/pacocoursey/cmdk#readme" - }, - { - "type": "vcs", - "url": "git+https://github.com/pacocoursey/cmdk.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/cmdk@1.1.1" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/cmdk" - } - ] - }, { "type": "library", "bomRef": "pkg:npm/comlink@4.4.2", @@ -2168,493 +917,16 @@ }, { "name": "local:sourcePackageDir", - "value": "packages/crypto/node_modules/comlink" + "value": "apps/web/node_modules/comlink" } ] }, { "type": "library", - "bomRef": "pkg:npm/cookie-es@3.1.1", - "name": "cookie-es", - "version": "3.1.1", - "purl": "pkg:npm/cookie-es@3.1.1", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "vcs", - "url": "unjs/cookie-es" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/cookie-es@3.1.1" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/cookie-es" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/d3-array@3.2.4", - "name": "d3-array", - "version": "3.2.4", - "purl": "pkg:npm/d3-array@3.2.4", - "description": "Array manipulation, ordering, searching, summarizing, etc.", - "licenses": [ - { - "license": { - "id": "ISC" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://d3js.org/d3-array/" - }, - { - "type": "vcs", - "url": "https://github.com/d3/d3-array.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/d3-array@3.2.4" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/d3-array" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/d3-color@3.1.0", - "name": "d3-color", - "version": "3.1.0", - "purl": "pkg:npm/d3-color@3.1.0", - "description": "Color spaces! RGB, HSL, Cubehelix, Lab and HCL (Lch).", - "licenses": [ - { - "license": { - "id": "ISC" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://d3js.org/d3-color/" - }, - { - "type": "vcs", - "url": "https://github.com/d3/d3-color.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/d3-color@3.1.0" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/d3-color" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/d3-ease@3.0.1", - "name": "d3-ease", - "version": "3.0.1", - "purl": "pkg:npm/d3-ease@3.0.1", - "description": "Easing functions for smooth animation.", - "licenses": [ - { - "license": { - "id": "BSD-3-Clause" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://d3js.org/d3-ease/" - }, - { - "type": "vcs", - "url": "https://github.com/d3/d3-ease.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/d3-ease@3.0.1" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/d3-ease" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/d3-format@3.1.2", - "name": "d3-format", - "version": "3.1.2", - "purl": "pkg:npm/d3-format@3.1.2", - "description": "Format numbers for human consumption.", - "licenses": [ - { - "license": { - "id": "ISC" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://d3js.org/d3-format/" - }, - { - "type": "vcs", - "url": "https://github.com/d3/d3-format.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/d3-format@3.1.2" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/d3-format" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/d3-interpolate@3.0.1", - "name": "d3-interpolate", - "version": "3.0.1", - "purl": "pkg:npm/d3-interpolate@3.0.1", - "description": "Interpolate numbers, colors, strings, arrays, objects, whatever!", - "licenses": [ - { - "license": { - "id": "ISC" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://d3js.org/d3-interpolate/" - }, - { - "type": "vcs", - "url": "https://github.com/d3/d3-interpolate.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/d3-interpolate@3.0.1" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/d3-interpolate" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/d3-path@3.1.0", - "name": "d3-path", - "version": "3.1.0", - "purl": "pkg:npm/d3-path@3.1.0", - "description": "Serialize Canvas path commands to SVG.", - "licenses": [ - { - "license": { - "id": "ISC" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://d3js.org/d3-path/" - }, - { - "type": "vcs", - "url": "https://github.com/d3/d3-path.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/d3-path@3.1.0" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/d3-path" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/d3-scale@4.0.2", - "name": "d3-scale", - "version": "4.0.2", - "purl": "pkg:npm/d3-scale@4.0.2", - "description": "Encodings that map abstract data to visual representation.", - "licenses": [ - { - "license": { - "id": "ISC" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://d3js.org/d3-scale/" - }, - { - "type": "vcs", - "url": "https://github.com/d3/d3-scale.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/d3-scale@4.0.2" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/d3-scale" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/d3-shape@3.2.0", - "name": "d3-shape", - "version": "3.2.0", - "purl": "pkg:npm/d3-shape@3.2.0", - "description": "Graphical primitives for visualization, such as lines and areas.", - "licenses": [ - { - "license": { - "id": "ISC" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://d3js.org/d3-shape/" - }, - { - "type": "vcs", - "url": "https://github.com/d3/d3-shape.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/d3-shape@3.2.0" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/d3-shape" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/d3-time@3.1.0", - "name": "d3-time", - "version": "3.1.0", - "purl": "pkg:npm/d3-time@3.1.0", - "description": "A calculator for humanity’s peculiar conventions of time.", - "licenses": [ - { - "license": { - "id": "ISC" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://d3js.org/d3-time/" - }, - { - "type": "vcs", - "url": "https://github.com/d3/d3-time.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/d3-time@3.1.0" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/d3-time" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/d3-time-format@4.1.0", - "name": "d3-time-format", - "version": "4.1.0", - "purl": "pkg:npm/d3-time-format@4.1.0", - "description": "A JavaScript time formatter and parser inspired by strftime and strptime.", - "licenses": [ - { - "license": { - "id": "ISC" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://d3js.org/d3-time-format/" - }, - { - "type": "vcs", - "url": "https://github.com/d3/d3-time-format.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/d3-time-format@4.1.0" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/d3-time-format" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/d3-timer@3.0.1", - "name": "d3-timer", - "version": "3.0.1", - "purl": "pkg:npm/d3-timer@3.0.1", - "description": "An efficient queue capable of managing thousands of concurrent animations.", - "licenses": [ - { - "license": { - "id": "ISC" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://d3js.org/d3-timer/" - }, - { - "type": "vcs", - "url": "https://github.com/d3/d3-timer.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/d3-timer@3.0.1" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/d3-timer" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/date-fns@4.4.0", - "name": "date-fns", - "version": "4.4.0", - "purl": "pkg:npm/date-fns@4.4.0", - "description": "Modern JavaScript date utility library", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "vcs", - "url": "https://github.com/date-fns/date-fns" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/date-fns@4.4.0" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/date-fns" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/decimal.js-light@2.5.1", - "name": "decimal.js-light", - "version": "2.5.1", - "purl": "pkg:npm/decimal.js-light@2.5.1", - "description": "An arbitrary-precision Decimal type for JavaScript.", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "vcs", - "url": "https://github.com/MikeMcl/decimal.js-light.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/decimal.js-light@2.5.1" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/decimal.js-light" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/deepfilternet3-noise-filter@1.3.0", + "bomRef": "pkg:npm/deepfilternet3-noise-filter@1.2.1", "name": "deepfilternet3-noise-filter", - "version": "1.3.0", - "purl": "pkg:npm/deepfilternet3-noise-filter@1.3.0", + "version": "1.2.1", + "purl": "pkg:npm/deepfilternet3-noise-filter@1.2.1", "description": "Custom audio processor with DeepFilterNet3 noise filtering integrated with LiveKit client", "licenses": [ { @@ -2676,7 +948,7 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/deepfilternet3-noise-filter@1.3.0" + "value": "licenses/deepfilternet3-noise-filter@1.2.1" }, { "name": "local:sourcePackageDir", @@ -2684,282 +956,6 @@ } ] }, - { - "type": "library", - "bomRef": "pkg:npm/detect-node-es@1.1.0", - "name": "detect-node-es", - "version": "1.1.0", - "purl": "pkg:npm/detect-node-es@1.1.0", - "description": "Detect Node.JS (as opposite to browser environment). ESM modification", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://github.com/thekashey/detect-node" - }, - { - "type": "vcs", - "url": "https://github.com/thekashey/detect-node" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/detect-node-es@1.1.0" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/detect-node-es" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/dijkstrajs@1.0.3", - "name": "dijkstrajs", - "version": "1.0.3", - "purl": "pkg:npm/dijkstrajs@1.0.3", - "description": "A simple JavaScript implementation of Dijkstra's single-source shortest-paths algorithm.", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://github.com/tcort/dijkstrajs" - }, - { - "type": "vcs", - "url": "git://github.com/tcort/dijkstrajs" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/dijkstrajs@1.0.3" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/dijkstrajs" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/electron@39.8.10", - "name": "electron", - "version": "39.8.10", - "purl": "pkg:npm/electron@39.8.10", - "description": "Build cross platform desktop apps with JavaScript, HTML, and CSS", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "vcs", - "url": "https://github.com/electron/electron" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/electron@39.8.10" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/electron/node_modules/electron" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/electron-builder@26.15.3", - "name": "electron-builder", - "version": "26.15.3", - "purl": "pkg:npm/electron-builder@26.15.3", - "description": "A complete solution to package and build a ready for distribution Electron app for MacOS, Windows and Linux with “auto update” support out of the box", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://github.com/electron-userland/electron-builder" - }, - { - "type": "vcs", - "url": "git+https://github.com/electron-userland/electron-builder.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/electron-builder@26.15.3" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/electron/node_modules/electron-builder" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/embla-carousel@8.6.0", - "name": "embla-carousel", - "version": "8.6.0", - "purl": "pkg:npm/embla-carousel@8.6.0", - "description": "A lightweight carousel library with fluid motion and great swipe precision", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://www.embla-carousel.com" - }, - { - "type": "vcs", - "url": "git+https://github.com/davidjerleke/embla-carousel" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/embla-carousel@8.6.0" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/embla-carousel" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/embla-carousel-react@8.6.0", - "name": "embla-carousel-react", - "version": "8.6.0", - "purl": "pkg:npm/embla-carousel-react@8.6.0", - "description": "A lightweight carousel library with fluid motion and great swipe precision", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://www.embla-carousel.com" - }, - { - "type": "vcs", - "url": "git+https://github.com/davidjerleke/embla-carousel" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/embla-carousel-react@8.6.0" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/embla-carousel-react" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/embla-carousel-reactive-utils@8.6.0", - "name": "embla-carousel-reactive-utils", - "version": "8.6.0", - "purl": "pkg:npm/embla-carousel-reactive-utils@8.6.0", - "description": "Reactive utilities for Embla Carousel", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://www.embla-carousel.com" - }, - { - "type": "vcs", - "url": "git+https://github.com/davidjerleke/embla-carousel" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/embla-carousel-reactive-utils@8.6.0" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/embla-carousel-reactive-utils" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/es-toolkit@1.49.0", - "name": "es-toolkit", - "version": "1.49.0", - "purl": "pkg:npm/es-toolkit@1.49.0", - "description": "A state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://es-toolkit.dev" - }, - { - "type": "vcs", - "url": "https://github.com/toss/es-toolkit.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/es-toolkit@1.49.0" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/es-toolkit" - } - ] - }, { "type": "library", "bomRef": "pkg:npm/esbuild@0.25.12", @@ -2987,16 +983,16 @@ }, { "name": "local:sourcePackageDir", - "value": "apps/electron/node_modules/esbuild" + "value": "apps/web/node_modules/esbuild" } ] }, { "type": "library", - "bomRef": "pkg:npm/eslint@10.6.0", + "bomRef": "pkg:npm/eslint@10.3.0", "name": "eslint", - "version": "10.6.0", - "purl": "pkg:npm/eslint@10.6.0", + "version": "10.3.0", + "purl": "pkg:npm/eslint@10.3.0", "description": "An AST-based pattern checker for JavaScript.", "licenses": [ { @@ -3018,7 +1014,7 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/eslint@10.6.0" + "value": "licenses/eslint@10.3.0" }, { "name": "local:sourcePackageDir", @@ -3063,11 +1059,11 @@ }, { "type": "library", - "bomRef": "pkg:npm/eventemitter3@5.0.4", - "name": "eventemitter3", - "version": "5.0.4", - "purl": "pkg:npm/eventemitter3@5.0.4", - "description": "EventEmitter3 focuses on performance while maintaining a Node.js AND browser compatible interface.", + "bomRef": "pkg:npm/framer-motion@12.38.0", + "name": "framer-motion", + "version": "12.38.0", + "purl": "pkg:npm/framer-motion@12.38.0", + "description": "A simple and powerful JavaScript animation library", "licenses": [ { "license": { @@ -3078,96 +1074,26 @@ "externalReferences": [ { "type": "vcs", - "url": "git://github.com/primus/eventemitter3.git" + "url": "https://github.com/motiondivision/motion/" } ], "properties": [ { "name": "local:licenseFolder", - "value": "licenses/eventemitter3@5.0.4" + "value": "licenses/framer-motion@12.38.0" }, { "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/eventemitter3" + "value": "apps/web/node_modules/framer-motion" } ] }, { "type": "library", - "bomRef": "pkg:npm/fallow@2.104.0", - "name": "fallow", - "version": "2.104.0", - "purl": "pkg:npm/fallow@2.104.0", - "description": "Deterministic codebase intelligence for TypeScript and JavaScript. Quality, risk, architecture, dependencies, duplication, and safe cleanup evidence for humans, CI, and agents. Optional runtime intelligence layer (Fallow Runtime) adds production execution evidence. Rust-native, sub-second, zero-config framework support.", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://docs.fallow.tools" - }, - { - "type": "vcs", - "url": "git+https://github.com/fallow-rs/fallow.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/fallow@2.104.0" - }, - { - "name": "local:sourcePackageDir", - "value": "node_modules/fallow" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/get-nonce@1.0.1", - "name": "get-nonce", - "version": "1.0.1", - "purl": "pkg:npm/get-nonce@1.0.1", - "description": "returns nonce", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://github.com/theKashey/get-nonce" - }, - { - "type": "vcs", - "url": "git@github.com:theKashey/get-nonce.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/get-nonce@1.0.1" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/get-nonce" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/globals@17.7.0", + "bomRef": "pkg:npm/globals@17.6.0", "name": "globals", - "version": "17.7.0", - "purl": "pkg:npm/globals@17.7.0", + "version": "17.6.0", + "purl": "pkg:npm/globals@17.6.0", "description": "Global identifiers from different JavaScript environments", "licenses": [ { @@ -3185,7 +1111,7 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/globals@17.7.0" + "value": "licenses/globals@17.6.0" }, { "name": "local:sourcePackageDir", @@ -3193,111 +1119,6 @@ } ] }, - { - "type": "library", - "bomRef": "pkg:npm/immer@10.2.0", - "name": "immer", - "version": "10.2.0", - "purl": "pkg:npm/immer@10.2.0", - "description": "Create your next immutable state by mutating the current one", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://github.com/immerjs/immer#readme" - }, - { - "type": "vcs", - "url": "https://github.com/immerjs/immer.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/immer@10.2.0" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/immer" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/input-otp@1.4.2", - "name": "input-otp", - "version": "1.4.2", - "purl": "pkg:npm/input-otp@1.4.2", - "description": "One-time password input component for React.", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://input-otp.rodz.dev/" - }, - { - "type": "vcs", - "url": "git+https://github.com/guilhermerodz/input-otp.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/input-otp@1.4.2" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/input-otp" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/internmap@2.0.3", - "name": "internmap", - "version": "2.0.3", - "purl": "pkg:npm/internmap@2.0.3", - "description": "Map and Set with automatic key interning", - "licenses": [ - { - "license": { - "id": "ISC" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://github.com/mbostock/internmap/" - }, - { - "type": "vcs", - "url": "https://github.com/mbostock/internmap.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/internmap@2.0.3" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/internmap" - } - ] - }, { "type": "library", "bomRef": "pkg:npm/jsonc-parser@3.3.1", @@ -3331,10 +1152,10 @@ }, { "type": "library", - "bomRef": "pkg:npm/livekit-client@2.20.0", + "bomRef": "pkg:npm/livekit-client@2.18.8", "name": "livekit-client", - "version": "2.20.0", - "purl": "pkg:npm/livekit-client@2.20.0", + "version": "2.18.8", + "purl": "pkg:npm/livekit-client@2.18.8", "description": "JavaScript/TypeScript client SDK for LiveKit", "licenses": [ { @@ -3352,7 +1173,7 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/livekit-client@2.20.0" + "value": "licenses/livekit-client@2.18.8" }, { "name": "local:sourcePackageDir", @@ -3362,10 +1183,10 @@ }, { "type": "library", - "bomRef": "pkg:npm/lucide-react@1.23.0", + "bomRef": "pkg:npm/lucide-react@1.14.0", "name": "lucide-react", - "version": "1.23.0", - "purl": "pkg:npm/lucide-react@1.23.0", + "version": "1.14.0", + "purl": "pkg:npm/lucide-react@1.14.0", "description": "A Lucide icon library package for React applications.", "licenses": [ { @@ -3387,104 +1208,20 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/lucide-react@1.23.0" + "value": "licenses/lucide-react@1.14.0" }, { "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/lucide-react" + "value": "apps/tauri/node_modules/lucide-react" } ] }, { "type": "library", - "bomRef": "pkg:npm/mtp@0.1.0", - "name": "mtp", - "version": "0.1.0", - "purl": "pkg:npm/mtp@0.1.0", - "description": "MTP TypeScript SDK", - "externalReferences": [], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/mtp@0.1.0" - }, - { - "name": "local:sourcePackageDir", - "value": "packages/mtp/node_modules/mtp" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/next-themes@0.4.6", - "name": "next-themes", - "version": "0.4.6", - "purl": "pkg:npm/next-themes@0.4.6", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "vcs", - "url": "https://github.com/pacocoursey/next-themes.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/next-themes@0.4.6" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/next-themes" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/pngjs@5.0.0", - "name": "pngjs", - "version": "5.0.0", - "purl": "pkg:npm/pngjs@5.0.0", - "description": "PNG encoder/decoder in pure JS, supporting any bit size & interlace, async & sync with full test suite.", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://github.com/lukeapage/pngjs" - }, - { - "type": "vcs", - "url": "git://github.com/lukeapage/pngjs.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/pngjs@5.0.0" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/pngjs" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/prettier@3.9.4", + "bomRef": "pkg:npm/prettier@3.8.3", "name": "prettier", - "version": "3.9.4", - "purl": "pkg:npm/prettier@3.9.4", + "version": "3.8.3", + "purl": "pkg:npm/prettier@3.8.3", "description": "Prettier is an opinionated code formatter", "licenses": [ { @@ -3506,7 +1243,7 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/prettier@3.9.4" + "value": "licenses/prettier@3.8.3" }, { "name": "local:sourcePackageDir", @@ -3551,10 +1288,10 @@ }, { "type": "library", - "bomRef": "pkg:npm/react@19.2.7", + "bomRef": "pkg:npm/react@19.2.5", "name": "react", - "version": "19.2.7", - "purl": "pkg:npm/react@19.2.7", + "version": "19.2.5", + "purl": "pkg:npm/react@19.2.5", "description": "React is a JavaScript library for building user interfaces.", "licenses": [ { @@ -3576,7 +1313,7 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/react@19.2.7" + "value": "licenses/react@19.2.5" }, { "name": "local:sourcePackageDir", @@ -3586,45 +1323,10 @@ }, { "type": "library", - "bomRef": "pkg:npm/react-day-picker@10.0.1", - "name": "react-day-picker", - "version": "10.0.1", - "purl": "pkg:npm/react-day-picker@10.0.1", - "description": "Customizable Date Picker for React", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://daypicker.dev" - }, - { - "type": "vcs", - "url": "git+https://github.com/gpbl/react-day-picker.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/react-day-picker@10.0.1" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/react-day-picker" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/react-dom@19.2.7", + "bomRef": "pkg:npm/react-dom@19.2.5", "name": "react-dom", - "version": "19.2.7", - "purl": "pkg:npm/react-dom@19.2.7", + "version": "19.2.5", + "purl": "pkg:npm/react-dom@19.2.5", "description": "React package for working with the DOM.", "licenses": [ { @@ -3646,7 +1348,7 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/react-dom@19.2.7" + "value": "licenses/react-dom@19.2.5" }, { "name": "local:sourcePackageDir", @@ -3654,207 +1356,6 @@ } ] }, - { - "type": "library", - "bomRef": "pkg:npm/react-is@19.2.7", - "name": "react-is", - "version": "19.2.7", - "purl": "pkg:npm/react-is@19.2.7", - "description": "Brand checking of React Elements.", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://react.dev/" - }, - { - "type": "vcs", - "url": "https://github.com/facebook/react.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/react-is@19.2.7" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/react-is" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/react-redux@9.3.0", - "name": "react-redux", - "version": "9.3.0", - "purl": "pkg:npm/react-redux@9.3.0", - "description": "Official React bindings for Redux", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://github.com/reduxjs/react-redux" - }, - { - "type": "vcs", - "url": "github:reduxjs/react-redux" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/react-redux@9.3.0" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/react-redux" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/react-remove-scroll@2.7.2", - "name": "react-remove-scroll", - "version": "2.7.2", - "purl": "pkg:npm/react-remove-scroll@2.7.2", - "description": "Disables scroll outside of `children` node.", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "vcs", - "url": "https://github.com/theKashey/react-remove-scroll" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/react-remove-scroll@2.7.2" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/react-remove-scroll" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/react-remove-scroll-bar@2.3.8", - "name": "react-remove-scroll-bar", - "version": "2.3.8", - "purl": "pkg:npm/react-remove-scroll-bar@2.3.8", - "description": "Removes body scroll without content _shake_", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "vcs", - "url": "https://github.com/theKashey/react-remove-scroll-bar" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/react-remove-scroll-bar@2.3.8" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/react-remove-scroll-bar" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/react-resizable-panels@4.12.0", - "name": "react-resizable-panels", - "version": "4.12.0", - "purl": "pkg:npm/react-resizable-panels@4.12.0", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://react-resizable-panels.vercel.app/" - }, - { - "type": "vcs", - "url": "https://github.com/bvaughn/react-resizable-panels.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/react-resizable-panels@4.12.0" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/react-resizable-panels" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/react-style-singleton@2.2.3", - "name": "react-style-singleton", - "version": "2.2.3", - "purl": "pkg:npm/react-style-singleton@2.2.3", - "description": "Just create a single stylesheet...", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://github.com/theKashey/react-style-singleton#readme" - }, - { - "type": "vcs", - "url": "https://github.com/theKashey/react-style-singleton" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/react-style-singleton@2.2.3" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/react-style-singleton" - } - ] - }, { "type": "library", "bomRef": "pkg:npm/recharts@3.8.1", @@ -3886,222 +1387,16 @@ }, { "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/recharts" + "value": "packages/call/node_modules/recharts" } ] }, { "type": "library", - "bomRef": "pkg:npm/redux@5.0.1", - "name": "redux", - "version": "5.0.1", - "purl": "pkg:npm/redux@5.0.1", - "description": "Predictable state container for JavaScript apps", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "http://redux.js.org" - }, - { - "type": "vcs", - "url": "github:reduxjs/redux" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/redux@5.0.1" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/redux" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/redux-thunk@3.1.0", - "name": "redux-thunk", - "version": "3.1.0", - "purl": "pkg:npm/redux-thunk@3.1.0", - "description": "Thunk middleware for Redux.", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://github.com/reduxjs/redux-thunk" - }, - { - "type": "vcs", - "url": "github:reduxjs/redux-thunk" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/redux-thunk@3.1.0" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/redux-thunk" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/reselect@5.1.1", - "name": "reselect", - "version": "5.1.1", - "purl": "pkg:npm/reselect@5.1.1", - "description": "Selectors for Redux.", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "vcs", - "url": "https://github.com/reduxjs/reselect.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/reselect@5.1.1" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/reselect" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/scheduler@0.27.0", - "name": "scheduler", - "version": "0.27.0", - "purl": "pkg:npm/scheduler@0.27.0", - "description": "Cooperative scheduler for the browser environment.", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://react.dev/" - }, - { - "type": "vcs", - "url": "https://github.com/facebook/react.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/scheduler@0.27.0" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/scheduler" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/seroval@1.5.4", - "name": "seroval", - "version": "1.5.4", - "purl": "pkg:npm/seroval@1.5.4", - "description": "Stringify JS values", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://github.com/lxsmnsyc/seroval/tree/main/packages/seroval" - }, - { - "type": "vcs", - "url": "https://github.com/lxsmnsyc/seroval.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/seroval@1.5.4" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/seroval" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/seroval-plugins@1.5.4", - "name": "seroval-plugins", - "version": "1.5.4", - "purl": "pkg:npm/seroval-plugins@1.5.4", - "description": "Stringify JS values", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://github.com/lxsmnsyc/seroval/tree/main/packages/plugins" - }, - { - "type": "vcs", - "url": "https://github.com/lxsmnsyc/seroval.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/seroval-plugins@1.5.4" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/seroval-plugins" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/shadcn@4.12.0", + "bomRef": "pkg:npm/shadcn@4.6.0", "name": "shadcn", - "version": "4.12.0", - "purl": "pkg:npm/shadcn@4.12.0", + "version": "4.6.0", + "purl": "pkg:npm/shadcn@4.6.0", "description": "Add components to your apps.", "licenses": [ { @@ -4119,7 +1414,7 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/shadcn@4.12.0" + "value": "licenses/shadcn@4.6.0" }, { "name": "local:sourcePackageDir", @@ -4164,10 +1459,10 @@ }, { "type": "library", - "bomRef": "pkg:npm/tailwind-merge@3.6.0", + "bomRef": "pkg:npm/tailwind-merge@3.5.0", "name": "tailwind-merge", - "version": "3.6.0", - "purl": "pkg:npm/tailwind-merge@3.6.0", + "version": "3.5.0", + "purl": "pkg:npm/tailwind-merge@3.5.0", "description": "Merge Tailwind CSS classes without style conflicts", "licenses": [ { @@ -4189,7 +1484,7 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/tailwind-merge@3.6.0" + "value": "licenses/tailwind-merge@3.5.0" }, { "name": "local:sourcePackageDir", @@ -4234,10 +1529,10 @@ }, { "type": "library", - "bomRef": "pkg:npm/tailwindcss@4.3.2", + "bomRef": "pkg:npm/tailwindcss@4.2.4", "name": "tailwindcss", - "version": "4.3.2", - "purl": "pkg:npm/tailwindcss@4.3.2", + "version": "4.2.4", + "purl": "pkg:npm/tailwindcss@4.2.4", "description": "A utility-first CSS framework for rapidly building custom user interfaces.", "licenses": [ { @@ -4259,7 +1554,7 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/tailwindcss@4.3.2" + "value": "licenses/tailwindcss@4.2.4" }, { "name": "local:sourcePackageDir", @@ -4298,73 +1593,7 @@ }, { "name": "local:sourcePackageDir", - "value": "packages/mtp/node_modules/tauri-plugin-app-events-api" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/tiny-invariant@1.3.3", - "name": "tiny-invariant", - "version": "1.3.3", - "purl": "pkg:npm/tiny-invariant@1.3.3", - "description": "A tiny invariant function", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "vcs", - "url": "https://github.com/alexreardon/tiny-invariant.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/tiny-invariant@1.3.3" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/tiny-invariant" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/tslib@2.8.1", - "name": "tslib", - "version": "2.8.1", - "purl": "pkg:npm/tslib@2.8.1", - "description": "Runtime library for TypeScript helper functions", - "licenses": [ - { - "license": { - "id": "0BSD" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://www.typescriptlang.org/" - }, - { - "type": "vcs", - "url": "https://github.com/Microsoft/tslib.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/tslib@2.8.1" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/tslib" + "value": "apps/web/node_modules/tauri-plugin-app-events-api" } ] }, @@ -4434,16 +1663,16 @@ }, { "name": "local:sourcePackageDir", - "value": "apps/electron/node_modules/typescript" + "value": "apps/web/node_modules/typescript" } ] }, { "type": "library", - "bomRef": "pkg:npm/typescript-eslint@8.62.1", + "bomRef": "pkg:npm/typescript-eslint@8.59.1", "name": "typescript-eslint", - "version": "8.62.1", - "purl": "pkg:npm/typescript-eslint@8.62.1", + "version": "8.59.1", + "purl": "pkg:npm/typescript-eslint@8.59.1", "description": "Tooling which enables you to use TypeScript with ESLint", "licenses": [ { @@ -4465,7 +1694,7 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/typescript-eslint@8.62.1" + "value": "licenses/typescript-eslint@8.59.1" }, { "name": "local:sourcePackageDir", @@ -4475,177 +1704,10 @@ }, { "type": "library", - "bomRef": "pkg:npm/use-callback-ref@1.3.3", - "name": "use-callback-ref", - "version": "1.3.3", - "purl": "pkg:npm/use-callback-ref@1.3.3", - "description": "The same useRef, but with callback", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "vcs", - "url": "https://github.com/theKashey/use-callback-ref/" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/use-callback-ref@1.3.3" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/use-callback-ref" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/use-sidecar@1.1.3", - "name": "use-sidecar", - "version": "1.1.3", - "purl": "pkg:npm/use-sidecar@1.1.3", - "description": "Sidecar code splitting utils", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://github.com/theKashey/use-sidecar" - }, - { - "type": "vcs", - "url": "https://github.com/theKashey/use-sidecar" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/use-sidecar@1.1.3" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/use-sidecar" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/use-sync-external-store@1.6.0", - "name": "use-sync-external-store", - "version": "1.6.0", - "purl": "pkg:npm/use-sync-external-store@1.6.0", - "description": "Backwards compatible shim for React's useSyncExternalStore. Works with any React that supports hooks.", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "vcs", - "url": "https://github.com/facebook/react.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/use-sync-external-store@1.6.0" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/use-sync-external-store" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/vaul@1.1.2", - "name": "vaul", - "version": "1.1.2", - "purl": "pkg:npm/vaul@1.1.2", - "description": "Drawer component for React.", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://vaul.emilkowal.ski/" - }, - { - "type": "vcs", - "url": "https://github.com/emilkowalski/vaul.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/vaul@1.1.2" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/vaul" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/victory-vendor@37.3.6", - "name": "victory-vendor", - "version": "37.3.6", - "purl": "pkg:npm/victory-vendor@37.3.6", - "description": "Vendored dependencies for Victory", - "licenses": [ - { - "license": { - "name": "MIT AND ISC" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://commerce.nearform.com/open-source/victory" - }, - { - "type": "vcs", - "url": "https://github.com/FormidableLabs/victory" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/victory-vendor@37.3.6" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/victory-vendor" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/vite@8.1.3", + "bomRef": "pkg:npm/vite@8.0.10", "name": "vite", - "version": "8.1.3", - "purl": "pkg:npm/vite@8.1.3", + "version": "8.0.10", + "purl": "pkg:npm/vite@8.0.10", "description": "Native-ESM powered web dev build tool", "licenses": [ { @@ -4667,7 +1729,7 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/vite@8.1.3" + "value": "licenses/vite@8.0.10" }, { "name": "local:sourcePackageDir", @@ -4677,45 +1739,10 @@ }, { "type": "library", - "bomRef": "pkg:npm/yargs@15.4.1", - "name": "yargs", - "version": "15.4.1", - "purl": "pkg:npm/yargs@15.4.1", - "description": "yargs the modern, pirate-themed, successor to optimist.", - "licenses": [ - { - "license": { - "id": "MIT" - } - } - ], - "externalReferences": [ - { - "type": "website", - "url": "https://yargs.js.org/" - }, - { - "type": "vcs", - "url": "https://github.com/yargs/yargs.git" - } - ], - "properties": [ - { - "name": "local:licenseFolder", - "value": "licenses/yargs@15.4.1" - }, - { - "name": "local:sourcePackageDir", - "value": "apps/web/node_modules/yargs" - } - ] - }, - { - "type": "library", - "bomRef": "pkg:npm/zod@4.4.3", + "bomRef": "pkg:npm/zod@4.4.2", "name": "zod", - "version": "4.4.3", - "purl": "pkg:npm/zod@4.4.3", + "version": "4.4.2", + "purl": "pkg:npm/zod@4.4.2", "description": "TypeScript-first schema declaration and validation library with static type inference", "licenses": [ { @@ -4737,7 +1764,7 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/zod@4.4.3" + "value": "licenses/zod@4.4.2" }, { "name": "local:sourcePackageDir", @@ -4747,10 +1774,10 @@ }, { "type": "library", - "bomRef": "pkg:npm/zustand@5.0.14", + "bomRef": "pkg:npm/zustand@5.0.12", "name": "zustand", - "version": "5.0.14", - "purl": "pkg:npm/zustand@5.0.14", + "version": "5.0.12", + "purl": "pkg:npm/zustand@5.0.12", "description": "🐻 Bear necessities for state management in React", "licenses": [ { @@ -4772,7 +1799,7 @@ "properties": [ { "name": "local:licenseFolder", - "value": "licenses/zustand@5.0.14" + "value": "licenses/zustand@5.0.12" }, { "name": "local:sourcePackageDir", diff --git a/licenses/scheduler@0.27.0/LICENSE b/licenses/scheduler@0.27.0/LICENSE deleted file mode 100644 index b93be90..0000000 --- a/licenses/scheduler@0.27.0/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) Meta Platforms, Inc. and affiliates. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/seroval-plugins@1.5.4/LICENSE b/licenses/seroval-plugins@1.5.4/LICENSE deleted file mode 100644 index 78c9813..0000000 --- a/licenses/seroval-plugins@1.5.4/LICENSE +++ /dev/null @@ -1,7 +0,0 @@ -MIT License Copyright (c) 2025 Alexis Munsayac - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/licenses/seroval@1.5.4/LICENSE b/licenses/seroval@1.5.4/LICENSE deleted file mode 100644 index 78c9813..0000000 --- a/licenses/seroval@1.5.4/LICENSE +++ /dev/null @@ -1,7 +0,0 @@ -MIT License Copyright (c) 2025 Alexis Munsayac - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/licenses/shadcn@4.12.0/LICENSE.md b/licenses/shadcn@4.6.0/LICENSE.md similarity index 100% rename from licenses/shadcn@4.12.0/LICENSE.md rename to licenses/shadcn@4.6.0/LICENSE.md diff --git a/licenses/tailwind-merge@3.6.0/LICENSE.md b/licenses/tailwind-merge@3.5.0/LICENSE.md similarity index 100% rename from licenses/tailwind-merge@3.6.0/LICENSE.md rename to licenses/tailwind-merge@3.5.0/LICENSE.md diff --git a/licenses/tailwindcss@4.3.2/LICENSE b/licenses/tailwindcss@4.2.4/LICENSE similarity index 100% rename from licenses/tailwindcss@4.3.2/LICENSE rename to licenses/tailwindcss@4.2.4/LICENSE diff --git a/licenses/third-party-credits.json b/licenses/third-party-credits.json index 6ad9b41..bf9eab8 100644 --- a/licenses/third-party-credits.json +++ b/licenses/third-party-credits.json @@ -1,57 +1,18 @@ { - "generatedAt": "2026-07-02T17:59:19.431Z", - "packageCount": 141, + "generatedAt": "2026-05-21T10:15:15.540Z", + "packageCount": 54, "packages": [ - { - "name": "@babel/runtime", - "version": "7.29.7", - "license": "MIT", - "homepage": "https://babel.dev/docs/en/next/babel-runtime", - "repository": "https://github.com/babel/babel.git", - "description": "babel's modular runtime helpers", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@babel_runtime@7.29.7", - "sourcePackageDir": "apps/web/node_modules/@babel/runtime" - }, - { - "name": "@base-ui/react", - "version": "1.6.0", - "license": "MIT", - "homepage": "https://base-ui.com", - "repository": "git+https://github.com/mui/base-ui.git", - "description": "Base UI is a library of headless ('unstyled') React components and low-level hooks. You gain complete control over your app's CSS and accessibility features.", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@base-ui_react@1.6.0", - "sourcePackageDir": "apps/web/node_modules/@base-ui/react" - }, - { - "name": "@base-ui/utils", - "version": "0.3.1", - "license": "MIT", - "homepage": null, - "repository": "git+https://github.com/mui/base-ui.git", - "description": "A collection of React utility functions for Base UI.", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@base-ui_utils@0.3.1", - "sourcePackageDir": "apps/web/node_modules/@base-ui/utils" - }, { "name": "@codemirror/commands", - "version": "6.10.4", + "version": "6.10.3", "license": "MIT", "homepage": null, - "repository": "git+https://code.haverbeke.berlin/codemirror/commands.git", + "repository": "git+https://github.com/codemirror/commands.git", "description": "Collection of editing commands for the CodeMirror code editor", "files": [ "LICENSE" ], - "licenseFolder": "licenses/@codemirror_commands@6.10.4", + "licenseFolder": "licenses/@codemirror_commands@6.10.3", "sourcePackageDir": "packages/markdown/node_modules/@codemirror/commands" }, { @@ -69,20 +30,20 @@ }, { "name": "@codemirror/state", - "version": "6.7.0", + "version": "6.6.0", "license": "MIT", "homepage": null, - "repository": "git+https://code.haverbeke.berlin/codemirror/state.git", + "repository": "git+https://github.com/codemirror/state.git", "description": "Editor state data structures for the CodeMirror code editor", "files": [ "LICENSE" ], - "licenseFolder": "licenses/@codemirror_state@6.7.0", + "licenseFolder": "licenses/@codemirror_state@6.6.0", "sourcePackageDir": "packages/markdown/node_modules/@codemirror/state" }, { "name": "@codemirror/view", - "version": "6.43.4", + "version": "6.41.1", "license": "MIT", "homepage": null, "repository": "git+https://code.haverbeke.berlin/codemirror/view.git", @@ -90,7 +51,7 @@ "files": [ "LICENSE" ], - "licenseFolder": "licenses/@codemirror_view@6.43.4", + "licenseFolder": "licenses/@codemirror_view@6.41.1", "sourcePackageDir": "packages/markdown/node_modules/@codemirror/view" }, { @@ -106,58 +67,6 @@ "licenseFolder": "licenses/@eslint_js@10.0.1", "sourcePackageDir": "apps/web/node_modules/@eslint/js" }, - { - "name": "@floating-ui/core", - "version": "1.7.5", - "license": "MIT", - "homepage": "https://floating-ui.com", - "repository": "https://github.com/floating-ui/floating-ui.git", - "description": "Positioning library for floating elements: tooltips, popovers, dropdowns, and more", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@floating-ui_core@1.7.5", - "sourcePackageDir": "apps/web/node_modules/@floating-ui/core" - }, - { - "name": "@floating-ui/dom", - "version": "1.7.6", - "license": "MIT", - "homepage": "https://floating-ui.com", - "repository": "https://github.com/floating-ui/floating-ui.git", - "description": "Floating UI for the web", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@floating-ui_dom@1.7.6", - "sourcePackageDir": "apps/web/node_modules/@floating-ui/dom" - }, - { - "name": "@floating-ui/react-dom", - "version": "2.1.8", - "license": "MIT", - "homepage": "https://floating-ui.com/docs/react-dom", - "repository": "https://github.com/floating-ui/floating-ui.git", - "description": "Floating UI for React DOM", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@floating-ui_react-dom@2.1.8", - "sourcePackageDir": "apps/web/node_modules/@floating-ui/react-dom" - }, - { - "name": "@floating-ui/utils", - "version": "0.2.11", - "license": "MIT", - "homepage": "https://floating-ui.com", - "repository": "https://github.com/floating-ui/floating-ui.git", - "description": "Utilities for Floating UI", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@floating-ui_utils@0.2.11", - "sourcePackageDir": "apps/web/node_modules/@floating-ui/utils" - }, { "name": "@fontsource-variable/inter", "version": "5.2.8", @@ -171,22 +80,9 @@ "licenseFolder": "licenses/@fontsource-variable_inter@5.2.8", "sourcePackageDir": "apps/web/node_modules/@fontsource-variable/inter" }, - { - "name": "@fontsource-variable/public-sans", - "version": "5.2.7", - "license": "OFL-1.1", - "homepage": "https://fontsource.org/fonts/public-sans", - "repository": "git+https://github.com/fontsource/font-files.git", - "description": "Self-host the Public Sans font in a neatly bundled NPM package.", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@fontsource-variable_public-sans@5.2.7", - "sourcePackageDir": "apps/web/node_modules/@fontsource-variable/public-sans" - }, { "name": "@livekit/components-react", - "version": "2.9.21", + "version": "2.9.20", "license": "Apache-2.0", "homepage": null, "repository": "https://github.com/livekit/components-js.git", @@ -194,7 +90,7 @@ "files": [ "LICENSE" ], - "licenseFolder": "licenses/@livekit_components-react@2.9.21", + "licenseFolder": "licenses/@livekit_components-react@2.9.20", "sourcePackageDir": "packages/call/node_modules/@livekit/components-react" }, { @@ -208,245 +104,11 @@ "LICENSE" ], "licenseFolder": "licenses/@noble_curves@2.2.0", - "sourcePackageDir": "packages/crypto/node_modules/@noble/curves" - }, - { - "name": "@noble/hashes", - "version": "2.2.0", - "license": "MIT", - "homepage": "https://paulmillr.com/noble/", - "repository": "git+https://github.com/paulmillr/noble-hashes.git", - "description": "Audited & minimal 0-dependency JS implementation of SHA, RIPEMD, BLAKE, HMAC, HKDF, PBKDF & Scrypt", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@noble_hashes@2.2.0", - "sourcePackageDir": "packages/crypto/node_modules/@noble/hashes" - }, - { - "name": "@radix-ui/primitive", - "version": "1.1.4", - "license": "MIT", - "homepage": "https://radix-ui.com/primitives", - "repository": "git+https://github.com/radix-ui/primitives.git", - "description": null, - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@radix-ui_primitive@1.1.4", - "sourcePackageDir": "apps/web/node_modules/@radix-ui/primitive" - }, - { - "name": "@radix-ui/react-compose-refs", - "version": "1.1.3", - "license": "MIT", - "homepage": "https://radix-ui.com/primitives", - "repository": "git+https://github.com/radix-ui/primitives.git", - "description": null, - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@radix-ui_react-compose-refs@1.1.3", - "sourcePackageDir": "apps/web/node_modules/@radix-ui/react-compose-refs" - }, - { - "name": "@radix-ui/react-context", - "version": "1.1.4", - "license": "MIT", - "homepage": "https://radix-ui.com/primitives", - "repository": "git+https://github.com/radix-ui/primitives.git", - "description": null, - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@radix-ui_react-context@1.1.4", - "sourcePackageDir": "apps/web/node_modules/@radix-ui/react-context" - }, - { - "name": "@radix-ui/react-dialog", - "version": "1.1.18", - "license": "MIT", - "homepage": "https://radix-ui.com/primitives", - "repository": "git+https://github.com/radix-ui/primitives.git", - "description": null, - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@radix-ui_react-dialog@1.1.18", - "sourcePackageDir": "apps/web/node_modules/@radix-ui/react-dialog" - }, - { - "name": "@radix-ui/react-dismissable-layer", - "version": "1.1.14", - "license": "MIT", - "homepage": "https://radix-ui.com/primitives", - "repository": "git+https://github.com/radix-ui/primitives.git", - "description": null, - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@radix-ui_react-dismissable-layer@1.1.14", - "sourcePackageDir": "apps/web/node_modules/@radix-ui/react-dismissable-layer" - }, - { - "name": "@radix-ui/react-focus-guards", - "version": "1.1.4", - "license": "MIT", - "homepage": "https://radix-ui.com/primitives", - "repository": "git+https://github.com/radix-ui/primitives.git", - "description": null, - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@radix-ui_react-focus-guards@1.1.4", - "sourcePackageDir": "apps/web/node_modules/@radix-ui/react-focus-guards" - }, - { - "name": "@radix-ui/react-focus-scope", - "version": "1.1.11", - "license": "MIT", - "homepage": "https://radix-ui.com/primitives", - "repository": "git+https://github.com/radix-ui/primitives.git", - "description": null, - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@radix-ui_react-focus-scope@1.1.11", - "sourcePackageDir": "apps/web/node_modules/@radix-ui/react-focus-scope" - }, - { - "name": "@radix-ui/react-id", - "version": "1.1.2", - "license": "MIT", - "homepage": "https://radix-ui.com/primitives", - "repository": "git+https://github.com/radix-ui/primitives.git", - "description": null, - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@radix-ui_react-id@1.1.2", - "sourcePackageDir": "apps/web/node_modules/@radix-ui/react-id" - }, - { - "name": "@radix-ui/react-portal", - "version": "1.1.13", - "license": "MIT", - "homepage": "https://radix-ui.com/primitives", - "repository": "git+https://github.com/radix-ui/primitives.git", - "description": null, - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@radix-ui_react-portal@1.1.13", - "sourcePackageDir": "apps/web/node_modules/@radix-ui/react-portal" - }, - { - "name": "@radix-ui/react-presence", - "version": "1.1.6", - "license": "MIT", - "homepage": "https://radix-ui.com/primitives", - "repository": "git+https://github.com/radix-ui/primitives.git", - "description": null, - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@radix-ui_react-presence@1.1.6", - "sourcePackageDir": "apps/web/node_modules/@radix-ui/react-presence" - }, - { - "name": "@radix-ui/react-primitive", - "version": "2.1.7", - "license": "MIT", - "homepage": "https://radix-ui.com/primitives", - "repository": "git+https://github.com/radix-ui/primitives.git", - "description": null, - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@radix-ui_react-primitive@2.1.7", - "sourcePackageDir": "apps/web/node_modules/@radix-ui/react-primitive" - }, - { - "name": "@radix-ui/react-slot", - "version": "1.3.0", - "license": "MIT", - "homepage": "https://radix-ui.com/primitives", - "repository": "git+https://github.com/radix-ui/primitives.git", - "description": null, - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@radix-ui_react-slot@1.3.0", - "sourcePackageDir": "apps/web/node_modules/@radix-ui/react-slot" - }, - { - "name": "@radix-ui/react-use-callback-ref", - "version": "1.1.2", - "license": "MIT", - "homepage": "https://radix-ui.com/primitives", - "repository": "git+https://github.com/radix-ui/primitives.git", - "description": null, - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@radix-ui_react-use-callback-ref@1.1.2", - "sourcePackageDir": "apps/web/node_modules/@radix-ui/react-use-callback-ref" - }, - { - "name": "@radix-ui/react-use-controllable-state", - "version": "1.2.3", - "license": "MIT", - "homepage": "https://radix-ui.com/primitives", - "repository": "git+https://github.com/radix-ui/primitives.git", - "description": null, - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@radix-ui_react-use-controllable-state@1.2.3", - "sourcePackageDir": "apps/web/node_modules/@radix-ui/react-use-controllable-state" - }, - { - "name": "@radix-ui/react-use-effect-event", - "version": "0.0.2", - "license": "MIT", - "homepage": "https://radix-ui.com/primitives", - "repository": "git+https://github.com/radix-ui/primitives.git", - "description": null, - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@radix-ui_react-use-effect-event@0.0.2", - "sourcePackageDir": "apps/web/node_modules/@radix-ui/react-use-effect-event" - }, - { - "name": "@radix-ui/react-use-layout-effect", - "version": "1.1.2", - "license": "MIT", - "homepage": "https://radix-ui.com/primitives", - "repository": "git+https://github.com/radix-ui/primitives.git", - "description": null, - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@radix-ui_react-use-layout-effect@1.1.2", - "sourcePackageDir": "apps/web/node_modules/@radix-ui/react-use-layout-effect" - }, - { - "name": "@reduxjs/toolkit", - "version": "2.12.0", - "license": "MIT", - "homepage": "https://redux-toolkit.js.org", - "repository": "git+https://github.com/reduxjs/redux-toolkit.git", - "description": "The official, opinionated, batteries-included toolset for efficient Redux development", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@reduxjs_toolkit@2.12.0", - "sourcePackageDir": "apps/web/node_modules/@reduxjs/toolkit" + "sourcePackageDir": "apps/web/node_modules/@noble/curves" }, { "name": "@tailwindcss/vite", - "version": "4.3.2", + "version": "4.2.4", "license": "MIT", "homepage": "https://tailwindcss.com", "repository": "https://github.com/tailwindlabs/tailwindcss.git", @@ -454,64 +116,12 @@ "files": [ "LICENSE" ], - "licenseFolder": "licenses/@tailwindcss_vite@4.3.2", + "licenseFolder": "licenses/@tailwindcss_vite@4.2.4", "sourcePackageDir": "apps/web/node_modules/@tailwindcss/vite" }, - { - "name": "@tanstack/devtools-event-client", - "version": "0.3.5", - "license": "MIT", - "homepage": "https://tanstack.com/devtools", - "repository": "https://github.com/TanStack/devtools.git", - "description": "TanStack Event Client is a lightweight event client for TanStack Devtools event bus.", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@tanstack_devtools-event-client@0.3.5", - "sourcePackageDir": "apps/web/node_modules/@tanstack/devtools-event-client" - }, - { - "name": "@tanstack/history", - "version": "1.162.0", - "license": "MIT", - "homepage": "https://tanstack.com/router", - "repository": "git+https://github.com/TanStack/router.git", - "description": "Modern and scalable routing for React applications", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@tanstack_history@1.162.0", - "sourcePackageDir": "apps/web/node_modules/@tanstack/history" - }, - { - "name": "@tanstack/pacer", - "version": "0.21.1", - "license": "MIT", - "homepage": "https://tanstack.com/pacer", - "repository": "git+https://github.com/TanStack/pacer.git", - "description": "Utilities for debouncing, throttling, rate-limiting, queuing, and more.", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@tanstack_pacer@0.21.1", - "sourcePackageDir": "packages/chat/node_modules/@tanstack/pacer" - }, - { - "name": "@tanstack/query-core", - "version": "5.101.2", - "license": "MIT", - "homepage": "https://tanstack.com/query", - "repository": "git+https://github.com/TanStack/query.git", - "description": "The framework agnostic core that powers TanStack Query", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@tanstack_query-core@5.101.2", - "sourcePackageDir": "apps/web/node_modules/@tanstack/query-core" - }, { "name": "@tanstack/react-query", - "version": "5.101.2", + "version": "5.100.8", "license": "MIT", "homepage": "https://tanstack.com/query", "repository": "git+https://github.com/TanStack/query.git", @@ -519,12 +129,12 @@ "files": [ "LICENSE" ], - "licenseFolder": "licenses/@tanstack_react-query@5.101.2", - "sourcePackageDir": "packages/chat/node_modules/@tanstack/react-query" + "licenseFolder": "licenses/@tanstack_react-query@5.100.8", + "sourcePackageDir": "packages/call/node_modules/@tanstack/react-query" }, { "name": "@tanstack/react-router", - "version": "1.170.17", + "version": "1.169.1", "license": "MIT", "homepage": "https://tanstack.com/router", "repository": "git+https://github.com/TanStack/router.git", @@ -532,25 +142,12 @@ "files": [ "LICENSE" ], - "licenseFolder": "licenses/@tanstack_react-router@1.170.17", + "licenseFolder": "licenses/@tanstack_react-router@1.169.1", "sourcePackageDir": "apps/web/node_modules/@tanstack/react-router" }, - { - "name": "@tanstack/react-store", - "version": "0.9.3", - "license": "MIT", - "homepage": "https://tanstack.com/store", - "repository": "https://github.com/TanStack/store.git", - "description": "Framework agnostic type-safe store w/ reactive framework adapters", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@tanstack_react-store@0.9.3", - "sourcePackageDir": "apps/web/node_modules/@tanstack/react-store" - }, { "name": "@tanstack/react-virtual", - "version": "3.14.5", + "version": "3.13.24", "license": "MIT", "homepage": "https://tanstack.com/virtual", "repository": "git+https://github.com/TanStack/virtual.git", @@ -558,51 +155,12 @@ "files": [ "LICENSE" ], - "licenseFolder": "licenses/@tanstack_react-virtual@3.14.5", + "licenseFolder": "licenses/@tanstack_react-virtual@3.13.24", "sourcePackageDir": "apps/web/node_modules/@tanstack/react-virtual" }, - { - "name": "@tanstack/router-core", - "version": "1.171.14", - "license": "MIT", - "homepage": "https://tanstack.com/router", - "repository": "git+https://github.com/TanStack/router.git", - "description": "Modern and scalable routing for React applications", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@tanstack_router-core@1.171.14", - "sourcePackageDir": "apps/web/node_modules/@tanstack/router-core" - }, - { - "name": "@tanstack/store", - "version": "0.9.3", - "license": "MIT", - "homepage": "https://tanstack.com/store", - "repository": "git+https://github.com/TanStack/store.git", - "description": "Framework agnostic type-safe store w/ reactive framework adapters", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@tanstack_store@0.9.3", - "sourcePackageDir": "apps/web/node_modules/@tanstack/store" - }, - { - "name": "@tanstack/virtual-core", - "version": "3.17.3", - "license": "MIT", - "homepage": "https://tanstack.com/virtual", - "repository": "git+https://github.com/TanStack/virtual.git", - "description": "Headless UI for virtualizing scrollable elements in TS/JS + Frameworks", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/@tanstack_virtual-core@3.17.3", - "sourcePackageDir": "apps/web/node_modules/@tanstack/virtual-core" - }, { "name": "@tauri-apps/api", - "version": "2.11.1", + "version": "2.11.0", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/tauri-apps/tauri#readme", "repository": "git+https://github.com/tauri-apps/tauri.git", @@ -611,12 +169,12 @@ "LICENSE_MIT", "LICENSE_APACHE-2.0" ], - "licenseFolder": "licenses/@tauri-apps_api@2.11.1", + "licenseFolder": "licenses/@tauri-apps_api@2.11.0", "sourcePackageDir": "apps/tauri/node_modules/@tauri-apps/api" }, { "name": "@tauri-apps/cli", - "version": "2.11.4", + "version": "2.11.0", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/tauri-apps/tauri#readme", "repository": "git+https://github.com/tauri-apps/tauri.git", @@ -625,12 +183,12 @@ "LICENSE_MIT", "LICENSE_APACHE-2.0" ], - "licenseFolder": "licenses/@tauri-apps_cli@2.11.4", + "licenseFolder": "licenses/@tauri-apps_cli@2.11.0", "sourcePackageDir": "apps/tauri/node_modules/@tauri-apps/cli" }, { "name": "@tauri-apps/plugin-barcode-scanner", - "version": "2.4.5", + "version": "2.4.4", "license": "MIT OR Apache-2.0", "homepage": null, "repository": "https://github.com/tauri-apps/plugins-workspace", @@ -638,7 +196,7 @@ "files": [ "LICENSE.spdx" ], - "licenseFolder": "licenses/@tauri-apps_plugin-barcode-scanner@2.4.5", + "licenseFolder": "licenses/@tauri-apps_plugin-barcode-scanner@2.4.4", "sourcePackageDir": "apps/tauri/node_modules/@tauri-apps/plugin-barcode-scanner" }, { @@ -655,45 +213,45 @@ "sourcePackageDir": "apps/tauri/node_modules/@tauri-apps/plugin-deep-link" }, { - "name": "@tauri-apps/plugin-log", - "version": "2.8.0", + "name": "@tauri-apps/plugin-opener", + "version": "2.5.4", "license": "MIT OR Apache-2.0", "homepage": null, "repository": "https://github.com/tauri-apps/plugins-workspace", - "description": "Configurable logging for your Tauri app.", + "description": "Open files and URLs using their default application.", "files": [ "LICENSE.spdx" ], - "licenseFolder": "licenses/@tauri-apps_plugin-log@2.8.0", - "sourcePackageDir": "apps/tauri/node_modules/@tauri-apps/plugin-log" + "licenseFolder": "licenses/@tauri-apps_plugin-opener@2.5.4", + "sourcePackageDir": "apps/tauri/node_modules/@tauri-apps/plugin-opener" }, { - "name": "@tauri-apps/plugin-notification", - "version": "2.3.3", - "license": "MIT OR Apache-2.0", + "name": "@tensamin/ttp-core", + "version": "0.0.19", + "license": "UNKNOWN", "homepage": null, - "repository": "https://github.com/tauri-apps/plugins-workspace", + "repository": null, "description": null, "files": [ - "LICENSE.spdx" + "LICENSE" ], - "licenseFolder": "licenses/@tauri-apps_plugin-notification@2.3.3", - "sourcePackageDir": "apps/tauri/node_modules/@tauri-apps/plugin-notification" + "licenseFolder": "licenses/@tensamin_ttp-core@0.0.19", + "sourcePackageDir": "packages/ttp/node_modules/@tensamin/ttp-core" }, { "name": "@tensamin/ui", - "version": "0.0.39", + "version": "0.0.34", "license": "UNKNOWN", "homepage": null, "repository": null, "description": null, "files": [], - "licenseFolder": "licenses/@tensamin_ui@0.0.39", + "licenseFolder": "licenses/@tensamin_ui@0.0.34", "sourcePackageDir": "apps/tauri/node_modules/@tensamin/ui" }, { "name": "@types/node", - "version": "25.9.4", + "version": "25.6.0", "license": "MIT", "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node", "repository": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", @@ -701,8 +259,8 @@ "files": [ "LICENSE" ], - "licenseFolder": "licenses/@types_node@25.9.4", - "sourcePackageDir": "apps/electron/node_modules/@types/node" + "licenseFolder": "licenses/@types_node@25.6.0", + "sourcePackageDir": "node_modules/@types/node" }, { "name": "@types/qrcode", @@ -719,7 +277,7 @@ }, { "name": "@types/react", - "version": "19.2.17", + "version": "19.2.14", "license": "MIT", "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react", "repository": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", @@ -727,7 +285,7 @@ "files": [ "LICENSE" ], - "licenseFolder": "licenses/@types_react@19.2.17", + "licenseFolder": "licenses/@types_react@19.2.14", "sourcePackageDir": "apps/web/node_modules/@types/react" }, { @@ -745,7 +303,7 @@ }, { "name": "@typescript-eslint/parser", - "version": "8.62.1", + "version": "8.59.1", "license": "MIT", "homepage": "https://typescript-eslint.io/packages/parser", "repository": "https://github.com/typescript-eslint/typescript-eslint.git", @@ -753,12 +311,12 @@ "files": [ "LICENSE" ], - "licenseFolder": "licenses/@typescript-eslint_parser@8.62.1", + "licenseFolder": "licenses/@typescript-eslint_parser@8.59.1", "sourcePackageDir": "node_modules/@typescript-eslint/parser" }, { "name": "@vitejs/plugin-react", - "version": "6.0.3", + "version": "6.0.1", "license": "MIT", "homepage": "https://github.com/vitejs/vite-plugin-react/tree/main/packages/plugin-react#readme", "repository": "git+https://github.com/vitejs/vite-plugin-react.git", @@ -766,22 +324,9 @@ "files": [ "LICENSE" ], - "licenseFolder": "licenses/@vitejs_plugin-react@6.0.3", + "licenseFolder": "licenses/@vitejs_plugin-react@6.0.1", "sourcePackageDir": "apps/web/node_modules/@vitejs/plugin-react" }, - { - "name": "aria-hidden", - "version": "1.2.6", - "license": "MIT", - "homepage": "https://github.com/theKashey/aria-hidden#readme", - "repository": "git+https://github.com/theKashey/aria-hidden.git", - "description": "Cast aria-hidden to everything, except...", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/aria-hidden@1.2.6", - "sourcePackageDir": "apps/web/node_modules/aria-hidden" - }, { "name": "class-variance-authority", "version": "0.7.1", @@ -808,19 +353,6 @@ "licenseFolder": "licenses/clsx@2.1.1", "sourcePackageDir": "apps/web/node_modules/clsx" }, - { - "name": "cmdk", - "version": "1.1.1", - "license": "MIT", - "homepage": "https://github.com/pacocoursey/cmdk#readme", - "repository": "git+https://github.com/pacocoursey/cmdk.git", - "description": null, - "files": [ - "LICENSE.md" - ], - "licenseFolder": "licenses/cmdk@1.1.1", - "sourcePackageDir": "apps/web/node_modules/cmdk" - }, { "name": "comlink", "version": "4.4.2", @@ -832,193 +364,11 @@ "LICENSE" ], "licenseFolder": "licenses/comlink@4.4.2", - "sourcePackageDir": "packages/crypto/node_modules/comlink" - }, - { - "name": "cookie-es", - "version": "3.1.1", - "license": "MIT", - "homepage": null, - "repository": "unjs/cookie-es", - "description": null, - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/cookie-es@3.1.1", - "sourcePackageDir": "apps/web/node_modules/cookie-es" - }, - { - "name": "d3-array", - "version": "3.2.4", - "license": "ISC", - "homepage": "https://d3js.org/d3-array/", - "repository": "https://github.com/d3/d3-array.git", - "description": "Array manipulation, ordering, searching, summarizing, etc.", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/d3-array@3.2.4", - "sourcePackageDir": "apps/web/node_modules/d3-array" - }, - { - "name": "d3-color", - "version": "3.1.0", - "license": "ISC", - "homepage": "https://d3js.org/d3-color/", - "repository": "https://github.com/d3/d3-color.git", - "description": "Color spaces! RGB, HSL, Cubehelix, Lab and HCL (Lch).", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/d3-color@3.1.0", - "sourcePackageDir": "apps/web/node_modules/d3-color" - }, - { - "name": "d3-ease", - "version": "3.0.1", - "license": "BSD-3-Clause", - "homepage": "https://d3js.org/d3-ease/", - "repository": "https://github.com/d3/d3-ease.git", - "description": "Easing functions for smooth animation.", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/d3-ease@3.0.1", - "sourcePackageDir": "apps/web/node_modules/d3-ease" - }, - { - "name": "d3-format", - "version": "3.1.2", - "license": "ISC", - "homepage": "https://d3js.org/d3-format/", - "repository": "https://github.com/d3/d3-format.git", - "description": "Format numbers for human consumption.", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/d3-format@3.1.2", - "sourcePackageDir": "apps/web/node_modules/d3-format" - }, - { - "name": "d3-interpolate", - "version": "3.0.1", - "license": "ISC", - "homepage": "https://d3js.org/d3-interpolate/", - "repository": "https://github.com/d3/d3-interpolate.git", - "description": "Interpolate numbers, colors, strings, arrays, objects, whatever!", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/d3-interpolate@3.0.1", - "sourcePackageDir": "apps/web/node_modules/d3-interpolate" - }, - { - "name": "d3-path", - "version": "3.1.0", - "license": "ISC", - "homepage": "https://d3js.org/d3-path/", - "repository": "https://github.com/d3/d3-path.git", - "description": "Serialize Canvas path commands to SVG.", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/d3-path@3.1.0", - "sourcePackageDir": "apps/web/node_modules/d3-path" - }, - { - "name": "d3-scale", - "version": "4.0.2", - "license": "ISC", - "homepage": "https://d3js.org/d3-scale/", - "repository": "https://github.com/d3/d3-scale.git", - "description": "Encodings that map abstract data to visual representation.", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/d3-scale@4.0.2", - "sourcePackageDir": "apps/web/node_modules/d3-scale" - }, - { - "name": "d3-shape", - "version": "3.2.0", - "license": "ISC", - "homepage": "https://d3js.org/d3-shape/", - "repository": "https://github.com/d3/d3-shape.git", - "description": "Graphical primitives for visualization, such as lines and areas.", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/d3-shape@3.2.0", - "sourcePackageDir": "apps/web/node_modules/d3-shape" - }, - { - "name": "d3-time", - "version": "3.1.0", - "license": "ISC", - "homepage": "https://d3js.org/d3-time/", - "repository": "https://github.com/d3/d3-time.git", - "description": "A calculator for humanity’s peculiar conventions of time.", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/d3-time@3.1.0", - "sourcePackageDir": "apps/web/node_modules/d3-time" - }, - { - "name": "d3-time-format", - "version": "4.1.0", - "license": "ISC", - "homepage": "https://d3js.org/d3-time-format/", - "repository": "https://github.com/d3/d3-time-format.git", - "description": "A JavaScript time formatter and parser inspired by strftime and strptime.", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/d3-time-format@4.1.0", - "sourcePackageDir": "apps/web/node_modules/d3-time-format" - }, - { - "name": "d3-timer", - "version": "3.0.1", - "license": "ISC", - "homepage": "https://d3js.org/d3-timer/", - "repository": "https://github.com/d3/d3-timer.git", - "description": "An efficient queue capable of managing thousands of concurrent animations.", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/d3-timer@3.0.1", - "sourcePackageDir": "apps/web/node_modules/d3-timer" - }, - { - "name": "date-fns", - "version": "4.4.0", - "license": "MIT", - "homepage": null, - "repository": "https://github.com/date-fns/date-fns", - "description": "Modern JavaScript date utility library", - "files": [ - "LICENSE.md" - ], - "licenseFolder": "licenses/date-fns@4.4.0", - "sourcePackageDir": "apps/web/node_modules/date-fns" - }, - { - "name": "decimal.js-light", - "version": "2.5.1", - "license": "MIT", - "homepage": null, - "repository": "https://github.com/MikeMcl/decimal.js-light.git", - "description": "An arbitrary-precision Decimal type for JavaScript.", - "files": [ - "LICENCE.md" - ], - "licenseFolder": "licenses/decimal.js-light@2.5.1", - "sourcePackageDir": "apps/web/node_modules/decimal.js-light" + "sourcePackageDir": "apps/web/node_modules/comlink" }, { "name": "deepfilternet3-noise-filter", - "version": "1.3.0", + "version": "1.2.1", "license": "(Apache-2.0 OR MIT)", "homepage": "https://github.com/mezonai/mezon-noise-suppression#readme", "repository": "git+https://github.com/mezonai/mezon-noise-suppression.git", @@ -1027,107 +377,9 @@ "LICENSE-APACHE", "LICENSE-MIT" ], - "licenseFolder": "licenses/deepfilternet3-noise-filter@1.3.0", + "licenseFolder": "licenses/deepfilternet3-noise-filter@1.2.1", "sourcePackageDir": "packages/call/node_modules/deepfilternet3-noise-filter" }, - { - "name": "detect-node-es", - "version": "1.1.0", - "license": "MIT", - "homepage": "https://github.com/thekashey/detect-node", - "repository": "https://github.com/thekashey/detect-node", - "description": "Detect Node.JS (as opposite to browser environment). ESM modification", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/detect-node-es@1.1.0", - "sourcePackageDir": "apps/web/node_modules/detect-node-es" - }, - { - "name": "dijkstrajs", - "version": "1.0.3", - "license": "MIT", - "homepage": "https://github.com/tcort/dijkstrajs", - "repository": "git://github.com/tcort/dijkstrajs", - "description": "A simple JavaScript implementation of Dijkstra's single-source shortest-paths algorithm.", - "files": [ - "LICENSE.md" - ], - "licenseFolder": "licenses/dijkstrajs@1.0.3", - "sourcePackageDir": "apps/web/node_modules/dijkstrajs" - }, - { - "name": "electron", - "version": "39.8.10", - "license": "MIT", - "homepage": null, - "repository": "https://github.com/electron/electron", - "description": "Build cross platform desktop apps with JavaScript, HTML, and CSS", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/electron@39.8.10", - "sourcePackageDir": "apps/electron/node_modules/electron" - }, - { - "name": "electron-builder", - "version": "26.15.3", - "license": "MIT", - "homepage": "https://github.com/electron-userland/electron-builder", - "repository": "git+https://github.com/electron-userland/electron-builder.git", - "description": "A complete solution to package and build a ready for distribution Electron app for MacOS, Windows and Linux with “auto update” support out of the box", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/electron-builder@26.15.3", - "sourcePackageDir": "apps/electron/node_modules/electron-builder" - }, - { - "name": "embla-carousel", - "version": "8.6.0", - "license": "MIT", - "homepage": "https://www.embla-carousel.com", - "repository": "git+https://github.com/davidjerleke/embla-carousel", - "description": "A lightweight carousel library with fluid motion and great swipe precision", - "files": [], - "licenseFolder": "licenses/embla-carousel@8.6.0", - "sourcePackageDir": "apps/web/node_modules/embla-carousel" - }, - { - "name": "embla-carousel-react", - "version": "8.6.0", - "license": "MIT", - "homepage": "https://www.embla-carousel.com", - "repository": "git+https://github.com/davidjerleke/embla-carousel", - "description": "A lightweight carousel library with fluid motion and great swipe precision", - "files": [], - "licenseFolder": "licenses/embla-carousel-react@8.6.0", - "sourcePackageDir": "apps/web/node_modules/embla-carousel-react" - }, - { - "name": "embla-carousel-reactive-utils", - "version": "8.6.0", - "license": "MIT", - "homepage": "https://www.embla-carousel.com", - "repository": "git+https://github.com/davidjerleke/embla-carousel", - "description": "Reactive utilities for Embla Carousel", - "files": [], - "licenseFolder": "licenses/embla-carousel-reactive-utils@8.6.0", - "sourcePackageDir": "apps/web/node_modules/embla-carousel-reactive-utils" - }, - { - "name": "es-toolkit", - "version": "1.49.0", - "license": "MIT", - "homepage": "https://es-toolkit.dev", - "repository": "https://github.com/toss/es-toolkit.git", - "description": "A state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/es-toolkit@1.49.0", - "sourcePackageDir": "apps/web/node_modules/es-toolkit" - }, { "name": "esbuild", "version": "0.25.12", @@ -1139,11 +391,11 @@ "LICENSE.md" ], "licenseFolder": "licenses/esbuild@0.25.12", - "sourcePackageDir": "apps/electron/node_modules/esbuild" + "sourcePackageDir": "apps/web/node_modules/esbuild" }, { "name": "eslint", - "version": "10.6.0", + "version": "10.3.0", "license": "MIT", "homepage": "https://eslint.org", "repository": "eslint/eslint", @@ -1151,7 +403,7 @@ "files": [ "LICENSE" ], - "licenseFolder": "licenses/eslint@10.6.0", + "licenseFolder": "licenses/eslint@10.3.0", "sourcePackageDir": "apps/web/node_modules/eslint" }, { @@ -1168,45 +420,21 @@ "sourcePackageDir": "node_modules/eslint-plugin-react-hooks" }, { - "name": "eventemitter3", - "version": "5.0.4", + "name": "framer-motion", + "version": "12.38.0", "license": "MIT", "homepage": null, - "repository": "git://github.com/primus/eventemitter3.git", - "description": "EventEmitter3 focuses on performance while maintaining a Node.js AND browser compatible interface.", + "repository": "https://github.com/motiondivision/motion/", + "description": "A simple and powerful JavaScript animation library", "files": [ - "LICENSE" + "LICENSE.md" ], - "licenseFolder": "licenses/eventemitter3@5.0.4", - "sourcePackageDir": "apps/web/node_modules/eventemitter3" - }, - { - "name": "fallow", - "version": "2.104.0", - "license": "MIT", - "homepage": "https://docs.fallow.tools", - "repository": "git+https://github.com/fallow-rs/fallow.git", - "description": "Deterministic codebase intelligence for TypeScript and JavaScript. Quality, risk, architecture, dependencies, duplication, and safe cleanup evidence for humans, CI, and agents. Optional runtime intelligence layer (Fallow Runtime) adds production execution evidence. Rust-native, sub-second, zero-config framework support.", - "files": [], - "licenseFolder": "licenses/fallow@2.104.0", - "sourcePackageDir": "node_modules/fallow" - }, - { - "name": "get-nonce", - "version": "1.0.1", - "license": "MIT", - "homepage": "https://github.com/theKashey/get-nonce", - "repository": "git@github.com:theKashey/get-nonce.git", - "description": "returns nonce", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/get-nonce@1.0.1", - "sourcePackageDir": "apps/web/node_modules/get-nonce" + "licenseFolder": "licenses/framer-motion@12.38.0", + "sourcePackageDir": "apps/web/node_modules/framer-motion" }, { "name": "globals", - "version": "17.7.0", + "version": "17.6.0", "license": "MIT", "homepage": null, "repository": "sindresorhus/globals", @@ -1214,46 +442,9 @@ "files": [ "license" ], - "licenseFolder": "licenses/globals@17.7.0", + "licenseFolder": "licenses/globals@17.6.0", "sourcePackageDir": "apps/web/node_modules/globals" }, - { - "name": "immer", - "version": "10.2.0", - "license": "MIT", - "homepage": "https://github.com/immerjs/immer#readme", - "repository": "https://github.com/immerjs/immer.git", - "description": "Create your next immutable state by mutating the current one", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/immer@10.2.0", - "sourcePackageDir": "apps/web/node_modules/immer" - }, - { - "name": "input-otp", - "version": "1.4.2", - "license": "MIT", - "homepage": "https://input-otp.rodz.dev/", - "repository": "git+https://github.com/guilhermerodz/input-otp.git", - "description": "One-time password input component for React.", - "files": [], - "licenseFolder": "licenses/input-otp@1.4.2", - "sourcePackageDir": "apps/web/node_modules/input-otp" - }, - { - "name": "internmap", - "version": "2.0.3", - "license": "ISC", - "homepage": "https://github.com/mbostock/internmap/", - "repository": "https://github.com/mbostock/internmap.git", - "description": "Map and Set with automatic key interning", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/internmap@2.0.3", - "sourcePackageDir": "apps/web/node_modules/internmap" - }, { "name": "jsonc-parser", "version": "3.3.1", @@ -1269,7 +460,7 @@ }, { "name": "livekit-client", - "version": "2.20.0", + "version": "2.18.8", "license": "Apache-2.0", "homepage": null, "repository": "git@github.com:livekit/client-sdk-js.git", @@ -1277,12 +468,12 @@ "files": [ "LICENSE" ], - "licenseFolder": "licenses/livekit-client@2.20.0", + "licenseFolder": "licenses/livekit-client@2.18.8", "sourcePackageDir": "packages/call/node_modules/livekit-client" }, { "name": "lucide-react", - "version": "1.23.0", + "version": "1.14.0", "license": "ISC", "homepage": "https://lucide.dev", "repository": "https://github.com/lucide-icons/lucide.git", @@ -1290,49 +481,12 @@ "files": [ "LICENSE" ], - "licenseFolder": "licenses/lucide-react@1.23.0", - "sourcePackageDir": "apps/web/node_modules/lucide-react" - }, - { - "name": "mtp", - "version": "0.1.0", - "license": "UNKNOWN", - "homepage": null, - "repository": null, - "description": "MTP TypeScript SDK", - "files": [], - "licenseFolder": "licenses/mtp@0.1.0", - "sourcePackageDir": "packages/mtp/node_modules/mtp" - }, - { - "name": "next-themes", - "version": "0.4.6", - "license": "MIT", - "homepage": null, - "repository": "https://github.com/pacocoursey/next-themes.git", - "description": null, - "files": [ - "license.md" - ], - "licenseFolder": "licenses/next-themes@0.4.6", - "sourcePackageDir": "apps/web/node_modules/next-themes" - }, - { - "name": "pngjs", - "version": "5.0.0", - "license": "MIT", - "homepage": "https://github.com/lukeapage/pngjs", - "repository": "git://github.com/lukeapage/pngjs.git", - "description": "PNG encoder/decoder in pure JS, supporting any bit size & interlace, async & sync with full test suite.", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/pngjs@5.0.0", - "sourcePackageDir": "apps/web/node_modules/pngjs" + "licenseFolder": "licenses/lucide-react@1.14.0", + "sourcePackageDir": "apps/tauri/node_modules/lucide-react" }, { "name": "prettier", - "version": "3.9.4", + "version": "3.8.3", "license": "MIT", "homepage": "https://prettier.io", "repository": "prettier/prettier", @@ -1340,7 +494,7 @@ "files": [ "LICENSE" ], - "licenseFolder": "licenses/prettier@3.9.4", + "licenseFolder": "licenses/prettier@3.8.3", "sourcePackageDir": "node_modules/prettier" }, { @@ -1358,7 +512,7 @@ }, { "name": "react", - "version": "19.2.7", + "version": "19.2.5", "license": "MIT", "homepage": "https://react.dev/", "repository": "https://github.com/facebook/react.git", @@ -1366,25 +520,12 @@ "files": [ "LICENSE" ], - "licenseFolder": "licenses/react@19.2.7", + "licenseFolder": "licenses/react@19.2.5", "sourcePackageDir": "apps/tauri/node_modules/react" }, - { - "name": "react-day-picker", - "version": "10.0.1", - "license": "MIT", - "homepage": "https://daypicker.dev", - "repository": "git+https://github.com/gpbl/react-day-picker.git", - "description": "Customizable Date Picker for React", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/react-day-picker@10.0.1", - "sourcePackageDir": "apps/web/node_modules/react-day-picker" - }, { "name": "react-dom", - "version": "19.2.7", + "version": "19.2.5", "license": "MIT", "homepage": "https://react.dev/", "repository": "https://github.com/facebook/react.git", @@ -1392,85 +533,9 @@ "files": [ "LICENSE" ], - "licenseFolder": "licenses/react-dom@19.2.7", + "licenseFolder": "licenses/react-dom@19.2.5", "sourcePackageDir": "apps/tauri/node_modules/react-dom" }, - { - "name": "react-is", - "version": "19.2.7", - "license": "MIT", - "homepage": "https://react.dev/", - "repository": "https://github.com/facebook/react.git", - "description": "Brand checking of React Elements.", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/react-is@19.2.7", - "sourcePackageDir": "apps/web/node_modules/react-is" - }, - { - "name": "react-redux", - "version": "9.3.0", - "license": "MIT", - "homepage": "https://github.com/reduxjs/react-redux", - "repository": "github:reduxjs/react-redux", - "description": "Official React bindings for Redux", - "files": [ - "LICENSE.md" - ], - "licenseFolder": "licenses/react-redux@9.3.0", - "sourcePackageDir": "apps/web/node_modules/react-redux" - }, - { - "name": "react-remove-scroll", - "version": "2.7.2", - "license": "MIT", - "homepage": null, - "repository": "https://github.com/theKashey/react-remove-scroll", - "description": "Disables scroll outside of `children` node.", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/react-remove-scroll@2.7.2", - "sourcePackageDir": "apps/web/node_modules/react-remove-scroll" - }, - { - "name": "react-remove-scroll-bar", - "version": "2.3.8", - "license": "MIT", - "homepage": null, - "repository": "https://github.com/theKashey/react-remove-scroll-bar", - "description": "Removes body scroll without content _shake_", - "files": [], - "licenseFolder": "licenses/react-remove-scroll-bar@2.3.8", - "sourcePackageDir": "apps/web/node_modules/react-remove-scroll-bar" - }, - { - "name": "react-resizable-panels", - "version": "4.12.0", - "license": "MIT", - "homepage": "https://react-resizable-panels.vercel.app/", - "repository": "https://github.com/bvaughn/react-resizable-panels.git", - "description": null, - "files": [ - "LICENSE.md" - ], - "licenseFolder": "licenses/react-resizable-panels@4.12.0", - "sourcePackageDir": "apps/web/node_modules/react-resizable-panels" - }, - { - "name": "react-style-singleton", - "version": "2.2.3", - "license": "MIT", - "homepage": "https://github.com/theKashey/react-style-singleton#readme", - "repository": "https://github.com/theKashey/react-style-singleton", - "description": "Just create a single stylesheet...", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/react-style-singleton@2.2.3", - "sourcePackageDir": "apps/web/node_modules/react-style-singleton" - }, { "name": "recharts", "version": "3.8.1", @@ -1482,89 +547,11 @@ "LICENSE" ], "licenseFolder": "licenses/recharts@3.8.1", - "sourcePackageDir": "apps/web/node_modules/recharts" - }, - { - "name": "redux", - "version": "5.0.1", - "license": "MIT", - "homepage": "http://redux.js.org", - "repository": "github:reduxjs/redux", - "description": "Predictable state container for JavaScript apps", - "files": [ - "LICENSE.md" - ], - "licenseFolder": "licenses/redux@5.0.1", - "sourcePackageDir": "apps/web/node_modules/redux" - }, - { - "name": "redux-thunk", - "version": "3.1.0", - "license": "MIT", - "homepage": "https://github.com/reduxjs/redux-thunk", - "repository": "github:reduxjs/redux-thunk", - "description": "Thunk middleware for Redux.", - "files": [ - "LICENSE.md" - ], - "licenseFolder": "licenses/redux-thunk@3.1.0", - "sourcePackageDir": "apps/web/node_modules/redux-thunk" - }, - { - "name": "reselect", - "version": "5.1.1", - "license": "MIT", - "homepage": null, - "repository": "https://github.com/reduxjs/reselect.git", - "description": "Selectors for Redux.", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/reselect@5.1.1", - "sourcePackageDir": "apps/web/node_modules/reselect" - }, - { - "name": "scheduler", - "version": "0.27.0", - "license": "MIT", - "homepage": "https://react.dev/", - "repository": "https://github.com/facebook/react.git", - "description": "Cooperative scheduler for the browser environment.", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/scheduler@0.27.0", - "sourcePackageDir": "apps/web/node_modules/scheduler" - }, - { - "name": "seroval", - "version": "1.5.4", - "license": "MIT", - "homepage": "https://github.com/lxsmnsyc/seroval/tree/main/packages/seroval", - "repository": "https://github.com/lxsmnsyc/seroval.git", - "description": "Stringify JS values", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/seroval@1.5.4", - "sourcePackageDir": "apps/web/node_modules/seroval" - }, - { - "name": "seroval-plugins", - "version": "1.5.4", - "license": "MIT", - "homepage": "https://github.com/lxsmnsyc/seroval/tree/main/packages/plugins", - "repository": "https://github.com/lxsmnsyc/seroval.git", - "description": "Stringify JS values", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/seroval-plugins@1.5.4", - "sourcePackageDir": "apps/web/node_modules/seroval-plugins" + "sourcePackageDir": "packages/call/node_modules/recharts" }, { "name": "shadcn", - "version": "4.12.0", + "version": "4.6.0", "license": "MIT", "homepage": null, "repository": "https://github.com/shadcn-ui/ui.git", @@ -1572,7 +559,7 @@ "files": [ "LICENSE.md" ], - "licenseFolder": "licenses/shadcn@4.12.0", + "licenseFolder": "licenses/shadcn@4.6.0", "sourcePackageDir": "apps/web/node_modules/shadcn" }, { @@ -1590,7 +577,7 @@ }, { "name": "tailwind-merge", - "version": "3.6.0", + "version": "3.5.0", "license": "MIT", "homepage": "https://github.com/dcastil/tailwind-merge", "repository": "https://github.com/dcastil/tailwind-merge.git", @@ -1598,7 +585,7 @@ "files": [ "LICENSE.md" ], - "licenseFolder": "licenses/tailwind-merge@3.6.0", + "licenseFolder": "licenses/tailwind-merge@3.5.0", "sourcePackageDir": "apps/web/node_modules/tailwind-merge" }, { @@ -1616,7 +603,7 @@ }, { "name": "tailwindcss", - "version": "4.3.2", + "version": "4.2.4", "license": "MIT", "homepage": "https://tailwindcss.com", "repository": "https://github.com/tailwindlabs/tailwindcss.git", @@ -1624,7 +611,7 @@ "files": [ "LICENSE" ], - "licenseFolder": "licenses/tailwindcss@4.3.2", + "licenseFolder": "licenses/tailwindcss@4.2.4", "sourcePackageDir": "apps/web/node_modules/tailwindcss" }, { @@ -1638,33 +625,7 @@ "LICENSE" ], "licenseFolder": "licenses/tauri-plugin-app-events-api@0.2.0", - "sourcePackageDir": "packages/mtp/node_modules/tauri-plugin-app-events-api" - }, - { - "name": "tiny-invariant", - "version": "1.3.3", - "license": "MIT", - "homepage": null, - "repository": "https://github.com/alexreardon/tiny-invariant.git", - "description": "A tiny invariant function", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/tiny-invariant@1.3.3", - "sourcePackageDir": "apps/web/node_modules/tiny-invariant" - }, - { - "name": "tslib", - "version": "2.8.1", - "license": "0BSD", - "homepage": "https://www.typescriptlang.org/", - "repository": "https://github.com/Microsoft/tslib.git", - "description": "Runtime library for TypeScript helper functions", - "files": [ - "LICENSE.txt" - ], - "licenseFolder": "licenses/tslib@2.8.1", - "sourcePackageDir": "apps/web/node_modules/tslib" + "sourcePackageDir": "apps/web/node_modules/tauri-plugin-app-events-api" }, { "name": "tw-animate-css", @@ -1690,11 +651,11 @@ "LICENSE.txt" ], "licenseFolder": "licenses/typescript@6.0.3", - "sourcePackageDir": "apps/electron/node_modules/typescript" + "sourcePackageDir": "apps/web/node_modules/typescript" }, { "name": "typescript-eslint", - "version": "8.62.1", + "version": "8.59.1", "license": "MIT", "homepage": "https://typescript-eslint.io/packages/typescript-eslint", "repository": "https://github.com/typescript-eslint/typescript-eslint.git", @@ -1702,75 +663,12 @@ "files": [ "LICENSE" ], - "licenseFolder": "licenses/typescript-eslint@8.62.1", + "licenseFolder": "licenses/typescript-eslint@8.59.1", "sourcePackageDir": "apps/web/node_modules/typescript-eslint" }, - { - "name": "use-callback-ref", - "version": "1.3.3", - "license": "MIT", - "homepage": null, - "repository": "https://github.com/theKashey/use-callback-ref/", - "description": "The same useRef, but with callback", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/use-callback-ref@1.3.3", - "sourcePackageDir": "apps/web/node_modules/use-callback-ref" - }, - { - "name": "use-sidecar", - "version": "1.1.3", - "license": "MIT", - "homepage": "https://github.com/theKashey/use-sidecar", - "repository": "https://github.com/theKashey/use-sidecar", - "description": "Sidecar code splitting utils", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/use-sidecar@1.1.3", - "sourcePackageDir": "apps/web/node_modules/use-sidecar" - }, - { - "name": "use-sync-external-store", - "version": "1.6.0", - "license": "MIT", - "homepage": null, - "repository": "https://github.com/facebook/react.git", - "description": "Backwards compatible shim for React's useSyncExternalStore. Works with any React that supports hooks.", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/use-sync-external-store@1.6.0", - "sourcePackageDir": "apps/web/node_modules/use-sync-external-store" - }, - { - "name": "vaul", - "version": "1.1.2", - "license": "MIT", - "homepage": "https://vaul.emilkowal.ski/", - "repository": "https://github.com/emilkowalski/vaul.git", - "description": "Drawer component for React.", - "files": [ - "LICENSE.md" - ], - "licenseFolder": "licenses/vaul@1.1.2", - "sourcePackageDir": "apps/web/node_modules/vaul" - }, - { - "name": "victory-vendor", - "version": "37.3.6", - "license": "MIT AND ISC", - "homepage": "https://commerce.nearform.com/open-source/victory", - "repository": "https://github.com/FormidableLabs/victory", - "description": "Vendored dependencies for Victory", - "files": [], - "licenseFolder": "licenses/victory-vendor@37.3.6", - "sourcePackageDir": "apps/web/node_modules/victory-vendor" - }, { "name": "vite", - "version": "8.1.3", + "version": "8.0.10", "license": "MIT", "homepage": "https://vite.dev", "repository": "git+https://github.com/vitejs/vite.git", @@ -1778,25 +676,12 @@ "files": [ "LICENSE.md" ], - "licenseFolder": "licenses/vite@8.1.3", + "licenseFolder": "licenses/vite@8.0.10", "sourcePackageDir": "apps/web/node_modules/vite" }, - { - "name": "yargs", - "version": "15.4.1", - "license": "MIT", - "homepage": "https://yargs.js.org/", - "repository": "https://github.com/yargs/yargs.git", - "description": "yargs the modern, pirate-themed, successor to optimist.", - "files": [ - "LICENSE" - ], - "licenseFolder": "licenses/yargs@15.4.1", - "sourcePackageDir": "apps/web/node_modules/yargs" - }, { "name": "zod", - "version": "4.4.3", + "version": "4.4.2", "license": "MIT", "homepage": "https://zod.dev", "repository": "git+https://github.com/colinhacks/zod.git", @@ -1804,12 +689,12 @@ "files": [ "LICENSE" ], - "licenseFolder": "licenses/zod@4.4.3", + "licenseFolder": "licenses/zod@4.4.2", "sourcePackageDir": "apps/web/node_modules/zod" }, { "name": "zustand", - "version": "5.0.14", + "version": "5.0.12", "license": "MIT", "homepage": "https://github.com/pmndrs/zustand", "repository": "git+https://github.com/pmndrs/zustand.git", @@ -1817,7 +702,7 @@ "files": [ "LICENSE" ], - "licenseFolder": "licenses/zustand@5.0.14", + "licenseFolder": "licenses/zustand@5.0.12", "sourcePackageDir": "packages/call/node_modules/zustand" } ] diff --git a/licenses/tiny-invariant@1.3.3/LICENSE b/licenses/tiny-invariant@1.3.3/LICENSE deleted file mode 100644 index f3dcb58..0000000 --- a/licenses/tiny-invariant@1.3.3/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019 Alexander Reardon - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/licenses/tslib@2.8.1/LICENSE.txt b/licenses/tslib@2.8.1/LICENSE.txt deleted file mode 100644 index bfe6430..0000000 --- a/licenses/tslib@2.8.1/LICENSE.txt +++ /dev/null @@ -1,12 +0,0 @@ -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. \ No newline at end of file diff --git a/licenses/typescript-eslint@8.62.1/LICENSE b/licenses/typescript-eslint@8.59.1/LICENSE similarity index 100% rename from licenses/typescript-eslint@8.62.1/LICENSE rename to licenses/typescript-eslint@8.59.1/LICENSE diff --git a/licenses/use-callback-ref@1.3.3/LICENSE b/licenses/use-callback-ref@1.3.3/LICENSE deleted file mode 100644 index a194c88..0000000 --- a/licenses/use-callback-ref@1.3.3/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Anton Korzunov - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/use-sidecar@1.1.3/LICENSE b/licenses/use-sidecar@1.1.3/LICENSE deleted file mode 100644 index a194c88..0000000 --- a/licenses/use-sidecar@1.1.3/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Anton Korzunov - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/use-sync-external-store@1.6.0/LICENSE b/licenses/use-sync-external-store@1.6.0/LICENSE deleted file mode 100644 index b93be90..0000000 --- a/licenses/use-sync-external-store@1.6.0/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) Meta Platforms, Inc. and affiliates. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/licenses/vaul@1.1.2/LICENSE.md b/licenses/vaul@1.1.2/LICENSE.md deleted file mode 100644 index 03986c1..0000000 --- a/licenses/vaul@1.1.2/LICENSE.md +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) 2023 Emil Kowalski - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/licenses/vite@8.1.3/LICENSE.md b/licenses/vite@8.0.10/LICENSE.md similarity index 97% rename from licenses/vite@8.1.3/LICENSE.md rename to licenses/vite@8.0.10/LICENSE.md index ccf4c21..0aabee5 100644 --- a/licenses/vite@8.1.3/LICENSE.md +++ b/licenses/vite@8.0.10/LICENSE.md @@ -369,34 +369,6 @@ Repository: https://github.com/vitest-dev/vitest --------------------------------------- -## @voidzero-dev/vite-task-client -License: MIT -Repository: https://github.com/voidzero-dev/vite-task - -> MIT License -> -> Copyright (c) 2026-present, VoidZero Inc. -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ---------------------------------------- - ## anymatch License: ISC By: Elan Shanker @@ -990,35 +962,6 @@ Repository: https://github.com/follow-redirects/follow-redirects --------------------------------------- -## fresh-import -License: MIT -By: sapphi-red -Repository: https://github.com/sapphi-red/fresh-import - -> MIT License -> -> Copyright (c) 2026 sapphi-red -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in all -> copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -> SOFTWARE. - ---------------------------------------- - ## generic-names License: MIT By: Alexey Litvinov @@ -1274,7 +1217,7 @@ Repository: https://github.com/lydell/js-tokens ## launch-editor, launch-editor-middleware License: MIT By: Evan You -Repositories: https://github.com/vitejs/launch-editor, https://github.com/vitejs/launch-editor +Repositories: https://github.com/yyx990803/launch-editor, https://github.com/yyx990803/launch-editor > The MIT License (MIT) > diff --git a/licenses/yargs@15.4.1/LICENSE b/licenses/yargs@15.4.1/LICENSE deleted file mode 100644 index b0145ca..0000000 --- a/licenses/yargs@15.4.1/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright 2010 James Halliday (mail@substack.net); Modified work Copyright 2014 Contributors (ben@npmjs.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/licenses/zod@4.4.3/LICENSE b/licenses/zod@4.4.2/LICENSE similarity index 100% rename from licenses/zod@4.4.3/LICENSE rename to licenses/zod@4.4.2/LICENSE diff --git a/licenses/zustand@5.0.14/LICENSE b/licenses/zustand@5.0.12/LICENSE similarity index 100% rename from licenses/zustand@5.0.14/LICENSE rename to licenses/zustand@5.0.12/LICENSE diff --git a/package.json b/package.json index 4b90957..5256dcd 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,8 @@ "start-adb:mobile": "cd apps/tauri && bun run start-adb:mobile", "dev:desktop": "cd apps/electron && bun run dev", "build:desktop": "cd apps/electron && bun run package", - "delete:mobile": "cd apps/tauri && nix develop ../..#tauri --command adb uninstall net.tensamin.client" + "run:desktop": "TENSAMIN_DEB=\"$PWD/apps/electron/release/Tensamin-$(node -p \\\"require('./package.json').version\\\")-linux-amd64.deb\" nix run .#localPathForDev --impure", + "delete:mobile": "cd apps/tauri && nix develop --command adb uninstall net.tensamin.client" }, "devDependencies": { "@eslint/js": "^10.0.1", @@ -43,12 +44,12 @@ "typescript-eslint": "^8.59.1" }, "overrides": { - "@tensamin/ui": "https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz", - "mtp": "https://git.methanium.net/methanium/mtp/releases/download/0.1.0-dev-c3fbeb2/mtp-0.1.0.tgz" + "@tensamin/ui": "https://git.methanium.net/tensamin/ui/archive/0.0.37.tar.gz", + "@tensamin/ttp-core": "https://git.methanium.net/tensamin/ttp/archive/0.0.24.tar.gz" }, "dependencies": { + "@tensamin/ttp-core": "*", "@tensamin/ui": "*", - "mtp": "*", "sonner": "^2.0.7" } } diff --git a/packages/call/package.json b/packages/call/package.json index 74ee941..d3b5827 100644 --- a/packages/call/package.json +++ b/packages/call/package.json @@ -22,7 +22,7 @@ "@tensamin/crypto": "workspace:*", "@tensamin/shared": "workspace:*", "@tensamin/storage": "workspace:*", - "@tensamin/mtp": "workspace:*", + "@tensamin/ttp": "workspace:*", "@tensamin/ui": "*", "@tensamin/user": "workspace:*", "deepfilternet3-noise-filter": "^1.2.1", diff --git a/packages/call/src/components/buttons/invite.tsx b/packages/call/src/components/buttons/invite.tsx index d7ccf82..d3a6d8e 100644 --- a/packages/call/src/components/buttons/invite.tsx +++ b/packages/call/src/components/buttons/invite.tsx @@ -61,15 +61,15 @@ export default function InviteButton({ > {contacts.map((contact) => ( Loading...
} component={(user) => (
)} {view === "grid" || - (view === "focused" && user.UserId !== focusedParticipantId) ? ( + (view === "focused" && + user.user_id !== focusedParticipantId) ? ( ) : null} diff --git a/packages/call/src/components/modals/contextMenu.tsx b/packages/call/src/components/modals/contextMenu.tsx index a3d2261..82f79c8 100644 --- a/packages/call/src/components/modals/contextMenu.tsx +++ b/packages/call/src/components/modals/contextMenu.tsx @@ -36,8 +36,8 @@ export default function ContextMenu({ return ( - {watchedStreamParticipantIds.includes(user.UserId) && - user.UserId !== ownId ? ( + {watchedStreamParticipantIds.includes(user.user_id) && + user.user_id !== ownId ? ( Stop Watching ) : null} Profile diff --git a/packages/call/src/components/top.tsx b/packages/call/src/components/top.tsx index ce5b7cf..4da11db 100644 --- a/packages/call/src/components/top.tsx +++ b/packages/call/src/components/top.tsx @@ -70,7 +70,7 @@ export default function TopBar() {
{users.map((user) => ( -
+
& { exists: boolean }) | null; + | (z.infer & { exists: boolean }) + | null; type NavigateFn = (options: { to: string; @@ -70,7 +71,7 @@ type GetSharedSecretFn = ( type DecryptTextFn = (sharedSecret: string, text: string) => Promise; type EncryptTextFn = (sharedSecret: string, text: string) => Promise; type LoadFn = (key: string) => Promise; -type GetUserFn = (userId: number) => Promise<{ PublicKey: string }>; +type GetUserFn = (userId: number) => Promise<{ public_key: string }>; type RemoteVideoTrackSelector = Track.Kind | Track.Source; type Runtime = { @@ -605,15 +606,15 @@ export async function openCallPage(callId: string) { export async function getCallToken(callId: string): Promise { const response = await requireRuntime(useCall.getState().runtime) .send("call_token", { - CallId: callId, + call_id: callId, }) .catch((err) => { log(1, "call", "red", "Failed to get call secret", err); throw err; }); - const data = response.data as { CallToken: string }; - return data.CallToken; + const data = response.data as { call_token: string }; + return data.call_token; } // Encrypt the active call secret for a recipient and send the call invite. @@ -629,10 +630,10 @@ export async function sendCallInvite(userId: number) { const privateKey = await runtime.load("private_key"); const ownPublicKey = await runtime .getUser(ownUserId) - .then((data) => data.PublicKey); + .then((data) => data.public_key); const remotePublicKey = await runtime .getUser(userId) - .then((data) => data.PublicKey); + .then((data) => data.public_key); const sharedSecret = await runtime.getSharedSecret( privateKey, ownPublicKey, @@ -644,9 +645,9 @@ export async function sendCallInvite(userId: number) { ); await runtime.send("call_invite", { - ReceiverId: userId, - CallId: callId, - CallSecret: encryptedCallSecret, + receiver_id: userId, + call_id: callId, + call_secret: encryptedCallSecret, }); } @@ -900,8 +901,8 @@ export async function joinCall( await runtime.load("private_key"), await runtime .getUser((await runtime.load("user_id")) as number) - .then((res) => res.PublicKey), - await runtime.getUser(userId).then((res) => res.PublicKey), + .then((res) => res.public_key), + await runtime.getUser(userId).then((res) => res.public_key), ); const decryptedSecret = await runtime.decryptText( sharedSecret, @@ -1087,7 +1088,7 @@ export const useCall = create(() => ({ export function useInitializeCall() { const navigate = useNavigate(); const location = useLocation(); - const { send, subscribePush } = useMTP(); + const { send, subscribePush } = useTTP(); const { getSharedSecret, decryptText, encryptText } = useCrypto(); const { load } = useStorage(); const { insertCall } = useSession(); @@ -1150,9 +1151,9 @@ export function useInitializeCall() { } insertCall({ - CallId: invite.callId, - CallSecret: invite.callSecret, - CallMembers: [invite.senderId], + call_id: invite.callId, + call_secret: invite.callSecret, + call_members: [invite.senderId], }); if (accepted) { @@ -1180,13 +1181,13 @@ export function useInitializeCall() { subscribePush(async (message) => { if (message.type !== "call_invite") return; - const { CallId, CallSecret, SenderId } = message.data as { - CallId: string; - CallSecret: string; - SenderId: number; + const { call_id, call_secret, sender_id } = message.data as { + call_id: string; + call_secret: string; + sender_id: number; }; - showCallingScreen(CallId, CallSecret, SenderId); + showCallingScreen(call_id, call_secret, sender_id); }); }, [subscribePush, showCallingScreen]); @@ -1500,10 +1501,10 @@ export function useInitializeCall() { return; } - send("call_data", { CallId: callId }) + send("call_data", { call_id: callId }) .then((data) => { setCurrentCallData({ - ...(data.data as z.infer), + ...(data.data as z.infer), exists: true, }); }) @@ -1513,7 +1514,7 @@ export function useInitializeCall() { error: err, }); setCurrentCallData({ - UserIds: [], + user_ids: [], exists: false, }); }); diff --git a/packages/call/src/views/preview.tsx b/packages/call/src/views/preview.tsx index d489dba..bc4b574 100644 --- a/packages/call/src/views/preview.tsx +++ b/packages/call/src/views/preview.tsx @@ -17,7 +17,7 @@ export default function Preview() { }; } - void Promise.all(currentCallData.UserIds.map((id) => get(id))) + void Promise.all(currentCallData.user_ids.map((id) => get(id))) .then((users) => { if (!active) { return; @@ -44,7 +44,7 @@ export default function Preview() {
{data.map((user) => { return ( -

+

User: {user.display}

); diff --git a/packages/call/todo.md b/packages/call/todo.md index beb0e48..4d00174 100644 --- a/packages/call/todo.md +++ b/packages/call/todo.md @@ -7,4 +7,3 @@ - Implement context menu features - Add quality selection - Good preview page -- Settings page diff --git a/packages/chat/package.json b/packages/chat/package.json index b04384e..a4b9b86 100644 --- a/packages/chat/package.json +++ b/packages/chat/package.json @@ -23,7 +23,7 @@ "@tensamin/markdown": "workspace:*", "@tensamin/shared": "workspace:*", "@tensamin/storage": "workspace:*", - "@tensamin/mtp": "workspace:*", + "@tensamin/ttp": "workspace:*", "@tensamin/ui": "*", "@tensamin/user": "workspace:*", "lucide-react": "^1.14.0", diff --git a/packages/chat/src/behaviour/conversation.ts b/packages/chat/src/behaviour/conversation.ts index 4081b72..67e77ee 100644 --- a/packages/chat/src/behaviour/conversation.ts +++ b/packages/chat/src/behaviour/conversation.ts @@ -1,4 +1,5 @@ -import type { BoundSendFn } from "@tensamin/mtp"; +import type { BoundSendFn } from "@tensamin/ttp"; +import type { TTP } from "@tensamin/shared/data"; import type { RawMessages } from "../values"; /** @@ -6,19 +7,19 @@ import type { RawMessages } from "../values"; * @param send Parameter send. * @param amount Parameter amount. * @param offset Parameter offset. - * @param UserId Parameter UserId. + * @param user_id Parameter user_id. * @returns Promise. */ export async function getMessages( - send: BoundSendFn, + send: BoundSendFn, amount: number, offset: number, - UserId: number, + user_id: number, ): Promise { const messages = await send("messages_get", { amount: amount, offset: offset, - UserId, + user_id: user_id, }); if (messages.type.startsWith("error")) { diff --git a/packages/chat/src/components/input.tsx b/packages/chat/src/components/input.tsx index 49600f3..ae27596 100644 --- a/packages/chat/src/components/input.tsx +++ b/packages/chat/src/components/input.tsx @@ -12,7 +12,7 @@ import { Button } from "@tensamin/ui"; import { Plus, Laugh, FileVideo } from "lucide-react"; import { useChat } from "../context"; -import { useMTP } from "@tensamin/mtp"; +import { useTTP } from "@tensamin/ttp"; import { log, toast } from "@tensamin/shared/log"; import { cn, useIsMobile } from "@tensamin/ui"; import { encryptText } from "@tensamin/crypto/worker"; @@ -28,7 +28,7 @@ export default function InputComponent({ }) { const [invertEnterBehavior, setInvertEnterBehavior] = React.useState(false); - const { send } = useMTP(); + const { send } = useTTP(); const { addLiveMessage, sharedSecret, userId, inputBoxRef } = useChat(); const { load, save } = useStorage(); const { moveUserIdToTop } = useSession(); @@ -69,49 +69,33 @@ export default function InputComponent({ return; } - log(3, "chat", "purple", "Message send init, adding live message ..."); - const reference = addLiveMessage({ height: 0, - NotEncrypted: true, - SendTime: time, + not_encrypted: true, + send_time: time, content: currentValue, - SentBySelf: true, - MessageState: "awaiting", + sent_by_self: true, + message_state: "awaiting", }); - log(3, "chat", "purple", "Live message added, encrypting..."); - - const encryptedContext = await encryptText( - sharedSecret, - currentValue, - ).catch((err) => { - toast("error", "Failed to encrypt message", String(err)); - reference.setFailed(true); - }); - - if (!encryptedContext) return; - - log(3, "chat", "purple", "Content encrypted, sending message..."); + const encryptedContext = await encryptText(sharedSecret, currentValue); send("message_send", { height: 0, content: encryptedContext, - ReceiverId: userId, - SendTime: time, + receiver_id: userId, + send_time: time, }).catch((e) => { log(0, "Chat", "red", "Failed to send message", e, { content: currentValue, encryptedContext, - ReceiverId: userId, - SendTime: time, + receiver_id: userId, + send_time: time, }); reference.setFailed(true); toast("error", "Failed to send message"); }); - log(3, "chat", "purple", "Message sent"); - moveUserIdToTop(userId); if (!preserveContent) { diff --git a/packages/chat/src/components/mediaSaveButton.tsx b/packages/chat/src/components/mediaSaveButton.tsx index 3f5d588..5179aac 100644 --- a/packages/chat/src/components/mediaSaveButton.tsx +++ b/packages/chat/src/components/mediaSaveButton.tsx @@ -39,20 +39,25 @@ export default function MediaSaveButton({ } return ( - + +
); } diff --git a/packages/chat/src/components/message.tsx b/packages/chat/src/components/message.tsx index 621a815..51705ff 100644 --- a/packages/chat/src/components/message.tsx +++ b/packages/chat/src/components/message.tsx @@ -1,34 +1,21 @@ import * as React from "react"; import type { RawMessage } from "../values"; import Text from "@tensamin/markdown/text"; -import { - AlertTriangle, - Check, - Ellipse, - Forward, - Laugh, - RefreshCw, - Reply, -} from "lucide-react"; -import { useCallback, useEffect, useState } from "react"; +import { AlertTriangle } from "lucide-react"; +import { useEffect, useState } from "react"; import type { User } from "@tensamin/user/context"; import { Avatar, AvatarFallback, AvatarImage, - Button, - Card, cn, - Separator, Tooltip, TooltipContent, TooltipTrigger, } from "@tensamin/ui"; import MessageContextMenu from "./messageContextMenu"; import Media from "./media"; -import { useStorage } from "@tensamin/storage/context"; -import { useMTP } from "@tensamin/mtp"; function MessageComponent({ grouped, @@ -41,15 +28,15 @@ function MessageComponent({ }; user: User | null; }) { - const actuallyFailed = message.failed && message.MessageState === "awaiting"; - - // Fade-in + const actuallyFailed = message.failed && message.message_state === "awaiting"; const [hasFadedIn, setHasFadedIn] = useState(false); const opacityClass = !hasFadedIn ? "opacity-0" - : actuallyFailed || message.MessageState === "awaiting" + : actuallyFailed || message.message_state === "awaiting" ? "opacity-50" : "opacity-100"; + + const [isValidURL, setIsValidURL] = useState(false); useEffect(() => { const timeout = window.setTimeout(() => { setHasFadedIn(true); @@ -60,8 +47,6 @@ function MessageComponent({ }; }, []); - // Check if message is a url - const [isValidURL, setIsValidURL] = useState(false); useEffect(() => { try { if (message.content.split(" ").length > 1) throw new Error(); @@ -73,58 +58,6 @@ function MessageComponent({ } }, [message.content]); - // Message states - const { load } = useStorage(); - const { send } = useMTP(); - const messageStateReadUpdate = useCallback(async () => { - const readConfirmations = await load("settings.read_confirmations"); - - if (readConfirmations) { - if (!user?.UserId) return; - - await send("message_state", { - ChatPartnerId: user?.UserId, - SendTime: message.SendTime, - MessageState: "read", - }); - } else { - await send("message_state", { - ChatPartnerId: user?.UserId, - SendTime: message.SendTime, - MessageState: "received", - }); - } - }, [load, message.SendTime, user?.UserId, send]); - useEffect(() => { - let cancelled = false; - - async function run() { - const receiveConfirmations = await load("settings.receive_confirmations"); - if (cancelled) return; - - switch (message.MessageState) { - case "sent": - if (receiveConfirmations) { - messageStateReadUpdate(); - } - break; - - case "received": - messageStateReadUpdate(); - break; - - default: - break; - } - } - - run(); - - return () => { - cancelled = true; - }; - }, [message.MessageState, load, messageStateReadUpdate]); - return (
{grouped ? (

- {new Date(message.SendTime).toLocaleString([], { + {new Date(message.send_time).toLocaleString([], { hour: "2-digit", minute: "2-digit", })} @@ -160,7 +93,7 @@ function MessageComponent({ )} - {message.failed && message.MessageState === "awaiting" && ( + {message.failed && message.message_state === "awaiting" && (

Failed to send message

@@ -168,49 +101,16 @@ function MessageComponent({ } /> )} -
- - {[0, 1, 2].map((item) => ( - - ))} - - - - - +
{!grouped && (

{user.display}

- {new Date(message.SendTime).toLocaleString([], { + {new Date(message.send_time).toLocaleString([], { hour: "2-digit", minute: "2-digit", })}

-
- {message.MessageState === "read" ? ( - - ) : message.MessageState === "received" ? ( - - ) : message.MessageState === "sent" ? ( - - ) : message.MessageState === "sending" ? ( - - ) : null} -
)} {isValidURL ? ( @@ -231,11 +131,11 @@ function MessageComponent({ export default React.memo(MessageComponent, (prev, next) => { return ( - prev.message.SendTime === next.message.SendTime && + prev.message.send_time === next.message.send_time && prev.message.content === next.message.content && prev.message.height === next.message.height && - prev.message.SentBySelf === next.message.SentBySelf && - prev.message.MessageState === next.message.MessageState && + prev.message.sent_by_self === next.message.sent_by_self && + prev.message.message_state === next.message.message_state && prev.message.failed === next.message.failed && prev.grouped === next.grouped && prev.user === next.user diff --git a/packages/chat/src/context.tsx b/packages/chat/src/context.tsx index f1688eb..09d65c3 100644 --- a/packages/chat/src/context.tsx +++ b/packages/chat/src/context.tsx @@ -15,7 +15,7 @@ import type { LiveMessage, RawMessage, RawMessages } from "./values"; import { useCrypto } from "@tensamin/crypto/context"; import { useUser } from "@tensamin/user/context"; import { useStorage } from "@tensamin/storage/context"; -import { useMTP } from "@tensamin/mtp"; +import { useTTP } from "@tensamin/ttp"; import { log } from "@tensamin/shared/log"; import { useSession } from "@tensamin/storage/session"; @@ -24,23 +24,23 @@ export const context = createContext(undefined); const queryClient = new QueryClient(); function updateMessageStateBySendTime< - T extends { SendTime: number; MessageState: RawMessage["MessageState"] }, + T extends { send_time: number; message_state: RawMessage["message_state"] }, >( messages: T[], sendTime: number, - messageState: RawMessage["MessageState"], + messageState: RawMessage["message_state"], ): { next: T[]; updated: boolean } { let updated = false; const next = messages.map((item) => { - if (item.SendTime !== sendTime || item.MessageState === messageState) { + if (item.send_time !== sendTime || item.message_state === messageState) { return item; } updated = true; return { ...item, - MessageState: messageState, + message_state: messageState, }; }); @@ -59,7 +59,7 @@ export default function Provider(props: { children: ReactNode }) { const { getSharedSecret, decryptText } = useCrypto(); const { get } = useUser(); const { load } = useStorage(); - const { send, subscribePush } = useMTP(); + const { send, subscribePush } = useTTP(); const { moveUserIdToTop } = useSession(); const [liveMessagesState, setLiveMessagesState] = useState([]); @@ -105,8 +105,8 @@ export default function Provider(props: { children: ReactNode }) { const ownData = await get(ownId); const sharedSecret = await getSharedSecret( privateKey, - ownData.PublicKey, - recipientData.PublicKey, + ownData.public_key, + recipientData.public_key, ); if (active) { @@ -135,7 +135,7 @@ export default function Provider(props: { children: ReactNode }) { const messages = await send("messages_get", { amount, offset, - UserId: userIdValue, + user_id: userIdValue, }); if (messages.type.startsWith("error")) { @@ -143,14 +143,14 @@ export default function Provider(props: { children: ReactNode }) { } const rawMessages = messages.data.messages; - const sorted = [...rawMessages].sort((a, b) => a.SendTime - b.SendTime); + const sorted = [...rawMessages].sort((a, b) => a.send_time - b.send_time); if (sorted.length > 0) { - const fetchedSendTimes = new Set(sorted.map((item) => item.SendTime)); + const fetchedSendTimes = new Set(sorted.map((item) => item.send_time)); setLiveMessagesState((prev) => { const filtered = prev.filter( - (liveMessage) => !fetchedSendTimes.has(liveMessage.SendTime), + (liveMessage) => !fetchedSendTimes.has(liveMessage.send_time), ); return filtered.length === prev.length ? prev : filtered; @@ -179,7 +179,7 @@ export default function Provider(props: { children: ReactNode }) { globalThis.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random().toString(36).slice(2)}`; - if (!message.SentBySelf) { + if (!message.sent_by_self) { moveUserIdToTop(userIdValue); } @@ -219,20 +219,20 @@ export default function Provider(props: { children: ReactNode }) { } const rawData = message.data as { - ChatPartnerId: unknown; - SendTime: unknown; - MessageState: RawMessage["MessageState"]; + chat_partner_id: unknown; + send_time: unknown; + message_state: RawMessage["message_state"]; }; const nextState = { - ChatPartnerId: Number(rawData.ChatPartnerId), - SendTime: Number(rawData.SendTime), - MessageState: rawData.MessageState, + chat_partner_id: Number(rawData.chat_partner_id), + send_time: Number(rawData.send_time), + message_state: rawData.message_state, }; if ( - !Number.isFinite(nextState.ChatPartnerId) || - !Number.isFinite(nextState.SendTime) + !Number.isFinite(nextState.chat_partner_id) || + !Number.isFinite(nextState.send_time) ) { log( 3, @@ -243,7 +243,7 @@ export default function Provider(props: { children: ReactNode }) { return; } - if (nextState.ChatPartnerId !== userIdValue) { + if (nextState.chat_partner_id !== userIdValue) { log( 3, "chat", @@ -251,7 +251,7 @@ export default function Provider(props: { children: ReactNode }) { "Cancel message state update due to user ID mismatch", { expected: userIdValue, - received: nextState.ChatPartnerId, + received: nextState.chat_partner_id, }, ); return; @@ -260,8 +260,8 @@ export default function Provider(props: { children: ReactNode }) { setLiveMessagesState((prev) => { const { next, updated } = updateMessageStateBySendTime( prev, - nextState.SendTime, - nextState.MessageState, + nextState.send_time, + nextState.message_state, ); return updated ? next : prev; }); @@ -283,8 +283,8 @@ export default function Provider(props: { children: ReactNode }) { const pages = current.pages.map((page) => { const nextPage = updateMessageStateBySendTime( page, - nextState.SendTime, - nextState.MessageState, + nextState.send_time, + nextState.message_state, ); if (nextPage.updated) { diff --git a/packages/chat/src/screen.tsx b/packages/chat/src/screen.tsx index b49ec04..f6bcff5 100644 --- a/packages/chat/src/screen.tsx +++ b/packages/chat/src/screen.tsx @@ -48,7 +48,7 @@ function shouldFetchPreviousPage({ } function getMessageRenderKey(message: RawMessage | LiveMessage) { - return "localId" in message ? message.localId : String(message.SendTime); + return "localId" in message ? message.localId : String(message.send_time); } function buildMessageChunks( @@ -132,7 +132,11 @@ export default function Screen() { fetchNextPageRef.current = () => { void fetchMessagesNextPage(); }; - }, [fetchMessagesNextPage, hasMessagesNextPage, isFetchingMessagesNextPage]); + }, [ + fetchMessagesNextPage, + hasMessagesNextPage, + isFetchingMessagesNextPage, + ]); React.useEffect(() => { clearLiveMessages(); @@ -184,11 +188,11 @@ export default function Screen() { const dedupedMessages: RawMessage[] = []; for (const message of [...pages].reverse().flat()) { - if (seenSendTimes.has(message.SendTime)) { + if (seenSendTimes.has(message.send_time)) { continue; } - seenSendTimes.add(message.SendTime); + seenSendTimes.add(message.send_time); dedupedMessages.push(message); } @@ -199,11 +203,11 @@ export default function Screen() { const liveWithoutDuplicates = React.useMemo(() => { const historicalSendTimes = new Set( - historicalMessages.map((message) => message.SendTime), + historicalMessages.map((message) => message.send_time), ); return liveMessagesSnapshot.filter( - (message) => !historicalSendTimes.has(message.SendTime), + (message) => !historicalSendTimes.has(message.send_time), ); }, [historicalMessages, liveMessagesSnapshot]); @@ -559,9 +563,9 @@ export default function Screen() { const lastMessage = messages[messageIndex - 1]; const isGrouped = lastMessage && - lastMessage.SentBySelf === message.SentBySelf && - Math.round(lastMessage.SendTime / 10000) === - Math.round(message.SendTime / 10000); + lastMessage.sent_by_self === message.sent_by_self && + Math.round(lastMessage.send_time / 10000) === + Math.round(message.send_time / 10000); return ( ["messages"]; +export type RawMessages = z.infer["messages"]; export type RawMessage = RawMessages[number]; diff --git a/packages/chat/todo.md b/packages/chat/todo.md index 4a260aa..63466f3 100644 --- a/packages/chat/todo.md +++ b/packages/chat/todo.md @@ -1,3 +1,2 @@ - Implement context menu features -- Add default-emoji-hotkey -- Placeholder image if media fails to load +- Add default-emoji-hotkey in settings diff --git a/packages/crypto/package.json b/packages/crypto/package.json index 2129227..705faa0 100644 --- a/packages/crypto/package.json +++ b/packages/crypto/package.json @@ -15,7 +15,6 @@ }, "dependencies": { "@noble/curves": "^2.0.1", - "@noble/hashes": "^2.0.1", "comlink": "^4.4.2", "react": "^19.2.0", "react-dom": "^19.2.0" diff --git a/packages/mtp/src/context.tsx b/packages/mtp/src/context.tsx deleted file mode 100644 index 6b75c6e..0000000 --- a/packages/mtp/src/context.tsx +++ /dev/null @@ -1,531 +0,0 @@ -import { - createContext, - type ReactNode, - useCallback, - useContext, - useEffect, - useMemo, - useRef, - useState, -} from "react"; -import { isTauri } from "@tauri-apps/api/core"; -import { onResume } from "tauri-plugin-app-events-api"; -import { ConnectionState, MTPClient } from "mtp"; -import type { z } from "zod"; - -import { - type Calls, - type Communities, - type Contacts, - mtp as schemas, - type MTP as Schemas, -} from "@tensamin/shared/data"; -import { log } from "@tensamin/shared/log"; -import { useStorage } from "@tensamin/storage/context"; -import { ErrorScreen, LoadingScreen as Loading } from "@tensamin/ui"; - -import { - PING_INTERVAL, - RECONNECT_RESET, - RECONNECT_TRIES, - RETRY_INTERVAL, -} from "./values"; - -const PUSH_TYPES = [ - "message_live", - "message_state", - "call_invite", - "error_no_iota", -] as const; - -const WIRE_TYPES = { - temp_cool_type: "TempCoolType", - get_user_data: "GetUserData", - change_user_data: "ChangeUserData", - ping: "AppPing", - message_live: "MessageLive", - messages_get: "MessagesGet", - message_send: "MessageSend", - add_conversation: "AddConversation", - message_state: "MessageState", - load_txt_record: "LoadTxtRecord", - authenticate_app: "AuthenticateApp", - create_app: "CreateApp", - call_token: "CallToken", - call_data: "CallData", - call_invite: "CallInvite", - error_no_iota: "ErrorNoIota", -} as const satisfies Record; - -const APP_TYPES = Object.fromEntries( - Object.entries(WIRE_TYPES).map(([appType, wireType]) => [wireType, appType]), -) as Record; - -export type ProtocolMessage< - T extends keyof Schemas & string = keyof Schemas & string, -> = { - id?: number; - type: T | string; - data: z.infer; -}; - -export type BoundSendFn = ( - type: T, - data?: z.infer, - options?: { id?: number }, -) => Promise>; - -export type PushHandler = (message: ProtocolMessage) => void; - -type ContextType = { - send: BoundSendFn; - subscribe: ( - type: T, - handler: (message: ProtocolMessage) => void, - ) => () => void; - subscribePush: (handler: PushHandler) => () => void; - readyState: number; - ownPing: number; - iotaPing: number; - identified: boolean; - freshContacts: Contacts; - freshCommunities: Communities; - freshCalls: Calls; -}; - -const MTPContext = createContext(undefined); - -function isTauriMobile() { - return isTauri() && /Android|iPhone|iPad|iPod/.test(navigator.userAgent); -} - -function getProtocolErrorDetails(error: unknown) { - if (typeof error !== "object" || error === null || !("type" in error)) { - return null; - } - - const protocolError = error as { - id?: unknown; - type?: unknown; - data?: unknown; - }; - return { - id: protocolError.id, - type: protocolError.type, - data: protocolError.data, - }; -} - -// Zod schema validation -function validateResponse( - type: T, - message: { id?: number; type: string; data: unknown }, -): ProtocolMessage { - const appType = APP_TYPES[message.type] ?? message.type; - - if (appType.startsWith("error")) { - return { ...message, type: appType } as ProtocolMessage; - } - - const schema = schemas[type]?.response; - if (!schema) { - return message as ProtocolMessage; - } - - const parsed = schema.safeParse(message.data); - if (!parsed.success) { - throw new Error( - `Response validation failed for ${type}: ${parsed.error.message}`, - ); - } - - return { - id: message.id, - type: appType, - data: parsed.data, - } as ProtocolMessage; -} - -export function Provider(props: { - children: ReactNode; - blockConnection?: boolean; -}) { - const { load } = useStorage(); - - const [readyState, setReadyState] = useState( - ConnectionState.Disconnected, - ); - const [identified, setIdentified] = useState(false); - const [identifying, setIdentifying] = useState(false); - - const [ownPing, setOwnPing] = useState(0); - const [iotaPing, setIotaPing] = useState(0); - - const [error, setError] = useState(""); - const [errorDescription, setErrorDescription] = useState(""); - - const [freshCommunities, setFreshCommunities] = useState([]); - const [freshContacts, setFreshContacts] = useState([]); - const [freshCalls, setFreshCalls] = useState([]); - - const clientRef = useRef> | null>( - null, - ); - - const connected = readyState === ConnectionState.Connected; - - // MTP url - const [mtpUrl, setMtpUrl] = useState(null); - useEffect(() => { - load("mtp_url").then(setMtpUrl); - }, [load]); - - // Validation override functions - const send: BoundSendFn = useMemo( - () => async (type, data, options) => { - const client = clientRef.current; - - if (!client) { - throw new Error("mtp is not connected"); - } - - const message = await client.request( - WIRE_TYPES[type], - (data ?? {}) as Record, - options, - ); - return validateResponse(type, message); - }, - [], - ); - - const subscribe = useCallback((type, handler) => { - const client = clientRef.current; - if (!client) { - return () => {}; - } - - return client.subscribe(WIRE_TYPES[type], (message) => { - handler(validateResponse(type, message)); - }); - }, []); - - const subscribePush = useCallback((handler: PushHandler) => { - const client = clientRef.current; - if (!client) { - return () => {}; - } - - const unsubscribers = PUSH_TYPES.map((type) => - client.subscribe(WIRE_TYPES[type], (message) => { - handler(validateResponse(type as keyof Schemas & string, message)); - }), - ); - - return () => { - unsubscribers.forEach((unsubscribe) => unsubscribe()); - }; - }, []); - - // No Iota check - useEffect(() => { - if (!connected) return; - - return subscribe("error_no_iota", () => { - setIdentified(false); - setIdentifying(false); - setError("We couldn't reach your Iota"); - setErrorDescription( - "You could try to restart your Iota, check for updates or check your network connection.", - ); - }); - }, [connected, subscribe]); - - // Custom Pings - useEffect(() => { - if (!connected || !identified) { - return; - } - - const interval = setInterval(async () => { - try { - const originalNow = Date.now(); - const data = await send("ping", { LastPing: originalNow }); - setOwnPing(Date.now() - originalNow); - - const remotePing = data.data.PingIota; - if (typeof remotePing === "number") { - setIotaPing(remotePing); - } - } catch (intervalError) { - log(1, "mtp", "yellow", "Ping failed", intervalError); - } - }, PING_INTERVAL); - - return () => { - clearInterval(interval); - }; - }, [connected, identified, send]); - - // Reconnect stuff - useEffect(() => { - if (!mtpUrl) return; - - let attempts = 0; - let reconnectTimer: ReturnType | null = null; - let reconnectResetTimer: ReturnType | null = null; - let reconnectScheduled = false; - let disposed = false; - let resumeListenerRegistered = false; - - const clearReconnectTimer = () => { - if (!reconnectTimer) return; - clearTimeout(reconnectTimer); - reconnectTimer = null; - reconnectScheduled = false; - }; - - const clearReconnectResetTimer = () => { - if (!reconnectResetTimer) return; - clearTimeout(reconnectResetTimer); - reconnectResetTimer = null; - }; - - const scheduleReconnectReset = () => { - clearReconnectResetTimer(); - reconnectResetTimer = setTimeout(() => { - attempts = 0; - reconnectResetTimer = null; - }, RECONNECT_RESET * 1_000); - }; - - const scheduleReconnect = (reason?: unknown) => { - if (disposed || reconnectScheduled) return; - - if (attempts >= RECONNECT_TRIES) { - setError("Connection Failed"); - setErrorDescription( - "Unable to connect to the server after multiple attempts. Please check your internet connection or try again later.", - ); - log(0, "mtp", "red", "Reconnection attempts exhausted", reason); - return; - } - - attempts += 1; - reconnectScheduled = true; - reconnectTimer = setTimeout(() => { - reconnectScheduled = false; - reconnectTimer = null; - void connect(); - }, RETRY_INTERVAL); - }; - - async function connect() { - if (disposed || props.blockConnection) { - return; - } - - try { - setIdentified(false); - setIdentifying(false); - - await MTPClient.init(); - const client = await MTPClient.create({ - url: mtpUrl ?? "", - descriptor: "client", - pings: true, - logger: (event) => { - if (event.type === "state") { - setReadyState( - clientRef.current?.state ?? ConnectionState.Disconnected, - ); - } - - log( - 2, - "mtp", - event.type === "state" ? "cyan" : "blue", - event.type === "state" ? event.data : event.type, - event, - ); - }, - }); - - if (disposed) { - client.disconnect(); - return; - } - - clientRef.current = client; - setReadyState(client.state); - await client.connect(); - - if (disposed) { - client.disconnect(); - return; - } - - const authPayload = new Promise>( - (resolve, reject) => { - const unsubscribe = client.subscribe("TempCoolType", (message) => { - try { - unsubscribe(); - resolve(validateResponse("temp_cool_type", message)); - } catch (authPayloadError) { - unsubscribe(); - reject(authPayloadError); - } - }); - }, - ); - - clearReconnectTimer(); - scheduleReconnectReset(); - setReadyState(client.state); - setIdentifying(true); - setError(""); - setErrorDescription(""); - - await client.auth(); - const finalResponse = await authPayload; - - if (disposed || clientRef.current !== client) { - return; - } - - setFreshContacts(finalResponse.data.contacts); - setFreshCommunities(finalResponse.data.communities ?? []); - setFreshCalls(finalResponse.data.calls); - setIdentifying(false); - setIdentified(true); - } catch (connectError) { - if (disposed) return; - - clientRef.current?.disconnect(); - clientRef.current = null; - clearReconnectResetTimer(); - setReadyState(ConnectionState.Disconnected); - setIdentified(false); - setIdentifying(false); - log( - 0, - "mtp", - "red", - "Connection/authentication attempt failed", - getProtocolErrorDetails(connectError) ?? connectError, - ); - scheduleReconnect(connectError); - } - } - - async function reconnectAfterResume() { - if (disposed) return; - - clientRef.current?.disconnect(); - clientRef.current = null; - clearReconnectTimer(); - clearReconnectResetTimer(); - attempts = 0; - reconnectScheduled = false; - setError(""); - setErrorDescription(""); - - await connect(); - } - - void connect(); - - if (!props.blockConnection && isTauriMobile()) { - resumeListenerRegistered = true; - onResume(() => { - void reconnectAfterResume(); - }); - } - - return () => { - disposed = true; - clearReconnectTimer(); - clearReconnectResetTimer(); - - if (resumeListenerRegistered) { - onResume(); - } - - clientRef.current?.disconnect(); - clientRef.current = null; - setReadyState(ConnectionState.Disconnected); - setIdentified(false); - setIdentifying(false); - }; - }, [mtpUrl, props.blockConnection]); - - // Loading bar - const progress = useMemo(() => { - if (!mtpUrl) return 10; - if (readyState === ConnectionState.Connecting) return 30; - if (!connected) return 45; - if (identifying) return 75; - if (!identified) return 90; - return 100; - }, [connected, identified, identifying, readyState, mtpUrl]); - - const loadingTitle = useMemo(() => { - if (!mtpUrl) return "Looking up configuration"; - if (readyState === ConnectionState.Connecting || !connected) - return "Connecting to Tensamin"; - if (identifying || !identified) return "Identifying secure session"; - return "Loading"; - }, [connected, identified, identifying, readyState, mtpUrl]); - - const loadingDescription = useMemo(() => { - if (!mtpUrl) return "Loading connection details"; - if (readyState === ConnectionState.Connecting || !connected) { - return "Establishing transport channel"; - } - if (identifying || !identified) return "Waiting for authenticated session"; - return undefined; - }, [connected, identified, identifying, readyState, mtpUrl]); - - // Return - if (error !== "" && errorDescription !== "") { - return ; - } - - if (!connected || !identified || !mtpUrl) { - return ( - - ); - } - - return ( - - {props.children} - - ); -} - -export function useMTP(): ContextType { - const context = useContext(MTPContext); - if (!context) { - throw new Error("useMTP must be used within an MTPProvider"); - } - return context; -} diff --git a/packages/mtp/src/index.ts b/packages/mtp/src/index.ts deleted file mode 100644 index dff2352..0000000 --- a/packages/mtp/src/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { Provider, useMTP } from "./context"; -export type { BoundSendFn, PushHandler, ProtocolMessage } from "./context"; diff --git a/packages/mtp/tsconfig.json b/packages/mtp/tsconfig.json deleted file mode 100644 index f456417..0000000 --- a/packages/mtp/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "compilerOptions": { - "jsx": "react-jsx", - "module": "ESNext", - "target": "ES2020", - "moduleResolution": "Bundler", - "strict": true, - "skipLibCheck": true, - "noEmit": true, - "esModuleInterop": true, - "allowSyntheticDefaultImports": true - }, - "include": ["src"] -} diff --git a/packages/notifications/package.json b/packages/notifications/package.json index 4e09a14..cfd540a 100644 --- a/packages/notifications/package.json +++ b/packages/notifications/package.json @@ -18,7 +18,7 @@ "@tensamin/shared": "workspace:*", "@tensamin/chat": "workspace:*", "@tensamin/storage": "workspace:*", - "@tensamin/mtp": "workspace:*", + "@tensamin/ttp": "workspace:*", "@tensamin/ui": "*", "@tensamin/user": "workspace:*", "react": "^19.2.0", diff --git a/packages/notifications/src/context.tsx b/packages/notifications/src/context.tsx index 799f695..8da45f4 100644 --- a/packages/notifications/src/context.tsx +++ b/packages/notifications/src/context.tsx @@ -2,7 +2,7 @@ import { useCrypto } from "@tensamin/crypto/context"; import { useStorage } from "@tensamin/storage/context"; import { useUser } from "@tensamin/user/context"; import { useChat } from "@tensamin/chat/context"; -import { useMTP } from "@tensamin/mtp"; +import { useTTP } from "@tensamin/ttp"; import { createContext, useEffect, useContext } from "react"; import z from "zod"; import { toast as sonnerToast } from "sonner"; @@ -24,7 +24,7 @@ async function requestNotificationPermission() { } export default function Provider(props: { children: React.ReactNode }) { - const { subscribePush, send } = useMTP(); + const { subscribePush, send } = useTTP(); const { load } = useStorage(); const { get } = useUser(); const { decryptText, getSharedSecret } = useCrypto(); @@ -35,41 +35,41 @@ export default function Provider(props: { children: React.ReactNode }) { useEffect(() => { return subscribePush(async (ttpMessage) => { if (ttpMessage.type === "message_live") { - const { message, SenderId } = ttpMessage.data as { + const { message, sender_id } = ttpMessage.data as { message: z.infer; - SenderId: number; + sender_id: number; }; - const user = await get(SenderId); + const user = await get(sender_id); const decryptedContent = await decryptText( await getSharedSecret( await load("private_key"), - await get(await load("user_id")).then((data) => data.PublicKey), - user.PublicKey, + await get(await load("user_id")).then((data) => data.public_key), + user.public_key, ), message.content, ); // Update message state - if (userId === SenderId) { - addLiveMessage({ - ...message, - content: decryptedContent, - SentBySelf: false, - }); - return; - } - - // todo: add notification symbol to conversation cards (incl. message start) - - moveUserIdToTop(SenderId); - - if (await load("settings.receive_confirmations")) { + if ( + (await load("settings.read_confirmations")) && + userId === sender_id + ) { void send( "message_state", { - MessageState: "received", + message_state: "read", + }, + { + id: ttpMessage.id, + }, + ); + } else { + void send( + "message_state", + { + message_state: "received", }, { id: ttpMessage.id, @@ -77,6 +77,20 @@ export default function Provider(props: { children: React.ReactNode }) { ); } + if (userId === sender_id) { + addLiveMessage({ + ...message, + content: decryptedContent, + sent_by_self: false, + }); + + return; + } + + // todo: add notification symbol to conversation cards (incl. message start) + + moveUserIdToTop(sender_id); + if (isTauri()) { console.log("weewoo"); } else { @@ -87,14 +101,14 @@ export default function Provider(props: { children: React.ReactNode }) { body: decryptedContent, icon: user.avatar || user.display.slice(0, 2).toUpperCase(), badge: user.avatar || user.display.slice(0, 2).toUpperCase(), - tag: `message-${user.UserId}`, + tag: `message-${user.user_id}`, silent: true, }); notification.onclick = () => { window.focus(); navigate({ - to: `/chat?id=${user.UserId}`, + to: `/chat?id=${user.user_id}`, }); notification.close(); diff --git a/packages/shared/src/data.ts b/packages/shared/src/data.ts index d56ec7c..765dce7 100644 --- a/packages/shared/src/data.ts +++ b/packages/shared/src/data.ts @@ -14,58 +14,38 @@ const fileFromMessage = z.object({ export const message = z.object({ height: z.number(), - NotEncrypted: z.boolean().optional(), - SentBySelf: z.boolean().optional(), - SendTime: z.number(), + not_encrypted: z.boolean().optional(), + sent_by_self: z.boolean().optional(), + send_time: z.number(), content: z.base64(), files: z.array(fileFromMessage).optional(), tint: z.string().length(7).startsWith("#").optional(), avatar: z.boolean().optional(), display: z.boolean().optional(), - MessageState: z - .enum(["read", "received", "sent", "sending", "awaiting"]) // awaiting for 'internal' use - .default("received"), + message_state: z + .enum(["read", "received", "sent", "sending", "awaiting"]) + .default("received"), // awaiting for 'internal' use }); export const failedUser = { display: "Failed", - IotaId: 0, - OmikronConnections: [], - OnlineStatus: "user_borked", - PublicKey: "", - SubEnd: 0, - SubLevel: 0, - UserId: 0, + iota_id: 0, + omikron_connections: [], + online_status: "user_borked", + public_key: "", + sub_end: 0, + sub_level: 0, + user_id: 0, username: "unknown", -} as z.infer; +} as z.infer; -const authPayload = z.object({ - communities: z.array(z.object({})).optional(), - contacts: z.array( - z.object({ - LastMessageAt: z.number(), - UserId: z.number(), - LastMessage: z - .object({ - content: z.base64(), - SenderId: z.number(), - }) - .optional(), - messages: z.array(message), - }), - ), - calls: z.array( - z.object({ - CallId: z.string(), - CallSecret: z.base64().optional(), - CallMembers: z.array(z.number()), - }), - ), -}); - -export type Contacts = z.infer; -export type Communities = z.infer; -export type Calls = z.infer; +export type Contacts = z.infer< + typeof ttp.challenge_response.response.shape.contacts +>; +export type Communities = z.infer< + typeof ttp.challenge_response.response.shape.communities +>; +export type Calls = z.infer; type Base16Palette = Record< | "base00" @@ -87,15 +67,15 @@ type Base16Palette = Record< string >; -// MTP +// TTP const user = z.object({ about: z.string().max(255).optional(), avatar: z.string().optional(), display: z.string().min(1).max(15), - IotaId: z.number(), - OmikronConnections: z.array(z.number()), - OmikronId: z.number().optional(), - OnlineStatus: z.enum([ + iota_id: z.number(), + omikron_connections: z.array(z.number()), + omikron_id: z.number().optional(), + online_status: z.enum([ "user_offline", "user_online", "user_dnd", @@ -106,21 +86,56 @@ const user = z.object({ "iota_online", "iota_borked", ]), - PublicKey: z.base64(), + public_key: z.base64(), status: z.string().max(15).optional(), - SubEnd: z.number(), - SubLevel: z.number(), - UserId: z.number(), + sub_end: z.number(), + sub_level: z.number(), + user_id: z.number(), username: z.string().min(1).max(15), }); -export const mtp = { - temp_cool_type: { - request: z.object({}).optional(), - response: authPayload, +export const ttp = { + identification: { + request: z.object({ + version: z.string(), + session_id: z.number(), + user_id: z.number(), + }), + response: z.object({ + challenge: z.string(), + public_key: z.base64(), + }), + }, + challenge_response: { + request: z.object({ + challenge: z.base64(), + }), + response: z.object({ + communities: z.array(z.object({})).optional(), + contacts: z.array( + z.object({ + last_message_at: z.number(), + user_id: z.number(), + last_message: z + .object({ + content: z.base64(), + sender_id: z.number(), + }) + .optional(), + messages: z.array(message), + }), + ), + calls: z.array( + z.object({ + call_id: z.string(), + call_secret: z.base64().optional(), + call_members: z.array(z.number()), + }), + ), + }), }, get_user_data: { request: z.object({ - UserId: z.number().optional(), + user_id: z.number().optional(), username: z.string().optional(), }), response: user, @@ -131,22 +146,22 @@ export const mtp = { }, ping: { request: z.object({ - LastPing: z.number(), + last_ping: z.number(), }), response: z.object({ - PingIota: z.number(), + ping_iota: z.number(), }), }, message_live: { request: z.object({}).optional(), response: z.object({ - SenderId: z.number(), + sender_id: z.number(), message, }), }, messages_get: { request: z.object({ - UserId: z.number(), + user_id: z.number(), amount: z.number(), offset: z.number(), }), @@ -158,35 +173,35 @@ export const mtp = { request: z.object({ height: z.number(), content: z.base64(), - ReceiverId: z.number(), - SendTime: z.number(), + receiver_id: z.number(), + send_time: z.number(), files: z.array(fileFromMessage).optional(), }), response: z.object({}), }, add_conversation: { request: z.object({ - ChatPartnerId: z.number().optional(), - ChatPartnerName: z.string().min(1).max(15).optional(), + chat_partner_id: z.number().optional(), + chat_partner_name: z.string().min(1).max(15).optional(), }), response: z.object({}), }, message_state: { request: z .object({ - ChatPartnerId: z.number(), - SendTime: z.number(), - MessageState: message.shape.MessageState, + chat_partner_id: z.number(), + send_time: z.number(), + message_state: message.shape.message_state, }) .or( z.object({ - MessageState: message.shape.MessageState, + message_state: message.shape.message_state, }), ), response: z.object({ - ChatPartnerId: z.number(), - MessageState: message.shape.MessageState, - SendTime: z.number(), + chat_partner_id: z.number(), + message_state: message.shape.message_state, + send_time: z.number(), }), }, @@ -200,7 +215,7 @@ export const mtp = { }, authenticate_app: { request: z.object({ - AppIdentifier: z.string(), + app_identifier: z.string(), }), response: z.object({ challenge: z.base64(), @@ -208,8 +223,8 @@ export const mtp = { }, create_app: { request: z.object({ - AppPublicKey: z.base64(), - AppIdentifier: z.string(), + app_public_key: z.base64(), + app_identifier: z.string(), }), response: z.object({}), }, @@ -217,39 +232,35 @@ export const mtp = { // Calls call_token: { request: z.object({ - CallId: z.string(), + call_id: z.string(), }), response: z.object({ - CallToken: z.string(), + call_token: z.string(), }), }, call_data: { request: z.object({ - CallId: z.string(), + call_id: z.string(), }), response: z.object({ - UserIds: z.array(z.number()), + user_ids: z.array(z.number()), }), }, call_invite: { request: z.object({ - CallId: z.string(), - CallSecret: z.base64(), - ReceiverId: z.number(), + call_id: z.string(), + call_secret: z.base64(), + receiver_id: z.number(), }), response: z.object({ - CallId: z.string().optional(), - CallSecret: z.base64().optional(), - SenderId: z.number().optional(), + call_id: z.string().optional(), + call_secret: z.base64().optional(), + sender_id: z.number().optional(), }), }, - error_no_iota: { - request: z.object({}).optional(), - response: z.object({}), - }, } satisfies Record; -export type MTP = typeof mtp; +export type TTP = typeof ttp; // Storage export interface Storage extends SettingsStorageDefaults { @@ -265,7 +276,8 @@ export interface Storage extends SettingsStorageDefaults { legal_docs: z.infer; cached_contacts: Contacts; cached_communities: Communities; - mtp_url: string; + ttp_url: string; + ttp_server_cert: string; call_mute_range_start: number; call_mute_range_end: number; theme_color: string; @@ -273,8 +285,6 @@ export interface Storage extends SettingsStorageDefaults { theme_primary_color: string; theme_polarity: "dark" | "light" | "system"; theme_tint: "soft" | "hard" | "extreme"; - theme_border_radius: number; - theme_custom_css: string; chat_trusted_domains: string[]; chat_picker_saved_media: string[]; chat_picker_last_tab: "gif" | "meme" | "saved"; @@ -314,7 +324,8 @@ export const storageDefaults: Storage = { }, cached_contacts: [], cached_communities: [], - mtp_url: "https://tensamin.net:959", + ttp_url: "https://tensamin.net:959", + ttp_server_cert: "", call_mute_range_start: -55, call_mute_range_end: -45, theme_color: "", @@ -322,8 +333,6 @@ export const storageDefaults: Storage = { theme_primary_color: "", theme_polarity: "system", theme_tint: "soft", - theme_border_radius: 0.55, - theme_custom_css: "", chat_trusted_domains: [ // Other platforms "cdn.discordapp.com", @@ -355,7 +364,7 @@ export const storageDefaults: Storage = { // User Status export function getStatusColor( - status: z.infer, + status: z.infer, ) { switch (status) { case "user_online": diff --git a/packages/shared/src/log.tsx b/packages/shared/src/log.tsx index 0cba6d3..ebea635 100644 --- a/packages/shared/src/log.tsx +++ b/packages/shared/src/log.tsx @@ -67,31 +67,26 @@ const size = 20; export function toast( type: "error" | "info" | "warn" | "success", message: string, - description?: string, ) { switch (type) { case "error": sonnerToast(message, { icon: , - description, }); break; case "info": sonnerToast(message, { icon: , - description, }); break; case "warn": sonnerToast(message, { icon: , - description, }); break; case "success": sonnerToast(message, { icon: , - description, }); break; } diff --git a/packages/storage/package.json b/packages/storage/package.json index 8bc2765..ef28e8b 100644 --- a/packages/storage/package.json +++ b/packages/storage/package.json @@ -15,7 +15,7 @@ }, "dependencies": { "@tensamin/shared": "workspace:*", - "@tensamin/mtp": "workspace:*", + "@tensamin/ttp": "workspace:*", "@tensamin/ui": "*", "react": "^19.2.0", "react-dom": "^19.2.0" diff --git a/packages/storage/src/session.tsx b/packages/storage/src/session.tsx index 992a4df..46f36d6 100644 --- a/packages/storage/src/session.tsx +++ b/packages/storage/src/session.tsx @@ -1,4 +1,4 @@ -import { useMTP } from "@tensamin/mtp"; +import { useTTP } from "@tensamin/ttp"; import { createContext, type ReactNode, @@ -21,7 +21,7 @@ interface SessionContextType { const SessionContext = createContext(undefined); export default function SessionProvider({ children }: { children: ReactNode }) { - const { freshContacts, freshCommunities, freshCalls } = useMTP(); + const { freshContacts, freshCommunities, freshCalls } = useTTP(); const { load, save } = useStorage(); const [contacts, setContacts] = useState([]); const [communities, setCommunities] = useState([]); @@ -29,7 +29,7 @@ export default function SessionProvider({ children }: { children: ReactNode }) { const calls = [ ...freshCalls, ...localCalls.filter( - (call) => !freshCalls.some((fresh) => fresh.CallId === call.CallId), + (call) => !freshCalls.some((fresh) => fresh.call_id === call.call_id), ), ]; @@ -40,7 +40,7 @@ export default function SessionProvider({ children }: { children: ReactNode }) { ...freshContacts, ...cachedData.filter( (item) => - !freshContacts.some((fresh) => fresh.UserId === item.UserId), + !freshContacts.some((fresh) => fresh.user_id === item.user_id), ), ]); }); @@ -69,7 +69,7 @@ export default function SessionProvider({ children }: { children: ReactNode }) { const moveUserIdToTop = (userId: number) => { setContacts((prevContacts) => { const userIndex = prevContacts.findIndex( - (contact) => contact.UserId === userId, + (contact) => contact.user_id === userId, ); if (userIndex === -1) return prevContacts; const [user] = prevContacts.splice(userIndex, 1); @@ -79,13 +79,13 @@ export default function SessionProvider({ children }: { children: ReactNode }) { const insertContact = (userId: number) => { setContacts((prevContacts) => { - if (prevContacts.some((contact) => contact.UserId === userId)) { + if (prevContacts.some((contact) => contact.user_id === userId)) { return prevContacts; } const newUser = { - UserId: userId, - LastMessageAt: new Date().getTime(), + user_id: userId, + last_message_at: new Date().getTime(), messages: [], } satisfies Contacts[0]; @@ -95,7 +95,7 @@ export default function SessionProvider({ children }: { children: ReactNode }) { const insertCall = (call: Calls[number]) => { setLocalCalls((prevCalls) => { - if (prevCalls.some((prevCall) => prevCall.CallId === call.CallId)) { + if (prevCalls.some((prevCall) => prevCall.call_id === call.call_id)) { return prevCalls; } diff --git a/packages/tauth/package.json b/packages/tauth/package.json index ba6e5d3..2e9adf2 100644 --- a/packages/tauth/package.json +++ b/packages/tauth/package.json @@ -18,7 +18,7 @@ "@tensamin/shared": "workspace:*", "@tensamin/storage": "workspace:*", "@tensamin/tauri": "workspace:*", - "@tensamin/mtp": "workspace:*", + "@tensamin/ttp": "workspace:*", "@tensamin/ui": "*", "@tensamin/user": "workspace:*", "lucide-react": "^1.8.0", diff --git a/packages/tauth/src/context.tsx b/packages/tauth/src/context.tsx index 5dea659..0e094a0 100644 --- a/packages/tauth/src/context.tsx +++ b/packages/tauth/src/context.tsx @@ -11,9 +11,9 @@ import { DialogHeader, DialogTitle, } from "@tensamin/ui"; -import { useLocation, useNavigate } from "@tanstack/react-router"; +import { useLocation } from "@tanstack/react-router"; import { useDeeplinks } from "@tensamin/tauri/deeplinkHandler"; -import { useMTP } from "@tensamin/mtp"; +import { useTTP } from "@tensamin/ttp"; import { log, toast } from "@tensamin/shared/log"; import { Loader2 } from "lucide-react"; import { isTauri } from "@tauri-apps/api/core"; @@ -22,47 +22,35 @@ import { decryptText } from "@tensamin/crypto/worker"; export default function Wrapper({ children }: { children: ReactNode }) { const { get } = useUser(); const { load } = useStorage(); - const { send } = useMTP(); + const { send } = useTTP(); const { getSharedSecret } = useCrypto(); const { searchStr } = useLocation(); - const navigate = useNavigate(); const [dialogOpen, setDialogOpen] = useState(false); const [loading, setLoading] = useState(false); const [identifier, setIdentifier] = useState(null); const [redirect, setRedirect] = useState(null); const [challenge, setChallenge] = useState(null); - const [appPublicKey, setAppPublicKey] = useState(null); const [allowChildern, setAllowChildern] = useState(false); const { deeplinks } = useDeeplinks(); const authorizeApp = async () => { - if (!identifier || !redirect || !challenge || !appPublicKey) return; + if (!identifier || !redirect || !challenge) return; try { // Get Data const user = await get(await load("user_id")); const { - data: { content: appPublicKeyHash }, + data: { content: appPublicKey }, } = await send("load_txt_record", { path: "tauth." + identifier, }); - const verifiedAppPublicKeyHash = await sha256Hex(appPublicKey); - if (normalizeHash(appPublicKeyHash) !== verifiedAppPublicKeyHash) { - log(1, "tauth", "red", "App public key hash mismatch", undefined, { - appPublicKey, - appPublicKeyHash, - verifiedAppPublicKeyHash, - }); - throw new Error("App public key hash mismatch"); - } - // Get Shared Secret const sharedSecret = await getSharedSecret( await load("private_key"), - user.PublicKey, + user.public_key, appPublicKey, ).catch((err) => { log(1, "tauth", "red", "Failed to get shared secret", err, { @@ -87,13 +75,13 @@ export default function Wrapper({ children }: { children: ReactNode }) { finalUrl.searchParams.set("challenge", solvedChallenge); finalUrl.searchParams.set("originalChallenge", challenge); - const session = new Date().getTime(); + const session = Date.now(); finalUrl.searchParams.set("sessionId", String(session)); // Save Session await send("create_app", { - AppPublicKey: appPublicKey, - AppIdentifier: identifier, + app_public_key: appPublicKey, + app_identifier: identifier, }); // Open Redirect URL @@ -104,14 +92,11 @@ export default function Wrapper({ children }: { children: ReactNode }) { setIdentifier(null); setRedirect(null); setChallenge(null); - setAppPublicKey(null); toast("success", "App authorized successfully"); return; } else { - navigate({ - to: finalUrl.toString(), - }); + window.location.href = finalUrl.toString(); return; } } catch (err) { @@ -123,27 +108,9 @@ export default function Wrapper({ children }: { children: ReactNode }) { setIdentifier(null); setRedirect(null); setChallenge(null); - setAppPublicKey(null); } }; - async function sha256Hex(value: string): Promise { - const hash = await crypto.subtle.digest( - "SHA-256", - new TextEncoder().encode(value), - ); - return [...new Uint8Array(hash)] - .map((byte) => byte.toString(16).padStart(2, "0")) - .join(""); - } - - function normalizeHash(value: string): string { - return value - .trim() - .toLowerCase() - .replace(/^sha256[:=]/, ""); - } - function hexToBase64(hex: string): string { const bytes = hex.match(/.{2}/g)?.map((byte) => parseInt(byte, 16)) ?? []; const binaryString = String.fromCharCode(...bytes); @@ -155,7 +122,6 @@ export default function Wrapper({ children }: { children: ReactNode }) { const identifier = params.get("identifier"); const redirect = params.get("redirect"); const challenge = params.get("challenge"); - const appPublicKey = params.get("public_key"); if (!identifier || !redirect) { setAllowChildern(true); return; @@ -169,18 +135,10 @@ export default function Wrapper({ children }: { children: ReactNode }) { return; } - if (!appPublicKey) { - toast("error", "Missing app public key"); - log(1, "tauth", "red", "Missing app public key"); - setAllowChildern(true); - return; - } - setAllowChildern(true); setIdentifier(identifier); setRedirect(redirect); setChallenge(hexToBase64(challenge || "")); - setAppPublicKey(appPublicKey); setDialogOpen(true); }); }, [searchStr, load]); @@ -191,13 +149,11 @@ export default function Wrapper({ children }: { children: ReactNode }) { const url = new URL(link); const identifier = url.searchParams.get("identifier"); const redirect = url.searchParams.get("redirect"); - const appPublicKey = url.searchParams.get("public_key"); - if (identifier && redirect && appPublicKey) { + if (identifier && redirect) { setIdentifier(identifier); setRedirect(redirect); setChallenge(hexToBase64(url.searchParams.get("challenge") || "")); - setAppPublicKey(appPublicKey); setDialogOpen(true); } } @@ -214,7 +170,6 @@ export default function Wrapper({ children }: { children: ReactNode }) { setIdentifier(null); setRedirect(null); setChallenge(null); - setAppPublicKey(null); } }} > @@ -250,7 +205,6 @@ export default function Wrapper({ children }: { children: ReactNode }) { setIdentifier(null); setRedirect(null); setChallenge(null); - setAppPublicKey(null); }} > Deny diff --git a/packages/mtp/package.json b/packages/ttp/package.json similarity index 79% rename from packages/mtp/package.json rename to packages/ttp/package.json index 3b7db74..7243f25 100644 --- a/packages/mtp/package.json +++ b/packages/ttp/package.json @@ -1,5 +1,5 @@ { - "name": "@tensamin/mtp", + "name": "@tensamin/ttp", "private": true, "version": "0.0.0", "type": "module", @@ -12,16 +12,16 @@ "build": "tsc -p tsconfig.json --noEmit" }, "dependencies": { - "@tauri-apps/api": "^2", + "@tensamin/ttp-core": "*", + "@tanstack/react-router": "^1.0.0", "@tensamin/crypto": "workspace:*", - "@tensamin/shared": "workspace:*", "@tensamin/storage": "workspace:*", + "@tensamin/shared": "workspace:*", "@tensamin/ui": "*", - "mtp": "*", + "@tauri-apps/api": "^2", "react": "^19.2.0", "react-dom": "^19.2.0", - "tauri-plugin-app-events-api": "^0.2.0", - "zod": "^4.4.2" + "tauri-plugin-app-events-api": "^0.2.0" }, "devDependencies": { "eslint": "^10.0.3" diff --git a/packages/ttp/src/context.tsx b/packages/ttp/src/context.tsx new file mode 100644 index 0000000..50eec69 --- /dev/null +++ b/packages/ttp/src/context.tsx @@ -0,0 +1,730 @@ +import { + useState, + createContext, + type ReactNode, + useRef, + useEffect, + useContext, + useCallback, + useMemo, +} from "react"; +import { useCrypto } from "@tensamin/crypto/context"; +import { log } from "@tensamin/shared/log"; +import { useStorage } from "@tensamin/storage/context"; +import { + createTransportClient, + READY_STATE, + type BoundSendFn, +} from "@tensamin/ttp-core"; +import { isTauri } from "@tauri-apps/api/core"; +import { onResume } from "tauri-plugin-app-events-api"; +import type { PushHandler } from "@tensamin/ttp-core"; +import { + PING_INTERVAL, + RECONNECT_RESET, + RECONNECT_TRIES, + RETRY_INTERVAL, +} from "./values"; +import { + type Calls, + type Communities, + type Contacts, + ttp as schemas, + type TTP as Schemas, +} from "@tensamin/shared/data"; +import { LoadingScreen as Loading } from "@tensamin/ui"; +import { ErrorScreen } from "@tensamin/ui"; + +import { version } from "../../../package.json"; +import { decryptText } from "@tensamin/crypto/worker"; + +const FATAL_IDENTIFICATION_ERROR_TYPES = new Set([ + "error", + "error_invalid_user_id", + "error_no_user_id", + "error_invalid_challenge", + "error_invalid_secret", + "error_invalid_private_key", + "error_invalid_public_key", + "error_not_authenticated", +]); + +/** + * Detects whether an error chain contains a STOP_SENDING transport signal. + * @param error Unknown error value from transport operations. + * @returns True when the error represents a STOP_SENDING condition. + */ +function isStopSendingError(error: unknown) { + if (typeof error === "string") { + return error.includes("STOP_SENDING"); + } + + if (error instanceof Error) { + if (error.message.includes("STOP_SENDING")) { + return true; + } + + const errorWithCause = error as Error & { cause?: unknown }; + if (errorWithCause.cause !== undefined) { + return isStopSendingError(errorWithCause.cause); + } + + return false; + } + + if (typeof error === "object" && error !== null) { + const maybeMessage = (error as { message?: unknown }).message; + if (typeof maybeMessage === "string") { + return maybeMessage.includes("STOP_SENDING"); + } + } + + return false; +} + +/** + * Classifies identification errors that should be treated as terminal. + * @param error Unknown error raised during identification. + * @returns True when identification should fail without retry. + */ +function isFatalIdentificationError(error: unknown) { + if (typeof error === "object" && error !== null && "type" in error) { + const type = (error as { type?: unknown }).type; + if ( + typeof type === "string" && + FATAL_IDENTIFICATION_ERROR_TYPES.has(type) + ) { + return true; + } + } + + if (!(error instanceof Error)) { + return false; + } + + if ( + error.message.includes("Missing or invalid user id") || + error.message.includes("Missing private key") || + error.message.includes("Identification challenge was rejected") || + error.message.includes("timed out after") || + error.message.includes("Response validation failed") + ) { + return true; + } + + return false; +} + +/** + * Extracts structured protocol error details for identification logging. + * @param error Unknown error raised during identification. + * @returns Structured protocol error details when available. + */ +function getProtocolErrorDetails(error: unknown) { + if (typeof error !== "object" || error === null) { + return null; + } + + if (!("type" in error)) { + return null; + } + + const protocolError = error as { + id?: unknown; + type?: unknown; + data?: unknown; + }; + + return { + id: protocolError.id, + type: protocolError.type, + data: protocolError.data, + }; +} + +function isTauriMobile() { + return isTauri() && /Android|iPhone|iPad|iPod/.test(navigator.userAgent); +} + +type ContextType = { + send: BoundSendFn; + subscribePush: (handler: PushHandler) => () => void; + readyState: number; + ownPing: number; + iotaPing: number; + identified: boolean; + freshContacts: Contacts; + freshCommunities: Communities; + freshCalls: Calls; +}; + +const TTPContext = createContext(undefined); + +/** + * Provides ttp transport state and authenticated send operations to children. + * @param props Component props with children. + * @returns Loading, error, or provider-wrapped JSX. + */ +export function Provider(props: { + children: ReactNode; + blockConnection?: boolean; +}) { + const { load } = useStorage(); + const { decrypt, getSharedSecret } = useCrypto(); + + const [readyState, setReadyState] = useState(READY_STATE.CLOSED); + const [connected, setConnected] = useState(false); + const [identified, setIdentified] = useState(false); + const [identifying, setIdentifying] = useState(false); + + const [ownPing, setOwnPing] = useState(0); + const [iotaPing, setIotaPing] = useState(0); + + const [error, setError] = useState(""); + const [errorDescription, setErrorDescription] = useState(""); + + const [freshCommunities, setFreshCommunities] = useState([]); + const [freshContacts, setFreshContacts] = useState([]); + const [freshCalls, setFreshCalls] = useState([]); + + const clientRef = useRef + > | null>(null); + const identificationStartedRef = useRef(false); + const identificationCancelRef = useRef(false); + + // Load ttp url + const [ttpUrl, setTtpUrl] = useState(null); + const [ttpServerCert, setTtpServerCert] = useState(""); + useEffect(() => { + load("ttp_url").then((url) => { + setTtpUrl(url); + }); + load("ttp_server_cert").then((cert) => { + setTtpServerCert(cert.trim()); + }); + }, [load]); + + /** + * Sends typed protocol messages through the active transport client. + * @param type Protocol message type. + * @param data Optional request payload. + * @param options Optional request id. + * @returns A promise for the typed message payload. + */ + const send: BoundSendFn = useMemo( + () => + (( + type: string, + data?: Record, + options?: { id?: number }, + ) => { + const client = clientRef.current; + + if (!client) { + return Promise.reject(new Error("ttp is not connected")); + } + + return client.send(type as keyof Schemas & string, data as never, { + ...options, + }); + }) as BoundSendFn, + [], + ); + + /** + * Subscribes to unsolicited push events from the active transport client. + * @param handler Callback invoked for each push message. + * @returns Unsubscribe function. + */ + const subscribePush = useCallback((handler: PushHandler) => { + const client = clientRef.current; + + if (!client) { + return () => {}; + } + + return client.subscribePush(handler); + }, []); + + // Check for error_no_iota + useEffect(() => { + if (!connected) return; + + return subscribePush((message) => { + if (message.type !== "error_no_iota") return; + + identificationCancelRef.current = true; + setIdentified(false); + setIdentifying(false); + setError("We couldn't reach your Iota"); + setErrorDescription( + "You could try to restart your Iota, check for updates or check your network connection.", + ); + }); + }, [connected, subscribePush]); + + useEffect(() => { + if (!connected || !identified) { + return; + } + + const interval = setInterval(async () => { + try { + const originalNow = Date.now(); + + const data = await send("ping", { + last_ping: originalNow, + }); + + const travelTime = Date.now() - originalNow; + setOwnPing(travelTime); + + const remotePing = data.data.ping_iota; + if (typeof remotePing === "number") { + setIotaPing(remotePing); + } + } catch (intervalError) { + log(1, "ttp", "yellow", "Ping failed", intervalError); + } + }, PING_INTERVAL); + + return () => { + clearInterval(interval); + }; + }, [connected, identified, send]); + + useEffect(() => { + if (!ttpUrl) { + return; + } + + let attempts = 0; + let reconnectTimer: ReturnType | null = null; + let reconnectResetTimer: ReturnType | null = null; + let reconnectScheduled = false; + let disposed = false; + let resumeListenerRegistered = false; + + /** + * Clears any scheduled reconnect timeout and resets scheduling flags. + * @returns Void. + */ + const clearReconnectTimer = () => { + if (!reconnectTimer) { + return; + } + + clearTimeout(reconnectTimer); + reconnectTimer = null; + reconnectScheduled = false; + }; + + /** + * Clears the stability timer that resets reconnect attempt counters. + * @returns Void. + */ + const clearReconnectResetTimer = () => { + if (!reconnectResetTimer) { + return; + } + + clearTimeout(reconnectResetTimer); + reconnectResetTimer = null; + }; + + /** + * Starts the stability timer that resets reconnect attempts after uptime. + * @returns Void. + */ + const scheduleReconnectReset = () => { + clearReconnectResetTimer(); + reconnectResetTimer = setTimeout(() => { + attempts = 0; + reconnectResetTimer = null; + }, RECONNECT_RESET * 1_000); + }; + + /** + * Schedules a delayed reconnect attempt unless retries are exhausted. + * @param reason Optional reason for reconnect scheduling. + * @returns Void. + */ + const scheduleReconnect = (reason?: unknown) => { + if (disposed || reconnectScheduled) { + return; + } + + if (attempts >= RECONNECT_TRIES) { + setError("Connection Failed"); + setErrorDescription( + "Unable to connect to the server after multiple attempts. Please check your internet connection or try again later.", + ); + log(0, "ttp", "red", "Reconnection attempts exhausted", reason); + return; + } + + attempts += 1; + reconnectScheduled = true; + reconnectTimer = setTimeout(() => { + reconnectScheduled = false; + reconnectTimer = null; + void connect(); + }, RETRY_INTERVAL); + }; + + const transportClient = !props.blockConnection + ? createTransportClient(schemas, { + url: ttpUrl, + serverCert: ttpServerCert || undefined, + onReadyStateChange: (state) => { + setReadyState(state); + + if (state === READY_STATE.OPEN) { + clearReconnectTimer(); + scheduleReconnectReset(); + identificationStartedRef.current = false; + identificationCancelRef.current = false; + setConnected(true); + setIdentified(false); + setError(""); + setErrorDescription(""); + return; + } + + clearReconnectResetTimer(); + identificationStartedRef.current = false; + setConnected(false); + setIdentified(false); + setIdentifying(false); + }, + onClose: ({ error: closeError, intentional }) => { + clearReconnectResetTimer(); + setConnected(false); + setIdentified(false); + setIdentifying(false); + + if (disposed || intentional) { + return; + } + + log(0, "ttp", "red", "Disconnected", closeError); + scheduleReconnect(closeError); + }, + }) + : null; + + clientRef.current = transportClient; + + /** + * Establishes the transport connection and schedules reconnect on failures. + * @returns Promise that resolves after one connection attempt. + */ + async function connect() { + if (disposed) { + return; + } + + if (!ttpUrl) { + return; + } + + try { + await transportClient?.connect(ttpUrl); + } catch (connectError) { + if (disposed) { + return; + } + + log(0, "ttp", "red", "Connection attempt failed", connectError); + scheduleReconnect(connectError); + } + } + + /** + * Starts a reconnect after resume only when the transport is disconnected. + * @returns Promise that resolves after any needed resume reconnect starts. + */ + async function reconnectAfterResume() { + if (disposed || !transportClient) { + return; + } + + clearReconnectTimer(); + clearReconnectResetTimer(); + attempts = 0; + reconnectScheduled = false; + setError(""); + setErrorDescription(""); + + await connect(); + } + + void connect(); + + if (!props.blockConnection && isTauriMobile()) { + resumeListenerRegistered = true; + onResume(() => { + void reconnectAfterResume(); + }); + } + + return () => { + disposed = true; + clearReconnectTimer(); + clearReconnectResetTimer(); + + if (resumeListenerRegistered) { + onResume(); + } + + if (clientRef.current === transportClient) { + clientRef.current = null; + } + + void transportClient?.close("context-dispose"); + setReadyState(READY_STATE.CLOSED); + setConnected(false); + setIdentified(false); + setIdentifying(false); + identificationStartedRef.current = false; + }; + }, [props.blockConnection, ttpServerCert, ttpUrl]); + + useEffect(() => { + if (!connected) { + identificationStartedRef.current = false; + return; + } + + if (identificationCancelRef.current) { + identificationStartedRef.current = false; + return; + } + + if (identificationStartedRef.current) { + return; + } + + identificationStartedRef.current = true; + let cancelled = false; + setIdentifying(true); + setIdentified(false); + + /** + * Executes the challenge-response identification handshake. + * @returns Promise that resolves when identification flow completes. + */ + const identify = async () => { + try { + const sessionId = await load("session_id"); + const userId = await load("user_id"); + const privateKey = await load("private_key"); + + if ( + !Number.isSafeInteger(userId) || + userId <= 0 || + privateKey.trim() === "" || + !Number.isSafeInteger(sessionId) || + sessionId <= 0 + ) { + throw new Error("Invalid credentials"); + } + + // Challenge Request + const challengeEnvelope = await send("identification", { + version, + session_id: sessionId, + user_id: userId, + }).catch((challengeError) => { + throw new Error( + "Failed to obtain identification challenge from server", + challengeError, + ); + }); + + // Shared Secret + const sharedSecret = await getSharedSecret( + privateKey, + "", + challengeEnvelope.data.public_key, + ).catch((secretError) => { + throw new Error( + "Failed to derive shared secret for identification", + secretError, + ); + }); + + // Challenge Decryption + const decryptedChallenge = await decryptText( + sharedSecret, + challengeEnvelope.data.challenge, + ).catch((decryptionError) => { + throw new Error( + "Failed to decrypt identification challenge: " + + String(decryptionError), + ); + }); + + // Challenge Response + const finalResponse = await send("challenge_response", { + challenge: decryptedChallenge, + }).catch((error) => { + if (!identificationCancelRef.current) { + setError("Identification Failed"); + setErrorDescription( + "Unable to complete secure identification. Please verify your credentials and try again.", + ); + } + throw error; + }); + + // Data handling + setFreshContacts(finalResponse.data.contacts); + setFreshCommunities(finalResponse.data.communities); + setFreshCalls(finalResponse.data.calls); + if (cancelled || identificationCancelRef.current) { + return; + } + + setError(""); + setErrorDescription(""); + setIdentified(true); + } catch (identificationError) { + if (cancelled) { + return; + } + + if (identificationCancelRef.current) { + return; + } + + if (isStopSendingError(identificationError)) { + setError("Connection closed"); + setErrorDescription( + "The connection was forcefully closed by the Omikron.", + ); + setIdentified(false); + return; + } + + const isFatal = isFatalIdentificationError(identificationError); + const protocolErrorDetails = + getProtocolErrorDetails(identificationError); + + log( + isFatal ? 0 : 1, + "ttp", + isFatal ? "red" : "yellow", + "Identification handshake failed", + protocolErrorDetails ?? identificationError, + ); + + setIdentified(false); + + setError("Identification Failed"); + setErrorDescription( + isFatal + ? "Unable to complete secure identification. Please verify your credentials and try again." + : "Unable to complete secure identification because the transport request failed.", + ); + } finally { + if (!cancelled && !identificationCancelRef.current) { + setIdentifying(false); + } + } + }; + + void identify(); + + return () => { + cancelled = true; + }; + }, [connected, decrypt, getSharedSecret, load, send]); + + const progress = useMemo(() => { + if (!ttpUrl) return 10; + if (readyState === READY_STATE.CONNECTING) return 30; + if (!connected) return 45; + if (identifying) return 75; + if (!identified) return 90; + return 100; + }, [connected, identified, identifying, readyState, ttpUrl]); + + const loadingTitle = useMemo(() => { + if (!ttpUrl) { + return "Looking up configuration"; + } + + if (readyState === READY_STATE.CONNECTING || !connected) { + return "Connecting to Tensamin"; + } + + if (identifying || !identified) { + return "Identifying secure session"; + } + + return "Loading"; + }, [connected, identified, identifying, readyState, ttpUrl]); + + const loadingDescription = useMemo(() => { + if (!ttpUrl) { + return "Loading connection details"; + } + + if (readyState === READY_STATE.CONNECTING || !connected) { + return "Establishing transport channel"; + } + + if (identifying || !identified) { + return "Verifying challenge-response handshake"; + } + + return undefined; + }, [connected, identified, identifying, readyState, ttpUrl]); + + if (error !== "" && errorDescription !== "") { + return ; + } + + if (!connected || !identified || !ttpUrl) { + return ( + + ); + } + + return ( + + {props.children} + + ); +} + +/** + * Returns the active ttp context and enforces provider usage. + * @returns ttp context API for transport operations and connection state. + */ +export function useTTP(): ContextType { + const context = useContext(TTPContext); + if (!context) { + throw new Error("useTTP must be used within a TTPProvider"); + } + return context; +} diff --git a/packages/ttp/src/index.ts b/packages/ttp/src/index.ts new file mode 100644 index 0000000..e1a274f --- /dev/null +++ b/packages/ttp/src/index.ts @@ -0,0 +1,3 @@ +export * from "@tensamin/ttp-core"; +export * from "./context"; +export * from "./values"; diff --git a/packages/mtp/src/values.ts b/packages/ttp/src/values.ts similarity index 66% rename from packages/mtp/src/values.ts rename to packages/ttp/src/values.ts index b95efe4..ae72d43 100644 --- a/packages/mtp/src/values.ts +++ b/packages/ttp/src/values.ts @@ -1,3 +1,5 @@ +export const RESPONSE_TIMEOUT = 15_000; +export const RETRY_COUNT = 10; export const RETRY_INTERVAL = 3_000; export const PING_INTERVAL = 3_000; export const RECONNECT_TRIES = 3; diff --git a/packages/ttp/tsconfig.json b/packages/ttp/tsconfig.json new file mode 100644 index 0000000..9714625 --- /dev/null +++ b/packages/ttp/tsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "bundler", + "jsx": "react-jsx", + "strict": true, + "skipLibCheck": true, + "noEmit": true + }, + "include": ["src"] +} diff --git a/packages/user/package.json b/packages/user/package.json index bb49cec..ced2f84 100644 --- a/packages/user/package.json +++ b/packages/user/package.json @@ -14,7 +14,7 @@ "build": "tsc -p tsconfig.json --noEmit" }, "dependencies": { - "@tensamin/mtp": "workspace:*", + "@tensamin/ttp": "workspace:*", "@tensamin/shared": "workspace:*", "@tensamin/storage": "workspace:*", "react": "^19.2.0", diff --git a/packages/user/src/context.tsx b/packages/user/src/context.tsx index 84e56ec..962152a 100644 --- a/packages/user/src/context.tsx +++ b/packages/user/src/context.tsx @@ -1,7 +1,7 @@ import * as React from "react"; -import { useMTP } from "@tensamin/mtp"; +import { useTTP } from "@tensamin/ttp"; -import { mtp as schemas } from "@tensamin/shared/data"; +import { ttp as schemas } from "@tensamin/shared/data"; import type z from "zod"; export type User = z.infer; @@ -23,7 +23,7 @@ export default function UserProvider(props: { children: React.ReactNode }) { {}, ); - const { send } = useMTP(); + const { send } = useTTP(); /** * Executes get. @@ -47,7 +47,7 @@ export default function UserProvider(props: { children: React.ReactNode }) { } const request = (async () => { - const userData = await send("get_user_data", { UserId: userId }); + const userData = await send("get_user_data", { user_id: userId }); const user = { ...userData.data, avatar: userData.data.avatar diff --git a/readme.md b/readme.md index ff7c637..58c21e6 100644 --- a/readme.md +++ b/readme.md @@ -1,3 +1,3 @@ # Information -All dev releases get deleted upon creation of the latest prod release. +All dev releases between two prod version get deleted upon creation of the latest prod release. diff --git a/scripts/copy-releases.ts b/scripts/copy-releases.ts index fcfca46..194228a 100644 --- a/scripts/copy-releases.ts +++ b/scripts/copy-releases.ts @@ -9,7 +9,7 @@ import { statSync, } from "node:fs"; import { createHash } from "node:crypto"; -import { basename, join } from "node:path"; +import { join } from "node:path"; import packageJson from "../package.json" with { type: "json" }; const { version } = packageJson; @@ -57,18 +57,6 @@ if (existsSync(apkSrc)) { // Electron desktop artifacts const electronReleaseDir = "apps/electron/release"; -const electronArtifactPattern = /\.(AppImage|deb|rpm|exe|dmg|zip)$/i; - -function readFilesRecursive(dir: string): string[] { - return readdirSync(dir).flatMap((file) => { - const filePath = join(dir, file); - const stat = statSync(filePath); - - if (stat.isDirectory()) return readFilesRecursive(filePath); - if (stat.isFile()) return [filePath]; - return []; - }); -} const copyElectronArtifacts = () => { if (!existsSync(electronReleaseDir)) { @@ -78,9 +66,12 @@ const copyElectronArtifacts = () => { return; } - for (const source of readFilesRecursive(electronReleaseDir)) { - const file = basename(source); - if (!electronArtifactPattern.test(file)) continue; + for (const file of readdirSync(electronReleaseDir)) { + if (file.endsWith(".blockmap") || file.endsWith(".yml")) continue; + if (!file.includes(version) && !file.includes(releaseVersion)) continue; + + const source = join(electronReleaseDir, file); + if (!statSync(source).isFile()) continue; copyFileSync(source, join(releasesDir, file)); } diff --git a/todo.md b/todo.md index d3665c2..837b847 100644 --- a/todo.md +++ b/todo.md @@ -1,2 +1 @@ - Move legal to extra onboarding package -- Add a bunch of tests diff --git a/type-maps.yaml b/type-maps.yaml deleted file mode 100644 index b542504..0000000 --- a/type-maps.yaml +++ /dev/null @@ -1,69 +0,0 @@ -protocol_version: "0.0" - -type_maps: - "0.0": - CommunicationTypes: - TempCoolType: 32 - GetUserData: 34 - ChangeUserData: 35 - MessageLive: 36 - MessagesGet: 37 - MessageSend: 38 - AddConversation: 39 - MessageState: 40 - LoadTxtRecord: 41 - AuthenticateApp: 42 - CreateApp: 43 - CallToken: 44 - CallData: 45 - CallInvite: 46 - AppPing: 47 - ErrorNoIota: 48 - DataTypes: - About: 32 - AppIdentifier: 33 - AppPublicKey: 34 - Avatar: 35 - CallId: 36 - CallMembers: 37 - CallSecret: 38 - CallToken: 39 - Calls: 40 - Challenge: 41 - ChatPartnerId: 42 - ChatPartnerName: 43 - Communities: 44 - CommunityId: 45 - Contacts: 46 - Content: 47 - Display: 48 - Files: 49 - Height: 50 - IotaId: 51 - LastMessage: 52 - LastMessageAt: 53 - LastPing: 54 - Message: 55 - MessageState: 56 - Messages: 57 - Name: 58 - Offset: 59 - OmikronConnections: 60 - OmikronId: 61 - OnlineStatus: 62 - Path: 63 - PingIota: 64 - PublicKey: 65 - ReceiverId: 66 - SendTime: 67 - SenderId: 68 - SessionId: 69 - Status: 70 - SubEnd: 71 - SubLevel: 72 - Tint: 73 - Type: 74 - UserId: 75 - UserIds: 76 - Username: 77 - AppVersion: 78