├── .eslintignore ├── .eslintrc.cjs ├── .gitattributes ├── .gitignore ├── .npmrc ├── .prettierignore ├── .prettierrc ├── LICENSE ├── README.md ├── package.json ├── pnpm-lock.yaml ├── prisma └── schema.prisma ├── src ├── app.css ├── app.d.ts ├── app.html ├── hooks.server.ts ├── lib │ ├── db.ts │ └── user.model.ts └── routes │ ├── +error.svelte │ ├── +layout.server.ts │ ├── +layout.svelte │ ├── +page.svelte │ ├── guarded │ ├── +page.server.ts │ └── +page.svelte │ ├── login │ ├── +page.server.ts │ └── +page.svelte │ └── signup │ ├── +page.server.ts │ └── +page.svelte ├── static └── favicon.png ├── svelte.config.js ├── tsconfig.json └── 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 | parser: '@typescript-eslint/parser', 4 | extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'], 5 | plugins: ['svelte3', '@typescript-eslint'], 6 | ignorePatterns: ['*.cjs'], 7 | overrides: [{ files: ['*.svelte'], processor: 'svelte3/svelte3' }], 8 | settings: { 9 | 'svelte3/typescript': () => require('typescript') 10 | }, 11 | parserOptions: { 12 | sourceType: 'module', 13 | ecmaVersion: 2020 14 | }, 15 | env: { 16 | browser: true, 17 | es2017: true, 18 | node: true 19 | } 20 | }; 21 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /build 4 | /.svelte-kit 5 | /.vercel 6 | /package 7 | .env 8 | .env.* 9 | !.env.example 10 | /prisma/dev.db 11 | -------------------------------------------------------------------------------- /.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 | } 7 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Justin Ahinon 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 | # SvelteKit Auth with JWT 2 | 3 | Related blog post: https://okupter.com/blog/handling-auth-with-jwt-in-sveltekit. -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "svelte-auth-jwt", 3 | "version": "0.0.1", 4 | "scripts": { 5 | "dev": "vite dev", 6 | "build": "vite build", 7 | "package": "svelte-kit package", 8 | "preview": "vite preview", 9 | "check": "svelte-check --tsconfig ./tsconfig.json", 10 | "check:watch": "svelte-check --tsconfig ./tsconfig.json --watch", 11 | "lint": "prettier --check --plugin-search-dir=. . && eslint .", 12 | "format": "prettier --write --plugin-search-dir=. ." 13 | }, 14 | "devDependencies": { 15 | "@sveltejs/adapter-auto": "^2.0.0", 16 | "@sveltejs/kit": "^1.15.5", 17 | "@types/bcryptjs": "^2.4.2", 18 | "@types/cookie": "^0.5.1", 19 | "@types/jsonwebtoken": "^9.0.1", 20 | "@typescript-eslint/eslint-plugin": "^5.58.0", 21 | "@typescript-eslint/parser": "^5.58.0", 22 | "eslint": "^8.38.0", 23 | "eslint-config-prettier": "^8.8.0", 24 | "eslint-plugin-svelte3": "^4.0.0", 25 | "prettier": "^2.8.7", 26 | "prettier-plugin-svelte": "^2.10.0", 27 | "prisma": "^4.12.0", 28 | "svelte": "^3.58.0", 29 | "svelte-check": "^3.2.0", 30 | "svelte-preprocess": "^5.0.3", 31 | "tslib": "^2.5.0", 32 | "typescript": "^5.0.4", 33 | "vite": "^4.2.1" 34 | }, 35 | "type": "module", 36 | "dependencies": { 37 | "@prisma/client": "^4.12.0", 38 | "bcryptjs": "^2.4.3", 39 | "jsonwebtoken": "^9.0.0" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | dependencies: 4 | '@prisma/client': 5 | specifier: ^4.12.0 6 | version: 4.12.0(prisma@4.12.0) 7 | bcryptjs: 8 | specifier: ^2.4.3 9 | version: 2.4.3 10 | jsonwebtoken: 11 | specifier: ^9.0.0 12 | version: 9.0.0 13 | 14 | devDependencies: 15 | '@sveltejs/adapter-auto': 16 | specifier: ^2.0.0 17 | version: 2.0.0(@sveltejs/kit@1.15.5) 18 | '@sveltejs/kit': 19 | specifier: ^1.15.5 20 | version: 1.15.5(svelte@3.58.0)(vite@4.2.1) 21 | '@types/bcryptjs': 22 | specifier: ^2.4.2 23 | version: 2.4.2 24 | '@types/cookie': 25 | specifier: ^0.5.1 26 | version: 0.5.1 27 | '@types/jsonwebtoken': 28 | specifier: ^9.0.1 29 | version: 9.0.1 30 | '@typescript-eslint/eslint-plugin': 31 | specifier: ^5.58.0 32 | version: 5.58.0(@typescript-eslint/parser@5.58.0)(eslint@8.38.0)(typescript@5.0.4) 33 | '@typescript-eslint/parser': 34 | specifier: ^5.58.0 35 | version: 5.58.0(eslint@8.38.0)(typescript@5.0.4) 36 | eslint: 37 | specifier: ^8.38.0 38 | version: 8.38.0 39 | eslint-config-prettier: 40 | specifier: ^8.8.0 41 | version: 8.8.0(eslint@8.38.0) 42 | eslint-plugin-svelte3: 43 | specifier: ^4.0.0 44 | version: 4.0.0(eslint@8.38.0)(svelte@3.58.0) 45 | prettier: 46 | specifier: ^2.8.7 47 | version: 2.8.7 48 | prettier-plugin-svelte: 49 | specifier: ^2.10.0 50 | version: 2.10.0(prettier@2.8.7)(svelte@3.58.0) 51 | prisma: 52 | specifier: ^4.12.0 53 | version: 4.12.0 54 | svelte: 55 | specifier: ^3.58.0 56 | version: 3.58.0 57 | svelte-check: 58 | specifier: ^3.2.0 59 | version: 3.2.0(svelte@3.58.0) 60 | svelte-preprocess: 61 | specifier: ^5.0.3 62 | version: 5.0.3(svelte@3.58.0)(typescript@5.0.4) 63 | tslib: 64 | specifier: ^2.5.0 65 | version: 2.5.0 66 | typescript: 67 | specifier: ^5.0.4 68 | version: 5.0.4 69 | vite: 70 | specifier: ^4.2.1 71 | version: 4.2.1 72 | 73 | packages: 74 | 75 | /@esbuild/android-arm64@0.17.16: 76 | resolution: {integrity: sha512-QX48qmsEZW+gcHgTmAj+x21mwTz8MlYQBnzF6861cNdQGvj2jzzFjqH0EBabrIa/WVZ2CHolwMoqxVryqKt8+Q==} 77 | engines: {node: '>=12'} 78 | cpu: [arm64] 79 | os: [android] 80 | requiresBuild: true 81 | dev: true 82 | optional: true 83 | 84 | /@esbuild/android-arm@0.17.16: 85 | resolution: {integrity: sha512-baLqRpLe4JnKrUXLJChoTN0iXZH7El/mu58GE3WIA6/H834k0XWvLRmGLG8y8arTRS9hJJibPnF0tiGhmWeZgw==} 86 | engines: {node: '>=12'} 87 | cpu: [arm] 88 | os: [android] 89 | requiresBuild: true 90 | dev: true 91 | optional: true 92 | 93 | /@esbuild/android-x64@0.17.16: 94 | resolution: {integrity: sha512-G4wfHhrrz99XJgHnzFvB4UwwPxAWZaZBOFXh+JH1Duf1I4vIVfuYY9uVLpx4eiV2D/Jix8LJY+TAdZ3i40tDow==} 95 | engines: {node: '>=12'} 96 | cpu: [x64] 97 | os: [android] 98 | requiresBuild: true 99 | dev: true 100 | optional: true 101 | 102 | /@esbuild/darwin-arm64@0.17.16: 103 | resolution: {integrity: sha512-/Ofw8UXZxuzTLsNFmz1+lmarQI6ztMZ9XktvXedTbt3SNWDn0+ODTwxExLYQ/Hod91EZB4vZPQJLoqLF0jvEzA==} 104 | engines: {node: '>=12'} 105 | cpu: [arm64] 106 | os: [darwin] 107 | requiresBuild: true 108 | dev: true 109 | optional: true 110 | 111 | /@esbuild/darwin-x64@0.17.16: 112 | resolution: {integrity: sha512-SzBQtCV3Pdc9kyizh36Ol+dNVhkDyIrGb/JXZqFq8WL37LIyrXU0gUpADcNV311sCOhvY+f2ivMhb5Tuv8nMOQ==} 113 | engines: {node: '>=12'} 114 | cpu: [x64] 115 | os: [darwin] 116 | requiresBuild: true 117 | dev: true 118 | optional: true 119 | 120 | /@esbuild/freebsd-arm64@0.17.16: 121 | resolution: {integrity: sha512-ZqftdfS1UlLiH1DnS2u3It7l4Bc3AskKeu+paJSfk7RNOMrOxmeFDhLTMQqMxycP1C3oj8vgkAT6xfAuq7ZPRA==} 122 | engines: {node: '>=12'} 123 | cpu: [arm64] 124 | os: [freebsd] 125 | requiresBuild: true 126 | dev: true 127 | optional: true 128 | 129 | /@esbuild/freebsd-x64@0.17.16: 130 | resolution: {integrity: sha512-rHV6zNWW1tjgsu0dKQTX9L0ByiJHHLvQKrWtnz8r0YYJI27FU3Xu48gpK2IBj1uCSYhJ+pEk6Y0Um7U3rIvV8g==} 131 | engines: {node: '>=12'} 132 | cpu: [x64] 133 | os: [freebsd] 134 | requiresBuild: true 135 | dev: true 136 | optional: true 137 | 138 | /@esbuild/linux-arm64@0.17.16: 139 | resolution: {integrity: sha512-8yoZhGkU6aHu38WpaM4HrRLTFc7/VVD9Q2SvPcmIQIipQt2I/GMTZNdEHXoypbbGao5kggLcxg0iBKjo0SQYKA==} 140 | engines: {node: '>=12'} 141 | cpu: [arm64] 142 | os: [linux] 143 | requiresBuild: true 144 | dev: true 145 | optional: true 146 | 147 | /@esbuild/linux-arm@0.17.16: 148 | resolution: {integrity: sha512-n4O8oVxbn7nl4+m+ISb0a68/lcJClIbaGAoXwqeubj/D1/oMMuaAXmJVfFlRjJLu/ZvHkxoiFJnmbfp4n8cdSw==} 149 | engines: {node: '>=12'} 150 | cpu: [arm] 151 | os: [linux] 152 | requiresBuild: true 153 | dev: true 154 | optional: true 155 | 156 | /@esbuild/linux-ia32@0.17.16: 157 | resolution: {integrity: sha512-9ZBjlkdaVYxPNO8a7OmzDbOH9FMQ1a58j7Xb21UfRU29KcEEU3VTHk+Cvrft/BNv0gpWJMiiZ/f4w0TqSP0gLA==} 158 | engines: {node: '>=12'} 159 | cpu: [ia32] 160 | os: [linux] 161 | requiresBuild: true 162 | dev: true 163 | optional: true 164 | 165 | /@esbuild/linux-loong64@0.17.16: 166 | resolution: {integrity: sha512-TIZTRojVBBzdgChY3UOG7BlPhqJz08AL7jdgeeu+kiObWMFzGnQD7BgBBkWRwOtKR1i2TNlO7YK6m4zxVjjPRQ==} 167 | engines: {node: '>=12'} 168 | cpu: [loong64] 169 | os: [linux] 170 | requiresBuild: true 171 | dev: true 172 | optional: true 173 | 174 | /@esbuild/linux-mips64el@0.17.16: 175 | resolution: {integrity: sha512-UPeRuFKCCJYpBbIdczKyHLAIU31GEm0dZl1eMrdYeXDH+SJZh/i+2cAmD3A1Wip9pIc5Sc6Kc5cFUrPXtR0XHA==} 176 | engines: {node: '>=12'} 177 | cpu: [mips64el] 178 | os: [linux] 179 | requiresBuild: true 180 | dev: true 181 | optional: true 182 | 183 | /@esbuild/linux-ppc64@0.17.16: 184 | resolution: {integrity: sha512-io6yShgIEgVUhExJejJ21xvO5QtrbiSeI7vYUnr7l+v/O9t6IowyhdiYnyivX2X5ysOVHAuyHW+Wyi7DNhdw6Q==} 185 | engines: {node: '>=12'} 186 | cpu: [ppc64] 187 | os: [linux] 188 | requiresBuild: true 189 | dev: true 190 | optional: true 191 | 192 | /@esbuild/linux-riscv64@0.17.16: 193 | resolution: {integrity: sha512-WhlGeAHNbSdG/I2gqX2RK2gfgSNwyJuCiFHMc8s3GNEMMHUI109+VMBfhVqRb0ZGzEeRiibi8dItR3ws3Lk+cA==} 194 | engines: {node: '>=12'} 195 | cpu: [riscv64] 196 | os: [linux] 197 | requiresBuild: true 198 | dev: true 199 | optional: true 200 | 201 | /@esbuild/linux-s390x@0.17.16: 202 | resolution: {integrity: sha512-gHRReYsJtViir63bXKoFaQ4pgTyah4ruiMRQ6im9YZuv+gp3UFJkNTY4sFA73YDynmXZA6hi45en4BGhNOJUsw==} 203 | engines: {node: '>=12'} 204 | cpu: [s390x] 205 | os: [linux] 206 | requiresBuild: true 207 | dev: true 208 | optional: true 209 | 210 | /@esbuild/linux-x64@0.17.16: 211 | resolution: {integrity: sha512-mfiiBkxEbUHvi+v0P+TS7UnA9TeGXR48aK4XHkTj0ZwOijxexgMF01UDFaBX7Q6CQsB0d+MFNv9IiXbIHTNd4g==} 212 | engines: {node: '>=12'} 213 | cpu: [x64] 214 | os: [linux] 215 | requiresBuild: true 216 | dev: true 217 | optional: true 218 | 219 | /@esbuild/netbsd-x64@0.17.16: 220 | resolution: {integrity: sha512-n8zK1YRDGLRZfVcswcDMDM0j2xKYLNXqei217a4GyBxHIuPMGrrVuJ+Ijfpr0Kufcm7C1k/qaIrGy6eG7wvgmA==} 221 | engines: {node: '>=12'} 222 | cpu: [x64] 223 | os: [netbsd] 224 | requiresBuild: true 225 | dev: true 226 | optional: true 227 | 228 | /@esbuild/openbsd-x64@0.17.16: 229 | resolution: {integrity: sha512-lEEfkfsUbo0xC47eSTBqsItXDSzwzwhKUSsVaVjVji07t8+6KA5INp2rN890dHZeueXJAI8q0tEIfbwVRYf6Ew==} 230 | engines: {node: '>=12'} 231 | cpu: [x64] 232 | os: [openbsd] 233 | requiresBuild: true 234 | dev: true 235 | optional: true 236 | 237 | /@esbuild/sunos-x64@0.17.16: 238 | resolution: {integrity: sha512-jlRjsuvG1fgGwnE8Afs7xYDnGz0dBgTNZfgCK6TlvPH3Z13/P5pi6I57vyLE8qZYLrGVtwcm9UbUx1/mZ8Ukag==} 239 | engines: {node: '>=12'} 240 | cpu: [x64] 241 | os: [sunos] 242 | requiresBuild: true 243 | dev: true 244 | optional: true 245 | 246 | /@esbuild/win32-arm64@0.17.16: 247 | resolution: {integrity: sha512-TzoU2qwVe2boOHl/3KNBUv2PNUc38U0TNnzqOAcgPiD/EZxT2s736xfC2dYQbszAwo4MKzzwBV0iHjhfjxMimg==} 248 | engines: {node: '>=12'} 249 | cpu: [arm64] 250 | os: [win32] 251 | requiresBuild: true 252 | dev: true 253 | optional: true 254 | 255 | /@esbuild/win32-ia32@0.17.16: 256 | resolution: {integrity: sha512-B8b7W+oo2yb/3xmwk9Vc99hC9bNolvqjaTZYEfMQhzdpBsjTvZBlXQ/teUE55Ww6sg//wlcDjOaqldOKyigWdA==} 257 | engines: {node: '>=12'} 258 | cpu: [ia32] 259 | os: [win32] 260 | requiresBuild: true 261 | dev: true 262 | optional: true 263 | 264 | /@esbuild/win32-x64@0.17.16: 265 | resolution: {integrity: sha512-xJ7OH/nanouJO9pf03YsL9NAFQBHd8AqfrQd7Pf5laGyyTt/gToul6QYOA/i5i/q8y9iaM5DQFNTgpi995VkOg==} 266 | engines: {node: '>=12'} 267 | cpu: [x64] 268 | os: [win32] 269 | requiresBuild: true 270 | dev: true 271 | optional: true 272 | 273 | /@eslint-community/eslint-utils@4.4.0(eslint@8.38.0): 274 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 275 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 276 | peerDependencies: 277 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 278 | dependencies: 279 | eslint: 8.38.0 280 | eslint-visitor-keys: 3.4.0 281 | dev: true 282 | 283 | /@eslint-community/regexpp@4.5.0: 284 | resolution: {integrity: sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==} 285 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 286 | dev: true 287 | 288 | /@eslint/eslintrc@2.0.2: 289 | resolution: {integrity: sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==} 290 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 291 | dependencies: 292 | ajv: 6.12.6 293 | debug: 4.3.4 294 | espree: 9.5.1 295 | globals: 13.20.0 296 | ignore: 5.2.4 297 | import-fresh: 3.3.0 298 | js-yaml: 4.1.0 299 | minimatch: 3.1.2 300 | strip-json-comments: 3.1.1 301 | transitivePeerDependencies: 302 | - supports-color 303 | dev: true 304 | 305 | /@eslint/js@8.38.0: 306 | resolution: {integrity: sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==} 307 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 308 | dev: true 309 | 310 | /@humanwhocodes/config-array@0.11.8: 311 | resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} 312 | engines: {node: '>=10.10.0'} 313 | dependencies: 314 | '@humanwhocodes/object-schema': 1.2.1 315 | debug: 4.3.4 316 | minimatch: 3.1.2 317 | transitivePeerDependencies: 318 | - supports-color 319 | dev: true 320 | 321 | /@humanwhocodes/module-importer@1.0.1: 322 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 323 | engines: {node: '>=12.22'} 324 | dev: true 325 | 326 | /@humanwhocodes/object-schema@1.2.1: 327 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} 328 | dev: true 329 | 330 | /@jridgewell/resolve-uri@3.1.0: 331 | resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} 332 | engines: {node: '>=6.0.0'} 333 | dev: true 334 | 335 | /@jridgewell/sourcemap-codec@1.4.14: 336 | resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} 337 | dev: true 338 | 339 | /@jridgewell/sourcemap-codec@1.4.15: 340 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 341 | dev: true 342 | 343 | /@jridgewell/trace-mapping@0.3.18: 344 | resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} 345 | dependencies: 346 | '@jridgewell/resolve-uri': 3.1.0 347 | '@jridgewell/sourcemap-codec': 1.4.14 348 | dev: true 349 | 350 | /@nodelib/fs.scandir@2.1.5: 351 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 352 | engines: {node: '>= 8'} 353 | dependencies: 354 | '@nodelib/fs.stat': 2.0.5 355 | run-parallel: 1.2.0 356 | dev: true 357 | 358 | /@nodelib/fs.stat@2.0.5: 359 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 360 | engines: {node: '>= 8'} 361 | dev: true 362 | 363 | /@nodelib/fs.walk@1.2.8: 364 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 365 | engines: {node: '>= 8'} 366 | dependencies: 367 | '@nodelib/fs.scandir': 2.1.5 368 | fastq: 1.15.0 369 | dev: true 370 | 371 | /@polka/url@1.0.0-next.21: 372 | resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} 373 | dev: true 374 | 375 | /@prisma/client@4.12.0(prisma@4.12.0): 376 | resolution: {integrity: sha512-j9/ighfWwux97J2dS15nqhl60tYoH8V0IuSsgZDb6bCFcQD3fXbXmxjYC8GHhIgOk3lB7Pq+8CwElz2MiDpsSg==} 377 | engines: {node: '>=14.17'} 378 | requiresBuild: true 379 | peerDependencies: 380 | prisma: '*' 381 | peerDependenciesMeta: 382 | prisma: 383 | optional: true 384 | dependencies: 385 | '@prisma/engines-version': 4.12.0-67.659ef412370fa3b41cd7bf6e94587c1dfb7f67e7 386 | prisma: 4.12.0 387 | dev: false 388 | 389 | /@prisma/engines-version@4.12.0-67.659ef412370fa3b41cd7bf6e94587c1dfb7f67e7: 390 | resolution: {integrity: sha512-JIHNj5jlXb9mcaJwakM0vpgRYJIAurxTUqM0iX0tfEQA5XLZ9ONkIckkhuAKdAzocZ+80GYg7QSsfpjg7OxbOA==} 391 | dev: false 392 | 393 | /@prisma/engines@4.12.0: 394 | resolution: {integrity: sha512-0alKtnxhNB5hYU+ymESBlGI4b9XrGGSdv7Ud+8TE/fBNOEhIud0XQsAR+TrvUZgS4na5czubiMsODw0TUrgkIA==} 395 | requiresBuild: true 396 | 397 | /@sveltejs/adapter-auto@2.0.0(@sveltejs/kit@1.15.5): 398 | resolution: {integrity: sha512-b+gkHFZgD771kgV3aO4avHFd7y1zhmMYy9i6xOK7m/rwmwaRO8gnF5zBc0Rgca80B2PMU1bKNxyBTHA14OzUAQ==} 399 | peerDependencies: 400 | '@sveltejs/kit': ^1.0.0 401 | dependencies: 402 | '@sveltejs/kit': 1.15.5(svelte@3.58.0)(vite@4.2.1) 403 | import-meta-resolve: 2.2.2 404 | dev: true 405 | 406 | /@sveltejs/kit@1.15.5(svelte@3.58.0)(vite@4.2.1): 407 | resolution: {integrity: sha512-NyNtgIJBNo3AXMkl0iN10VrKgQS6VM6E+rcqZnZMn12dOo7SwFflj1du0ZgXNCZ1tx6VuEpSz9+FpPjswr4gEg==} 408 | engines: {node: ^16.14 || >=18} 409 | hasBin: true 410 | requiresBuild: true 411 | peerDependencies: 412 | svelte: ^3.54.0 413 | vite: ^4.0.0 414 | dependencies: 415 | '@sveltejs/vite-plugin-svelte': 2.0.4(svelte@3.58.0)(vite@4.2.1) 416 | '@types/cookie': 0.5.1 417 | cookie: 0.5.0 418 | devalue: 4.3.0 419 | esm-env: 1.0.0 420 | kleur: 4.1.5 421 | magic-string: 0.30.0 422 | mime: 3.0.0 423 | sade: 1.8.1 424 | set-cookie-parser: 2.6.0 425 | sirv: 2.0.2 426 | svelte: 3.58.0 427 | tiny-glob: 0.2.9 428 | undici: 5.20.0 429 | vite: 4.2.1 430 | transitivePeerDependencies: 431 | - supports-color 432 | dev: true 433 | 434 | /@sveltejs/vite-plugin-svelte@2.0.4(svelte@3.58.0)(vite@4.2.1): 435 | resolution: {integrity: sha512-pjqhW00KwK2uzDGEr+yJBwut+D+4XfJO/+bHHdHzPRXn9+1Jeq5JcFHyrUiYaXgHtyhX0RsllCTm4ssAx4ZY7Q==} 436 | engines: {node: ^14.18.0 || >= 16} 437 | peerDependencies: 438 | svelte: ^3.54.0 439 | vite: ^4.0.0 440 | dependencies: 441 | debug: 4.3.4 442 | deepmerge: 4.3.1 443 | kleur: 4.1.5 444 | magic-string: 0.30.0 445 | svelte: 3.58.0 446 | svelte-hmr: 0.15.1(svelte@3.58.0) 447 | vite: 4.2.1 448 | vitefu: 0.2.4(vite@4.2.1) 449 | transitivePeerDependencies: 450 | - supports-color 451 | dev: true 452 | 453 | /@types/bcryptjs@2.4.2: 454 | resolution: {integrity: sha512-LiMQ6EOPob/4yUL66SZzu6Yh77cbzJFYll+ZfaPiPPFswtIlA/Fs1MzdKYA7JApHU49zQTbJGX3PDmCpIdDBRQ==} 455 | dev: true 456 | 457 | /@types/cookie@0.5.1: 458 | resolution: {integrity: sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==} 459 | dev: true 460 | 461 | /@types/json-schema@7.0.11: 462 | resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} 463 | dev: true 464 | 465 | /@types/jsonwebtoken@9.0.1: 466 | resolution: {integrity: sha512-c5ltxazpWabia/4UzhIoaDcIza4KViOQhdbjRlfcIGVnsE3c3brkz9Z+F/EeJIECOQP7W7US2hNE930cWWkPiw==} 467 | dependencies: 468 | '@types/node': 18.15.11 469 | dev: true 470 | 471 | /@types/node@18.15.11: 472 | resolution: {integrity: sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==} 473 | dev: true 474 | 475 | /@types/pug@2.0.6: 476 | resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==} 477 | dev: true 478 | 479 | /@types/semver@7.3.13: 480 | resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} 481 | dev: true 482 | 483 | /@typescript-eslint/eslint-plugin@5.58.0(@typescript-eslint/parser@5.58.0)(eslint@8.38.0)(typescript@5.0.4): 484 | resolution: {integrity: sha512-vxHvLhH0qgBd3/tW6/VccptSfc8FxPQIkmNTVLWcCOVqSBvqpnKkBTYrhcGlXfSnd78azwe+PsjYFj0X34/njA==} 485 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 486 | peerDependencies: 487 | '@typescript-eslint/parser': ^5.0.0 488 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 489 | typescript: '*' 490 | peerDependenciesMeta: 491 | typescript: 492 | optional: true 493 | dependencies: 494 | '@eslint-community/regexpp': 4.5.0 495 | '@typescript-eslint/parser': 5.58.0(eslint@8.38.0)(typescript@5.0.4) 496 | '@typescript-eslint/scope-manager': 5.58.0 497 | '@typescript-eslint/type-utils': 5.58.0(eslint@8.38.0)(typescript@5.0.4) 498 | '@typescript-eslint/utils': 5.58.0(eslint@8.38.0)(typescript@5.0.4) 499 | debug: 4.3.4 500 | eslint: 8.38.0 501 | grapheme-splitter: 1.0.4 502 | ignore: 5.2.4 503 | natural-compare-lite: 1.4.0 504 | semver: 7.4.0 505 | tsutils: 3.21.0(typescript@5.0.4) 506 | typescript: 5.0.4 507 | transitivePeerDependencies: 508 | - supports-color 509 | dev: true 510 | 511 | /@typescript-eslint/parser@5.58.0(eslint@8.38.0)(typescript@5.0.4): 512 | resolution: {integrity: sha512-ixaM3gRtlfrKzP8N6lRhBbjTow1t6ztfBvQNGuRM8qH1bjFFXIJ35XY+FC0RRBKn3C6cT+7VW1y8tNm7DwPHDQ==} 513 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 514 | peerDependencies: 515 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 516 | typescript: '*' 517 | peerDependenciesMeta: 518 | typescript: 519 | optional: true 520 | dependencies: 521 | '@typescript-eslint/scope-manager': 5.58.0 522 | '@typescript-eslint/types': 5.58.0 523 | '@typescript-eslint/typescript-estree': 5.58.0(typescript@5.0.4) 524 | debug: 4.3.4 525 | eslint: 8.38.0 526 | typescript: 5.0.4 527 | transitivePeerDependencies: 528 | - supports-color 529 | dev: true 530 | 531 | /@typescript-eslint/scope-manager@5.58.0: 532 | resolution: {integrity: sha512-b+w8ypN5CFvrXWQb9Ow9T4/6LC2MikNf1viLkYTiTbkQl46CnR69w7lajz1icW0TBsYmlpg+mRzFJ4LEJ8X9NA==} 533 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 534 | dependencies: 535 | '@typescript-eslint/types': 5.58.0 536 | '@typescript-eslint/visitor-keys': 5.58.0 537 | dev: true 538 | 539 | /@typescript-eslint/type-utils@5.58.0(eslint@8.38.0)(typescript@5.0.4): 540 | resolution: {integrity: sha512-FF5vP/SKAFJ+LmR9PENql7fQVVgGDOS+dq3j+cKl9iW/9VuZC/8CFmzIP0DLKXfWKpRHawJiG70rVH+xZZbp8w==} 541 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 542 | peerDependencies: 543 | eslint: '*' 544 | typescript: '*' 545 | peerDependenciesMeta: 546 | typescript: 547 | optional: true 548 | dependencies: 549 | '@typescript-eslint/typescript-estree': 5.58.0(typescript@5.0.4) 550 | '@typescript-eslint/utils': 5.58.0(eslint@8.38.0)(typescript@5.0.4) 551 | debug: 4.3.4 552 | eslint: 8.38.0 553 | tsutils: 3.21.0(typescript@5.0.4) 554 | typescript: 5.0.4 555 | transitivePeerDependencies: 556 | - supports-color 557 | dev: true 558 | 559 | /@typescript-eslint/types@5.58.0: 560 | resolution: {integrity: sha512-JYV4eITHPzVQMnHZcYJXl2ZloC7thuUHrcUmxtzvItyKPvQ50kb9QXBkgNAt90OYMqwaodQh2kHutWZl1fc+1g==} 561 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 562 | dev: true 563 | 564 | /@typescript-eslint/typescript-estree@5.58.0(typescript@5.0.4): 565 | resolution: {integrity: sha512-cRACvGTodA+UxnYM2uwA2KCwRL7VAzo45syNysqlMyNyjw0Z35Icc9ihPJZjIYuA5bXJYiJ2YGUB59BqlOZT1Q==} 566 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 567 | peerDependencies: 568 | typescript: '*' 569 | peerDependenciesMeta: 570 | typescript: 571 | optional: true 572 | dependencies: 573 | '@typescript-eslint/types': 5.58.0 574 | '@typescript-eslint/visitor-keys': 5.58.0 575 | debug: 4.3.4 576 | globby: 11.1.0 577 | is-glob: 4.0.3 578 | semver: 7.4.0 579 | tsutils: 3.21.0(typescript@5.0.4) 580 | typescript: 5.0.4 581 | transitivePeerDependencies: 582 | - supports-color 583 | dev: true 584 | 585 | /@typescript-eslint/utils@5.58.0(eslint@8.38.0)(typescript@5.0.4): 586 | resolution: {integrity: sha512-gAmLOTFXMXOC+zP1fsqm3VceKSBQJNzV385Ok3+yzlavNHZoedajjS4UyS21gabJYcobuigQPs/z71A9MdJFqQ==} 587 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 588 | peerDependencies: 589 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 590 | dependencies: 591 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.38.0) 592 | '@types/json-schema': 7.0.11 593 | '@types/semver': 7.3.13 594 | '@typescript-eslint/scope-manager': 5.58.0 595 | '@typescript-eslint/types': 5.58.0 596 | '@typescript-eslint/typescript-estree': 5.58.0(typescript@5.0.4) 597 | eslint: 8.38.0 598 | eslint-scope: 5.1.1 599 | semver: 7.4.0 600 | transitivePeerDependencies: 601 | - supports-color 602 | - typescript 603 | dev: true 604 | 605 | /@typescript-eslint/visitor-keys@5.58.0: 606 | resolution: {integrity: sha512-/fBraTlPj0jwdyTwLyrRTxv/3lnU2H96pNTVM6z3esTWLtA5MZ9ghSMJ7Rb+TtUAdtEw9EyJzJ0EydIMKxQ9gA==} 607 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 608 | dependencies: 609 | '@typescript-eslint/types': 5.58.0 610 | eslint-visitor-keys: 3.4.0 611 | dev: true 612 | 613 | /acorn-jsx@5.3.2(acorn@8.8.2): 614 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 615 | peerDependencies: 616 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 617 | dependencies: 618 | acorn: 8.8.2 619 | dev: true 620 | 621 | /acorn@8.8.2: 622 | resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} 623 | engines: {node: '>=0.4.0'} 624 | hasBin: true 625 | dev: true 626 | 627 | /ajv@6.12.6: 628 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 629 | dependencies: 630 | fast-deep-equal: 3.1.3 631 | fast-json-stable-stringify: 2.1.0 632 | json-schema-traverse: 0.4.1 633 | uri-js: 4.4.1 634 | dev: true 635 | 636 | /ansi-regex@5.0.1: 637 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 638 | engines: {node: '>=8'} 639 | dev: true 640 | 641 | /ansi-styles@4.3.0: 642 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 643 | engines: {node: '>=8'} 644 | dependencies: 645 | color-convert: 2.0.1 646 | dev: true 647 | 648 | /anymatch@3.1.3: 649 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 650 | engines: {node: '>= 8'} 651 | dependencies: 652 | normalize-path: 3.0.0 653 | picomatch: 2.3.1 654 | dev: true 655 | 656 | /argparse@2.0.1: 657 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 658 | dev: true 659 | 660 | /array-union@2.1.0: 661 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 662 | engines: {node: '>=8'} 663 | dev: true 664 | 665 | /balanced-match@1.0.2: 666 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 667 | dev: true 668 | 669 | /bcryptjs@2.4.3: 670 | resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==} 671 | dev: false 672 | 673 | /binary-extensions@2.2.0: 674 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 675 | engines: {node: '>=8'} 676 | dev: true 677 | 678 | /brace-expansion@1.1.11: 679 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 680 | dependencies: 681 | balanced-match: 1.0.2 682 | concat-map: 0.0.1 683 | dev: true 684 | 685 | /braces@3.0.2: 686 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 687 | engines: {node: '>=8'} 688 | dependencies: 689 | fill-range: 7.0.1 690 | dev: true 691 | 692 | /buffer-crc32@0.2.13: 693 | resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} 694 | dev: true 695 | 696 | /buffer-equal-constant-time@1.0.1: 697 | resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} 698 | dev: false 699 | 700 | /busboy@1.6.0: 701 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 702 | engines: {node: '>=10.16.0'} 703 | dependencies: 704 | streamsearch: 1.1.0 705 | dev: true 706 | 707 | /callsites@3.1.0: 708 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 709 | engines: {node: '>=6'} 710 | dev: true 711 | 712 | /chalk@4.1.2: 713 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 714 | engines: {node: '>=10'} 715 | dependencies: 716 | ansi-styles: 4.3.0 717 | supports-color: 7.2.0 718 | dev: true 719 | 720 | /chokidar@3.5.3: 721 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 722 | engines: {node: '>= 8.10.0'} 723 | dependencies: 724 | anymatch: 3.1.3 725 | braces: 3.0.2 726 | glob-parent: 5.1.2 727 | is-binary-path: 2.1.0 728 | is-glob: 4.0.3 729 | normalize-path: 3.0.0 730 | readdirp: 3.6.0 731 | optionalDependencies: 732 | fsevents: 2.3.2 733 | dev: true 734 | 735 | /color-convert@2.0.1: 736 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 737 | engines: {node: '>=7.0.0'} 738 | dependencies: 739 | color-name: 1.1.4 740 | dev: true 741 | 742 | /color-name@1.1.4: 743 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 744 | dev: true 745 | 746 | /concat-map@0.0.1: 747 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 748 | dev: true 749 | 750 | /cookie@0.5.0: 751 | resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} 752 | engines: {node: '>= 0.6'} 753 | dev: true 754 | 755 | /cross-spawn@7.0.3: 756 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 757 | engines: {node: '>= 8'} 758 | dependencies: 759 | path-key: 3.1.1 760 | shebang-command: 2.0.0 761 | which: 2.0.2 762 | dev: true 763 | 764 | /debug@4.3.4: 765 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 766 | engines: {node: '>=6.0'} 767 | peerDependencies: 768 | supports-color: '*' 769 | peerDependenciesMeta: 770 | supports-color: 771 | optional: true 772 | dependencies: 773 | ms: 2.1.2 774 | dev: true 775 | 776 | /deep-is@0.1.4: 777 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 778 | dev: true 779 | 780 | /deepmerge@4.3.1: 781 | resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} 782 | engines: {node: '>=0.10.0'} 783 | dev: true 784 | 785 | /detect-indent@6.1.0: 786 | resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} 787 | engines: {node: '>=8'} 788 | dev: true 789 | 790 | /devalue@4.3.0: 791 | resolution: {integrity: sha512-n94yQo4LI3w7erwf84mhRUkUJfhLoCZiLyoOZ/QFsDbcWNZePrLwbQpvZBUG2TNxwV3VjCKPxkiiQA6pe3TrTA==} 792 | dev: true 793 | 794 | /dir-glob@3.0.1: 795 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 796 | engines: {node: '>=8'} 797 | dependencies: 798 | path-type: 4.0.0 799 | dev: true 800 | 801 | /doctrine@3.0.0: 802 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 803 | engines: {node: '>=6.0.0'} 804 | dependencies: 805 | esutils: 2.0.3 806 | dev: true 807 | 808 | /ecdsa-sig-formatter@1.0.11: 809 | resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} 810 | dependencies: 811 | safe-buffer: 5.2.1 812 | dev: false 813 | 814 | /es6-promise@3.3.1: 815 | resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} 816 | dev: true 817 | 818 | /esbuild@0.17.16: 819 | resolution: {integrity: sha512-aeSuUKr9aFVY9Dc8ETVELGgkj4urg5isYx8pLf4wlGgB0vTFjxJQdHnNH6Shmx4vYYrOTLCHtRI5i1XZ9l2Zcg==} 820 | engines: {node: '>=12'} 821 | hasBin: true 822 | requiresBuild: true 823 | optionalDependencies: 824 | '@esbuild/android-arm': 0.17.16 825 | '@esbuild/android-arm64': 0.17.16 826 | '@esbuild/android-x64': 0.17.16 827 | '@esbuild/darwin-arm64': 0.17.16 828 | '@esbuild/darwin-x64': 0.17.16 829 | '@esbuild/freebsd-arm64': 0.17.16 830 | '@esbuild/freebsd-x64': 0.17.16 831 | '@esbuild/linux-arm': 0.17.16 832 | '@esbuild/linux-arm64': 0.17.16 833 | '@esbuild/linux-ia32': 0.17.16 834 | '@esbuild/linux-loong64': 0.17.16 835 | '@esbuild/linux-mips64el': 0.17.16 836 | '@esbuild/linux-ppc64': 0.17.16 837 | '@esbuild/linux-riscv64': 0.17.16 838 | '@esbuild/linux-s390x': 0.17.16 839 | '@esbuild/linux-x64': 0.17.16 840 | '@esbuild/netbsd-x64': 0.17.16 841 | '@esbuild/openbsd-x64': 0.17.16 842 | '@esbuild/sunos-x64': 0.17.16 843 | '@esbuild/win32-arm64': 0.17.16 844 | '@esbuild/win32-ia32': 0.17.16 845 | '@esbuild/win32-x64': 0.17.16 846 | dev: true 847 | 848 | /escape-string-regexp@4.0.0: 849 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 850 | engines: {node: '>=10'} 851 | dev: true 852 | 853 | /eslint-config-prettier@8.8.0(eslint@8.38.0): 854 | resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} 855 | hasBin: true 856 | peerDependencies: 857 | eslint: '>=7.0.0' 858 | dependencies: 859 | eslint: 8.38.0 860 | dev: true 861 | 862 | /eslint-plugin-svelte3@4.0.0(eslint@8.38.0)(svelte@3.58.0): 863 | resolution: {integrity: sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==} 864 | peerDependencies: 865 | eslint: '>=8.0.0' 866 | svelte: ^3.2.0 867 | dependencies: 868 | eslint: 8.38.0 869 | svelte: 3.58.0 870 | dev: true 871 | 872 | /eslint-scope@5.1.1: 873 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 874 | engines: {node: '>=8.0.0'} 875 | dependencies: 876 | esrecurse: 4.3.0 877 | estraverse: 4.3.0 878 | dev: true 879 | 880 | /eslint-scope@7.2.0: 881 | resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} 882 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 883 | dependencies: 884 | esrecurse: 4.3.0 885 | estraverse: 5.3.0 886 | dev: true 887 | 888 | /eslint-visitor-keys@3.4.0: 889 | resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==} 890 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 891 | dev: true 892 | 893 | /eslint@8.38.0: 894 | resolution: {integrity: sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==} 895 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 896 | hasBin: true 897 | dependencies: 898 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.38.0) 899 | '@eslint-community/regexpp': 4.5.0 900 | '@eslint/eslintrc': 2.0.2 901 | '@eslint/js': 8.38.0 902 | '@humanwhocodes/config-array': 0.11.8 903 | '@humanwhocodes/module-importer': 1.0.1 904 | '@nodelib/fs.walk': 1.2.8 905 | ajv: 6.12.6 906 | chalk: 4.1.2 907 | cross-spawn: 7.0.3 908 | debug: 4.3.4 909 | doctrine: 3.0.0 910 | escape-string-regexp: 4.0.0 911 | eslint-scope: 7.2.0 912 | eslint-visitor-keys: 3.4.0 913 | espree: 9.5.1 914 | esquery: 1.5.0 915 | esutils: 2.0.3 916 | fast-deep-equal: 3.1.3 917 | file-entry-cache: 6.0.1 918 | find-up: 5.0.0 919 | glob-parent: 6.0.2 920 | globals: 13.20.0 921 | grapheme-splitter: 1.0.4 922 | ignore: 5.2.4 923 | import-fresh: 3.3.0 924 | imurmurhash: 0.1.4 925 | is-glob: 4.0.3 926 | is-path-inside: 3.0.3 927 | js-sdsl: 4.4.0 928 | js-yaml: 4.1.0 929 | json-stable-stringify-without-jsonify: 1.0.1 930 | levn: 0.4.1 931 | lodash.merge: 4.6.2 932 | minimatch: 3.1.2 933 | natural-compare: 1.4.0 934 | optionator: 0.9.1 935 | strip-ansi: 6.0.1 936 | strip-json-comments: 3.1.1 937 | text-table: 0.2.0 938 | transitivePeerDependencies: 939 | - supports-color 940 | dev: true 941 | 942 | /esm-env@1.0.0: 943 | resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} 944 | dev: true 945 | 946 | /espree@9.5.1: 947 | resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==} 948 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 949 | dependencies: 950 | acorn: 8.8.2 951 | acorn-jsx: 5.3.2(acorn@8.8.2) 952 | eslint-visitor-keys: 3.4.0 953 | dev: true 954 | 955 | /esquery@1.5.0: 956 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 957 | engines: {node: '>=0.10'} 958 | dependencies: 959 | estraverse: 5.3.0 960 | dev: true 961 | 962 | /esrecurse@4.3.0: 963 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 964 | engines: {node: '>=4.0'} 965 | dependencies: 966 | estraverse: 5.3.0 967 | dev: true 968 | 969 | /estraverse@4.3.0: 970 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} 971 | engines: {node: '>=4.0'} 972 | dev: true 973 | 974 | /estraverse@5.3.0: 975 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 976 | engines: {node: '>=4.0'} 977 | dev: true 978 | 979 | /esutils@2.0.3: 980 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 981 | engines: {node: '>=0.10.0'} 982 | dev: true 983 | 984 | /fast-deep-equal@3.1.3: 985 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 986 | dev: true 987 | 988 | /fast-glob@3.2.12: 989 | resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} 990 | engines: {node: '>=8.6.0'} 991 | dependencies: 992 | '@nodelib/fs.stat': 2.0.5 993 | '@nodelib/fs.walk': 1.2.8 994 | glob-parent: 5.1.2 995 | merge2: 1.4.1 996 | micromatch: 4.0.5 997 | dev: true 998 | 999 | /fast-json-stable-stringify@2.1.0: 1000 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1001 | dev: true 1002 | 1003 | /fast-levenshtein@2.0.6: 1004 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1005 | dev: true 1006 | 1007 | /fastq@1.15.0: 1008 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 1009 | dependencies: 1010 | reusify: 1.0.4 1011 | dev: true 1012 | 1013 | /file-entry-cache@6.0.1: 1014 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1015 | engines: {node: ^10.12.0 || >=12.0.0} 1016 | dependencies: 1017 | flat-cache: 3.0.4 1018 | dev: true 1019 | 1020 | /fill-range@7.0.1: 1021 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1022 | engines: {node: '>=8'} 1023 | dependencies: 1024 | to-regex-range: 5.0.1 1025 | dev: true 1026 | 1027 | /find-up@5.0.0: 1028 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1029 | engines: {node: '>=10'} 1030 | dependencies: 1031 | locate-path: 6.0.0 1032 | path-exists: 4.0.0 1033 | dev: true 1034 | 1035 | /flat-cache@3.0.4: 1036 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} 1037 | engines: {node: ^10.12.0 || >=12.0.0} 1038 | dependencies: 1039 | flatted: 3.2.7 1040 | rimraf: 3.0.2 1041 | dev: true 1042 | 1043 | /flatted@3.2.7: 1044 | resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} 1045 | dev: true 1046 | 1047 | /fs.realpath@1.0.0: 1048 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1049 | dev: true 1050 | 1051 | /fsevents@2.3.2: 1052 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 1053 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1054 | os: [darwin] 1055 | requiresBuild: true 1056 | dev: true 1057 | optional: true 1058 | 1059 | /function-bind@1.1.1: 1060 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 1061 | dev: true 1062 | 1063 | /glob-parent@5.1.2: 1064 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1065 | engines: {node: '>= 6'} 1066 | dependencies: 1067 | is-glob: 4.0.3 1068 | dev: true 1069 | 1070 | /glob-parent@6.0.2: 1071 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1072 | engines: {node: '>=10.13.0'} 1073 | dependencies: 1074 | is-glob: 4.0.3 1075 | dev: true 1076 | 1077 | /glob@7.2.3: 1078 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1079 | dependencies: 1080 | fs.realpath: 1.0.0 1081 | inflight: 1.0.6 1082 | inherits: 2.0.4 1083 | minimatch: 3.1.2 1084 | once: 1.4.0 1085 | path-is-absolute: 1.0.1 1086 | dev: true 1087 | 1088 | /globals@13.20.0: 1089 | resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} 1090 | engines: {node: '>=8'} 1091 | dependencies: 1092 | type-fest: 0.20.2 1093 | dev: true 1094 | 1095 | /globalyzer@0.1.0: 1096 | resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} 1097 | dev: true 1098 | 1099 | /globby@11.1.0: 1100 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1101 | engines: {node: '>=10'} 1102 | dependencies: 1103 | array-union: 2.1.0 1104 | dir-glob: 3.0.1 1105 | fast-glob: 3.2.12 1106 | ignore: 5.2.4 1107 | merge2: 1.4.1 1108 | slash: 3.0.0 1109 | dev: true 1110 | 1111 | /globrex@0.1.2: 1112 | resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} 1113 | dev: true 1114 | 1115 | /graceful-fs@4.2.11: 1116 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1117 | dev: true 1118 | 1119 | /grapheme-splitter@1.0.4: 1120 | resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} 1121 | dev: true 1122 | 1123 | /has-flag@4.0.0: 1124 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1125 | engines: {node: '>=8'} 1126 | dev: true 1127 | 1128 | /has@1.0.3: 1129 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 1130 | engines: {node: '>= 0.4.0'} 1131 | dependencies: 1132 | function-bind: 1.1.1 1133 | dev: true 1134 | 1135 | /ignore@5.2.4: 1136 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} 1137 | engines: {node: '>= 4'} 1138 | dev: true 1139 | 1140 | /import-fresh@3.3.0: 1141 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1142 | engines: {node: '>=6'} 1143 | dependencies: 1144 | parent-module: 1.0.1 1145 | resolve-from: 4.0.0 1146 | dev: true 1147 | 1148 | /import-meta-resolve@2.2.2: 1149 | resolution: {integrity: sha512-f8KcQ1D80V7RnqVm+/lirO9zkOxjGxhaTC1IPrBGd3MEfNgmNG67tSUO9gTi2F3Blr2Az6g1vocaxzkVnWl9MA==} 1150 | dev: true 1151 | 1152 | /imurmurhash@0.1.4: 1153 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1154 | engines: {node: '>=0.8.19'} 1155 | dev: true 1156 | 1157 | /inflight@1.0.6: 1158 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1159 | dependencies: 1160 | once: 1.4.0 1161 | wrappy: 1.0.2 1162 | dev: true 1163 | 1164 | /inherits@2.0.4: 1165 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1166 | dev: true 1167 | 1168 | /is-binary-path@2.1.0: 1169 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1170 | engines: {node: '>=8'} 1171 | dependencies: 1172 | binary-extensions: 2.2.0 1173 | dev: true 1174 | 1175 | /is-core-module@2.12.0: 1176 | resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==} 1177 | dependencies: 1178 | has: 1.0.3 1179 | dev: true 1180 | 1181 | /is-extglob@2.1.1: 1182 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1183 | engines: {node: '>=0.10.0'} 1184 | dev: true 1185 | 1186 | /is-glob@4.0.3: 1187 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1188 | engines: {node: '>=0.10.0'} 1189 | dependencies: 1190 | is-extglob: 2.1.1 1191 | dev: true 1192 | 1193 | /is-number@7.0.0: 1194 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1195 | engines: {node: '>=0.12.0'} 1196 | dev: true 1197 | 1198 | /is-path-inside@3.0.3: 1199 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 1200 | engines: {node: '>=8'} 1201 | dev: true 1202 | 1203 | /isexe@2.0.0: 1204 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1205 | dev: true 1206 | 1207 | /js-sdsl@4.4.0: 1208 | resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==} 1209 | dev: true 1210 | 1211 | /js-yaml@4.1.0: 1212 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1213 | hasBin: true 1214 | dependencies: 1215 | argparse: 2.0.1 1216 | dev: true 1217 | 1218 | /json-schema-traverse@0.4.1: 1219 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1220 | dev: true 1221 | 1222 | /json-stable-stringify-without-jsonify@1.0.1: 1223 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1224 | dev: true 1225 | 1226 | /jsonwebtoken@9.0.0: 1227 | resolution: {integrity: sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==} 1228 | engines: {node: '>=12', npm: '>=6'} 1229 | dependencies: 1230 | jws: 3.2.2 1231 | lodash: 4.17.21 1232 | ms: 2.1.3 1233 | semver: 7.4.0 1234 | dev: false 1235 | 1236 | /jwa@1.4.1: 1237 | resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} 1238 | dependencies: 1239 | buffer-equal-constant-time: 1.0.1 1240 | ecdsa-sig-formatter: 1.0.11 1241 | safe-buffer: 5.2.1 1242 | dev: false 1243 | 1244 | /jws@3.2.2: 1245 | resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} 1246 | dependencies: 1247 | jwa: 1.4.1 1248 | safe-buffer: 5.2.1 1249 | dev: false 1250 | 1251 | /kleur@4.1.5: 1252 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 1253 | engines: {node: '>=6'} 1254 | dev: true 1255 | 1256 | /levn@0.4.1: 1257 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1258 | engines: {node: '>= 0.8.0'} 1259 | dependencies: 1260 | prelude-ls: 1.2.1 1261 | type-check: 0.4.0 1262 | dev: true 1263 | 1264 | /locate-path@6.0.0: 1265 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1266 | engines: {node: '>=10'} 1267 | dependencies: 1268 | p-locate: 5.0.0 1269 | dev: true 1270 | 1271 | /lodash.merge@4.6.2: 1272 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1273 | dev: true 1274 | 1275 | /lodash@4.17.21: 1276 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1277 | dev: false 1278 | 1279 | /lru-cache@6.0.0: 1280 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 1281 | engines: {node: '>=10'} 1282 | dependencies: 1283 | yallist: 4.0.0 1284 | 1285 | /magic-string@0.27.0: 1286 | resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} 1287 | engines: {node: '>=12'} 1288 | dependencies: 1289 | '@jridgewell/sourcemap-codec': 1.4.15 1290 | dev: true 1291 | 1292 | /magic-string@0.30.0: 1293 | resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==} 1294 | engines: {node: '>=12'} 1295 | dependencies: 1296 | '@jridgewell/sourcemap-codec': 1.4.15 1297 | dev: true 1298 | 1299 | /merge2@1.4.1: 1300 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1301 | engines: {node: '>= 8'} 1302 | dev: true 1303 | 1304 | /micromatch@4.0.5: 1305 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1306 | engines: {node: '>=8.6'} 1307 | dependencies: 1308 | braces: 3.0.2 1309 | picomatch: 2.3.1 1310 | dev: true 1311 | 1312 | /mime@3.0.0: 1313 | resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} 1314 | engines: {node: '>=10.0.0'} 1315 | hasBin: true 1316 | dev: true 1317 | 1318 | /min-indent@1.0.1: 1319 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 1320 | engines: {node: '>=4'} 1321 | dev: true 1322 | 1323 | /minimatch@3.1.2: 1324 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1325 | dependencies: 1326 | brace-expansion: 1.1.11 1327 | dev: true 1328 | 1329 | /minimist@1.2.8: 1330 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 1331 | dev: true 1332 | 1333 | /mkdirp@0.5.6: 1334 | resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} 1335 | hasBin: true 1336 | dependencies: 1337 | minimist: 1.2.8 1338 | dev: true 1339 | 1340 | /mri@1.2.0: 1341 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 1342 | engines: {node: '>=4'} 1343 | dev: true 1344 | 1345 | /mrmime@1.0.1: 1346 | resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} 1347 | engines: {node: '>=10'} 1348 | dev: true 1349 | 1350 | /ms@2.1.2: 1351 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1352 | dev: true 1353 | 1354 | /ms@2.1.3: 1355 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1356 | dev: false 1357 | 1358 | /nanoid@3.3.6: 1359 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} 1360 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1361 | hasBin: true 1362 | dev: true 1363 | 1364 | /natural-compare-lite@1.4.0: 1365 | resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} 1366 | dev: true 1367 | 1368 | /natural-compare@1.4.0: 1369 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1370 | dev: true 1371 | 1372 | /normalize-path@3.0.0: 1373 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1374 | engines: {node: '>=0.10.0'} 1375 | dev: true 1376 | 1377 | /once@1.4.0: 1378 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1379 | dependencies: 1380 | wrappy: 1.0.2 1381 | dev: true 1382 | 1383 | /optionator@0.9.1: 1384 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} 1385 | engines: {node: '>= 0.8.0'} 1386 | dependencies: 1387 | deep-is: 0.1.4 1388 | fast-levenshtein: 2.0.6 1389 | levn: 0.4.1 1390 | prelude-ls: 1.2.1 1391 | type-check: 0.4.0 1392 | word-wrap: 1.2.3 1393 | dev: true 1394 | 1395 | /p-limit@3.1.0: 1396 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1397 | engines: {node: '>=10'} 1398 | dependencies: 1399 | yocto-queue: 0.1.0 1400 | dev: true 1401 | 1402 | /p-locate@5.0.0: 1403 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1404 | engines: {node: '>=10'} 1405 | dependencies: 1406 | p-limit: 3.1.0 1407 | dev: true 1408 | 1409 | /parent-module@1.0.1: 1410 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1411 | engines: {node: '>=6'} 1412 | dependencies: 1413 | callsites: 3.1.0 1414 | dev: true 1415 | 1416 | /path-exists@4.0.0: 1417 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1418 | engines: {node: '>=8'} 1419 | dev: true 1420 | 1421 | /path-is-absolute@1.0.1: 1422 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1423 | engines: {node: '>=0.10.0'} 1424 | dev: true 1425 | 1426 | /path-key@3.1.1: 1427 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1428 | engines: {node: '>=8'} 1429 | dev: true 1430 | 1431 | /path-parse@1.0.7: 1432 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1433 | dev: true 1434 | 1435 | /path-type@4.0.0: 1436 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1437 | engines: {node: '>=8'} 1438 | dev: true 1439 | 1440 | /picocolors@1.0.0: 1441 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 1442 | dev: true 1443 | 1444 | /picomatch@2.3.1: 1445 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1446 | engines: {node: '>=8.6'} 1447 | dev: true 1448 | 1449 | /postcss@8.4.21: 1450 | resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} 1451 | engines: {node: ^10 || ^12 || >=14} 1452 | dependencies: 1453 | nanoid: 3.3.6 1454 | picocolors: 1.0.0 1455 | source-map-js: 1.0.2 1456 | dev: true 1457 | 1458 | /prelude-ls@1.2.1: 1459 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1460 | engines: {node: '>= 0.8.0'} 1461 | dev: true 1462 | 1463 | /prettier-plugin-svelte@2.10.0(prettier@2.8.7)(svelte@3.58.0): 1464 | resolution: {integrity: sha512-GXMY6t86thctyCvQq+jqElO+MKdB09BkL3hexyGP3Oi8XLKRFaJP1ud/xlWCZ9ZIa2BxHka32zhHfcuU+XsRQg==} 1465 | peerDependencies: 1466 | prettier: ^1.16.4 || ^2.0.0 1467 | svelte: ^3.2.0 1468 | dependencies: 1469 | prettier: 2.8.7 1470 | svelte: 3.58.0 1471 | dev: true 1472 | 1473 | /prettier@2.8.7: 1474 | resolution: {integrity: sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==} 1475 | engines: {node: '>=10.13.0'} 1476 | hasBin: true 1477 | dev: true 1478 | 1479 | /prisma@4.12.0: 1480 | resolution: {integrity: sha512-xqVper4mbwl32BWzLpdznHAYvYDWQQWK2tBfXjdUD397XaveRyAP7SkBZ6kFlIg8kKayF4hvuaVtYwXd9BodAg==} 1481 | engines: {node: '>=14.17'} 1482 | hasBin: true 1483 | requiresBuild: true 1484 | dependencies: 1485 | '@prisma/engines': 4.12.0 1486 | 1487 | /punycode@2.3.0: 1488 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} 1489 | engines: {node: '>=6'} 1490 | dev: true 1491 | 1492 | /queue-microtask@1.2.3: 1493 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1494 | dev: true 1495 | 1496 | /readdirp@3.6.0: 1497 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1498 | engines: {node: '>=8.10.0'} 1499 | dependencies: 1500 | picomatch: 2.3.1 1501 | dev: true 1502 | 1503 | /resolve-from@4.0.0: 1504 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1505 | engines: {node: '>=4'} 1506 | dev: true 1507 | 1508 | /resolve@1.22.2: 1509 | resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} 1510 | hasBin: true 1511 | dependencies: 1512 | is-core-module: 2.12.0 1513 | path-parse: 1.0.7 1514 | supports-preserve-symlinks-flag: 1.0.0 1515 | dev: true 1516 | 1517 | /reusify@1.0.4: 1518 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1519 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1520 | dev: true 1521 | 1522 | /rimraf@2.7.1: 1523 | resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} 1524 | hasBin: true 1525 | dependencies: 1526 | glob: 7.2.3 1527 | dev: true 1528 | 1529 | /rimraf@3.0.2: 1530 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 1531 | hasBin: true 1532 | dependencies: 1533 | glob: 7.2.3 1534 | dev: true 1535 | 1536 | /rollup@3.20.2: 1537 | resolution: {integrity: sha512-3zwkBQl7Ai7MFYQE0y1MeQ15+9jsi7XxfrqwTb/9EK8D9C9+//EBR4M+CuA1KODRaNbFez/lWxA5vhEGZp4MUg==} 1538 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 1539 | hasBin: true 1540 | optionalDependencies: 1541 | fsevents: 2.3.2 1542 | dev: true 1543 | 1544 | /run-parallel@1.2.0: 1545 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1546 | dependencies: 1547 | queue-microtask: 1.2.3 1548 | dev: true 1549 | 1550 | /sade@1.8.1: 1551 | resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} 1552 | engines: {node: '>=6'} 1553 | dependencies: 1554 | mri: 1.2.0 1555 | dev: true 1556 | 1557 | /safe-buffer@5.2.1: 1558 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1559 | dev: false 1560 | 1561 | /sander@0.5.1: 1562 | resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} 1563 | dependencies: 1564 | es6-promise: 3.3.1 1565 | graceful-fs: 4.2.11 1566 | mkdirp: 0.5.6 1567 | rimraf: 2.7.1 1568 | dev: true 1569 | 1570 | /semver@7.4.0: 1571 | resolution: {integrity: sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==} 1572 | engines: {node: '>=10'} 1573 | hasBin: true 1574 | dependencies: 1575 | lru-cache: 6.0.0 1576 | 1577 | /set-cookie-parser@2.6.0: 1578 | resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} 1579 | dev: true 1580 | 1581 | /shebang-command@2.0.0: 1582 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1583 | engines: {node: '>=8'} 1584 | dependencies: 1585 | shebang-regex: 3.0.0 1586 | dev: true 1587 | 1588 | /shebang-regex@3.0.0: 1589 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1590 | engines: {node: '>=8'} 1591 | dev: true 1592 | 1593 | /sirv@2.0.2: 1594 | resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==} 1595 | engines: {node: '>= 10'} 1596 | dependencies: 1597 | '@polka/url': 1.0.0-next.21 1598 | mrmime: 1.0.1 1599 | totalist: 3.0.1 1600 | dev: true 1601 | 1602 | /slash@3.0.0: 1603 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1604 | engines: {node: '>=8'} 1605 | dev: true 1606 | 1607 | /sorcery@0.11.0: 1608 | resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==} 1609 | hasBin: true 1610 | dependencies: 1611 | '@jridgewell/sourcemap-codec': 1.4.15 1612 | buffer-crc32: 0.2.13 1613 | minimist: 1.2.8 1614 | sander: 0.5.1 1615 | dev: true 1616 | 1617 | /source-map-js@1.0.2: 1618 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 1619 | engines: {node: '>=0.10.0'} 1620 | dev: true 1621 | 1622 | /streamsearch@1.1.0: 1623 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 1624 | engines: {node: '>=10.0.0'} 1625 | dev: true 1626 | 1627 | /strip-ansi@6.0.1: 1628 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1629 | engines: {node: '>=8'} 1630 | dependencies: 1631 | ansi-regex: 5.0.1 1632 | dev: true 1633 | 1634 | /strip-indent@3.0.0: 1635 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 1636 | engines: {node: '>=8'} 1637 | dependencies: 1638 | min-indent: 1.0.1 1639 | dev: true 1640 | 1641 | /strip-json-comments@3.1.1: 1642 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1643 | engines: {node: '>=8'} 1644 | dev: true 1645 | 1646 | /supports-color@7.2.0: 1647 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1648 | engines: {node: '>=8'} 1649 | dependencies: 1650 | has-flag: 4.0.0 1651 | dev: true 1652 | 1653 | /supports-preserve-symlinks-flag@1.0.0: 1654 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1655 | engines: {node: '>= 0.4'} 1656 | dev: true 1657 | 1658 | /svelte-check@3.2.0(svelte@3.58.0): 1659 | resolution: {integrity: sha512-6ZnscN8dHEN5Eq5LgIzjj07W9nc9myyBH+diXsUAuiY/3rt0l65/LCIQYlIuoFEjp2F1NhXqZiJwV9omPj9tMw==} 1660 | hasBin: true 1661 | peerDependencies: 1662 | svelte: ^3.55.0 1663 | dependencies: 1664 | '@jridgewell/trace-mapping': 0.3.18 1665 | chokidar: 3.5.3 1666 | fast-glob: 3.2.12 1667 | import-fresh: 3.3.0 1668 | picocolors: 1.0.0 1669 | sade: 1.8.1 1670 | svelte: 3.58.0 1671 | svelte-preprocess: 5.0.3(svelte@3.58.0)(typescript@5.0.4) 1672 | typescript: 5.0.4 1673 | transitivePeerDependencies: 1674 | - '@babel/core' 1675 | - coffeescript 1676 | - less 1677 | - postcss 1678 | - postcss-load-config 1679 | - pug 1680 | - sass 1681 | - stylus 1682 | - sugarss 1683 | dev: true 1684 | 1685 | /svelte-hmr@0.15.1(svelte@3.58.0): 1686 | resolution: {integrity: sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==} 1687 | engines: {node: ^12.20 || ^14.13.1 || >= 16} 1688 | peerDependencies: 1689 | svelte: '>=3.19.0' 1690 | dependencies: 1691 | svelte: 3.58.0 1692 | dev: true 1693 | 1694 | /svelte-preprocess@5.0.3(svelte@3.58.0)(typescript@5.0.4): 1695 | resolution: {integrity: sha512-GrHF1rusdJVbOZOwgPWtpqmaexkydznKzy5qIC2FabgpFyKN57bjMUUUqPRfbBXK5igiEWn1uO/DXsa2vJ5VHA==} 1696 | engines: {node: '>= 14.10.0'} 1697 | requiresBuild: true 1698 | peerDependencies: 1699 | '@babel/core': ^7.10.2 1700 | coffeescript: ^2.5.1 1701 | less: ^3.11.3 || ^4.0.0 1702 | postcss: ^7 || ^8 1703 | postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 1704 | pug: ^3.0.0 1705 | sass: ^1.26.8 1706 | stylus: ^0.55.0 1707 | sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 1708 | svelte: ^3.23.0 1709 | typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0' 1710 | peerDependenciesMeta: 1711 | '@babel/core': 1712 | optional: true 1713 | coffeescript: 1714 | optional: true 1715 | less: 1716 | optional: true 1717 | postcss: 1718 | optional: true 1719 | postcss-load-config: 1720 | optional: true 1721 | pug: 1722 | optional: true 1723 | sass: 1724 | optional: true 1725 | stylus: 1726 | optional: true 1727 | sugarss: 1728 | optional: true 1729 | typescript: 1730 | optional: true 1731 | dependencies: 1732 | '@types/pug': 2.0.6 1733 | detect-indent: 6.1.0 1734 | magic-string: 0.27.0 1735 | sorcery: 0.11.0 1736 | strip-indent: 3.0.0 1737 | svelte: 3.58.0 1738 | typescript: 5.0.4 1739 | dev: true 1740 | 1741 | /svelte@3.58.0: 1742 | resolution: {integrity: sha512-brIBNNB76mXFmU/Kerm4wFnkskBbluBDCjx/8TcpYRb298Yh2dztS2kQ6bhtjMcvUhd5ynClfwpz5h2gnzdQ1A==} 1743 | engines: {node: '>= 8'} 1744 | dev: true 1745 | 1746 | /text-table@0.2.0: 1747 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 1748 | dev: true 1749 | 1750 | /tiny-glob@0.2.9: 1751 | resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} 1752 | dependencies: 1753 | globalyzer: 0.1.0 1754 | globrex: 0.1.2 1755 | dev: true 1756 | 1757 | /to-regex-range@5.0.1: 1758 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1759 | engines: {node: '>=8.0'} 1760 | dependencies: 1761 | is-number: 7.0.0 1762 | dev: true 1763 | 1764 | /totalist@3.0.1: 1765 | resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} 1766 | engines: {node: '>=6'} 1767 | dev: true 1768 | 1769 | /tslib@1.14.1: 1770 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} 1771 | dev: true 1772 | 1773 | /tslib@2.5.0: 1774 | resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} 1775 | dev: true 1776 | 1777 | /tsutils@3.21.0(typescript@5.0.4): 1778 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} 1779 | engines: {node: '>= 6'} 1780 | peerDependencies: 1781 | typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' 1782 | dependencies: 1783 | tslib: 1.14.1 1784 | typescript: 5.0.4 1785 | dev: true 1786 | 1787 | /type-check@0.4.0: 1788 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1789 | engines: {node: '>= 0.8.0'} 1790 | dependencies: 1791 | prelude-ls: 1.2.1 1792 | dev: true 1793 | 1794 | /type-fest@0.20.2: 1795 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 1796 | engines: {node: '>=10'} 1797 | dev: true 1798 | 1799 | /typescript@5.0.4: 1800 | resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} 1801 | engines: {node: '>=12.20'} 1802 | hasBin: true 1803 | dev: true 1804 | 1805 | /undici@5.20.0: 1806 | resolution: {integrity: sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==} 1807 | engines: {node: '>=12.18'} 1808 | dependencies: 1809 | busboy: 1.6.0 1810 | dev: true 1811 | 1812 | /uri-js@4.4.1: 1813 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1814 | dependencies: 1815 | punycode: 2.3.0 1816 | dev: true 1817 | 1818 | /vite@4.2.1: 1819 | resolution: {integrity: sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==} 1820 | engines: {node: ^14.18.0 || >=16.0.0} 1821 | hasBin: true 1822 | peerDependencies: 1823 | '@types/node': '>= 14' 1824 | less: '*' 1825 | sass: '*' 1826 | stylus: '*' 1827 | sugarss: '*' 1828 | terser: ^5.4.0 1829 | peerDependenciesMeta: 1830 | '@types/node': 1831 | optional: true 1832 | less: 1833 | optional: true 1834 | sass: 1835 | optional: true 1836 | stylus: 1837 | optional: true 1838 | sugarss: 1839 | optional: true 1840 | terser: 1841 | optional: true 1842 | dependencies: 1843 | esbuild: 0.17.16 1844 | postcss: 8.4.21 1845 | resolve: 1.22.2 1846 | rollup: 3.20.2 1847 | optionalDependencies: 1848 | fsevents: 2.3.2 1849 | dev: true 1850 | 1851 | /vitefu@0.2.4(vite@4.2.1): 1852 | resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==} 1853 | peerDependencies: 1854 | vite: ^3.0.0 || ^4.0.0 1855 | peerDependenciesMeta: 1856 | vite: 1857 | optional: true 1858 | dependencies: 1859 | vite: 4.2.1 1860 | dev: true 1861 | 1862 | /which@2.0.2: 1863 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1864 | engines: {node: '>= 8'} 1865 | hasBin: true 1866 | dependencies: 1867 | isexe: 2.0.0 1868 | dev: true 1869 | 1870 | /word-wrap@1.2.3: 1871 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} 1872 | engines: {node: '>=0.10.0'} 1873 | dev: true 1874 | 1875 | /wrappy@1.0.2: 1876 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1877 | dev: true 1878 | 1879 | /yallist@4.0.0: 1880 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 1881 | 1882 | /yocto-queue@0.1.0: 1883 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1884 | engines: {node: '>=10'} 1885 | dev: true 1886 | -------------------------------------------------------------------------------- /prisma/schema.prisma: -------------------------------------------------------------------------------- 1 | generator client { 2 | provider = "prisma-client-js" 3 | } 4 | 5 | datasource db { 6 | provider = "sqlite" 7 | url = env("DATABASE_URL") 8 | } 9 | 10 | model User { 11 | id String @id @default(cuid()) 12 | createdAt DateTime @default(now()) 13 | updatedAt DateTime @updatedAt 14 | email String @unique 15 | password String 16 | } 17 | -------------------------------------------------------------------------------- /src/app.css: -------------------------------------------------------------------------------- 1 | main { 2 | max-width: 800px; 3 | margin: 0 auto; 4 | } 5 | 6 | .actions { 7 | margin-top: 3rem; 8 | } 9 | 10 | .actions a { 11 | color: #000; 12 | text-decoration: underline; 13 | font-weight: bold; 14 | } 15 | 16 | form { 17 | display: flex; 18 | flex-direction: column; 19 | gap: 1rem; 20 | background-color: #f2f2f2; 21 | padding: 3rem; 22 | } 23 | 24 | form .group { 25 | margin-bottom: 1rem; 26 | display: flex; 27 | flex-direction: column; 28 | } 29 | 30 | form .group>* { 31 | margin-bottom: 0.5rem; 32 | } 33 | 34 | form .group input { 35 | padding: 0.5rem; 36 | } 37 | 38 | form button[type='submit'] { 39 | background-color: #000; 40 | font-weight: bold; 41 | color: #fff; 42 | padding: 1rem 2rem; 43 | border: none; 44 | cursor: pointer; 45 | } 46 | 47 | .notice { 48 | padding: 1rem; 49 | border-radius: 0.5rem; 50 | border-left: 0.5rem solid; 51 | } 52 | 53 | .notice.error { 54 | background: #f8d7da; 55 | border-color: #f5c6cb; 56 | } -------------------------------------------------------------------------------- /src/app.d.ts: -------------------------------------------------------------------------------- 1 | // See https://kit.svelte.dev/docs/types#app 2 | // for information about these interfaces 3 | // and what to do when importing types 4 | declare namespace App { 5 | interface Locals { 6 | user?: { 7 | id: string; 8 | email: string; 9 | }; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | %sveltekit.head% 8 | 9 | 10 |8 | Go to login page to login or signup a new account. 9 |
10 | {:else} 11 |This page is guarded and will only be accessible to authenticated users.
18 | 19 |Hello {user.email}
20 |