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...
This commit is contained in:
Tristan Daniël Maat 2022-08-05 17:23:01 +01:00
parent f9bd128a02
commit 594e9bcbfd
Signed by: tlater
GPG key ID: 49670FD774E43268
10 changed files with 446 additions and 108 deletions

1
.gitignore vendored
View file

@ -3,3 +3,4 @@
/dist/
/node_modules
/result
/package.json

View file

@ -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
```

View file

@ -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;

View file

@ -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
'';
};
}

View file

@ -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

20
nix/utilities/default.nix Normal file
View file

@ -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";
};
}

View file

@ -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

312
package-lock.json generated
View file

@ -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",

View file

@ -1,55 +0,0 @@
{
"name": "tlaternet",
"version": "1.0.0",
"description": "tlaternet web interface",
"author": "Tristan Maat <tm@tlater.net>",
"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"
}

81
package.yaml Normal file
View file

@ -0,0 +1,81 @@
name: tlaternet
version: 1.0.0
description: tlaternet web interface
author: Tristan Maat <tm@tlater.net>
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'