From 736ed39ec72542ac007707212ce5ce9f9f3c5035 Mon Sep 17 00:00:00 2001 From: MrMelon54 Date: Mon, 30 Oct 2023 13:25:54 +0000 Subject: [PATCH] First commit --- .editorconfig | 36 ++ .env.development | 3 + .env.production | 3 + .gitignore | 24 + .prettierrc | 14 + .vscode/extensions.json | 3 + README.md | 47 ++ index.html | 19 + package.json | 25 + public/1f349.svg | 7 + public/fonts/FiraCode-Regular.woff2 | Bin 0 -> 103240 bytes public/fonts/Ubuntu.woff2 | Bin 0 -> 34852 bytes src/App.svelte | 147 +++++ src/app.scss | 67 +++ src/main.ts | 8 + src/stores/login.ts | 47 ++ src/utils/login-popup.ts | 53 ++ src/vite-env.d.ts | 11 + svelte.config.js | 7 + test-server/go.mod | 16 + test-server/go.sum | 22 + test-server/main.go | 154 ++++++ tsconfig.json | 20 + tsconfig.node.json | 9 + vite.config.ts | 7 + yarn.lock | 811 ++++++++++++++++++++++++++++ 26 files changed, 1560 insertions(+) create mode 100644 .editorconfig create mode 100644 .env.development create mode 100644 .env.production create mode 100644 .gitignore create mode 100644 .prettierrc create mode 100644 .vscode/extensions.json create mode 100644 README.md create mode 100644 index.html create mode 100644 package.json create mode 100644 public/1f349.svg create mode 100644 public/fonts/FiraCode-Regular.woff2 create mode 100644 public/fonts/Ubuntu.woff2 create mode 100644 src/App.svelte create mode 100644 src/app.scss create mode 100644 src/main.ts create mode 100644 src/stores/login.ts create mode 100644 src/utils/login-popup.ts create mode 100644 src/vite-env.d.ts create mode 100644 svelte.config.js create mode 100644 test-server/go.mod create mode 100644 test-server/go.sum create mode 100644 test-server/main.go create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json create mode 100644 vite.config.ts create mode 100644 yarn.lock diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..4907fcd --- /dev/null +++ b/.editorconfig @@ -0,0 +1,36 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +# Defaults +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true + +# CSS +[*.css] +indent_size = 2 +indent_style = space +trim_trailing_whitespace = true + +# HTML +[*.{htm,html}] +indent_size = 2 +indent_style = space +trim_trailing_whitespace = true + +# GNU make +[Makefile] +indent_style = tab + +# Svelte +[*.svelte] +indent_size = 2 +indent_style = space + +# YAML +[*.{yaml,yml}] +indent_size = 2 +indent_style = space \ No newline at end of file diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..5b9b925 --- /dev/null +++ b/.env.development @@ -0,0 +1,3 @@ +VITE_SSO_ORIGIN=http://localhost:9090 + +VITE_API_LOTUS=http://localhost:9095/v1/lotus diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..3ca288f --- /dev/null +++ b/.env.production @@ -0,0 +1,3 @@ +VITE_SSO_ORIGIN=https://sso.1f349.net + +VITE_API_LOTUS=https://api.1f349.net/v1/lotus diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..351ea98 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,14 @@ +{ + "printWidth": 150, + "tabWidth": 2, + "useTabs": false, + "semi": true, + "singleQuote": false, + "trailingComma": "all", + "bracketSpacing": false, + "bracketSameLine": false, + "arrowParens": "avoid", + "requirePragma": false, + "insertPragma": false, + "htmlWhitespaceSensitivity": "ignore" +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..bdef820 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["svelte.svelte-vscode"] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..e6cd94f --- /dev/null +++ b/README.md @@ -0,0 +1,47 @@ +# Svelte + TS + Vite + +This template should help get you started developing with Svelte and TypeScript in Vite. + +## Recommended IDE Setup + +[VS Code](https://code.visualstudio.com/) + [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode). + +## Need an official Svelte framework? + +Check out [SvelteKit](https://github.com/sveltejs/kit#readme), which is also powered by Vite. Deploy anywhere with its serverless-first approach and adapt to various platforms, with out of the box support for TypeScript, SCSS, and Less, and easily-added support for mdsvex, GraphQL, PostCSS, Tailwind CSS, and more. + +## Technical considerations + +**Why use this over SvelteKit?** + +- It brings its own routing solution which might not be preferable for some users. +- It is first and foremost a framework that just happens to use Vite under the hood, not a Vite app. + +This template contains as little as possible to get started with Vite + TypeScript + Svelte, while taking into account the developer experience with regards to HMR and intellisense. It demonstrates capabilities on par with the other `create-vite` templates and is a good starting point for beginners dipping their toes into a Vite + Svelte project. + +Should you later need the extended capabilities and extensibility provided by SvelteKit, the template has been structured similarly to SvelteKit so that it is easy to migrate. + +**Why `global.d.ts` instead of `compilerOptions.types` inside `jsconfig.json` or `tsconfig.json`?** + +Setting `compilerOptions.types` shuts out all other types not explicitly listed in the configuration. Using triple-slash references keeps the default TypeScript setting of accepting type information from the entire workspace, while also adding `svelte` and `vite/client` type information. + +**Why include `.vscode/extensions.json`?** + +Other templates indirectly recommend extensions via the README, but this file allows VS Code to prompt the user to install the recommended extension upon opening the project. + +**Why enable `allowJs` in the TS template?** + +While `allowJs: false` would indeed prevent the use of `.js` files in the project, it does not prevent the use of JavaScript syntax in `.svelte` files. In addition, it would force `checkJs: false`, bringing the worst of both worlds: not being able to guarantee the entire codebase is TypeScript, and also having worse typechecking for the existing JavaScript. In addition, there are valid use cases in which a mixed codebase may be relevant. + +**Why is HMR not preserving my local component state?** + +HMR state preservation comes with a number of gotchas! It has been disabled by default in both `svelte-hmr` and `@sveltejs/vite-plugin-svelte` due to its often surprising behavior. You can read the details [here](https://github.com/rixo/svelte-hmr#svelte-hmr). + +If you have state that's important to retain within a component, consider creating an external store which would not be replaced by HMR. + +```ts +// store.ts +// An extremely simple external store +import { writable } from 'svelte/store' +export default writable(0) +``` diff --git a/index.html b/index.html new file mode 100644 index 0000000..281ed41 --- /dev/null +++ b/index.html @@ -0,0 +1,19 @@ + + + + + + 1f349 Mail + + + + + + + + + +
+ + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..7363213 --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "mail.1f349.net", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "prettier:check:ci": "./node_modules/.bin/prettier --check .", + "format": "./node_modules/.bin/prettier --write .", + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "check": "svelte-check --tsconfig ./tsconfig.json" + }, + "devDependencies": { + "@sveltejs/vite-plugin-svelte": "^2.4.2", + "@tsconfig/svelte": "^5.0.0", + "@types/node": "^20.8.7", + "sass": "^1.69.5", + "svelte": "^4.0.5", + "svelte-check": "^3.4.6", + "tslib": "^2.6.0", + "typescript": "^5.0.2", + "vite": "^4.4.5" + } +} diff --git a/public/1f349.svg b/public/1f349.svg new file mode 100644 index 0000000..76f1b4a --- /dev/null +++ b/public/1f349.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/fonts/FiraCode-Regular.woff2 b/public/fonts/FiraCode-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f8b63fb0181781ce675391d1e6a3be35a039cb94 GIT binary patch literal 103240 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 z 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

