From b38b9c493f3c5946758a44952d6da47bd648116c Mon Sep 17 00:00:00 2001 From: Hannah Rosenberg Date: Tue, 9 Apr 2024 13:17:46 -0400 Subject: [PATCH] lightning-terminal: init at 0.14.1-alpha --- .../li/lightning-terminal/package.json | 139 ++++++++++++++++++ .../by-name/li/lightning-terminal/package.nix | 106 +++++++++++++ 2 files changed, 245 insertions(+) create mode 100644 pkgs/by-name/li/lightning-terminal/package.json create mode 100644 pkgs/by-name/li/lightning-terminal/package.nix diff --git a/pkgs/by-name/li/lightning-terminal/package.json b/pkgs/by-name/li/lightning-terminal/package.json new file mode 100644 index 000000000000..3452ada9c1ca --- /dev/null +++ b/pkgs/by-name/li/lightning-terminal/package.json @@ -0,0 +1,139 @@ +{ + "name": "lightning-terminal", + "version": "0.0.1", + "description": "Lightning Terminal", + "repository": "https://github.com/lightninglabs/lightning-terminal", + "private": true, + "scripts": { + "start": "BROWSER=none react-scripts start", + "develop": "REACT_APP_USE_SAMPLE_DATA=true yarn start", + "build": "react-scripts build", + "postbuild": "git restore build/.gitkeep", + "test": "react-scripts test --env=jest-environment-jsdom --transformIgnorePatterns \"node_modules/(?!d3)/\"", + "test:ci": "cross-env CI=true yarn test --coverage", + "eject": "react-scripts eject", + "lint": "eslint --ext .ts,.tsx --ignore-path .eslintignore .", + "tsc": "tsc --noEmit", + "protos": "node ./scripts/build-protos.js", + "storybook": "storybook dev -p 9009 -s public", + "build-storybook": "storybook build -s public" + }, + "dependencies": { + "@emotion/react": "11.4.0", + "@emotion/styled": "11.3.0", + "@improbable-eng/grpc-web": "0.14.0", + "@types/react-collapse": "^5.0.1", + "big.js": "6.1.1", + "bootstrap": "4.6.1", + "buffer": "6.0.3", + "copy-to-clipboard": "3.3.1", + "d3": "7.8.5", + "date-fns": "2.14.0", + "debug": "4.3.1", + "file-saver": "2.0.2", + "http-proxy-middleware": "2.0.7", + "i18next": "19.5.1", + "i18next-browser-languagedetector": "5.0.0", + "lodash": "4.17.21", + "lottie-web": "5.7.0", + "mobx": "6.3.2", + "mobx-react-lite": "3.2.0", + "mobx-utils": "6.0.4", + "qrcode.react": "^3.1.0", + "rc-dialog": "^8.9.0", + "rc-select": "11.5.0", + "rc-switch": "^4.0.0", + "rc-tooltip": "4.2.1", + "react": "17.0.2", + "react-collapse": "^5.1.1", + "react-dom": "17.0.2", + "react-i18next": "13.5.0", + "react-router-dom": "^6.3.0", + "react-toastify": "6.0.6", + "react-virtualized": "9.21.2", + "reactour": "1.18.0", + "semver": "^7.5.2", + "styled-components": "5.1.1" + }, + "devDependencies": { + "@storybook/addon-actions": "7.5.3", + "@storybook/addon-docs": "7.5.3", + "@storybook/addon-links": "7.5.3", + "@storybook/addons": "7.5.3", + "@storybook/preset-create-react-app": "7.5.3", + "@storybook/react": "7.5.3", + "@storybook/react-webpack5": "7.5.3", + "@testing-library/jest-dom": "5.11.5", + "@testing-library/react": "11.1.1", + "@testing-library/user-event": "12.2.0", + "@types/big.js": "6.1.1", + "@types/d3": "7.4.3", + "@types/debug": "4.1.5", + "@types/file-saver": "2.0.1", + "@types/google-protobuf": "3.15.10", + "@types/history": "4.7.6", + "@types/jest": "27.4.1", + "@types/lodash": "4.14.157", + "@types/node": "14.0.14", + "@types/react": "17.0.13", + "@types/react-dom": "17.0.8", + "@types/react-router-dom": "^5.3.3", + "@types/react-virtualized": "9.21.10", + "@types/reactour": "1.17.1", + "@types/semver": "^7.3.9", + "@typescript-eslint/eslint-plugin": "5.17.0", + "@typescript-eslint/parser": "5.17.0", + "cross-env": "7.0.2", + "eslint-config-prettier": "8.5.0", + "eslint-plugin-prettier": "4.0.0", + "eslint-plugin-react": "7.29.4", + "google-protobuf": "3.14.0", + "jest-canvas-mock": "2.3.0", + "jest-environment-jsdom": "27.5.1", + "prettier": "2.1.2", + "protoc-gen-js": "3.21.2", + "react-scripts": "^5.0.1", + "sass": "1.43.4", + "storybook": "7.5.3", + "ts-protoc-gen": "0.15.0", + "typescript": "4.1.6", + "webpack": "5.89.0" + }, + "resolutions": { + "strip-ansi": "6.0.1", + "jackspeak": "2.1.1", + "wrap-ansi": "7.0.0" + }, + "eslintConfig": { + "extends": "react-app", + "ignorePatterns": [ + "src/types/generated/**/*.js" + ] + }, + "jest": { + "globalSetup": "./src/setupTestsGlobal.ts", + "resetMocks": false, + "collectCoverageFrom": [ + "src/**/*.{js,jsx,ts,tsx}", + "!src/**/*.d.ts", + "!src/__(stories|mocks)__/**/*.{ts,tsx}", + "!src/types/**/*.{js,ts}", + "!src/i18n/**/*.{js,ts}", + "!src/util/tests/**/*.{ts,tsx}", + "!src/setupProxy.js", + "!src/index.tsx" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/pkgs/by-name/li/lightning-terminal/package.nix b/pkgs/by-name/li/lightning-terminal/package.nix new file mode 100644 index 000000000000..1918a87752c4 --- /dev/null +++ b/pkgs/by-name/li/lightning-terminal/package.nix @@ -0,0 +1,106 @@ +{ + lib, + buildGoModule, + fetchFromGitHub, + mkYarnPackage, + fetchYarnDeps, + go, + versionCheckHook, +}: + +buildGoModule rec { + pname = "lightning-terminal"; + version = "0.14.1-alpha"; + src = fetchFromGitHub { + owner = "lightninglabs"; + repo = "lightning-terminal"; + tag = "v${version}"; + hash = "sha256-sv/NsjAAF0vwD2xjRuGwHwV0L1gjCFQEw0SVp14Zyz0="; + leaveDotGit = true; + # Populate values that require us to use git. + postFetch = '' + cd "$out" + >$out/COMMIT git rev-parse HEAD + >$out/LOOP_COMMIT sed -ne 's:^\s*github.com/lightninglabs/loop\s\(.*\):\1:p' go.mod + >$out/POOL_COMMIT sed -ne 's:^\s*github.com/lightninglabs/pool\s\(.*\):\1:p' go.mod + >$out/TAP_COMMIT sed -ne 's:^\s*github.com/lightninglabs/taproot-assets\s\(.*\):\1:p' go.mod + find -name .git -print0 | xargs -0 rm -rf + ''; + }; + + vendorHash = "sha256-Gbx4uz6q9Ef4QNv6DpIoCACjhT66iZ7GPNpd/g9MgKQ="; + + ldflags = [ + "-s" + "-w" + "-X github.com/lightningnetwork/lnd/build.GoVersion=${go.version}" + "-X github.com/lightningnetwork/lnd/build.RawTags=${lib.concatStringsSep "," tags}" + "-X github.com/lightninglabs/lightning-terminal.appFilesPrefix=" + "-X github.com/lightninglabs/lightning-terminal.Commit=${src.tag}" + ]; + + # ldflags based on metadata from git and source + preBuild = '' + ldflags+=" -X github.com/lightninglabs/loop.Commit=$(cat LOOP_COMMIT)" + ldflags+=" -X github.com/lightninglabs/pool.Commit=$(cat POOL_COMMIT)" + ldflags+=" -X github.com/lightninglabs/taproot-assets.Commit=$(cat TAP_COMMIT)" + # Note that this is build.Commit, not Commit, + # this may be why Makefile uses COMMIT and not LND_COMMIT here, + # so let's do the same. + ldflags+=" -X github.com/lightningnetwork/lnd/build.Commit=${src.tag}" + ldflags+=" -X github.com/lightningnetwork/lnd/build.CommitHash=$(cat COMMIT)" + ''; + + subPackages = [ + "cmd/litcli" + "cmd/litd" + ]; + + tags = [ + "litd" + "autopilotrpc" + "signrpc" + "walletrpc" + "chainrpc" + "invoicesrpc" + "watchtowerrpc" + "neutrinorpc" + "peersrpc" + ]; + + doInstallCheck = true; + versionCheckProgram = "${placeholder "out"}/bin/litcli"; + versionCheckProgramArg = "--version"; + nativeInstallCheckInputs = [ + versionCheckHook + ]; + + lightning-app = mkYarnPackage { + pname = "lightning-app"; + src = "${src}/app"; + version = "0.0.1"; + packageJSON = ./package.json; + yarnLock = "${src}/app/yarn.lock"; + offlineCache = fetchYarnDeps { + yarnLock = "${src}/app/yarn.lock"; + hash = "sha256-ulOgKQRLG4cRi1N1DajmbZ0L7d08g5cYDA9itXu+Esw="; + }; + }; + outputs = [ + "out" + "app" + ]; + postFixup = '' + ln -s ${lightning-app} "$app" + ''; + + meta = { + description = "All-in-one Lightning node management tool that includes LND, Loop, Pool, Faraday, and Tapd"; + homepage = "https://github.com/lightninglabs/lightning-terminal"; + license = lib.licenses.mit; + changelog = "https://github.com/lightninglabs/lightning-terminal/releases/tag/v${version}"; + maintainers = with lib.maintainers; [ HannahMR ]; + mainProgram = "litcli"; + outputsToInstall = [ "out" ]; + }; +}