├── .eslintignore ├── .eslintrc.cjs ├── .gitignore ├── .npmrc ├── .prettierignore ├── .prettierrc ├── LICENSE.md ├── README.md ├── package-lock.json ├── package.json ├── pocketbase ├── .gitignore └── pb_schema.json ├── src ├── app.html ├── hooks.server.js ├── lib │ └── utils.js └── routes │ ├── +error.svelte │ ├── +layout.server.js │ ├── +layout.svelte │ ├── +page.server.js │ ├── +page.svelte │ ├── [slug] │ └── +page.server.js │ ├── generated │ └── [slug] │ │ └── +page.svelte │ └── login │ ├── +page.server.js │ └── +page.svelte ├── static ├── assets │ ├── pocketbase.svg │ ├── svelte.svg │ └── wavesBg.webp └── favicon.png ├── svelte.config.js └── vite.config.js /.eslintignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /build 4 | /.svelte-kit 5 | /package 6 | .env 7 | .env.* 8 | !.env.example 9 | 10 | # Ignore files for PNPM, NPM and YARN 11 | pnpm-lock.yaml 12 | package-lock.json 13 | yarn.lock 14 | -------------------------------------------------------------------------------- /.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | extends: ['eslint:recommended', 'prettier'], 4 | plugins: ['svelte3'], 5 | overrides: [{ files: ['*.svelte'], processor: 'svelte3/svelte3' }], 6 | parserOptions: { 7 | sourceType: 'module', 8 | ecmaVersion: 2020 9 | }, 10 | env: { 11 | browser: true, 12 | es2017: true, 13 | node: true 14 | } 15 | }; 16 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # dotenv environment variable files 2 | .env 3 | .env.* 4 | !.env.example 5 | .env.development.local 6 | .env.test.local 7 | .env.production.local 8 | .env.local 9 | 10 | # SvelteKit build / generate output 11 | /.svelte-kit 12 | /package 13 | /build 14 | 15 | # Dependency directories 16 | node_modules 17 | 18 | # Optional npm cache directory 19 | .npm 20 | 21 | # Optional eslint cache 22 | .eslintcache 23 | 24 | # DS_Store 25 | .DS_Store 26 | 27 | # VS Code 28 | .vscode -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | engine-strict=true 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /build 4 | /.svelte-kit 5 | /package 6 | .env 7 | .env.* 8 | !.env.example 9 | 10 | # Ignore files for PNPM, NPM and YARN 11 | pnpm-lock.yaml 12 | package-lock.json 13 | yarn.lock 14 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "useTabs": true, 3 | "singleQuote": true, 4 | "trailingComma": "none", 5 | "printWidth": 100, 6 | "plugins": ["prettier-plugin-svelte"], 7 | "pluginSearchDirs": ["."], 8 | "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] 9 | } 10 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Germán Heim 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | Logo 4 | 5 | 6 |

Svelte Shortener

7 | 8 |

9 | An open-source URL Shortener written in SvelteKit with PocketBase 10 |
11 | Report Bug 12 | · 13 | Request Feature 14 |

15 |
16 |

Work in progress

17 |
18 | 19 | ### Table of Contents 20 |
    21 |
  1. 22 | Demo 23 |
  2. 24 |
  3. 25 | Tech Stack 26 |
  4. 27 |
  5. 28 | Deployment 29 | 34 |
  6. 35 |
  7. PocketBase Schema
  8. 36 |
  9. Run Locally
  10. 37 |
  11. Contributing
  12. 38 |
  13. License
  14. 39 |
  15. Acknowledgments
  16. 40 |
