From b42702640ad0146a3153cfcacdd41ec3eac4b396 Mon Sep 17 00:00:00 2001 From: trivernis Date: Thu, 27 Jul 2023 14:53:58 +0200 Subject: [PATCH] Move everything in place and add containerfile --- .containerignore | 3 + .prettierrc | 2 +- Containerfile | 23 + index.html | 50 --- nginx.conf | 37 ++ package-lock.json | 681 +++++++++++++++++++++++++----- package.json | 10 +- postcss.config.js | 6 + redirect.html | 18 - style.css => src/app.css | 3 - src/routes/+layout.svelte | 5 + src/routes/+layout.ts | 2 + src/routes/+page.svelte | 44 +- src/routes/redirect/+page.svelte | 10 + favicon.ico => static/favicon.ico | Bin static/favicon.png | Bin 1571 -> 33989 bytes favicon.svg => static/favicon.svg | 0 svelte.config.js | 2 +- tailwind.config.js | 9 + 19 files changed, 721 insertions(+), 184 deletions(-) create mode 100644 .containerignore create mode 100644 Containerfile delete mode 100644 index.html create mode 100644 nginx.conf create mode 100644 postcss.config.js delete mode 100644 redirect.html rename style.css => src/app.css (88%) create mode 100644 src/routes/+layout.svelte create mode 100644 src/routes/+layout.ts create mode 100644 src/routes/redirect/+page.svelte rename favicon.ico => static/favicon.ico (100%) rename favicon.svg => static/favicon.svg (100%) create mode 100644 tailwind.config.js diff --git a/.containerignore b/.containerignore new file mode 100644 index 0000000..e08a284 --- /dev/null +++ b/.containerignore @@ -0,0 +1,3 @@ +node_modules +.git +build \ No newline at end of file diff --git a/.prettierrc b/.prettierrc index a77fdde..2d38c79 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,6 +1,6 @@ { "useTabs": true, - "singleQuote": true, + "singleQuote": false, "trailingComma": "none", "printWidth": 100, "plugins": ["prettier-plugin-svelte"], diff --git a/Containerfile b/Containerfile new file mode 100644 index 0000000..15b60f5 --- /dev/null +++ b/Containerfile @@ -0,0 +1,23 @@ +FROM docker.io/node:19.5.0-alpine AS builder + +# install dependencies +WORKDIR /app +COPY package.json package-lock.json ./ +RUN npm ci + +# Copy all local files into the image. +COPY . . + +RUN npm run build + +### +# Only copy over the Node pieces we need +# ~> Saves 35MB +### +FROM docker.io/nginx:alpine + +WORKDIR /app +COPY --from=builder /app/build /usr/share/nginx/html +COPY nginx.conf /etc/nginx/nginx.conf + +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/index.html b/index.html deleted file mode 100644 index be640f9..0000000 --- a/index.html +++ /dev/null @@ -1,50 +0,0 @@ - - - No Chromium - - - - -
- -

What is Chromium?

-

- Chromium is a web browser developed by Google. Many modern web browsers - use its codebase and extened upon it, for example: -

- - more... - -

Why is this a bad thing?

-

- Chromium based browsers dominate the market. This means that any changes - Google makes to the Chromium code base are also present in the browsers that build on it. - As Chromium based browsers are the majority, websites have to adapt. - This also forces non chromium browsers like Firefox to implement these changes. - This gives Google the power to steer the web in a direction they benefit from the most. -

- -

Examples

- - -

What can I do

-

- You should use alternative browsers like Firefox - or, even better, LibreWolf -

-
- - \ No newline at end of file diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..8499f43 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,37 @@ +user nginx; +worker_processes auto; + +error_log /var/log/nginx/error.log notice; +pid /var/run/nginx.pid; + +events { + worker_connections 1024; +} + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + access_log /var/log/nginx/access.log main; + sendfile on; + keepalive_timeout 65; + gzip on; + + server { + listen 80; + listen [::]:80; + server_name localhost; + index index.html index.htm; + + location / { + root /usr/share/nginx/html; + try_files $uri$args $uri$args/ /index.html; + } + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } + } +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 7b34005..12842b3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,18 +7,23 @@ "": { "name": "no-chromium", "version": "0.0.1", + "dependencies": { + "@sveltejs/adapter-static": "^2.0.2" + }, "devDependencies": { - "@sveltejs/adapter-auto": "^2.0.0", "@sveltejs/kit": "^1.20.4", "@typescript-eslint/eslint-plugin": "^5.45.0", "@typescript-eslint/parser": "^5.45.0", + "autoprefixer": "^10.4.14", "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", "eslint-plugin-svelte": "^2.30.0", + "postcss": "^8.4.27", "prettier": "^2.8.0", "prettier-plugin-svelte": "^2.10.1", "svelte": "^4.0.5", "svelte-check": "^3.4.3", + "tailwindcss": "^3.3.3", "tslib": "^2.4.1", "typescript": "^5.0.0", "vite": "^4.4.2" @@ -33,11 +38,22 @@ "node": ">=0.10.0" } }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@ampproject/remapping": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -53,7 +69,6 @@ "cpu": [ "arm" ], - "dev": true, "optional": true, "os": [ "android" @@ -69,7 +84,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "android" @@ -85,7 +99,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "android" @@ -101,7 +114,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "darwin" @@ -117,7 +129,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "darwin" @@ -133,7 +144,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "freebsd" @@ -149,7 +159,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "freebsd" @@ -165,7 +174,6 @@ "cpu": [ "arm" ], - "dev": true, "optional": true, "os": [ "linux" @@ -181,7 +189,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -197,7 +204,6 @@ "cpu": [ "ia32" ], - "dev": true, "optional": true, "os": [ "linux" @@ -213,7 +219,6 @@ "cpu": [ "loong64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -229,7 +234,6 @@ "cpu": [ "mips64el" ], - "dev": true, "optional": true, "os": [ "linux" @@ -245,7 +249,6 @@ "cpu": [ "ppc64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -261,7 +264,6 @@ "cpu": [ "riscv64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -277,7 +279,6 @@ "cpu": [ "s390x" ], - "dev": true, "optional": true, "os": [ "linux" @@ -293,7 +294,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -309,7 +309,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "netbsd" @@ -325,7 +324,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "openbsd" @@ -341,7 +339,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "sunos" @@ -357,7 +354,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "win32" @@ -373,7 +369,6 @@ "cpu": [ "ia32" ], - "dev": true, "optional": true, "os": [ "win32" @@ -389,7 +384,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "win32" @@ -491,7 +485,6 @@ "version": "0.3.3", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -505,7 +498,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -514,7 +506,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -522,14 +513,12 @@ "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.18", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "dev": true, "dependencies": { "@jridgewell/resolve-uri": "3.1.0", "@jridgewell/sourcemap-codec": "1.4.14" @@ -538,8 +527,7 @@ "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.14", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", @@ -579,26 +567,20 @@ "node_modules/@polka/url": { "version": "1.0.0-next.21", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", - "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", - "dev": true + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==" }, - "node_modules/@sveltejs/adapter-auto": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-2.1.0.tgz", - "integrity": "sha512-o2pZCfATFtA/Gw/BB0Xm7k4EYaekXxaPGER3xGSY3FvzFJGTlJlZjBseaXwYSM94lZ0HniOjTokN3cWaLX6fow==", - "dev": true, - "dependencies": { - "import-meta-resolve": "^3.0.0" - }, + "node_modules/@sveltejs/adapter-static": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-2.0.2.tgz", + "integrity": "sha512-9wYtf6s6ew7DHUHMrt55YpD1FgV7oWql2IGsW5BXquLxqcY9vjrqCFo0TzzDpo+ZPZkW/v77k0eOP6tsAb8HmQ==", "peerDependencies": { - "@sveltejs/kit": "^1.0.0" + "@sveltejs/kit": "^1.5.0" } }, "node_modules/@sveltejs/kit": { "version": "1.22.3", "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.22.3.tgz", "integrity": "sha512-IpHD5wvuoOIHYaHQUBJ1zERD2Iz+fB/rBXhXjl8InKw6X4VKE9BSus+ttHhE7Ke+Ie9ecfilzX8BnWE3FeQyng==", - "dev": true, "hasInstallScript": true, "dependencies": { "@sveltejs/vite-plugin-svelte": "^2.4.1", @@ -629,7 +611,6 @@ "version": "2.4.3", "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.4.3.tgz", "integrity": "sha512-NY2h+B54KHZO3kDURTdARqthn6D4YSIebtfW75NvZ/fwyk4G+AJw3V/i0OBjyN4406Ht9yZcnNWMuRUFnDNNiA==", - "dev": true, "dependencies": { "@sveltejs/vite-plugin-svelte-inspector": "^1.0.3", "debug": "^4.3.4", @@ -651,7 +632,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-1.0.3.tgz", "integrity": "sha512-Khdl5jmmPN6SUsVuqSXatKpQTMIifoQPDanaxC84m9JxIibWvSABJyHpyys0Z+1yYrxY5TTEQm+6elh0XCMaOA==", - "dev": true, "dependencies": { "debug": "^4.3.4" }, @@ -667,14 +647,12 @@ "node_modules/@types/cookie": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.1.tgz", - "integrity": "sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==", - "dev": true + "integrity": "sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==" }, "node_modules/@types/estree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", - "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", - "dev": true + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==" }, "node_modules/@types/json-schema": { "version": "7.0.12", @@ -886,7 +864,6 @@ "version": "8.10.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -943,6 +920,12 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -956,6 +939,12 @@ "node": ">= 8" } }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -966,7 +955,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", - "dev": true, "dependencies": { "dequal": "^2.0.3" } @@ -980,11 +968,43 @@ "node": ">=8" } }, + "node_modules/autoprefixer": { + "version": "10.4.14", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, "node_modules/axobject-query": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", - "dev": true, "dependencies": { "dequal": "^2.0.3" } @@ -1026,6 +1046,38 @@ "node": ">=8" } }, + "node_modules/browserslist": { + "version": "4.21.9", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -1039,7 +1091,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dev": true, "dependencies": { "streamsearch": "^1.1.0" }, @@ -1056,6 +1107,35 @@ "node": ">=6" } }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001517", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz", + "integrity": "sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -1115,7 +1195,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.3.tgz", "integrity": "sha512-kVwJELqiILQyG5aeuyKFbdsI1fmQy1Cmf7dQ8eGmVuJoaRVdwey7WaMknr2ZFeVSYSKT0rExsa8EGw0aoI/1QQ==", - "dev": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.14", "@types/estree": "^1.0.0", @@ -1142,6 +1221,15 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1152,7 +1240,6 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -1175,7 +1262,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dev": true, "dependencies": { "mdn-data": "2.0.30", "source-map-js": "^1.0.1" @@ -1200,7 +1286,6 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -1223,7 +1308,6 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -1232,7 +1316,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true, "engines": { "node": ">=6" } @@ -1249,7 +1332,12 @@ "node_modules/devalue": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.2.tgz", - "integrity": "sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==", + "integrity": "sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", "dev": true }, "node_modules/dir-glob": { @@ -1264,6 +1352,12 @@ "node": ">=8" } }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -1276,6 +1370,12 @@ "node": ">=6.0.0" } }, + "node_modules/electron-to-chromium": { + "version": "1.4.473", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.473.tgz", + "integrity": "sha512-aVfC8+440vGfl06l8HKKn8/PD5jRfSnLkTTD65EFvU46igbpQRri1gxSzW9/+TeUlwYzrXk1sw867T96zlyECA==", + "dev": true + }, "node_modules/es6-promise": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", @@ -1286,7 +1386,6 @@ "version": "0.18.17", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.17.tgz", "integrity": "sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==", - "dev": true, "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" @@ -1319,6 +1418,15 @@ "@esbuild/win32-x64": "0.18.17" } }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -1484,8 +1592,7 @@ "node_modules/esm-env": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz", - "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==", - "dev": true + "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==" }, "node_modules/espree": { "version": "9.6.1", @@ -1559,7 +1666,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "dev": true, "dependencies": { "@types/estree": "^1.0.0" } @@ -1687,6 +1793,19 @@ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -1697,7 +1816,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -1707,6 +1825,12 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -1786,6 +1910,18 @@ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -1820,16 +1956,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-meta-resolve": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-3.0.0.tgz", - "integrity": "sha512-4IwhLhNNA8yy445rPjD/lWh++7hMDOml2eHtd58eG7h+qK3EryMuuRbsHGPikCoAgIkkDnckKfWSk2iDla/ejg==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -1867,6 +1993,18 @@ "node": ">=8" } }, + "node_modules/is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -1910,7 +2048,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.1.tgz", "integrity": "sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==", - "dev": true, "dependencies": { "@types/estree": "*" } @@ -1921,6 +2058,15 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, + "node_modules/jiti": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.19.1.tgz", + "integrity": "sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -1949,7 +2095,6 @@ "version": "4.1.5", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "dev": true, "engines": { "node": ">=6" } @@ -1982,11 +2127,16 @@ "node": ">=10" } }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, "node_modules/locate-character": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", - "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", - "dev": true + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==" }, "node_modules/locate-path": { "version": "6.0.0", @@ -2025,7 +2175,6 @@ "version": "0.30.1", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.1.tgz", "integrity": "sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==", - "dev": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" }, @@ -2036,8 +2185,7 @@ "node_modules/mdn-data": { "version": "2.0.30", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" }, "node_modules/merge2": { "version": "1.4.1", @@ -2065,7 +2213,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "dev": true, "bin": { "mime": "cli.js" }, @@ -2119,7 +2266,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "dev": true, "engines": { "node": ">=4" } @@ -2128,7 +2274,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", - "dev": true, "engines": { "node": ">=10" } @@ -2136,14 +2281,23 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } }, "node_modules/nanoid": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "dev": true, "funding": [ { "type": "github", @@ -2169,6 +2323,12 @@ "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", "dev": true }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -2178,6 +2338,33 @@ "node": ">=0.10.0" } }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -2273,6 +2460,12 @@ "node": ">=8" } }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -2286,7 +2479,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", - "dev": true, "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^3.0.0", @@ -2296,8 +2488,7 @@ "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -2311,11 +2502,28 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/postcss": { "version": "8.4.27", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz", "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==", - "dev": true, "funding": [ { "type": "opencollective", @@ -2339,6 +2547,42 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, "node_modules/postcss-load-config": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", @@ -2368,6 +2612,25 @@ } } }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, "node_modules/postcss-safe-parser": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", @@ -2419,6 +2682,12 @@ "node": ">=4" } }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -2482,6 +2751,15 @@ } ] }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -2494,6 +2772,23 @@ "node": ">=8.10.0" } }, + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -2532,7 +2827,6 @@ "version": "3.26.3", "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.26.3.tgz", "integrity": "sha512-7Tin0C8l86TkpcMtXvQu6saWH93nhG3dGQ1/+l5V2TDMceTxO7kDiK6GzbfLWNNxqJXm591PcEZUozZm51ogwQ==", - "dev": true, "bin": { "rollup": "dist/bin/rollup" }, @@ -2571,7 +2865,6 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "dev": true, "dependencies": { "mri": "^1.1.0" }, @@ -2621,8 +2914,7 @@ "node_modules/set-cookie-parser": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", - "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==", - "dev": true + "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==" }, "node_modules/shebang-command": { "version": "2.0.0", @@ -2649,7 +2941,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.3.tgz", "integrity": "sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==", - "dev": true, "dependencies": { "@polka/url": "^1.0.0-next.20", "mrmime": "^1.0.0", @@ -2687,7 +2978,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -2696,7 +2986,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "dev": true, "engines": { "node": ">=10.0.0" } @@ -2737,6 +3026,48 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -2749,11 +3080,22 @@ "node": ">=8" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/svelte": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.1.1.tgz", "integrity": "sha512-Enick5fPFISLoVy0MFK45cG+YlQt6upw8skEK9zzTpJnH1DqEv8xOZwizCGSo3Q6HZ7KrZTM0J18poF7aQg5zw==", - "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.1", "@jridgewell/sourcemap-codec": "^1.4.15", @@ -2851,7 +3193,6 @@ "version": "0.15.2", "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.2.tgz", "integrity": "sha512-q/bAruCvFLwvNbeE1x3n37TYFb3mTBJ6TrCq6p2CoFbSTNhDE9oAtEfpy+wmc9So8AG0Tja+X0/mJzX9tSfvIg==", - "dev": true, "engines": { "node": "^12.20 || ^14.13.1 || >= 16" }, @@ -2933,12 +3274,108 @@ "node": ">=12" } }, + "node_modules/tailwindcss": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz", + "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.18.2", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "engines": { + "node": ">= 14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/tailwindcss/node_modules/yaml": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", + "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -2955,11 +3392,16 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", - "dev": true, "engines": { "node": ">=6" } }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, "node_modules/tslib": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", @@ -3028,7 +3470,6 @@ "version": "5.22.1", "resolved": "https://registry.npmjs.org/undici/-/undici-5.22.1.tgz", "integrity": "sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==", - "dev": true, "dependencies": { "busboy": "^1.6.0" }, @@ -3036,6 +3477,36 @@ "node": ">=14.0" } }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -3055,7 +3526,6 @@ "version": "4.4.7", "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.7.tgz", "integrity": "sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw==", - "dev": true, "dependencies": { "esbuild": "^0.18.10", "postcss": "^8.4.26", @@ -3110,7 +3580,6 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.4.tgz", "integrity": "sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==", - "dev": true, "peerDependencies": { "vite": "^3.0.0 || ^4.0.0" }, diff --git a/package.json b/package.json index 924dfb0..a72e11c 100644 --- a/package.json +++ b/package.json @@ -12,20 +12,24 @@ "format": "prettier --plugin-search-dir . --write ." }, "devDependencies": { - "@sveltejs/adapter-auto": "^2.0.0", "@sveltejs/kit": "^1.20.4", "@typescript-eslint/eslint-plugin": "^5.45.0", "@typescript-eslint/parser": "^5.45.0", + "autoprefixer": "^10.4.14", "eslint": "^8.28.0", "eslint-config-prettier": "^8.5.0", "eslint-plugin-svelte": "^2.30.0", + "postcss": "^8.4.27", "prettier": "^2.8.0", "prettier-plugin-svelte": "^2.10.1", "svelte": "^4.0.5", "svelte-check": "^3.4.3", + "tailwindcss": "^3.3.3", "tslib": "^2.4.1", "typescript": "^5.0.0", - "vite": "^4.4.2" + "vite": "^4.4.2", + "@sveltejs/adapter-static": "^2.0.2" }, - "type": "module" + "type": "module", + "dependencies": {} } diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..2e7af2b --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/redirect.html b/redirect.html deleted file mode 100644 index 64b3ea2..0000000 --- a/redirect.html +++ /dev/null @@ -1,18 +0,0 @@ - - - No Chromium - - - -
- -
- - \ No newline at end of file diff --git a/style.css b/src/app.css similarity index 88% rename from style.css rename to src/app.css index bb83788..19991ed 100644 --- a/style.css +++ b/src/app.css @@ -17,6 +17,3 @@ body { height: 100%; } -.centered { - margin: auto; -} diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte new file mode 100644 index 0000000..14e3d4d --- /dev/null +++ b/src/routes/+layout.svelte @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/src/routes/+layout.ts b/src/routes/+layout.ts new file mode 100644 index 0000000..e8f8457 --- /dev/null +++ b/src/routes/+layout.ts @@ -0,0 +1,2 @@ +export const csr = false; +export const prerender = true; diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 5982b0a..2283bbf 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,2 +1,42 @@ -

