{ lib , buildNpmPackage , fetchFromGitHub , git , nixosTests , python3 }: let version = "2023.7.1"; bw_web_builds = fetchFromGitHub { owner = "dani-garcia"; repo = "bw_web_builds"; rev = "v${version}"; hash = "sha256-B7FGLKuwxldlHnIIzQbDjZT9cs5+lixo/fBtlexNLQc="; }; in buildNpmPackage rec { pname = "vaultwarden-webvault"; inherit version; src = fetchFromGitHub { owner = "bitwarden"; repo = "clients"; rev = "web-v${lib.removeSuffix "b" version}"; hash = "sha256-HEEUboaIY/Zi/wUhp9y7oIOuQl6csjo97eygTLPNfNo="; }; npmDepsHash = "sha256-8Epkvjzllt//kdrKT4jUDOhj47Fnb0qSFU1qJthL2Mo="; 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 = [ python3 ]; makeCacheWritable = true; ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; npmBuildScript = "dist:oss:selfhost"; npmBuildFlags = [ "--workspace" "apps/web" ]; 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"; platforms = platforms.all; license = licenses.gpl3Plus; maintainers = with maintainers; [ dotlambda msteen mic92 ]; }; }