A music player that connects to your cloud/distributed storage.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: make the project easier to build

+2119 -739
-1
.envrc
··· 1 - use flake
+4 -14
.gitignore
··· 1 1 .DS_Store 2 + .gren 3 + app 2 4 fission.yaml* 3 - .tmp.js 4 - *.cabal 5 - *.log 6 - *.yaml.lock 7 - *.tar.gz 8 - *.zip 9 5 elm-stuff 6 + node_modules 10 7 /.deploy* 11 - /.direnv 12 - /.stack-work 13 - /build 14 - /diffuse 15 - /node_modules 8 + /dist 16 9 /src/Library/Css/Classes.elm 17 - /TODO.md 18 - /tmp 19 - /vendor
+2 -1
CHANGELOG.md
··· 7 7 - Allows you to make playlists public when using Fission/ODD SDK. 8 8 - Fixes issue with Safari where reloading after a search caused the loader to be shown indefinitely. 9 9 - Fixes syncing issues with Fission/ODD SDK (was called Webnative before) 10 - - Removes support for older browsers 10 + - Made the project easier to build. 11 + - Removes support for older browsers. 11 12 12 13 13 14 ## 3.3.0
+10 -11
Justfile
··· 1 1 export NODE_NO_WARNINGS := "1" 2 2 3 3 4 - BUILD_DIR := "./build" 4 + BUILD_DIR := "./dist" 5 5 NPM_DIR := "./node_modules" 6 6 SRC_DIR := "./src" 7 7 SYSTEM_DIR := "./system" ··· 67 67 68 68 @elm: 69 69 echo "> Compiling Elm application" 70 - elm make {{SRC_DIR}}/Applications/Brain.elm --output {{BUILD_DIR}}/js/brain.elm.js 71 - elm make {{SRC_DIR}}/Applications/UI.elm --output {{BUILD_DIR}}/js/ui.elm.js 70 + {{NPM_DIR}}/.bin/elm make {{SRC_DIR}}/Applications/Brain.elm --output {{BUILD_DIR}}/js/brain.elm.js 71 + {{NPM_DIR}}/.bin/elm make {{SRC_DIR}}/Applications/UI.elm --output {{BUILD_DIR}}/js/ui.elm.js 72 72 73 73 74 74 @elm-prod: 75 75 echo "> Compiling Elm application (optimised)" 76 - elm make {{SRC_DIR}}/Applications/Brain.elm --output {{BUILD_DIR}}/js/brain.elm.js --optimize 77 - elm make {{SRC_DIR}}/Applications/UI.elm --output {{BUILD_DIR}}/js/ui.elm.js --optimize 76 + {{NPM_DIR}}/.bin/elm make {{SRC_DIR}}/Applications/Brain.elm --output {{BUILD_DIR}}/js/brain.elm.js --optimize 77 + {{NPM_DIR}}/.bin/elm make {{SRC_DIR}}/Applications/UI.elm --output {{BUILD_DIR}}/js/ui.elm.js --optimize 78 78 79 79 {{NPM_DIR}}/.bin/esbuild {{BUILD_DIR}}/js/brain.elm.js \ 80 80 --minify --outfile={{BUILD_DIR}}/js/brain.elm.tmp.js ··· 151 151 152 152 @system: 153 153 echo "> Compiling system" 154 - stack build --fast 2>&1 | sed '/^Warning:/,/Invalid magic: e49ceb0f$/d' | sed '/^Inferring license/d' && stack exec build --silent 154 + {{NPM_DIR}}/.bin/gren make system/Build/Build.gren 155 + node app 156 + rm app 157 + 155 158 156 159 157 160 # ··· 177 180 elm-format {{SRC_DIR}} --yes 178 181 179 182 180 - @install-deps: 181 - npm install 182 - 183 - 184 183 @quality: check-versions 185 184 echo "> Running es-lint" 186 185 {{NPM_DIR}}/.bin/eslint src/Javascript/**/* ··· 190 189 191 190 @server: 192 191 echo "> Booting up web server on port 8000" 193 - miniserve --spa --index index.html --port 8000 {{BUILD_DIR}} 192 + {{NPM_DIR}}/.bin/serve {{BUILD_DIR}} -p 8000 --no-request-logging 194 193 195 194 196 195 @test: doc-tests
+6 -13
README.md
··· 1 1 <img src="https://diffuse.sh/images/diffuse-dark.svg" alt="Diffuse" width="158" /> 2 2 3 - _A music player that connects to your cloud/distributed storage, 3 + _A music player that connects to your cloud/distributed storage, 4 4 in the form of a static, serverless, web application._ 5 5 6 6 📍 Available at [diffuse.sh](https://diffuse.sh/) and for [download](https://github.com/icidasset/diffuse/releases). ··· 60 60 61 61 ### Building it yourself 62 62 63 - This project uses [Nix](https://nixos.org/features.html) to manage the project's environment. If you'd like to build this project without Nix, check out the dependencies in the `nix/shell.nix` file (most are available through Homebrew as well). 64 - 63 + This project can be built with [Node.js](https://nodejs.org/). 65 64 66 65 ```shell 67 66 # 🍱 68 67 69 - # 0. Install the Nix package manager 70 - # https://nixos.org/download.html 68 + # 1. Install dependencies 69 + npm install 71 70 72 - # 1. Setup environment 73 - nix develop 74 - 75 - # 2. Install js dependencies 76 - just install-deps 77 - 78 - # 3. Build, start server & watch for changes 79 - just 71 + # 2. Build, start server & watch for changes 72 + npx just 80 73 ```
-43
flake.lock
··· 1 - { 2 - "nodes": { 3 - "flake-utils": { 4 - "locked": { 5 - "lastModified": 1659877975, 6 - "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", 7 - "owner": "numtide", 8 - "repo": "flake-utils", 9 - "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", 10 - "type": "github" 11 - }, 12 - "original": { 13 - "owner": "numtide", 14 - "repo": "flake-utils", 15 - "type": "github" 16 - } 17 - }, 18 - "nixpkgs": { 19 - "locked": { 20 - "lastModified": 1663850217, 21 - "narHash": "sha256-tp9nXo1/IdN/xN9m06ryy0QUAEfoN6K56ObM/1QTAjc=", 22 - "owner": "NixOS", 23 - "repo": "nixpkgs", 24 - "rev": "ae1dc133ea5f1538d035af41e5ddbc2ebcb67b90", 25 - "type": "github" 26 - }, 27 - "original": { 28 - "owner": "NixOS", 29 - "ref": "nixos-unstable", 30 - "repo": "nixpkgs", 31 - "type": "github" 32 - } 33 - }, 34 - "root": { 35 - "inputs": { 36 - "flake-utils": "flake-utils", 37 - "nixpkgs": "nixpkgs" 38 - } 39 - } 40 - }, 41 - "root": "root", 42 - "version": 7 43 - }
-49
flake.nix
··· 1 - { 2 - description = "diffuse"; 3 - 4 - 5 - # Inputs 6 - # ====== 7 - 8 - inputs = { 9 - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; 10 - flake-utils.url = "github:numtide/flake-utils"; 11 - }; 12 - 13 - 14 - # Outputs 15 - # ======= 16 - 17 - outputs = { self, nixpkgs, flake-utils }: 18 - let 19 - inherit (nixpkgs.lib) attrValues optionalAttrs; 20 - 21 - # Make rosetta (x86) packages available on M1 macs 22 - nixpkgsConfig = { 23 - overlays = attrValues self.overlays ++ [( 24 - final: prev: 25 - (optionalAttrs 26 - (prev.stdenv.system == "aarch64-darwin") 27 - { inherit (final.pkgs-x86); } 28 - ) 29 - )]; 30 - }; 31 - 32 - overlays = { 33 - apple-silicon = _: prev: 34 - optionalAttrs (prev.stdenv.system == "aarch64-darwin") { 35 - pkgs-x86 = import nixpkgs { 36 - system = "x86_64-darwin"; 37 - inherit nixpkgsConfig; 38 - }; 39 - }; 40 - }; 41 - 42 - in 43 - flake-utils.lib.simpleFlake { 44 - inherit self nixpkgs; 45 - name = "diffuse"; 46 - shell = ./nix/shell.nix; 47 - preOverlays = [ overlays.apple-silicon ]; 48 - }; 49 - }
+19
gren.json
··· 1 + { 2 + "type": "application", 3 + "platform": "node", 4 + "source-directories": ["src/Static", "system/Build/"], 5 + "gren-version": "0.3.0", 6 + "dependencies": { 7 + "direct": { 8 + "gren-lang/core": "4.0.1", 9 + "gren-lang/node": "3.0.1", 10 + "icidasset/html-gren": "4.1.0", 11 + "icidasset/markdown-gren": "3.1.0", 12 + "icidasset/shikensu-gren": "5.0.1" 13 + }, 14 + "indirect": { 15 + "gren-lang/parser": "3.0.1", 16 + "gren-lang/url": "3.0.0" 17 + } 18 + } 19 + }
-37
nix/shell.nix
··· 1 - { pkgs ? import <nixpkgs> {} }: with pkgs; let 2 - 3 - isM1Mac = stdenv.system == "aarch64-darwin"; 4 - 5 - # Dependencies 6 - # ------------ 7 - 8 - deps = { 9 - 10 - tools = [ 11 - curl 12 - just 13 - (if isM1Mac then pkgs-x86.miniserve else miniserve) 14 - (if isM1Mac then pkgs-x86.watchexec else watchexec) 15 - ]; 16 - 17 - languages = [ 18 - elmPackages.elm 19 - elmPackages.elm-format 20 - nodejs-18_x 21 - stack 22 - ]; 23 - 24 - }; 25 - 26 - in 27 - 28 - mkShell { 29 - 30 - buildInputs = builtins.concatLists [ 31 - deps.tools 32 - deps.languages 33 - ]; 34 - 35 - NIX_PATH = "nixpkgs=" + path; 36 - 37 - }
-23
nix/stack-integration.nix
··· 1 - { ghc }: 2 - with (import <nixpkgs> {}); 3 - let 4 - macos = 5 - if stdenv.isDarwin then 6 - [ 7 - darwin.apple_sdk.frameworks.CoreServices 8 - darwin.apple_sdk.frameworks.Foundation 9 - darwin.apple_sdk.frameworks.Cocoa 10 - ] 11 - else 12 - []; 13 - in 14 - haskell.lib.buildStackProject { 15 - inherit ghc; 16 - name = "diffuse"; 17 - buildInputs = [ 18 - lzma 19 - openssl 20 - postgresql 21 - zlib 22 - ] ++ macos; 23 - }
+1595 -88
package-lock.json
··· 21 21 "music-metadata-browser": "^2.5.10", 22 22 "readable-stream": "^4.4.2", 23 23 "remotestoragejs": "^2.0.0-beta.6", 24 + "serve": "^14.2.1", 24 25 "throttle-debounce": "^5.0.0", 25 26 "timer.js": "^1.0.4", 26 27 "tocca": "^2.0.9", ··· 32 33 "assert": "^2.0.0", 33 34 "autoprefixer": "^10.4.14", 34 35 "buffer": "^6.0.3", 36 + "elm": "0.19.1-6", 35 37 "elm-review": "^2.10.2", 36 38 "esbuild": "^0.18.18", 37 39 "eslint": "^8.46.0", 38 40 "events": "^3.3.0", 39 41 "gren-lang": "^0.3.0", 42 + "just-install": "^2.0.1", 40 43 "postcss": "^8.4.27", 41 44 "postcss-custom-properties": "^13.3.0", 42 45 "postcss-import": "^15.1.0", ··· 143 146 "engines": { 144 147 "node": "^14 || ^16 || >=18" 145 148 } 149 + }, 150 + "node_modules/@elm_binaries/darwin_arm64": { 151 + "version": "0.19.1-0", 152 + "resolved": "https://registry.npmjs.org/@elm_binaries/darwin_arm64/-/darwin_arm64-0.19.1-0.tgz", 153 + "integrity": "sha512-mjbsH7BNHEAmoE2SCJFcfk5fIHwFIpxtSgnEAqMsVLpBUFoEtAeX+LQ+N0vSFJB3WAh73+QYx/xSluxxLcL6dA==", 154 + "cpu": [ 155 + "arm64" 156 + ], 157 + "dev": true, 158 + "optional": true, 159 + "os": [ 160 + "darwin" 161 + ] 162 + }, 163 + "node_modules/@elm_binaries/darwin_x64": { 164 + "version": "0.19.1-0", 165 + "resolved": "https://registry.npmjs.org/@elm_binaries/darwin_x64/-/darwin_x64-0.19.1-0.tgz", 166 + "integrity": "sha512-QGUtrZTPBzaxgi9al6nr+9313wrnUVHuijzUK39UsPS+pa+n6CmWyV/69sHZeX9qy6UfeugE0PzF3qcUiy2GDQ==", 167 + "cpu": [ 168 + "x64" 169 + ], 170 + "dev": true, 171 + "optional": true, 172 + "os": [ 173 + "darwin" 174 + ] 175 + }, 176 + "node_modules/@elm_binaries/linux_x64": { 177 + "version": "0.19.1-0", 178 + "resolved": "https://registry.npmjs.org/@elm_binaries/linux_x64/-/linux_x64-0.19.1-0.tgz", 179 + "integrity": "sha512-T1ZrWVhg2kKAsi8caOd3vp/1A3e21VuCpSG63x8rDie50fHbCytTway9B8WHEdnBFv4mYWiA68dzGxYCiFmU2w==", 180 + "cpu": [ 181 + "x64" 182 + ], 183 + "dev": true, 184 + "optional": true, 185 + "os": [ 186 + "linux" 187 + ] 188 + }, 189 + "node_modules/@elm_binaries/win32_x64": { 190 + "version": "0.19.1-0", 191 + "resolved": "https://registry.npmjs.org/@elm_binaries/win32_x64/-/win32_x64-0.19.1-0.tgz", 192 + "integrity": "sha512-yDleiXqSE9EcqKtd9SkC/4RIW8I71YsXzMPL79ub2bBPHjWTcoyyeBbYjoOB9SxSlArJ74HaoBApzT6hY7Zobg==", 193 + "cpu": [ 194 + "x64" 195 + ], 196 + "dev": true, 197 + "optional": true, 198 + "os": [ 199 + "win32" 200 + ] 146 201 }, 147 202 "node_modules/@esbuild/android-arm": { 148 203 "version": "0.18.18", ··· 1323 1378 "resolved": "https://registry.npmjs.org/@types/tv4/-/tv4-1.2.31.tgz", 1324 1379 "integrity": "sha512-P97XU07fcpauSw3/fE2Q7eF6bHl4oHhwkikjnM7zlQLENrdC2rZuHSdNlMBhnW82NyBEsVJHII1Jk3d/MtQsQQ==" 1325 1380 }, 1381 + "node_modules/@types/yauzl": { 1382 + "version": "2.10.3", 1383 + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", 1384 + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", 1385 + "dev": true, 1386 + "optional": true, 1387 + "dependencies": { 1388 + "@types/node": "*" 1389 + } 1390 + }, 1326 1391 "node_modules/@typescript-eslint/eslint-plugin": { 1327 1392 "version": "6.2.1", 1328 1393 "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.2.1.tgz", ··· 1513 1578 "url": "https://opencollective.com/typescript-eslint" 1514 1579 } 1515 1580 }, 1581 + "node_modules/@zeit/schemas": { 1582 + "version": "2.29.0", 1583 + "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.29.0.tgz", 1584 + "integrity": "sha512-g5QiLIfbg3pLuYUJPlisNKY+epQJTcMDsOnVNkscrDP1oi7vmJnzOANYJI/1pZcVJ6umUkBv3aFtlg1UvUHGzA==" 1585 + }, 1516 1586 "node_modules/abort-controller": { 1517 1587 "version": "3.0.0", 1518 1588 "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", ··· 1541 1611 "node": ">=12" 1542 1612 } 1543 1613 }, 1614 + "node_modules/accepts": { 1615 + "version": "1.3.8", 1616 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", 1617 + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", 1618 + "dependencies": { 1619 + "mime-types": "~2.1.34", 1620 + "negotiator": "0.6.3" 1621 + }, 1622 + "engines": { 1623 + "node": ">= 0.6" 1624 + } 1625 + }, 1544 1626 "node_modules/acorn": { 1545 1627 "version": "8.10.0", 1546 1628 "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", ··· 1578 1660 "url": "https://github.com/sponsors/epoberezkin" 1579 1661 } 1580 1662 }, 1663 + "node_modules/ansi-align": { 1664 + "version": "3.0.1", 1665 + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", 1666 + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", 1667 + "dependencies": { 1668 + "string-width": "^4.1.0" 1669 + } 1670 + }, 1581 1671 "node_modules/ansi-escapes": { 1582 1672 "version": "4.3.2", 1583 1673 "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", ··· 1609 1699 "version": "5.0.1", 1610 1700 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 1611 1701 "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 1612 - "dev": true, 1613 1702 "engines": { 1614 1703 "node": ">=8" 1615 1704 } ··· 1618 1707 "version": "4.3.0", 1619 1708 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 1620 1709 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 1621 - "dev": true, 1622 1710 "dependencies": { 1623 1711 "color-convert": "^2.0.1" 1624 1712 }, ··· 1648 1736 "node": ">= 8" 1649 1737 } 1650 1738 }, 1739 + "node_modules/arch": { 1740 + "version": "2.2.0", 1741 + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", 1742 + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", 1743 + "funding": [ 1744 + { 1745 + "type": "github", 1746 + "url": "https://github.com/sponsors/feross" 1747 + }, 1748 + { 1749 + "type": "patreon", 1750 + "url": "https://www.patreon.com/feross" 1751 + }, 1752 + { 1753 + "type": "consulting", 1754 + "url": "https://feross.org/support" 1755 + } 1756 + ] 1757 + }, 1651 1758 "node_modules/arg": { 1652 1759 "version": "5.0.2", 1653 1760 "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", 1654 - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", 1655 - "dev": true 1761 + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" 1656 1762 }, 1657 1763 "node_modules/argparse": { 1658 1764 "version": "2.0.1", ··· 1738 1844 "node_modules/balanced-match": { 1739 1845 "version": "1.0.2", 1740 1846 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 1741 - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 1742 - "dev": true 1847 + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 1743 1848 }, 1744 1849 "node_modules/base64-js": { 1745 1850 "version": "1.5.1", ··· 1882 1987 "npm": ">=7.0.0" 1883 1988 } 1884 1989 }, 1990 + "node_modules/boxen": { 1991 + "version": "7.0.0", 1992 + "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.0.tgz", 1993 + "integrity": "sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==", 1994 + "dependencies": { 1995 + "ansi-align": "^3.0.1", 1996 + "camelcase": "^7.0.0", 1997 + "chalk": "^5.0.1", 1998 + "cli-boxes": "^3.0.0", 1999 + "string-width": "^5.1.2", 2000 + "type-fest": "^2.13.0", 2001 + "widest-line": "^4.0.1", 2002 + "wrap-ansi": "^8.0.1" 2003 + }, 2004 + "engines": { 2005 + "node": ">=14.16" 2006 + }, 2007 + "funding": { 2008 + "url": "https://github.com/sponsors/sindresorhus" 2009 + } 2010 + }, 2011 + "node_modules/boxen/node_modules/ansi-regex": { 2012 + "version": "6.0.1", 2013 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 2014 + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", 2015 + "engines": { 2016 + "node": ">=12" 2017 + }, 2018 + "funding": { 2019 + "url": "https://github.com/chalk/ansi-regex?sponsor=1" 2020 + } 2021 + }, 2022 + "node_modules/boxen/node_modules/ansi-styles": { 2023 + "version": "6.2.1", 2024 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", 2025 + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", 2026 + "engines": { 2027 + "node": ">=12" 2028 + }, 2029 + "funding": { 2030 + "url": "https://github.com/chalk/ansi-styles?sponsor=1" 2031 + } 2032 + }, 2033 + "node_modules/boxen/node_modules/chalk": { 2034 + "version": "5.3.0", 2035 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", 2036 + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", 2037 + "engines": { 2038 + "node": "^12.17.0 || ^14.13 || >=16.0.0" 2039 + }, 2040 + "funding": { 2041 + "url": "https://github.com/chalk/chalk?sponsor=1" 2042 + } 2043 + }, 2044 + "node_modules/boxen/node_modules/emoji-regex": { 2045 + "version": "9.2.2", 2046 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", 2047 + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" 2048 + }, 2049 + "node_modules/boxen/node_modules/string-width": { 2050 + "version": "5.1.2", 2051 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", 2052 + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", 2053 + "dependencies": { 2054 + "eastasianwidth": "^0.2.0", 2055 + "emoji-regex": "^9.2.2", 2056 + "strip-ansi": "^7.0.1" 2057 + }, 2058 + "engines": { 2059 + "node": ">=12" 2060 + }, 2061 + "funding": { 2062 + "url": "https://github.com/sponsors/sindresorhus" 2063 + } 2064 + }, 2065 + "node_modules/boxen/node_modules/strip-ansi": { 2066 + "version": "7.1.0", 2067 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 2068 + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 2069 + "dependencies": { 2070 + "ansi-regex": "^6.0.1" 2071 + }, 2072 + "engines": { 2073 + "node": ">=12" 2074 + }, 2075 + "funding": { 2076 + "url": "https://github.com/chalk/strip-ansi?sponsor=1" 2077 + } 2078 + }, 2079 + "node_modules/boxen/node_modules/type-fest": { 2080 + "version": "2.19.0", 2081 + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", 2082 + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", 2083 + "engines": { 2084 + "node": ">=12.20" 2085 + }, 2086 + "funding": { 2087 + "url": "https://github.com/sponsors/sindresorhus" 2088 + } 2089 + }, 2090 + "node_modules/boxen/node_modules/wrap-ansi": { 2091 + "version": "8.1.0", 2092 + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", 2093 + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", 2094 + "dependencies": { 2095 + "ansi-styles": "^6.1.0", 2096 + "string-width": "^5.0.1", 2097 + "strip-ansi": "^7.0.1" 2098 + }, 2099 + "engines": { 2100 + "node": ">=12" 2101 + }, 2102 + "funding": { 2103 + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 2104 + } 2105 + }, 1885 2106 "node_modules/brace-expansion": { 1886 2107 "version": "1.1.11", 1887 2108 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1888 2109 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1889 - "dev": true, 1890 2110 "dependencies": { 1891 2111 "balanced-match": "^1.0.0", 1892 2112 "concat-map": "0.0.1" ··· 1966 2186 "ieee754": "^1.2.1" 1967 2187 } 1968 2188 }, 2189 + "node_modules/buffer-crc32": { 2190 + "version": "0.2.13", 2191 + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 2192 + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", 2193 + "dev": true, 2194 + "engines": { 2195 + "node": "*" 2196 + } 2197 + }, 1969 2198 "node_modules/busboy": { 1970 2199 "version": "1.6.0", 1971 2200 "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", ··· 2034 2263 "node": ">=6" 2035 2264 } 2036 2265 }, 2266 + "node_modules/camelcase": { 2267 + "version": "7.0.1", 2268 + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", 2269 + "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", 2270 + "engines": { 2271 + "node": ">=14.16" 2272 + }, 2273 + "funding": { 2274 + "url": "https://github.com/sponsors/sindresorhus" 2275 + } 2276 + }, 2037 2277 "node_modules/camelcase-css": { 2038 2278 "version": "2.0.1", 2039 2279 "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", ··· 2044 2284 } 2045 2285 }, 2046 2286 "node_modules/caniuse-lite": { 2047 - "version": "1.0.30001481", 2048 - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001481.tgz", 2049 - "integrity": "sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==", 2287 + "version": "1.0.30001584", 2288 + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001584.tgz", 2289 + "integrity": "sha512-LOz7CCQ9M1G7OjJOF9/mzmqmj3jE/7VOmrfw6Mgs0E8cjOsbRXQJHsPBfmBOXDskXKrHLyyW3n7kpDW/4BsfpQ==", 2050 2290 "dev": true, 2051 2291 "funding": [ 2052 2292 { ··· 2083 2323 "version": "4.1.2", 2084 2324 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 2085 2325 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 2086 - "dev": true, 2087 2326 "dependencies": { 2088 2327 "ansi-styles": "^4.1.0", 2089 2328 "supports-color": "^7.1.0" ··· 2095 2334 "url": "https://github.com/chalk/chalk?sponsor=1" 2096 2335 } 2097 2336 }, 2337 + "node_modules/chalk-template": { 2338 + "version": "0.4.0", 2339 + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", 2340 + "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", 2341 + "dependencies": { 2342 + "chalk": "^4.1.2" 2343 + }, 2344 + "engines": { 2345 + "node": ">=12" 2346 + }, 2347 + "funding": { 2348 + "url": "https://github.com/chalk/chalk-template?sponsor=1" 2349 + } 2350 + }, 2098 2351 "node_modules/chokidar": { 2099 2352 "version": "3.5.3", 2100 2353 "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", ··· 2138 2391 "node": ">=12" 2139 2392 } 2140 2393 }, 2394 + "node_modules/cli-boxes": { 2395 + "version": "3.0.0", 2396 + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", 2397 + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", 2398 + "engines": { 2399 + "node": ">=10" 2400 + }, 2401 + "funding": { 2402 + "url": "https://github.com/sponsors/sindresorhus" 2403 + } 2404 + }, 2141 2405 "node_modules/cli-cursor": { 2142 2406 "version": "3.1.0", 2143 2407 "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", ··· 2162 2426 "url": "https://github.com/sponsors/sindresorhus" 2163 2427 } 2164 2428 }, 2429 + "node_modules/clipboardy": { 2430 + "version": "3.0.0", 2431 + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-3.0.0.tgz", 2432 + "integrity": "sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==", 2433 + "dependencies": { 2434 + "arch": "^2.2.0", 2435 + "execa": "^5.1.1", 2436 + "is-wsl": "^2.2.0" 2437 + }, 2438 + "engines": { 2439 + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 2440 + }, 2441 + "funding": { 2442 + "url": "https://github.com/sponsors/sindresorhus" 2443 + } 2444 + }, 2165 2445 "node_modules/clone": { 2166 2446 "version": "1.0.4", 2167 2447 "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", ··· 2187 2467 "version": "2.0.1", 2188 2468 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 2189 2469 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 2190 - "dev": true, 2191 2470 "dependencies": { 2192 2471 "color-name": "~1.1.4" 2193 2472 }, ··· 2198 2477 "node_modules/color-name": { 2199 2478 "version": "1.1.4", 2200 2479 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 2201 - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 2202 - "dev": true 2480 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 2203 2481 }, 2204 2482 "node_modules/commander": { 2205 2483 "version": "4.1.1", ··· 2210 2488 "node": ">= 6" 2211 2489 } 2212 2490 }, 2491 + "node_modules/compressible": { 2492 + "version": "2.0.18", 2493 + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", 2494 + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", 2495 + "dependencies": { 2496 + "mime-db": ">= 1.43.0 < 2" 2497 + }, 2498 + "engines": { 2499 + "node": ">= 0.6" 2500 + } 2501 + }, 2502 + "node_modules/compression": { 2503 + "version": "1.7.4", 2504 + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", 2505 + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", 2506 + "dependencies": { 2507 + "accepts": "~1.3.5", 2508 + "bytes": "3.0.0", 2509 + "compressible": "~2.0.16", 2510 + "debug": "2.6.9", 2511 + "on-headers": "~1.0.2", 2512 + "safe-buffer": "5.1.2", 2513 + "vary": "~1.1.2" 2514 + }, 2515 + "engines": { 2516 + "node": ">= 0.8.0" 2517 + } 2518 + }, 2519 + "node_modules/compression/node_modules/bytes": { 2520 + "version": "3.0.0", 2521 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", 2522 + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", 2523 + "engines": { 2524 + "node": ">= 0.8" 2525 + } 2526 + }, 2527 + "node_modules/compression/node_modules/debug": { 2528 + "version": "2.6.9", 2529 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 2530 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 2531 + "dependencies": { 2532 + "ms": "2.0.0" 2533 + } 2534 + }, 2535 + "node_modules/compression/node_modules/ms": { 2536 + "version": "2.0.0", 2537 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 2538 + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" 2539 + }, 2540 + "node_modules/compression/node_modules/safe-buffer": { 2541 + "version": "5.1.2", 2542 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 2543 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 2544 + }, 2213 2545 "node_modules/concat-map": { 2214 2546 "version": "0.0.1", 2215 2547 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 2216 - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 2217 - "dev": true 2548 + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" 2549 + }, 2550 + "node_modules/content-disposition": { 2551 + "version": "0.5.2", 2552 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", 2553 + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", 2554 + "engines": { 2555 + "node": ">= 0.6" 2556 + } 2218 2557 }, 2219 2558 "node_modules/content-type": { 2220 2559 "version": "1.0.5", ··· 2233 2572 "version": "7.0.3", 2234 2573 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 2235 2574 "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 2236 - "dev": true, 2237 2575 "dependencies": { 2238 2576 "path-key": "^3.1.0", 2239 2577 "shebang-command": "^2.0.0", ··· 2259 2597 "version": "0.2.2", 2260 2598 "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", 2261 2599 "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==" 2600 + }, 2601 + "node_modules/data-uri-to-buffer": { 2602 + "version": "4.0.1", 2603 + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", 2604 + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", 2605 + "dev": true, 2606 + "engines": { 2607 + "node": ">= 12" 2608 + } 2262 2609 }, 2263 2610 "node_modules/datastore-core": { 2264 2611 "version": "8.0.4", ··· 2399 2746 "url": "https://github.com/sponsors/sindresorhus" 2400 2747 } 2401 2748 }, 2749 + "node_modules/deep-extend": { 2750 + "version": "0.6.0", 2751 + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", 2752 + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", 2753 + "engines": { 2754 + "node": ">=4.0.0" 2755 + } 2756 + }, 2402 2757 "node_modules/deep-is": { 2403 2758 "version": "0.1.4", 2404 2759 "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", ··· 2496 2851 "node_modules/eastasianwidth": { 2497 2852 "version": "0.2.0", 2498 2853 "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", 2499 - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", 2500 - "dev": true 2854 + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" 2501 2855 }, 2502 2856 "node_modules/electron-to-chromium": { 2503 2857 "version": "1.4.377", ··· 2505 2859 "integrity": "sha512-H3BYG6DW5Z+l0xcfXaicJGxrpA4kMlCxnN71+iNX+dBLkRMOdVJqFJiAmbNZZKA1zISpRg17JR03qGifXNsJtw==", 2506 2860 "dev": true 2507 2861 }, 2862 + "node_modules/elm": { 2863 + "version": "0.19.1-6", 2864 + "resolved": "https://registry.npmjs.org/elm/-/elm-0.19.1-6.tgz", 2865 + "integrity": "sha512-mKYyierHICPdMx/vhiIacdPmTPnh889gjHOZ75ZAoCxo3lZmSWbGP8HMw78wyctJH0HwvTmeKhlYSWboQNYPeQ==", 2866 + "dev": true, 2867 + "hasInstallScript": true, 2868 + "bin": { 2869 + "elm": "bin/elm" 2870 + }, 2871 + "engines": { 2872 + "node": ">=7.0.0" 2873 + }, 2874 + "optionalDependencies": { 2875 + "@elm_binaries/darwin_arm64": "0.19.1-0", 2876 + "@elm_binaries/darwin_x64": "0.19.1-0", 2877 + "@elm_binaries/linux_x64": "0.19.1-0", 2878 + "@elm_binaries/win32_x64": "0.19.1-0" 2879 + } 2880 + }, 2508 2881 "node_modules/elm-review": { 2509 2882 "version": "2.10.2", 2510 2883 "resolved": "https://registry.npmjs.org/elm-review/-/elm-review-2.10.2.tgz", ··· 2629 3002 "node_modules/emoji-regex": { 2630 3003 "version": "8.0.0", 2631 3004 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 2632 - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 2633 - "dev": true 3005 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 2634 3006 }, 2635 3007 "node_modules/end-of-stream": { 2636 3008 "version": "1.4.4", ··· 2953 3325 "node": ">=0.8.x" 2954 3326 } 2955 3327 }, 3328 + "node_modules/execa": { 3329 + "version": "5.1.1", 3330 + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", 3331 + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", 3332 + "dependencies": { 3333 + "cross-spawn": "^7.0.3", 3334 + "get-stream": "^6.0.0", 3335 + "human-signals": "^2.1.0", 3336 + "is-stream": "^2.0.0", 3337 + "merge-stream": "^2.0.0", 3338 + "npm-run-path": "^4.0.1", 3339 + "onetime": "^5.1.2", 3340 + "signal-exit": "^3.0.3", 3341 + "strip-final-newline": "^2.0.0" 3342 + }, 3343 + "engines": { 3344 + "node": ">=10" 3345 + }, 3346 + "funding": { 3347 + "url": "https://github.com/sindresorhus/execa?sponsor=1" 3348 + } 3349 + }, 3350 + "node_modules/execa/node_modules/get-stream": { 3351 + "version": "6.0.1", 3352 + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", 3353 + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", 3354 + "engines": { 3355 + "node": ">=10" 3356 + }, 3357 + "funding": { 3358 + "url": "https://github.com/sponsors/sindresorhus" 3359 + } 3360 + }, 3361 + "node_modules/extract-zip": { 3362 + "version": "2.0.1", 3363 + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", 3364 + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", 3365 + "dev": true, 3366 + "dependencies": { 3367 + "debug": "^4.1.1", 3368 + "get-stream": "^5.1.0", 3369 + "yauzl": "^2.10.0" 3370 + }, 3371 + "bin": { 3372 + "extract-zip": "cli.js" 3373 + }, 3374 + "engines": { 3375 + "node": ">= 10.17.0" 3376 + }, 3377 + "optionalDependencies": { 3378 + "@types/yauzl": "^2.9.1" 3379 + } 3380 + }, 2956 3381 "node_modules/fast-deep-equal": { 2957 3382 "version": "3.1.3", 2958 3383 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 2959 - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 2960 - "dev": true 3384 + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 2961 3385 }, 2962 3386 "node_modules/fast-glob": { 2963 3387 "version": "3.2.12", ··· 2995 3419 "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz", 2996 3420 "integrity": "sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==" 2997 3421 }, 3422 + "node_modules/fast-url-parser": { 3423 + "version": "1.1.3", 3424 + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", 3425 + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", 3426 + "dependencies": { 3427 + "punycode": "^1.3.2" 3428 + } 3429 + }, 3430 + "node_modules/fast-url-parser/node_modules/punycode": { 3431 + "version": "1.4.1", 3432 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 3433 + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" 3434 + }, 2998 3435 "node_modules/fastest-levenshtein": { 2999 3436 "version": "1.0.16", 3000 3437 "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", ··· 3011 3448 "dev": true, 3012 3449 "dependencies": { 3013 3450 "reusify": "^1.0.4" 3451 + } 3452 + }, 3453 + "node_modules/fd-slicer": { 3454 + "version": "1.1.0", 3455 + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", 3456 + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", 3457 + "dev": true, 3458 + "dependencies": { 3459 + "pend": "~1.2.0" 3460 + } 3461 + }, 3462 + "node_modules/fetch-blob": { 3463 + "version": "3.2.0", 3464 + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", 3465 + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", 3466 + "dev": true, 3467 + "funding": [ 3468 + { 3469 + "type": "github", 3470 + "url": "https://github.com/sponsors/jimmywarting" 3471 + }, 3472 + { 3473 + "type": "paypal", 3474 + "url": "https://paypal.me/jimmywarting" 3475 + } 3476 + ], 3477 + "dependencies": { 3478 + "node-domexception": "^1.0.0", 3479 + "web-streams-polyfill": "^3.0.3" 3480 + }, 3481 + "engines": { 3482 + "node": "^12.20 || >= 14.13" 3014 3483 } 3015 3484 }, 3016 3485 "node_modules/file-entry-cache": { ··· 3178 3647 }, 3179 3648 "funding": { 3180 3649 "url": "https://github.com/sponsors/isaacs" 3650 + } 3651 + }, 3652 + "node_modules/formdata-polyfill": { 3653 + "version": "4.0.10", 3654 + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", 3655 + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", 3656 + "dev": true, 3657 + "dependencies": { 3658 + "fetch-blob": "^3.1.2" 3659 + }, 3660 + "engines": { 3661 + "node": ">=12.20.0" 3181 3662 } 3182 3663 }, 3183 3664 "node_modules/fraction.js": { ··· 3415 3896 "version": "4.0.0", 3416 3897 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 3417 3898 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 3418 - "dev": true, 3419 3899 "engines": { 3420 3900 "node": ">=8" 3421 3901 } ··· 3476 3956 }, 3477 3957 "engines": { 3478 3958 "node": ">=10.19.0" 3959 + } 3960 + }, 3961 + "node_modules/human-signals": { 3962 + "version": "2.1.0", 3963 + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", 3964 + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", 3965 + "engines": { 3966 + "node": ">=10.17.0" 3479 3967 } 3480 3968 }, 3481 3969 "node_modules/ieee754": { ··· 3550 4038 "version": "2.0.4", 3551 4039 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 3552 4040 "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 4041 + }, 4042 + "node_modules/ini": { 4043 + "version": "1.3.8", 4044 + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", 4045 + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" 3553 4046 }, 3554 4047 "node_modules/interface-blockstore": { 3555 4048 "version": "3.0.2", ··· 3839 4332 "url": "https://github.com/sponsors/ljharb" 3840 4333 } 3841 4334 }, 4335 + "node_modules/is-docker": { 4336 + "version": "2.2.1", 4337 + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", 4338 + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", 4339 + "bin": { 4340 + "is-docker": "cli.js" 4341 + }, 4342 + "engines": { 4343 + "node": ">=8" 4344 + }, 4345 + "funding": { 4346 + "url": "https://github.com/sponsors/sindresorhus" 4347 + } 4348 + }, 3842 4349 "node_modules/is-extglob": { 3843 4350 "version": "2.1.1", 3844 4351 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", ··· 3852 4359 "version": "3.0.0", 3853 4360 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 3854 4361 "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 3855 - "dev": true, 3856 4362 "engines": { 3857 4363 "node": ">=8" 3858 4364 } ··· 3935 4441 "node": ">=8" 3936 4442 } 3937 4443 }, 4444 + "node_modules/is-port-reachable": { 4445 + "version": "4.0.0", 4446 + "resolved": "https://registry.npmjs.org/is-port-reachable/-/is-port-reachable-4.0.0.tgz", 4447 + "integrity": "sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==", 4448 + "engines": { 4449 + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 4450 + }, 4451 + "funding": { 4452 + "url": "https://github.com/sponsors/sindresorhus" 4453 + } 4454 + }, 4455 + "node_modules/is-stream": { 4456 + "version": "2.0.1", 4457 + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 4458 + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", 4459 + "engines": { 4460 + "node": ">=8" 4461 + }, 4462 + "funding": { 4463 + "url": "https://github.com/sponsors/sindresorhus" 4464 + } 4465 + }, 3938 4466 "node_modules/is-typed-array": { 3939 4467 "version": "1.1.10", 3940 4468 "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", ··· 3966 4494 "url": "https://github.com/sponsors/sindresorhus" 3967 4495 } 3968 4496 }, 4497 + "node_modules/is-wsl": { 4498 + "version": "2.2.0", 4499 + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", 4500 + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", 4501 + "dependencies": { 4502 + "is-docker": "^2.0.0" 4503 + }, 4504 + "engines": { 4505 + "node": ">=8" 4506 + } 4507 + }, 3969 4508 "node_modules/isarray": { 3970 4509 "version": "1.0.0", 3971 4510 "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", ··· 3974 4513 "node_modules/isexe": { 3975 4514 "version": "2.0.0", 3976 4515 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 3977 - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 3978 - "dev": true 4516 + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" 3979 4517 }, 3980 4518 "node_modules/it-all": { 3981 4519 "version": "1.0.6", ··· 4217 4755 "safe-buffer": "~5.1.0" 4218 4756 } 4219 4757 }, 4758 + "node_modules/just-install": { 4759 + "version": "2.0.1", 4760 + "resolved": "https://registry.npmjs.org/just-install/-/just-install-2.0.1.tgz", 4761 + "integrity": "sha512-mqIPeDwjU/sjSrfjM6GXDXphF7tTBMji+S5hCS4vBG7J3wH4FAD8Ut9Mel/64KYwlsQz5rVkdl28koZtH9TSTQ==", 4762 + "dev": true, 4763 + "hasInstallScript": true, 4764 + "dependencies": { 4765 + "extract-zip": "^2.0.1", 4766 + "node-fetch": "^3.3.2" 4767 + }, 4768 + "bin": { 4769 + "just": "bin/just.js", 4770 + "just-install": "install.js" 4771 + }, 4772 + "engines": { 4773 + "node": ">=18.0" 4774 + } 4775 + }, 4776 + "node_modules/just-install/node_modules/node-fetch": { 4777 + "version": "3.3.2", 4778 + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", 4779 + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", 4780 + "dev": true, 4781 + "dependencies": { 4782 + "data-uri-to-buffer": "^4.0.0", 4783 + "fetch-blob": "^3.1.4", 4784 + "formdata-polyfill": "^4.0.10" 4785 + }, 4786 + "engines": { 4787 + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 4788 + }, 4789 + "funding": { 4790 + "type": "opencollective", 4791 + "url": "https://opencollective.com/node-fetch" 4792 + } 4793 + }, 4220 4794 "node_modules/just-safe-get": { 4221 4795 "version": "4.2.0", 4222 4796 "resolved": "https://registry.npmjs.org/just-safe-get/-/just-safe-get-4.2.0.tgz", ··· 4477 5051 "node": ">=10" 4478 5052 } 4479 5053 }, 5054 + "node_modules/merge-stream": { 5055 + "version": "2.0.0", 5056 + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", 5057 + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" 5058 + }, 4480 5059 "node_modules/merge2": { 4481 5060 "version": "1.4.1", 4482 5061 "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", ··· 4499 5078 "node": ">=8.6" 4500 5079 } 4501 5080 }, 5081 + "node_modules/mime-db": { 5082 + "version": "1.52.0", 5083 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 5084 + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", 5085 + "engines": { 5086 + "node": ">= 0.6" 5087 + } 5088 + }, 5089 + "node_modules/mime-types": { 5090 + "version": "2.1.35", 5091 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 5092 + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 5093 + "dependencies": { 5094 + "mime-db": "1.52.0" 5095 + }, 5096 + "engines": { 5097 + "node": ">= 0.6" 5098 + } 5099 + }, 4502 5100 "node_modules/mimic-fn": { 4503 5101 "version": "2.1.0", 4504 5102 "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 4505 5103 "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", 4506 - "dev": true, 4507 5104 "engines": { 4508 5105 "node": ">=6" 4509 5106 } ··· 4521 5118 "version": "3.1.2", 4522 5119 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 4523 5120 "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 4524 - "dev": true, 4525 5121 "dependencies": { 4526 5122 "brace-expansion": "^1.1.7" 4527 5123 }, ··· 4533 5129 "version": "1.2.8", 4534 5130 "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", 4535 5131 "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", 4536 - "dev": true, 4537 5132 "funding": { 4538 5133 "url": "https://github.com/sponsors/ljharb" 4539 5134 } ··· 4724 5319 "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", 4725 5320 "dev": true 4726 5321 }, 5322 + "node_modules/negotiator": { 5323 + "version": "0.6.3", 5324 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", 5325 + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", 5326 + "engines": { 5327 + "node": ">= 0.6" 5328 + } 5329 + }, 5330 + "node_modules/node-domexception": { 5331 + "version": "1.0.0", 5332 + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", 5333 + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", 5334 + "dev": true, 5335 + "funding": [ 5336 + { 5337 + "type": "github", 5338 + "url": "https://github.com/sponsors/jimmywarting" 5339 + }, 5340 + { 5341 + "type": "github", 5342 + "url": "https://paypal.me/jimmywarting" 5343 + } 5344 + ], 5345 + "engines": { 5346 + "node": ">=10.5.0" 5347 + } 5348 + }, 4727 5349 "node_modules/node-fetch": { 4728 5350 "version": "2.6.9", 4729 5351 "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", ··· 4789 5411 "url": "https://github.com/sponsors/sindresorhus" 4790 5412 } 4791 5413 }, 5414 + "node_modules/npm-run-path": { 5415 + "version": "4.0.1", 5416 + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", 5417 + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", 5418 + "dependencies": { 5419 + "path-key": "^3.0.0" 5420 + }, 5421 + "engines": { 5422 + "node": ">=8" 5423 + } 5424 + }, 4792 5425 "node_modules/object-assign": { 4793 5426 "version": "4.1.1", 4794 5427 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", ··· 4841 5474 "npm": ">=7.0.0" 4842 5475 } 4843 5476 }, 5477 + "node_modules/on-headers": { 5478 + "version": "1.0.2", 5479 + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", 5480 + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", 5481 + "engines": { 5482 + "node": ">= 0.8" 5483 + } 5484 + }, 4844 5485 "node_modules/once": { 4845 5486 "version": "1.4.0", 4846 5487 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", ··· 4859 5500 "version": "5.1.2", 4860 5501 "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", 4861 5502 "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", 4862 - "dev": true, 4863 5503 "dependencies": { 4864 5504 "mimic-fn": "^2.1.0" 4865 5505 }, ··· 5033 5673 "node": ">=0.10.0" 5034 5674 } 5035 5675 }, 5676 + "node_modules/path-is-inside": { 5677 + "version": "1.0.2", 5678 + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 5679 + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" 5680 + }, 5036 5681 "node_modules/path-key": { 5037 5682 "version": "3.1.1", 5038 5683 "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 5039 5684 "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 5040 - "dev": true, 5041 5685 "engines": { 5042 5686 "node": ">=8" 5043 5687 } ··· 5073 5717 "node": "14 || >=16.14" 5074 5718 } 5075 5719 }, 5720 + "node_modules/path-to-regexp": { 5721 + "version": "2.2.1", 5722 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", 5723 + "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" 5724 + }, 5076 5725 "node_modules/path-type": { 5077 5726 "version": "4.0.0", 5078 5727 "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", ··· 5093 5742 "type": "github", 5094 5743 "url": "https://github.com/sponsors/Borewit" 5095 5744 } 5745 + }, 5746 + "node_modules/pend": { 5747 + "version": "1.2.0", 5748 + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", 5749 + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", 5750 + "dev": true 5096 5751 }, 5097 5752 "node_modules/picocolors": { 5098 5753 "version": "1.0.0", ··· 5371 6026 "version": "2.3.0", 5372 6027 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", 5373 6028 "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", 5374 - "dev": true, 5375 6029 "engines": { 5376 6030 "node": ">=6" 5377 6031 } ··· 5407 6061 "url": "https://github.com/sponsors/sindresorhus" 5408 6062 } 5409 6063 }, 6064 + "node_modules/range-parser": { 6065 + "version": "1.2.0", 6066 + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", 6067 + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", 6068 + "engines": { 6069 + "node": ">= 0.6" 6070 + } 6071 + }, 6072 + "node_modules/rc": { 6073 + "version": "1.2.8", 6074 + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", 6075 + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", 6076 + "dependencies": { 6077 + "deep-extend": "^0.6.0", 6078 + "ini": "~1.3.0", 6079 + "minimist": "^1.2.0", 6080 + "strip-json-comments": "~2.0.1" 6081 + }, 6082 + "bin": { 6083 + "rc": "cli.js" 6084 + } 6085 + }, 6086 + "node_modules/rc/node_modules/strip-json-comments": { 6087 + "version": "2.0.1", 6088 + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 6089 + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", 6090 + "engines": { 6091 + "node": ">=0.10.0" 6092 + } 6093 + }, 5410 6094 "node_modules/read-cache": { 5411 6095 "version": "1.0.0", 5412 6096 "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", ··· 5484 6168 "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", 5485 6169 "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" 5486 6170 }, 6171 + "node_modules/registry-auth-token": { 6172 + "version": "3.3.2", 6173 + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", 6174 + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", 6175 + "dependencies": { 6176 + "rc": "^1.1.6", 6177 + "safe-buffer": "^5.0.1" 6178 + } 6179 + }, 6180 + "node_modules/registry-url": { 6181 + "version": "3.1.0", 6182 + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", 6183 + "integrity": "sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==", 6184 + "dependencies": { 6185 + "rc": "^1.0.1" 6186 + }, 6187 + "engines": { 6188 + "node": ">=0.10.0" 6189 + } 6190 + }, 5487 6191 "node_modules/remotestoragejs": { 5488 6192 "version": "2.0.0-beta.6", 5489 6193 "resolved": "https://registry.npmjs.org/remotestoragejs/-/remotestoragejs-2.0.0-beta.6.tgz", ··· 5504 6208 "version": "16.11.59", 5505 6209 "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.59.tgz", 5506 6210 "integrity": "sha512-6u+36Dj3aDzhfBVUf/mfmc92OEdzQ2kx2jcXGdigfl70E/neV21ZHE6UCz4MDzTRcVqGAM27fk+DLXvyDsn3Jw==" 6211 + }, 6212 + "node_modules/require-from-string": { 6213 + "version": "2.0.2", 6214 + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", 6215 + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", 6216 + "engines": { 6217 + "node": ">=0.10.0" 6218 + } 5507 6219 }, 5508 6220 "node_modules/resolve": { 5509 6221 "version": "1.22.2", ··· 5679 6391 "node": ">=10" 5680 6392 } 5681 6393 }, 6394 + "node_modules/serve": { 6395 + "version": "14.2.1", 6396 + "resolved": "https://registry.npmjs.org/serve/-/serve-14.2.1.tgz", 6397 + "integrity": "sha512-48er5fzHh7GCShLnNyPBRPEjs2I6QBozeGr02gaacROiyS/8ARADlj595j39iZXAqBbJHH/ivJJyPRWY9sQWZA==", 6398 + "dependencies": { 6399 + "@zeit/schemas": "2.29.0", 6400 + "ajv": "8.11.0", 6401 + "arg": "5.0.2", 6402 + "boxen": "7.0.0", 6403 + "chalk": "5.0.1", 6404 + "chalk-template": "0.4.0", 6405 + "clipboardy": "3.0.0", 6406 + "compression": "1.7.4", 6407 + "is-port-reachable": "4.0.0", 6408 + "serve-handler": "6.1.5", 6409 + "update-check": "1.5.4" 6410 + }, 6411 + "bin": { 6412 + "serve": "build/main.js" 6413 + }, 6414 + "engines": { 6415 + "node": ">= 14" 6416 + } 6417 + }, 6418 + "node_modules/serve-handler": { 6419 + "version": "6.1.5", 6420 + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz", 6421 + "integrity": "sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==", 6422 + "dependencies": { 6423 + "bytes": "3.0.0", 6424 + "content-disposition": "0.5.2", 6425 + "fast-url-parser": "1.1.3", 6426 + "mime-types": "2.1.18", 6427 + "minimatch": "3.1.2", 6428 + "path-is-inside": "1.0.2", 6429 + "path-to-regexp": "2.2.1", 6430 + "range-parser": "1.2.0" 6431 + } 6432 + }, 6433 + "node_modules/serve-handler/node_modules/bytes": { 6434 + "version": "3.0.0", 6435 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", 6436 + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", 6437 + "engines": { 6438 + "node": ">= 0.8" 6439 + } 6440 + }, 6441 + "node_modules/serve-handler/node_modules/mime-db": { 6442 + "version": "1.33.0", 6443 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", 6444 + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", 6445 + "engines": { 6446 + "node": ">= 0.6" 6447 + } 6448 + }, 6449 + "node_modules/serve-handler/node_modules/mime-types": { 6450 + "version": "2.1.18", 6451 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", 6452 + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", 6453 + "dependencies": { 6454 + "mime-db": "~1.33.0" 6455 + }, 6456 + "engines": { 6457 + "node": ">= 0.6" 6458 + } 6459 + }, 6460 + "node_modules/serve/node_modules/ajv": { 6461 + "version": "8.11.0", 6462 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", 6463 + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", 6464 + "dependencies": { 6465 + "fast-deep-equal": "^3.1.1", 6466 + "json-schema-traverse": "^1.0.0", 6467 + "require-from-string": "^2.0.2", 6468 + "uri-js": "^4.2.2" 6469 + }, 6470 + "funding": { 6471 + "type": "github", 6472 + "url": "https://github.com/sponsors/epoberezkin" 6473 + } 6474 + }, 6475 + "node_modules/serve/node_modules/chalk": { 6476 + "version": "5.0.1", 6477 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", 6478 + "integrity": "sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==", 6479 + "engines": { 6480 + "node": "^12.17.0 || ^14.13 || >=16.0.0" 6481 + }, 6482 + "funding": { 6483 + "url": "https://github.com/chalk/chalk?sponsor=1" 6484 + } 6485 + }, 6486 + "node_modules/serve/node_modules/json-schema-traverse": { 6487 + "version": "1.0.0", 6488 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", 6489 + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" 6490 + }, 5682 6491 "node_modules/setimmediate": { 5683 6492 "version": "1.0.5", 5684 6493 "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", ··· 5688 6497 "version": "2.0.0", 5689 6498 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 5690 6499 "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 5691 - "dev": true, 5692 6500 "dependencies": { 5693 6501 "shebang-regex": "^3.0.0" 5694 6502 }, ··· 5700 6508 "version": "3.0.0", 5701 6509 "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 5702 6510 "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 5703 - "dev": true, 5704 6511 "engines": { 5705 6512 "node": ">=8" 5706 6513 } ··· 5788 6595 "version": "4.2.3", 5789 6596 "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 5790 6597 "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 5791 - "dev": true, 5792 6598 "dependencies": { 5793 6599 "emoji-regex": "^8.0.0", 5794 6600 "is-fullwidth-code-point": "^3.0.0", ··· 5817 6623 "version": "6.0.1", 5818 6624 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 5819 6625 "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 5820 - "dev": true, 5821 6626 "dependencies": { 5822 6627 "ansi-regex": "^5.0.1" 5823 6628 }, ··· 5836 6641 }, 5837 6642 "engines": { 5838 6643 "node": ">=8" 6644 + } 6645 + }, 6646 + "node_modules/strip-final-newline": { 6647 + "version": "2.0.0", 6648 + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", 6649 + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", 6650 + "engines": { 6651 + "node": ">=6" 5839 6652 } 5840 6653 }, 5841 6654 "node_modules/strip-json-comments": { ··· 5912 6725 "version": "7.2.0", 5913 6726 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 5914 6727 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 5915 - "dev": true, 5916 6728 "dependencies": { 5917 6729 "has-flag": "^4.0.0" 5918 6730 }, ··· 6241 7053 "browserslist": ">= 4.21.0" 6242 7054 } 6243 7055 }, 7056 + "node_modules/update-check": { 7057 + "version": "1.5.4", 7058 + "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.4.tgz", 7059 + "integrity": "sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==", 7060 + "dependencies": { 7061 + "registry-auth-token": "3.3.2", 7062 + "registry-url": "3.1.0" 7063 + } 7064 + }, 6244 7065 "node_modules/uri-js": { 6245 7066 "version": "4.4.1", 6246 7067 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 6247 7068 "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 6248 - "dev": true, 6249 7069 "dependencies": { 6250 7070 "punycode": "^2.1.0" 6251 7071 } ··· 6273 7093 "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", 6274 7094 "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" 6275 7095 }, 7096 + "node_modules/vary": { 7097 + "version": "1.1.2", 7098 + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 7099 + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", 7100 + "engines": { 7101 + "node": ">= 0.8" 7102 + } 7103 + }, 6276 7104 "node_modules/wcwidth": { 6277 7105 "version": "1.0.1", 6278 7106 "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", ··· 6282 7110 "defaults": "^1.0.3" 6283 7111 } 6284 7112 }, 7113 + "node_modules/web-streams-polyfill": { 7114 + "version": "3.3.2", 7115 + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz", 7116 + "integrity": "sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==", 7117 + "dev": true, 7118 + "engines": { 7119 + "node": ">= 8" 7120 + } 7121 + }, 6285 7122 "node_modules/webfinger.js": { 6286 7123 "version": "2.7.1", 6287 7124 "resolved": "https://registry.npmjs.org/webfinger.js/-/webfinger.js-2.7.1.tgz", ··· 6308 7145 "version": "2.0.2", 6309 7146 "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 6310 7147 "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 6311 - "dev": true, 6312 7148 "dependencies": { 6313 7149 "isexe": "^2.0.0" 6314 7150 }, ··· 6339 7175 "url": "https://github.com/sponsors/ljharb" 6340 7176 } 6341 7177 }, 7178 + "node_modules/widest-line": { 7179 + "version": "4.0.1", 7180 + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", 7181 + "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", 7182 + "dependencies": { 7183 + "string-width": "^5.0.1" 7184 + }, 7185 + "engines": { 7186 + "node": ">=12" 7187 + }, 7188 + "funding": { 7189 + "url": "https://github.com/sponsors/sindresorhus" 7190 + } 7191 + }, 7192 + "node_modules/widest-line/node_modules/ansi-regex": { 7193 + "version": "6.0.1", 7194 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 7195 + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", 7196 + "engines": { 7197 + "node": ">=12" 7198 + }, 7199 + "funding": { 7200 + "url": "https://github.com/chalk/ansi-regex?sponsor=1" 7201 + } 7202 + }, 7203 + "node_modules/widest-line/node_modules/emoji-regex": { 7204 + "version": "9.2.2", 7205 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", 7206 + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" 7207 + }, 7208 + "node_modules/widest-line/node_modules/string-width": { 7209 + "version": "5.1.2", 7210 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", 7211 + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", 7212 + "dependencies": { 7213 + "eastasianwidth": "^0.2.0", 7214 + "emoji-regex": "^9.2.2", 7215 + "strip-ansi": "^7.0.1" 7216 + }, 7217 + "engines": { 7218 + "node": ">=12" 7219 + }, 7220 + "funding": { 7221 + "url": "https://github.com/sponsors/sindresorhus" 7222 + } 7223 + }, 7224 + "node_modules/widest-line/node_modules/strip-ansi": { 7225 + "version": "7.1.0", 7226 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 7227 + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 7228 + "dependencies": { 7229 + "ansi-regex": "^6.0.1" 7230 + }, 7231 + "engines": { 7232 + "node": ">=12" 7233 + }, 7234 + "funding": { 7235 + "url": "https://github.com/chalk/strip-ansi?sponsor=1" 7236 + } 7237 + }, 6342 7238 "node_modules/wnfs": { 6343 7239 "version": "0.1.7", 6344 7240 "resolved": "https://registry.npmjs.org/wnfs/-/wnfs-0.1.7.tgz", ··· 6425 7321 "node": ">= 14" 6426 7322 } 6427 7323 }, 7324 + "node_modules/yauzl": { 7325 + "version": "2.10.0", 7326 + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", 7327 + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", 7328 + "dev": true, 7329 + "dependencies": { 7330 + "buffer-crc32": "~0.2.3", 7331 + "fd-slicer": "~1.1.0" 7332 + } 7333 + }, 6428 7334 "node_modules/yocto-queue": { 6429 7335 "version": "0.1.0", 6430 7336 "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", ··· 6483 7389 "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.0.tgz", 6484 7390 "integrity": "sha512-wErmsWCbsmig8sQKkM6pFhr/oPha1bHfvxsUY5CYSQxwyhA9Ulrs8EqCgClhg4Tgg2XapVstGqSVcz0xOYizZA==", 6485 7391 "dev": true 7392 + }, 7393 + "@elm_binaries/darwin_arm64": { 7394 + "version": "0.19.1-0", 7395 + "resolved": "https://registry.npmjs.org/@elm_binaries/darwin_arm64/-/darwin_arm64-0.19.1-0.tgz", 7396 + "integrity": "sha512-mjbsH7BNHEAmoE2SCJFcfk5fIHwFIpxtSgnEAqMsVLpBUFoEtAeX+LQ+N0vSFJB3WAh73+QYx/xSluxxLcL6dA==", 7397 + "dev": true, 7398 + "optional": true 7399 + }, 7400 + "@elm_binaries/darwin_x64": { 7401 + "version": "0.19.1-0", 7402 + "resolved": "https://registry.npmjs.org/@elm_binaries/darwin_x64/-/darwin_x64-0.19.1-0.tgz", 7403 + "integrity": "sha512-QGUtrZTPBzaxgi9al6nr+9313wrnUVHuijzUK39UsPS+pa+n6CmWyV/69sHZeX9qy6UfeugE0PzF3qcUiy2GDQ==", 7404 + "dev": true, 7405 + "optional": true 7406 + }, 7407 + "@elm_binaries/linux_x64": { 7408 + "version": "0.19.1-0", 7409 + "resolved": "https://registry.npmjs.org/@elm_binaries/linux_x64/-/linux_x64-0.19.1-0.tgz", 7410 + "integrity": "sha512-T1ZrWVhg2kKAsi8caOd3vp/1A3e21VuCpSG63x8rDie50fHbCytTway9B8WHEdnBFv4mYWiA68dzGxYCiFmU2w==", 7411 + "dev": true, 7412 + "optional": true 7413 + }, 7414 + "@elm_binaries/win32_x64": { 7415 + "version": "0.19.1-0", 7416 + "resolved": "https://registry.npmjs.org/@elm_binaries/win32_x64/-/win32_x64-0.19.1-0.tgz", 7417 + "integrity": "sha512-yDleiXqSE9EcqKtd9SkC/4RIW8I71YsXzMPL79ub2bBPHjWTcoyyeBbYjoOB9SxSlArJ74HaoBApzT6hY7Zobg==", 7418 + "dev": true, 7419 + "optional": true 6486 7420 }, 6487 7421 "@esbuild/android-arm": { 6488 7422 "version": "0.18.18", ··· 7271 8205 "resolved": "https://registry.npmjs.org/@types/tv4/-/tv4-1.2.31.tgz", 7272 8206 "integrity": "sha512-P97XU07fcpauSw3/fE2Q7eF6bHl4oHhwkikjnM7zlQLENrdC2rZuHSdNlMBhnW82NyBEsVJHII1Jk3d/MtQsQQ==" 7273 8207 }, 8208 + "@types/yauzl": { 8209 + "version": "2.10.3", 8210 + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", 8211 + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", 8212 + "dev": true, 8213 + "optional": true, 8214 + "requires": { 8215 + "@types/node": "*" 8216 + } 8217 + }, 7274 8218 "@typescript-eslint/eslint-plugin": { 7275 8219 "version": "6.2.1", 7276 8220 "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.2.1.tgz", ··· 7372 8316 "eslint-visitor-keys": "^3.4.1" 7373 8317 } 7374 8318 }, 8319 + "@zeit/schemas": { 8320 + "version": "2.29.0", 8321 + "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.29.0.tgz", 8322 + "integrity": "sha512-g5QiLIfbg3pLuYUJPlisNKY+epQJTcMDsOnVNkscrDP1oi7vmJnzOANYJI/1pZcVJ6umUkBv3aFtlg1UvUHGzA==" 8323 + }, 7375 8324 "abort-controller": { 7376 8325 "version": "3.0.0", 7377 8326 "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", ··· 7394 8343 "queue-microtask": "^1.2.3" 7395 8344 } 7396 8345 }, 8346 + "accepts": { 8347 + "version": "1.3.8", 8348 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", 8349 + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", 8350 + "requires": { 8351 + "mime-types": "~2.1.34", 8352 + "negotiator": "0.6.3" 8353 + } 8354 + }, 7397 8355 "acorn": { 7398 8356 "version": "8.10.0", 7399 8357 "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", ··· 7419 8377 "uri-js": "^4.2.2" 7420 8378 } 7421 8379 }, 8380 + "ansi-align": { 8381 + "version": "3.0.1", 8382 + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", 8383 + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", 8384 + "requires": { 8385 + "string-width": "^4.1.0" 8386 + } 8387 + }, 7422 8388 "ansi-escapes": { 7423 8389 "version": "4.3.2", 7424 8390 "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", ··· 7439 8405 "ansi-regex": { 7440 8406 "version": "5.0.1", 7441 8407 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 7442 - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 7443 - "dev": true 8408 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" 7444 8409 }, 7445 8410 "ansi-styles": { 7446 8411 "version": "4.3.0", 7447 8412 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 7448 8413 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 7449 - "dev": true, 7450 8414 "requires": { 7451 8415 "color-convert": "^2.0.1" 7452 8416 } ··· 7467 8431 "picomatch": "^2.0.4" 7468 8432 } 7469 8433 }, 8434 + "arch": { 8435 + "version": "2.2.0", 8436 + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", 8437 + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==" 8438 + }, 7470 8439 "arg": { 7471 8440 "version": "5.0.2", 7472 8441 "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", 7473 - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", 7474 - "dev": true 8442 + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" 7475 8443 }, 7476 8444 "argparse": { 7477 8445 "version": "2.0.1", ··· 7526 8494 "balanced-match": { 7527 8495 "version": "1.0.2", 7528 8496 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 7529 - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 7530 - "dev": true 8497 + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 7531 8498 }, 7532 8499 "base64-js": { 7533 8500 "version": "1.5.1", ··· 7622 8589 } 7623 8590 } 7624 8591 }, 8592 + "boxen": { 8593 + "version": "7.0.0", 8594 + "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.0.tgz", 8595 + "integrity": "sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==", 8596 + "requires": { 8597 + "ansi-align": "^3.0.1", 8598 + "camelcase": "^7.0.0", 8599 + "chalk": "^5.0.1", 8600 + "cli-boxes": "^3.0.0", 8601 + "string-width": "^5.1.2", 8602 + "type-fest": "^2.13.0", 8603 + "widest-line": "^4.0.1", 8604 + "wrap-ansi": "^8.0.1" 8605 + }, 8606 + "dependencies": { 8607 + "ansi-regex": { 8608 + "version": "6.0.1", 8609 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 8610 + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" 8611 + }, 8612 + "ansi-styles": { 8613 + "version": "6.2.1", 8614 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", 8615 + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" 8616 + }, 8617 + "chalk": { 8618 + "version": "5.3.0", 8619 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", 8620 + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==" 8621 + }, 8622 + "emoji-regex": { 8623 + "version": "9.2.2", 8624 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", 8625 + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" 8626 + }, 8627 + "string-width": { 8628 + "version": "5.1.2", 8629 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", 8630 + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", 8631 + "requires": { 8632 + "eastasianwidth": "^0.2.0", 8633 + "emoji-regex": "^9.2.2", 8634 + "strip-ansi": "^7.0.1" 8635 + } 8636 + }, 8637 + "strip-ansi": { 8638 + "version": "7.1.0", 8639 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 8640 + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 8641 + "requires": { 8642 + "ansi-regex": "^6.0.1" 8643 + } 8644 + }, 8645 + "type-fest": { 8646 + "version": "2.19.0", 8647 + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", 8648 + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==" 8649 + }, 8650 + "wrap-ansi": { 8651 + "version": "8.1.0", 8652 + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", 8653 + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", 8654 + "requires": { 8655 + "ansi-styles": "^6.1.0", 8656 + "string-width": "^5.0.1", 8657 + "strip-ansi": "^7.0.1" 8658 + } 8659 + } 8660 + } 8661 + }, 7625 8662 "brace-expansion": { 7626 8663 "version": "1.1.11", 7627 8664 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 7628 8665 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 7629 - "dev": true, 7630 8666 "requires": { 7631 8667 "balanced-match": "^1.0.0", 7632 8668 "concat-map": "0.0.1" ··· 7673 8709 "ieee754": "^1.2.1" 7674 8710 } 7675 8711 }, 8712 + "buffer-crc32": { 8713 + "version": "0.2.13", 8714 + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 8715 + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", 8716 + "dev": true 8717 + }, 7676 8718 "busboy": { 7677 8719 "version": "1.6.0", 7678 8720 "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", ··· 7723 8765 "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 7724 8766 "dev": true 7725 8767 }, 8768 + "camelcase": { 8769 + "version": "7.0.1", 8770 + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", 8771 + "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==" 8772 + }, 7726 8773 "camelcase-css": { 7727 8774 "version": "2.0.1", 7728 8775 "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", ··· 7730 8777 "dev": true 7731 8778 }, 7732 8779 "caniuse-lite": { 7733 - "version": "1.0.30001481", 7734 - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001481.tgz", 7735 - "integrity": "sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==", 8780 + "version": "1.0.30001584", 8781 + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001584.tgz", 8782 + "integrity": "sha512-LOz7CCQ9M1G7OjJOF9/mzmqmj3jE/7VOmrfw6Mgs0E8cjOsbRXQJHsPBfmBOXDskXKrHLyyW3n7kpDW/4BsfpQ==", 7736 8783 "dev": true 7737 8784 }, 7738 8785 "catering": { ··· 7749 8796 "version": "4.1.2", 7750 8797 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 7751 8798 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 7752 - "dev": true, 7753 8799 "requires": { 7754 8800 "ansi-styles": "^4.1.0", 7755 8801 "supports-color": "^7.1.0" 8802 + } 8803 + }, 8804 + "chalk-template": { 8805 + "version": "0.4.0", 8806 + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", 8807 + "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", 8808 + "requires": { 8809 + "chalk": "^4.1.2" 7756 8810 } 7757 8811 }, 7758 8812 "chokidar": { ··· 7783 8837 "node-gyp-build": "^4.3.0" 7784 8838 } 7785 8839 }, 8840 + "cli-boxes": { 8841 + "version": "3.0.0", 8842 + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", 8843 + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==" 8844 + }, 7786 8845 "cli-cursor": { 7787 8846 "version": "3.1.0", 7788 8847 "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", ··· 7798 8857 "integrity": "sha512-/eG5sJcvEIwxcdYM86k5tPwn0MUzkX5YY3eImTGpJOZgVe4SdTMY14vQpcxgBzJ0wXwAYrS8E+c3uHeK4JNyzQ==", 7799 8858 "dev": true 7800 8859 }, 8860 + "clipboardy": { 8861 + "version": "3.0.0", 8862 + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-3.0.0.tgz", 8863 + "integrity": "sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==", 8864 + "requires": { 8865 + "arch": "^2.2.0", 8866 + "execa": "^5.1.1", 8867 + "is-wsl": "^2.2.0" 8868 + } 8869 + }, 7801 8870 "clone": { 7802 8871 "version": "1.0.4", 7803 8872 "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", ··· 7817 8886 "version": "2.0.1", 7818 8887 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 7819 8888 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 7820 - "dev": true, 7821 8889 "requires": { 7822 8890 "color-name": "~1.1.4" 7823 8891 } ··· 7825 8893 "color-name": { 7826 8894 "version": "1.1.4", 7827 8895 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 7828 - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 7829 - "dev": true 8896 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 7830 8897 }, 7831 8898 "commander": { 7832 8899 "version": "4.1.1", ··· 7834 8901 "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", 7835 8902 "dev": true 7836 8903 }, 8904 + "compressible": { 8905 + "version": "2.0.18", 8906 + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", 8907 + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", 8908 + "requires": { 8909 + "mime-db": ">= 1.43.0 < 2" 8910 + } 8911 + }, 8912 + "compression": { 8913 + "version": "1.7.4", 8914 + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", 8915 + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", 8916 + "requires": { 8917 + "accepts": "~1.3.5", 8918 + "bytes": "3.0.0", 8919 + "compressible": "~2.0.16", 8920 + "debug": "2.6.9", 8921 + "on-headers": "~1.0.2", 8922 + "safe-buffer": "5.1.2", 8923 + "vary": "~1.1.2" 8924 + }, 8925 + "dependencies": { 8926 + "bytes": { 8927 + "version": "3.0.0", 8928 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", 8929 + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==" 8930 + }, 8931 + "debug": { 8932 + "version": "2.6.9", 8933 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 8934 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 8935 + "requires": { 8936 + "ms": "2.0.0" 8937 + } 8938 + }, 8939 + "ms": { 8940 + "version": "2.0.0", 8941 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 8942 + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" 8943 + }, 8944 + "safe-buffer": { 8945 + "version": "5.1.2", 8946 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 8947 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 8948 + } 8949 + } 8950 + }, 7837 8951 "concat-map": { 7838 8952 "version": "0.0.1", 7839 8953 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 7840 - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 7841 - "dev": true 8954 + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" 8955 + }, 8956 + "content-disposition": { 8957 + "version": "0.5.2", 8958 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", 8959 + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==" 7842 8960 }, 7843 8961 "content-type": { 7844 8962 "version": "1.0.5", ··· 7854 8972 "version": "7.0.3", 7855 8973 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 7856 8974 "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 7857 - "dev": true, 7858 8975 "requires": { 7859 8976 "path-key": "^3.1.0", 7860 8977 "shebang-command": "^2.0.0", ··· 7872 8989 "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", 7873 8990 "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==" 7874 8991 }, 8992 + "data-uri-to-buffer": { 8993 + "version": "4.0.1", 8994 + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", 8995 + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", 8996 + "dev": true 8997 + }, 7875 8998 "datastore-core": { 7876 8999 "version": "8.0.4", 7877 9000 "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-8.0.4.tgz", ··· 7965 9088 } 7966 9089 } 7967 9090 }, 9091 + "deep-extend": { 9092 + "version": "0.6.0", 9093 + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", 9094 + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" 9095 + }, 7968 9096 "deep-is": { 7969 9097 "version": "0.1.4", 7970 9098 "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", ··· 8040 9168 "eastasianwidth": { 8041 9169 "version": "0.2.0", 8042 9170 "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", 8043 - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", 8044 - "dev": true 9171 + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" 8045 9172 }, 8046 9173 "electron-to-chromium": { 8047 9174 "version": "1.4.377", ··· 8049 9176 "integrity": "sha512-H3BYG6DW5Z+l0xcfXaicJGxrpA4kMlCxnN71+iNX+dBLkRMOdVJqFJiAmbNZZKA1zISpRg17JR03qGifXNsJtw==", 8050 9177 "dev": true 8051 9178 }, 9179 + "elm": { 9180 + "version": "0.19.1-6", 9181 + "resolved": "https://registry.npmjs.org/elm/-/elm-0.19.1-6.tgz", 9182 + "integrity": "sha512-mKYyierHICPdMx/vhiIacdPmTPnh889gjHOZ75ZAoCxo3lZmSWbGP8HMw78wyctJH0HwvTmeKhlYSWboQNYPeQ==", 9183 + "dev": true, 9184 + "requires": { 9185 + "@elm_binaries/darwin_arm64": "0.19.1-0", 9186 + "@elm_binaries/darwin_x64": "0.19.1-0", 9187 + "@elm_binaries/linux_x64": "0.19.1-0", 9188 + "@elm_binaries/win32_x64": "0.19.1-0" 9189 + } 9190 + }, 8052 9191 "elm-review": { 8053 9192 "version": "2.10.2", 8054 9193 "resolved": "https://registry.npmjs.org/elm-review/-/elm-review-2.10.2.tgz", ··· 8141 9280 "emoji-regex": { 8142 9281 "version": "8.0.0", 8143 9282 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 8144 - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 8145 - "dev": true 9283 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 8146 9284 }, 8147 9285 "end-of-stream": { 8148 9286 "version": "1.4.4", ··· 8376 9514 "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", 8377 9515 "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" 8378 9516 }, 9517 + "execa": { 9518 + "version": "5.1.1", 9519 + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", 9520 + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", 9521 + "requires": { 9522 + "cross-spawn": "^7.0.3", 9523 + "get-stream": "^6.0.0", 9524 + "human-signals": "^2.1.0", 9525 + "is-stream": "^2.0.0", 9526 + "merge-stream": "^2.0.0", 9527 + "npm-run-path": "^4.0.1", 9528 + "onetime": "^5.1.2", 9529 + "signal-exit": "^3.0.3", 9530 + "strip-final-newline": "^2.0.0" 9531 + }, 9532 + "dependencies": { 9533 + "get-stream": { 9534 + "version": "6.0.1", 9535 + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", 9536 + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" 9537 + } 9538 + } 9539 + }, 9540 + "extract-zip": { 9541 + "version": "2.0.1", 9542 + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", 9543 + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", 9544 + "dev": true, 9545 + "requires": { 9546 + "@types/yauzl": "^2.9.1", 9547 + "debug": "^4.1.1", 9548 + "get-stream": "^5.1.0", 9549 + "yauzl": "^2.10.0" 9550 + } 9551 + }, 8379 9552 "fast-deep-equal": { 8380 9553 "version": "3.1.3", 8381 9554 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 8382 - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 8383 - "dev": true 9555 + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 8384 9556 }, 8385 9557 "fast-glob": { 8386 9558 "version": "3.2.12", ··· 8415 9587 "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz", 8416 9588 "integrity": "sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==" 8417 9589 }, 9590 + "fast-url-parser": { 9591 + "version": "1.1.3", 9592 + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", 9593 + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", 9594 + "requires": { 9595 + "punycode": "^1.3.2" 9596 + }, 9597 + "dependencies": { 9598 + "punycode": { 9599 + "version": "1.4.1", 9600 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 9601 + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" 9602 + } 9603 + } 9604 + }, 8418 9605 "fastest-levenshtein": { 8419 9606 "version": "1.0.16", 8420 9607 "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", ··· 8430 9617 "reusify": "^1.0.4" 8431 9618 } 8432 9619 }, 9620 + "fd-slicer": { 9621 + "version": "1.1.0", 9622 + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", 9623 + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", 9624 + "dev": true, 9625 + "requires": { 9626 + "pend": "~1.2.0" 9627 + } 9628 + }, 9629 + "fetch-blob": { 9630 + "version": "3.2.0", 9631 + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", 9632 + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", 9633 + "dev": true, 9634 + "requires": { 9635 + "node-domexception": "^1.0.0", 9636 + "web-streams-polyfill": "^3.0.3" 9637 + } 9638 + }, 8433 9639 "file-entry-cache": { 8434 9640 "version": "6.0.1", 8435 9641 "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", ··· 8554 9760 } 8555 9761 } 8556 9762 }, 9763 + "formdata-polyfill": { 9764 + "version": "4.0.10", 9765 + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", 9766 + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", 9767 + "dev": true, 9768 + "requires": { 9769 + "fetch-blob": "^3.1.2" 9770 + } 9771 + }, 8557 9772 "fraction.js": { 8558 9773 "version": "4.2.0", 8559 9774 "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", ··· 8726 9941 "has-flag": { 8727 9942 "version": "4.0.0", 8728 9943 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 8729 - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 8730 - "dev": true 9944 + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" 8731 9945 }, 8732 9946 "has-property-descriptors": { 8733 9947 "version": "1.0.0", ··· 8769 9983 "resolve-alpn": "^1.0.0" 8770 9984 } 8771 9985 }, 9986 + "human-signals": { 9987 + "version": "2.1.0", 9988 + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", 9989 + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" 9990 + }, 8772 9991 "ieee754": { 8773 9992 "version": "1.2.1", 8774 9993 "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", ··· 8816 10035 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 8817 10036 "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 8818 10037 }, 10038 + "ini": { 10039 + "version": "1.3.8", 10040 + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", 10041 + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" 10042 + }, 8819 10043 "interface-blockstore": { 8820 10044 "version": "3.0.2", 8821 10045 "resolved": "https://registry.npmjs.org/interface-blockstore/-/interface-blockstore-3.0.2.tgz", ··· 9009 10233 "has": "^1.0.3" 9010 10234 } 9011 10235 }, 10236 + "is-docker": { 10237 + "version": "2.2.1", 10238 + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", 10239 + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" 10240 + }, 9012 10241 "is-extglob": { 9013 10242 "version": "2.1.1", 9014 10243 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", ··· 9018 10247 "is-fullwidth-code-point": { 9019 10248 "version": "3.0.0", 9020 10249 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 9021 - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 9022 - "dev": true 10250 + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" 9023 10251 }, 9024 10252 "is-generator-function": { 9025 10253 "version": "1.0.10", ··· 9072 10300 "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", 9073 10301 "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" 9074 10302 }, 10303 + "is-port-reachable": { 10304 + "version": "4.0.0", 10305 + "resolved": "https://registry.npmjs.org/is-port-reachable/-/is-port-reachable-4.0.0.tgz", 10306 + "integrity": "sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==" 10307 + }, 10308 + "is-stream": { 10309 + "version": "2.0.1", 10310 + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 10311 + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" 10312 + }, 9075 10313 "is-typed-array": { 9076 10314 "version": "1.1.10", 9077 10315 "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", ··· 9091 10329 "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", 9092 10330 "dev": true 9093 10331 }, 10332 + "is-wsl": { 10333 + "version": "2.2.0", 10334 + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", 10335 + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", 10336 + "requires": { 10337 + "is-docker": "^2.0.0" 10338 + } 10339 + }, 9094 10340 "isarray": { 9095 10341 "version": "1.0.0", 9096 10342 "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", ··· 9099 10345 "isexe": { 9100 10346 "version": "2.0.0", 9101 10347 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 9102 - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 9103 - "dev": true 10348 + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" 9104 10349 }, 9105 10350 "it-all": { 9106 10351 "version": "1.0.6", ··· 9286 10531 } 9287 10532 } 9288 10533 }, 10534 + "just-install": { 10535 + "version": "2.0.1", 10536 + "resolved": "https://registry.npmjs.org/just-install/-/just-install-2.0.1.tgz", 10537 + "integrity": "sha512-mqIPeDwjU/sjSrfjM6GXDXphF7tTBMji+S5hCS4vBG7J3wH4FAD8Ut9Mel/64KYwlsQz5rVkdl28koZtH9TSTQ==", 10538 + "dev": true, 10539 + "requires": { 10540 + "extract-zip": "^2.0.1", 10541 + "node-fetch": "^3.3.2" 10542 + }, 10543 + "dependencies": { 10544 + "node-fetch": { 10545 + "version": "3.3.2", 10546 + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", 10547 + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", 10548 + "dev": true, 10549 + "requires": { 10550 + "data-uri-to-buffer": "^4.0.0", 10551 + "fetch-blob": "^3.1.4", 10552 + "formdata-polyfill": "^4.0.10" 10553 + } 10554 + } 10555 + } 10556 + }, 9289 10557 "just-safe-get": { 9290 10558 "version": "4.2.0", 9291 10559 "resolved": "https://registry.npmjs.org/just-safe-get/-/just-safe-get-4.2.0.tgz", ··· 9490 10758 "is-plain-obj": "^2.1.0" 9491 10759 } 9492 10760 }, 10761 + "merge-stream": { 10762 + "version": "2.0.0", 10763 + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", 10764 + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" 10765 + }, 9493 10766 "merge2": { 9494 10767 "version": "1.4.1", 9495 10768 "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", ··· 9506 10779 "picomatch": "^2.3.1" 9507 10780 } 9508 10781 }, 10782 + "mime-db": { 10783 + "version": "1.52.0", 10784 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 10785 + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" 10786 + }, 10787 + "mime-types": { 10788 + "version": "2.1.35", 10789 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 10790 + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 10791 + "requires": { 10792 + "mime-db": "1.52.0" 10793 + } 10794 + }, 9509 10795 "mimic-fn": { 9510 10796 "version": "2.1.0", 9511 10797 "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 9512 - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", 9513 - "dev": true 10798 + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" 9514 10799 }, 9515 10800 "mimic-response": { 9516 10801 "version": "1.0.1", ··· 9522 10807 "version": "3.1.2", 9523 10808 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 9524 10809 "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 9525 - "dev": true, 9526 10810 "requires": { 9527 10811 "brace-expansion": "^1.1.7" 9528 10812 } ··· 9530 10814 "minimist": { 9531 10815 "version": "1.2.8", 9532 10816 "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", 9533 - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", 9534 - "dev": true 10817 + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" 9535 10818 }, 9536 10819 "minipass": { 9537 10820 "version": "6.0.2", ··· 9659 10942 "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", 9660 10943 "dev": true 9661 10944 }, 10945 + "negotiator": { 10946 + "version": "0.6.3", 10947 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", 10948 + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" 10949 + }, 10950 + "node-domexception": { 10951 + "version": "1.0.0", 10952 + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", 10953 + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", 10954 + "dev": true 10955 + }, 9662 10956 "node-fetch": { 9663 10957 "version": "2.6.9", 9664 10958 "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", ··· 9696 10990 "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", 9697 10991 "dev": true 9698 10992 }, 10993 + "npm-run-path": { 10994 + "version": "4.0.1", 10995 + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", 10996 + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", 10997 + "requires": { 10998 + "path-key": "^3.0.0" 10999 + } 11000 + }, 9699 11001 "object-assign": { 9700 11002 "version": "4.1.1", 9701 11003 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", ··· 9729 11031 "resolved": "https://registry.npmjs.org/observable-webworkers/-/observable-webworkers-2.0.1.tgz", 9730 11032 "integrity": "sha512-JI1vB0u3pZjoQKOK1ROWzp0ygxSi7Yb0iR+7UNsw4/Zn4cQ0P3R7XL38zac/Dy2tEA7Lg88/wIJTjF8vYXZ0uw==" 9731 11033 }, 11034 + "on-headers": { 11035 + "version": "1.0.2", 11036 + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", 11037 + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" 11038 + }, 9732 11039 "once": { 9733 11040 "version": "1.4.0", 9734 11041 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", ··· 9747 11054 "version": "5.1.2", 9748 11055 "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", 9749 11056 "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", 9750 - "dev": true, 9751 11057 "requires": { 9752 11058 "mimic-fn": "^2.1.0" 9753 11059 } ··· 9868 11174 "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 9869 11175 "dev": true 9870 11176 }, 11177 + "path-is-inside": { 11178 + "version": "1.0.2", 11179 + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 11180 + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" 11181 + }, 9871 11182 "path-key": { 9872 11183 "version": "3.1.1", 9873 11184 "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 9874 - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 9875 - "dev": true 11185 + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" 9876 11186 }, 9877 11187 "path-parse": { 9878 11188 "version": "1.0.7", ··· 9898 11208 } 9899 11209 } 9900 11210 }, 11211 + "path-to-regexp": { 11212 + "version": "2.2.1", 11213 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", 11214 + "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" 11215 + }, 9901 11216 "path-type": { 9902 11217 "version": "4.0.0", 9903 11218 "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", ··· 9909 11224 "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", 9910 11225 "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==" 9911 11226 }, 11227 + "pend": { 11228 + "version": "1.2.0", 11229 + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", 11230 + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", 11231 + "dev": true 11232 + }, 9912 11233 "picocolors": { 9913 11234 "version": "1.0.0", 9914 11235 "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", ··· 10079 11400 "punycode": { 10080 11401 "version": "2.3.0", 10081 11402 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", 10082 - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", 10083 - "dev": true 11403 + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" 10084 11404 }, 10085 11405 "queue-microtask": { 10086 11406 "version": "1.2.3", ··· 10093 11413 "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", 10094 11414 "dev": true 10095 11415 }, 11416 + "range-parser": { 11417 + "version": "1.2.0", 11418 + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", 11419 + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==" 11420 + }, 11421 + "rc": { 11422 + "version": "1.2.8", 11423 + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", 11424 + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", 11425 + "requires": { 11426 + "deep-extend": "^0.6.0", 11427 + "ini": "~1.3.0", 11428 + "minimist": "^1.2.0", 11429 + "strip-json-comments": "~2.0.1" 11430 + }, 11431 + "dependencies": { 11432 + "strip-json-comments": { 11433 + "version": "2.0.1", 11434 + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 11435 + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==" 11436 + } 11437 + } 11438 + }, 10096 11439 "read-cache": { 10097 11440 "version": "1.0.0", 10098 11441 "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", ··· 10156 11499 "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", 10157 11500 "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" 10158 11501 }, 11502 + "registry-auth-token": { 11503 + "version": "3.3.2", 11504 + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", 11505 + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", 11506 + "requires": { 11507 + "rc": "^1.1.6", 11508 + "safe-buffer": "^5.0.1" 11509 + } 11510 + }, 11511 + "registry-url": { 11512 + "version": "3.1.0", 11513 + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", 11514 + "integrity": "sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==", 11515 + "requires": { 11516 + "rc": "^1.0.1" 11517 + } 11518 + }, 10159 11519 "remotestoragejs": { 10160 11520 "version": "2.0.0-beta.6", 10161 11521 "resolved": "https://registry.npmjs.org/remotestoragejs/-/remotestoragejs-2.0.0-beta.6.tgz", ··· 10176 11536 "integrity": "sha512-6u+36Dj3aDzhfBVUf/mfmc92OEdzQ2kx2jcXGdigfl70E/neV21ZHE6UCz4MDzTRcVqGAM27fk+DLXvyDsn3Jw==" 10177 11537 } 10178 11538 } 11539 + }, 11540 + "require-from-string": { 11541 + "version": "2.0.2", 11542 + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", 11543 + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" 10179 11544 }, 10180 11545 "resolve": { 10181 11546 "version": "1.22.2", ··· 10275 11640 "lru-cache": "^6.0.0" 10276 11641 } 10277 11642 }, 11643 + "serve": { 11644 + "version": "14.2.1", 11645 + "resolved": "https://registry.npmjs.org/serve/-/serve-14.2.1.tgz", 11646 + "integrity": "sha512-48er5fzHh7GCShLnNyPBRPEjs2I6QBozeGr02gaacROiyS/8ARADlj595j39iZXAqBbJHH/ivJJyPRWY9sQWZA==", 11647 + "requires": { 11648 + "@zeit/schemas": "2.29.0", 11649 + "ajv": "8.11.0", 11650 + "arg": "5.0.2", 11651 + "boxen": "7.0.0", 11652 + "chalk": "5.0.1", 11653 + "chalk-template": "0.4.0", 11654 + "clipboardy": "3.0.0", 11655 + "compression": "1.7.4", 11656 + "is-port-reachable": "4.0.0", 11657 + "serve-handler": "6.1.5", 11658 + "update-check": "1.5.4" 11659 + }, 11660 + "dependencies": { 11661 + "ajv": { 11662 + "version": "8.11.0", 11663 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", 11664 + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", 11665 + "requires": { 11666 + "fast-deep-equal": "^3.1.1", 11667 + "json-schema-traverse": "^1.0.0", 11668 + "require-from-string": "^2.0.2", 11669 + "uri-js": "^4.2.2" 11670 + } 11671 + }, 11672 + "chalk": { 11673 + "version": "5.0.1", 11674 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", 11675 + "integrity": "sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==" 11676 + }, 11677 + "json-schema-traverse": { 11678 + "version": "1.0.0", 11679 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", 11680 + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" 11681 + } 11682 + } 11683 + }, 11684 + "serve-handler": { 11685 + "version": "6.1.5", 11686 + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz", 11687 + "integrity": "sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==", 11688 + "requires": { 11689 + "bytes": "3.0.0", 11690 + "content-disposition": "0.5.2", 11691 + "fast-url-parser": "1.1.3", 11692 + "mime-types": "2.1.18", 11693 + "minimatch": "3.1.2", 11694 + "path-is-inside": "1.0.2", 11695 + "path-to-regexp": "2.2.1", 11696 + "range-parser": "1.2.0" 11697 + }, 11698 + "dependencies": { 11699 + "bytes": { 11700 + "version": "3.0.0", 11701 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", 11702 + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==" 11703 + }, 11704 + "mime-db": { 11705 + "version": "1.33.0", 11706 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", 11707 + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" 11708 + }, 11709 + "mime-types": { 11710 + "version": "2.1.18", 11711 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", 11712 + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", 11713 + "requires": { 11714 + "mime-db": "~1.33.0" 11715 + } 11716 + } 11717 + } 11718 + }, 10278 11719 "setimmediate": { 10279 11720 "version": "1.0.5", 10280 11721 "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", ··· 10284 11725 "version": "2.0.0", 10285 11726 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 10286 11727 "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 10287 - "dev": true, 10288 11728 "requires": { 10289 11729 "shebang-regex": "^3.0.0" 10290 11730 } ··· 10292 11732 "shebang-regex": { 10293 11733 "version": "3.0.0", 10294 11734 "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 10295 - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 10296 - "dev": true 11735 + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" 10297 11736 }, 10298 11737 "signal-exit": { 10299 11738 "version": "3.0.7", ··· 10359 11798 "version": "4.2.3", 10360 11799 "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 10361 11800 "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 10362 - "dev": true, 10363 11801 "requires": { 10364 11802 "emoji-regex": "^8.0.0", 10365 11803 "is-fullwidth-code-point": "^3.0.0", ··· 10381 11819 "version": "6.0.1", 10382 11820 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 10383 11821 "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 10384 - "dev": true, 10385 11822 "requires": { 10386 11823 "ansi-regex": "^5.0.1" 10387 11824 } ··· 10394 11831 "requires": { 10395 11832 "ansi-regex": "^5.0.1" 10396 11833 } 11834 + }, 11835 + "strip-final-newline": { 11836 + "version": "2.0.0", 11837 + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", 11838 + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" 10397 11839 }, 10398 11840 "strip-json-comments": { 10399 11841 "version": "3.1.1", ··· 10445 11887 "version": "7.2.0", 10446 11888 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 10447 11889 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 10448 - "dev": true, 10449 11890 "requires": { 10450 11891 "has-flag": "^4.0.0" 10451 11892 } ··· 10681 12122 "picocolors": "^1.0.0" 10682 12123 } 10683 12124 }, 12125 + "update-check": { 12126 + "version": "1.5.4", 12127 + "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.4.tgz", 12128 + "integrity": "sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==", 12129 + "requires": { 12130 + "registry-auth-token": "3.3.2", 12131 + "registry-url": "3.1.0" 12132 + } 12133 + }, 10684 12134 "uri-js": { 10685 12135 "version": "4.4.1", 10686 12136 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 10687 12137 "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 10688 - "dev": true, 10689 12138 "requires": { 10690 12139 "punycode": "^2.1.0" 10691 12140 } ··· 10713 12162 "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", 10714 12163 "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" 10715 12164 }, 12165 + "vary": { 12166 + "version": "1.1.2", 12167 + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 12168 + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" 12169 + }, 10716 12170 "wcwidth": { 10717 12171 "version": "1.0.1", 10718 12172 "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", ··· 10722 12176 "defaults": "^1.0.3" 10723 12177 } 10724 12178 }, 12179 + "web-streams-polyfill": { 12180 + "version": "3.3.2", 12181 + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz", 12182 + "integrity": "sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==", 12183 + "dev": true 12184 + }, 10725 12185 "webfinger.js": { 10726 12186 "version": "2.7.1", 10727 12187 "resolved": "https://registry.npmjs.org/webfinger.js/-/webfinger.js-2.7.1.tgz", ··· 10748 12208 "version": "2.0.2", 10749 12209 "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 10750 12210 "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 10751 - "dev": true, 10752 12211 "requires": { 10753 12212 "isexe": "^2.0.0" 10754 12213 } ··· 10767 12226 "is-typed-array": "^1.1.10" 10768 12227 } 10769 12228 }, 12229 + "widest-line": { 12230 + "version": "4.0.1", 12231 + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", 12232 + "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", 12233 + "requires": { 12234 + "string-width": "^5.0.1" 12235 + }, 12236 + "dependencies": { 12237 + "ansi-regex": { 12238 + "version": "6.0.1", 12239 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 12240 + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" 12241 + }, 12242 + "emoji-regex": { 12243 + "version": "9.2.2", 12244 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", 12245 + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" 12246 + }, 12247 + "string-width": { 12248 + "version": "5.1.2", 12249 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", 12250 + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", 12251 + "requires": { 12252 + "eastasianwidth": "^0.2.0", 12253 + "emoji-regex": "^9.2.2", 12254 + "strip-ansi": "^7.0.1" 12255 + } 12256 + }, 12257 + "strip-ansi": { 12258 + "version": "7.1.0", 12259 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 12260 + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 12261 + "requires": { 12262 + "ansi-regex": "^6.0.1" 12263 + } 12264 + } 12265 + } 12266 + }, 10770 12267 "wnfs": { 10771 12268 "version": "0.1.7", 10772 12269 "resolved": "https://registry.npmjs.org/wnfs/-/wnfs-0.1.7.tgz", ··· 10830 12327 "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", 10831 12328 "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", 10832 12329 "dev": true 12330 + }, 12331 + "yauzl": { 12332 + "version": "2.10.0", 12333 + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", 12334 + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", 12335 + "dev": true, 12336 + "requires": { 12337 + "buffer-crc32": "~0.2.3", 12338 + "fd-slicer": "~1.1.0" 12339 + } 10833 12340 }, 10834 12341 "yocto-queue": { 10835 12342 "version": "0.1.0",
+3
package.json
··· 12 12 "assert": "^2.0.0", 13 13 "autoprefixer": "^10.4.14", 14 14 "buffer": "^6.0.3", 15 + "elm": "0.19.1-6", 15 16 "elm-review": "^2.10.2", 16 17 "esbuild": "^0.18.18", 17 18 "eslint": "^8.46.0", 18 19 "events": "^3.3.0", 19 20 "gren-lang": "^0.3.0", 21 + "just-install": "^2.0.1", 20 22 "postcss": "^8.4.27", 21 23 "postcss-custom-properties": "^13.3.0", 22 24 "postcss-import": "^15.1.0", ··· 38 40 "music-metadata-browser": "^2.5.10", 39 41 "readable-stream": "^4.4.2", 40 42 "remotestoragejs": "^2.0.0-beta.6", 43 + "serve": "^14.2.1", 41 44 "throttle-debounce": "^5.0.0", 42 45 "timer.js": "^1.0.4", 43 46 "tocca": "^2.0.9",
-28
package.yaml
··· 1 - name: diffuse 2 - 3 - 4 - default-extensions: 5 - - ExtendedDefaultRules 6 - - NoImplicitPrelude 7 - - OverloadedStrings 8 - 9 - 10 - dependencies: 11 - - aeson 12 - - base >= 4.7 && < 5 13 - - bytestring == 0.* 14 - - cmark == 0.6.* 15 - - flow == 2.* 16 - - protolude 17 - - shikensu 18 - - text == 1.* 19 - - time == 1.* 20 - - unordered-containers == 0.2.* 21 - 22 - 23 - executables: 24 - # 🚜 25 - build: 26 - main: Main.hs 27 - source-dirs: 28 - - system/Build
-3
shell.nix
··· 1 - (import (fetchTarball { 2 - url = "https://github.com/edolstra/flake-compat/archive/b4a34015c698c7793d592d66adbab377907a2be8.tar.gz"; 3 - }) { src = ./.; }).shellNix
+48 -28
src/Css/About.css
··· 1 1 @charset "UTF-8"; 2 2 3 - 4 3 /* Imports 5 4 ------- */ 6 5 ··· 10 9 11 10 @import "Fonts.css"; 12 11 @import "Logo.css"; 13 - 14 - 15 12 16 13 /* Basic 17 14 ----- */ ··· 23 20 text-underline-offset: 2px; 24 21 } 25 22 26 - h1, h2, h3, h4, h5, h6 { 27 - @apply antialiased font-bold leading-tight; 23 + h1, 24 + h2, 25 + h3, 26 + h4, 27 + h5, 28 + h6 { 29 + @apply font-bold leading-tight antialiased; 28 30 font-family: "Playfair Display", serif; 29 31 letter-spacing: -0.005em; 30 32 } 31 33 32 - h1 { display: none } 33 - h2 { @apply mb-6 mt-12 text-2xl } 34 - h3 { @apply mb-5 mt-8 text-xl } 35 - h4 { @apply mb-4 mt-6 text-lg } 36 - h5 { @apply mb-5 mt-6 text-base } 34 + h1 { 35 + display: none; 36 + } 37 + 38 + h2 { 39 + @apply mb-6 mt-12 text-2xl; 40 + } 41 + 42 + h3 { 43 + @apply mb-5 mt-8 text-xl; 44 + } 45 + 46 + h4 { 47 + @apply mb-4 mt-6 text-lg; 48 + } 49 + 50 + h5 { 51 + @apply mb-5 mt-6 text-base; 52 + } 37 53 38 54 p { 39 - @apply leading-relaxed my-3 55 + @apply my-3 leading-relaxed; 40 56 } 41 57 42 58 strong { 43 59 @apply font-semibold; 44 60 } 45 61 46 - 47 - 48 62 /* Blockquote 49 63 ---------- */ 50 64 51 65 blockquote { 52 - @apply font-display font-bold max-w-xl mb-12 ml-0 mt-12 pl-0 tracking-tight; 66 + @apply font-display mb-12 ml-0 mt-12 max-w-xl pl-0 font-bold tracking-tight; 53 67 } 54 68 55 69 blockquote p { 56 - @apply leading-tight text-5xl; 70 + @apply text-5xl leading-tight; 57 71 background: url(images/Background/21.jpg); 58 72 background-position: center 33%; 59 73 background-size: cover; 60 - color: #B7C2D4; 74 + color: #b7c2d4; 61 75 62 76 background-clip: text; 63 77 -webkit-background-clip: text; 64 78 -webkit-text-fill-color: transparent; 65 79 } 66 - 67 - 68 80 69 81 /* Code 70 82 ---- */ 71 83 72 84 pre { 73 - @apply border-2 border-gray-400 leading-relaxed overflow-x-auto overflow-y-hidden p-6 rounded text-sm; 85 + @apply overflow-x-auto overflow-y-hidden rounded border-2 border-gray-400 p-6 text-sm leading-relaxed; 74 86 } 75 87 76 88 code { ··· 93 105 @apply text-base0b; 94 106 } 95 107 96 - 97 - 98 108 /* Links 99 109 ----- */ 100 110 101 111 h5 + p a { 102 - @apply inline-block mb-2; 112 + @apply mb-2 inline-block; 103 113 } 104 114 105 - 106 - 107 115 /* Lists 108 116 ----- */ 109 117 110 - ul, ol { @apply leading-relaxed ml-3 } 111 - ul li, ol li { @apply mb-1 } 118 + ul, 119 + ol { 120 + @apply ml-3 leading-relaxed; 121 + } 122 + 123 + ul li, 124 + ol li { 125 + @apply mb-1; 126 + } 112 127 113 128 ol { 114 129 counter-reset: ol; 115 130 } 116 131 117 132 ol li::before { 118 - @apply pr-3 inline-block text-base06; 133 + @apply text-base06 inline-block pr-3; 119 134 counter-increment: ol; 120 135 content: counters(ol, ".") "."; 121 136 } 122 137 123 138 ul li::before { 124 - @apply pr-3 inline-block text-base06; 139 + @apply text-base06 inline-block pr-3; 125 140 content: "•"; 126 141 } 142 + 143 + ul p, 144 + ol p { 145 + @apply my-0 inline; 146 + }
+7 -7
src/Static/About/CORS.md
··· 1 - > A music player that connects to your cloud &amp; distributed storage 1 + > A music player that connects to your cloud & distributed storage 2 2 3 - [Return to the application](../../) 4 - [About](../) 3 + [Return to the application](../../)<br /> 4 + [About](../) 5 5 6 6 7 7 ··· 43 43 44 44 #### BTFS 45 45 46 - Add the domain of the app, with the protocol, to the __list of allowed origins__. 46 + Add the domain of the app, with the protocol, to the __list of allowed origins__. 47 47 48 48 ```shell 49 49 btfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["https://diffuse.sh", "http://diffuse.sh.ipns.localhost:8080", "http://127.0.0.1:44999"]' ··· 83 83 84 84 #### IPFS 85 85 86 - Add the domain of the app, with the protocol, to the __list of allowed origins__. 86 + Add the domain of the app, with the protocol, to the __list of allowed origins__. 87 87 88 88 ```shell 89 89 ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["https://diffuse.sh", "http://diffuse.sh.ipns.localhost:8080", "http://127.0.0.1:44999"]' ··· 111 111 112 112 #### Microsoft Azure Storage 113 113 114 - You can find the CORS configuration under the "Settings -> CORS". 114 + You can find the CORS configuration under the "Settings -> CORS". 115 115 Then fill in the following in the input boxes (left to right): 116 116 117 117 ``` ··· 126 126 127 127 #### WebDAV 128 128 129 - __Depends on your WebDAV server.__ 129 + __Depends on your WebDAV server.__ 130 130 Example setup for Henrique Dias's [WebDAV server](https://github.com/hacdias/webdav): 131 131 132 132 ```yaml
+10 -10
src/Static/About/Dev.md
··· 1 - > A music player that connects to your cloud &amp; distributed storage 1 + > A music player that connects to your cloud & distributed storage 2 2 3 - [Return to the application](../../) 4 - [About](../) 3 + [Return to the application](../../)<br /> 4 + [About](../) 5 5 6 6 7 7 ··· 28 28 29 29 ```yaml 30 30 kind: 31 - amazon_s3 31 + amazon_s3 32 32 33 33 data: 34 34 # Required ··· 47 47 48 48 ```yaml 49 49 kind: 50 - "azure_file" # or "azure_blob" 50 + "azure_file" # or "azure_blob" 51 51 52 52 data: 53 53 # Required ··· 64 64 65 65 ```yaml 66 66 kind: 67 - btfs 67 + btfs 68 68 69 69 data: 70 70 # Required ··· 79 79 80 80 ```yaml 81 81 kind: 82 - dropbox 82 + dropbox 83 83 84 84 data: 85 85 # Required ··· 95 95 96 96 ```yaml 97 97 kind: 98 - google 98 + google 99 99 100 100 data: 101 101 # Required ··· 112 112 113 113 ```yaml 114 114 kind: 115 - ipfs 115 + ipfs 116 116 117 117 data: 118 118 # Required ··· 129 129 130 130 ```yaml 131 131 kind: 132 - webdav 132 + webdav 133 133 134 134 data: 135 135 # Required
+5 -5
src/Static/About/Index.md
··· 1 - > A music player that connects to your cloud &amp; distributed storage 1 + > A music player that connects to your cloud & distributed storage 2 2 3 - [Return to the application](../) 4 - [CORS instructions](cors/) 5 - [Developers](dev/) 3 + [Return to the application](../)<br /> 4 + [CORS instructions](cors/)<br /> 5 + [Developers](dev/) 6 6 7 7 8 8 ··· 52 52 - WAV 53 53 - WEBM 54 54 55 - <small><em>Note, support may vary depending on your <a href="https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Containers#Index_of_media_container_formats_file_types">browser</a>.</em></small> 55 + *<small>Note, support may vary depending on your <a href="https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Containers#Index_of_media_container_formats_file_types">browser</a>.</small>* 56 56 57 57 58 58
+135
src/Static/About/Layout.gren
··· 1 + module About.Layout exposing (..) 2 + 3 + import Transmutable.Html as Html exposing ( Html ) 4 + import Transmutable.Html.Attributes as A 5 + 6 + 7 + layout : 8 + { pathToRoot : String 9 + } 10 + -> Array (Html msg) 11 + -> Array (Html msg) 12 + layout { pathToRoot } contents = 13 + [ Html.doctype 14 + , Html.html 15 + [ A.lang "en" 16 + ] 17 + [ Html.head 18 + [] 19 + [ Html.meta 20 + [ A.charset "utf8" 21 + ] 22 + , Html.title 23 + [ Html.text "About | Diffuse" 24 + ] 25 + , Html.meta 26 + [ A.name "description" 27 + , A.content "A music player that connects to your cloud/distributed storage, in the form of a static, serverless, web application." 28 + ] 29 + 30 + , -- Viewport 31 + Html.meta 32 + [ A.name "viewport" 33 + , A.content "width=device-width, initial-scale=1" 34 + ] 35 + 36 + , -- Favicons & Mobile 37 + Html.link 38 + [ A.rel "apple-touch-icon" 39 + , A.href (pathToRoot ++ "apple-touch-icon.png") 40 + , A.attribute "sizes" "180x180" 41 + ] 42 + , Html.link 43 + [ A.rel "icon" 44 + , A.href (pathToRoot ++ "favicon-32x32.png") 45 + , A.attribute "sizes" "32x32" 46 + ] 47 + , Html.link 48 + [ A.rel "icon" 49 + , A.type_ "image/png" 50 + , A.href (pathToRoot ++ "favicon-16x16.png") 51 + , A.attribute "sizes" "16x16" 52 + ] 53 + , Html.link 54 + [ A.rel "manifest" 55 + , A.href (pathToRoot ++ "site.webmanifest") 56 + ] 57 + , Html.link 58 + [ A.rel "mask-icon" 59 + , A.href (pathToRoot ++ "safari-pinned-tab.svg") 60 + , A.attribute "color" "#8a90a9" 61 + ] 62 + , Html.meta 63 + [ A.name "msapplication-TileColor" 64 + , A.content "#8a90a9" 65 + ] 66 + , Html.meta 67 + [ A.name "theme-color" 68 + , A.content "#8a90a9" 69 + ] 70 + 71 + , -- Styles 72 + Html.meta 73 + [ A.name "color-scheme" 74 + , A.content "dark light" 75 + ] 76 + , Html.link 77 + [ A.rel "stylesheet" 78 + , A.href (pathToRoot ++ "about.css") 79 + ] 80 + ] 81 + 82 + , -- 83 + Html.body 84 + [ A.class "font-body text-base01 dark:bg-darkest-hour my-16 bg-white px-4 dark:text-gray-600" 85 + ] 86 + [ Html.main_ 87 + [ A.class "mx-auto max-w-2xl" 88 + ] 89 + [ Html.a 90 + [ A.class "logo inline-block" 91 + , A.href pathToRoot 92 + ] 93 + [ Html.img 94 + [ A.class "block dark:hidden" 95 + , A.src (pathToRoot ++ "images/diffuse-dark.svg") 96 + ] 97 + [] 98 + , Html.img 99 + [ A.class "hidden dark:block" 100 + , A.src (pathToRoot ++ "images/diffuse-light.svg") 101 + ] 102 + [] 103 + , Html.h1 104 + [] 105 + [ Html.text "Diffuse" 106 + ] 107 + ] 108 + 109 + , -- 110 + Html.article [] contents 111 + ] 112 + 113 + , -- 114 + Html.node 115 + "script" 116 + [ A.src "https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.3.2/highlight.min.js" 117 + ] 118 + [] 119 + , Html.node 120 + "script" 121 + [] 122 + [ Html.text "hljs.initHighlightingOnLoad();" 123 + ] 124 + , Html.node 125 + "script" 126 + [] 127 + [ Html.text "if (\"serviceWorker\" in navigator) {\n" 128 + , Html.text " navigator.serviceWorker.register(\"" 129 + , Html.text pathToRoot 130 + , Html.text "service-worker.js\", { type: \"module\" });\n" 131 + , Html.text "}" 132 + ] 133 + ] 134 + ] 135 + ]
-53
src/Static/About/Layout.html
··· 1 - <!DOCTYPE html> 2 - <html> 3 - 4 - <head> 5 - 6 - <meta charset="utf-8" /> 7 - <title>About | Diffuse</title> 8 - 9 - <!-- Viewport --> 10 - <meta name="viewport" content="width=device-width, initial-scale=1" /> 11 - 12 - <!-- Favicons & Mobile --> 13 - <link rel="apple-touch-icon" sizes="180x180" href="{{pathToRoot}}apple-touch-icon.png" /> 14 - <link rel="icon" type="image/png" sizes="32x32" href="{{pathToRoot}}favicon-32x32.png" /> 15 - <link rel="icon" type="image/png" sizes="16x16" href="{{pathToRoot}}favicon-16x16.png" /> 16 - <link rel="manifest" href="{{pathToRoot}}site.webmanifest" /> 17 - <link rel="mask-icon" href="{{pathToRoot}}safari-pinned-tab.svg" color="#8a90a9" /> 18 - <meta name="msapplication-TileColor" content="#8a90a9" /> 19 - <meta name="theme-color" content="#8a90a9" /> 20 - 21 - <!-- Styles --> 22 - <meta name="color-scheme" content="dark light" /> 23 - <link rel="stylesheet" href="{{pathToRoot}}about.css" /> 24 - 25 - </head> 26 - 27 - <body class="bg-white font-body my-16 px-4 text-base01 dark:bg-darkest-hour dark:text-gray-600"> 28 - 29 - 30 - <main class="max-w-2xl mx-auto"> 31 - <a class="inline-block logo" href="{{pathToRoot}}"> 32 - <img class="block dark:hidden" src="{{pathToRoot}}images/diffuse-dark.svg" /> 33 - <img class="hidden dark:block" src="{{pathToRoot}}images/diffuse-light.svg" /> 34 - <h1>Diffuse</h1> 35 - </a> 36 - 37 - <placeholder /> 38 - </main> 39 - 40 - 41 - <!-- Service worker --> 42 - <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.3.2/highlight.min.js"></script> 43 - <script>hljs.initHighlightingOnLoad()</script> 44 - <script> 45 - if ("serviceWorker" in navigator) { 46 - navigator.serviceWorker.register("{{pathToRoot}}service-worker.js", { type: "module" }) 47 - } 48 - </script> 49 - 50 - 51 - </body> 52 - 53 - </html>
+53 -62
src/Static/Html/Application.html
··· 1 - <!DOCTYPE html> 2 - <html class="fixed font-body h-screen left-0 overflow-hidden top-0 w-full" lang="en"> 1 + <!doctype html> 2 + <html class="font-body fixed left-0 top-0 h-screen w-full overflow-hidden" lang="en"> 3 + <head> 4 + <meta charset="utf-8" /> 5 + <meta name="media-controllable" /> 6 + <meta name="apple-mobile-web-app-capable" content="yes" /> 3 7 4 - <head> 8 + <title>Diffuse</title> 5 9 6 - <meta charset="utf-8" /> 7 - <meta name="media-controllable" /> 8 - <meta name="apple-mobile-web-app-capable" content="yes" /> 10 + <meta 11 + name="description" 12 + content="A music player that connects to your cloud/distributed storage, in the form of a static, serverless, web application." 13 + /> 9 14 10 - <title>Diffuse</title> 15 + <!-- Viewport --> 16 + <meta name="viewport" content="width=device-width, initial-scale=1" /> 11 17 12 - <meta name="description" 13 - content="A music player that connects to your cloud/distributed storage, in the form of a static, serverless, web application." /> 18 + <!-- Favicons & Mobile --> 19 + <link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png" /> 20 + <link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png" /> 21 + <link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png" /> 22 + <link rel="manifest" href="site.webmanifest" /> 23 + <link rel="mask-icon" href="safari-pinned-tab.svg" color="#8a90a9" /> 24 + <meta name="msapplication-TileColor" content="#8a90a9" /> 25 + <meta name="theme-color" content="#8a90a9" /> 14 26 15 - <!-- Viewport --> 16 - <meta name="viewport" content="width=device-width, initial-scale=1" /> 27 + <!-- Stylesheets --> 28 + <meta name="color-scheme" content="dark light" /> 29 + <link rel="stylesheet" href="application.css" /> 17 30 18 - <!-- Favicons & Mobile --> 19 - <link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png" /> 20 - <link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png" /> 21 - <link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png" /> 22 - <link rel="manifest" href="site.webmanifest" /> 23 - <link rel="mask-icon" href="safari-pinned-tab.svg" color="#8a90a9" /> 24 - <meta name="msapplication-TileColor" content="#8a90a9" /> 25 - <meta name="theme-color" content="#8a90a9" /> 31 + <!-- Preload --> 32 + <link rel="modulepreload" href="js/brain/index.js" /> 26 33 27 - <!-- Stylesheets --> 28 - <meta name="color-scheme" content="dark light" /> 29 - <link rel="stylesheet" href="application.css" /> 34 + <link rel="preload" href="images/diffuse__icon-dark.svg" as="image" crossorigin /> 35 + <link rel="preload" href="fonts/Montserrat/Variable/variable.woff2" as="font" crossorigin /> 30 36 31 - <!-- Preload --> 32 - <link rel="modulepreload" href="js/brain/index.js" /> 37 + <!-- Scripts --> 38 + <script defer src="js/ui.elm.js"></script> 39 + <script defer type="module" src="js/ui/index.js"></script> 40 + </head> 33 41 34 - <link rel="preload" href="images/diffuse__icon-dark.svg" as="image" crossorigin /> 35 - <link rel="preload" href="fonts/Montserrat/Variable/variable.woff2" as="font" crossorigin /> 36 - 37 - <!-- Scripts --> 38 - <script defer src="js/ui.elm.js"></script> 39 - <script defer type="module" src="js/ui/index.js"></script> 40 - 41 - </head> 42 - 43 - <body> 44 - 45 - 46 - <main id="elm"> 47 - <!-- 42 + <body> 43 + <main id="elm"> 44 + <!-- 48 45 49 46 APPLICATION PLACEHOLDER 50 47 ======================= ··· 52 49 This `noscript` element will be shown if Javascript is disabled. 53 50 54 51 --> 55 - <noscript data-nosnippet> 56 - <div 57 - class="flex flex-col font-body items-center h-screen italic justify-center leading-relaxed px-4 text-center text-base text-white"> 58 - <a class="block logo mb-5" href="../"> 59 - <img src="../images/diffuse-light.svg" /> 60 - </a> 52 + <noscript data-nosnippet> 53 + <div 54 + class="font-body flex h-screen flex-col items-center justify-center px-4 text-center text-base italic leading-relaxed text-white" 55 + > 56 + <a class="logo mb-5 block" href="../"> 57 + <img src="../images/diffuse-light.svg" /> 58 + </a> 61 59 62 - <p class="opacity-60"> 63 - We'll need some Javascript to liven the place up a bit. 64 - </p> 65 - </div> 66 - </noscript> 67 - </main> 68 - 69 - 60 + <p class="opacity-60">We'll need some Javascript to liven the place up a bit.</p> 61 + </div> 62 + </noscript> 63 + </main> 70 64 71 - <!-- Insert loader --> 72 - <script> 73 - document.getElementById("elm").innerHTML = ` 65 + <!-- Insert loader --> 66 + <script> 67 + document.getElementById("elm").innerHTML = ` 74 68 <div class="flex h-screen items-center justify-center"> 75 69 <div> 76 70 <svg class="loading-animation mx-auto" height="29" width="29" viewbox="0 0 30 30"> ··· 81 75 </div> 82 76 </div> 83 77 </div> 84 - ` 85 - </script> 86 - 87 - 88 - </body> 89 - 90 - </html> 78 + `; 79 + </script> 80 + </body> 81 + </html>
-8
stack.yaml
··· 1 - resolver: nightly-2022-09-23 2 - recommend-stack-upgrade: false 3 - allow-newer: true 4 - 5 - nix: 6 - enable: true 7 - pure: false 8 - shell-file: nix/stack-integration.nix
+222
system/Build/Build.gren
··· 1 + module Build exposing ( main ) 2 + 3 + import About.Layout 4 + import Bytes exposing ( Bytes ) 5 + import Bytes.Decode 6 + import Bytes.Encode 7 + import Dict 8 + import Json.Encode 9 + import Markdown 10 + import Shikensu 11 + import Shikensu.Bundle as Bundle 12 + import Shikensu.Contrib as Shikensu 13 + import Shikensu.Definition as Definition 14 + import Shikensu.Focus exposing ( Focus(..) ) 15 + import Shikensu.Path as Path exposing (..) 16 + import Shikensu.Path.Encapsulated as Path.Encapsulated 17 + import Task 18 + import Transmutable.Html 19 + 20 + 21 + 22 + -- | (• ◡•)| (❍ᴥ❍ʋ) 23 + 24 + 25 + main = 26 + Shikensu.programs 27 + [ -- Copy static files to dist 28 + copy (staticDir "Favicons") 29 + , copy (staticDir "Hosting") 30 + , copyInto "fonts" (staticDir "Fonts") 31 + , copyInto "images" (staticDir "Images") 32 + 33 + , -- Copy more static files with some alterations 34 + copyWithAlterations 35 + { focus = staticDir "Html" 36 + , alt = Shikensu.rename (filePath "Application.html") (filePath "index.html") 37 + } 38 + , copyWithAlterations 39 + { focus = staticDir "Manifests" 40 + , alt = Shikensu.rename (filePath "manifest.json") (filePath "site.webmanifest") 41 + } 42 + 43 + , -- Render about pages 44 + about 45 + 46 + , -- Make a file tree so the service worker knows what to cache 47 + tree 48 + ] 49 + 50 + 51 + 52 + -- FOCUSES & PATHS 53 + 54 + 55 + dist = 56 + Relative 57 + (Path.directory 58 + [ "dist" 59 + ] 60 + ) 61 + 62 + 63 + filePath path = 64 + path 65 + |> Path.fromPosix 66 + |> Path.Encapsulated.toFile 67 + |> Maybe.withDefault (Path.file (Array.singleton path)) 68 + 69 + 70 + staticDir dirName = 71 + Relative 72 + (Path.directory 73 + [ "Src" 74 + , "Static" 75 + , dirName 76 + ] 77 + ) 78 + 79 + 80 + 81 + -- PROGRAMS 82 + 83 + 84 + about = 85 + { focus = staticDir "About" 86 + , sequence = read >> Task.map aboutAlts >> write 87 + } 88 + 89 + 90 + copy focus = 91 + { focus = focus 92 + , sequence = read >> write 93 + } 94 + 95 + 96 + copyInto dirName focus = 97 + { focus = focus 98 + , sequence = read >> Task.map (prefixDirname dirName) >> write 99 + } 100 + 101 + 102 + copyWithAlterations { focus, alt } = 103 + { focus = focus 104 + , sequence = read >> Task.map alt >> write 105 + } 106 + 107 + 108 + tree = 109 + { focus = dist 110 + , sequence = 111 + Task.map 112 + (\bundle -> 113 + bundle.compendium 114 + |> Array.map 115 + (\def -> 116 + def 117 + |> Definition.relativePath 118 + |> Path.toPosix 119 + { absolute = False 120 + } 121 + ) 122 + |> Json.Encode.array Json.Encode.string 123 + |> Json.Encode.encode 0 124 + |> stringToBytes 125 + |> (\content -> 126 + { baseName = "tree" 127 + , content = Just content 128 + , directoryPath = Path.directory [] 129 + , extensionName = Just "json" 130 + , metadata = Dict.empty 131 + } 132 + ) 133 + |> (\def -> 134 + { bundle 135 + | compendium = 136 + [ def 137 + ] 138 + } 139 + ) 140 + ) 141 + >> write 142 + } 143 + 144 + 145 + 146 + -- ALTERATIONS 147 + 148 + 149 + aboutAlts bundle = 150 + bundle 151 + |> Shikensu.withExtension "md" 152 + |> lowerCasePath 153 + |> prefixDirname "about" 154 + |> Shikensu.renameExtension "md" "html" 155 + |> Shikensu.permalink "index" 156 + |> Shikensu.renderContent 157 + (\def -> 158 + def.content 159 + |> Maybe.andThen bytesToString 160 + |> Maybe.withDefault "" 161 + |> Markdown.parse 162 + { frontmatter = Nothing 163 + } 164 + |> (\{ blocks } -> Array.map Markdown.toHtml blocks) 165 + |> About.Layout.layout 166 + { pathToRoot = 167 + def.directoryPath 168 + |> Path.unwrap 169 + |> Array.map (\_ -> "..") 170 + |> String.join "/" 171 + |> (\a -> a ++ "/") 172 + } 173 + |> Transmutable.Html.arrayToString 174 + |> stringToBytes 175 + |> Just 176 + ) 177 + 178 + 179 + lowerCasePath = 180 + (\def -> 181 + def 182 + |> Definition.relativePath 183 + |> Path.map (Array.map String.toLower) 184 + |> (\path -> Definition.fork path def) 185 + ) 186 + |> Array.map 187 + |> Bundle.mapCompendium 188 + 189 + 190 + prefixDirname dirName = 191 + (\def -> { def | directoryPath = Path.map (Array.pushFirst dirName) def.directoryPath }) 192 + |> Array.map 193 + |> Bundle.mapCompendium 194 + 195 + 196 + 197 + -- TASKS 198 + 199 + 200 + read = 201 + Task.andThen Shikensu.read 202 + 203 + 204 + write = 205 + Task.andThen (Shikensu.write dist) 206 + 207 + 208 + 209 + -- 🛠️ 210 + 211 + 212 + bytesToString : Bytes -> Maybe String 213 + bytesToString bytes = 214 + bytes 215 + |> Bytes.width 216 + |> Bytes.Decode.string 217 + |> (\decoder -> Bytes.Decode.decode decoder bytes) 218 + 219 + 220 + stringToBytes : String -> Bytes 221 + stringToBytes = 222 + Bytes.Encode.string >> Bytes.Encode.encode
-208
system/Build/Main.hs
··· 1 - module Main where 2 - 3 - import Data.Time.Clock.POSIX (getPOSIXTime) 4 - import Flow 5 - import Protolude hiding (list) 6 - import Renderers 7 - import Shikensu hiding (list) 8 - import Shikensu.Contrib 9 - import Shikensu.Contrib.IO as Shikensu 10 - import Shikensu.Utilities 11 - 12 - import qualified Data.Aeson as Aeson 13 - import qualified Data.Aeson.KeyMap as KeyMap (fromList) 14 - import qualified Data.ByteString.Lazy as BSL (toStrict) 15 - import qualified Data.Char as Char 16 - import qualified Data.List as List 17 - import qualified Data.Text as Text 18 - import qualified Data.Text.Encoding as Text 19 - import qualified Data.Text.IO as Text 20 - 21 - 22 - -- | (• ◡•)| (❍ᴥ❍ʋ) 23 - 24 - 25 - main :: IO () 26 - main = 27 - do 28 - de <- dependencies 29 - se <- sequences 30 - 31 - -- Execute flows 32 - -- & reduce to a single dictionary 33 - let dictionary = List.concatMap (flow de) se 34 - 35 - -- Write everything to disk 36 - write "../build" dictionary 37 - 38 - -- Make a file tree 39 - build <- list "../build/**/*.*" 40 - 41 - build 42 - |> makeTree 43 - |> write "../build" 44 - 45 - -- Inject build timestamp 46 - -- 47 - -- NOTE: Done by esbuild at the moment (see Justfile) 48 - -- But we leave it here in case we need it anywhere else. 49 - -- 50 - -- insertBuildTimestamp (de !~> "timestamp") build 51 - 52 - -- Fin 53 - return () 54 - 55 - 56 - list :: [Char] -> IO Dictionary 57 - list pattern = 58 - Shikensu.listRelativeF "./src" [pattern] >>= Shikensu.read 59 - 60 - 61 - 62 - -- SEQUENCES 63 - 64 - 65 - data Sequence 66 - = AboutPages 67 - | Favicons 68 - | Fonts 69 - | Hosting 70 - | Html 71 - | Images 72 - | Manifests 73 - 74 - 75 - sequences :: IO [( Sequence, Dictionary )] 76 - sequences = lsequence 77 - [ ( AboutPages, list "Static/About/**/*.md" ) 78 - , ( Favicons, list "Static/Favicons/**/*.*" ) 79 - , ( Fonts, list "Static/Fonts/**/*.*" ) 80 - , ( Hosting, list "Static/Hosting/**/*" ) 81 - , ( Html, list "Static/Html/**/*.html" ) 82 - , ( Images, list "Static/Images/**/*.*" ) 83 - , ( Manifests, list "Static/Manifests/**/*.*" ) 84 - ] 85 - 86 - 87 - 88 - -- FLOWS 89 - 90 - 91 - flow :: Dependencies -> (Sequence, Dictionary) -> Dictionary 92 - flow _ (Html, dict) = 93 - rename "Application.html" "index.html" dict 94 - 95 - 96 - flow _ (Favicons, dict) = dict 97 - flow _ (Fonts, dict) = prefixDirname "fonts/" dict 98 - flow _ (Hosting, dict) = dict 99 - flow _ (Images, dict) = prefixDirname "images/" dict 100 - 101 - 102 - {-| Manifests -} 103 - flow _ (Manifests, dict) = 104 - dict 105 - |> clone "manifest.json" "site.webmanifest" 106 - |> rename "Nextcloud/appinfo.xml" "appinfo/info.xml" 107 - 108 - 109 - {-| About Pages -} 110 - flow x (AboutPages, dict) = 111 - dict 112 - |> map lowerCasePath 113 - |> renameExt ".md" ".html" 114 - |> permalink "index" 115 - |> prefixDirname "about/" 116 - |> renderContent markdownRenderer 117 - |> renderContent (layoutRenderer $ x !~> "aboutLayout") 118 - 119 - 120 - 121 - -- ADDITIONAL IO 122 - -- FLOW DEPENDENCIES 123 - 124 - 125 - type Dependencies = Aeson.Object 126 - 127 - 128 - dependencies :: IO Dependencies 129 - dependencies = do 130 - aboutLayout <- Text.readFile "src/Static/About/Layout.html" 131 - timestamp <- fmap show unixTime :: IO Text 132 - 133 - return $ KeyMap.fromList 134 - [ ( "aboutLayout", Aeson.toJSON aboutLayout ) 135 - , ( "timestamp", Aeson.toJSON timestamp ) 136 - ] 137 - 138 - 139 - 140 - -- INSERT 141 - 142 - 143 - makeTree :: Dictionary -> Dictionary 144 - makeTree dict = 145 - let 146 - treeContent = 147 - dict 148 - |> List.map localPath 149 - |> List.filter (\p -> p /= "tree.json") 150 - |> Aeson.encode 151 - |> BSL.toStrict 152 - 153 - defs = 154 - case headMay dict of 155 - Just def -> 156 - def 157 - |> forkDefinition "tree.json" 158 - |> wrap 159 - |> setContent treeContent 160 - 161 - Nothing -> 162 - [] 163 - in 164 - defs 165 - 166 - 167 - insertBuildTimestamp :: Text -> Dictionary -> IO () 168 - insertBuildTimestamp version dict = 169 - dict 170 - |> List.filter 171 - (\def -> 172 - localPath def == "service-worker.js" 173 - ) 174 - |> List.map 175 - (\def -> 176 - def 177 - |> content 178 - |> fmap Text.decodeUtf8 179 - |> fmap (Text.replace "{{BUILD_TIMESTAMP}}" version) 180 - |> fmap Text.encodeUtf8 181 - |> (\c -> def { content = c }) 182 - ) 183 - |> write "../build" 184 - |> fmap (\_ -> ()) 185 - 186 - 187 - 188 - -- COMMON 189 - 190 - 191 - lowerCasePath :: Definition -> Definition 192 - lowerCasePath def = 193 - Shikensu.forkDefinition 194 - ( def 195 - |> localPath 196 - |> List.map Char.toLower 197 - ) 198 - def 199 - 200 - 201 - unixTime :: IO Int 202 - unixTime = 203 - fmap floor getPOSIXTime 204 - 205 - 206 - wrap :: a -> [a] 207 - wrap a = 208 - [a]
-39
system/Build/Renderers.hs
··· 1 - module Renderers where 2 - 3 - import Flow 4 - import Protolude 5 - import Shikensu 6 - 7 - import qualified CMark 8 - import qualified Data.Text as Text 9 - import qualified Data.Text.Encoding as Text 10 - 11 - 12 - -- Layouts 13 - 14 - 15 - layoutRenderer :: Text -> Definition -> Maybe ByteString 16 - layoutRenderer layout def = 17 - let 18 - layoutWithoutVariables = 19 - Text.replace 20 - "{{pathToRoot}}" 21 - (Text.pack <| pathToRoot def) 22 - layout 23 - in 24 - content def 25 - |> fmap Text.decodeUtf8 26 - |> fmap (\text -> Text.replace "<placeholder />" text layoutWithoutVariables) 27 - |> fmap Text.encodeUtf8 28 - 29 - 30 - 31 - -- Markdown 32 - 33 - 34 - markdownRenderer :: Definition -> Maybe ByteString 35 - markdownRenderer def = 36 - content def 37 - |> fmap Text.decodeUtf8 38 - |> fmap (CMark.commonmarkToHtml [ CMark.optSmart, CMark.optUnsafe ]) 39 - |> fmap Text.encodeUtf8
-8
system/Docker/Act/Nix/Dockerfile
··· 1 - FROM catthehacker/ubuntu:act-latest 2 - 3 - RUN mkdir -p /etc/nix && echo "build-users-group =" > /etc/nix/nix.conf && \ 4 - curl -L https://nixos.org/nix/install | sh 5 - 6 - ENV USER=root 7 - CMD /bin/bash 8 - ENTRYPOINT ["/bin/bash", "--login", "-c"]