{ description = "Imphnen Frontend Service - Nx Monorepo"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, flake-utils }: let npmDepsHash = "sha256-pzH4uRpuJWBglMFlQ9Q0Sjk689ds3syrJ4Stod21ARU="; mkViteApp = { pkgs, src }: { name, buildScript, envVars ? {} }: pkgs.buildNpmPackage { pname = "imphnen-${name}"; version = "0.0.1"; inherit src npmDepsHash; npmFlags = [ "--legacy-peer-deps" ]; makeCacheWritable = true; nativeBuildInputs = with pkgs; [ nodejs_22 util-linux ]; buildPhase = '' runHook preBuild export NX_DAEMON=false HOME=$TMPDIR CI=true NO_COLOR=1 TERM=dumb export NX_SKIP_NX_CACHE=true NX_TASKS_RUNNER_DYNAMIC_OUTPUT=false NX_NATIVE=false ${pkgs.lib.concatStringsSep "\n" (pkgs.lib.mapAttrsToList (k: v: "export ${k}=\"${v}\"") envVars)} script -q -c "./node_modules/.bin/nx build ${name} --output-style=static" /dev/null || true test -d dist/apps/${name} runHook postBuild ''; installPhase = '' runHook preInstall mkdir -p $out cp -r dist/apps/${name}/* $out/ runHook postInstall ''; dontNpmBuild = true; }; mkLandingApp = { pkgs, src }: pkgs.buildNpmPackage { pname = "imphnen-landing"; version = "0.0.1"; inherit src npmDepsHash; npmFlags = [ "--legacy-peer-deps" ]; makeCacheWritable = true; nativeBuildInputs = with pkgs; [ nodejs_22 python3 ]; buildPhase = '' runHook preBuild export NX_DAEMON=false HOME=$TMPDIR CI=true NO_COLOR=1 TERM=dumb export NX_SKIP_NX_CACHE=true NX_TASKS_RUNNER_DYNAMIC_OUTPUT=false NX_NATIVE=false ./node_modules/.bin/nx build landing --output-style=static runHook postBuild ''; installPhase = '' runHook preInstall mkdir -p $out/bin $out/share/landing cp -r dist/apps/landing/.next/standalone/* $out/share/landing/ mkdir -p $out/share/landing/apps/landing/public cp -r dist/apps/landing/public/* $out/share/landing/apps/landing/public/ || true mkdir -p $out/share/landing/dist/apps/landing/.next/static cp -r dist/apps/landing/.next/static/* $out/share/landing/dist/apps/landing/.next/static/ cat > $out/bin/imphnen-landing <