From 00b487e1b32bb23432b5ec35ea5763fc0535cfbe Mon Sep 17 00:00:00 2001 From: Daniel Date: Wed, 11 Oct 2023 18:45:08 +0300 Subject: [PATCH] Svelte front, first commit --- .../expensetrackerfaf/web/.eslintignore | 13 + .../expensetrackerfaf/web/.eslintrc.cjs | 14 + .../faf223/expensetrackerfaf/web/.gitignore | 12 + .../com/faf223/expensetrackerfaf/web/.npmrc | 1 + .../expensetrackerfaf/web/.prettierignore | 13 + .../faf223/expensetrackerfaf/web/.prettierrc | 9 + .../faf223/expensetrackerfaf/web/README.md | 6 + .../expensetrackerfaf/web/package-lock.json | 2491 +++++++++++++++++ .../faf223/expensetrackerfaf/web/package.json | 33 + .../faf223/expensetrackerfaf/web/src/app.html | 20 + .../web/src/lib/images/adidas.png | Bin 0 -> 58307 bytes .../web/src/routes/auth/login/+page.svelte | 20 + .../src/routes/auth/login/LoginForm.svelte | 168 ++ .../web/src/routes/auth/register/+page.svelte | 20 + .../routes/auth/register/RegisterForm.svelte | 178 ++ .../web/src/routes/dashboard/+page.svelte | 20 + .../routes/dashboard/board/DashHeader.svelte | 66 + .../routes/dashboard/board/Dashboard.svelte | 27 + .../routes/dashboard/board/DataMenu.svelte | 65 + .../dashboard/board/NotificationBoard.svelte | 15 + .../dashboard/board/QuickInfobar.svelte | 37 + .../dashboard/board/graphs/Graph1.svelte | 48 + .../dashboard/board/graphs/Graph2.svelte | 66 + .../dashboard/board/graphs/Graph3.svelte | 63 + .../dashboard/board/graphs/Graph4.svelte | 48 + .../dashboard/board/graphs/Graph5.svelte | 48 + .../src/routes/dashboard/menu/Navbar.svelte | 47 + .../src/routes/dashboard/menu/SideMenu.svelte | 95 + .../expensetrackerfaf/web/static/favicon.png | Bin 0 -> 1571 bytes .../expensetrackerfaf/web/static/robots.txt | 3 + .../expensetrackerfaf/web/svelte.config.js | 13 + .../expensetrackerfaf/web/vite.config.js | 6 + 32 files changed, 3665 insertions(+) create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/.eslintignore create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/.eslintrc.cjs create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/.gitignore create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/.npmrc create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/.prettierignore create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/.prettierrc create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/README.md create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/package-lock.json create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/package.json create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/src/app.html create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/src/lib/images/adidas.png create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/login/+page.svelte create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/login/LoginForm.svelte create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/register/+page.svelte create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/register/RegisterForm.svelte create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/+page.svelte create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/DashHeader.svelte create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/Dashboard.svelte create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/DataMenu.svelte create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/NotificationBoard.svelte create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/QuickInfobar.svelte create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph1.svelte create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph2.svelte create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph3.svelte create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph4.svelte create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph5.svelte create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/menu/Navbar.svelte create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/menu/SideMenu.svelte create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/static/favicon.png create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/static/robots.txt create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/svelte.config.js create mode 100644 src/main/java/com/faf223/expensetrackerfaf/web/vite.config.js diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/.eslintignore b/src/main/java/com/faf223/expensetrackerfaf/web/.eslintignore new file mode 100644 index 0000000..3897265 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/.eslintignore @@ -0,0 +1,13 @@ +.DS_Store +node_modules +/build +/.svelte-kit +/package +.env +.env.* +!.env.example + +# Ignore files for PNPM, NPM and YARN +pnpm-lock.yaml +package-lock.json +yarn.lock diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/.eslintrc.cjs b/src/main/java/com/faf223/expensetrackerfaf/web/.eslintrc.cjs new file mode 100644 index 0000000..29c1d31 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/.eslintrc.cjs @@ -0,0 +1,14 @@ +module.exports = { + root: true, + extends: ['eslint:recommended', 'plugin:svelte/recommended', 'prettier'], + parserOptions: { + sourceType: 'module', + ecmaVersion: 2020, + extraFileExtensions: ['.svelte'] + }, + env: { + browser: true, + es2017: true, + node: true + } +}; diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/.gitignore b/src/main/java/com/faf223/expensetrackerfaf/web/.gitignore new file mode 100644 index 0000000..8f6c617 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/.gitignore @@ -0,0 +1,12 @@ +.DS_Store +node_modules +/build +/.svelte-kit +/package +.env +.env.* +!.env.example +.vercel +.output +vite.config.js.timestamp-* +vite.config.ts.timestamp-* diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/.npmrc b/src/main/java/com/faf223/expensetrackerfaf/web/.npmrc new file mode 100644 index 0000000..b6f27f1 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/.prettierignore b/src/main/java/com/faf223/expensetrackerfaf/web/.prettierignore new file mode 100644 index 0000000..3897265 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/.prettierignore @@ -0,0 +1,13 @@ +.DS_Store +node_modules +/build +/.svelte-kit +/package +.env +.env.* +!.env.example + +# Ignore files for PNPM, NPM and YARN +pnpm-lock.yaml +package-lock.json +yarn.lock diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/.prettierrc b/src/main/java/com/faf223/expensetrackerfaf/web/.prettierrc new file mode 100644 index 0000000..a77fdde --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/.prettierrc @@ -0,0 +1,9 @@ +{ + "useTabs": true, + "singleQuote": true, + "trailingComma": "none", + "printWidth": 100, + "plugins": ["prettier-plugin-svelte"], + "pluginSearchDirs": ["."], + "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] +} diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/README.md b/src/main/java/com/faf223/expensetrackerfaf/web/README.md new file mode 100644 index 0000000..0691669 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/README.md @@ -0,0 +1,6 @@ +# ExpenseTracker App + +![image](https://github.com/lumijiez/svelte-expensetracker/assets/59575049/7ceab8aa-6d85-4a6b-95fd-2cffbe505fdf) + +Responsive flexbox dashboard made with Chart.js and Svelte + diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/package-lock.json b/src/main/java/com/faf223/expensetrackerfaf/web/package-lock.json new file mode 100644 index 0000000..58c9edf --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/package-lock.json @@ -0,0 +1,2491 @@ +{ + "name": "expensetracker", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "expensetracker", + "version": "0.0.1", + "dependencies": { + "@fortawesome/free-brands-svg-icons": "^6.4.2", + "@fortawesome/free-solid-svg-icons": "^6.4.2", + "chart.js": "^4.4.0", + "email-validator": "^2.0.4", + "svelte-fa": "^3.0.4" + }, + "devDependencies": { + "@fontsource/fira-mono": "^4.5.10", + "@neoconfetti/svelte": "^1.0.0", + "@sveltejs/adapter-auto": "^2.0.0", + "@sveltejs/kit": "^1.20.4", + "eslint": "^8.28.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-svelte": "^2.30.0", + "prettier": "^2.8.0", + "prettier-plugin-svelte": "^2.10.1", + "svelte": "^4.0.5", + "vite": "^4.4.2" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", + "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", + "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.0.0.tgz", + "integrity": "sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@fontsource/fira-mono": { + "version": "4.5.10", + "resolved": "https://registry.npmjs.org/@fontsource/fira-mono/-/fira-mono-4.5.10.tgz", + "integrity": "sha512-bxUnRP8xptGRo8YXeY073DSpfK74XpSb0ZyRNpHV9WvLnJ7TwPOjZll8hTMin7zLC6iOp59pDZ8EQDj1gzgAQQ==", + "dev": true + }, + "node_modules/@fortawesome/fontawesome-common-types": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.2.tgz", + "integrity": "sha512-1DgP7f+XQIJbLFCTX1V2QnxVmpLdKdzzo2k8EmvDOePfchaIGQ9eCHj2up3/jNEbZuBqel5OxiaOJf37TWauRA==", + "hasInstallScript": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-brands-svg-icons": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.4.2.tgz", + "integrity": "sha512-LKOwJX0I7+mR/cvvf6qIiqcERbdnY+24zgpUSouySml+5w8B4BJOx8EhDR/FTKAu06W12fmUIcv6lzPSwYKGGg==", + "hasInstallScript": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.4.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-solid-svg-icons": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.4.2.tgz", + "integrity": "sha512-sYwXurXUEQS32fZz9hVCUUv/xu49PEJEyUOsA51l6PU/qVgfbTb2glsTEaJngVVT8VqBATRIdh7XVgV1JF1LkA==", + "hasInstallScript": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "6.4.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", + "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@jridgewell/gen-mapping": { + "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", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "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/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 + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@kurkle/color": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", + "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==" + }, + "node_modules/@neoconfetti/svelte": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@neoconfetti/svelte/-/svelte-1.0.0.tgz", + "integrity": "sha512-SmksyaJAdSlMa9cTidVSIqYo1qti+WTsviNDwgjNVm+KQ3DRP2Df9umDIzC4vCcpEYY+chQe0i2IKnLw03AT8Q==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.23", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.23.tgz", + "integrity": "sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==", + "dev": true + }, + "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" + }, + "peerDependencies": { + "@sveltejs/kit": "^1.0.0" + } + }, + "node_modules/@sveltejs/kit": { + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.25.1.tgz", + "integrity": "sha512-pD8XsvNJNgTNkFngNlM60my/X8dXWPKVzN5RghEQr0NjGZmuCjy49AfFu2cGbZjNf5pBcqd2RCNMW912P5fkhA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@sveltejs/vite-plugin-svelte": "^2.4.1", + "@types/cookie": "^0.5.1", + "cookie": "^0.5.0", + "devalue": "^4.3.1", + "esm-env": "^1.0.0", + "kleur": "^4.1.5", + "magic-string": "^0.30.0", + "mime": "^3.0.0", + "sade": "^1.8.1", + "set-cookie-parser": "^2.6.0", + "sirv": "^2.0.2", + "tiny-glob": "^0.2.9", + "undici": "~5.25.0" + }, + "bin": { + "svelte-kit": "svelte-kit.js" + }, + "engines": { + "node": "^16.14 || >=18" + }, + "peerDependencies": { + "svelte": "^3.54.0 || ^4.0.0-next.0", + "vite": "^4.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.4.6.tgz", + "integrity": "sha512-zO79p0+DZnXPnF0ltIigWDx/ux7Ni+HRaFOw720Qeivc1azFUrJxTl0OryXVibYNx1hCboGia1NRV3x8RNv4cA==", + "dev": true, + "dependencies": { + "@sveltejs/vite-plugin-svelte-inspector": "^1.0.4", + "debug": "^4.3.4", + "deepmerge": "^4.3.1", + "kleur": "^4.1.5", + "magic-string": "^0.30.3", + "svelte-hmr": "^0.15.3", + "vitefu": "^0.2.4" + }, + "engines": { + "node": "^14.18.0 || >= 16" + }, + "peerDependencies": { + "svelte": "^3.54.0 || ^4.0.0", + "vite": "^4.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte-inspector": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-1.0.4.tgz", + "integrity": "sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": "^14.18.0 || >= 16" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^2.2.0", + "svelte": "^3.54.0 || ^4.0.0", + "vite": "^4.0.0" + } + }, + "node_modules/@types/cookie": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.2.tgz", + "integrity": "sha512-DBpRoJGKJZn7RY92dPrgoMew8xCWc2P71beqsjyhEI/Ds9mOyVmBwtekyfhpwFIVt1WrxTonFifiOZ62V8CnNA==", + "dev": true + }, + "node_modules/@types/estree": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.2.tgz", + "integrity": "sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==", + "dev": true + }, + "node_modules/acorn": { + "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" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/aria-query": { + "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" + } + }, + "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" + } + }, + "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/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/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chart.js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.0.tgz", + "integrity": "sha512-vQEj6d+z0dcsKLlQvbKIMYFHd3t8W/7L2vfJIbYcfyPcRx92CsHqECpueN8qVGNlKyDcr5wBrYAYKnfu/9Q1hQ==", + "dependencies": { + "@kurkle/color": "^0.3.0" + }, + "engines": { + "pnpm": ">=7" + } + }, + "node_modules/code-red": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", + "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1", + "acorn": "^8.10.0", + "estree-walker": "^3.0.3", + "periscopic": "^3.1.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "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/cookie": { + "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" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-tree": { + "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" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/debug": { + "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" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "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" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/devalue": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.2.tgz", + "integrity": "sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==", + "dev": true + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/email-validator": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/email-validator/-/email-validator-2.0.4.tgz", + "integrity": "sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ==", + "engines": { + "node": ">4.0" + } + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", + "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.50.0", + "@humanwhocodes/config-array": "^0.11.11", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", + "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-svelte": { + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.34.0.tgz", + "integrity": "sha512-4RYUgNai7wr0v+T/kljMiYSjC/oqwgq5i+cPppawryAayj4C7WK1ixFlWCGmNmBppnoKCl4iA4ZPzPtlHcb4CA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@jridgewell/sourcemap-codec": "^1.4.14", + "debug": "^4.3.1", + "esutils": "^2.0.3", + "known-css-properties": "^0.28.0", + "postcss": "^8.4.5", + "postcss-load-config": "^3.1.4", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.11", + "semver": "^7.5.3", + "svelte-eslint-parser": ">=0.33.0 <1.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0-0", + "svelte": "^3.37.0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "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 + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "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" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", + "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", + "dev": true, + "dependencies": { + "flatted": "^3.2.7", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "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.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "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": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalyzer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", + "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", + "dev": true + }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "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/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "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", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "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-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-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/keyv": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", + "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/known-css-properties": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.28.0.tgz", + "integrity": "sha512-9pSL5XB4J+ifHP0e0jmmC98OGC1nL8/JjS+fi6mnTlIf//yt/MfVLtKg7S6nCtj/8KTcWX7nRlY0XywoYY1ISQ==", + "dev": true + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "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 + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.30.4", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.4.tgz", + "integrity": "sha512-Q/TKtsC5BPm0kGqgBIF9oXAs/xEf2vRKiIB4wCRQTJOQIByZ1d+NnUOotvJOvNpi5RNIgVOMC3pOuaP1ZTDlVg==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "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 + }, + "node_modules/mime": { + "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" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "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 + }, + "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", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "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/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/periscopic": { + "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", + "is-reference": "^3.0.0" + } + }, + "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 + }, + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "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/postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-scss": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", + "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.4.29" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-svelte": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.10.1.tgz", + "integrity": "sha512-Wlq7Z5v2ueCubWo0TZzKc9XHcm7TDxqcuzRuGd0gcENfzfT4JZ9yDlCbEgxWgiPmLHkBjfOtpAWkcT28MCDpUQ==", + "dev": true, + "peerDependencies": { + "prettier": "^1.16.4 || ^2.0.0", + "svelte": "^3.2.0 || ^4.0.0-next.0" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "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/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "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" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "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==", + "dev": true, + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "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 + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sirv": { + "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", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/source-map-js": { + "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" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/svelte": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.1.tgz", + "integrity": "sha512-LpLqY2Jr7cRxkrTc796/AaaoMLF/1ax7cto8Ot76wrvKQhrPmZ0JgajiWPmg9mTSDqO16SSLiD17r9MsvAPTmw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@jridgewell/sourcemap-codec": "^1.4.15", + "@jridgewell/trace-mapping": "^0.3.18", + "acorn": "^8.9.0", + "aria-query": "^5.3.0", + "axobject-query": "^3.2.1", + "code-red": "^1.0.3", + "css-tree": "^2.3.1", + "estree-walker": "^3.0.3", + "is-reference": "^3.0.1", + "locate-character": "^3.0.0", + "magic-string": "^0.30.0", + "periscopic": "^3.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/svelte-eslint-parser": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.33.1.tgz", + "integrity": "sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==", + "dev": true, + "dependencies": { + "eslint-scope": "^7.0.0", + "eslint-visitor-keys": "^3.0.0", + "espree": "^9.0.0", + "postcss": "^8.4.29", + "postcss-scss": "^4.0.8" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "svelte": "^3.37.0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/svelte-fa": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/svelte-fa/-/svelte-fa-3.0.4.tgz", + "integrity": "sha512-y04vEuAoV1wwVDItSCzPW7lzT6v1bj/y1p+W1V+NtIMpQ+8hj8MBkx7JFD7JHSnalPU1QiI8BVfguqheEA3nPg==" + }, + "node_modules/svelte-hmr": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.3.tgz", + "integrity": "sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==", + "dev": true, + "engines": { + "node": "^12.20 || ^14.13.1 || >= 16" + }, + "peerDependencies": { + "svelte": "^3.19.0 || ^4.0.0" + } + }, + "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/tiny-glob": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", + "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", + "dev": true, + "dependencies": { + "globalyzer": "0.1.0", + "globrex": "^0.1.2" + } + }, + "node_modules/totalist": { + "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/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/undici": { + "version": "5.25.4", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.25.4.tgz", + "integrity": "sha512-450yJxT29qKMf3aoudzFpIciqpx6Pji3hEWaXqXmanbXF58LTAGCKxcJjxMXWu3iG+Mudgo3ZUfDB6YDFd/dAw==", + "dev": true, + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/vite": { + "version": "4.4.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz", + "integrity": "sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==", + "dev": true, + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vitefu": { + "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" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "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/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/package.json b/src/main/java/com/faf223/expensetrackerfaf/web/package.json new file mode 100644 index 0000000..556c627 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/package.json @@ -0,0 +1,33 @@ +{ + "name": "expensetracker", + "version": "0.0.1", + "scripts": { + "g": "vite dev -- --open", + "dev": "vite dev", + "build": "vite build", + "preview": "vite preview", + "lint": "prettier --plugin-search-dir . --check . && eslint .", + "format": "prettier --plugin-search-dir . --write ." + }, + "devDependencies": { + "@fontsource/fira-mono": "^4.5.10", + "@neoconfetti/svelte": "^1.0.0", + "@sveltejs/adapter-auto": "^2.0.0", + "@sveltejs/kit": "^1.20.4", + "eslint": "^8.28.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-svelte": "^2.30.0", + "prettier": "^2.8.0", + "prettier-plugin-svelte": "^2.10.1", + "svelte": "^4.0.5", + "vite": "^4.4.2" + }, + "type": "module", + "dependencies": { + "@fortawesome/free-brands-svg-icons": "^6.4.2", + "@fortawesome/free-solid-svg-icons": "^6.4.2", + "chart.js": "^4.4.0", + "email-validator": "^2.0.4", + "svelte-fa": "^3.0.4" + } +} diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/app.html b/src/main/java/com/faf223/expensetrackerfaf/web/src/app.html new file mode 100644 index 0000000..2617a45 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/app.html @@ -0,0 +1,20 @@ + + + + + + + + + %sveltekit.head% + + +
%sveltekit.body%
+ + diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/lib/images/adidas.png b/src/main/java/com/faf223/expensetrackerfaf/web/src/lib/images/adidas.png new file mode 100644 index 0000000000000000000000000000000000000000..f05be3121d8ea5eb066a8254e94311e62aa66ccd GIT binary patch literal 58307 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 z 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 literal 0 HcmV?d00001 diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/login/+page.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/login/+page.svelte new file mode 100644 index 0000000..f0ff1cf --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/login/+page.svelte @@ -0,0 +1,20 @@ + + +
+ +
+ + diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/login/LoginForm.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/login/LoginForm.svelte new file mode 100644 index 0000000..a0284fa --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/login/LoginForm.svelte @@ -0,0 +1,168 @@ + + +
+ + + \ No newline at end of file diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/register/+page.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/register/+page.svelte new file mode 100644 index 0000000..686e1d4 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/register/+page.svelte @@ -0,0 +1,20 @@ + + +
+ +
+ + diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/register/RegisterForm.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/register/RegisterForm.svelte new file mode 100644 index 0000000..002540f --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/auth/register/RegisterForm.svelte @@ -0,0 +1,178 @@ + + +
+
+ {#if isErrorVisible} + {message} + {/if} +
+

Track.io

+
Sign up for a new account.
+ {username = event.target.value} + }> + {email = event.target.value} + }> + {password = event.target.password} + }> + Forgot your password? + +
+ Already have an account? Sign in +
+
+ + + \ No newline at end of file diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/+page.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/+page.svelte new file mode 100644 index 0000000..456cfb0 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/+page.svelte @@ -0,0 +1,20 @@ + + +
+ + +
+ + \ No newline at end of file diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/DashHeader.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/DashHeader.svelte new file mode 100644 index 0000000..ed861b9 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/DashHeader.svelte @@ -0,0 +1,66 @@ + + + + + \ No newline at end of file diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/Dashboard.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/Dashboard.svelte new file mode 100644 index 0000000..e2d518b --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/Dashboard.svelte @@ -0,0 +1,27 @@ + + +
+ + + +
+ + \ No newline at end of file diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/DataMenu.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/DataMenu.svelte new file mode 100644 index 0000000..1271f15 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/DataMenu.svelte @@ -0,0 +1,65 @@ + + +
+
+ + +
+
+ +
+
+ + +
+
+ + \ No newline at end of file diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/NotificationBoard.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/NotificationBoard.svelte new file mode 100644 index 0000000..a037f02 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/NotificationBoard.svelte @@ -0,0 +1,15 @@ + + +
+ +
+ + \ No newline at end of file diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/QuickInfobar.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/QuickInfobar.svelte new file mode 100644 index 0000000..8db424a --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/QuickInfobar.svelte @@ -0,0 +1,37 @@ + + +
+
Income for this month 50$
+
Expense for this month 40$
+
Income for this month 50$
+
Expense for this month 40$
+
+ + \ No newline at end of file diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph1.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph1.svelte new file mode 100644 index 0000000..b96ee01 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph1.svelte @@ -0,0 +1,48 @@ + + +
+ +
+ + \ No newline at end of file diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph2.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph2.svelte new file mode 100644 index 0000000..492ab87 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph2.svelte @@ -0,0 +1,66 @@ + + +
+ +
+ + \ No newline at end of file diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph3.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph3.svelte new file mode 100644 index 0000000..dd737a6 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph3.svelte @@ -0,0 +1,63 @@ + + +
+ +
+ + \ No newline at end of file diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph4.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph4.svelte new file mode 100644 index 0000000..0825a16 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph4.svelte @@ -0,0 +1,48 @@ + + +
+ +
+ + \ No newline at end of file diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph5.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph5.svelte new file mode 100644 index 0000000..0825a16 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/board/graphs/Graph5.svelte @@ -0,0 +1,48 @@ + + +
+ +
+ + \ No newline at end of file diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/menu/Navbar.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/menu/Navbar.svelte new file mode 100644 index 0000000..39f0d01 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/menu/Navbar.svelte @@ -0,0 +1,47 @@ + + + + + \ No newline at end of file diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/menu/SideMenu.svelte b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/menu/SideMenu.svelte new file mode 100644 index 0000000..57bf783 --- /dev/null +++ b/src/main/java/com/faf223/expensetrackerfaf/web/src/routes/dashboard/menu/SideMenu.svelte @@ -0,0 +1,95 @@ + + +
+
+
+ icon +
+
+ + + +
+
Profile Info
+
+
+ + \ No newline at end of file diff --git a/src/main/java/com/faf223/expensetrackerfaf/web/static/favicon.png b/src/main/java/com/faf223/expensetrackerfaf/web/static/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..825b9e65af7c104cfb07089bb28659393b4f2097 GIT binary patch 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