HM~-)Hx23agblSwzv@2hfC51oc4!h!_9>VX! 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 + import type {SvelteComponent} from "svelte"; + import {loginStore, parseJwt, type LoginStore} from "./stores/login"; + import {openLoginPopup} from "./utils/login-popup"; + + +

+
+ {#if $loginStore == null} +
Please login to continue
+ {:else} + +
+
Warning: This is currently still under development
+
+ {/if} +
+ + diff --git a/src/app.scss b/src/app.scss new file mode 100644 index 0000000..3bad92b --- /dev/null +++ b/src/app.scss @@ -0,0 +1,67 @@ +$theme-text: rgba(255, 255, 255, 0.87); +$theme-bg: #242424; + +@media (prefers-color-scheme: light) { + $theme-text: #213547; + $theme-bg: #ffffff; +} + +:root { + font-family: Ubuntu, Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: normal; + font-weight: 400; + + color-scheme: light dark; + color: $theme-text; + background-color: $theme-bg; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +@font-face { + font-family: 'Ubuntu'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url('/fonts/Ubuntu.woff2') format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} + +@font-face { + font-family: 'Fira Code'; + font-style: normal; + font-weight: 400; + src: url('/fonts/FiraCode-Regular.woff2') format('woff2'); +} + +#app { + width: 100vw; + height: 100vh; + display: flex; + flex-direction: column; + align-content: stretch; +} + +a { + font-weight: 500; + color: tomato; + text-decoration: inherit; +} + +a:hover { + color: tomato; +} + +body { + margin: 0; +} + +code, +.code-font { + font-family: 'Fira Code', monospace; +} diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..50dff1a --- /dev/null +++ b/src/main.ts @@ -0,0 +1,8 @@ +import './app.scss' +import App from './App.svelte' + +const app = new App({ + target: document.getElementById('app'), +}) + +export default app diff --git a/src/stores/login.ts b/src/stores/login.ts new file mode 100644 index 0000000..182fba8 --- /dev/null +++ b/src/stores/login.ts @@ -0,0 +1,47 @@ +import {get, writable} from "svelte/store"; + +export interface LoginStore { + userinfo: { + email: string; + name: string; + sub: string; + picture: string; + }; + tokens: { + access: string; + refresh: string; + }; +} + +export const loginStore = writable( + (() => { + try { + return JSON.parse(localStorage.getItem("login-session") || ""); + } catch (_) { + return null; + } + })(), +); + +loginStore.subscribe(x => { + localStorage.setItem("login-session", JSON.stringify(x)); +}); + +export function getBearer() { + return "Bearer " + (get(loginStore) as LoginStore).tokens.access; +} + +export function parseJwt(token: string) { + const base64Url = token.split(".")[1]; + const base64 = base64Url.replace(/-/g, "+").replace(/_/g, "/"); + const jsonPayload = decodeURIComponent( + window + .atob(base64) + .split("") + .map(function (c) { + return "%" + ("00" + c.charCodeAt(0).toString(16)).slice(-2); + }) + .join(""), + ); + return JSON.parse(jsonPayload); +} diff --git a/src/utils/login-popup.ts b/src/utils/login-popup.ts new file mode 100644 index 0000000..79064f0 --- /dev/null +++ b/src/utils/login-popup.ts @@ -0,0 +1,53 @@ +import {loginStore} from "../stores/login"; + +let currentLoginPopup: {close: () => void} | null = null; + +const ssoOrigin = import.meta.env.VITE_SSO_ORIGIN; + +window.addEventListener("message", function (event) { + if (event.origin !== ssoOrigin) return; + if (isObject(event.data)) { + loginStore.set(event.data); + if (currentLoginPopup) currentLoginPopup.close(); + return; + } + alert("Failed to log user in: the login data was probably corrupted"); +}); + +function isObject(obj: Object) { + return obj != null && obj.constructor.name === "Object"; +} + +function popupCenterScreen(url: string, title: string, w: number, h: number, focus: boolean) { + const top = (screen.availHeight - h) / 4, + left = (screen.availWidth - w) / 2; + const popup = openWindow(url, title, `scrollbars=yes,width=${w},height=${h},top=${top},left=${left}`); + if (focus === true && window.focus !== undefined && popup !== null) popup.focus(); + return popup; +} + +function openWindow(url: string | URL, winnm: string, options: string): Window | null { + var wTop = firstAvailableValue([window.screen.availTop, window.screenY, window.screenTop, 0]); + var wLeft = firstAvailableValue([window.screen.availLeft, window.screenX, window.screenLeft, 0]); + let w: Window | null; + var top = 0, + left = 0; + var result; + if ((result = /top=(\d+)/g.exec(options))) top = parseInt(result[1]); + if ((result = /left=(\d+)/g.exec(options))) left = parseInt(result[1]); + if (options) { + options = options.replace("top=" + top, "top=" + (top + wTop)); + options = options.replace("left=" + left, "left=" + (left + wLeft)); + w = window.open(url, winnm, options); + } else w = window.open(url, winnm); + return w; +} + +function firstAvailableValue(arr: any) { + for (var i = 0; i < arr.length; i++) if (typeof arr[i] != "undefined") return arr[i]; +} + +export function openLoginPopup() { + if (currentLoginPopup) currentLoginPopup.close(); + currentLoginPopup = popupCenterScreen(ssoOrigin + "/popup?origin=" + encodeURIComponent(location.origin), "Login with 1f349 SSO", 500, 500, false); +} diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 0000000..d9ca7f2 --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1,11 @@ +/// +/// + +interface ImportMetaEnv { + VITE_SSO_ORIGIN: string; + VITE_API_LOTUS: string; +} + +interface ImportMeta { + readonly env: ImportMetaEnv; +} diff --git a/svelte.config.js b/svelte.config.js new file mode 100644 index 0000000..b0683fd --- /dev/null +++ b/svelte.config.js @@ -0,0 +1,7 @@ +import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' + +export default { + // Consult https://svelte.dev/docs#compile-time-svelte-preprocess + // for more information about preprocessors + preprocess: vitePreprocess(), +} diff --git a/test-server/go.mod b/test-server/go.mod new file mode 100644 index 0000000..d96580e --- /dev/null +++ b/test-server/go.mod @@ -0,0 +1,16 @@ +module test_server + +go 1.21.3 + +require ( + github.com/1f349/mjwt v0.2.0 + github.com/golang-jwt/jwt/v4 v4.5.0 + github.com/google/uuid v1.4.0 + github.com/rs/cors v1.10.1 +) + +require ( + github.com/becheran/wildmatch-go v1.0.0 // indirect + github.com/pkg/errors v0.9.1 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) diff --git a/test-server/go.sum b/test-server/go.sum new file mode 100644 index 0000000..b1f2f87 --- /dev/null +++ b/test-server/go.sum @@ -0,0 +1,22 @@ +github.com/1f349/mjwt v0.2.0 h1:1c3+J05RRBsClGxA91SzT3I2DkwasGA4OgLcIeXWmq4= +github.com/1f349/mjwt v0.2.0/go.mod h1:KEs6jd9JjWrQW+8feP2pGAU7pdA3aYTqjkT/YQr73PU= +github.com/becheran/wildmatch-go v1.0.0 h1:mE3dGGkTmpKtT4Z+88t8RStG40yN9T+kFEGj2PZFSzA= +github.com/becheran/wildmatch-go v1.0.0/go.mod h1:gbMvj0NtVdJ15Mg/mH9uxk2R1QCistMyU7d9KFzroX4= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= +github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rs/cors v1.10.1 h1:L0uuZVXIKlI1SShY2nhFfo44TYvDPQ1w4oFkUJNfhyo= +github.com/rs/cors v1.10.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/test-server/main.go b/test-server/main.go new file mode 100644 index 0000000..4b56ff2 --- /dev/null +++ b/test-server/main.go @@ -0,0 +1,154 @@ +package main + +import ( + "crypto/rand" + "encoding/json" + "fmt" + "log" + "net/http" + "strings" + "time" + + "github.com/1f349/mjwt" + "github.com/1f349/mjwt/auth" + "github.com/1f349/mjwt/claims" + "github.com/golang-jwt/jwt/v4" + "github.com/google/uuid" + "github.com/rs/cors" +) + +func main() { + log.Println("Starting test server") + signer, err := mjwt.NewMJwtSignerFromFileOrCreate("Test SSO Service", "private.key.local", rand.Reader, 2048) + if err != nil { + log.Fatal(err) + } + + go ssoServer(signer) + go apiServer(signer) + done := make(chan struct{}) + <-done +} + +func ssoServer(signer mjwt.Signer) { + r := http.NewServeMux() + r.HandleFunc("/popup", func(w http.ResponseWriter, r *http.Request) { + ps := claims.NewPermStorage() + ps.Set("mail-client") + accessToken, err := signer.GenerateJwt("81b99bd7-bf74-4cc2-9133-80ed2393dfe6", uuid.NewString(), jwt.ClaimStrings{"d0555671-df9d-42d0-a4d6-94b694251f0b"}, 15*time.Minute, auth.AccessTokenClaims{ + Perms: ps, + }) + if err != nil { + http.Error(w, "Failed to generate access token", http.StatusInternalServerError) + return + } + w.WriteHeader(http.StatusOK) + fmt.Fprintf(w, ` + + + Test SSO Service + + + +
+

Test SSO Service

+
+
Loading...
+ + +`, accessToken, "") + }) + log.Println("[SSO Server]", http.ListenAndServe(":9090", r)) +} + +var serveApiCors = cors.New(cors.Options{ + AllowedOrigins: []string{"*"}, // allow all origins for api requests + AllowedHeaders: []string{"Content-Type", "Authorization"}, + AllowedMethods: []string{ + http.MethodGet, + http.MethodHead, + http.MethodPost, + http.MethodPut, + http.MethodPatch, + http.MethodDelete, + http.MethodConnect, + }, + AllowCredentials: true, +}) + +func apiServer(verify mjwt.Verifier) { + r := http.NewServeMux() + r.Handle("/v1/lotus", hasPerm(verify, "mail-client", func(rw http.ResponseWriter, req *http.Request) { + m := make([]map[string]any, 0, 40) + for i := 0; i < 20; i++ { + m = append(m, map[string]any{ + "src": uuid.NewString() + ".example.com", + "dst": "127.0.0.1:8080", + "desc": "This is a test description", + "flags": 181, + "active": true, + }) + } + for i := 0; i < 20; i++ { + m = append(m, map[string]any{ + "src": uuid.NewString() + ".example.org", + "dst": "127.0.0.1:8085", + "desc": "This is a test description", + "flags": 17, + "active": true, + }) + } + json.NewEncoder(rw).Encode(m) + })) + + logger := http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) { + log.Println("[API Server]", req.URL.String()) + r.ServeHTTP(rw, req) + }) + http.ListenAndServe(":9095", serveApiCors.Handler(logger)) + log.Println("[API Server]", http.ListenAndServe(":9090", r)) +} + +func hasPerm(verify mjwt.Verifier, perm string, next func(rw http.ResponseWriter, req *http.Request)) http.Handler { + return http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) { + a := req.Header.Get("Authorization") + if !strings.HasPrefix(a, "Bearer ") { + http.Error(rw, "Missing bearer authorization", http.StatusForbidden) + return + } + _, b, err := mjwt.ExtractClaims[auth.AccessTokenClaims](verify, a[len("Bearer "):]) + if err != nil { + http.Error(rw, "Invalid token", http.StatusForbidden) + log.Println("Invalid token:", err) + return + } + if !b.Claims.Perms.Has(perm) { + http.Error(rw, "Missing permission", http.StatusForbidden) + return + } + next(rw, req) + }) +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..b30a9c5 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "@tsconfig/svelte/tsconfig.json", + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "module": "ESNext", + "resolveJsonModule": true, + /** + * Typecheck JS in `.svelte` and `.js` files by default. + * Disable checkJs if you'd like to use dynamic types in JS. + * Note that setting allowJs false does not prevent the use + * of JS in `.svelte` files. + */ + "allowJs": true, + "checkJs": true, + "isolatedModules": true + }, + "include": ["src/**/*.d.ts", "src/**/*.ts", "src/**/*.js", "src/**/*.svelte"], + "references": [{"path": "./tsconfig.node.json"}] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..494bfe0 --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler" + }, + "include": ["vite.config.ts"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..4157534 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,7 @@ +import {defineConfig} from "vite"; +import {svelte} from "@sveltejs/vite-plugin-svelte"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [svelte()], +}); diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..5bad0d5 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,811 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@esbuild/android-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" + integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== + +"@esbuild/android-arm@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" + integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== + +"@esbuild/android-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" + integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== + +"@esbuild/darwin-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" + integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== + +"@esbuild/darwin-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" + integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== + +"@esbuild/freebsd-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" + integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== + +"@esbuild/freebsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" + integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== + +"@esbuild/linux-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" + integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== + +"@esbuild/linux-arm@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" + integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== + +"@esbuild/linux-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" + integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== + +"@esbuild/linux-loong64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" + integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== + +"@esbuild/linux-mips64el@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" + integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== + +"@esbuild/linux-ppc64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" + integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== + +"@esbuild/linux-riscv64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" + integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== + +"@esbuild/linux-s390x@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" + integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== + +"@esbuild/linux-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" + integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== + +"@esbuild/netbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" + integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== + +"@esbuild/openbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" + integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== + +"@esbuild/sunos-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" + integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== + +"@esbuild/win32-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" + integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== + +"@esbuild/win32-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" + integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== + +"@esbuild/win32-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" + integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== + +"@jridgewell/gen-mapping@^0.3.0": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.20" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" + integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@sveltejs/vite-plugin-svelte-inspector@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-1.0.4.tgz#c99fcb73aaa845a3e2c0563409aeb3ee0b863add" + integrity sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ== + dependencies: + debug "^4.3.4" + +"@sveltejs/vite-plugin-svelte@^2.4.2": + version "2.4.6" + resolved "https://registry.yarnpkg.com/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.4.6.tgz#ea6844d8a5c58aef718b931fb42e7e668e7f11b7" + integrity sha512-zO79p0+DZnXPnF0ltIigWDx/ux7Ni+HRaFOw720Qeivc1azFUrJxTl0OryXVibYNx1hCboGia1NRV3x8RNv4cA== + 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" + +"@tsconfig/svelte@^5.0.0": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@tsconfig/svelte/-/svelte-5.0.2.tgz#c9ed3575c5445afb14965bb76e8446fbf7e4a0e6" + integrity sha512-BRbo1fOtyVbhfLyuCWw6wAWp+U8UQle+ZXu84MYYWzYSEB28dyfnRBIE99eoG+qdAC0po6L2ScIEivcT07UaMA== + +"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.1": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.3.tgz#2be19e759a3dd18c79f9f436bd7363556c1a73dd" + integrity sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ== + +"@types/node@^20.8.7": + version "20.8.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.8.9.tgz#646390b4fab269abce59c308fc286dcd818a2b08" + integrity sha512-UzykFsT3FhHb1h7yD4CA4YhBHq545JC0YnEz41xkipN88eKQtL6rSgocL5tbAP6Ola9Izm/Aw4Ora8He4x0BHg== + dependencies: + undici-types "~5.26.4" + +"@types/pug@^2.0.6": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@types/pug/-/pug-2.0.8.tgz#1a85ecb760f7472d9ec3bab19bfe17454c69499d" + integrity sha512-QzhsZ1dMGyJbn/D9V80zp4GIA4J4rfAjCCxc3MP+new0E8dyVdSkR735Lx+n3LIaHNFcjHL5+TbziccuT+fdoQ== + +acorn@^8.10.0, acorn@^8.9.0: + version "8.11.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" + integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +aria-query@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" + +axobject-query@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" + integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg== + dependencies: + dequal "^2.0.3" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +buffer-crc32@^0.2.5: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.1: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +code-red@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/code-red/-/code-red-1.0.4.tgz#59ba5c9d1d320a4ef795bc10a28bd42bfebe3e35" + integrity sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw== + 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" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +css-tree@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + +debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +deepmerge@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +dequal@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +detect-indent@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" + integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== + +es6-promise@^3.1.2: + version "3.3.1" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" + integrity sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg== + +esbuild@^0.18.10: + version "0.18.20" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" + integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== + 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" + +estree-walker@^3.0.0, estree-walker@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== + dependencies: + "@types/estree" "^1.0.0" + +fast-glob@^3.2.7: + version "3.3.1" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" + integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + dependencies: + reusify "^1.0.4" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + 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" + +graceful-fs@^4.1.3: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +immutable@^4.0.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.4.tgz#2e07b33837b4bb7662f288c244d1ced1ef65a78f" + integrity sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA== + +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-reference@^3.0.0, is-reference@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-3.0.2.tgz#154747a01f45cd962404ee89d43837af2cba247c" + integrity sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg== + dependencies: + "@types/estree" "*" + +kleur@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== + +locate-character@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-character/-/locate-character-3.0.0.tgz#0305c5b8744f61028ef5d01f444009e00779f974" + integrity sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA== + +magic-string@^0.27.0: + version "0.27.0" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3" + integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.13" + +magic-string@^0.30.3, magic-string@^0.30.4: + version "0.30.5" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" + integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +mkdirp@^0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +nanoid@^3.3.6: + version "3.3.6" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +periscopic@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/periscopic/-/periscopic-3.1.0.tgz#7e9037bf51c5855bd33b48928828db4afa79d97a" + integrity sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^3.0.0" + is-reference "^3.0.0" + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +postcss@^8.4.27: + version "8.4.31" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" + integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^2.5.2: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rollup@^3.27.1: + version "3.29.4" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" + integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== + optionalDependencies: + fsevents "~2.3.2" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +sade@^1.7.4: + version "1.8.1" + resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" + integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== + dependencies: + mri "^1.1.0" + +sander@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/sander/-/sander-0.5.1.tgz#741e245e231f07cafb6fdf0f133adfa216a502ad" + integrity sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA== + dependencies: + es6-promise "^3.1.2" + graceful-fs "^4.1.3" + mkdirp "^0.5.1" + rimraf "^2.5.2" + +sass@^1.69.5: + version "1.69.5" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.69.5.tgz#23e18d1c757a35f2e52cc81871060b9ad653dfde" + integrity sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" + +sorcery@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/sorcery/-/sorcery-0.11.0.tgz#310c80ee993433854bb55bb9aa4003acd147fca8" + integrity sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.14" + buffer-crc32 "^0.2.5" + minimist "^1.2.0" + sander "^0.5.0" + +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +svelte-check@^3.4.6: + version "3.5.2" + resolved "https://registry.yarnpkg.com/svelte-check/-/svelte-check-3.5.2.tgz#d6e650996afbe80f5e5b9b02d3fb9489f7d6fb8a" + integrity sha512-5a/YWbiH4c+AqAUP+0VneiV5bP8YOk9JL3jwvN+k2PEPLgpu85bjQc5eE67+eIZBBwUEJzmO3I92OqKcqbp3fw== + dependencies: + "@jridgewell/trace-mapping" "^0.3.17" + chokidar "^3.4.1" + fast-glob "^3.2.7" + import-fresh "^3.2.1" + picocolors "^1.0.0" + sade "^1.7.4" + svelte-preprocess "^5.0.4" + typescript "^5.0.3" + +svelte-hmr@^0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/svelte-hmr/-/svelte-hmr-0.15.3.tgz#df54ccde9be3f091bf5f18fc4ef7b8eb6405fbe6" + integrity sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ== + +svelte-preprocess@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/svelte-preprocess/-/svelte-preprocess-5.0.4.tgz#2123898e079a074f7f4ef1799e10e037f5bcc55b" + integrity sha512-ABia2QegosxOGsVlsSBJvoWeXy1wUKSfF7SWJdTjLAbx/Y3SrVevvvbFNQqrSJw89+lNSsM58SipmZJ5SRi5iw== + dependencies: + "@types/pug" "^2.0.6" + detect-indent "^6.1.0" + magic-string "^0.27.0" + sorcery "^0.11.0" + strip-indent "^3.0.0" + +svelte@^4.0.5: + version "4.2.2" + resolved "https://registry.yarnpkg.com/svelte/-/svelte-4.2.2.tgz#07d42eefc1bce46e48d2056c5f11dc4cc1e06555" + integrity sha512-My2tytF2e2NnHSpn2M7/3VdXT4JdTglYVUuSuK/mXL2XtulPYbeBfl8Dm1QiaKRn0zoULRnL+EtfZHHP0k4H3A== + 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.4" + periscopic "^3.1.0" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tslib@^2.6.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +typescript@^5.0.2, typescript@^5.0.3: + version "5.2.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" + integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +vite@^4.4.5: + version "4.5.0" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.0.tgz#ec406295b4167ac3bc23e26f9c8ff559287cff26" + integrity sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw== + dependencies: + esbuild "^0.18.10" + postcss "^8.4.27" + rollup "^3.27.1" + optionalDependencies: + fsevents "~2.3.2" + +vitefu@^0.2.4: + version "0.2.5" + resolved "https://registry.yarnpkg.com/vitefu/-/vitefu-0.2.5.tgz#c1b93c377fbdd3e5ddd69840ea3aa70b40d90969" + integrity sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q== + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
+
+

🍉 Mail

+
+
+ + {#if $loginStore == null} + + {:else} +
+ {$loginStore.userinfo.name}'s profile picture +
{$loginStore.userinfo.name}
+ +
+ {/if} +