From 191985915af197bb3b70590227f64b0807847df2 Mon Sep 17 00:00:00 2001 From: WalidMoovin Date: Tue, 14 Feb 2023 16:17:07 +0100 Subject: [PATCH] front --- README.md | 107 +++ package-lock.json | 1124 ++++++++++++++++++++++++++++ package.json | 24 + public/global.css | 63 ++ public/img/pog.jpg | Bin 0 -> 9348 bytes public/img/profileicon.png | Bin 0 -> 9190 bytes public/index.html | 17 + rollup.config.js | 76 ++ scripts/setupTypeScript.js | 121 +++ src/App.svelte | 27 + src/components/MatchHistory.svelte | 24 + src/components/NavBar.svelte | 80 ++ src/components/Profile.svelte | 64 ++ src/main.ts | 7 + tsconfig.json | 24 + 15 files changed, 1758 insertions(+) create mode 100644 README.md create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/global.css create mode 100644 public/img/pog.jpg create mode 100644 public/img/profileicon.png create mode 100644 public/index.html create mode 100644 rollup.config.js create mode 100644 scripts/setupTypeScript.js create mode 100644 src/App.svelte create mode 100644 src/components/MatchHistory.svelte create mode 100644 src/components/NavBar.svelte create mode 100644 src/components/Profile.svelte create mode 100644 src/main.ts create mode 100644 tsconfig.json diff --git a/README.md b/README.md new file mode 100644 index 0000000..43e08d6 --- /dev/null +++ b/README.md @@ -0,0 +1,107 @@ +# This repo is no longer maintained. Consider using `npm init vite` and selecting the `svelte` option or — if you want a full-fledged app framework and don't mind using pre-1.0 software — use [SvelteKit](https://kit.svelte.dev), the official application framework for Svelte. + +--- + +# svelte app + +This is a project template for [Svelte](https://svelte.dev) apps. It lives at https://github.com/sveltejs/template. + +To create a new project based on this template using [degit](https://github.com/Rich-Harris/degit): + +```bash +npx degit sveltejs/template svelte-app +cd svelte-app +``` + +*Note that you will need to have [Node.js](https://nodejs.org) installed.* + + +## Get started + +Install the dependencies... + +```bash +cd svelte-app +npm install +``` + +...then start [Rollup](https://rollupjs.org): + +```bash +npm run dev +``` + +Navigate to [localhost:8080](http://localhost:8080). You should see your app running. Edit a component file in `src`, save it, and reload the page to see your changes. + +By default, the server will only respond to requests from localhost. To allow connections from other computers, edit the `sirv` commands in package.json to include the option `--host 0.0.0.0`. + +If you're using [Visual Studio Code](https://code.visualstudio.com/) we recommend installing the official extension [Svelte for VS Code](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode). If you are using other editors you may need to install a plugin in order to get syntax highlighting and intellisense. + +## Building and running in production mode + +To create an optimised version of the app: + +```bash +npm run build +``` + +You can run the newly built app with `npm run start`. This uses [sirv](https://github.com/lukeed/sirv), which is included in your package.json's `dependencies` so that the app will work when you deploy to platforms like [Heroku](https://heroku.com). + + +## Single-page app mode + +By default, sirv will only respond to requests that match files in `public`. This is to maximise compatibility with static fileservers, allowing you to deploy your app anywhere. + +If you're building a single-page app (SPA) with multiple routes, sirv needs to be able to respond to requests for *any* path. You can make it so by editing the `"start"` command in package.json: + +```js +"start": "sirv public --single" +``` + +## Using TypeScript + +This template comes with a script to set up a TypeScript development environment, you can run it immediately after cloning the template with: + +```bash +node scripts/setupTypeScript.js +``` + +Or remove the script via: + +```bash +rm scripts/setupTypeScript.js +``` + +If you want to use `baseUrl` or `path` aliases within your `tsconfig`, you need to set up `@rollup/plugin-alias` to tell Rollup to resolve the aliases. For more info, see [this StackOverflow question](https://stackoverflow.com/questions/63427935/setup-tsconfig-path-in-svelte). + +## Deploying to the web + +### With [Vercel](https://vercel.com) + +Install `vercel` if you haven't already: + +```bash +npm install -g vercel +``` + +Then, from within your project folder: + +```bash +cd public +vercel deploy --name my-project +``` + +### With [surge](https://surge.sh/) + +Install `surge` if you haven't already: + +```bash +npm install -g surge +``` + +Then, from within your project folder: + +```bash +npm run build +surge public my-project.surge.sh +``` diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..4f7bb91 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1124 @@ +{ + "name": "svelte-app", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "svelte-app", + "version": "1.0.0", + "dependencies": { + "sirv-cli": "^2.0.0" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "^17.0.0", + "@rollup/plugin-node-resolve": "^11.0.0", + "@tsconfig/svelte": "^3.0.0", + "rollup": "^2.3.4", + "rollup-plugin-css-only": "^3.1.0", + "rollup-plugin-livereload": "^2.0.0", + "rollup-plugin-svelte": "^7.0.0", + "rollup-plugin-terser": "^7.0.0", + "svelte": "^3.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "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" + } + }, + "node_modules/@jridgewell/set-array": { + "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" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "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 + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "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==" + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz", + "integrity": "sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "commondir": "^1.0.1", + "estree-walker": "^2.0.1", + "glob": "^7.1.6", + "is-reference": "^1.2.1", + "magic-string": "^0.25.7", + "resolve": "^1.17.0" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^2.30.0" + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "node_modules/@tsconfig/svelte": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-3.0.0.tgz", + "integrity": "sha512-pYrtLtOwku/7r1i9AMONsJMVYAtk3hzOfiGNekhtq5tYBGA7unMve8RvUclKLMT3PrihvJqUmzsRGh0RP84hKg==", + "dev": true + }, + "node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.13.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.13.0.tgz", + "integrity": "sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==", + "dev": true + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/console-clear": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/console-clear/-/console-clear-1.1.1.tgz", + "integrity": "sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/deepmerge": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz", + "integrity": "sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "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": [ + "darwin" + ], + "engines": { + "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/get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "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": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "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", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/livereload": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.3.tgz", + "integrity": "sha512-q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.0", + "livereload-js": "^3.3.1", + "opts": ">= 1.2.0", + "ws": "^7.4.3" + }, + "bin": { + "livereload": "bin/livereload.js" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/livereload-js": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.4.1.tgz", + "integrity": "sha512-5MP0uUeVCec89ZbNOT/i97Mc+q3SxXmiUGhRFOTmhrGPn//uWVQdCvcLJDy64MSBR5MidFdOR7B9viumoavy6g==", + "dev": true + }, + "node_modules/local-access": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/local-access/-/local-access-1.1.0.tgz", + "integrity": "sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/opts": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz", + "integrity": "sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==", + "dev": true + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.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/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-css-only": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-css-only/-/rollup-plugin-css-only-3.1.0.tgz", + "integrity": "sha512-TYMOE5uoD76vpj+RTkQLzC9cQtbnJNktHPB507FzRWBVaofg7KhIqq1kGbcVOadARSozWF883Ho9KpSPKH8gqA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "4" + }, + "engines": { + "node": ">=10.12.0" + }, + "peerDependencies": { + "rollup": "1 || 2" + } + }, + "node_modules/rollup-plugin-css-only/node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/rollup-plugin-livereload": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/rollup-plugin-livereload/-/rollup-plugin-livereload-2.0.5.tgz", + "integrity": "sha512-vqQZ/UQowTW7VoiKEM5ouNW90wE5/GZLfdWuR0ELxyKOJUIaj+uismPZZaICU4DnWPVjnpCDDxEqwU7pcKY/PA==", + "dev": true, + "dependencies": { + "livereload": "^0.9.1" + }, + "engines": { + "node": ">=8.3" + } + }, + "node_modules/rollup-plugin-svelte": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-svelte/-/rollup-plugin-svelte-7.1.2.tgz", + "integrity": "sha512-CfU5C4lhVyN80GqtNod4IvsN1nYrcWS3C/T9+gWF+O31e4QwBPo6ubHlLnuQKYVBzC3qIGdERuyrbrvljLfN/A==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^4.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "rollup": ">=2.0.0", + "svelte": ">=3.5.0" + } + }, + "node_modules/rollup-plugin-svelte/node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/semiver": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz", + "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/sirv": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz", + "integrity": "sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==", + "dependencies": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sirv-cli": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/sirv-cli/-/sirv-cli-2.0.2.tgz", + "integrity": "sha512-OtSJDwxsF1NWHc7ps3Sa0s+dPtP15iQNJzfKVz+MxkEo3z72mCD+yu30ct79rPr0CaV1HXSOBp+MIY5uIhHZ1A==", + "dependencies": { + "console-clear": "^1.1.0", + "get-port": "^3.2.0", + "kleur": "^4.1.4", + "local-access": "^1.0.1", + "sade": "^1.6.0", + "semiver": "^1.0.0", + "sirv": "^2.0.0", + "tinydate": "^1.0.0" + }, + "bin": { + "sirv": "bin.js" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "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": "3.55.1", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.55.1.tgz", + "integrity": "sha512-S+87/P0Ve67HxKkEV23iCdAh/SX1xiSfjF1HOglno/YTbSTW7RniICMCofWGdJJbdjw3S+0PfFb1JtGfTXE0oQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/terser": { + "version": "5.16.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.3.tgz", + "integrity": "sha512-v8wWLaS/xt3nE9dgKEWhNUFP6q4kngO5B8eYFUuebsu7Dw/UNAnpUod6UHo04jSSkv8TzKHjZDSd7EXdDQAl8Q==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tinydate": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tinydate/-/tinydate-1.3.0.tgz", + "integrity": "sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/totalist": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz", + "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..490c9d0 --- /dev/null +++ b/package.json @@ -0,0 +1,24 @@ +{ + "name": "svelte-app", + "version": "1.0.0", + "private": true, + "scripts": { + "build": "rollup -c", + "dev": "rollup -c -w", + "start": "sirv public --no-clear" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "^17.0.0", + "@rollup/plugin-node-resolve": "^11.0.0", + "@tsconfig/svelte": "^3.0.0", + "rollup": "^2.3.4", + "rollup-plugin-css-only": "^3.1.0", + "rollup-plugin-livereload": "^2.0.0", + "rollup-plugin-svelte": "^7.0.0", + "rollup-plugin-terser": "^7.0.0", + "svelte": "^3.0.0" + }, + "dependencies": { + "sirv-cli": "^2.0.0" + } +} diff --git a/public/global.css b/public/global.css new file mode 100644 index 0000000..bb28a94 --- /dev/null +++ b/public/global.css @@ -0,0 +1,63 @@ +html, body { + position: relative; + width: 100%; + height: 100%; +} + +body { + color: #333; + margin: 0; + padding: 8px; + box-sizing: border-box; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; +} + +a { + color: rgb(0,100,200); + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +a:visited { + color: rgb(0,80,160); +} + +label { + display: block; +} + +input, button, select, textarea { + font-family: inherit; + font-size: inherit; + -webkit-padding: 0.4em 0; + padding: 0.4em; + margin: 0 0 0.5em 0; + box-sizing: border-box; + border: 1px solid #ccc; + border-radius: 2px; +} + +input:disabled { + color: #ccc; +} + +button { + color: #333; + background-color: #f4f4f4; + outline: none; +} + +button:disabled { + color: #999; +} + +button:not(:disabled):active { + background-color: #ddd; +} + +button:focus { + border-color: #666; +} diff --git a/public/img/pog.jpg b/public/img/pog.jpg new file mode 100644 index 0000000000000000000000000000000000000000..353331e186f8e76a2427b7bc8944ea184eb7251f GIT binary patch literal 9348 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 literal 0 HcmV?d00001 diff --git a/public/img/profileicon.png b/public/img/profileicon.png new file mode 100644 index 0000000000000000000000000000000000000000..bdd467fcc35859e6fd86f02a3396fb0e6bc1e2b1 GIT binary patch literal 9190 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 + + + + + + Pong + + + + + + + + + + diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 0000000..01637f4 --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,76 @@ +import svelte from 'rollup-plugin-svelte'; +import commonjs from '@rollup/plugin-commonjs'; +import resolve from '@rollup/plugin-node-resolve'; +import livereload from 'rollup-plugin-livereload'; +import { terser } from 'rollup-plugin-terser'; +import css from 'rollup-plugin-css-only'; + +const production = !process.env.ROLLUP_WATCH; + +function serve() { + let server; + + function toExit() { + if (server) server.kill(0); + } + + return { + writeBundle() { + if (server) return; + server = require('child_process').spawn('npm', ['run', 'start', '--', '--dev'], { + stdio: ['ignore', 'inherit', 'inherit'], + shell: true + }); + + process.on('SIGTERM', toExit); + process.on('exit', toExit); + } + }; +} + +export default { + input: 'src/main.ts', + output: { + sourcemap: true, + format: 'iife', + name: 'app', + file: 'public/build/bundle.js' + }, + plugins: [ + svelte({ + compilerOptions: { + // enable run-time checks when not in production + dev: !production + } + }), + // we'll extract any component CSS out into + // a separate file - better for performance + css({ output: 'bundle.css' }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ['svelte'] + }), + commonjs(), + + // In dev mode, call `npm run start` once + // the bundle has been generated + !production && serve(), + + // Watch the `public` directory and refresh the + // browser on changes when not in production + !production && livereload('public'), + + // If we're building for production (npm run build + // instead of npm run dev), minify + production && terser() + ], + watch: { + clearScreen: false + } +}; diff --git a/scripts/setupTypeScript.js b/scripts/setupTypeScript.js new file mode 100644 index 0000000..133658a --- /dev/null +++ b/scripts/setupTypeScript.js @@ -0,0 +1,121 @@ +// @ts-check + +/** This script modifies the project to support TS code in .svelte files like: + + + + As well as validating the code for CI. + */ + +/** To work on this script: + rm -rf test-template template && git clone sveltejs/template test-template && node scripts/setupTypeScript.js test-template +*/ + +const fs = require("fs") +const path = require("path") +const { argv } = require("process") + +const projectRoot = argv[2] || path.join(__dirname, "..") + +// Add deps to pkg.json +const packageJSON = JSON.parse(fs.readFileSync(path.join(projectRoot, "package.json"), "utf8")) +packageJSON.devDependencies = Object.assign(packageJSON.devDependencies, { + "svelte-check": "^2.0.0", + "svelte-preprocess": "^4.0.0", + "@rollup/plugin-typescript": "^8.0.0", + "typescript": "^4.0.0", + "tslib": "^2.0.0", + "@tsconfig/svelte": "^2.0.0" +}) + +// Add script for checking +packageJSON.scripts = Object.assign(packageJSON.scripts, { + "check": "svelte-check --tsconfig ./tsconfig.json" +}) + +// Write the package JSON +fs.writeFileSync(path.join(projectRoot, "package.json"), JSON.stringify(packageJSON, null, " ")) + +// mv src/main.js to main.ts - note, we need to edit rollup.config.js for this too +const beforeMainJSPath = path.join(projectRoot, "src", "main.js") +const afterMainTSPath = path.join(projectRoot, "src", "main.ts") +fs.renameSync(beforeMainJSPath, afterMainTSPath) + +// Switch the app.svelte file to use TS +const appSveltePath = path.join(projectRoot, "src", "App.svelte") +let appFile = fs.readFileSync(appSveltePath, "utf8") +appFile = appFile.replace(" + +
+ + {#if isProfileOpen} +
isProfileOpen = false} on:keydown={() => isProfileOpen = false}> + +
+ {/if} + +
+ + \ No newline at end of file diff --git a/src/components/MatchHistory.svelte b/src/components/MatchHistory.svelte new file mode 100644 index 0000000..4b4cc49 --- /dev/null +++ b/src/components/MatchHistory.svelte @@ -0,0 +1,24 @@ + + +
+ {#if matches.length > 0} +
    + {#each matches as match} +
  • + {match.winner} vs {match.loser} + {match.winner} won 1-0 + {match.time.toLocaleString()} +
  • + {/each} +
+ {:else} +

No matches to display

+ {/if} +
\ No newline at end of file diff --git a/src/components/NavBar.svelte b/src/components/NavBar.svelte new file mode 100644 index 0000000..431a193 --- /dev/null +++ b/src/components/NavBar.svelte @@ -0,0 +1,80 @@ + + + + + \ No newline at end of file diff --git a/src/components/Profile.svelte b/src/components/Profile.svelte new file mode 100644 index 0000000..55b9dc6 --- /dev/null +++ b/src/components/Profile.svelte @@ -0,0 +1,64 @@ + + +
+
+
+ Profile Icon +

{username}

+
+
+

Wins: {wins}

+

Losses: {losses}

+
+ + +
+
+
+
+ + \ No newline at end of file diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..d80e9a3 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,7 @@ +import App from './App.svelte'; + +const app = new App({ + target: document.body, +}); + +export default app; \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..465f549 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "es6", + "module": "es6", + "strict": true, + "noImplicitAny": true, + "jsx": "preserve", + "importHelpers": true, + "moduleResolution": "node", + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "sourceMap": true, + "baseUrl": ".", + "types": ["svelte"], + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "skipDefaultLibCheck": true, + "strictNullChecks": false, + "declaration": false, + "downlevelIteration": true + }, + "include": ["src/**/*.ts"], + "exclude": ["node_modules/*", "public/*"] +} \ No newline at end of file