{ description = "Development Environment"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self , nixpkgs , flake-utils , }: flake-utils.lib.eachDefaultSystem ( system: let pkgs = nixpkgs.legacyPackages.${system}; runtimePath = pkgs.lib.makeBinPath [ pkgs.firefox pkgs.geckodriver ]; source = builtins.path { path = ./.; name = "glimpse-source"; filter = path: type: let name = baseNameOf path; in !(builtins.elem name [ ".direnv" ".git" "node_modules" "result" ]); }; in { packages.default = pkgs.buildNpmPackage { pname = "glimpse"; version = "1.0.0"; src = source; npmDepsHash = "sha256-ycAjPZZqI3ZMIUubJbWy8G6X6LaXDcgdZGswikfkQj8="; npmBuildScript = "build"; nativeBuildInputs = [ pkgs.makeWrapper ]; postInstall = '' wrapProgram $out/bin/glimpse \ --prefix PATH : ${runtimePath} ''; }; apps.glimpse = { type = "app"; program = "${self.packages.${system}.default}/bin/glimpse"; }; apps.default = self.apps.${system}.glimpse; devShells.default = pkgs.mkShell { packages = with pkgs; [ nodejs_22 firefox geckodriver typescript-language-server ]; }; } ); }