{ inputs.protocol.url = "git+https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-protocol.git?ref=refs/tags/quixos-reachability/5b44c8154dc038efd87cf1cbdd2c00b66bfd4f87&rev=5b44c8154dc038efd87cf1cbdd2c00b66bfd4f87"; inputs.nixpkgs.follows = "protocol/nixpkgs"; inputs.flake-utils.follows = "protocol/flake-utils"; inputs.helpers = { url = "git+https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-nix-helpers.git?ref=refs/tags/quixos-reachability/91679e8cc82133093cb0b4f9e519cbb39a5bba4f&rev=91679e8cc82133093cb0b4f9e519cbb39a5bba4f"; flake = false; }; outputs = { nixpkgs, flake-utils, helpers, ... }: flake-utils.lib.eachDefaultSystem ( system: let pkgs = import nixpkgs { inherit system; }; camino = import (helpers + "/quixos-package-helpers.nix"); in { quixosPackages.checkedArtifacts = context: let pkgs = camino.packageSet { inherit nixpkgs system context; }; # Gutenberg regenerates its feed daily. Keep the reviewed bytes in # the source revision so a clean machine can still build old pins. catalog = ./catalog.csv.gz; source = pkgs.runCommand "gutenberg-source" { nativeBuildInputs = [ pkgs.nodejs_24 pkgs.gzip ]; } '' cp -r ${./.} "$out" chmod -R u+w "$out" gzip -dc ${catalog} > catalog.csv node "$out/build-index.mjs" catalog.csv "$out/src/index-data.ts" ''; portable = camino.mkCaminoTypeScriptPackage { inherit pkgs context; src = source; entry = "src/portable.ts"; }; remote = camino.mkCaminoTypeScriptService { inherit pkgs context; src = source; entry = "src/remote.ts"; }; in camino.assembleCaminoPackage { inherit pkgs context; artifacts = [ portable remote ]; }; devShells.default = camino.mkCaminoYarnShell { inherit pkgs; }; } ); }