{ lib , buildNpmPackage , fetchFromGitHub , git , nixosTests , python311 , vaultwarden }: let version = "2024.5.1b"; bw_web_builds = fetchFromGitHub { owner = "dani-garcia"; repo = "bw_web_builds"; rev = "v${version}"; hash = "sha256-5nlFt05ari9ovl+CaoyR/X9BzhsmsGyDt6eGLJ5ae/4="; }; in buildNpmPackage rec { pname = "vaultwarden-webvault"; inherit version; src = fetchFromGitHub { owner = "bitwarden"; repo = "clients"; rev = "web-v${lib.removeSuffix "b" version}"; hash = "sha256-U/lAt2HfoHGMu6mOki/4+ljhU9FwkodvFBr5zcDO8Wk="; }; npmDepsHash = "sha256-ui00afmnu77CTT9gh6asc4uT7AhVIuiD60sq/1f9viA="; postPatch = '' ln -s ${bw_web_builds}/{patches,resources} .. PATH="${git}/bin:$PATH" VAULT_VERSION="${lib.removePrefix "web-" src.rev}" \ bash ${bw_web_builds}/scripts/apply_patches.sh ''; nativeBuildInputs = [ # signalr through gyp wants to import distutils python311 ]; makeCacheWritable = true; ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; npmBuildScript = "dist:oss:selfhost"; npmBuildFlags = [ "--workspace" "apps/web" ]; npmFlags = [ "--legacy-peer-deps" ]; installPhase = '' runHook preInstall mkdir -p $out/share/vaultwarden mv apps/web/build $out/share/vaultwarden/vault runHook postInstall ''; passthru = { inherit bw_web_builds; tests = nixosTests.vaultwarden; }; meta = with lib; { description = "Integrates the web vault into vaultwarden"; homepage = "https://github.com/dani-garcia/bw_web_builds"; changelog = "https://github.com/dani-garcia/bw_web_builds/releases/tag/v${version}"; platforms = platforms.all; license = licenses.gpl3Plus; inherit (vaultwarden.meta) maintainers; }; }