41 | 42 | 43 | ## Demo 44 | ![Demo GIF](https://media1.giphy.com/media/t4PxHCFR2A6b0hw9Wo/giphy.gif?cid=790b76114c582f0c52f3f1f4e2a6b1b85f591f426542a013&rid=giphy.gif&ct=g) 45 | 46 | [Live demo](https://demo-svelte-shortener.vercel.app/) 47 | 48 | * Email: test@user.com 49 | * Password: testuser123 50 | 51 | ## Tech Stack 52 | * [SvelteKit](https://kit.svelte.dev/) 53 | * [PocketBase](https://pocketbase.io) 54 | 55 | Also uses [svelte-french-toast](https://svelte-french-toast.com/) and [svelte-icons-pack](https://leshak.github.io/svelte-icons-pack/). 56 | 57 | ## Deployment 58 | ### Prerequisites 59 | To setup your own instance of Svelte Shortener you will need a PocketBase deployment. If you don't already have one, consider hosting in [Fly.io](https://fly.io) (see [Host for free in Fly.io](https://github.com/pocketbase/pocketbase/discussions/537)) or [PocketHost](https://pockethost.io/). 60 | 61 | To configure your PocketBase, you will need to import the [schema](/pocketbase/pb_schema.json) by going to your PocketBase instance, and clicking on `Import collections` inside settings. After this, you will need to create a new verified user. This will be the user you will use to authenticate yourself. 62 | 63 | ### Deploy 64 | After getting your database set up, you will need to deploy the actual WebApp. You can do this by clicking the button below, and filling in the required environment variable (your PocketBase URL): 65 | 66 | [![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FGermanHeim%2Fsvelte-shortener&env=POCKETBASE_URL&envDescription=Set%20your%20PocketBase%20URL%20(without%20%2F_%2F%20or%20%2Fapi%2F)) 67 | 68 | You can also deploy it manually by cloning the repo and running `npm run build` and `npm run preview` (or `npm run start`). 69 | 70 | ## Run Locally 71 | 72 | To run Svelte Shortener locally, you will need to clone the repo and install the dependencies: 73 | 74 | ```bash 75 | # Clone the project 76 | git clone https://github.com/GermanHeim/svelte-shortener 77 | 78 | # Go to the project directory 79 | cd svelte-shortener 80 | 81 | # Install dependencies 82 | npm install 83 | ``` 84 | 85 | After this, you will need to run the PocketBase instance. To do so, you will need to donwload the executable from [here](https://pocketbase.io/) and move it to the `pocketbase` directory. 86 | You can now run `./pocketbase serve` inside the pocketbase directory. This will start a PocketBase instance in `127.0.0.1:8090`. 87 | 88 | Import the [schema](/pocketbase/pb_schema.json) by going to your PocketBase instance, and clicking on `Import collections` inside settings. After this, you will need to create a new verified user. This will be the user you will use to authenticate yourself. 89 | 90 | Create an `.env` file in the root directory of the project, and add the following variable: 91 | * `POCKETBASE_URL` - The URL of your PocketBase instance (without `/_/` or `/api/`) 92 | 93 | Now go to the root directory of the project and run `npm run dev`. This will start the SvelteKit instance. 94 | 95 | ## PocketBase Schema 96 | 97 | The PocketBase schema is located in the [pocketbase](/pocketbase) folder. You can import it by going to your PocketBase instance, and clicking on `Import collections` inside settings. 98 | 99 | It consists of the following collections: 100 | * `users` - Stores the users that are used for authentication 101 | * `links` - Stores the links that are shortened, including the slug to be used and the original URL 102 | 103 | The slug field inside the `links` collection is a unique index, so you can't have two links with the same slug. Also, only users that are verified can create links, to avoid anyone else to create links. 104 | 105 | ## Contributing 106 | 107 | Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated. 108 | 109 | If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". 110 | 111 | 1. Fork the Project 112 | 2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`) 113 | 3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`) 114 | 4. Push to the Branch (`git push origin feature/AmazingFeature`) 115 | 5. Open a Pull Request 116 | 117 | ## License 118 | 119 | Distributed under the MIT License. See [`LICENSE.md`](/LICENSE.md) for more information. 120 | 121 | ## Acknowledgments 122 | 123 | The UI is highly inspired on PocketBase.
124 | The logo was made from the PocketBase's logo, using Feather's link icon. 125 | The background that is used was made by [rawpixel.com](https://rawpixel.com) and it was downloaded from [Freepik](https://www.freepik.com/free-vector/monochrome-abstract-contour-line-illustration_3841780.htm#query=topography&position=10&from_view=keyword). 126 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "svelte-shortener", 3 | "version": "0.0.1", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "svelte-shortener", 9 | "version": "0.0.1", 10 | "dependencies": { 11 | "pocketbase": "^0.9.1", 12 | "svelte-french-toast": "^1.0.3", 13 | "svelte-icons-pack": "^2.0.0" 14 | }, 15 | "devDependencies": { 16 | "@sveltejs/adapter-auto": "^1.0.0", 17 | "@sveltejs/kit": "^1.0.0", 18 | "eslint": "^8.28.0", 19 | "eslint-config-prettier": "^8.5.0", 20 | "eslint-plugin-svelte3": "^4.0.0", 21 | "prettier": "^2.8.0", 22 | "prettier-plugin-svelte": "^2.8.1", 23 | "svelte": "^3.54.0", 24 | "vite": "^4.0.0" 25 | } 26 | }, 27 | "node_modules/@esbuild/android-arm": { 28 | "version": "0.16.14", 29 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.14.tgz", 30 | "integrity": "sha512-u0rITLxFIeYAvtJXBQNhNuV4YZe+MD1YvIWT7Nicj8hZAtRVZk2PgNH6KclcKDVHz1ChLKXRfX7d7tkbQBUfrg==", 31 | "cpu": [ 32 | "arm" 33 | ], 34 | "dev": true, 35 | "optional": true, 36 | "os": [ 37 | "android" 38 | ], 39 | "engines": { 40 | "node": ">=12" 41 | } 42 | }, 43 | "node_modules/@esbuild/android-arm64": { 44 | "version": "0.16.14", 45 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.14.tgz", 46 | "integrity": "sha512-hTqB6Iq13pW4xaydeqQrs8vPntUnMjbkq+PgGiBMi69eYk74naG2ftHWqKnxn874kNrt5Or3rQ0PJutx2doJuQ==", 47 | "cpu": [ 48 | "arm64" 49 | ], 50 | "dev": true, 51 | "optional": true, 52 | "os": [ 53 | "android" 54 | ], 55 | "engines": { 56 | "node": ">=12" 57 | } 58 | }, 59 | "node_modules/@esbuild/android-x64": { 60 | "version": "0.16.14", 61 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.14.tgz", 62 | "integrity": "sha512-jir51K4J0K5Rt0KOcippjSNdOl7akKDVz5I6yrqdk4/m9y+rldGptQUF7qU4YpX8U61LtR+w2Tu2Ph+K/UaJOw==", 63 | "cpu": [ 64 | "x64" 65 | ], 66 | "dev": true, 67 | "optional": true, 68 | "os": [ 69 | "android" 70 | ], 71 | "engines": { 72 | "node": ">=12" 73 | } 74 | }, 75 | "node_modules/@esbuild/darwin-arm64": { 76 | "version": "0.16.14", 77 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.14.tgz", 78 | "integrity": "sha512-vrlaP81IuwPaw1fyX8fHCmivP3Gr73ojVEZy+oWJLAiZVcG8o8Phwun/XDnYIFUHxIoUnMFEpg9o38MIvlw8zw==", 79 | "cpu": [ 80 | "arm64" 81 | ], 82 | "dev": true, 83 | "optional": true, 84 | "os": [ 85 | "darwin" 86 | ], 87 | "engines": { 88 | "node": ">=12" 89 | } 90 | }, 91 | "node_modules/@esbuild/darwin-x64": { 92 | "version": "0.16.14", 93 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.14.tgz", 94 | "integrity": "sha512-KV1E01eC2hGYA2qzFDRCK4wdZCRUvMwCNcobgpiiOzp5QXpJBqFPdxI69j8vvzuU7oxFXDgANwEkXvpeQqyOyg==", 95 | "cpu": [ 96 | "x64" 97 | ], 98 | "dev": true, 99 | "optional": true, 100 | "os": [ 101 | "darwin" 102 | ], 103 | "engines": { 104 | "node": ">=12" 105 | } 106 | }, 107 | "node_modules/@esbuild/freebsd-arm64": { 108 | "version": "0.16.14", 109 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.14.tgz", 110 | "integrity": "sha512-xRM1RQsazSvL42BNa5XC7ytD4ZDp0ZyJcH7aB0SlYUcHexJUKiDNKR7dlRVlpt6W0DvoRPU2nWK/9/QWS4u2fw==", 111 | "cpu": [ 112 | "arm64" 113 | ], 114 | "dev": true, 115 | "optional": true, 116 | "os": [ 117 | "freebsd" 118 | ], 119 | "engines": { 120 | "node": ">=12" 121 | } 122 | }, 123 | "node_modules/@esbuild/freebsd-x64": { 124 | "version": "0.16.14", 125 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.14.tgz", 126 | "integrity": "sha512-7ALTAn6YRRf1O6fw9jmn0rWmOx3XfwDo7njGtjy1LXhDGUjTY/vohEPM3ii5MQ411vJv1r498EEx2aBQTJcrEw==", 127 | "cpu": [ 128 | "x64" 129 | ], 130 | "dev": true, 131 | "optional": true, 132 | "os": [ 133 | "freebsd" 134 | ], 135 | "engines": { 136 | "node": ">=12" 137 | } 138 | }, 139 | "node_modules/@esbuild/linux-arm": { 140 | "version": "0.16.14", 141 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.14.tgz", 142 | "integrity": "sha512-X6xULug66ulrr4IzrW7qq+eq9n4MtEyagdWvj4o4cmWr+JXOT47atjpDF9j5M2zHY0UQBmqnHhwl+tXpkpIb2w==", 143 | "cpu": [ 144 | "arm" 145 | ], 146 | "dev": true, 147 | "optional": true, 148 | "os": [ 149 | "linux" 150 | ], 151 | "engines": { 152 | "node": ">=12" 153 | } 154 | }, 155 | "node_modules/@esbuild/linux-arm64": { 156 | "version": "0.16.14", 157 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.14.tgz", 158 | "integrity": "sha512-TLh2OcbBUQcMYRH4GbiDkDZfZ4t1A3GgmeXY27dHSI6xrU7IkO00MGBiJySmEV6sH3Wa6pAN6UtaVL0DwkGW4Q==", 159 | "cpu": [ 160 | "arm64" 161 | ], 162 | "dev": true, 163 | "optional": true, 164 | "os": [ 165 | "linux" 166 | ], 167 | "engines": { 168 | "node": ">=12" 169 | } 170 | }, 171 | "node_modules/@esbuild/linux-ia32": { 172 | "version": "0.16.14", 173 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.14.tgz", 174 | "integrity": "sha512-oBZkcZ56UZDFCAfE3Fd/Jgy10EoS7Td77NzNGenM+HSY8BkdQAcI9VF9qgwdOLZ+tuftWD7UqZ26SAhtvA3XhA==", 175 | "cpu": [ 176 | "ia32" 177 | ], 178 | "dev": true, 179 | "optional": true, 180 | "os": [ 181 | "linux" 182 | ], 183 | "engines": { 184 | "node": ">=12" 185 | } 186 | }, 187 | "node_modules/@esbuild/linux-loong64": { 188 | "version": "0.16.14", 189 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.14.tgz", 190 | "integrity": "sha512-udz/aEHTcuHP+xdWOJmZ5C9RQXHfZd/EhCnTi1Hfay37zH3lBxn/fNs85LA9HlsniFw2zccgcbrrTMKk7Cn1Qg==", 191 | "cpu": [ 192 | "loong64" 193 | ], 194 | "dev": true, 195 | "optional": true, 196 | "os": [ 197 | "linux" 198 | ], 199 | "engines": { 200 | "node": ">=12" 201 | } 202 | }, 203 | "node_modules/@esbuild/linux-mips64el": { 204 | "version": "0.16.14", 205 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.14.tgz", 206 | "integrity": "sha512-kJ2iEnikUOdC1SiTGbH0fJUgpZwa0ITDTvj9EHf9lm3I0hZ4Yugsb3M6XSl696jVxrEocLe519/8CbSpQWFSrg==", 207 | "cpu": [ 208 | "mips64el" 209 | ], 210 | "dev": true, 211 | "optional": true, 212 | "os": [ 213 | "linux" 214 | ], 215 | "engines": { 216 | "node": ">=12" 217 | } 218 | }, 219 | "node_modules/@esbuild/linux-ppc64": { 220 | "version": "0.16.14", 221 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.14.tgz", 222 | "integrity": "sha512-kclKxvZvX5YhykwlJ/K9ljiY4THe5vXubXpWmr7q3Zu3WxKnUe1VOZmhkEZlqtnJx31GHPEV4SIG95IqTdfgfg==", 223 | "cpu": [ 224 | "ppc64" 225 | ], 226 | "dev": true, 227 | "optional": true, 228 | "os": [ 229 | "linux" 230 | ], 231 | "engines": { 232 | "node": ">=12" 233 | } 234 | }, 235 | "node_modules/@esbuild/linux-riscv64": { 236 | "version": "0.16.14", 237 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.14.tgz", 238 | "integrity": "sha512-fdwP9Dc+Kx/cZwp9T9kNqjAE/PQjfrxbio4rZ3XnC3cVvZBjuxpkiyu/tuCwt6SbAK5th6AYNjFdEV9kGC020A==", 239 | "cpu": [ 240 | "riscv64" 241 | ], 242 | "dev": true, 243 | "optional": true, 244 | "os": [ 245 | "linux" 246 | ], 247 | "engines": { 248 | "node": ">=12" 249 | } 250 | }, 251 | "node_modules/@esbuild/linux-s390x": { 252 | "version": "0.16.14", 253 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.14.tgz", 254 | "integrity": "sha512-++fw3P4fQk9nqvdzbANRqimKspL8pDCnSpXomyhV7V/ISha/BZIYvZwLBWVKp9CVWKwWPJ4ktsezuLIvlJRHqA==", 255 | "cpu": [ 256 | "s390x" 257 | ], 258 | "dev": true, 259 | "optional": true, 260 | "os": [ 261 | "linux" 262 | ], 263 | "engines": { 264 | "node": ">=12" 265 | } 266 | }, 267 | "node_modules/@esbuild/linux-x64": { 268 | "version": "0.16.14", 269 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.14.tgz", 270 | "integrity": "sha512-TomtswAuzBf2NnddlrS4W01Tv85RM9YtATB3OugY6On0PLM4Ksz5qvQKVAjtzPKoLgL1FiZtfc8mkZc4IgoMEA==", 271 | "cpu": [ 272 | "x64" 273 | ], 274 | "dev": true, 275 | "optional": true, 276 | "os": [ 277 | "linux" 278 | ], 279 | "engines": { 280 | "node": ">=12" 281 | } 282 | }, 283 | "node_modules/@esbuild/netbsd-x64": { 284 | "version": "0.16.14", 285 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.14.tgz", 286 | "integrity": "sha512-U06pfx8P5CqyoPNfqIJmnf+5/r4mJ1S62G4zE6eOjS59naQcxi6GnscUCPH3b+hRG0qdKoGX49RAyiqW+M9aSw==", 287 | "cpu": [ 288 | "x64" 289 | ], 290 | "dev": true, 291 | "optional": true, 292 | "os": [ 293 | "netbsd" 294 | ], 295 | "engines": { 296 | "node": ">=12" 297 | } 298 | }, 299 | "node_modules/@esbuild/openbsd-x64": { 300 | "version": "0.16.14", 301 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.14.tgz", 302 | "integrity": "sha512-/Jl8XVaWEZNu9rZw+n792GIBupQwHo6GDoapHSb/2xp/Ku28eK6QpR2O9cPBkzHH4OOoMH0LB6zg/qczJ5TTGg==", 303 | "cpu": [ 304 | "x64" 305 | ], 306 | "dev": true, 307 | "optional": true, 308 | "os": [ 309 | "openbsd" 310 | ], 311 | "engines": { 312 | "node": ">=12" 313 | } 314 | }, 315 | "node_modules/@esbuild/sunos-x64": { 316 | "version": "0.16.14", 317 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.14.tgz", 318 | "integrity": "sha512-2iI7D34uTbDn/TaSiUbEHz+fUa8KbN90vX5yYqo12QGpu6T8Jl+kxODsWuMCwoTVlqUpwfPV22nBbFPME9OPtw==", 319 | "cpu": [ 320 | "x64" 321 | ], 322 | "dev": true, 323 | "optional": true, 324 | "os": [ 325 | "sunos" 326 | ], 327 | "engines": { 328 | "node": ">=12" 329 | } 330 | }, 331 | "node_modules/@esbuild/win32-arm64": { 332 | "version": "0.16.14", 333 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.14.tgz", 334 | "integrity": "sha512-SjlM7AHmQVTiGBJE/nqauY1aDh80UBsXZ94g4g60CDkrDMseatiqALVcIuElg4ZSYzJs8hsg5W6zS2zLpZTVgg==", 335 | "cpu": [ 336 | "arm64" 337 | ], 338 | "dev": true, 339 | "optional": true, 340 | "os": [ 341 | "win32" 342 | ], 343 | "engines": { 344 | "node": ">=12" 345 | } 346 | }, 347 | "node_modules/@esbuild/win32-ia32": { 348 | "version": "0.16.14", 349 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.14.tgz", 350 | "integrity": "sha512-z06t5zqk8ak0Xom5HG81z2iOQ1hNWYsFQp3sczVLVx+dctWdgl80tNRyTbwjaFfui2vFO12dfE3trCTvA+HO4g==", 351 | "cpu": [ 352 | "ia32" 353 | ], 354 | "dev": true, 355 | "optional": true, 356 | "os": [ 357 | "win32" 358 | ], 359 | "engines": { 360 | "node": ">=12" 361 | } 362 | }, 363 | "node_modules/@esbuild/win32-x64": { 364 | "version": "0.16.14", 365 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.14.tgz", 366 | "integrity": "sha512-ED1UpWcM6lAbalbbQ9TrGqJh4Y9TaASUvu8bI/0mgJcxhSByJ6rbpgqRhxYMaQ682WfA71nxUreaTO7L275zrw==", 367 | "cpu": [ 368 | "x64" 369 | ], 370 | "dev": true, 371 | "optional": true, 372 | "os": [ 373 | "win32" 374 | ], 375 | "engines": { 376 | "node": ">=12" 377 | } 378 | }, 379 | "node_modules/@eslint/eslintrc": { 380 | "version": "1.4.1", 381 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", 382 | "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", 383 | "dev": true, 384 | "dependencies": { 385 | "ajv": "^6.12.4", 386 | "debug": "^4.3.2", 387 | "espree": "^9.4.0", 388 | "globals": "^13.19.0", 389 | "ignore": "^5.2.0", 390 | "import-fresh": "^3.2.1", 391 | "js-yaml": "^4.1.0", 392 | "minimatch": "^3.1.2", 393 | "strip-json-comments": "^3.1.1" 394 | }, 395 | "engines": { 396 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 397 | }, 398 | "funding": { 399 | "url": "https://opencollective.com/eslint" 400 | } 401 | }, 402 | "node_modules/@humanwhocodes/config-array": { 403 | "version": "0.11.8", 404 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", 405 | "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", 406 | "dev": true, 407 | "dependencies": { 408 | "@humanwhocodes/object-schema": "^1.2.1", 409 | "debug": "^4.1.1", 410 | "minimatch": "^3.0.5" 411 | }, 412 | "engines": { 413 | "node": ">=10.10.0" 414 | } 415 | }, 416 | "node_modules/@humanwhocodes/module-importer": { 417 | "version": "1.0.1", 418 | "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", 419 | "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", 420 | "dev": true, 421 | "engines": { 422 | "node": ">=12.22" 423 | }, 424 | "funding": { 425 | "type": "github", 426 | "url": "https://github.com/sponsors/nzakas" 427 | } 428 | }, 429 | "node_modules/@humanwhocodes/object-schema": { 430 | "version": "1.2.1", 431 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", 432 | "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", 433 | "dev": true 434 | }, 435 | "node_modules/@jridgewell/sourcemap-codec": { 436 | "version": "1.4.14", 437 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", 438 | "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", 439 | "dev": true 440 | }, 441 | "node_modules/@nodelib/fs.scandir": { 442 | "version": "2.1.5", 443 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 444 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 445 | "dev": true, 446 | "dependencies": { 447 | "@nodelib/fs.stat": "2.0.5", 448 | "run-parallel": "^1.1.9" 449 | }, 450 | "engines": { 451 | "node": ">= 8" 452 | } 453 | }, 454 | "node_modules/@nodelib/fs.stat": { 455 | "version": "2.0.5", 456 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 457 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 458 | "dev": true, 459 | "engines": { 460 | "node": ">= 8" 461 | } 462 | }, 463 | "node_modules/@nodelib/fs.walk": { 464 | "version": "1.2.8", 465 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 466 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 467 | "dev": true, 468 | "dependencies": { 469 | "@nodelib/fs.scandir": "2.1.5", 470 | "fastq": "^1.6.0" 471 | }, 472 | "engines": { 473 | "node": ">= 8" 474 | } 475 | }, 476 | "node_modules/@polka/url": { 477 | "version": "1.0.0-next.21", 478 | "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", 479 | "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", 480 | "dev": true 481 | }, 482 | "node_modules/@sveltejs/adapter-auto": { 483 | "version": "1.0.0", 484 | "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-1.0.0.tgz", 485 | "integrity": "sha512-yKyPvlLVua1bJ/42FrR3X041mFGdB4GzTZOAEoHUcNBRE5Mhx94+eqHpC3hNvAOiLEDcKfVO0ObyKSu7qldU+w==", 486 | "dev": true, 487 | "dependencies": { 488 | "import-meta-resolve": "^2.2.0" 489 | }, 490 | "peerDependencies": { 491 | "@sveltejs/kit": "^1.0.0" 492 | } 493 | }, 494 | "node_modules/@sveltejs/kit": { 495 | "version": "1.0.3", 496 | "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.0.3.tgz", 497 | "integrity": "sha512-Mv6KSeJTvHC6RIuLDMPZ8E60zafmyMHjjoXXKwRnD0gdTGdNqnkTd8D9KdJe6zOKKkz7ccldbCtsWW4/XPwgmg==", 498 | "dev": true, 499 | "hasInstallScript": true, 500 | "dependencies": { 501 | "@sveltejs/vite-plugin-svelte": "^2.0.0", 502 | "@types/cookie": "^0.5.1", 503 | "cookie": "^0.5.0", 504 | "devalue": "^4.2.0", 505 | "esm-env": "^1.0.0", 506 | "kleur": "^4.1.5", 507 | "magic-string": "^0.27.0", 508 | "mime": "^3.0.0", 509 | "sade": "^1.8.1", 510 | "set-cookie-parser": "^2.5.1", 511 | "sirv": "^2.0.2", 512 | "tiny-glob": "^0.2.9", 513 | "undici": "5.14.0" 514 | }, 515 | "bin": { 516 | "svelte-kit": "svelte-kit.js" 517 | }, 518 | "engines": { 519 | "node": "^16.14 || >=18" 520 | }, 521 | "peerDependencies": { 522 | "svelte": "^3.54.0", 523 | "vite": "^4.0.0" 524 | } 525 | }, 526 | "node_modules/@sveltejs/vite-plugin-svelte": { 527 | "version": "2.0.2", 528 | "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.0.2.tgz", 529 | "integrity": "sha512-xCEan0/NNpQuL0l5aS42FjwQ6wwskdxC3pW1OeFtEKNZwRg7Evro9lac9HesGP6TdFsTv2xMes5ASQVKbCacxg==", 530 | "dev": true, 531 | "dependencies": { 532 | "debug": "^4.3.4", 533 | "deepmerge": "^4.2.2", 534 | "kleur": "^4.1.5", 535 | "magic-string": "^0.27.0", 536 | "svelte-hmr": "^0.15.1", 537 | "vitefu": "^0.2.3" 538 | }, 539 | "engines": { 540 | "node": "^14.18.0 || >= 16" 541 | }, 542 | "peerDependencies": { 543 | "svelte": "^3.54.0", 544 | "vite": "^4.0.0" 545 | } 546 | }, 547 | "node_modules/@types/cookie": { 548 | "version": "0.5.1", 549 | "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.1.tgz", 550 | "integrity": "sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==", 551 | "dev": true 552 | }, 553 | "node_modules/acorn": { 554 | "version": "8.8.1", 555 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", 556 | "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", 557 | "dev": true, 558 | "bin": { 559 | "acorn": "bin/acorn" 560 | }, 561 | "engines": { 562 | "node": ">=0.4.0" 563 | } 564 | }, 565 | "node_modules/acorn-jsx": { 566 | "version": "5.3.2", 567 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 568 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 569 | "dev": true, 570 | "peerDependencies": { 571 | "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" 572 | } 573 | }, 574 | "node_modules/ajv": { 575 | "version": "6.12.6", 576 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 577 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 578 | "dev": true, 579 | "dependencies": { 580 | "fast-deep-equal": "^3.1.1", 581 | "fast-json-stable-stringify": "^2.0.0", 582 | "json-schema-traverse": "^0.4.1", 583 | "uri-js": "^4.2.2" 584 | }, 585 | "funding": { 586 | "type": "github", 587 | "url": "https://github.com/sponsors/epoberezkin" 588 | } 589 | }, 590 | "node_modules/ansi-regex": { 591 | "version": "5.0.1", 592 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 593 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 594 | "dev": true, 595 | "engines": { 596 | "node": ">=8" 597 | } 598 | }, 599 | "node_modules/ansi-styles": { 600 | "version": "4.3.0", 601 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 602 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 603 | "dev": true, 604 | "dependencies": { 605 | "color-convert": "^2.0.1" 606 | }, 607 | "engines": { 608 | "node": ">=8" 609 | }, 610 | "funding": { 611 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 612 | } 613 | }, 614 | "node_modules/argparse": { 615 | "version": "2.0.1", 616 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 617 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 618 | "dev": true 619 | }, 620 | "node_modules/balanced-match": { 621 | "version": "1.0.2", 622 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 623 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 624 | "dev": true 625 | }, 626 | "node_modules/brace-expansion": { 627 | "version": "1.1.11", 628 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 629 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 630 | "dev": true, 631 | "dependencies": { 632 | "balanced-match": "^1.0.0", 633 | "concat-map": "0.0.1" 634 | } 635 | }, 636 | "node_modules/busboy": { 637 | "version": "1.6.0", 638 | "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", 639 | "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", 640 | "dev": true, 641 | "dependencies": { 642 | "streamsearch": "^1.1.0" 643 | }, 644 | "engines": { 645 | "node": ">=10.16.0" 646 | } 647 | }, 648 | "node_modules/callsites": { 649 | "version": "3.1.0", 650 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 651 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 652 | "dev": true, 653 | "engines": { 654 | "node": ">=6" 655 | } 656 | }, 657 | "node_modules/chalk": { 658 | "version": "4.1.2", 659 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 660 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 661 | "dev": true, 662 | "dependencies": { 663 | "ansi-styles": "^4.1.0", 664 | "supports-color": "^7.1.0" 665 | }, 666 | "engines": { 667 | "node": ">=10" 668 | }, 669 | "funding": { 670 | "url": "https://github.com/chalk/chalk?sponsor=1" 671 | } 672 | }, 673 | "node_modules/color-convert": { 674 | "version": "2.0.1", 675 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 676 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 677 | "dev": true, 678 | "dependencies": { 679 | "color-name": "~1.1.4" 680 | }, 681 | "engines": { 682 | "node": ">=7.0.0" 683 | } 684 | }, 685 | "node_modules/color-name": { 686 | "version": "1.1.4", 687 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 688 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 689 | "dev": true 690 | }, 691 | "node_modules/concat-map": { 692 | "version": "0.0.1", 693 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 694 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 695 | "dev": true 696 | }, 697 | "node_modules/cookie": { 698 | "version": "0.5.0", 699 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", 700 | "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", 701 | "dev": true, 702 | "engines": { 703 | "node": ">= 0.6" 704 | } 705 | }, 706 | "node_modules/cross-spawn": { 707 | "version": "7.0.3", 708 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 709 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 710 | "dev": true, 711 | "dependencies": { 712 | "path-key": "^3.1.0", 713 | "shebang-command": "^2.0.0", 714 | "which": "^2.0.1" 715 | }, 716 | "engines": { 717 | "node": ">= 8" 718 | } 719 | }, 720 | "node_modules/debug": { 721 | "version": "4.3.4", 722 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 723 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 724 | "dev": true, 725 | "dependencies": { 726 | "ms": "2.1.2" 727 | }, 728 | "engines": { 729 | "node": ">=6.0" 730 | }, 731 | "peerDependenciesMeta": { 732 | "supports-color": { 733 | "optional": true 734 | } 735 | } 736 | }, 737 | "node_modules/deep-is": { 738 | "version": "0.1.4", 739 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 740 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 741 | "dev": true 742 | }, 743 | "node_modules/deepmerge": { 744 | "version": "4.2.2", 745 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", 746 | "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", 747 | "dev": true, 748 | "engines": { 749 | "node": ">=0.10.0" 750 | } 751 | }, 752 | "node_modules/devalue": { 753 | "version": "4.2.0", 754 | "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.2.0.tgz", 755 | "integrity": "sha512-mbjoAaCL2qogBKgeFxFPOXAUsZchircF+B/79LD4sHH0+NHfYm8gZpQrskKDn5gENGt35+5OI1GUF7hLVnkPDw==", 756 | "dev": true 757 | }, 758 | "node_modules/doctrine": { 759 | "version": "3.0.0", 760 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 761 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 762 | "dev": true, 763 | "dependencies": { 764 | "esutils": "^2.0.2" 765 | }, 766 | "engines": { 767 | "node": ">=6.0.0" 768 | } 769 | }, 770 | "node_modules/esbuild": { 771 | "version": "0.16.14", 772 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.14.tgz", 773 | "integrity": "sha512-6xAn3O6ZZyoxZAEkwfI9hw4cEqSr/o1ViJtnkvImVkblmUN65Md04o0S/7H1WNu1XGf1Cjij/on7VO4psIYjkw==", 774 | "dev": true, 775 | "hasInstallScript": true, 776 | "bin": { 777 | "esbuild": "bin/esbuild" 778 | }, 779 | "engines": { 780 | "node": ">=12" 781 | }, 782 | "optionalDependencies": { 783 | "@esbuild/android-arm": "0.16.14", 784 | "@esbuild/android-arm64": "0.16.14", 785 | "@esbuild/android-x64": "0.16.14", 786 | "@esbuild/darwin-arm64": "0.16.14", 787 | "@esbuild/darwin-x64": "0.16.14", 788 | "@esbuild/freebsd-arm64": "0.16.14", 789 | "@esbuild/freebsd-x64": "0.16.14", 790 | "@esbuild/linux-arm": "0.16.14", 791 | "@esbuild/linux-arm64": "0.16.14", 792 | "@esbuild/linux-ia32": "0.16.14", 793 | "@esbuild/linux-loong64": "0.16.14", 794 | "@esbuild/linux-mips64el": "0.16.14", 795 | "@esbuild/linux-ppc64": "0.16.14", 796 | "@esbuild/linux-riscv64": "0.16.14", 797 | "@esbuild/linux-s390x": "0.16.14", 798 | "@esbuild/linux-x64": "0.16.14", 799 | "@esbuild/netbsd-x64": "0.16.14", 800 | "@esbuild/openbsd-x64": "0.16.14", 801 | "@esbuild/sunos-x64": "0.16.14", 802 | "@esbuild/win32-arm64": "0.16.14", 803 | "@esbuild/win32-ia32": "0.16.14", 804 | "@esbuild/win32-x64": "0.16.14" 805 | } 806 | }, 807 | "node_modules/escape-string-regexp": { 808 | "version": "4.0.0", 809 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 810 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 811 | "dev": true, 812 | "engines": { 813 | "node": ">=10" 814 | }, 815 | "funding": { 816 | "url": "https://github.com/sponsors/sindresorhus" 817 | } 818 | }, 819 | "node_modules/eslint": { 820 | "version": "8.31.0", 821 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.31.0.tgz", 822 | "integrity": "sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==", 823 | "dev": true, 824 | "dependencies": { 825 | "@eslint/eslintrc": "^1.4.1", 826 | "@humanwhocodes/config-array": "^0.11.8", 827 | "@humanwhocodes/module-importer": "^1.0.1", 828 | "@nodelib/fs.walk": "^1.2.8", 829 | "ajv": "^6.10.0", 830 | "chalk": "^4.0.0", 831 | "cross-spawn": "^7.0.2", 832 | "debug": "^4.3.2", 833 | "doctrine": "^3.0.0", 834 | "escape-string-regexp": "^4.0.0", 835 | "eslint-scope": "^7.1.1", 836 | "eslint-utils": "^3.0.0", 837 | "eslint-visitor-keys": "^3.3.0", 838 | "espree": "^9.4.0", 839 | "esquery": "^1.4.0", 840 | "esutils": "^2.0.2", 841 | "fast-deep-equal": "^3.1.3", 842 | "file-entry-cache": "^6.0.1", 843 | "find-up": "^5.0.0", 844 | "glob-parent": "^6.0.2", 845 | "globals": "^13.19.0", 846 | "grapheme-splitter": "^1.0.4", 847 | "ignore": "^5.2.0", 848 | "import-fresh": "^3.0.0", 849 | "imurmurhash": "^0.1.4", 850 | "is-glob": "^4.0.0", 851 | "is-path-inside": "^3.0.3", 852 | "js-sdsl": "^4.1.4", 853 | "js-yaml": "^4.1.0", 854 | "json-stable-stringify-without-jsonify": "^1.0.1", 855 | "levn": "^0.4.1", 856 | "lodash.merge": "^4.6.2", 857 | "minimatch": "^3.1.2", 858 | "natural-compare": "^1.4.0", 859 | "optionator": "^0.9.1", 860 | "regexpp": "^3.2.0", 861 | "strip-ansi": "^6.0.1", 862 | "strip-json-comments": "^3.1.0", 863 | "text-table": "^0.2.0" 864 | }, 865 | "bin": { 866 | "eslint": "bin/eslint.js" 867 | }, 868 | "engines": { 869 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 870 | }, 871 | "funding": { 872 | "url": "https://opencollective.com/eslint" 873 | } 874 | }, 875 | "node_modules/eslint-config-prettier": { 876 | "version": "8.6.0", 877 | "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz", 878 | "integrity": "sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==", 879 | "dev": true, 880 | "bin": { 881 | "eslint-config-prettier": "bin/cli.js" 882 | }, 883 | "peerDependencies": { 884 | "eslint": ">=7.0.0" 885 | } 886 | }, 887 | "node_modules/eslint-plugin-svelte3": { 888 | "version": "4.0.0", 889 | "resolved": "https://registry.npmjs.org/eslint-plugin-svelte3/-/eslint-plugin-svelte3-4.0.0.tgz", 890 | "integrity": "sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==", 891 | "dev": true, 892 | "peerDependencies": { 893 | "eslint": ">=8.0.0", 894 | "svelte": "^3.2.0" 895 | } 896 | }, 897 | "node_modules/eslint-scope": { 898 | "version": "7.1.1", 899 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", 900 | "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", 901 | "dev": true, 902 | "dependencies": { 903 | "esrecurse": "^4.3.0", 904 | "estraverse": "^5.2.0" 905 | }, 906 | "engines": { 907 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 908 | } 909 | }, 910 | "node_modules/eslint-utils": { 911 | "version": "3.0.0", 912 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", 913 | "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", 914 | "dev": true, 915 | "dependencies": { 916 | "eslint-visitor-keys": "^2.0.0" 917 | }, 918 | "engines": { 919 | "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" 920 | }, 921 | "funding": { 922 | "url": "https://github.com/sponsors/mysticatea" 923 | }, 924 | "peerDependencies": { 925 | "eslint": ">=5" 926 | } 927 | }, 928 | "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { 929 | "version": "2.1.0", 930 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", 931 | "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", 932 | "dev": true, 933 | "engines": { 934 | "node": ">=10" 935 | } 936 | }, 937 | "node_modules/eslint-visitor-keys": { 938 | "version": "3.3.0", 939 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", 940 | "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", 941 | "dev": true, 942 | "engines": { 943 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 944 | } 945 | }, 946 | "node_modules/esm-env": { 947 | "version": "1.0.0", 948 | "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz", 949 | "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==", 950 | "dev": true 951 | }, 952 | "node_modules/espree": { 953 | "version": "9.4.1", 954 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", 955 | "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", 956 | "dev": true, 957 | "dependencies": { 958 | "acorn": "^8.8.0", 959 | "acorn-jsx": "^5.3.2", 960 | "eslint-visitor-keys": "^3.3.0" 961 | }, 962 | "engines": { 963 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 964 | }, 965 | "funding": { 966 | "url": "https://opencollective.com/eslint" 967 | } 968 | }, 969 | "node_modules/esquery": { 970 | "version": "1.4.0", 971 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", 972 | "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", 973 | "dev": true, 974 | "dependencies": { 975 | "estraverse": "^5.1.0" 976 | }, 977 | "engines": { 978 | "node": ">=0.10" 979 | } 980 | }, 981 | "node_modules/esrecurse": { 982 | "version": "4.3.0", 983 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 984 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 985 | "dev": true, 986 | "dependencies": { 987 | "estraverse": "^5.2.0" 988 | }, 989 | "engines": { 990 | "node": ">=4.0" 991 | } 992 | }, 993 | "node_modules/estraverse": { 994 | "version": "5.3.0", 995 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 996 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 997 | "dev": true, 998 | "engines": { 999 | "node": ">=4.0" 1000 | } 1001 | }, 1002 | "node_modules/esutils": { 1003 | "version": "2.0.3", 1004 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 1005 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 1006 | "dev": true, 1007 | "engines": { 1008 | "node": ">=0.10.0" 1009 | } 1010 | }, 1011 | "node_modules/fast-deep-equal": { 1012 | "version": "3.1.3", 1013 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 1014 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 1015 | "dev": true 1016 | }, 1017 | "node_modules/fast-json-stable-stringify": { 1018 | "version": "2.1.0", 1019 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 1020 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 1021 | "dev": true 1022 | }, 1023 | "node_modules/fast-levenshtein": { 1024 | "version": "2.0.6", 1025 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 1026 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", 1027 | "dev": true 1028 | }, 1029 | "node_modules/fastq": { 1030 | "version": "1.15.0", 1031 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", 1032 | "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", 1033 | "dev": true, 1034 | "dependencies": { 1035 | "reusify": "^1.0.4" 1036 | } 1037 | }, 1038 | "node_modules/file-entry-cache": { 1039 | "version": "6.0.1", 1040 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", 1041 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", 1042 | "dev": true, 1043 | "dependencies": { 1044 | "flat-cache": "^3.0.4" 1045 | }, 1046 | "engines": { 1047 | "node": "^10.12.0 || >=12.0.0" 1048 | } 1049 | }, 1050 | "node_modules/find-up": { 1051 | "version": "5.0.0", 1052 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 1053 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 1054 | "dev": true, 1055 | "dependencies": { 1056 | "locate-path": "^6.0.0", 1057 | "path-exists": "^4.0.0" 1058 | }, 1059 | "engines": { 1060 | "node": ">=10" 1061 | }, 1062 | "funding": { 1063 | "url": "https://github.com/sponsors/sindresorhus" 1064 | } 1065 | }, 1066 | "node_modules/flat-cache": { 1067 | "version": "3.0.4", 1068 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", 1069 | "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", 1070 | "dev": true, 1071 | "dependencies": { 1072 | "flatted": "^3.1.0", 1073 | "rimraf": "^3.0.2" 1074 | }, 1075 | "engines": { 1076 | "node": "^10.12.0 || >=12.0.0" 1077 | } 1078 | }, 1079 | "node_modules/flatted": { 1080 | "version": "3.2.7", 1081 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", 1082 | "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", 1083 | "dev": true 1084 | }, 1085 | "node_modules/fs.realpath": { 1086 | "version": "1.0.0", 1087 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1088 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", 1089 | "dev": true 1090 | }, 1091 | "node_modules/fsevents": { 1092 | "version": "2.3.2", 1093 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 1094 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 1095 | "dev": true, 1096 | "hasInstallScript": true, 1097 | "optional": true, 1098 | "os": [ 1099 | "darwin" 1100 | ], 1101 | "engines": { 1102 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1103 | } 1104 | }, 1105 | "node_modules/function-bind": { 1106 | "version": "1.1.1", 1107 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1108 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1109 | "dev": true 1110 | }, 1111 | "node_modules/glob": { 1112 | "version": "7.2.3", 1113 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 1114 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 1115 | "dev": true, 1116 | "dependencies": { 1117 | "fs.realpath": "^1.0.0", 1118 | "inflight": "^1.0.4", 1119 | "inherits": "2", 1120 | "minimatch": "^3.1.1", 1121 | "once": "^1.3.0", 1122 | "path-is-absolute": "^1.0.0" 1123 | }, 1124 | "engines": { 1125 | "node": "*" 1126 | }, 1127 | "funding": { 1128 | "url": "https://github.com/sponsors/isaacs" 1129 | } 1130 | }, 1131 | "node_modules/glob-parent": { 1132 | "version": "6.0.2", 1133 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 1134 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 1135 | "dev": true, 1136 | "dependencies": { 1137 | "is-glob": "^4.0.3" 1138 | }, 1139 | "engines": { 1140 | "node": ">=10.13.0" 1141 | } 1142 | }, 1143 | "node_modules/globals": { 1144 | "version": "13.19.0", 1145 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", 1146 | "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", 1147 | "dev": true, 1148 | "dependencies": { 1149 | "type-fest": "^0.20.2" 1150 | }, 1151 | "engines": { 1152 | "node": ">=8" 1153 | }, 1154 | "funding": { 1155 | "url": "https://github.com/sponsors/sindresorhus" 1156 | } 1157 | }, 1158 | "node_modules/globalyzer": { 1159 | "version": "0.1.0", 1160 | "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", 1161 | "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", 1162 | "dev": true 1163 | }, 1164 | "node_modules/globrex": { 1165 | "version": "0.1.2", 1166 | "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", 1167 | "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", 1168 | "dev": true 1169 | }, 1170 | "node_modules/grapheme-splitter": { 1171 | "version": "1.0.4", 1172 | "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", 1173 | "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", 1174 | "dev": true 1175 | }, 1176 | "node_modules/has": { 1177 | "version": "1.0.3", 1178 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1179 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1180 | "dev": true, 1181 | "dependencies": { 1182 | "function-bind": "^1.1.1" 1183 | }, 1184 | "engines": { 1185 | "node": ">= 0.4.0" 1186 | } 1187 | }, 1188 | "node_modules/has-flag": { 1189 | "version": "4.0.0", 1190 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1191 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 1192 | "dev": true, 1193 | "engines": { 1194 | "node": ">=8" 1195 | } 1196 | }, 1197 | "node_modules/ignore": { 1198 | "version": "5.2.4", 1199 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", 1200 | "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", 1201 | "dev": true, 1202 | "engines": { 1203 | "node": ">= 4" 1204 | } 1205 | }, 1206 | "node_modules/import-fresh": { 1207 | "version": "3.3.0", 1208 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 1209 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 1210 | "dev": true, 1211 | "dependencies": { 1212 | "parent-module": "^1.0.0", 1213 | "resolve-from": "^4.0.0" 1214 | }, 1215 | "engines": { 1216 | "node": ">=6" 1217 | }, 1218 | "funding": { 1219 | "url": "https://github.com/sponsors/sindresorhus" 1220 | } 1221 | }, 1222 | "node_modules/import-meta-resolve": { 1223 | "version": "2.2.0", 1224 | "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-2.2.0.tgz", 1225 | "integrity": "sha512-CpPOtiCHxP9HdtDM5F45tNiAe66Cqlv3f5uHoJjt+KlaLrUh9/Wz9vepADZ78SlqEo62aDWZtj9ydMGXV+CPnw==", 1226 | "dev": true, 1227 | "funding": { 1228 | "type": "github", 1229 | "url": "https://github.com/sponsors/wooorm" 1230 | } 1231 | }, 1232 | "node_modules/imurmurhash": { 1233 | "version": "0.1.4", 1234 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 1235 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", 1236 | "dev": true, 1237 | "engines": { 1238 | "node": ">=0.8.19" 1239 | } 1240 | }, 1241 | "node_modules/inflight": { 1242 | "version": "1.0.6", 1243 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1244 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 1245 | "dev": true, 1246 | "dependencies": { 1247 | "once": "^1.3.0", 1248 | "wrappy": "1" 1249 | } 1250 | }, 1251 | "node_modules/inherits": { 1252 | "version": "2.0.4", 1253 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1254 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 1255 | "dev": true 1256 | }, 1257 | "node_modules/is-core-module": { 1258 | "version": "2.11.0", 1259 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", 1260 | "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", 1261 | "dev": true, 1262 | "dependencies": { 1263 | "has": "^1.0.3" 1264 | }, 1265 | "funding": { 1266 | "url": "https://github.com/sponsors/ljharb" 1267 | } 1268 | }, 1269 | "node_modules/is-extglob": { 1270 | "version": "2.1.1", 1271 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1272 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 1273 | "dev": true, 1274 | "engines": { 1275 | "node": ">=0.10.0" 1276 | } 1277 | }, 1278 | "node_modules/is-glob": { 1279 | "version": "4.0.3", 1280 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 1281 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 1282 | "dev": true, 1283 | "dependencies": { 1284 | "is-extglob": "^2.1.1" 1285 | }, 1286 | "engines": { 1287 | "node": ">=0.10.0" 1288 | } 1289 | }, 1290 | "node_modules/is-path-inside": { 1291 | "version": "3.0.3", 1292 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", 1293 | "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", 1294 | "dev": true, 1295 | "engines": { 1296 | "node": ">=8" 1297 | } 1298 | }, 1299 | "node_modules/isexe": { 1300 | "version": "2.0.0", 1301 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1302 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 1303 | "dev": true 1304 | }, 1305 | "node_modules/js-sdsl": { 1306 | "version": "4.2.0", 1307 | "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", 1308 | "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", 1309 | "dev": true, 1310 | "funding": { 1311 | "type": "opencollective", 1312 | "url": "https://opencollective.com/js-sdsl" 1313 | } 1314 | }, 1315 | "node_modules/js-yaml": { 1316 | "version": "4.1.0", 1317 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 1318 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 1319 | "dev": true, 1320 | "dependencies": { 1321 | "argparse": "^2.0.1" 1322 | }, 1323 | "bin": { 1324 | "js-yaml": "bin/js-yaml.js" 1325 | } 1326 | }, 1327 | "node_modules/json-schema-traverse": { 1328 | "version": "0.4.1", 1329 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 1330 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 1331 | "dev": true 1332 | }, 1333 | "node_modules/json-stable-stringify-without-jsonify": { 1334 | "version": "1.0.1", 1335 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 1336 | "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", 1337 | "dev": true 1338 | }, 1339 | "node_modules/kleur": { 1340 | "version": "4.1.5", 1341 | "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", 1342 | "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", 1343 | "dev": true, 1344 | "engines": { 1345 | "node": ">=6" 1346 | } 1347 | }, 1348 | "node_modules/levn": { 1349 | "version": "0.4.1", 1350 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 1351 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 1352 | "dev": true, 1353 | "dependencies": { 1354 | "prelude-ls": "^1.2.1", 1355 | "type-check": "~0.4.0" 1356 | }, 1357 | "engines": { 1358 | "node": ">= 0.8.0" 1359 | } 1360 | }, 1361 | "node_modules/locate-path": { 1362 | "version": "6.0.0", 1363 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 1364 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 1365 | "dev": true, 1366 | "dependencies": { 1367 | "p-locate": "^5.0.0" 1368 | }, 1369 | "engines": { 1370 | "node": ">=10" 1371 | }, 1372 | "funding": { 1373 | "url": "https://github.com/sponsors/sindresorhus" 1374 | } 1375 | }, 1376 | "node_modules/lodash.merge": { 1377 | "version": "4.6.2", 1378 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 1379 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 1380 | "dev": true 1381 | }, 1382 | "node_modules/magic-string": { 1383 | "version": "0.27.0", 1384 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", 1385 | "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", 1386 | "dev": true, 1387 | "dependencies": { 1388 | "@jridgewell/sourcemap-codec": "^1.4.13" 1389 | }, 1390 | "engines": { 1391 | "node": ">=12" 1392 | } 1393 | }, 1394 | "node_modules/mime": { 1395 | "version": "3.0.0", 1396 | "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", 1397 | "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", 1398 | "dev": true, 1399 | "bin": { 1400 | "mime": "cli.js" 1401 | }, 1402 | "engines": { 1403 | "node": ">=10.0.0" 1404 | } 1405 | }, 1406 | "node_modules/minimatch": { 1407 | "version": "3.1.2", 1408 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 1409 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1410 | "dev": true, 1411 | "dependencies": { 1412 | "brace-expansion": "^1.1.7" 1413 | }, 1414 | "engines": { 1415 | "node": "*" 1416 | } 1417 | }, 1418 | "node_modules/mri": { 1419 | "version": "1.2.0", 1420 | "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", 1421 | "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", 1422 | "dev": true, 1423 | "engines": { 1424 | "node": ">=4" 1425 | } 1426 | }, 1427 | "node_modules/mrmime": { 1428 | "version": "1.0.1", 1429 | "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", 1430 | "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", 1431 | "dev": true, 1432 | "engines": { 1433 | "node": ">=10" 1434 | } 1435 | }, 1436 | "node_modules/ms": { 1437 | "version": "2.1.2", 1438 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1439 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 1440 | "dev": true 1441 | }, 1442 | "node_modules/nanoid": { 1443 | "version": "3.3.4", 1444 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 1445 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", 1446 | "dev": true, 1447 | "bin": { 1448 | "nanoid": "bin/nanoid.cjs" 1449 | }, 1450 | "engines": { 1451 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 1452 | } 1453 | }, 1454 | "node_modules/natural-compare": { 1455 | "version": "1.4.0", 1456 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 1457 | "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", 1458 | "dev": true 1459 | }, 1460 | "node_modules/once": { 1461 | "version": "1.4.0", 1462 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1463 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 1464 | "dev": true, 1465 | "dependencies": { 1466 | "wrappy": "1" 1467 | } 1468 | }, 1469 | "node_modules/optionator": { 1470 | "version": "0.9.1", 1471 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", 1472 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", 1473 | "dev": true, 1474 | "dependencies": { 1475 | "deep-is": "^0.1.3", 1476 | "fast-levenshtein": "^2.0.6", 1477 | "levn": "^0.4.1", 1478 | "prelude-ls": "^1.2.1", 1479 | "type-check": "^0.4.0", 1480 | "word-wrap": "^1.2.3" 1481 | }, 1482 | "engines": { 1483 | "node": ">= 0.8.0" 1484 | } 1485 | }, 1486 | "node_modules/p-limit": { 1487 | "version": "3.1.0", 1488 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 1489 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 1490 | "dev": true, 1491 | "dependencies": { 1492 | "yocto-queue": "^0.1.0" 1493 | }, 1494 | "engines": { 1495 | "node": ">=10" 1496 | }, 1497 | "funding": { 1498 | "url": "https://github.com/sponsors/sindresorhus" 1499 | } 1500 | }, 1501 | "node_modules/p-locate": { 1502 | "version": "5.0.0", 1503 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 1504 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 1505 | "dev": true, 1506 | "dependencies": { 1507 | "p-limit": "^3.0.2" 1508 | }, 1509 | "engines": { 1510 | "node": ">=10" 1511 | }, 1512 | "funding": { 1513 | "url": "https://github.com/sponsors/sindresorhus" 1514 | } 1515 | }, 1516 | "node_modules/parent-module": { 1517 | "version": "1.0.1", 1518 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 1519 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 1520 | "dev": true, 1521 | "dependencies": { 1522 | "callsites": "^3.0.0" 1523 | }, 1524 | "engines": { 1525 | "node": ">=6" 1526 | } 1527 | }, 1528 | "node_modules/path-exists": { 1529 | "version": "4.0.0", 1530 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 1531 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 1532 | "dev": true, 1533 | "engines": { 1534 | "node": ">=8" 1535 | } 1536 | }, 1537 | "node_modules/path-is-absolute": { 1538 | "version": "1.0.1", 1539 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1540 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 1541 | "dev": true, 1542 | "engines": { 1543 | "node": ">=0.10.0" 1544 | } 1545 | }, 1546 | "node_modules/path-key": { 1547 | "version": "3.1.1", 1548 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 1549 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 1550 | "dev": true, 1551 | "engines": { 1552 | "node": ">=8" 1553 | } 1554 | }, 1555 | "node_modules/path-parse": { 1556 | "version": "1.0.7", 1557 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 1558 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 1559 | "dev": true 1560 | }, 1561 | "node_modules/picocolors": { 1562 | "version": "1.0.0", 1563 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 1564 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 1565 | "dev": true 1566 | }, 1567 | "node_modules/pocketbase": { 1568 | "version": "0.9.1", 1569 | "resolved": "https://registry.npmjs.org/pocketbase/-/pocketbase-0.9.1.tgz", 1570 | "integrity": "sha512-a9S/WHak+mgr3WI8bD2tz3lFVFzoy6ZgKTBlUXwIH4VLTKVU3JKeAKxqIFBF7av4qblmB+52tX8sWLS08Ftm/w==" 1571 | }, 1572 | "node_modules/postcss": { 1573 | "version": "8.4.20", 1574 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.20.tgz", 1575 | "integrity": "sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==", 1576 | "dev": true, 1577 | "funding": [ 1578 | { 1579 | "type": "opencollective", 1580 | "url": "https://opencollective.com/postcss/" 1581 | }, 1582 | { 1583 | "type": "tidelift", 1584 | "url": "https://tidelift.com/funding/github/npm/postcss" 1585 | } 1586 | ], 1587 | "dependencies": { 1588 | "nanoid": "^3.3.4", 1589 | "picocolors": "^1.0.0", 1590 | "source-map-js": "^1.0.2" 1591 | }, 1592 | "engines": { 1593 | "node": "^10 || ^12 || >=14" 1594 | } 1595 | }, 1596 | "node_modules/prelude-ls": { 1597 | "version": "1.2.1", 1598 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 1599 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 1600 | "dev": true, 1601 | "engines": { 1602 | "node": ">= 0.8.0" 1603 | } 1604 | }, 1605 | "node_modules/prettier": { 1606 | "version": "2.8.1", 1607 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz", 1608 | "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==", 1609 | "dev": true, 1610 | "bin": { 1611 | "prettier": "bin-prettier.js" 1612 | }, 1613 | "engines": { 1614 | "node": ">=10.13.0" 1615 | }, 1616 | "funding": { 1617 | "url": "https://github.com/prettier/prettier?sponsor=1" 1618 | } 1619 | }, 1620 | "node_modules/prettier-plugin-svelte": { 1621 | "version": "2.9.0", 1622 | "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.9.0.tgz", 1623 | "integrity": "sha512-3doBi5NO4IVgaNPtwewvrgPpqAcvNv0NwJNflr76PIGgi9nf1oguQV1Hpdm9TI2ALIQVn/9iIwLpBO5UcD2Jiw==", 1624 | "dev": true, 1625 | "peerDependencies": { 1626 | "prettier": "^1.16.4 || ^2.0.0", 1627 | "svelte": "^3.2.0" 1628 | } 1629 | }, 1630 | "node_modules/punycode": { 1631 | "version": "2.1.1", 1632 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 1633 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 1634 | "dev": true, 1635 | "engines": { 1636 | "node": ">=6" 1637 | } 1638 | }, 1639 | "node_modules/queue-microtask": { 1640 | "version": "1.2.3", 1641 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 1642 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 1643 | "dev": true, 1644 | "funding": [ 1645 | { 1646 | "type": "github", 1647 | "url": "https://github.com/sponsors/feross" 1648 | }, 1649 | { 1650 | "type": "patreon", 1651 | "url": "https://www.patreon.com/feross" 1652 | }, 1653 | { 1654 | "type": "consulting", 1655 | "url": "https://feross.org/support" 1656 | } 1657 | ] 1658 | }, 1659 | "node_modules/regexpp": { 1660 | "version": "3.2.0", 1661 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", 1662 | "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", 1663 | "dev": true, 1664 | "engines": { 1665 | "node": ">=8" 1666 | }, 1667 | "funding": { 1668 | "url": "https://github.com/sponsors/mysticatea" 1669 | } 1670 | }, 1671 | "node_modules/resolve": { 1672 | "version": "1.22.1", 1673 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", 1674 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", 1675 | "dev": true, 1676 | "dependencies": { 1677 | "is-core-module": "^2.9.0", 1678 | "path-parse": "^1.0.7", 1679 | "supports-preserve-symlinks-flag": "^1.0.0" 1680 | }, 1681 | "bin": { 1682 | "resolve": "bin/resolve" 1683 | }, 1684 | "funding": { 1685 | "url": "https://github.com/sponsors/ljharb" 1686 | } 1687 | }, 1688 | "node_modules/resolve-from": { 1689 | "version": "4.0.0", 1690 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 1691 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 1692 | "dev": true, 1693 | "engines": { 1694 | "node": ">=4" 1695 | } 1696 | }, 1697 | "node_modules/reusify": { 1698 | "version": "1.0.4", 1699 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 1700 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 1701 | "dev": true, 1702 | "engines": { 1703 | "iojs": ">=1.0.0", 1704 | "node": ">=0.10.0" 1705 | } 1706 | }, 1707 | "node_modules/rimraf": { 1708 | "version": "3.0.2", 1709 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 1710 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 1711 | "dev": true, 1712 | "dependencies": { 1713 | "glob": "^7.1.3" 1714 | }, 1715 | "bin": { 1716 | "rimraf": "bin.js" 1717 | }, 1718 | "funding": { 1719 | "url": "https://github.com/sponsors/isaacs" 1720 | } 1721 | }, 1722 | "node_modules/rollup": { 1723 | "version": "3.9.1", 1724 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.9.1.tgz", 1725 | "integrity": "sha512-GswCYHXftN8ZKGVgQhTFUJB/NBXxrRGgO2NCy6E8s1rwEJ4Q9/VttNqcYfEvx4dTo4j58YqdC3OVztPzlKSX8w==", 1726 | "dev": true, 1727 | "bin": { 1728 | "rollup": "dist/bin/rollup" 1729 | }, 1730 | "engines": { 1731 | "node": ">=14.18.0", 1732 | "npm": ">=8.0.0" 1733 | }, 1734 | "optionalDependencies": { 1735 | "fsevents": "~2.3.2" 1736 | } 1737 | }, 1738 | "node_modules/run-parallel": { 1739 | "version": "1.2.0", 1740 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 1741 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 1742 | "dev": true, 1743 | "funding": [ 1744 | { 1745 | "type": "github", 1746 | "url": "https://github.com/sponsors/feross" 1747 | }, 1748 | { 1749 | "type": "patreon", 1750 | "url": "https://www.patreon.com/feross" 1751 | }, 1752 | { 1753 | "type": "consulting", 1754 | "url": "https://feross.org/support" 1755 | } 1756 | ], 1757 | "dependencies": { 1758 | "queue-microtask": "^1.2.2" 1759 | } 1760 | }, 1761 | "node_modules/sade": { 1762 | "version": "1.8.1", 1763 | "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", 1764 | "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", 1765 | "dev": true, 1766 | "dependencies": { 1767 | "mri": "^1.1.0" 1768 | }, 1769 | "engines": { 1770 | "node": ">=6" 1771 | } 1772 | }, 1773 | "node_modules/set-cookie-parser": { 1774 | "version": "2.5.1", 1775 | "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz", 1776 | "integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==", 1777 | "dev": true 1778 | }, 1779 | "node_modules/shebang-command": { 1780 | "version": "2.0.0", 1781 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 1782 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 1783 | "dev": true, 1784 | "dependencies": { 1785 | "shebang-regex": "^3.0.0" 1786 | }, 1787 | "engines": { 1788 | "node": ">=8" 1789 | } 1790 | }, 1791 | "node_modules/shebang-regex": { 1792 | "version": "3.0.0", 1793 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 1794 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 1795 | "dev": true, 1796 | "engines": { 1797 | "node": ">=8" 1798 | } 1799 | }, 1800 | "node_modules/sirv": { 1801 | "version": "2.0.2", 1802 | "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz", 1803 | "integrity": "sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==", 1804 | "dev": true, 1805 | "dependencies": { 1806 | "@polka/url": "^1.0.0-next.20", 1807 | "mrmime": "^1.0.0", 1808 | "totalist": "^3.0.0" 1809 | }, 1810 | "engines": { 1811 | "node": ">= 10" 1812 | } 1813 | }, 1814 | "node_modules/source-map-js": { 1815 | "version": "1.0.2", 1816 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 1817 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 1818 | "dev": true, 1819 | "engines": { 1820 | "node": ">=0.10.0" 1821 | } 1822 | }, 1823 | "node_modules/streamsearch": { 1824 | "version": "1.1.0", 1825 | "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", 1826 | "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", 1827 | "dev": true, 1828 | "engines": { 1829 | "node": ">=10.0.0" 1830 | } 1831 | }, 1832 | "node_modules/strip-ansi": { 1833 | "version": "6.0.1", 1834 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 1835 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 1836 | "dev": true, 1837 | "dependencies": { 1838 | "ansi-regex": "^5.0.1" 1839 | }, 1840 | "engines": { 1841 | "node": ">=8" 1842 | } 1843 | }, 1844 | "node_modules/strip-json-comments": { 1845 | "version": "3.1.1", 1846 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 1847 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 1848 | "dev": true, 1849 | "engines": { 1850 | "node": ">=8" 1851 | }, 1852 | "funding": { 1853 | "url": "https://github.com/sponsors/sindresorhus" 1854 | } 1855 | }, 1856 | "node_modules/supports-color": { 1857 | "version": "7.2.0", 1858 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 1859 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 1860 | "dev": true, 1861 | "dependencies": { 1862 | "has-flag": "^4.0.0" 1863 | }, 1864 | "engines": { 1865 | "node": ">=8" 1866 | } 1867 | }, 1868 | "node_modules/supports-preserve-symlinks-flag": { 1869 | "version": "1.0.0", 1870 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 1871 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 1872 | "dev": true, 1873 | "engines": { 1874 | "node": ">= 0.4" 1875 | }, 1876 | "funding": { 1877 | "url": "https://github.com/sponsors/ljharb" 1878 | } 1879 | }, 1880 | "node_modules/svelte": { 1881 | "version": "3.55.0", 1882 | "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.55.0.tgz", 1883 | "integrity": "sha512-uGu2FVMlOuey4JoKHKrpZFkoYyj0VLjJdz47zX5+gVK5odxHM40RVhar9/iK2YFRVxvfg9FkhfVlR0sjeIrOiA==", 1884 | "engines": { 1885 | "node": ">= 8" 1886 | } 1887 | }, 1888 | "node_modules/svelte-french-toast": { 1889 | "version": "1.0.3", 1890 | "resolved": "https://registry.npmjs.org/svelte-french-toast/-/svelte-french-toast-1.0.3.tgz", 1891 | "integrity": "sha512-HBdutlqUx5FroucvcmMJstmTJDedXayiOSXubBYW6iL5x1PdHp+bOflGx5NxsOa6+EQckJnnVv1vJYgGsg7ngQ==", 1892 | "dependencies": { 1893 | "svelte-writable-derived": "^2.1.3" 1894 | } 1895 | }, 1896 | "node_modules/svelte-hmr": { 1897 | "version": "0.15.1", 1898 | "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.1.tgz", 1899 | "integrity": "sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==", 1900 | "dev": true, 1901 | "engines": { 1902 | "node": "^12.20 || ^14.13.1 || >= 16" 1903 | }, 1904 | "peerDependencies": { 1905 | "svelte": ">=3.19.0" 1906 | } 1907 | }, 1908 | "node_modules/svelte-icons-pack": { 1909 | "version": "2.0.0", 1910 | "resolved": "https://registry.npmjs.org/svelte-icons-pack/-/svelte-icons-pack-2.0.0.tgz", 1911 | "integrity": "sha512-B0EjVQrdURQCY/n//vBmJA/cbrT6ngv6Ja4FXVXUlZjcSKhoXpIgmcQQ0lPH5PpCcJNKbDQYyxPnUW1KTrkWJA==" 1912 | }, 1913 | "node_modules/svelte-writable-derived": { 1914 | "version": "2.1.6", 1915 | "resolved": "https://registry.npmjs.org/svelte-writable-derived/-/svelte-writable-derived-2.1.6.tgz", 1916 | "integrity": "sha512-vqOXuiESMZyP/kt/RD+nOk2RVHNakDm1K1hmfeGAKc4jzcSp5hEkUi43MDbkVlMurkSBlcMVTQwRQy4LcBT2lw==", 1917 | "funding": { 1918 | "url": "https://ko-fi.com/pixievoltno1" 1919 | }, 1920 | "peerDependencies": { 1921 | "svelte": "^3.2.1" 1922 | } 1923 | }, 1924 | "node_modules/text-table": { 1925 | "version": "0.2.0", 1926 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 1927 | "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", 1928 | "dev": true 1929 | }, 1930 | "node_modules/tiny-glob": { 1931 | "version": "0.2.9", 1932 | "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", 1933 | "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", 1934 | "dev": true, 1935 | "dependencies": { 1936 | "globalyzer": "0.1.0", 1937 | "globrex": "^0.1.2" 1938 | } 1939 | }, 1940 | "node_modules/totalist": { 1941 | "version": "3.0.0", 1942 | "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz", 1943 | "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==", 1944 | "dev": true, 1945 | "engines": { 1946 | "node": ">=6" 1947 | } 1948 | }, 1949 | "node_modules/type-check": { 1950 | "version": "0.4.0", 1951 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 1952 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 1953 | "dev": true, 1954 | "dependencies": { 1955 | "prelude-ls": "^1.2.1" 1956 | }, 1957 | "engines": { 1958 | "node": ">= 0.8.0" 1959 | } 1960 | }, 1961 | "node_modules/type-fest": { 1962 | "version": "0.20.2", 1963 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", 1964 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", 1965 | "dev": true, 1966 | "engines": { 1967 | "node": ">=10" 1968 | }, 1969 | "funding": { 1970 | "url": "https://github.com/sponsors/sindresorhus" 1971 | } 1972 | }, 1973 | "node_modules/undici": { 1974 | "version": "5.14.0", 1975 | "resolved": "https://registry.npmjs.org/undici/-/undici-5.14.0.tgz", 1976 | "integrity": "sha512-yJlHYw6yXPPsuOH0x2Ib1Km61vu4hLiRRQoafs+WUgX1vO64vgnxiCEN9dpIrhZyHFsai3F0AEj4P9zy19enEQ==", 1977 | "dev": true, 1978 | "dependencies": { 1979 | "busboy": "^1.6.0" 1980 | }, 1981 | "engines": { 1982 | "node": ">=12.18" 1983 | } 1984 | }, 1985 | "node_modules/uri-js": { 1986 | "version": "4.4.1", 1987 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 1988 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 1989 | "dev": true, 1990 | "dependencies": { 1991 | "punycode": "^2.1.0" 1992 | } 1993 | }, 1994 | "node_modules/vite": { 1995 | "version": "4.0.4", 1996 | "resolved": "https://registry.npmjs.org/vite/-/vite-4.0.4.tgz", 1997 | "integrity": "sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==", 1998 | "dev": true, 1999 | "dependencies": { 2000 | "esbuild": "^0.16.3", 2001 | "postcss": "^8.4.20", 2002 | "resolve": "^1.22.1", 2003 | "rollup": "^3.7.0" 2004 | }, 2005 | "bin": { 2006 | "vite": "bin/vite.js" 2007 | }, 2008 | "engines": { 2009 | "node": "^14.18.0 || >=16.0.0" 2010 | }, 2011 | "optionalDependencies": { 2012 | "fsevents": "~2.3.2" 2013 | }, 2014 | "peerDependencies": { 2015 | "@types/node": ">= 14", 2016 | "less": "*", 2017 | "sass": "*", 2018 | "stylus": "*", 2019 | "sugarss": "*", 2020 | "terser": "^5.4.0" 2021 | }, 2022 | "peerDependenciesMeta": { 2023 | "@types/node": { 2024 | "optional": true 2025 | }, 2026 | "less": { 2027 | "optional": true 2028 | }, 2029 | "sass": { 2030 | "optional": true 2031 | }, 2032 | "stylus": { 2033 | "optional": true 2034 | }, 2035 | "sugarss": { 2036 | "optional": true 2037 | }, 2038 | "terser": { 2039 | "optional": true 2040 | } 2041 | } 2042 | }, 2043 | "node_modules/vitefu": { 2044 | "version": "0.2.4", 2045 | "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.4.tgz", 2046 | "integrity": "sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==", 2047 | "dev": true, 2048 | "peerDependencies": { 2049 | "vite": "^3.0.0 || ^4.0.0" 2050 | }, 2051 | "peerDependenciesMeta": { 2052 | "vite": { 2053 | "optional": true 2054 | } 2055 | } 2056 | }, 2057 | "node_modules/which": { 2058 | "version": "2.0.2", 2059 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 2060 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 2061 | "dev": true, 2062 | "dependencies": { 2063 | "isexe": "^2.0.0" 2064 | }, 2065 | "bin": { 2066 | "node-which": "bin/node-which" 2067 | }, 2068 | "engines": { 2069 | "node": ">= 8" 2070 | } 2071 | }, 2072 | "node_modules/word-wrap": { 2073 | "version": "1.2.3", 2074 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", 2075 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", 2076 | "dev": true, 2077 | "engines": { 2078 | "node": ">=0.10.0" 2079 | } 2080 | }, 2081 | "node_modules/wrappy": { 2082 | "version": "1.0.2", 2083 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2084 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 2085 | "dev": true 2086 | }, 2087 | "node_modules/yocto-queue": { 2088 | "version": "0.1.0", 2089 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 2090 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 2091 | "dev": true, 2092 | "engines": { 2093 | "node": ">=10" 2094 | }, 2095 | "funding": { 2096 | "url": "https://github.com/sponsors/sindresorhus" 2097 | } 2098 | } 2099 | }, 2100 | "dependencies": { 2101 | "@esbuild/android-arm": { 2102 | "version": "0.16.14", 2103 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.14.tgz", 2104 | "integrity": "sha512-u0rITLxFIeYAvtJXBQNhNuV4YZe+MD1YvIWT7Nicj8hZAtRVZk2PgNH6KclcKDVHz1ChLKXRfX7d7tkbQBUfrg==", 2105 | "dev": true, 2106 | "optional": true 2107 | }, 2108 | "@esbuild/android-arm64": { 2109 | "version": "0.16.14", 2110 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.14.tgz", 2111 | "integrity": "sha512-hTqB6Iq13pW4xaydeqQrs8vPntUnMjbkq+PgGiBMi69eYk74naG2ftHWqKnxn874kNrt5Or3rQ0PJutx2doJuQ==", 2112 | "dev": true, 2113 | "optional": true 2114 | }, 2115 | "@esbuild/android-x64": { 2116 | "version": "0.16.14", 2117 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.14.tgz", 2118 | "integrity": "sha512-jir51K4J0K5Rt0KOcippjSNdOl7akKDVz5I6yrqdk4/m9y+rldGptQUF7qU4YpX8U61LtR+w2Tu2Ph+K/UaJOw==", 2119 | "dev": true, 2120 | "optional": true 2121 | }, 2122 | "@esbuild/darwin-arm64": { 2123 | "version": "0.16.14", 2124 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.14.tgz", 2125 | "integrity": "sha512-vrlaP81IuwPaw1fyX8fHCmivP3Gr73ojVEZy+oWJLAiZVcG8o8Phwun/XDnYIFUHxIoUnMFEpg9o38MIvlw8zw==", 2126 | "dev": true, 2127 | "optional": true 2128 | }, 2129 | "@esbuild/darwin-x64": { 2130 | "version": "0.16.14", 2131 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.14.tgz", 2132 | "integrity": "sha512-KV1E01eC2hGYA2qzFDRCK4wdZCRUvMwCNcobgpiiOzp5QXpJBqFPdxI69j8vvzuU7oxFXDgANwEkXvpeQqyOyg==", 2133 | "dev": true, 2134 | "optional": true 2135 | }, 2136 | "@esbuild/freebsd-arm64": { 2137 | "version": "0.16.14", 2138 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.14.tgz", 2139 | "integrity": "sha512-xRM1RQsazSvL42BNa5XC7ytD4ZDp0ZyJcH7aB0SlYUcHexJUKiDNKR7dlRVlpt6W0DvoRPU2nWK/9/QWS4u2fw==", 2140 | "dev": true, 2141 | "optional": true 2142 | }, 2143 | "@esbuild/freebsd-x64": { 2144 | "version": "0.16.14", 2145 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.14.tgz", 2146 | "integrity": "sha512-7ALTAn6YRRf1O6fw9jmn0rWmOx3XfwDo7njGtjy1LXhDGUjTY/vohEPM3ii5MQ411vJv1r498EEx2aBQTJcrEw==", 2147 | "dev": true, 2148 | "optional": true 2149 | }, 2150 | "@esbuild/linux-arm": { 2151 | "version": "0.16.14", 2152 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.14.tgz", 2153 | "integrity": "sha512-X6xULug66ulrr4IzrW7qq+eq9n4MtEyagdWvj4o4cmWr+JXOT47atjpDF9j5M2zHY0UQBmqnHhwl+tXpkpIb2w==", 2154 | "dev": true, 2155 | "optional": true 2156 | }, 2157 | "@esbuild/linux-arm64": { 2158 | "version": "0.16.14", 2159 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.14.tgz", 2160 | "integrity": "sha512-TLh2OcbBUQcMYRH4GbiDkDZfZ4t1A3GgmeXY27dHSI6xrU7IkO00MGBiJySmEV6sH3Wa6pAN6UtaVL0DwkGW4Q==", 2161 | "dev": true, 2162 | "optional": true 2163 | }, 2164 | "@esbuild/linux-ia32": { 2165 | "version": "0.16.14", 2166 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.14.tgz", 2167 | "integrity": "sha512-oBZkcZ56UZDFCAfE3Fd/Jgy10EoS7Td77NzNGenM+HSY8BkdQAcI9VF9qgwdOLZ+tuftWD7UqZ26SAhtvA3XhA==", 2168 | "dev": true, 2169 | "optional": true 2170 | }, 2171 | "@esbuild/linux-loong64": { 2172 | "version": "0.16.14", 2173 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.14.tgz", 2174 | "integrity": "sha512-udz/aEHTcuHP+xdWOJmZ5C9RQXHfZd/EhCnTi1Hfay37zH3lBxn/fNs85LA9HlsniFw2zccgcbrrTMKk7Cn1Qg==", 2175 | "dev": true, 2176 | "optional": true 2177 | }, 2178 | "@esbuild/linux-mips64el": { 2179 | "version": "0.16.14", 2180 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.14.tgz", 2181 | "integrity": "sha512-kJ2iEnikUOdC1SiTGbH0fJUgpZwa0ITDTvj9EHf9lm3I0hZ4Yugsb3M6XSl696jVxrEocLe519/8CbSpQWFSrg==", 2182 | "dev": true, 2183 | "optional": true 2184 | }, 2185 | "@esbuild/linux-ppc64": { 2186 | "version": "0.16.14", 2187 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.14.tgz", 2188 | "integrity": "sha512-kclKxvZvX5YhykwlJ/K9ljiY4THe5vXubXpWmr7q3Zu3WxKnUe1VOZmhkEZlqtnJx31GHPEV4SIG95IqTdfgfg==", 2189 | "dev": true, 2190 | "optional": true 2191 | }, 2192 | "@esbuild/linux-riscv64": { 2193 | "version": "0.16.14", 2194 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.14.tgz", 2195 | "integrity": "sha512-fdwP9Dc+Kx/cZwp9T9kNqjAE/PQjfrxbio4rZ3XnC3cVvZBjuxpkiyu/tuCwt6SbAK5th6AYNjFdEV9kGC020A==", 2196 | "dev": true, 2197 | "optional": true 2198 | }, 2199 | "@esbuild/linux-s390x": { 2200 | "version": "0.16.14", 2201 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.14.tgz", 2202 | "integrity": "sha512-++fw3P4fQk9nqvdzbANRqimKspL8pDCnSpXomyhV7V/ISha/BZIYvZwLBWVKp9CVWKwWPJ4ktsezuLIvlJRHqA==", 2203 | "dev": true, 2204 | "optional": true 2205 | }, 2206 | "@esbuild/linux-x64": { 2207 | "version": "0.16.14", 2208 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.14.tgz", 2209 | "integrity": "sha512-TomtswAuzBf2NnddlrS4W01Tv85RM9YtATB3OugY6On0PLM4Ksz5qvQKVAjtzPKoLgL1FiZtfc8mkZc4IgoMEA==", 2210 | "dev": true, 2211 | "optional": true 2212 | }, 2213 | "@esbuild/netbsd-x64": { 2214 | "version": "0.16.14", 2215 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.14.tgz", 2216 | "integrity": "sha512-U06pfx8P5CqyoPNfqIJmnf+5/r4mJ1S62G4zE6eOjS59naQcxi6GnscUCPH3b+hRG0qdKoGX49RAyiqW+M9aSw==", 2217 | "dev": true, 2218 | "optional": true 2219 | }, 2220 | "@esbuild/openbsd-x64": { 2221 | "version": "0.16.14", 2222 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.14.tgz", 2223 | "integrity": "sha512-/Jl8XVaWEZNu9rZw+n792GIBupQwHo6GDoapHSb/2xp/Ku28eK6QpR2O9cPBkzHH4OOoMH0LB6zg/qczJ5TTGg==", 2224 | "dev": true, 2225 | "optional": true 2226 | }, 2227 | "@esbuild/sunos-x64": { 2228 | "version": "0.16.14", 2229 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.14.tgz", 2230 | "integrity": "sha512-2iI7D34uTbDn/TaSiUbEHz+fUa8KbN90vX5yYqo12QGpu6T8Jl+kxODsWuMCwoTVlqUpwfPV22nBbFPME9OPtw==", 2231 | "dev": true, 2232 | "optional": true 2233 | }, 2234 | "@esbuild/win32-arm64": { 2235 | "version": "0.16.14", 2236 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.14.tgz", 2237 | "integrity": "sha512-SjlM7AHmQVTiGBJE/nqauY1aDh80UBsXZ94g4g60CDkrDMseatiqALVcIuElg4ZSYzJs8hsg5W6zS2zLpZTVgg==", 2238 | "dev": true, 2239 | "optional": true 2240 | }, 2241 | "@esbuild/win32-ia32": { 2242 | "version": "0.16.14", 2243 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.14.tgz", 2244 | "integrity": "sha512-z06t5zqk8ak0Xom5HG81z2iOQ1hNWYsFQp3sczVLVx+dctWdgl80tNRyTbwjaFfui2vFO12dfE3trCTvA+HO4g==", 2245 | "dev": true, 2246 | "optional": true 2247 | }, 2248 | "@esbuild/win32-x64": { 2249 | "version": "0.16.14", 2250 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.14.tgz", 2251 | "integrity": "sha512-ED1UpWcM6lAbalbbQ9TrGqJh4Y9TaASUvu8bI/0mgJcxhSByJ6rbpgqRhxYMaQ682WfA71nxUreaTO7L275zrw==", 2252 | "dev": true, 2253 | "optional": true 2254 | }, 2255 | "@eslint/eslintrc": { 2256 | "version": "1.4.1", 2257 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", 2258 | "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", 2259 | "dev": true, 2260 | "requires": { 2261 | "ajv": "^6.12.4", 2262 | "debug": "^4.3.2", 2263 | "espree": "^9.4.0", 2264 | "globals": "^13.19.0", 2265 | "ignore": "^5.2.0", 2266 | "import-fresh": "^3.2.1", 2267 | "js-yaml": "^4.1.0", 2268 | "minimatch": "^3.1.2", 2269 | "strip-json-comments": "^3.1.1" 2270 | } 2271 | }, 2272 | "@humanwhocodes/config-array": { 2273 | "version": "0.11.8", 2274 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", 2275 | "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", 2276 | "dev": true, 2277 | "requires": { 2278 | "@humanwhocodes/object-schema": "^1.2.1", 2279 | "debug": "^4.1.1", 2280 | "minimatch": "^3.0.5" 2281 | } 2282 | }, 2283 | "@humanwhocodes/module-importer": { 2284 | "version": "1.0.1", 2285 | "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", 2286 | "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", 2287 | "dev": true 2288 | }, 2289 | "@humanwhocodes/object-schema": { 2290 | "version": "1.2.1", 2291 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", 2292 | "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", 2293 | "dev": true 2294 | }, 2295 | "@jridgewell/sourcemap-codec": { 2296 | "version": "1.4.14", 2297 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", 2298 | "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", 2299 | "dev": true 2300 | }, 2301 | "@nodelib/fs.scandir": { 2302 | "version": "2.1.5", 2303 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 2304 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 2305 | "dev": true, 2306 | "requires": { 2307 | "@nodelib/fs.stat": "2.0.5", 2308 | "run-parallel": "^1.1.9" 2309 | } 2310 | }, 2311 | "@nodelib/fs.stat": { 2312 | "version": "2.0.5", 2313 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 2314 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 2315 | "dev": true 2316 | }, 2317 | "@nodelib/fs.walk": { 2318 | "version": "1.2.8", 2319 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 2320 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 2321 | "dev": true, 2322 | "requires": { 2323 | "@nodelib/fs.scandir": "2.1.5", 2324 | "fastq": "^1.6.0" 2325 | } 2326 | }, 2327 | "@polka/url": { 2328 | "version": "1.0.0-next.21", 2329 | "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", 2330 | "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", 2331 | "dev": true 2332 | }, 2333 | "@sveltejs/adapter-auto": { 2334 | "version": "1.0.0", 2335 | "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-1.0.0.tgz", 2336 | "integrity": "sha512-yKyPvlLVua1bJ/42FrR3X041mFGdB4GzTZOAEoHUcNBRE5Mhx94+eqHpC3hNvAOiLEDcKfVO0ObyKSu7qldU+w==", 2337 | "dev": true, 2338 | "requires": { 2339 | "import-meta-resolve": "^2.2.0" 2340 | } 2341 | }, 2342 | "@sveltejs/kit": { 2343 | "version": "1.0.3", 2344 | "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.0.3.tgz", 2345 | "integrity": "sha512-Mv6KSeJTvHC6RIuLDMPZ8E60zafmyMHjjoXXKwRnD0gdTGdNqnkTd8D9KdJe6zOKKkz7ccldbCtsWW4/XPwgmg==", 2346 | "dev": true, 2347 | "requires": { 2348 | "@sveltejs/vite-plugin-svelte": "^2.0.0", 2349 | "@types/cookie": "^0.5.1", 2350 | "cookie": "^0.5.0", 2351 | "devalue": "^4.2.0", 2352 | "esm-env": "^1.0.0", 2353 | "kleur": "^4.1.5", 2354 | "magic-string": "^0.27.0", 2355 | "mime": "^3.0.0", 2356 | "sade": "^1.8.1", 2357 | "set-cookie-parser": "^2.5.1", 2358 | "sirv": "^2.0.2", 2359 | "tiny-glob": "^0.2.9", 2360 | "undici": "5.14.0" 2361 | } 2362 | }, 2363 | "@sveltejs/vite-plugin-svelte": { 2364 | "version": "2.0.2", 2365 | "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.0.2.tgz", 2366 | "integrity": "sha512-xCEan0/NNpQuL0l5aS42FjwQ6wwskdxC3pW1OeFtEKNZwRg7Evro9lac9HesGP6TdFsTv2xMes5ASQVKbCacxg==", 2367 | "dev": true, 2368 | "requires": { 2369 | "debug": "^4.3.4", 2370 | "deepmerge": "^4.2.2", 2371 | "kleur": "^4.1.5", 2372 | "magic-string": "^0.27.0", 2373 | "svelte-hmr": "^0.15.1", 2374 | "vitefu": "^0.2.3" 2375 | } 2376 | }, 2377 | "@types/cookie": { 2378 | "version": "0.5.1", 2379 | "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.1.tgz", 2380 | "integrity": "sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==", 2381 | "dev": true 2382 | }, 2383 | "acorn": { 2384 | "version": "8.8.1", 2385 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", 2386 | "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", 2387 | "dev": true 2388 | }, 2389 | "acorn-jsx": { 2390 | "version": "5.3.2", 2391 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 2392 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 2393 | "dev": true, 2394 | "requires": {} 2395 | }, 2396 | "ajv": { 2397 | "version": "6.12.6", 2398 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 2399 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 2400 | "dev": true, 2401 | "requires": { 2402 | "fast-deep-equal": "^3.1.1", 2403 | "fast-json-stable-stringify": "^2.0.0", 2404 | "json-schema-traverse": "^0.4.1", 2405 | "uri-js": "^4.2.2" 2406 | } 2407 | }, 2408 | "ansi-regex": { 2409 | "version": "5.0.1", 2410 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 2411 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 2412 | "dev": true 2413 | }, 2414 | "ansi-styles": { 2415 | "version": "4.3.0", 2416 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 2417 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 2418 | "dev": true, 2419 | "requires": { 2420 | "color-convert": "^2.0.1" 2421 | } 2422 | }, 2423 | "argparse": { 2424 | "version": "2.0.1", 2425 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 2426 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 2427 | "dev": true 2428 | }, 2429 | "balanced-match": { 2430 | "version": "1.0.2", 2431 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 2432 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 2433 | "dev": true 2434 | }, 2435 | "brace-expansion": { 2436 | "version": "1.1.11", 2437 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 2438 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 2439 | "dev": true, 2440 | "requires": { 2441 | "balanced-match": "^1.0.0", 2442 | "concat-map": "0.0.1" 2443 | } 2444 | }, 2445 | "busboy": { 2446 | "version": "1.6.0", 2447 | "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", 2448 | "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", 2449 | "dev": true, 2450 | "requires": { 2451 | "streamsearch": "^1.1.0" 2452 | } 2453 | }, 2454 | "callsites": { 2455 | "version": "3.1.0", 2456 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 2457 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 2458 | "dev": true 2459 | }, 2460 | "chalk": { 2461 | "version": "4.1.2", 2462 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 2463 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 2464 | "dev": true, 2465 | "requires": { 2466 | "ansi-styles": "^4.1.0", 2467 | "supports-color": "^7.1.0" 2468 | } 2469 | }, 2470 | "color-convert": { 2471 | "version": "2.0.1", 2472 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 2473 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 2474 | "dev": true, 2475 | "requires": { 2476 | "color-name": "~1.1.4" 2477 | } 2478 | }, 2479 | "color-name": { 2480 | "version": "1.1.4", 2481 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 2482 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 2483 | "dev": true 2484 | }, 2485 | "concat-map": { 2486 | "version": "0.0.1", 2487 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 2488 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 2489 | "dev": true 2490 | }, 2491 | "cookie": { 2492 | "version": "0.5.0", 2493 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", 2494 | "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", 2495 | "dev": true 2496 | }, 2497 | "cross-spawn": { 2498 | "version": "7.0.3", 2499 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 2500 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 2501 | "dev": true, 2502 | "requires": { 2503 | "path-key": "^3.1.0", 2504 | "shebang-command": "^2.0.0", 2505 | "which": "^2.0.1" 2506 | } 2507 | }, 2508 | "debug": { 2509 | "version": "4.3.4", 2510 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 2511 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 2512 | "dev": true, 2513 | "requires": { 2514 | "ms": "2.1.2" 2515 | } 2516 | }, 2517 | "deep-is": { 2518 | "version": "0.1.4", 2519 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 2520 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 2521 | "dev": true 2522 | }, 2523 | "deepmerge": { 2524 | "version": "4.2.2", 2525 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", 2526 | "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", 2527 | "dev": true 2528 | }, 2529 | "devalue": { 2530 | "version": "4.2.0", 2531 | "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.2.0.tgz", 2532 | "integrity": "sha512-mbjoAaCL2qogBKgeFxFPOXAUsZchircF+B/79LD4sHH0+NHfYm8gZpQrskKDn5gENGt35+5OI1GUF7hLVnkPDw==", 2533 | "dev": true 2534 | }, 2535 | "doctrine": { 2536 | "version": "3.0.0", 2537 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 2538 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 2539 | "dev": true, 2540 | "requires": { 2541 | "esutils": "^2.0.2" 2542 | } 2543 | }, 2544 | "esbuild": { 2545 | "version": "0.16.14", 2546 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.14.tgz", 2547 | "integrity": "sha512-6xAn3O6ZZyoxZAEkwfI9hw4cEqSr/o1ViJtnkvImVkblmUN65Md04o0S/7H1WNu1XGf1Cjij/on7VO4psIYjkw==", 2548 | "dev": true, 2549 | "requires": { 2550 | "@esbuild/android-arm": "0.16.14", 2551 | "@esbuild/android-arm64": "0.16.14", 2552 | "@esbuild/android-x64": "0.16.14", 2553 | "@esbuild/darwin-arm64": "0.16.14", 2554 | "@esbuild/darwin-x64": "0.16.14", 2555 | "@esbuild/freebsd-arm64": "0.16.14", 2556 | "@esbuild/freebsd-x64": "0.16.14", 2557 | "@esbuild/linux-arm": "0.16.14", 2558 | "@esbuild/linux-arm64": "0.16.14", 2559 | "@esbuild/linux-ia32": "0.16.14", 2560 | "@esbuild/linux-loong64": "0.16.14", 2561 | "@esbuild/linux-mips64el": "0.16.14", 2562 | "@esbuild/linux-ppc64": "0.16.14", 2563 | "@esbuild/linux-riscv64": "0.16.14", 2564 | "@esbuild/linux-s390x": "0.16.14", 2565 | "@esbuild/linux-x64": "0.16.14", 2566 | "@esbuild/netbsd-x64": "0.16.14", 2567 | "@esbuild/openbsd-x64": "0.16.14", 2568 | "@esbuild/sunos-x64": "0.16.14", 2569 | "@esbuild/win32-arm64": "0.16.14", 2570 | "@esbuild/win32-ia32": "0.16.14", 2571 | "@esbuild/win32-x64": "0.16.14" 2572 | } 2573 | }, 2574 | "escape-string-regexp": { 2575 | "version": "4.0.0", 2576 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 2577 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 2578 | "dev": true 2579 | }, 2580 | "eslint": { 2581 | "version": "8.31.0", 2582 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.31.0.tgz", 2583 | "integrity": "sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==", 2584 | "dev": true, 2585 | "requires": { 2586 | "@eslint/eslintrc": "^1.4.1", 2587 | "@humanwhocodes/config-array": "^0.11.8", 2588 | "@humanwhocodes/module-importer": "^1.0.1", 2589 | "@nodelib/fs.walk": "^1.2.8", 2590 | "ajv": "^6.10.0", 2591 | "chalk": "^4.0.0", 2592 | "cross-spawn": "^7.0.2", 2593 | "debug": "^4.3.2", 2594 | "doctrine": "^3.0.0", 2595 | "escape-string-regexp": "^4.0.0", 2596 | "eslint-scope": "^7.1.1", 2597 | "eslint-utils": "^3.0.0", 2598 | "eslint-visitor-keys": "^3.3.0", 2599 | "espree": "^9.4.0", 2600 | "esquery": "^1.4.0", 2601 | "esutils": "^2.0.2", 2602 | "fast-deep-equal": "^3.1.3", 2603 | "file-entry-cache": "^6.0.1", 2604 | "find-up": "^5.0.0", 2605 | "glob-parent": "^6.0.2", 2606 | "globals": "^13.19.0", 2607 | "grapheme-splitter": "^1.0.4", 2608 | "ignore": "^5.2.0", 2609 | "import-fresh": "^3.0.0", 2610 | "imurmurhash": "^0.1.4", 2611 | "is-glob": "^4.0.0", 2612 | "is-path-inside": "^3.0.3", 2613 | "js-sdsl": "^4.1.4", 2614 | "js-yaml": "^4.1.0", 2615 | "json-stable-stringify-without-jsonify": "^1.0.1", 2616 | "levn": "^0.4.1", 2617 | "lodash.merge": "^4.6.2", 2618 | "minimatch": "^3.1.2", 2619 | "natural-compare": "^1.4.0", 2620 | "optionator": "^0.9.1", 2621 | "regexpp": "^3.2.0", 2622 | "strip-ansi": "^6.0.1", 2623 | "strip-json-comments": "^3.1.0", 2624 | "text-table": "^0.2.0" 2625 | } 2626 | }, 2627 | "eslint-config-prettier": { 2628 | "version": "8.6.0", 2629 | "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz", 2630 | "integrity": "sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==", 2631 | "dev": true, 2632 | "requires": {} 2633 | }, 2634 | "eslint-plugin-svelte3": { 2635 | "version": "4.0.0", 2636 | "resolved": "https://registry.npmjs.org/eslint-plugin-svelte3/-/eslint-plugin-svelte3-4.0.0.tgz", 2637 | "integrity": "sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==", 2638 | "dev": true, 2639 | "requires": {} 2640 | }, 2641 | "eslint-scope": { 2642 | "version": "7.1.1", 2643 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", 2644 | "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", 2645 | "dev": true, 2646 | "requires": { 2647 | "esrecurse": "^4.3.0", 2648 | "estraverse": "^5.2.0" 2649 | } 2650 | }, 2651 | "eslint-utils": { 2652 | "version": "3.0.0", 2653 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", 2654 | "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", 2655 | "dev": true, 2656 | "requires": { 2657 | "eslint-visitor-keys": "^2.0.0" 2658 | }, 2659 | "dependencies": { 2660 | "eslint-visitor-keys": { 2661 | "version": "2.1.0", 2662 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", 2663 | "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", 2664 | "dev": true 2665 | } 2666 | } 2667 | }, 2668 | "eslint-visitor-keys": { 2669 | "version": "3.3.0", 2670 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", 2671 | "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", 2672 | "dev": true 2673 | }, 2674 | "esm-env": { 2675 | "version": "1.0.0", 2676 | "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz", 2677 | "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==", 2678 | "dev": true 2679 | }, 2680 | "espree": { 2681 | "version": "9.4.1", 2682 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", 2683 | "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", 2684 | "dev": true, 2685 | "requires": { 2686 | "acorn": "^8.8.0", 2687 | "acorn-jsx": "^5.3.2", 2688 | "eslint-visitor-keys": "^3.3.0" 2689 | } 2690 | }, 2691 | "esquery": { 2692 | "version": "1.4.0", 2693 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", 2694 | "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", 2695 | "dev": true, 2696 | "requires": { 2697 | "estraverse": "^5.1.0" 2698 | } 2699 | }, 2700 | "esrecurse": { 2701 | "version": "4.3.0", 2702 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 2703 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 2704 | "dev": true, 2705 | "requires": { 2706 | "estraverse": "^5.2.0" 2707 | } 2708 | }, 2709 | "estraverse": { 2710 | "version": "5.3.0", 2711 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 2712 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 2713 | "dev": true 2714 | }, 2715 | "esutils": { 2716 | "version": "2.0.3", 2717 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 2718 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 2719 | "dev": true 2720 | }, 2721 | "fast-deep-equal": { 2722 | "version": "3.1.3", 2723 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 2724 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 2725 | "dev": true 2726 | }, 2727 | "fast-json-stable-stringify": { 2728 | "version": "2.1.0", 2729 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 2730 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 2731 | "dev": true 2732 | }, 2733 | "fast-levenshtein": { 2734 | "version": "2.0.6", 2735 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 2736 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", 2737 | "dev": true 2738 | }, 2739 | "fastq": { 2740 | "version": "1.15.0", 2741 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", 2742 | "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", 2743 | "dev": true, 2744 | "requires": { 2745 | "reusify": "^1.0.4" 2746 | } 2747 | }, 2748 | "file-entry-cache": { 2749 | "version": "6.0.1", 2750 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", 2751 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", 2752 | "dev": true, 2753 | "requires": { 2754 | "flat-cache": "^3.0.4" 2755 | } 2756 | }, 2757 | "find-up": { 2758 | "version": "5.0.0", 2759 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 2760 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 2761 | "dev": true, 2762 | "requires": { 2763 | "locate-path": "^6.0.0", 2764 | "path-exists": "^4.0.0" 2765 | } 2766 | }, 2767 | "flat-cache": { 2768 | "version": "3.0.4", 2769 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", 2770 | "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", 2771 | "dev": true, 2772 | "requires": { 2773 | "flatted": "^3.1.0", 2774 | "rimraf": "^3.0.2" 2775 | } 2776 | }, 2777 | "flatted": { 2778 | "version": "3.2.7", 2779 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", 2780 | "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", 2781 | "dev": true 2782 | }, 2783 | "fs.realpath": { 2784 | "version": "1.0.0", 2785 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 2786 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", 2787 | "dev": true 2788 | }, 2789 | "fsevents": { 2790 | "version": "2.3.2", 2791 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 2792 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 2793 | "dev": true, 2794 | "optional": true 2795 | }, 2796 | "function-bind": { 2797 | "version": "1.1.1", 2798 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 2799 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 2800 | "dev": true 2801 | }, 2802 | "glob": { 2803 | "version": "7.2.3", 2804 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 2805 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 2806 | "dev": true, 2807 | "requires": { 2808 | "fs.realpath": "^1.0.0", 2809 | "inflight": "^1.0.4", 2810 | "inherits": "2", 2811 | "minimatch": "^3.1.1", 2812 | "once": "^1.3.0", 2813 | "path-is-absolute": "^1.0.0" 2814 | } 2815 | }, 2816 | "glob-parent": { 2817 | "version": "6.0.2", 2818 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 2819 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 2820 | "dev": true, 2821 | "requires": { 2822 | "is-glob": "^4.0.3" 2823 | } 2824 | }, 2825 | "globals": { 2826 | "version": "13.19.0", 2827 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", 2828 | "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", 2829 | "dev": true, 2830 | "requires": { 2831 | "type-fest": "^0.20.2" 2832 | } 2833 | }, 2834 | "globalyzer": { 2835 | "version": "0.1.0", 2836 | "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", 2837 | "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", 2838 | "dev": true 2839 | }, 2840 | "globrex": { 2841 | "version": "0.1.2", 2842 | "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", 2843 | "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", 2844 | "dev": true 2845 | }, 2846 | "grapheme-splitter": { 2847 | "version": "1.0.4", 2848 | "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", 2849 | "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", 2850 | "dev": true 2851 | }, 2852 | "has": { 2853 | "version": "1.0.3", 2854 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 2855 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 2856 | "dev": true, 2857 | "requires": { 2858 | "function-bind": "^1.1.1" 2859 | } 2860 | }, 2861 | "has-flag": { 2862 | "version": "4.0.0", 2863 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 2864 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 2865 | "dev": true 2866 | }, 2867 | "ignore": { 2868 | "version": "5.2.4", 2869 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", 2870 | "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", 2871 | "dev": true 2872 | }, 2873 | "import-fresh": { 2874 | "version": "3.3.0", 2875 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 2876 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 2877 | "dev": true, 2878 | "requires": { 2879 | "parent-module": "^1.0.0", 2880 | "resolve-from": "^4.0.0" 2881 | } 2882 | }, 2883 | "import-meta-resolve": { 2884 | "version": "2.2.0", 2885 | "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-2.2.0.tgz", 2886 | "integrity": "sha512-CpPOtiCHxP9HdtDM5F45tNiAe66Cqlv3f5uHoJjt+KlaLrUh9/Wz9vepADZ78SlqEo62aDWZtj9ydMGXV+CPnw==", 2887 | "dev": true 2888 | }, 2889 | "imurmurhash": { 2890 | "version": "0.1.4", 2891 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 2892 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", 2893 | "dev": true 2894 | }, 2895 | "inflight": { 2896 | "version": "1.0.6", 2897 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 2898 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 2899 | "dev": true, 2900 | "requires": { 2901 | "once": "^1.3.0", 2902 | "wrappy": "1" 2903 | } 2904 | }, 2905 | "inherits": { 2906 | "version": "2.0.4", 2907 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 2908 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 2909 | "dev": true 2910 | }, 2911 | "is-core-module": { 2912 | "version": "2.11.0", 2913 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", 2914 | "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", 2915 | "dev": true, 2916 | "requires": { 2917 | "has": "^1.0.3" 2918 | } 2919 | }, 2920 | "is-extglob": { 2921 | "version": "2.1.1", 2922 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 2923 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 2924 | "dev": true 2925 | }, 2926 | "is-glob": { 2927 | "version": "4.0.3", 2928 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 2929 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 2930 | "dev": true, 2931 | "requires": { 2932 | "is-extglob": "^2.1.1" 2933 | } 2934 | }, 2935 | "is-path-inside": { 2936 | "version": "3.0.3", 2937 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", 2938 | "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", 2939 | "dev": true 2940 | }, 2941 | "isexe": { 2942 | "version": "2.0.0", 2943 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2944 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 2945 | "dev": true 2946 | }, 2947 | "js-sdsl": { 2948 | "version": "4.2.0", 2949 | "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", 2950 | "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", 2951 | "dev": true 2952 | }, 2953 | "js-yaml": { 2954 | "version": "4.1.0", 2955 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 2956 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 2957 | "dev": true, 2958 | "requires": { 2959 | "argparse": "^2.0.1" 2960 | } 2961 | }, 2962 | "json-schema-traverse": { 2963 | "version": "0.4.1", 2964 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 2965 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 2966 | "dev": true 2967 | }, 2968 | "json-stable-stringify-without-jsonify": { 2969 | "version": "1.0.1", 2970 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 2971 | "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", 2972 | "dev": true 2973 | }, 2974 | "kleur": { 2975 | "version": "4.1.5", 2976 | "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", 2977 | "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", 2978 | "dev": true 2979 | }, 2980 | "levn": { 2981 | "version": "0.4.1", 2982 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 2983 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 2984 | "dev": true, 2985 | "requires": { 2986 | "prelude-ls": "^1.2.1", 2987 | "type-check": "~0.4.0" 2988 | } 2989 | }, 2990 | "locate-path": { 2991 | "version": "6.0.0", 2992 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 2993 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 2994 | "dev": true, 2995 | "requires": { 2996 | "p-locate": "^5.0.0" 2997 | } 2998 | }, 2999 | "lodash.merge": { 3000 | "version": "4.6.2", 3001 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 3002 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 3003 | "dev": true 3004 | }, 3005 | "magic-string": { 3006 | "version": "0.27.0", 3007 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", 3008 | "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", 3009 | "dev": true, 3010 | "requires": { 3011 | "@jridgewell/sourcemap-codec": "^1.4.13" 3012 | } 3013 | }, 3014 | "mime": { 3015 | "version": "3.0.0", 3016 | "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", 3017 | "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", 3018 | "dev": true 3019 | }, 3020 | "minimatch": { 3021 | "version": "3.1.2", 3022 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 3023 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 3024 | "dev": true, 3025 | "requires": { 3026 | "brace-expansion": "^1.1.7" 3027 | } 3028 | }, 3029 | "mri": { 3030 | "version": "1.2.0", 3031 | "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", 3032 | "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", 3033 | "dev": true 3034 | }, 3035 | "mrmime": { 3036 | "version": "1.0.1", 3037 | "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", 3038 | "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", 3039 | "dev": true 3040 | }, 3041 | "ms": { 3042 | "version": "2.1.2", 3043 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 3044 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 3045 | "dev": true 3046 | }, 3047 | "nanoid": { 3048 | "version": "3.3.4", 3049 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 3050 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", 3051 | "dev": true 3052 | }, 3053 | "natural-compare": { 3054 | "version": "1.4.0", 3055 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 3056 | "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", 3057 | "dev": true 3058 | }, 3059 | "once": { 3060 | "version": "1.4.0", 3061 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 3062 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 3063 | "dev": true, 3064 | "requires": { 3065 | "wrappy": "1" 3066 | } 3067 | }, 3068 | "optionator": { 3069 | "version": "0.9.1", 3070 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", 3071 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", 3072 | "dev": true, 3073 | "requires": { 3074 | "deep-is": "^0.1.3", 3075 | "fast-levenshtein": "^2.0.6", 3076 | "levn": "^0.4.1", 3077 | "prelude-ls": "^1.2.1", 3078 | "type-check": "^0.4.0", 3079 | "word-wrap": "^1.2.3" 3080 | } 3081 | }, 3082 | "p-limit": { 3083 | "version": "3.1.0", 3084 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 3085 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 3086 | "dev": true, 3087 | "requires": { 3088 | "yocto-queue": "^0.1.0" 3089 | } 3090 | }, 3091 | "p-locate": { 3092 | "version": "5.0.0", 3093 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 3094 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 3095 | "dev": true, 3096 | "requires": { 3097 | "p-limit": "^3.0.2" 3098 | } 3099 | }, 3100 | "parent-module": { 3101 | "version": "1.0.1", 3102 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 3103 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 3104 | "dev": true, 3105 | "requires": { 3106 | "callsites": "^3.0.0" 3107 | } 3108 | }, 3109 | "path-exists": { 3110 | "version": "4.0.0", 3111 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 3112 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 3113 | "dev": true 3114 | }, 3115 | "path-is-absolute": { 3116 | "version": "1.0.1", 3117 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 3118 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 3119 | "dev": true 3120 | }, 3121 | "path-key": { 3122 | "version": "3.1.1", 3123 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 3124 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 3125 | "dev": true 3126 | }, 3127 | "path-parse": { 3128 | "version": "1.0.7", 3129 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 3130 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 3131 | "dev": true 3132 | }, 3133 | "picocolors": { 3134 | "version": "1.0.0", 3135 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 3136 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 3137 | "dev": true 3138 | }, 3139 | "pocketbase": { 3140 | "version": "0.9.1", 3141 | "resolved": "https://registry.npmjs.org/pocketbase/-/pocketbase-0.9.1.tgz", 3142 | "integrity": "sha512-a9S/WHak+mgr3WI8bD2tz3lFVFzoy6ZgKTBlUXwIH4VLTKVU3JKeAKxqIFBF7av4qblmB+52tX8sWLS08Ftm/w==" 3143 | }, 3144 | "postcss": { 3145 | "version": "8.4.20", 3146 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.20.tgz", 3147 | "integrity": "sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==", 3148 | "dev": true, 3149 | "requires": { 3150 | "nanoid": "^3.3.4", 3151 | "picocolors": "^1.0.0", 3152 | "source-map-js": "^1.0.2" 3153 | } 3154 | }, 3155 | "prelude-ls": { 3156 | "version": "1.2.1", 3157 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 3158 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 3159 | "dev": true 3160 | }, 3161 | "prettier": { 3162 | "version": "2.8.1", 3163 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz", 3164 | "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==", 3165 | "dev": true 3166 | }, 3167 | "prettier-plugin-svelte": { 3168 | "version": "2.9.0", 3169 | "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.9.0.tgz", 3170 | "integrity": "sha512-3doBi5NO4IVgaNPtwewvrgPpqAcvNv0NwJNflr76PIGgi9nf1oguQV1Hpdm9TI2ALIQVn/9iIwLpBO5UcD2Jiw==", 3171 | "dev": true, 3172 | "requires": {} 3173 | }, 3174 | "punycode": { 3175 | "version": "2.1.1", 3176 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 3177 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 3178 | "dev": true 3179 | }, 3180 | "queue-microtask": { 3181 | "version": "1.2.3", 3182 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 3183 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 3184 | "dev": true 3185 | }, 3186 | "regexpp": { 3187 | "version": "3.2.0", 3188 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", 3189 | "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", 3190 | "dev": true 3191 | }, 3192 | "resolve": { 3193 | "version": "1.22.1", 3194 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", 3195 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", 3196 | "dev": true, 3197 | "requires": { 3198 | "is-core-module": "^2.9.0", 3199 | "path-parse": "^1.0.7", 3200 | "supports-preserve-symlinks-flag": "^1.0.0" 3201 | } 3202 | }, 3203 | "resolve-from": { 3204 | "version": "4.0.0", 3205 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 3206 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 3207 | "dev": true 3208 | }, 3209 | "reusify": { 3210 | "version": "1.0.4", 3211 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 3212 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 3213 | "dev": true 3214 | }, 3215 | "rimraf": { 3216 | "version": "3.0.2", 3217 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 3218 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 3219 | "dev": true, 3220 | "requires": { 3221 | "glob": "^7.1.3" 3222 | } 3223 | }, 3224 | "rollup": { 3225 | "version": "3.9.1", 3226 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.9.1.tgz", 3227 | "integrity": "sha512-GswCYHXftN8ZKGVgQhTFUJB/NBXxrRGgO2NCy6E8s1rwEJ4Q9/VttNqcYfEvx4dTo4j58YqdC3OVztPzlKSX8w==", 3228 | "dev": true, 3229 | "requires": { 3230 | "fsevents": "~2.3.2" 3231 | } 3232 | }, 3233 | "run-parallel": { 3234 | "version": "1.2.0", 3235 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 3236 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 3237 | "dev": true, 3238 | "requires": { 3239 | "queue-microtask": "^1.2.2" 3240 | } 3241 | }, 3242 | "sade": { 3243 | "version": "1.8.1", 3244 | "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", 3245 | "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", 3246 | "dev": true, 3247 | "requires": { 3248 | "mri": "^1.1.0" 3249 | } 3250 | }, 3251 | "set-cookie-parser": { 3252 | "version": "2.5.1", 3253 | "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz", 3254 | "integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==", 3255 | "dev": true 3256 | }, 3257 | "shebang-command": { 3258 | "version": "2.0.0", 3259 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 3260 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 3261 | "dev": true, 3262 | "requires": { 3263 | "shebang-regex": "^3.0.0" 3264 | } 3265 | }, 3266 | "shebang-regex": { 3267 | "version": "3.0.0", 3268 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 3269 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 3270 | "dev": true 3271 | }, 3272 | "sirv": { 3273 | "version": "2.0.2", 3274 | "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz", 3275 | "integrity": "sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==", 3276 | "dev": true, 3277 | "requires": { 3278 | "@polka/url": "^1.0.0-next.20", 3279 | "mrmime": "^1.0.0", 3280 | "totalist": "^3.0.0" 3281 | } 3282 | }, 3283 | "source-map-js": { 3284 | "version": "1.0.2", 3285 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 3286 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 3287 | "dev": true 3288 | }, 3289 | "streamsearch": { 3290 | "version": "1.1.0", 3291 | "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", 3292 | "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", 3293 | "dev": true 3294 | }, 3295 | "strip-ansi": { 3296 | "version": "6.0.1", 3297 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 3298 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 3299 | "dev": true, 3300 | "requires": { 3301 | "ansi-regex": "^5.0.1" 3302 | } 3303 | }, 3304 | "strip-json-comments": { 3305 | "version": "3.1.1", 3306 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 3307 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 3308 | "dev": true 3309 | }, 3310 | "supports-color": { 3311 | "version": "7.2.0", 3312 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 3313 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 3314 | "dev": true, 3315 | "requires": { 3316 | "has-flag": "^4.0.0" 3317 | } 3318 | }, 3319 | "supports-preserve-symlinks-flag": { 3320 | "version": "1.0.0", 3321 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 3322 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 3323 | "dev": true 3324 | }, 3325 | "svelte": { 3326 | "version": "3.55.0", 3327 | "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.55.0.tgz", 3328 | "integrity": "sha512-uGu2FVMlOuey4JoKHKrpZFkoYyj0VLjJdz47zX5+gVK5odxHM40RVhar9/iK2YFRVxvfg9FkhfVlR0sjeIrOiA==" 3329 | }, 3330 | "svelte-french-toast": { 3331 | "version": "1.0.3", 3332 | "resolved": "https://registry.npmjs.org/svelte-french-toast/-/svelte-french-toast-1.0.3.tgz", 3333 | "integrity": "sha512-HBdutlqUx5FroucvcmMJstmTJDedXayiOSXubBYW6iL5x1PdHp+bOflGx5NxsOa6+EQckJnnVv1vJYgGsg7ngQ==", 3334 | "requires": { 3335 | "svelte-writable-derived": "^2.1.3" 3336 | } 3337 | }, 3338 | "svelte-hmr": { 3339 | "version": "0.15.1", 3340 | "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.1.tgz", 3341 | "integrity": "sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==", 3342 | "dev": true, 3343 | "requires": {} 3344 | }, 3345 | "svelte-icons-pack": { 3346 | "version": "2.0.0", 3347 | "resolved": "https://registry.npmjs.org/svelte-icons-pack/-/svelte-icons-pack-2.0.0.tgz", 3348 | "integrity": "sha512-B0EjVQrdURQCY/n//vBmJA/cbrT6ngv6Ja4FXVXUlZjcSKhoXpIgmcQQ0lPH5PpCcJNKbDQYyxPnUW1KTrkWJA==" 3349 | }, 3350 | "svelte-writable-derived": { 3351 | "version": "2.1.6", 3352 | "resolved": "https://registry.npmjs.org/svelte-writable-derived/-/svelte-writable-derived-2.1.6.tgz", 3353 | "integrity": "sha512-vqOXuiESMZyP/kt/RD+nOk2RVHNakDm1K1hmfeGAKc4jzcSp5hEkUi43MDbkVlMurkSBlcMVTQwRQy4LcBT2lw==", 3354 | "requires": {} 3355 | }, 3356 | "text-table": { 3357 | "version": "0.2.0", 3358 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 3359 | "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", 3360 | "dev": true 3361 | }, 3362 | "tiny-glob": { 3363 | "version": "0.2.9", 3364 | "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", 3365 | "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", 3366 | "dev": true, 3367 | "requires": { 3368 | "globalyzer": "0.1.0", 3369 | "globrex": "^0.1.2" 3370 | } 3371 | }, 3372 | "totalist": { 3373 | "version": "3.0.0", 3374 | "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz", 3375 | "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==", 3376 | "dev": true 3377 | }, 3378 | "type-check": { 3379 | "version": "0.4.0", 3380 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 3381 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 3382 | "dev": true, 3383 | "requires": { 3384 | "prelude-ls": "^1.2.1" 3385 | } 3386 | }, 3387 | "type-fest": { 3388 | "version": "0.20.2", 3389 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", 3390 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", 3391 | "dev": true 3392 | }, 3393 | "undici": { 3394 | "version": "5.14.0", 3395 | "resolved": "https://registry.npmjs.org/undici/-/undici-5.14.0.tgz", 3396 | "integrity": "sha512-yJlHYw6yXPPsuOH0x2Ib1Km61vu4hLiRRQoafs+WUgX1vO64vgnxiCEN9dpIrhZyHFsai3F0AEj4P9zy19enEQ==", 3397 | "dev": true, 3398 | "requires": { 3399 | "busboy": "^1.6.0" 3400 | } 3401 | }, 3402 | "uri-js": { 3403 | "version": "4.4.1", 3404 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 3405 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 3406 | "dev": true, 3407 | "requires": { 3408 | "punycode": "^2.1.0" 3409 | } 3410 | }, 3411 | "vite": { 3412 | "version": "4.0.4", 3413 | "resolved": "https://registry.npmjs.org/vite/-/vite-4.0.4.tgz", 3414 | "integrity": "sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==", 3415 | "dev": true, 3416 | "requires": { 3417 | "esbuild": "^0.16.3", 3418 | "fsevents": "~2.3.2", 3419 | "postcss": "^8.4.20", 3420 | "resolve": "^1.22.1", 3421 | "rollup": "^3.7.0" 3422 | } 3423 | }, 3424 | "vitefu": { 3425 | "version": "0.2.4", 3426 | "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.4.tgz", 3427 | "integrity": "sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==", 3428 | "dev": true, 3429 | "requires": {} 3430 | }, 3431 | "which": { 3432 | "version": "2.0.2", 3433 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 3434 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 3435 | "dev": true, 3436 | "requires": { 3437 | "isexe": "^2.0.0" 3438 | } 3439 | }, 3440 | "word-wrap": { 3441 | "version": "1.2.3", 3442 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", 3443 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", 3444 | "dev": true 3445 | }, 3446 | "wrappy": { 3447 | "version": "1.0.2", 3448 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 3449 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 3450 | "dev": true 3451 | }, 3452 | "yocto-queue": { 3453 | "version": "0.1.0", 3454 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 3455 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 3456 | "dev": true 3457 | } 3458 | } 3459 | } 3460 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "svelte-shortener", 3 | "version": "0.0.1", 4 | "private": true, 5 | "scripts": { 6 | "dev": "vite dev", 7 | "build": "vite build", 8 | "preview": "vite preview", 9 | "lint": "prettier --plugin-search-dir . --check . && eslint .", 10 | "format": "prettier --plugin-search-dir . --write ." 11 | }, 12 | "devDependencies": { 13 | "@sveltejs/adapter-auto": "^1.0.0", 14 | "@sveltejs/kit": "^1.0.0", 15 | "eslint": "^8.28.0", 16 | "eslint-config-prettier": "^8.5.0", 17 | "eslint-plugin-svelte3": "^4.0.0", 18 | "prettier": "^2.8.0", 19 | "prettier-plugin-svelte": "^2.8.1", 20 | "svelte": "^3.54.0", 21 | "vite": "^4.0.0" 22 | }, 23 | "type": "module", 24 | "dependencies": { 25 | "pocketbase": "^0.9.1", 26 | "svelte-french-toast": "^1.0.3", 27 | "svelte-icons-pack": "^2.0.0" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /pocketbase/.gitignore: -------------------------------------------------------------------------------- 1 | /pb_data* 2 | /pb_data_backup 3 | *.exe -------------------------------------------------------------------------------- /pocketbase/pb_schema.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "_pb_users_auth_", 4 | "name": "users", 5 | "type": "auth", 6 | "system": false, 7 | "schema": [ 8 | { 9 | "id": "users_name", 10 | "name": "name", 11 | "type": "text", 12 | "system": false, 13 | "required": false, 14 | "unique": false, 15 | "options": { 16 | "min": null, 17 | "max": null, 18 | "pattern": "" 19 | } 20 | }, 21 | { 22 | "id": "users_avatar", 23 | "name": "avatar", 24 | "type": "file", 25 | "system": false, 26 | "required": false, 27 | "unique": false, 28 | "options": { 29 | "maxSelect": 1, 30 | "maxSize": 5242880, 31 | "mimeTypes": [ 32 | "image/jpg", 33 | "image/jpeg", 34 | "image/png", 35 | "image/svg+xml", 36 | "image/gif" 37 | ], 38 | "thumbs": null 39 | } 40 | } 41 | ], 42 | "listRule": null, 43 | "viewRule": null, 44 | "createRule": null, 45 | "updateRule": null, 46 | "deleteRule": null, 47 | "options": { 48 | "allowEmailAuth": true, 49 | "allowOAuth2Auth": false, 50 | "allowUsernameAuth": false, 51 | "exceptEmailDomains": null, 52 | "manageRule": null, 53 | "minPasswordLength": 8, 54 | "onlyEmailDomains": null, 55 | "requireEmail": true 56 | } 57 | }, 58 | { 59 | "id": "b34feb3559zcnxc", 60 | "name": "links", 61 | "type": "base", 62 | "system": false, 63 | "schema": [ 64 | { 65 | "id": "kqxzdonw", 66 | "name": "slug", 67 | "type": "text", 68 | "system": false, 69 | "required": true, 70 | "unique": true, 71 | "options": { 72 | "min": 2, 73 | "max": 32, 74 | "pattern": "" 75 | } 76 | }, 77 | { 78 | "id": "aw3kniph", 79 | "name": "redirect", 80 | "type": "url", 81 | "system": false, 82 | "required": true, 83 | "unique": false, 84 | "options": { 85 | "exceptDomains": null, 86 | "onlyDomains": null 87 | } 88 | } 89 | ], 90 | "listRule": "", 91 | "viewRule": "", 92 | "createRule": "@request.auth.id != \"\" && @request.auth.verified = true", 93 | "updateRule": null, 94 | "deleteRule": null, 95 | "options": {} 96 | } 97 | ] -------------------------------------------------------------------------------- /src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Svelte Shortener 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | %sveltekit.head% 13 | 14 | 15 |
%sveltekit.body%
16 | 17 | 18 | -------------------------------------------------------------------------------- /src/hooks.server.js: -------------------------------------------------------------------------------- 1 | import PocketBase from 'pocketbase'; 2 | import { serializeNonPOJOs } from '$lib/utils'; 3 | import { POCKETBASE_URL } from '$env/static/private'; 4 | 5 | export const handle = async ({ event, resolve }) => { 6 | event.locals.pb = new PocketBase(POCKETBASE_URL); 7 | event.locals.pb.authStore.loadFromCookie(event.request.headers.get('cookie') || ''); 8 | 9 | try { 10 | if (event.locals.pb.authStore.isValid) { 11 | await event.locals.pb.collection('users').authRefresh(); 12 | event.locals.user = serializeNonPOJOs(event.locals.pb.authStore.model); 13 | } 14 | } catch (_) { 15 | event.locals.pb.authStore.clear(); 16 | event.locals.user = undefined; 17 | } 18 | 19 | const response = await resolve(event); 20 | response.headers.set('set-cookie', event.locals.pb.authStore.exportToCookie({ secure: true })); 21 | return response; 22 | }; -------------------------------------------------------------------------------- /src/lib/utils.js: -------------------------------------------------------------------------------- 1 | export const serializeNonPOJOs = (obj) => { 2 | return structuredClone(obj); 3 | }; 4 | 5 | export const pocketbase_url = 'http://127.0.0.1:8090'; 6 | 7 | export const validURL = (str) => { 8 | var pattern = new RegExp('^(https?:\\/\\/)?'+ 9 | '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|'+ 10 | '((\\d{1,3}\\.){3}\\d{1,3}))'+ 11 | '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+ 12 | '(\\?[;&a-z\\d%_.~+=-]*)?'+ 13 | '(\\#[-a-z\\d_]*)?$','i'); 14 | return !!pattern.test(str); 15 | }; 16 | 17 | export const generateRandomSlug = () => { 18 | [...Array(Math.floor(Math.random() * (10 - 5 + 1)) + 5)].map(()=>(~~(Math.random()*36)).toString(36)).join(''); 19 | }; -------------------------------------------------------------------------------- /src/routes/+error.svelte: -------------------------------------------------------------------------------- 1 | 7 | 8 | {#if $page} 9 |
10 |
11 |

{$page.status}: {$page.error.message}

12 |

Something went wrong.

13 | 14 |
15 |
16 | {/if} 17 | 18 | 107 | -------------------------------------------------------------------------------- /src/routes/+layout.server.js: -------------------------------------------------------------------------------- 1 | export const load = ({ locals }) => { 2 | if (locals.user) { 3 | return { 4 | user: locals.user, 5 | }; 6 | } 7 | 8 | return { 9 | user: undefined, 10 | }; 11 | }; -------------------------------------------------------------------------------- /src/routes/+layout.svelte: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/routes/+page.server.js: -------------------------------------------------------------------------------- 1 | import { redirect, error } from '@sveltejs/kit'; 2 | import { validURL, generateRandomSlug } from '$lib/utils'; 3 | 4 | const reservedSlugs = ['login', 'generated']; 5 | 6 | export const load = ({ locals }) => { 7 | if (!locals.user) { 8 | throw redirect(303, '/login'); 9 | } 10 | }; 11 | 12 | export const actions = { 13 | shorten: async ({ request, locals }) => { 14 | const body = await request.formData(); 15 | 16 | if (!body.get('redirect').startsWith('http' || 'https')) { 17 | body.set('redirect', `https://${body.get('redirect')}`); 18 | } 19 | 20 | if (!validURL(body.get('redirect'))) { 21 | throw error(400, 'Invalid URL'); 22 | } 23 | 24 | if (!body.get('slug')) { 25 | body.set('slug', generateRandomSlug()); 26 | } 27 | 28 | if (body.get('slug').includes('/')) { 29 | body.set('slug', body.get('slug').replace('/', '-')); 30 | } 31 | 32 | if (reservedSlugs.includes(body.get('slug'))) { 33 | throw error(400, 'Slug is reserved'); 34 | } 35 | 36 | const data = { 37 | "slug": body.get('slug'), 38 | "redirect": body.get('redirect') 39 | }; 40 | 41 | try { 42 | await locals.pb.collection('links').create(data); 43 | } catch (err) { 44 | console.log('Error: ', err); 45 | throw error(500, err); 46 | } 47 | 48 | throw redirect(303, `/generated/${body.get('slug')}`); 49 | } 50 | }; -------------------------------------------------------------------------------- /src/routes/+page.svelte: -------------------------------------------------------------------------------- 1 | 5 | 6 |
7 |
8 | 9 |

Svelte Shortener

10 |

Shorten your links

11 |
12 | 13 | 14 | 15 | 16 | 17 |
18 |
19 |

Built with

20 | 28 |
29 |
30 |
31 | 32 | 225 | -------------------------------------------------------------------------------- /src/routes/[slug]/+page.server.js: -------------------------------------------------------------------------------- 1 | import { redirect, error } from '@sveltejs/kit'; 2 | 3 | export const load = async ({ params, locals }) => { 4 | const slug = params.slug; 5 | const link = await locals.pb.collection('links').getFullList(undefined, { filter: `slug = "${slug}"` }); 6 | if (link) { 7 | throw redirect(303, link[0].redirect); 8 | } else { 9 | throw error(404, 'Page not found'); 10 | } 11 | }; -------------------------------------------------------------------------------- /src/routes/generated/[slug]/+page.svelte: -------------------------------------------------------------------------------- 1 | 12 | 13 |
14 |
15 | {#await host} 16 |

Loading shortened URL...

17 | {:then} 18 |

URL Shortened

19 |
20 |

21 | {host}/{$page.params.slug} 24 |

25 | 26 | 38 |
39 | 42 | {/await} 43 |
44 |
45 | 46 | 190 | -------------------------------------------------------------------------------- /src/routes/login/+page.server.js: -------------------------------------------------------------------------------- 1 | import { error, redirect } from '@sveltejs/kit'; 2 | 3 | export const actions = { 4 | login: async ({ request, locals }) => { 5 | const body = Object.fromEntries(await request.formData()); 6 | 7 | try { 8 | await locals.pb.collection('users').authWithPassword(body.email, body.password); 9 | } catch (err) { 10 | console.log('Error: ', err); 11 | throw error(400, err.data.message); 12 | } 13 | 14 | throw redirect(303, '/'); 15 | } 16 | }; -------------------------------------------------------------------------------- /src/routes/login/+page.svelte: -------------------------------------------------------------------------------- 1 | 28 | 29 |
30 |
31 |

Login

32 |
33 | 34 | 41 | 42 | 49 | 50 |
51 |
52 |
53 | 54 | 164 | -------------------------------------------------------------------------------- /static/assets/pocketbase.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/assets/svelte.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/assets/wavesBg.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GermanHeim/svelte-shortener/f4fc8197f9248f82ea00fe9749c15e41cf97e577/static/assets/wavesBg.webp -------------------------------------------------------------------------------- /static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GermanHeim/svelte-shortener/f4fc8197f9248f82ea00fe9749c15e41cf97e577/static/favicon.png -------------------------------------------------------------------------------- /svelte.config.js: -------------------------------------------------------------------------------- 1 | import adapter from '@sveltejs/adapter-auto'; 2 | 3 | /** @type {import('@sveltejs/kit').Config} */ 4 | const config = { 5 | kit: { 6 | adapter: adapter() 7 | } 8 | }; 9 | 10 | export default config; 11 | -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import { sveltekit } from '@sveltejs/kit/vite'; 2 | 3 | /** @type {import('vite').UserConfig} */ 4 | const config = { 5 | plugins: [sveltekit()] 6 | }; 7 | 8 | export default config; 9 | --------------------------------------------------------------------------------