Welcome to SvelteKit

-

Visit kit.svelte.dev to read the documentation

+ +
+ +

What is Chromium?

+

+ Chromium is a web browser developed by Google. Many modern web browsers + use its codebase and extened upon it, for example: +

+
    +
  • Google Chrome
  • +
  • Opera
  • +
  • Microsoft Edge
  • +
  • Brave Browser
  • +
+ more... + +

Why is this a bad thing?

+

+ Chromium based browsers dominate the market. This means that any changes + Google makes to the Chromium code base are also present in the browsers that build on it. + As Chromium based browsers are the majority, websites have to adapt. + This also forces non chromium browsers like Firefox to implement these changes. + This gives Google the power to steer the web in a direction they benefit from the most. +

+ +

Examples

+
    +
  • WebIntegrity
  • +
  • Widevine
  • +
  • TODO...
  • +
+ +

What can I do

+

+ You should use alternative browsers like Firefox + or, even better, LibreWolf +

+
diff --git a/src/routes/redirect/+page.svelte b/src/routes/redirect/+page.svelte new file mode 100644 index 0000000..3ef1a76 --- /dev/null +++ b/src/routes/redirect/+page.svelte @@ -0,0 +1,10 @@ +
+ +
diff --git a/favicon.ico b/static/favicon.ico similarity index 100% rename from favicon.ico rename to static/favicon.ico diff --git a/static/favicon.png b/static/favicon.png index 825b9e65af7c104cfb07089bb28659393b4f2097..c489f81a9aa018c9a9c7f48a3dfbfaf9dd88f275 100644 GIT binary patch literal 33989 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%0Dv=Fzdiu7D~9~|x(e$wk&G2? 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 z z(lDUY#?IZi5#0ROb3G0Ltd#`-7;Nj1DzSF-SesEbIltA#Xp*eV3KO978GBw-`J3)m zlQ&K9i_>|8cj^F^bE6himKRo2GjWFdIW)tD` z^sti%W~AHe!Vm2j&8M)-4W0XRmJSvUMpGJpDvabgd#ec?R8*Zq4RVDelGnJL<&b2J zpyM-Uy*LQ#TD}2cZyGB5w$~|(iI~W?<}ilI_C6c)<{#H1-I81>@g`(nW?7g_tZwuvbsGMu=v_1j!xuZ znM_ZY9-0MdofN_bu$t0HHv`5` zN7V>oulfxK8n5qab-|tdX7Qydx)udb-11Qr&2NY03O`v4+3W-3wkNPdx(>_YRupk6 zT;+a!BttHMR@jSRw5>S+`MJ!!r~e(uNR6I5lEQUC6^QNN`|uIXA#srog~@kZ^4rrT zJOf|TxFlHw@8>F-XxB@<0Ye5l)?AdI(oc{xR`EZ-v;tNXET8@8=hz9DQ{=Uur*gd@yWpP*2htfAk{qo)~vly9FLosH9&Gd07~8Cl@&S+ zobH1fFrDY&*#X_guFhsn*?^~1(tIbb52Bgb;;j=`f0uK4+zQixYTenWqdv-cIzc

qc|Nc#qWni1^YTw|V@Qf4)5iju9tro@ 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%0DD)E3(wr0EO1`<9 zWI{u9*?Ng~KhGmW_|-hrN|66Ny(sH>Q;}`+4&AGzHBxw(?v-D8Y<)c=AX+UPjW6A^ zoUFRhy}s(~2;OBxk(C8^XkLWaa{;EFPv}FZM0 z%gB*hN$|Upk)eTg-G&Bi11^?EMl{4v+oUAwg4eSWbjH}&^dFsth)e~ScJJgp@d;?b znytW}J~Q^b`(=ua(HBZZ4@S`7Xq7GEnq2qiEQ|pAYRcHy-^a^XGb)mpiIN#JFs?Ln z>~!BMCmVyZpRulywHSTTOZL*>t!xL4Ae^L zX)2Vts0V{_p*dj~3Mx)PNyfs#J>_USYGx%ks;)+}=N@)F!2#0BPB7^SSx}d`(^~FZ4JRfB%epZe3V_H% zknrHrZwLWgT3{2FE&2qpX2yp4o7yz81|h`2F-lWXk}41Xemw9K>~!c>WAcFC-9yY_ zLMpUD5rTiipP`8TZ9$?ijyde6Y=|*5@-ajW{bavmcJ^jXymOk29ax1w{SbXJvwkhc zV~$4m06p2_V4V4!AAY?Yoq?^O3v2;9!qx1#HS%4v`;rs>>|q7O7fej@u8YPpaQ>7tI4GtnCUz6+ki)_0&G-OkpN$s1O;(| ze$@Ij#~Gx_T>;>?PHBcFez4tZ$F1pisl>emU0CD@2UyIKKDaxkO(Q@3nHaGA@NaBv zwC7d?tbrkMF}x^QfASB9E{*IoXdEre(wr_<&|UZlvT$eKDr54=Qg|gs9#s6dbs}GY z%MLKmgX0t%Idg!RpwlUU!+cvpf{?&je$w2_O(^vUu2=$ApACzNRvHKAL~_DAv?hp? z?popz`e9a+lW9K4=RHC5ro`j>r{q-9cGGZ2 zeNkNd@^C;DTzUOrMFWG?U?8N|T{N{C&E><6sI&p%6?$3O?Y+LCc!C@uSZBWu4vjD* z+*JsU{jg+blqGx~vc)c&kJp#)Cr!c*NH@zkG@X(Rs4tLiAAn}-f_?0)Gib@0p!luWM9xeqIbp_7od>+XLR#udj zYSPF@q9j7;-r7v{e9!q})wcoxe*wvbAh1U(zT>S|>p1s2yxwkH1&!vO)w25KKVY2gay1d)8$X{C0v^ zdGqSBO4Cx|1pKF<4nPtAk@&MSD_IO7*+#YL?q}x<=^lkgaD0~5SF1hs zw~ljQ!Z0-iIbenGg9)GWj7${OwXwl{V1d|bH|Pj`9FC=woK9uZMS?C9Eg)3!<1-d@ z)!hag6E@uc8m|PG zEfi#D_+1RPtqW;VxuGH-B(YHZqe>D|eM3qTf)=+fi}5A#3M~Um&?Ffl#t?qDUUZ?@ zfq6v)Df+Fd4%NunEZW3`)DOcjd~l*dIZd_oQW8mUNLx&*7GW{cGUGldzwB%oa;K_j ze}@*?KmZE)Cq&ygTc~UM*Ef5n$fm~txjhS=@_^=Ky)9tTZO=&eZTGN=h=6EBHhh$P z;tU-(f(nI#BGyfl?7>c9g3n{)u7%#jN`wDRM}spMir*FV|DS`?1b*rQGTn!7Q9z7= kf2kEgp-N+}NFr%J-03fcoz5oCK literal 1571 zcmV+;2Hg3HP)Px)-AP12RCwC$UE6KzI1p6{F2N z1VK2vi|pOpn{~#djwYcWXTI_im_u^TJgMZ4JMOsSj!0ma>B?-(Hr@X&W@|R-$}W@Z zgj#$x=!~7LGqHW?IO8+*oE1MyDp!G=L0#^lUx?;!fXv@l^6SvTnf^ac{5OurzC#ZMYc20lI%HhX816AYVs1T3heS1*WaWH z%;x>)-J}YB5#CLzU@GBR6sXYrD>Vw(Fmt#|JP;+}<#6b63Ike{Fuo!?M{yEffez;| zp!PfsuaC)>h>-AdbnwN13g*1LowNjT5?+lFVd#9$!8Z9HA|$*6dQ8EHLu}U|obW6f z2%uGv?vr=KNq7YYa2Roj;|zooo<)lf=&2yxM@e`kM$CmCR#x>gI>I|*Ubr({5Y^rb zghxQU22N}F51}^yfDSt786oMTc!W&V;d?76)9KXX1 z+6Okem(d}YXmmOiZq$!IPk5t8nnS{%?+vDFz3BevmFNgpIod~R{>@#@5x9zJKEHLHv!gHeK~n)Ld!M8DB|Kfe%~123&Hz1Z(86nU7*G5chmyDe ziV7$pB7pJ=96hpxHv9rCR29%bLOXlKU<_13_M8x)6;P8E1Kz6G<&P?$P^%c!M5`2` zfY2zg;VK5~^>TJGQzc+33-n~gKt{{of8GzUkWmU110IgI0DLxRIM>0US|TsM=L|@F z0Bun8U!cRB7-2apz=y-7*UxOxz@Z0)@QM)9wSGki1AZ38ceG7Q72z5`i;i=J`ILzL z@iUO?SBBG-0cQuo+an4TsLy-g-x;8P4UVwk|D8{W@U1Zi z!M)+jqy@nQ$p?5tsHp-6J304Q={v-B>66$P0IDx&YT(`IcZ~bZfmn11#rXd7<5s}y zBi9eim&zQc0Dk|2>$bs0PnLmDfMP5lcXRY&cvJ=zKxI^f0%-d$tD!`LBf9^jMSYUA zI8U?CWdY@}cRq6{5~y+)#h1!*-HcGW@+gZ4B};0OnC~`xQOyH19z*TA!!BJ%9s0V3F?CAJ{hTd#*tf+ur-W9MOURF-@B77_-OshsY}6 zOXRY=5%C^*26z?l)1=$bz30!so5tfABdSYzO+H=CpV~aaUefmjvfZ3Ttu9W&W3Iu6 zROlh0MFA5h;my}8lB0tAV-Rvc2Zs_CCSJnx@d`**$idgy-iMob4dJWWw|21b4NB=LfsYp0Aeh{Ov)yztQi;eL4y5 zMi>8^SzKqk8~k?UiQK^^-5d8c%bV?$F8%X~czyiaKCI2=UH