NiJS: An internal DSL for Nix in JavaScript