elmPackages: migrate easily doable packages from internal nodePackages (#461751)
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
lib,
|
||||
makeWrapper,
|
||||
nodejs ? pkgs.nodejs_20,
|
||||
config,
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -22,19 +23,7 @@ let
|
||||
;
|
||||
};
|
||||
|
||||
# Patched, originally npm-downloaded, packages
|
||||
patchedNodePkgs = import ./packages/node {
|
||||
inherit
|
||||
pkgs
|
||||
lib
|
||||
nodejs
|
||||
makeWrapper
|
||||
;
|
||||
};
|
||||
|
||||
assembleScope =
|
||||
self: basics:
|
||||
(hs98Pkgs self).elmPkgs // (hs96Pkgs self).elmPkgs // (patchedNodePkgs self) // basics;
|
||||
assembleScope = self: basics: (hs98Pkgs self).elmPkgs // (hs96Pkgs self).elmPkgs // basics;
|
||||
in
|
||||
lib.makeScope pkgs.newScope (
|
||||
self:
|
||||
@@ -43,27 +32,47 @@ lib.makeScope pkgs.newScope (
|
||||
{
|
||||
inherit fetchElmDeps nodejs;
|
||||
|
||||
/*
|
||||
Node/NPM based dependencies can be upgraded using script `packages/generate-node-packages.sh`.
|
||||
|
||||
* Packages which depend on npm installation of elm can be patched using
|
||||
`patchNpmElm` function defined in `packages/lib.nix`.
|
||||
*/
|
||||
elmLib = import ./lib {
|
||||
inherit lib;
|
||||
inherit (pkgs) writeScriptBin stdenv;
|
||||
inherit (self) elm;
|
||||
};
|
||||
|
||||
elm-analyse = callPackage ./packages/elm-analyse { };
|
||||
|
||||
elm-doc-preview = callPackage ./packages/elm-doc-preview { };
|
||||
|
||||
elm-git-install = callPackage ./packages/elm-git-install { };
|
||||
|
||||
elm-graphql = callPackage ./packages/elm-graphql { };
|
||||
|
||||
elm-json = callPackage ./packages/elm-json { };
|
||||
|
||||
elm-language-server = callPackage ./packages/elm-language-server { };
|
||||
|
||||
elm-live = callPackage ./packages/elm-live { };
|
||||
|
||||
elm-optimize-level-2 = callPackage ./packages/elm-optimize-level-2 { };
|
||||
|
||||
elm-review = callPackage ./packages/elm-review { };
|
||||
|
||||
elm-spa = callPackage ./packages/elm-spa { };
|
||||
|
||||
elm-test-rs = callPackage ./packages/elm-test-rs { };
|
||||
|
||||
elm-test = callPackage ./packages/elm-test { };
|
||||
|
||||
elm-upgrade = callPackage ./packages/elm-upgrade { };
|
||||
|
||||
elm-verify-examples = callPackage ./packages/elm-verify-examples { };
|
||||
|
||||
elm-xref = callPackage ./packages/elm-xref { };
|
||||
|
||||
lamdera = callPackage ./packages/lamdera { };
|
||||
}
|
||||
// lib.optionalAttrs config.allowAliases {
|
||||
create-elm-app = throw "'elmPackages.create-elm-app' has not had a release since December 2020, so it was removed."; # Added 2025-11-15
|
||||
elm-pages = throw "'elmPackages.elm-pages' has been removed, as it was broken in nixpkgs and was not maintained."; # Added 2025-11-15
|
||||
}
|
||||
)
|
||||
)
|
||||
|
||||
@@ -9,6 +9,4 @@ Please refer to [nix documentation](https://nixos.org/nixpkgs/manual/#how-to-cre
|
||||
and [cabal2nix readme](https://github.com/NixOS/cabal2nix#readme) for more information. Elm-format [update scripts](https://github.com/avh4/elm-format/tree/master/package/nix)
|
||||
is part of its repository.
|
||||
|
||||
Node dependencies are defined in [node-packages.json](node/node-packages.json).
|
||||
[Node2nix](https://github.com/svanderburg/node2nix) is used for generating nix expression
|
||||
from this file. Use [generate-node-packages.sh](node/generate-node-packages.sh) for updates of nix expressions.
|
||||
Node dependencies are defined with [`buildNpmPackage`](https://nixos.org/manual/nixpkgs/stable/#javascript-buildNpmPackage).
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
{
|
||||
lib,
|
||||
buildNpmPackage,
|
||||
fetchFromGitHub,
|
||||
elmPackages,
|
||||
}:
|
||||
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "elm-analyse";
|
||||
version = "0.16.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "stil4m";
|
||||
repo = "elm-analyse";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-GFHhHf+JOXGcm0CZEDGMuuTR3CXBdSkYDGRHZ63pE64=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-B/PzGOaxdKSt82ax0izeadsMsz+I0v4wkye3zgNxMF8=";
|
||||
|
||||
npmFlags = [ "--ignore-scripts" ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
elmPackages.elm
|
||||
];
|
||||
|
||||
postConfigure =
|
||||
(elmPackages.fetchElmDeps {
|
||||
elmPackages = import ./elm-srcs.nix;
|
||||
elmVersion = elmPackages.elm.version;
|
||||
registryDat = ./registry.dat;
|
||||
})
|
||||
+ ''
|
||||
ln -sf ${lib.getExe elmPackages.elm} node_modules/.bin/elm
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
make
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
rm -rf $out/lib/node_modules/elm-analyse/node_modules/.bin/
|
||||
'';
|
||||
|
||||
passthru.updateScript = ./update.sh;
|
||||
|
||||
meta = {
|
||||
description = "Analyse your Elm code, identify deficiencies and apply best practices";
|
||||
homepage = "https://stil4m.github.io/elm-analyse/";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ pyrox0 ];
|
||||
mainProgram = "elm-analyse";
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,152 @@
|
||||
{
|
||||
|
||||
"alex-tan/elm-dialog" = {
|
||||
sha256 = "13dfpzrdi69jaj0hj2cnwg3g6wafhszg0grjw4z3imd0b9avz1hk";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"elm-community/dict-extra" = {
|
||||
sha256 = "05ll04wf03m8ic109dz2dbq6pah23m70c4wwyr35026dhmws35n0";
|
||||
version = "2.4.0";
|
||||
};
|
||||
|
||||
"elm-community/graph" = {
|
||||
sha256 = "1rwsq2126q0rb4vmy95ajxfm3m063d6lw0p90d510nzcrbm9bxbc";
|
||||
version = "6.0.0";
|
||||
};
|
||||
|
||||
"elm-community/intdict" = {
|
||||
sha256 = "09i1fk63gp6sr6kc6ccs8g0kxvqhw5czghi9cl8flizanrgcmva1";
|
||||
version = "3.0.0";
|
||||
};
|
||||
|
||||
"elm-community/list-extra" = {
|
||||
sha256 = "06ddwrc0ai0pn5mw99a1d9xnihkliyvq0qvzn32z1l88msflrib7";
|
||||
version = "8.2.2";
|
||||
};
|
||||
|
||||
"elm-community/maybe-extra" = {
|
||||
sha256 = "10jykkdmqpvhbcm50867a894272j4z6jc9r5jy35cz8jfi9j8xv9";
|
||||
version = "5.0.0";
|
||||
};
|
||||
|
||||
"elm-explorations/markdown" = {
|
||||
sha256 = "0k3110ixa4wwf3vkkdplagwah9ypr965qxr1y147rnsc1xsxmr6y";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"elm/browser" = {
|
||||
sha256 = "1zlmx672glg7fdgkvh5jm47y85pv7pdfr5mkhg6x7ar6k000vyka";
|
||||
version = "1.0.1";
|
||||
};
|
||||
|
||||
"elm/core" = {
|
||||
sha256 = "1l0qdbczw91kzz8sx5d5zwz9x662bspy7p21dsr3f2rigxiix2as";
|
||||
version = "1.0.2";
|
||||
};
|
||||
|
||||
"elm/html" = {
|
||||
sha256 = "1n3gpzmpqqdsldys4ipgyl1zacn0kbpc3g4v3hdpiyfjlgh8bf3k";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"elm/http" = {
|
||||
sha256 = "1igmm89ialzrjib1j8xagkxalq1x2gj4l0hfxcd66mpwmvg7psl8";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"elm/json" = {
|
||||
sha256 = "0kjwrz195z84kwywaxhhlnpl3p251qlbm5iz6byd6jky2crmyqyh";
|
||||
version = "1.1.3";
|
||||
};
|
||||
|
||||
"elm/parser" = {
|
||||
sha256 = "0a3cxrvbm7mwg9ykynhp7vjid58zsw03r63qxipxp3z09qks7512";
|
||||
version = "1.1.0";
|
||||
};
|
||||
|
||||
"elm/project-metadata-utils" = {
|
||||
sha256 = "1d4rd4grrnbdvj9gf00h7dr6hbkjzawgkzpizfrkp1z1pyr3mvq9";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"elm/regex" = {
|
||||
sha256 = "0lijsp50w7n1n57mjg6clpn9phly8vvs07h0qh2rqcs0f1jqvsa2";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"elm/time" = {
|
||||
sha256 = "0vch7i86vn0x8b850w1p69vplll1bnbkp8s383z7pinyg94cm2z1";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"elm/url" = {
|
||||
sha256 = "0av8x5syid40sgpl5vd7pry2rq0q4pga28b4yykn9gd9v12rs3l4";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"krisajenkins/remotedata" = {
|
||||
sha256 = "0sjrgpsy4aci0h6qndqx70cnfd065hlkh1rxk0lc93z22sdj4knl";
|
||||
version = "5.0.0";
|
||||
};
|
||||
|
||||
"rundis/elm-bootstrap" = {
|
||||
sha256 = "155rqa2hh9h5s0ryqv4pn40vwl2klk3zg8b2xf48z5ky8fdrr31c";
|
||||
version = "5.2.0";
|
||||
};
|
||||
|
||||
"stil4m/elm-syntax" = {
|
||||
sha256 = "182fz12a115j3wz3fkc209mq8rbbqmvl237pmrvygmvbxwv4ix37";
|
||||
version = "7.1.1";
|
||||
};
|
||||
|
||||
"avh4/elm-color" = {
|
||||
sha256 = "0n16wnvp87x9az3m5qjrl6smsg7051m719xn5d244painx8xmpzq";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"avh4/elm-fifo" = {
|
||||
sha256 = "1ka0iz2psr75h4qz7hh5z1prclah1nais9aaycaxapfd7inqmrrc";
|
||||
version = "1.0.4";
|
||||
};
|
||||
|
||||
"elm-community/json-extra" = {
|
||||
sha256 = "0hwlhdlvd5xi866m9bpnabcg2qrgcvfj34p1x1mhx85ymr3gv9mv";
|
||||
version = "4.2.0";
|
||||
};
|
||||
|
||||
"elm/virtual-dom" = {
|
||||
sha256 = "0q1v5gi4g336bzz1lgwpn5b1639lrn63d8y6k6pimcyismp2i1yg";
|
||||
version = "1.0.2";
|
||||
};
|
||||
|
||||
"etaque/elm-response" = {
|
||||
sha256 = "0vydmczvlxkvbjsjpfwad5m77y3155dp8wx648xf1ya3vsy4m5kf";
|
||||
version = "3.1.0";
|
||||
};
|
||||
|
||||
"rtfeldman/elm-hex" = {
|
||||
sha256 = "1y0aa16asvwdqmgbskh5iba6psp43lkcjjw9mgzj3gsrg33lp00d";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"rtfeldman/elm-iso8601-date-strings" = {
|
||||
sha256 = "1fa5sslklldy0dq8bm0zdkb9ni50yxhb09xb6lgk00x55bmza9ik";
|
||||
version = "1.1.3";
|
||||
};
|
||||
|
||||
"stil4m/structured-writer" = {
|
||||
sha256 = "0xr95m8k42vwyff91vfd4q59fhnmhywyj20nzxqhl7blk82hnwj0";
|
||||
version = "1.0.2";
|
||||
};
|
||||
|
||||
"elm-explorations/test" = {
|
||||
sha256 = "1fsd7bajm7qa93r5pn3mdafqh3blpzya601jbs9l238p0hmvh576";
|
||||
version = "1.2.2";
|
||||
};
|
||||
|
||||
"elm/random" = {
|
||||
sha256 = "138n2455wdjwa657w6sjq18wx2r0k60ibpc4frhbqr50sncxrfdl";
|
||||
version = "1.0.0";
|
||||
};
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#! nix-shell -i bash -p nix-update elm2nix nixfmt
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
PACKAGE_DIR=$(realpath "$(dirname "$0")")
|
||||
|
||||
# Update version, src and npm deps
|
||||
nix-update "$UPDATE_NIX_ATTR_PATH"
|
||||
|
||||
# Update elm deps
|
||||
cp "$(nix-build -A "$UPDATE_NIX_ATTR_PATH".src)/elm.json" elm.json
|
||||
trap 'rm -rf elm.json registry.dat &> /dev/null' EXIT
|
||||
elm2nix convert >"$PACKAGE_DIR/elm-srcs.nix"
|
||||
nixfmt "$PACKAGE_DIR/elm-srcs.nix"
|
||||
elm2nix snapshot
|
||||
cp registry.dat "$PACKAGE_DIR/registry.dat"
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
lib,
|
||||
buildNpmPackage,
|
||||
fetchFromGitHub,
|
||||
elmPackages,
|
||||
}:
|
||||
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "elm-doc-preview";
|
||||
version = "6.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dmy";
|
||||
repo = "elm-doc-preview";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-nkmNp8oXaGQH8ES69ci+/flhvgtLM/vdiBvOqWA3pZ0=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-mGDXhPU2dwTwbJZPi5tUoSMTmzauHBBU1QN2IyZ1YBA=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
elmPackages.elm
|
||||
];
|
||||
|
||||
npmRebuildFlags = [ "--ignore-scripts" ];
|
||||
|
||||
npmBuildScript = "prepare";
|
||||
|
||||
postConfigure = (
|
||||
elmPackages.fetchElmDeps {
|
||||
elmPackages = import ./elm-srcs.nix;
|
||||
elmVersion = elmPackages.elm.version;
|
||||
registryDat = ./registry.dat;
|
||||
}
|
||||
);
|
||||
|
||||
passthru.updateScript = ./update.sh;
|
||||
|
||||
meta = {
|
||||
description = "Elm offline documentation previewer";
|
||||
homepage = "https://github.com/dmy/elm-doc-preview";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [ pyrox0 ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,77 @@
|
||||
{
|
||||
|
||||
"elm-explorations/markdown" = {
|
||||
sha256 = "0k3110ixa4wwf3vkkdplagwah9ypr965qxr1y147rnsc1xsxmr6y";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"elm/browser" = {
|
||||
sha256 = "0nagb9ajacxbbg985r4k9h0jadqpp0gp84nm94kcgbr5sf8i9x13";
|
||||
version = "1.0.2";
|
||||
};
|
||||
|
||||
"elm/core" = {
|
||||
sha256 = "19w0iisdd66ywjayyga4kv2p1v9rxzqjaxhckp8ni6n8i0fb2dvf";
|
||||
version = "1.0.5";
|
||||
};
|
||||
|
||||
"elm/html" = {
|
||||
sha256 = "1n3gpzmpqqdsldys4ipgyl1zacn0kbpc3g4v3hdpiyfjlgh8bf3k";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"elm/http" = {
|
||||
sha256 = "008bs76mnp48b4dw8qwjj4fyvzbxvlrl4xpa2qh1gg2kfwyw56v1";
|
||||
version = "2.0.0";
|
||||
};
|
||||
|
||||
"elm/json" = {
|
||||
sha256 = "0kjwrz195z84kwywaxhhlnpl3p251qlbm5iz6byd6jky2crmyqyh";
|
||||
version = "1.1.3";
|
||||
};
|
||||
|
||||
"elm/parser" = {
|
||||
sha256 = "0a3cxrvbm7mwg9ykynhp7vjid58zsw03r63qxipxp3z09qks7512";
|
||||
version = "1.1.0";
|
||||
};
|
||||
|
||||
"elm/project-metadata-utils" = {
|
||||
sha256 = "13vj9341lx4brpislv37d60gbf60fw6qzrg4dwaprx7xm5wqnlmx";
|
||||
version = "1.0.1";
|
||||
};
|
||||
|
||||
"elm/svg" = {
|
||||
sha256 = "1cwcj73p61q45wqwgqvrvz3aypjyy3fw732xyxdyj6s256hwkn0k";
|
||||
version = "1.0.1";
|
||||
};
|
||||
|
||||
"elm/time" = {
|
||||
sha256 = "0vch7i86vn0x8b850w1p69vplll1bnbkp8s383z7pinyg94cm2z1";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"elm/url" = {
|
||||
sha256 = "0av8x5syid40sgpl5vd7pry2rq0q4pga28b4yykn9gd9v12rs3l4";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"ryan-haskell/date-format" = {
|
||||
sha256 = "18r9h72h3i507snjf5aw099s2ymv2qsr3x3ibnsmap407s98355y";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"elm/bytes" = {
|
||||
sha256 = "02ywbf52akvxclpxwj9n04jydajcbsbcbsnjs53yjc5lwck3abwj";
|
||||
version = "1.0.8";
|
||||
};
|
||||
|
||||
"elm/file" = {
|
||||
sha256 = "1rljcb41dl97myidyjih2yliyzddkr2m7n74x7gg46rcw4jl0ny8";
|
||||
version = "1.0.5";
|
||||
};
|
||||
|
||||
"elm/virtual-dom" = {
|
||||
sha256 = "0q1v5gi4g336bzz1lgwpn5b1639lrn63d8y6k6pimcyismp2i1yg";
|
||||
version = "1.0.2";
|
||||
};
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#! nix-shell -i bash -p nix-update elm2nix nixfmt
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
PACKAGE_DIR=$(realpath "$(dirname "$0")")
|
||||
|
||||
# Update version, src and npm deps
|
||||
nix-update "$UPDATE_NIX_ATTR_PATH"
|
||||
|
||||
# Update elm deps
|
||||
cp "$(nix-build -A "$UPDATE_NIX_ATTR_PATH".src)/elm.json" elm.json
|
||||
trap 'rm -rf elm.json registry.dat &> /dev/null' EXIT
|
||||
elm2nix convert >"$PACKAGE_DIR/elm-srcs.nix"
|
||||
nixfmt "$PACKAGE_DIR/elm-srcs.nix"
|
||||
elm2nix snapshot
|
||||
cp registry.dat "$PACKAGE_DIR/registry.dat"
|
||||
@@ -0,0 +1,33 @@
|
||||
{
|
||||
lib,
|
||||
buildNpmPackage,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "elm-git-install";
|
||||
version = "0.1.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "robinheghan";
|
||||
repo = "elm-git-install";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-rWmfhAZ4JrmiLZ4N16OvMp6dtZSMHXBNpOsdW0SqRPU=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-/oVW5gm1llA1+AXkzkjlqBEGLaMFyA+zc8HI9nt8Y0Q=";
|
||||
|
||||
dontNpmBuild = true;
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/robinheghan/elm-git-install/blob/${finalAttrs.version}/CHANGES.md";
|
||||
description = "Install private Elm packages from any git url";
|
||||
homepage = "https://github.com/robinheghan/elm-git-install";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [ pyrox0 ];
|
||||
mainProgram = "elm-git-install";
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
lib,
|
||||
buildNpmPackage,
|
||||
fetchFromGitHub,
|
||||
elmPackages,
|
||||
}:
|
||||
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "elm-graphql";
|
||||
version = "4.3.2-beta.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dillonkearns";
|
||||
repo = "elm-graphql";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-Wfp21QINwj93490XmdH1LUg8LSi44EupuDH+61srZL8=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace package.json \
|
||||
--replace-fail "elm-tooling install" "true"
|
||||
'';
|
||||
|
||||
npmDepsHash = "sha256-Fx0ylqXHdu48mZSMtedyLyb4+Ssn4DrQ34pTJAy2x7c=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
elmPackages.elm
|
||||
];
|
||||
|
||||
npmFlags = [ "--ignore-scripts" ];
|
||||
|
||||
postConfigure = (
|
||||
elmPackages.fetchElmDeps {
|
||||
elmPackages = import ./elm-srcs.nix;
|
||||
elmVersion = elmPackages.elm.version;
|
||||
registryDat = ./registry.dat;
|
||||
}
|
||||
);
|
||||
|
||||
passthru.updateScript = ./update.sh;
|
||||
|
||||
meta = {
|
||||
description = "Autogenerate type-safe GraphQL queries in Elm";
|
||||
homepage = "https://github.com/dillonkearns/elm-graphql";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [ pyrox0 ];
|
||||
mainProgram = "elm-graphql";
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,232 @@
|
||||
{
|
||||
|
||||
"dillonkearns/elm-cli-options-parser" = {
|
||||
sha256 = "01pqjq8bhkn26mwhqnri2bmd4iq36kw5wbv3nqwnsghwd1jxbq78";
|
||||
version = "3.2.0";
|
||||
};
|
||||
|
||||
"dillonkearns/elm-pages" = {
|
||||
sha256 = "1bih3frqs6p6gpna5in3vlvakl7yazpla6fas21xc7a3pqx5lh5p";
|
||||
version = "10.2.0";
|
||||
};
|
||||
|
||||
"elm-community/list-extra" = {
|
||||
sha256 = "02grd0p5hc2gvdy4n723d1s28pm1grn95jrzic6jcgb26qh16vcc";
|
||||
version = "8.7.0";
|
||||
};
|
||||
|
||||
"elm-community/result-extra" = {
|
||||
sha256 = "0bwiqjq4cgffbk8a6nqk1k4yhv1hwg96m2fhn5zbniwsm13lrm5m";
|
||||
version = "2.4.0";
|
||||
};
|
||||
|
||||
"elm-community/string-extra" = {
|
||||
sha256 = "014l3lkglaniizwvr5pqbi4z7bb0piq0pp3fdifyd4rdp53ac23f";
|
||||
version = "4.0.1";
|
||||
};
|
||||
|
||||
"elm/core" = {
|
||||
sha256 = "19w0iisdd66ywjayyga4kv2p1v9rxzqjaxhckp8ni6n8i0fb2dvf";
|
||||
version = "1.0.5";
|
||||
};
|
||||
|
||||
"elm/json" = {
|
||||
sha256 = "0kjwrz195z84kwywaxhhlnpl3p251qlbm5iz6byd6jky2crmyqyh";
|
||||
version = "1.1.3";
|
||||
};
|
||||
|
||||
"elm/regex" = {
|
||||
sha256 = "0lijsp50w7n1n57mjg6clpn9phly8vvs07h0qh2rqcs0f1jqvsa2";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"lukewestby/elm-string-interpolate" = {
|
||||
sha256 = "07i4s9ggylvk3wj5r3nlbxajf496h0drh0p3hawfizrkcisjdnjy";
|
||||
version = "1.0.4";
|
||||
};
|
||||
|
||||
"Chadtech/elm-bool-extra" = {
|
||||
sha256 = "1qiaj0fjzizynbjz2h89xsh7wx9mpf5ijabybl3y8sk5zzdw4awx";
|
||||
version = "2.4.2";
|
||||
};
|
||||
|
||||
"avh4/elm-color" = {
|
||||
sha256 = "0n16wnvp87x9az3m5qjrl6smsg7051m719xn5d244painx8xmpzq";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"danfishgold/base64-bytes" = {
|
||||
sha256 = "1xw4kq7r4zpx484wcnwwkcgzmr4wdxsv3i0j90ynnrjc68ydwgj1";
|
||||
version = "1.1.0";
|
||||
};
|
||||
|
||||
"danyx23/elm-mimetype" = {
|
||||
sha256 = "0bj904nzdj9xpwi50f0rqm1had3kziqbn9fh68z0hkc2psppchcc";
|
||||
version = "4.0.1";
|
||||
};
|
||||
|
||||
"dillonkearns/elm-bcp47-language-tag" = {
|
||||
sha256 = "025xqpnwmx3mk554h3lq6yg9mkslr1z5019jywj4ca5kl9qs67yb";
|
||||
version = "2.0.0";
|
||||
};
|
||||
|
||||
"dillonkearns/elm-date-or-date-time" = {
|
||||
sha256 = "00rdd7mq39yllzx4jw5hgb72wsbkqwyg97h2x6kxhg4wd8z8whva";
|
||||
version = "2.0.0";
|
||||
};
|
||||
|
||||
"dillonkearns/elm-form" = {
|
||||
sha256 = "0bm67mhd26ic3kr4ycrs99i3pazlkm44zbfnfszlzzimd7w56bmb";
|
||||
version = "3.0.1";
|
||||
};
|
||||
|
||||
"elm-community/basics-extra" = {
|
||||
sha256 = "0safacqk5dkcb0rdafdq1yhsch7dki26jjplbsgvfrm1j8klvjhn";
|
||||
version = "4.1.0";
|
||||
};
|
||||
|
||||
"elm-community/maybe-extra" = {
|
||||
sha256 = "185jy9jxx3bqf0xl3rmdxfqqmxzcr084llf32glr6hgl5agshywk";
|
||||
version = "5.3.0";
|
||||
};
|
||||
|
||||
"elm/browser" = {
|
||||
sha256 = "0nagb9ajacxbbg985r4k9h0jadqpp0gp84nm94kcgbr5sf8i9x13";
|
||||
version = "1.0.2";
|
||||
};
|
||||
|
||||
"elm/bytes" = {
|
||||
sha256 = "02ywbf52akvxclpxwj9n04jydajcbsbcbsnjs53yjc5lwck3abwj";
|
||||
version = "1.0.8";
|
||||
};
|
||||
|
||||
"elm/file" = {
|
||||
sha256 = "1rljcb41dl97myidyjih2yliyzddkr2m7n74x7gg46rcw4jl0ny8";
|
||||
version = "1.0.5";
|
||||
};
|
||||
|
||||
"elm/html" = {
|
||||
sha256 = "1n3gpzmpqqdsldys4ipgyl1zacn0kbpc3g4v3hdpiyfjlgh8bf3k";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"elm/http" = {
|
||||
sha256 = "008bs76mnp48b4dw8qwjj4fyvzbxvlrl4xpa2qh1gg2kfwyw56v1";
|
||||
version = "2.0.0";
|
||||
};
|
||||
|
||||
"elm/parser" = {
|
||||
sha256 = "0a3cxrvbm7mwg9ykynhp7vjid58zsw03r63qxipxp3z09qks7512";
|
||||
version = "1.1.0";
|
||||
};
|
||||
|
||||
"elm/random" = {
|
||||
sha256 = "138n2455wdjwa657w6sjq18wx2r0k60ibpc4frhbqr50sncxrfdl";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"elm/time" = {
|
||||
sha256 = "0vch7i86vn0x8b850w1p69vplll1bnbkp8s383z7pinyg94cm2z1";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"elm/url" = {
|
||||
sha256 = "0av8x5syid40sgpl5vd7pry2rq0q4pga28b4yykn9gd9v12rs3l4";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"elm/virtual-dom" = {
|
||||
sha256 = "1yvb8px2z62xd578ag2q0r5hd1vkz9y7dfkx05355iiy1d7jwq4v";
|
||||
version = "1.0.3";
|
||||
};
|
||||
|
||||
"fredcy/elm-parseint" = {
|
||||
sha256 = "087c7p9m607p4pb9aziln3mqfczvkfm50fna5sxcsjlj45x7ibp6";
|
||||
version = "2.0.1";
|
||||
};
|
||||
|
||||
"jluckyiv/elm-utc-date-strings" = {
|
||||
sha256 = "1wj4v1nmfxchkymic9a178dpcmhvb4ilcqyg8nhcdxcplxa133sz";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"justinmimbs/date" = {
|
||||
sha256 = "11ybasla0nrczpgw1anrmcgqmvl1r0jkrcb9k2v2psng35iwi5ij";
|
||||
version = "4.1.0";
|
||||
};
|
||||
|
||||
"mdgriffith/elm-codegen" = {
|
||||
sha256 = "1qyk8icjj8qix2wsd4cpr1k27p5g5qvkpck84cw8jjyz3fm2ii3s";
|
||||
version = "5.2.0";
|
||||
};
|
||||
|
||||
"miniBill/elm-codec" = {
|
||||
sha256 = "033idbfrl2ifffwxbhnsvyyf1ja3q3n3f5k91j1hg9gkzivqagmx";
|
||||
version = "2.2.0";
|
||||
};
|
||||
|
||||
"miniBill/elm-unicode" = {
|
||||
sha256 = "1z0ydq2ylh1fx8mk11z4wf8cidb414sb66dmjvzyd7y6nbn75bsv";
|
||||
version = "1.1.1";
|
||||
};
|
||||
|
||||
"noahzgordon/elm-color-extra" = {
|
||||
sha256 = "1km72jlmgg5iqxpnvzry9wavjlwcs0n3ks8wwdiy6rj2rmzm1z20";
|
||||
version = "1.0.2";
|
||||
};
|
||||
|
||||
"robinheghan/fnv1a" = {
|
||||
sha256 = "1psvb14k72pg3m7fnqhp69dlkx2ads9mwhi1cdh866062306yvq5";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"robinheghan/murmur3" = {
|
||||
sha256 = "15asmgr2zqh7rkywrg5647rpdqkpzxk02v5qc6ndj60jza3gsmjk";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"rtfeldman/elm-css" = {
|
||||
sha256 = "1gwhgqwclc7clk1ns4qqzyn7b4wvcmccg9qavvb8m694qmwlkzjy";
|
||||
version = "18.0.0";
|
||||
};
|
||||
|
||||
"rtfeldman/elm-hex" = {
|
||||
sha256 = "1y0aa16asvwdqmgbskh5iba6psp43lkcjjw9mgzj3gsrg33lp00d";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"rtfeldman/elm-iso8601-date-strings" = {
|
||||
sha256 = "1ah491kgyicgvy1c9myylqvhzb7ya9kgmn0hcsv23ymvqgaf6b1a";
|
||||
version = "1.1.4";
|
||||
};
|
||||
|
||||
"stil4m/elm-syntax" = {
|
||||
sha256 = "02z7mcdlvf4d2s9m077hhmvq7ybypk2aagcpacfhw25rcvrna9hp";
|
||||
version = "7.3.8";
|
||||
};
|
||||
|
||||
"stil4m/structured-writer" = {
|
||||
sha256 = "02k32yaw275bivab90wy8qkbys3gg4fw53f798dzf1j9wharhg12";
|
||||
version = "1.0.3";
|
||||
};
|
||||
|
||||
"the-sett/elm-pretty-printer" = {
|
||||
sha256 = "0jv0g78dd8j9rf1bspcllslcld75snhmg8hgwcr1c041jkhg0a2w";
|
||||
version = "3.1.0";
|
||||
};
|
||||
|
||||
"the-sett/elm-syntax-dsl" = {
|
||||
sha256 = "09s318hvvb5yb3rvqdwp8nfp3zw2vlw8ip6vq85x8yn7gkk894df";
|
||||
version = "6.0.3";
|
||||
};
|
||||
|
||||
"wolfadex/elm-ansi" = {
|
||||
sha256 = "0dym2pqykhhlsjbsbcn4972lq11fb7sf2ml6lia3xfiyf14v6fhq";
|
||||
version = "3.0.0";
|
||||
};
|
||||
|
||||
"elm-explorations/test" = {
|
||||
sha256 = "10k8ja78zrvkmjx96l99lmngk1d9ix0m1n2rai9x0nw47i4vx8gh";
|
||||
version = "2.2.0";
|
||||
};
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#! nix-shell -i bash -p nix-update elm2nix nixfmt
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
PACKAGE_DIR=$(realpath "$(dirname "$0")")
|
||||
|
||||
# Update version, src and npm deps
|
||||
nix-update "$UPDATE_NIX_ATTR_PATH"
|
||||
|
||||
# Update elm deps
|
||||
cp "$(nix-build -A "$UPDATE_NIX_ATTR_PATH".src)/generator/elm.json" elm.json
|
||||
trap 'rm -rf elm.json registry.dat &> /dev/null' EXIT
|
||||
elm2nix convert >"$PACKAGE_DIR/elm-srcs.nix"
|
||||
nixfmt "$PACKAGE_DIR/elm-srcs.nix"
|
||||
elm2nix snapshot
|
||||
cp registry.dat "$PACKAGE_DIR/registry.dat"
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
lib,
|
||||
buildNpmPackage,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "elm-language-server";
|
||||
version = "2.8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elm-tooling";
|
||||
repo = "elm-language-server";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-OU6VoMu5Qnawxt02vT0B/37VipiBzlLBlZbQbnu8PEE=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-jb59LiP2EZpTkc4o/t+9j287W01tDgbwFpAsWZCCL/k=";
|
||||
|
||||
npmBuildScript = "compile";
|
||||
|
||||
npmFlags = [ "--ignore-scripts" ];
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/elm-tooling/elm-language-server/blob/${finalAttrs.version}/CHANGELOG.md";
|
||||
description = "Language server implementation for Elm";
|
||||
mainProgram = "elm-language-server";
|
||||
homepage = "https://github.com/elm-tooling/elm-language-server";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ pyrox0 ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
lib,
|
||||
buildNpmPackage,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "elm-live";
|
||||
version = "4.0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wking-io";
|
||||
repo = "elm-live";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-pLBSFfe+46uMDC96Pz7Tp14fgZo4elZnhvIdeJGkZ1s=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-OFOlmlE9lyrJ0uyzsqomrHNxKb4jNKtKvxhqK0Dh07k=";
|
||||
|
||||
dontNpmBuild = true;
|
||||
|
||||
postInstall = ''
|
||||
rm -rf $out/lib/node_modules/elm-live/node_modules/.bin
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/wking-io/elm-live/releases/tag/${finalAttrs.version}";
|
||||
description = "Flexible dev server for Elm with live-reload";
|
||||
homepage = "https://www.elm-live.com";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ pyrox0 ];
|
||||
mainProgram = "elm-live";
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,33 @@
|
||||
{
|
||||
lib,
|
||||
buildNpmPackage,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "elm-optimize-level-2";
|
||||
version = "0.3.5-unstable-2022-04-05";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mdgriffith";
|
||||
repo = "elm-optimize-level-2";
|
||||
rev = "46b0975d5349260d2492c2ee532af7230f5af407";
|
||||
hash = "sha256-l93qrkGAmGdZdj9j97MEUiprQT7gFqtL71rb5zOJwk4=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-4noXdD/KUNridPlwQ2cqVcAaUoP5XUwZhpbEPHVBeqo=";
|
||||
|
||||
npmFlags = [ "--ignore-scripts" ];
|
||||
|
||||
passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/mdgriffith/elm-optimize-level-2/blob/master/CHANGELOG.md";
|
||||
description = "A second level of optimization for the Javascript that the Elm Compiler produces.";
|
||||
homepage = "https://github.com/mdgriffith/elm-optimize-level-2";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [ pyrox0 ];
|
||||
mainProgram = "elm-optimize-level-2";
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,33 @@
|
||||
{
|
||||
lib,
|
||||
buildNpmPackage,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "elm-spa";
|
||||
version = "6.0.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ryan-haskell";
|
||||
repo = "elm-spa";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-s/Qf92QaeQ4Ld3dbT3PE5n+lEXvpKwiDFYO4Fal9FvE=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/src/cli";
|
||||
|
||||
npmDepsHash = "sha256-7M6dZpKHMTr7G8Grf/RxNbcD+NXLalUlNkiedRM3Evc=";
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/ryan-haskell/elm-spa/releases/tag/${finalAttrs.version}";
|
||||
description = "Elm single-page-apps made easy";
|
||||
homepage = "https://www.elm-spa.dev/";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [ pyrox0 ];
|
||||
mainProgram = "elm-spa";
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
lib,
|
||||
buildNpmPackage,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "elm-upgrade";
|
||||
version = "0.19.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "avh4";
|
||||
repo = "elm-upgrade";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-frMh8PO9pDYTH03WlDUHuP3QPAz/oubxMYCcMlCU1MQ=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-QP2dlsZb43/p3+P+uNPn3hd3zbKtlYRVl0ABXbv12V4=";
|
||||
|
||||
dontNpmBuild = true;
|
||||
|
||||
npmFlags = [ "--ignore-scripts" ];
|
||||
|
||||
postInstall = ''
|
||||
rm -rf $out/lib/node_modules/elm-upgrade/node_modules/.bin
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/avh4/elm-upgrade/blob/v${finalAttrs.version}/CHANGELOG.md";
|
||||
description = "Upgrade your Elm 0.18 projects to Elm 0.19";
|
||||
homepage = "https://github.com/avh4/elm-upgrade";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ pyrox0 ];
|
||||
mainProgram = "elm-upgrade";
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
lib,
|
||||
buildNpmPackage,
|
||||
fetchFromGitHub,
|
||||
elmPackages,
|
||||
}:
|
||||
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "elm-verify-examples";
|
||||
version = "6.0.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "stoeffel";
|
||||
repo = "elm-verify-examples";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-HUmIrwmJyGvkCRHRiA069Aj25WBIGtJ7DJxwwF6OvWU=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-frNCo97GOwiClzQwRXHpqqjimJrmipsBebAshJqGZco=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
elmPackages.elm
|
||||
];
|
||||
|
||||
npmFlags = [ "--ignore-scripts" ];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
make build
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
postConfigure = (
|
||||
elmPackages.fetchElmDeps {
|
||||
elmPackages = import ./elm-srcs.nix;
|
||||
elmVersion = elmPackages.elm.version;
|
||||
registryDat = ./registry.dat;
|
||||
}
|
||||
);
|
||||
|
||||
passthru.updateScript = ./update.sh;
|
||||
|
||||
meta = {
|
||||
description = "Verify examples in your docs";
|
||||
homepage = "https://github.com/stoeffel/elm-verify-examples";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [ pyrox0 ];
|
||||
mainProgram = "elm-verify-examples";
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,62 @@
|
||||
{
|
||||
|
||||
"elm-community/list-extra" = {
|
||||
sha256 = "02grd0p5hc2gvdy4n723d1s28pm1grn95jrzic6jcgb26qh16vcc";
|
||||
version = "8.7.0";
|
||||
};
|
||||
|
||||
"elm/browser" = {
|
||||
sha256 = "0nagb9ajacxbbg985r4k9h0jadqpp0gp84nm94kcgbr5sf8i9x13";
|
||||
version = "1.0.2";
|
||||
};
|
||||
|
||||
"elm/core" = {
|
||||
sha256 = "19w0iisdd66ywjayyga4kv2p1v9rxzqjaxhckp8ni6n8i0fb2dvf";
|
||||
version = "1.0.5";
|
||||
};
|
||||
|
||||
"elm/html" = {
|
||||
sha256 = "1n3gpzmpqqdsldys4ipgyl1zacn0kbpc3g4v3hdpiyfjlgh8bf3k";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"elm/json" = {
|
||||
sha256 = "0kjwrz195z84kwywaxhhlnpl3p251qlbm5iz6byd6jky2crmyqyh";
|
||||
version = "1.1.3";
|
||||
};
|
||||
|
||||
"elm/regex" = {
|
||||
sha256 = "0lijsp50w7n1n57mjg6clpn9phly8vvs07h0qh2rqcs0f1jqvsa2";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"elm/time" = {
|
||||
sha256 = "0vch7i86vn0x8b850w1p69vplll1bnbkp8s383z7pinyg94cm2z1";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"elm/url" = {
|
||||
sha256 = "0av8x5syid40sgpl5vd7pry2rq0q4pga28b4yykn9gd9v12rs3l4";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"elm/virtual-dom" = {
|
||||
sha256 = "1yvb8px2z62xd578ag2q0r5hd1vkz9y7dfkx05355iiy1d7jwq4v";
|
||||
version = "1.0.3";
|
||||
};
|
||||
|
||||
"elm-explorations/test" = {
|
||||
sha256 = "0q3bplgdd2q0zkfcbfjr44mm7ip98ijqarzzsq0kg4hvysdhhzgs";
|
||||
version = "2.1.2";
|
||||
};
|
||||
|
||||
"elm/bytes" = {
|
||||
sha256 = "02ywbf52akvxclpxwj9n04jydajcbsbcbsnjs53yjc5lwck3abwj";
|
||||
version = "1.0.8";
|
||||
};
|
||||
|
||||
"elm/random" = {
|
||||
sha256 = "138n2455wdjwa657w6sjq18wx2r0k60ibpc4frhbqr50sncxrfdl";
|
||||
version = "1.0.0";
|
||||
};
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#! nix-shell -i bash -p nix-update elm2nix nixfmt
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
PACKAGE_DIR=$(realpath "$(dirname "$0")")
|
||||
|
||||
# Update version, src and npm deps
|
||||
nix-update "$UPDATE_NIX_ATTR_PATH"
|
||||
|
||||
# Update elm deps
|
||||
cp "$(nix-build -A "$UPDATE_NIX_ATTR_PATH".src)/elm.json" elm.json
|
||||
trap 'rm -rf elm.json registry.dat &> /dev/null' EXIT
|
||||
elm2nix convert >"$PACKAGE_DIR/elm-srcs.nix"
|
||||
nixfmt "$PACKAGE_DIR/elm-srcs.nix"
|
||||
elm2nix snapshot
|
||||
cp registry.dat "$PACKAGE_DIR/registry.dat"
|
||||
@@ -0,0 +1,48 @@
|
||||
{
|
||||
lib,
|
||||
buildNpmPackage,
|
||||
fetchFromGitHub,
|
||||
elmPackages,
|
||||
}:
|
||||
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "elm-xref";
|
||||
version = "4.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zwilias";
|
||||
repo = "elm-xref";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-J58NTSMo2uxpWFnPX+AGHVAqQOiRfgBxYzis/PZp1MA=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-LZynUf2M+g31mia41jw7vmGNugUUUAX/TehDxQ7j+YY=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
elmPackages.elm
|
||||
];
|
||||
|
||||
npmFlags = [ "--ignore-scripts" ];
|
||||
|
||||
npmBuildScript = "elm";
|
||||
|
||||
postConfigure =
|
||||
(elmPackages.fetchElmDeps {
|
||||
elmPackages = import ./elm-srcs.nix;
|
||||
elmVersion = elmPackages.elm.version;
|
||||
registryDat = ./registry.dat;
|
||||
})
|
||||
+ ''
|
||||
ln -sf ${lib.getExe elmPackages.elm} node_modules/.bin/elm
|
||||
'';
|
||||
|
||||
passthru.updateScript = ./update.sh;
|
||||
|
||||
meta = {
|
||||
description = "Cross referencing tool for Elm";
|
||||
homepage = "https://github.com/zwilias/elm-xref";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [ pyrox0 ];
|
||||
mainProgram = "elm-xref";
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,57 @@
|
||||
{
|
||||
|
||||
"elm/core" = {
|
||||
sha256 = "1hf4sw78zav7czzgjnc4rn6r7ipj76ya7zbwnjgz7wbs5ijiacmc";
|
||||
version = "1.0.3";
|
||||
};
|
||||
|
||||
"elm/json" = {
|
||||
sha256 = "0kjwrz195z84kwywaxhhlnpl3p251qlbm5iz6byd6jky2crmyqyh";
|
||||
version = "1.1.3";
|
||||
};
|
||||
|
||||
"elm/parser" = {
|
||||
sha256 = "0a3cxrvbm7mwg9ykynhp7vjid58zsw03r63qxipxp3z09qks7512";
|
||||
version = "1.1.0";
|
||||
};
|
||||
|
||||
"stil4m/elm-syntax" = {
|
||||
sha256 = "182fz12a115j3wz3fkc209mq8rbbqmvl237pmrvygmvbxwv4ix37";
|
||||
version = "7.1.1";
|
||||
};
|
||||
|
||||
"elm-community/json-extra" = {
|
||||
sha256 = "0hwlhdlvd5xi866m9bpnabcg2qrgcvfj34p1x1mhx85ymr3gv9mv";
|
||||
version = "4.2.0";
|
||||
};
|
||||
|
||||
"elm-community/list-extra" = {
|
||||
sha256 = "06ddwrc0ai0pn5mw99a1d9xnihkliyvq0qvzn32z1l88msflrib7";
|
||||
version = "8.2.2";
|
||||
};
|
||||
|
||||
"elm/time" = {
|
||||
sha256 = "0vch7i86vn0x8b850w1p69vplll1bnbkp8s383z7pinyg94cm2z1";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"elm/url" = {
|
||||
sha256 = "0av8x5syid40sgpl5vd7pry2rq0q4pga28b4yykn9gd9v12rs3l4";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"rtfeldman/elm-hex" = {
|
||||
sha256 = "1y0aa16asvwdqmgbskh5iba6psp43lkcjjw9mgzj3gsrg33lp00d";
|
||||
version = "1.0.0";
|
||||
};
|
||||
|
||||
"rtfeldman/elm-iso8601-date-strings" = {
|
||||
sha256 = "1fa5sslklldy0dq8bm0zdkb9ni50yxhb09xb6lgk00x55bmza9ik";
|
||||
version = "1.1.3";
|
||||
};
|
||||
|
||||
"stil4m/structured-writer" = {
|
||||
sha256 = "0xr95m8k42vwyff91vfd4q59fhnmhywyj20nzxqhl7blk82hnwj0";
|
||||
version = "1.0.2";
|
||||
};
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#! nix-shell -i bash -p nix-update elm2nix nixfmt
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
PACKAGE_DIR=$(realpath "$(dirname "$0")")
|
||||
|
||||
# Update version, src and npm deps
|
||||
nix-update "$UPDATE_NIX_ATTR_PATH"
|
||||
|
||||
# Update elm deps
|
||||
cp "$(nix-build -A "$UPDATE_NIX_ATTR_PATH".src)/elm.json" elm.json
|
||||
trap 'rm -rf elm.json registry.dat &> /dev/null' EXIT
|
||||
elm2nix convert >"$PACKAGE_DIR/elm-srcs.nix"
|
||||
nixfmt "$PACKAGE_DIR/elm-srcs.nix"
|
||||
elm2nix snapshot
|
||||
cp registry.dat "$PACKAGE_DIR/registry.dat"
|
||||
@@ -1,117 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
nodejs,
|
||||
makeWrapper,
|
||||
}:
|
||||
self:
|
||||
|
||||
let
|
||||
# Untouched npm-downloaded packages
|
||||
nodePkgs = pkgs.callPackage ./node-composition.nix {
|
||||
inherit pkgs nodejs;
|
||||
inherit (pkgs.stdenv.hostPlatform) system;
|
||||
};
|
||||
in
|
||||
with self;
|
||||
with elmLib;
|
||||
{
|
||||
inherit (nodePkgs)
|
||||
elm-live
|
||||
elm-upgrade
|
||||
elm-xref
|
||||
elm-analyse
|
||||
elm-git-install
|
||||
;
|
||||
|
||||
elm-verify-examples = nodePkgs.elm-verify-examples // {
|
||||
meta =
|
||||
with lib;
|
||||
nodePkgs.elm-verify-examples.meta
|
||||
// {
|
||||
description = "Verify examples in your docs";
|
||||
homepage = "https://github.com/stoeffel/elm-verify-examples";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.turbomack ];
|
||||
};
|
||||
};
|
||||
|
||||
create-elm-app = patchNpmElm nodePkgs.create-elm-app // {
|
||||
meta =
|
||||
with lib;
|
||||
nodePkgs.create-elm-app.meta
|
||||
// {
|
||||
description = "Create Elm apps with no build configuration";
|
||||
homepage = "https://github.com/halfzebra/create-elm-app";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.turbomack ];
|
||||
};
|
||||
};
|
||||
|
||||
elm-graphql = nodePkgs."@dillonkearns/elm-graphql" // {
|
||||
meta =
|
||||
with lib;
|
||||
nodePkgs."@dillonkearns/elm-graphql".meta
|
||||
// {
|
||||
description = "Autogenerate type-safe GraphQL queries in Elm";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.pedrohlc ];
|
||||
};
|
||||
};
|
||||
|
||||
elm-language-server = nodePkgs."@elm-tooling/elm-language-server" // {
|
||||
meta =
|
||||
with lib;
|
||||
nodePkgs."@elm-tooling/elm-language-server".meta
|
||||
// {
|
||||
description = "Language server implementation for Elm";
|
||||
homepage = "https://github.com/elm-tooling/elm-language-server";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.turbomack ];
|
||||
};
|
||||
};
|
||||
|
||||
elm-spa = nodePkgs."elm-spa".overrideAttrs (old: {
|
||||
nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [
|
||||
makeWrapper
|
||||
old.nodejs.pkgs.node-gyp-build
|
||||
];
|
||||
|
||||
meta =
|
||||
with lib;
|
||||
nodePkgs."elm-spa".meta
|
||||
// {
|
||||
description = "Tool for building single page apps in Elm";
|
||||
homepage = "https://www.elm-spa.dev/";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.ilyakooo0 ];
|
||||
};
|
||||
});
|
||||
|
||||
elm-optimize-level-2 = nodePkgs."elm-optimize-level-2" // {
|
||||
meta =
|
||||
with lib;
|
||||
nodePkgs."elm-optimize-level-2".meta
|
||||
// {
|
||||
description = "Second level of optimization for the Javascript that the Elm Compiler produces";
|
||||
homepage = "https://github.com/mdgriffith/elm-optimize-level-2";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.turbomack ];
|
||||
};
|
||||
};
|
||||
|
||||
elm-pages = import ./elm-pages {
|
||||
inherit
|
||||
nodePkgs
|
||||
pkgs
|
||||
lib
|
||||
makeWrapper
|
||||
;
|
||||
};
|
||||
|
||||
elm-land = pkgs.elm-land; # Alias
|
||||
|
||||
elm-doc-preview = nodePkgs."elm-doc-preview".overrideAttrs (old: {
|
||||
nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ old.nodejs.pkgs.node-gyp-build ];
|
||||
});
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
{
|
||||
nodePkgs,
|
||||
pkgs,
|
||||
lib,
|
||||
makeWrapper,
|
||||
}:
|
||||
|
||||
let
|
||||
ESBUILD_BINARY_PATH = lib.getExe (
|
||||
pkgs.esbuild.override {
|
||||
buildGoModule =
|
||||
args:
|
||||
pkgs.buildGoModule (
|
||||
args
|
||||
// rec {
|
||||
version = "0.25.5";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "evanw";
|
||||
repo = "esbuild";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-jemGZkWmN1x2+ZzJ5cLp3MoXO0oDKjtZTmZS9Be/TDw=";
|
||||
};
|
||||
vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
in
|
||||
nodePkgs."elm-pages".overrideAttrs (old: {
|
||||
inherit ESBUILD_BINARY_PATH;
|
||||
nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [
|
||||
makeWrapper
|
||||
old.nodejs.pkgs.node-gyp-build
|
||||
];
|
||||
|
||||
# can't use `patches = [ <patch_file> ]` with a nodePkgs derivation;
|
||||
# need to patch in one of the build phases instead.
|
||||
# see upstream issue https://github.com/dillonkearns/elm-pages/issues/305 for dealing with the read-only problem
|
||||
preFixup = ''
|
||||
patch $out/lib/node_modules/elm-pages/generator/src/codegen.js ${./fix-read-only.patch}
|
||||
patch $out/lib/node_modules/elm-pages/generator/src/init.js ${./fix-init-read-only.patch}
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
wrapProgram $out/bin/elm-pages --prefix PATH : ${
|
||||
with pkgs.elmPackages;
|
||||
lib.makeBinPath [
|
||||
elm
|
||||
elm-review
|
||||
elm-optimize-level-2
|
||||
]
|
||||
}
|
||||
'';
|
||||
|
||||
meta =
|
||||
with lib;
|
||||
nodePkgs."elm-pages".meta
|
||||
// {
|
||||
description = "Statically typed site generator for Elm";
|
||||
homepage = "https://github.com/dillonkearns/elm-pages";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [
|
||||
maintainers.turbomack
|
||||
maintainers.jali-clarke
|
||||
];
|
||||
};
|
||||
})
|
||||
@@ -1,39 +0,0 @@
|
||||
diff --git a/generator/src/init.js b/generator/src/init.js
|
||||
index 06386ff..7127dae 100644
|
||||
--- a/generator/src/init.js
|
||||
+++ b/generator/src/init.js
|
||||
@@ -6,6 +6,20 @@ import { fileURLToPath } from "url";
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
|
||||
+let walknDo = function(somePath, doStuff) {
|
||||
+ doStuff(somePath, true);
|
||||
+ const dir = fs.readdirSync(somePath)
|
||||
+ dir.forEach((i) => {
|
||||
+ let p = path.join(somePath, i);
|
||||
+ const s = fs.statSync(p)
|
||||
+ if (s.isDirectory()) {
|
||||
+ walknDo(p, doStuff)
|
||||
+ } else {
|
||||
+ doStuff(p);
|
||||
+ }
|
||||
+ });
|
||||
+}
|
||||
+
|
||||
/**
|
||||
* @param {string} name
|
||||
*/
|
||||
@@ -18,6 +32,13 @@ export async function run(name) {
|
||||
if (!fs.existsSync(name)) {
|
||||
try {
|
||||
await fsExtra.copy(template, appRoot);
|
||||
+ walknDo(appRoot, (file, isDir) => {
|
||||
+ if (isDir) {
|
||||
+ fs.chmodSync(file, 0o755);
|
||||
+ } else {
|
||||
+ fs.chmodSync(file, 0o644);
|
||||
+ }
|
||||
+ });
|
||||
fs.renameSync(
|
||||
path.resolve(appRoot, "gitignore"),
|
||||
path.resolve(appRoot, ".gitignore")
|
||||
@@ -1,39 +0,0 @@
|
||||
diff --git a/generator/src/codegen.js b/generator/src/codegen.js
|
||||
index baf5368..e5edf4d 100644
|
||||
--- a/generator/src/codegen.js
|
||||
+++ b/generator/src/codegen.js
|
||||
@@ -37,9 +37,9 @@ export async function generate(basePath) {
|
||||
copyToBoth("SiteConfig.elm"),
|
||||
|
||||
fs.promises.writeFile("./.elm-pages/Pages.elm", uiFileContent),
|
||||
- fs.promises.copyFile(
|
||||
- path.join(__dirname, `./elm-application.json`),
|
||||
- `./elm-stuff/elm-pages/elm-application.json`
|
||||
+ fs.promises.writeFile(
|
||||
+ `./elm-stuff/elm-pages/elm-application.json`,
|
||||
+ fs.readFileSync(path.join(__dirname, `./elm-application.json`))
|
||||
),
|
||||
// write `Pages.elm` with cli interface
|
||||
fs.promises.writeFile(
|
||||
@@ -82,9 +82,9 @@ function writeFetcherModules(basePath, fetcherData) {
|
||||
}
|
||||
|
||||
async function newCopyBoth(modulePath) {
|
||||
- await fs.promises.copyFile(
|
||||
- path.join(__dirname, modulePath),
|
||||
- path.join(`./elm-stuff/elm-pages/client/.elm-pages/`, modulePath)
|
||||
+ await fs.promises.writeFile(
|
||||
+ path.join(`./elm-stuff/elm-pages/client/.elm-pages/`, modulePath),
|
||||
+ fs.readFileSync(path.join(__dirname, modulePath))
|
||||
);
|
||||
}
|
||||
|
||||
@@ -197,7 +197,7 @@ async function copyFileEnsureDir(from, to) {
|
||||
await fs.promises.mkdir(path.dirname(to), {
|
||||
recursive: true,
|
||||
});
|
||||
- await fs.promises.copyFile(from, to);
|
||||
+ await fs.promises.writeFile(to, fs.readFileSync(from));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1,12 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
ROOT="$(realpath "$(dirname -- "$(readlink -f -- "${BASH_SOURCE[0]}")")"/../../../../../..)"
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
$(nix-build $ROOT -A nodePackages.node2nix --no-out-link)/bin/node2nix \
|
||||
--nodejs-18 \
|
||||
-i node-packages.json \
|
||||
-o node-packages.nix \
|
||||
-c node-composition.nix \
|
||||
--no-copy-node-env -e ../../../../node-packages/node-env.nix
|
||||
@@ -1,33 +0,0 @@
|
||||
# This file has been generated by node2nix 1.11.1. Do not edit!
|
||||
|
||||
{
|
||||
pkgs ? import <nixpkgs> {
|
||||
inherit system;
|
||||
},
|
||||
system ? builtins.currentSystem,
|
||||
nodejs ? pkgs."nodejs_20",
|
||||
}:
|
||||
|
||||
let
|
||||
nodeEnv = import ../../../../node-packages/node-env.nix {
|
||||
inherit (pkgs)
|
||||
stdenv
|
||||
lib
|
||||
runCommand
|
||||
writeTextFile
|
||||
writeShellScript
|
||||
;
|
||||
inherit pkgs nodejs;
|
||||
libtool = if pkgs.stdenv.hostPlatform.isDarwin then pkgs.cctools or pkgs.darwin.cctools else null;
|
||||
};
|
||||
in
|
||||
import ./node-packages.nix {
|
||||
inherit (pkgs)
|
||||
fetchurl
|
||||
nix-gitignore
|
||||
stdenv
|
||||
lib
|
||||
fetchgit
|
||||
;
|
||||
inherit nodeEnv;
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
[
|
||||
"elm-analyse",
|
||||
"elm-doc-preview",
|
||||
"@elm-tooling/elm-language-server",
|
||||
"elm-live",
|
||||
"elm-spa",
|
||||
"elm-test",
|
||||
"elm-upgrade",
|
||||
"elm-verify-examples",
|
||||
"elm-xref",
|
||||
"create-elm-app",
|
||||
"elm-optimize-level-2",
|
||||
"elm-pages",
|
||||
"elm-git-install",
|
||||
"@dillonkearns/elm-graphql"
|
||||
]
|
||||
-18512
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user