From 594e9bcbfdea9fbd497ea86649d835ab7b987c35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tristan=20Dani=C3=ABl=20Maat?= Date: Fri, 5 Aug 2022 17:23:01 +0100 Subject: [PATCH] Hack in a package.yaml instead of package.json json is just incredibly tedious to use for this, especially because of lack of comments. Upstream has been informed of this many times apparently, npm won't change it. Just hack it downstream. npm will never get better, will it... --- .gitignore | 1 + README.md | 13 +- flake.nix | 2 + nix/package.nix | 28 ++- nix/update-lockfile | 17 -- nix/utilities/default.nix | 20 +++ nix/utilities/update-lockfile | 25 +++ package-lock.json | 312 +++++++++++++++++++++++++++++++--- package.json | 55 ------ package.yaml | 81 +++++++++ 10 files changed, 446 insertions(+), 108 deletions(-) delete mode 100755 nix/update-lockfile create mode 100644 nix/utilities/default.nix create mode 100644 nix/utilities/update-lockfile delete mode 100644 package.json create mode 100644 package.yaml diff --git a/.gitignore b/.gitignore index c8fccd7..b51ae68 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ /dist/ /node_modules /result +/package.json diff --git a/README.md b/README.md index 153250e..08c3d4a 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,15 @@ Website templates bundled with parcel. ## Updating -When adding/removing packages from `package.json`, the corresponding -`package-lock.json` needs to be updated. Use `nix/update-lockfile` for -this. +When adding/removing packages from `package.yaml`, the corresponding +`package.json` and `package-lock.json` need to be updated. Use: + +```console +nix run .#update-lockfile +``` When ignoring semver is desired, use: -```sh -npm-check-updates -u +```console +nix run .#update-lockfile -- --ignore-semver ``` diff --git a/flake.nix b/flake.nix index d1b66a4..ce5af77 100644 --- a/flake.nix +++ b/flake.nix @@ -30,6 +30,8 @@ nix-filter = nix-filter.lib; }; in { + apps.${system} = import ./nix/utilities {inherit pkgs;}; + packages.${system} = rec { tlaternet-templates = package.package; default = tlaternet-templates; diff --git a/nix/package.nix b/nix/package.nix index 42317fb..7363031 100644 --- a/nix/package.nix +++ b/nix/package.nix @@ -5,7 +5,21 @@ }: let inherit (pkgs.lib) cleanSource; + packageJson = + pkgs.runCommand "package.json" { + nativeBuildInputs = with pkgs; [yj]; + src = ""; + } '' + cat ${self}/package.yaml | yj > $out + ''; + + prePatch = '' + ln -s ${packageJson} package.json; + ''; + node_modules_attrs = { + packageJson = "${packageJson}"; + # Dependencies that should be available in the node build buildInputs = with pkgs; [ pkg-config @@ -21,7 +35,7 @@ ]; in { package = pkgs.npmlock2nix.build { - inherit buildInputs node_modules_attrs; + inherit buildInputs prePatch node_modules_attrs; src = cleanSource self; @@ -33,14 +47,22 @@ in { }; shell = pkgs.npmlock2nix.shell { - inherit buildInputs node_modules_attrs; + inherit buildInputs prePatch node_modules_attrs; src = nix-filter { root = self; include = [ - "package.json" + "package.yaml" "package-lock.json" ]; }; + + shellHook = '' + if [ -e package.json ]; then + unlink package.json + fi + + ln -s ${packageJson} package.json + ''; }; } diff --git a/nix/update-lockfile b/nix/update-lockfile deleted file mode 100755 index 909d616..0000000 --- a/nix/update-lockfile +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env -S nix run 'github:clhodapp/nix-runner/32a984cfa14e740a34d14fad16fc479dec72bf07' -#!pure -#!package nixpkgs#bash -#!package nixpkgs#coreutils -#!package nixpkgs#direnv -#!package nixpkgs#git -#!package nixpkgs#nodejs-14_x -#!command bash -# shellcheck shell=bash - -set -eu - -cd "$(git rev-parse --show-toplevel)" -unlink node_modules -npm install --package-lock-only -rm -rf node_modules -direnv reload diff --git a/nix/utilities/default.nix b/nix/utilities/default.nix new file mode 100644 index 0000000..873c35f --- /dev/null +++ b/nix/utilities/default.nix @@ -0,0 +1,20 @@ +{pkgs}: let + inherit (builtins) readFile; + + update-lockfile = pkgs.writeShellApplication { + name = "update-lockfile"; + runtimeInputs = with pkgs; [ + git + yj + nodejs-14_x + direnv + nodePackages.npm-check-updates + ]; + text = readFile ./update-lockfile; + }; +in { + update-lockfile = { + type = "app"; + program = "${update-lockfile}/bin/update-lockfile"; + }; +} diff --git a/nix/utilities/update-lockfile b/nix/utilities/update-lockfile new file mode 100644 index 0000000..697c528 --- /dev/null +++ b/nix/utilities/update-lockfile @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +set -eu + +cd "$(git rev-parse --show-toplevel)" + +if [ -L node_modules ]; then + unlink node_modules +fi + +if [ -L package.json ]; then + unlink package.json +fi + +yj < package.yaml > package.json + +if [ "${1}" == "--ignore-semver" ]; then + npm-check-updates -u +fi + +npm install --package-lock-only +rm -rf node_modules +rm package.json + +direnv reload diff --git a/package-lock.json b/package-lock.json index 409ddec..63b65aa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1049,6 +1049,23 @@ "to-fast-properties": "^2.0.0" } }, + "@choojs/findup": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@choojs/findup/-/findup-0.2.1.tgz", + "integrity": "sha512-YstAqNb0MCN8PjdLCDfRsBcGVRN41f3vgLvaI0IrIcBp4AqILRSS0DeWNGkicC+f/zRIPJLc+9RURVSepwvfBw==", + "dev": true, + "requires": { + "commander": "^2.15.1" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, "@eslint/eslintrc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", @@ -2540,6 +2557,17 @@ "nullthrows": "^1.1.1" } }, + "@parcel/transformer-glsl": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-glsl/-/transformer-glsl-2.6.2.tgz", + "integrity": "sha512-s9XhYqBupDwPYN3FwJilFvmg4UmmdCa4Ai5tsOaDW7f1kQGOF7KRbMZNpRO+tl4ADcFc/WKlY0XaA1tkItycfQ==", + "dev": true, + "requires": { + "@parcel/plugin": "2.6.2", + "glslify-bundle": "^5.1.1", + "glslify-deps": "^1.3.2" + } + }, "@parcel/transformer-html": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.6.2.tgz", @@ -2838,6 +2866,17 @@ "config-chain": "^1.1.11" } }, + "@reduxjs/toolkit": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.8.3.tgz", + "integrity": "sha512-lU/LDIfORmjBbyDLaqFN2JB9YmAT1BElET9y0ZszwhSBa5Ef3t6o5CrHupw5J1iOXwd+o92QfQZ8OJpwXvsssg==", + "requires": { + "immer": "^9.0.7", + "redux": "^4.1.2", + "redux-thunk": "^2.4.1", + "reselect": "^4.1.5" + } + }, "@sindresorhus/is": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", @@ -2958,6 +2997,18 @@ "@types/react": "*" } }, + "@types/react-redux": { + "version": "7.1.24", + "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.24.tgz", + "integrity": "sha512-7FkurKcS1k0FHZEtdbbgN8Oc6b+stGSfZYjQGicofJ0j4U0qIn/jaSvnP2pLwZKiai3/17xqqxkkrxTgN8UNbQ==", + "dev": true, + "requires": { + "@types/hoist-non-react-statics": "^3.3.0", + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0", + "redux": "^4.0.0" + } + }, "@types/responselike": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", @@ -2972,26 +3023,11 @@ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, - "@types/three": { - "version": "0.141.0", - "resolved": "https://registry.npmjs.org/@types/three/-/three-0.141.0.tgz", - "integrity": "sha512-OJdKDgTPVBUgc+s74DYoy4aLznbFFC38Xm4ElmU1YwGNgR7GGFVvFCX7lpVgOsT6S1zSJtGdajTsOYE8/xY9nA==", - "dev": true, - "requires": { - "@types/webxr": "*" - } - }, "@types/use-sync-external-store": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==" }, - "@types/webxr": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.4.0.tgz", - "integrity": "sha512-LQvrACV3Pj17GpkwHwXuTd733gfY+D7b9mKdrTmLdO7vo7P/o6209Qqtk63y/FCv/lspdmi0pWz6Qe/ull9kQg==", - "dev": true - }, "@typescript-eslint/eslint-plugin": { "version": "5.32.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.32.0.tgz", @@ -4677,6 +4713,12 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, "exif-parser": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", @@ -4973,6 +5015,11 @@ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", "dev": true }, + "gl-matrix": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", + "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" + }, "glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -5043,6 +5090,183 @@ "slash": "^3.0.0" } }, + "glsl-inject-defines": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/glsl-inject-defines/-/glsl-inject-defines-1.0.3.tgz", + "integrity": "sha512-W49jIhuDtF6w+7wCMcClk27a2hq8znvHtlGnrYkSWEr8tHe9eA2dcnohlcAmxLYBSpSSdzOkRdyPTrx9fw49+A==", + "dev": true, + "requires": { + "glsl-token-inject-block": "^1.0.0", + "glsl-token-string": "^1.0.1", + "glsl-tokenizer": "^2.0.2" + } + }, + "glsl-resolve": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/glsl-resolve/-/glsl-resolve-0.0.1.tgz", + "integrity": "sha512-xxFNsfnhZTK9NBhzJjSBGX6IOqYpvBHxxmo+4vapiljyGNCY0Bekzn0firQkQrazK59c1hYxMDxYS8MDlhw4gA==", + "dev": true, + "requires": { + "resolve": "^0.6.1", + "xtend": "^2.1.2" + }, + "dependencies": { + "resolve": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz", + "integrity": "sha512-UHBY3viPlJKf85YijDUcikKX6tmF4SokIDp518ZDVT92JNDcG5uKIthaT/owt3Sar0lwtOafsQuwrg22/v2Dwg==", + "dev": true + }, + "xtend": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", + "integrity": "sha512-SLt5uylT+4aoXxXuwtQp5ZnMMzhDb1Xkg4pEqc00WUJCQifPfV9Ub1VrNhp9kXkrjZD2I2Hl8WnjP37jzZLPZw==", + "dev": true + } + } + }, + "glsl-token-assignments": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/glsl-token-assignments/-/glsl-token-assignments-2.0.2.tgz", + "integrity": "sha512-OwXrxixCyHzzA0U2g4btSNAyB2Dx8XrztY5aVUCjRSh4/D0WoJn8Qdps7Xub3sz6zE73W3szLrmWtQ7QMpeHEQ==", + "dev": true + }, + "glsl-token-defines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/glsl-token-defines/-/glsl-token-defines-1.0.0.tgz", + "integrity": "sha512-Vb5QMVeLjmOwvvOJuPNg3vnRlffscq2/qvIuTpMzuO/7s5kT+63iL6Dfo2FYLWbzuiycWpbC0/KV0biqFwHxaQ==", + "dev": true, + "requires": { + "glsl-tokenizer": "^2.0.0" + } + }, + "glsl-token-depth": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/glsl-token-depth/-/glsl-token-depth-1.1.2.tgz", + "integrity": "sha512-eQnIBLc7vFf8axF9aoi/xW37LSWd2hCQr/3sZui8aBJnksq9C7zMeUYHVJWMhFzXrBU7fgIqni4EhXVW4/krpg==", + "dev": true + }, + "glsl-token-descope": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glsl-token-descope/-/glsl-token-descope-1.0.2.tgz", + "integrity": "sha512-kS2PTWkvi/YOeicVjXGgX5j7+8N7e56srNDEHDTVZ1dcESmbmpmgrnpjPcjxJjMxh56mSXYoFdZqb90gXkGjQw==", + "dev": true, + "requires": { + "glsl-token-assignments": "^2.0.0", + "glsl-token-depth": "^1.1.0", + "glsl-token-properties": "^1.0.0", + "glsl-token-scope": "^1.1.0" + } + }, + "glsl-token-inject-block": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/glsl-token-inject-block/-/glsl-token-inject-block-1.1.0.tgz", + "integrity": "sha512-q/m+ukdUBuHCOtLhSr0uFb/qYQr4/oKrPSdIK2C4TD+qLaJvqM9wfXIF/OOBjuSA3pUoYHurVRNao6LTVVUPWA==", + "dev": true + }, + "glsl-token-properties": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/glsl-token-properties/-/glsl-token-properties-1.0.1.tgz", + "integrity": "sha512-dSeW1cOIzbuUoYH0y+nxzwK9S9O3wsjttkq5ij9ZGw0OS41BirKJzzH48VLm8qLg+au6b0sINxGC0IrGwtQUcA==", + "dev": true + }, + "glsl-token-scope": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/glsl-token-scope/-/glsl-token-scope-1.1.2.tgz", + "integrity": "sha512-YKyOMk1B/tz9BwYUdfDoHvMIYTGtVv2vbDSLh94PT4+f87z21FVdou1KNKgF+nECBTo0fJ20dpm0B1vZB1Q03A==", + "dev": true + }, + "glsl-token-string": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/glsl-token-string/-/glsl-token-string-1.0.1.tgz", + "integrity": "sha512-1mtQ47Uxd47wrovl+T6RshKGkRRCYWhnELmkEcUAPALWGTFe2XZpH3r45XAwL2B6v+l0KNsCnoaZCSnhzKEksg==", + "dev": true + }, + "glsl-token-whitespace-trim": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/glsl-token-whitespace-trim/-/glsl-token-whitespace-trim-1.0.0.tgz", + "integrity": "sha512-ZJtsPut/aDaUdLUNtmBYhaCmhIjpKNg7IgZSfX5wFReMc2vnj8zok+gB/3Quqs0TsBSX/fGnqUUYZDqyuc2xLQ==", + "dev": true + }, + "glsl-tokenizer": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/glsl-tokenizer/-/glsl-tokenizer-2.1.5.tgz", + "integrity": "sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==", + "dev": true, + "requires": { + "through2": "^0.6.3" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", + "dev": true, + "requires": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + } + } + }, + "glslify-bundle": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-5.1.1.tgz", + "integrity": "sha512-plaAOQPv62M1r3OsWf2UbjN0hUYAB7Aph5bfH58VxJZJhloRNbxOL9tl/7H71K7OLJoSJ2ZqWOKk3ttQ6wy24A==", + "dev": true, + "requires": { + "glsl-inject-defines": "^1.0.1", + "glsl-token-defines": "^1.0.0", + "glsl-token-depth": "^1.1.1", + "glsl-token-descope": "^1.0.2", + "glsl-token-scope": "^1.1.1", + "glsl-token-string": "^1.0.1", + "glsl-token-whitespace-trim": "^1.0.0", + "glsl-tokenizer": "^2.0.2", + "murmurhash-js": "^1.0.0", + "shallow-copy": "0.0.1" + } + }, + "glslify-deps": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/glslify-deps/-/glslify-deps-1.3.2.tgz", + "integrity": "sha512-7S7IkHWygJRjcawveXQjRXLO2FTjijPDYC7QfZyAQanY+yGLCFHYnPtsGT9bdyHiwPTw/5a1m1M9hamT2aBpag==", + "dev": true, + "requires": { + "@choojs/findup": "^0.2.0", + "events": "^3.2.0", + "glsl-resolve": "0.0.1", + "glsl-tokenizer": "^2.0.0", + "graceful-fs": "^4.1.2", + "inherits": "^2.0.1", + "map-limit": "0.0.1", + "resolve": "^1.0.0" + } + }, "got": { "version": "12.3.0", "resolved": "https://registry.npmjs.org/got/-/got-12.3.0.tgz", @@ -5345,10 +5569,10 @@ "queue": "6.0.1" } }, - "immutability-helper": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/immutability-helper/-/immutability-helper-3.1.1.tgz", - "integrity": "sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==" + "immer": { + "version": "9.0.15", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.15.tgz", + "integrity": "sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ==" }, "immutable": { "version": "4.1.0", @@ -5905,6 +6129,26 @@ } } }, + "map-limit": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", + "integrity": "sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg==", + "dev": true, + "requires": { + "once": "~1.3.0" + }, + "dependencies": { + "once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==", + "dev": true, + "requires": { + "wrappy": "1" + } + } + } + }, "markdown-it": { "version": "12.3.2", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", @@ -6123,6 +6367,12 @@ "node-gyp-build-optional-packages": "5.0.3" } }, + "murmurhash-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", + "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==", + "dev": true + }, "napi-build-utils": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", @@ -7663,10 +7913,10 @@ "@babel/runtime": "^7.9.2" } }, - "redux-act": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/redux-act/-/redux-act-1.8.0.tgz", - "integrity": "sha512-xW3FIco/VwJGMW3eCD3JGAxyozNC4k35qrWM5lEQf9T2pfv3leDC+3vQ8WdHZjcrol/jjWAeJ+ULqrscuDqlKg==" + "redux-thunk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.1.tgz", + "integrity": "sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==" }, "regenerate": { "version": "1.4.2", @@ -7822,6 +8072,11 @@ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true }, + "reselect": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.6.tgz", + "integrity": "sha512-ZovIuXqto7elwnxyXbBtCPo9YFEr3uJqj2rRbcOOog1bmu2Ag85M4hixSwFWyaBMKXNgvPaJ9OSu9SkBPIeJHQ==" + }, "resize-img": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/resize-img/-/resize-img-1.1.2.tgz", @@ -8064,6 +8319,12 @@ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true }, + "shallow-copy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", + "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==", + "dev": true + }, "sharp": { "version": "0.28.3", "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.28.3.tgz", @@ -8484,11 +8745,6 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "three": { - "version": "0.142.0", - "resolved": "https://registry.npmjs.org/three/-/three-0.142.0.tgz", - "integrity": "sha512-ESjPO+3geFr+ZUfVMpMnF/eVU2uJPOh0e2ZpMFqjNca1wApS9lJb7E4MjwGIczgt9iuKd8PEm6Pfgp2bJ92Xtg==" - }, "through2": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", diff --git a/package.json b/package.json deleted file mode 100644 index cab443f..0000000 --- a/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "tlaternet", - "version": "1.0.0", - "description": "tlaternet web interface", - "author": "Tristan Maat ", - "license": "MIT", - "private": true, - "dependencies": { - "@fontsource/arimo": "^4.5.8", - "@fontsource/nunito": "^4.5.9", - "@fortawesome/fontawesome-free": "^6.1.1", - "bulma": "^0.9.4", - "hack-font": "^3.3.0", - "three": "^0.142.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-redux": "^8.0.2", - "classnames": "^2.3.1", - "redux-act": "^1.8.0", - "redux": "4.2.0", - "immutability-helper": "3.1.1" - }, - "devDependencies": { - "@babel/preset-env": "^7.18.6", - "@parcel/transformer-sass": "^2.6.2", - "@types/react-dom": "^18.0.6", - "@types/three": "^0.141.0", - "@typescript-eslint/parser": "^5.32.0", - "@typescript-eslint/eslint-plugin": "^5.32.0", - "eslint": "^8.21.0", - "prettier": "^2.7.1", - "parcel": "^2.6.2", - "posthtml-extend": "^0.6.3", - "posthtml-favicons": "^1.4.0", - "posthtml-include": "^1.7.4", - "posthtml-markdownit": "^1.3.0", - "sass": "^1.53.0", - "typescript": "^4.7.4", - "typescript-language-server": "^0.11.2", - "typescript-eslint-language-service": "^5.0.0", - "vscode-langservers-extracted": "^4.2.1", - "npm-check-updates": "^16.0.5" - }, - "scripts": { - "build": "parcel build --no-autoinstall", - "serve": "parcel serve --no-autoinstall", - "watch": "parcel watch --no-autoinstall", - "build-dist": "parcel build --no-cache --no-autoinstall && rename '.html' '.html.hbs' dist/*.html", - "check": "tsc --noEmit", - "style": "prettier --check src", - "lint": "eslint --format unix src" - }, - "source": "src/index.html", - "browserslist": "> 1%, not dead" -} diff --git a/package.yaml b/package.yaml new file mode 100644 index 0000000..db811fd --- /dev/null +++ b/package.yaml @@ -0,0 +1,81 @@ +name: tlaternet +version: 1.0.0 +description: tlaternet web interface +author: Tristan Maat +license: MIT +private: true + +dependencies: + # Libraries + gl-matrix: ^3.4.3 # To help with 3D math in WebGL code + classnames: ^2.3.1 # To manage CSS class names in react code + + # Fonts + hack-font: ^3.3.0 + '@fontsource/arimo': ^4.5.8 + '@fontsource/nunito': ^4.5.9 + '@fortawesome/fontawesome-free': ^6.1.1 + + # Frameworks for static content + bulma: ^0.9.4 + + # React-redux stuff + react: ^18.2.0 + react-dom: ^18.2.0 + redux: ^4.2.0 + '@reduxjs/toolkit': ^1.8.3 + react-redux: ^8.0.2 + +devDependencies: + # Parcel & plugins + parcel: ^2.6.2 + '@parcel/transformer-sass': ^2.6.2 + '@parcel/transformer-glsl': 2.6.2 + + # Build tools + typescript: ^4.7.4 + + sass: ^1.53.0 + + posthtml-extend: ^0.6.3 + posthtml-favicons: ^1.4.0 + posthtml-include: ^1.7.4 + posthtml-markdownit: ^1.3.0 + + '@babel/preset-env': ^7.18.6 + + # Type shims + '@types/react-dom': ^18.0.6 + '@types/react-redux': ^7.1.24 + + # Dev tools + npm-check-updates: ^16.0.5 + + prettier: ^2.7.1 + + typescript-language-server: ^0.11.2 + typescript-eslint-language-service: ^5.0.0 + + eslint: ^8.21.0 + '@typescript-eslint/parser': ^5.32.0 + '@typescript-eslint/eslint-plugin': ^5.32.0 + + vscode-langservers-extracted: ^4.2.1 + +scripts: + # Dev workflow + build: parcel build --no-autoinstall + serve: parcel serve --no-autoinstall + watch: parcel watch --no-autoinstall + + # Production build + build-dist: parcel build --no-cache --no-autoinstall && rename '.html' '.html.hbs' dist/*.html + + # Checks + check: tsc --noEmit + style: prettier --check src + lint: eslint --format unix src + +# Parcel config +source: src/index.html +browserslist: '> 1%, not dead'