├── .eslintignore ├── .eslintrc.cjs ├── .gitignore ├── .npmrc ├── .prettierignore ├── .prettierrc ├── README.md ├── code.png ├── package.json ├── playwright.config.ts ├── pnpm-lock.yaml ├── prisma └── schema.prisma ├── rome.json ├── src ├── app.d.ts ├── app.html ├── hooks.server.ts ├── lib │ └── server │ │ ├── lucia.ts │ │ └── prisma.ts └── routes │ ├── +layout.server.ts │ ├── +layout.svelte │ ├── +page.server.ts │ ├── +page.svelte │ ├── [articleId] │ ├── +page.server.ts │ └── +page.svelte │ ├── login │ ├── +page.server.ts │ └── +page.svelte │ ├── logout │ └── +server.ts │ └── register │ ├── +page.server.ts │ └── +page.svelte ├── static └── favicon.png ├── svelte.config.js ├── tests └── test.ts ├── tsconfig.json └── vite.config.ts /.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 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /build 4 | /.svelte-kit 5 | /package 6 | .env 7 | .env.* 8 | !.env.example 9 | vite.config.js.timestamp-* 10 | vite.config.ts.timestamp-* 11 | prisma/dev.sqlite 12 | *.sqlite-journal 13 | migration_lock* 14 | migration.sql 15 | *.code-workspace 16 | package-lock.json -------------------------------------------------------------------------------- /.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 | "semi": false, 6 | "printWidth": 100, 7 | "plugins": [ 8 | "prettier-plugin-svelte" 9 | ], 10 | "pluginSearchDirs": [ 11 | "." 12 | ], 13 | "overrides": [ 14 | { 15 | "files": "*.svelte", 16 | "options": { 17 | "parser": "svelte" 18 | } 19 | } 20 | ] 21 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Getting Started 2 | 3 | 1. Clone the repo: `git clone https://github.com/jt196/sveltekit-lucia-prisma.git` 4 | 2. Install the base packages: `npm i` 5 | 3. Initialise the Prisma db: `npx prisma migrate dev --name init` 6 | 4. Generate the Prisma client and types (is this typescript?): `npx prisma generate` 7 | 8 | # v1.0 Differences 9 | 10 | More info [here](https://lucia-auth.com/start-here/migrate-to-version-1?sveltekit) 11 | 12 | 1. The **database schema** has been every so slightly tweaked. The basic concepts and relations between models hasn't changed but check the docs for the latest version 13 | 2. The SvelteKit integration has been deprecated. Wait! **SvelteKit support is now built into the main library.** Check the [getting started page](https://lucia-auth.com/start-here/getting-started?sveltekit) for SvelteKit in the docs on how to set up the handle hook! 14 | 3. **API name changes**. There hasn't been any drastic name changes so you should be able to infer it from the autocomplete. 15 | -------------------------------------------------------------------------------- /code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huntabyte/sveltekit-lucia-prisma/b0ded019cc89947ce5230b33a0c982d7ab46f847/code.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sk-prisma-quickstart", 3 | "version": "0.0.1", 4 | "private": true, 5 | "scripts": { 6 | "dev": "vite dev", 7 | "build": "vite build", 8 | "preview": "vite preview", 9 | "test": "playwright test", 10 | "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", 11 | "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", 12 | "test:unit": "vitest", 13 | "lint": "prettier --plugin-search-dir . --check . && eslint .", 14 | "format": "prettier --plugin-search-dir . --write ." 15 | }, 16 | "devDependencies": { 17 | "@playwright/test": "^1.30.0", 18 | "@sveltejs/adapter-auto": "^1.0.2", 19 | "@sveltejs/kit": "^1.3.10", 20 | "@typescript-eslint/eslint-plugin": "^5.50.0", 21 | "@typescript-eslint/parser": "^5.50.0", 22 | "eslint": "^8.33.0", 23 | "eslint-config-prettier": "^8.6.0", 24 | "eslint-plugin-svelte3": "^4.0.0", 25 | "prettier": "^2.8.3", 26 | "prettier-plugin-svelte": "^2.9.0", 27 | "prisma": "^4.14.1", 28 | "rome": "^11.0.0", 29 | "svelte": "^3.55.1", 30 | "svelte-check": "^3.0.3", 31 | "tslib": "^2.5.0", 32 | "typescript": "^4.9.5", 33 | "vite": "^4.1.1", 34 | "vitest": "^0.25.8" 35 | }, 36 | "type": "module", 37 | "dependencies": { 38 | "@lucia-auth/adapter-prisma": "^2.0.0", 39 | "@picocss/pico": "^1.5.7", 40 | "@prisma/client": "^4.9.0", 41 | "lucia-auth": "^1.7.0" 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /playwright.config.ts: -------------------------------------------------------------------------------- 1 | import type { PlaywrightTestConfig } from '@playwright/test'; 2 | 3 | const config: PlaywrightTestConfig = { 4 | webServer: { 5 | command: 'npm run build && npm run preview', 6 | port: 4173 7 | }, 8 | testDir: 'tests' 9 | }; 10 | 11 | export default config; 12 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | '@lucia-auth/adapter-prisma': ^0.4.0 5 | '@lucia-auth/sveltekit': ^0.6.2 6 | '@picocss/pico': ^1.5.7 7 | '@playwright/test': ^1.30.0 8 | '@prisma/client': ^4.9.0 9 | '@sveltejs/adapter-auto': ^1.0.2 10 | '@sveltejs/kit': ^1.3.10 11 | '@typescript-eslint/eslint-plugin': ^5.50.0 12 | '@typescript-eslint/parser': ^5.50.0 13 | eslint: ^8.33.0 14 | eslint-config-prettier: ^8.6.0 15 | eslint-plugin-svelte3: ^4.0.0 16 | lucia-auth: ^0.6.0 17 | prettier: ^2.8.3 18 | prettier-plugin-svelte: ^2.9.0 19 | prisma: ^4.9.0 20 | rome: ^11.0.0 21 | svelte: ^3.55.1 22 | svelte-check: ^3.0.3 23 | tslib: ^2.5.0 24 | typescript: ^4.9.5 25 | vite: ^4.1.1 26 | vitest: ^0.25.8 27 | 28 | dependencies: 29 | '@lucia-auth/adapter-prisma': 0.4.0_lucia-auth@0.6.0 30 | '@lucia-auth/sveltekit': 0.6.2_iyasqsbplmktfcni36hpxhd3zi 31 | '@picocss/pico': 1.5.7 32 | '@prisma/client': 4.9.0_prisma@4.9.0 33 | lucia-auth: 0.6.0 34 | 35 | devDependencies: 36 | '@playwright/test': 1.30.0 37 | '@sveltejs/adapter-auto': 1.0.2_@sveltejs+kit@1.3.10 38 | '@sveltejs/kit': 1.3.10_svelte@3.55.1+vite@4.1.1 39 | '@typescript-eslint/eslint-plugin': 5.50.0_go4drrxstycfikanvu45pi4vgq 40 | '@typescript-eslint/parser': 5.50.0_4vsywjlpuriuw3tl5oq6zy5a64 41 | eslint: 8.33.0 42 | eslint-config-prettier: 8.6.0_eslint@8.33.0 43 | eslint-plugin-svelte3: 4.0.0_4omm2ewoudhgnmf7aocafatnc4 44 | prettier: 2.8.3 45 | prettier-plugin-svelte: 2.9.0_kdmmghgdi3ngrsq6otxkjilbry 46 | prisma: 4.9.0 47 | rome: 11.0.0 48 | svelte: 3.55.1 49 | svelte-check: 3.0.3_svelte@3.55.1 50 | tslib: 2.5.0 51 | typescript: 4.9.5 52 | vite: 4.1.1 53 | vitest: 0.25.8 54 | 55 | packages: 56 | 57 | /@esbuild/android-arm/0.16.17: 58 | resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==} 59 | engines: {node: '>=12'} 60 | cpu: [arm] 61 | os: [android] 62 | requiresBuild: true 63 | dev: true 64 | optional: true 65 | 66 | /@esbuild/android-arm64/0.16.17: 67 | resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==} 68 | engines: {node: '>=12'} 69 | cpu: [arm64] 70 | os: [android] 71 | requiresBuild: true 72 | dev: true 73 | optional: true 74 | 75 | /@esbuild/android-x64/0.16.17: 76 | resolution: {integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==} 77 | engines: {node: '>=12'} 78 | cpu: [x64] 79 | os: [android] 80 | requiresBuild: true 81 | dev: true 82 | optional: true 83 | 84 | /@esbuild/darwin-arm64/0.16.17: 85 | resolution: {integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==} 86 | engines: {node: '>=12'} 87 | cpu: [arm64] 88 | os: [darwin] 89 | requiresBuild: true 90 | dev: true 91 | optional: true 92 | 93 | /@esbuild/darwin-x64/0.16.17: 94 | resolution: {integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==} 95 | engines: {node: '>=12'} 96 | cpu: [x64] 97 | os: [darwin] 98 | requiresBuild: true 99 | dev: true 100 | optional: true 101 | 102 | /@esbuild/freebsd-arm64/0.16.17: 103 | resolution: {integrity: sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==} 104 | engines: {node: '>=12'} 105 | cpu: [arm64] 106 | os: [freebsd] 107 | requiresBuild: true 108 | dev: true 109 | optional: true 110 | 111 | /@esbuild/freebsd-x64/0.16.17: 112 | resolution: {integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==} 113 | engines: {node: '>=12'} 114 | cpu: [x64] 115 | os: [freebsd] 116 | requiresBuild: true 117 | dev: true 118 | optional: true 119 | 120 | /@esbuild/linux-arm/0.16.17: 121 | resolution: {integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==} 122 | engines: {node: '>=12'} 123 | cpu: [arm] 124 | os: [linux] 125 | requiresBuild: true 126 | dev: true 127 | optional: true 128 | 129 | /@esbuild/linux-arm64/0.16.17: 130 | resolution: {integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==} 131 | engines: {node: '>=12'} 132 | cpu: [arm64] 133 | os: [linux] 134 | requiresBuild: true 135 | dev: true 136 | optional: true 137 | 138 | /@esbuild/linux-ia32/0.16.17: 139 | resolution: {integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==} 140 | engines: {node: '>=12'} 141 | cpu: [ia32] 142 | os: [linux] 143 | requiresBuild: true 144 | dev: true 145 | optional: true 146 | 147 | /@esbuild/linux-loong64/0.16.17: 148 | resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==} 149 | engines: {node: '>=12'} 150 | cpu: [loong64] 151 | os: [linux] 152 | requiresBuild: true 153 | dev: true 154 | optional: true 155 | 156 | /@esbuild/linux-mips64el/0.16.17: 157 | resolution: {integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==} 158 | engines: {node: '>=12'} 159 | cpu: [mips64el] 160 | os: [linux] 161 | requiresBuild: true 162 | dev: true 163 | optional: true 164 | 165 | /@esbuild/linux-ppc64/0.16.17: 166 | resolution: {integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==} 167 | engines: {node: '>=12'} 168 | cpu: [ppc64] 169 | os: [linux] 170 | requiresBuild: true 171 | dev: true 172 | optional: true 173 | 174 | /@esbuild/linux-riscv64/0.16.17: 175 | resolution: {integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==} 176 | engines: {node: '>=12'} 177 | cpu: [riscv64] 178 | os: [linux] 179 | requiresBuild: true 180 | dev: true 181 | optional: true 182 | 183 | /@esbuild/linux-s390x/0.16.17: 184 | resolution: {integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==} 185 | engines: {node: '>=12'} 186 | cpu: [s390x] 187 | os: [linux] 188 | requiresBuild: true 189 | dev: true 190 | optional: true 191 | 192 | /@esbuild/linux-x64/0.16.17: 193 | resolution: {integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==} 194 | engines: {node: '>=12'} 195 | cpu: [x64] 196 | os: [linux] 197 | requiresBuild: true 198 | dev: true 199 | optional: true 200 | 201 | /@esbuild/netbsd-x64/0.16.17: 202 | resolution: {integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==} 203 | engines: {node: '>=12'} 204 | cpu: [x64] 205 | os: [netbsd] 206 | requiresBuild: true 207 | dev: true 208 | optional: true 209 | 210 | /@esbuild/openbsd-x64/0.16.17: 211 | resolution: {integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==} 212 | engines: {node: '>=12'} 213 | cpu: [x64] 214 | os: [openbsd] 215 | requiresBuild: true 216 | dev: true 217 | optional: true 218 | 219 | /@esbuild/sunos-x64/0.16.17: 220 | resolution: {integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==} 221 | engines: {node: '>=12'} 222 | cpu: [x64] 223 | os: [sunos] 224 | requiresBuild: true 225 | dev: true 226 | optional: true 227 | 228 | /@esbuild/win32-arm64/0.16.17: 229 | resolution: {integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==} 230 | engines: {node: '>=12'} 231 | cpu: [arm64] 232 | os: [win32] 233 | requiresBuild: true 234 | dev: true 235 | optional: true 236 | 237 | /@esbuild/win32-ia32/0.16.17: 238 | resolution: {integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==} 239 | engines: {node: '>=12'} 240 | cpu: [ia32] 241 | os: [win32] 242 | requiresBuild: true 243 | dev: true 244 | optional: true 245 | 246 | /@esbuild/win32-x64/0.16.17: 247 | resolution: {integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==} 248 | engines: {node: '>=12'} 249 | cpu: [x64] 250 | os: [win32] 251 | requiresBuild: true 252 | dev: true 253 | optional: true 254 | 255 | /@eslint/eslintrc/1.4.1: 256 | resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} 257 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 258 | dependencies: 259 | ajv: 6.12.6 260 | debug: 4.3.4 261 | espree: 9.4.1 262 | globals: 13.20.0 263 | ignore: 5.2.4 264 | import-fresh: 3.3.0 265 | js-yaml: 4.1.0 266 | minimatch: 3.1.2 267 | strip-json-comments: 3.1.1 268 | transitivePeerDependencies: 269 | - supports-color 270 | dev: true 271 | 272 | /@humanwhocodes/config-array/0.11.8: 273 | resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} 274 | engines: {node: '>=10.10.0'} 275 | dependencies: 276 | '@humanwhocodes/object-schema': 1.2.1 277 | debug: 4.3.4 278 | minimatch: 3.1.2 279 | transitivePeerDependencies: 280 | - supports-color 281 | dev: true 282 | 283 | /@humanwhocodes/module-importer/1.0.1: 284 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 285 | engines: {node: '>=12.22'} 286 | dev: true 287 | 288 | /@humanwhocodes/object-schema/1.2.1: 289 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} 290 | dev: true 291 | 292 | /@jridgewell/resolve-uri/3.1.0: 293 | resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} 294 | engines: {node: '>=6.0.0'} 295 | dev: true 296 | 297 | /@jridgewell/sourcemap-codec/1.4.14: 298 | resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} 299 | dev: true 300 | 301 | /@jridgewell/trace-mapping/0.3.17: 302 | resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} 303 | dependencies: 304 | '@jridgewell/resolve-uri': 3.1.0 305 | '@jridgewell/sourcemap-codec': 1.4.14 306 | dev: true 307 | 308 | /@lucia-auth/adapter-prisma/0.4.0_lucia-auth@0.6.0: 309 | resolution: {integrity: sha512-HMaGbVfB5KTZBs6KPqI5z6RFKVl4AKfm9u2KrrQglthpd/rWJoJRDI2oYkdcEX4Xu1FNdNJJrEtKKBtVAXYqrw==} 310 | peerDependencies: 311 | lucia-auth: 0.6.x 312 | dependencies: 313 | lucia-auth: 0.6.0 314 | dev: false 315 | 316 | /@lucia-auth/sveltekit/0.6.2_iyasqsbplmktfcni36hpxhd3zi: 317 | resolution: {integrity: sha512-+lOhgctcdVkPRYtJegTaEZYLFhPJOHFjdAm9cBFFjpkV6cNGuHSTxobfOn7yRy3pGVhzGFM91uOfYrJxmECOBA==} 318 | peerDependencies: 319 | lucia-auth: 0.5.x - 0.6.x 320 | svelte: 3.x 321 | dependencies: 322 | '@noble/hashes': 1.2.0 323 | lucia-auth: 0.6.0 324 | svelte: 3.55.1 325 | dev: false 326 | 327 | /@noble/hashes/1.2.0: 328 | resolution: {integrity: sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==} 329 | dev: false 330 | 331 | /@nodelib/fs.scandir/2.1.5: 332 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 333 | engines: {node: '>= 8'} 334 | dependencies: 335 | '@nodelib/fs.stat': 2.0.5 336 | run-parallel: 1.2.0 337 | dev: true 338 | 339 | /@nodelib/fs.stat/2.0.5: 340 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 341 | engines: {node: '>= 8'} 342 | dev: true 343 | 344 | /@nodelib/fs.walk/1.2.8: 345 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 346 | engines: {node: '>= 8'} 347 | dependencies: 348 | '@nodelib/fs.scandir': 2.1.5 349 | fastq: 1.15.0 350 | dev: true 351 | 352 | /@picocss/pico/1.5.7: 353 | resolution: {integrity: sha512-RygdXNlSXieAs9jMw/AeqA1ki1kldgEYbRn8BnYZIPfRTM5NWZ4uVzMK6uMPhYlRjoT5wD/OplZvIefnCqyDCQ==} 354 | dev: false 355 | 356 | /@playwright/test/1.30.0: 357 | resolution: {integrity: sha512-SVxkQw1xvn/Wk/EvBnqWIq6NLo1AppwbYOjNLmyU0R1RoQ3rLEBtmjTnElcnz8VEtn11fptj1ECxK0tgURhajw==} 358 | engines: {node: '>=14'} 359 | hasBin: true 360 | dependencies: 361 | '@types/node': 18.11.19 362 | playwright-core: 1.30.0 363 | dev: true 364 | 365 | /@polka/url/1.0.0-next.21: 366 | resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} 367 | dev: true 368 | 369 | /@prisma/client/4.9.0_prisma@4.9.0: 370 | resolution: {integrity: sha512-bz6QARw54sWcbyR1lLnF2QHvRW5R/Jxnbbmwh3u+969vUKXtBkXgSgjDA85nji31ZBlf7+FrHDy5x+5ydGyQDg==} 371 | engines: {node: '>=14.17'} 372 | requiresBuild: true 373 | peerDependencies: 374 | prisma: '*' 375 | peerDependenciesMeta: 376 | prisma: 377 | optional: true 378 | dependencies: 379 | '@prisma/engines-version': 4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5 380 | prisma: 4.9.0 381 | dev: false 382 | 383 | /@prisma/engines-version/4.9.0-42.ceb5c99003b99c9ee2c1d2e618e359c14aef2ea5: 384 | resolution: {integrity: sha512-M16aibbxi/FhW7z1sJCX8u+0DriyQYY5AyeTH7plQm9MLnURoiyn3CZBqAyIoQ+Z1pS77usCIibYJWSgleBMBA==} 385 | dev: false 386 | 387 | /@prisma/engines/4.9.0: 388 | resolution: {integrity: sha512-t1pt0Gsp+HcgPJrHFc+d/ZSAaKKWar2G/iakrE07yeKPNavDP3iVKPpfXP22OTCHZUWf7OelwKJxQgKAm5hkgw==} 389 | requiresBuild: true 390 | 391 | /@rometools/cli-darwin-arm64/11.0.0: 392 | resolution: {integrity: sha512-F3vkdY+s3FLIEnAjSbyHTuIPB88cLpccimW4ecid5I7S6GzGG3iUJI4xT00JhH73K4P/qW20/9r+kH1T9Du8Xg==} 393 | cpu: [arm64] 394 | os: [darwin] 395 | requiresBuild: true 396 | dev: true 397 | optional: true 398 | 399 | /@rometools/cli-darwin-x64/11.0.0: 400 | resolution: {integrity: sha512-X6jhtS6Iml4GOzgNtnLwIp/KXXhSdqeVyfv69m/AHnIzx3gQAjPZ7BPnJLvTCbhe4SKHL+uTZYFSCJpkUUKE6w==} 401 | cpu: [x64] 402 | os: [darwin] 403 | requiresBuild: true 404 | dev: true 405 | optional: true 406 | 407 | /@rometools/cli-linux-arm64/11.0.0: 408 | resolution: {integrity: sha512-dktTJJlTpmycBZ2TwhJBcAO8ztK8DdevdyZnFFxdYRvtmJgTjIsC2UFayf/SbKew8B8q1IhI0it+D6ihAeIpeg==} 409 | cpu: [arm64] 410 | os: [linux] 411 | requiresBuild: true 412 | dev: true 413 | optional: true 414 | 415 | /@rometools/cli-linux-x64/11.0.0: 416 | resolution: {integrity: sha512-WVcnXPNdWGUWo0p4NU8YzuthjYR7q+b4vRcjdxtP1DlpphZmSsoC/RSE85nEqRAz8hChcKUansVzOPM8BSsuGA==} 417 | cpu: [x64] 418 | os: [linux] 419 | requiresBuild: true 420 | dev: true 421 | optional: true 422 | 423 | /@rometools/cli-win32-arm64/11.0.0: 424 | resolution: {integrity: sha512-tPj6RThQzS7Q45jqQll7NlTYvNcsg/BEP3LYiiazqSh9FAFnMkrV6ewUcMPKWyAfiyLs7jlz4rRvdNRUSygzfQ==} 425 | cpu: [arm64] 426 | os: [win32] 427 | requiresBuild: true 428 | dev: true 429 | optional: true 430 | 431 | /@rometools/cli-win32-x64/11.0.0: 432 | resolution: {integrity: sha512-bmBai8WHxYjsGk1+je7ZTfCUCWq30WJI3pQM8pzTA674lfGTZ9ymJoZwTaIMSO4rL5V9mlO6uLunsBKso9VqOg==} 433 | cpu: [x64] 434 | os: [win32] 435 | requiresBuild: true 436 | dev: true 437 | optional: true 438 | 439 | /@sveltejs/adapter-auto/1.0.2_@sveltejs+kit@1.3.10: 440 | resolution: {integrity: sha512-UXpEO/gutERZnD+Z5Vi4J/ifD3WSRuCI7xwtLJTcKNQvJ6t5Xsj1X3Mw2F8Vv/XTUuxf7xPLYUgThU331r0Y9w==} 441 | peerDependencies: 442 | '@sveltejs/kit': ^1.0.0 443 | dependencies: 444 | '@sveltejs/kit': 1.3.10_svelte@3.55.1+vite@4.1.1 445 | import-meta-resolve: 2.2.1 446 | dev: true 447 | 448 | /@sveltejs/kit/1.3.10_svelte@3.55.1+vite@4.1.1: 449 | resolution: {integrity: sha512-I3DgWCwTYbTz4ZPCJIRkSDrKkMu0bsdk6ghqsOBVNqesf1wBdTdfkXhag3ESWgIEjUV3VUIWPQF7fnt7328mhQ==} 450 | engines: {node: ^16.14 || >=18} 451 | hasBin: true 452 | requiresBuild: true 453 | peerDependencies: 454 | svelte: ^3.54.0 455 | vite: ^4.0.0 456 | dependencies: 457 | '@sveltejs/vite-plugin-svelte': 2.0.2_svelte@3.55.1+vite@4.1.1 458 | '@types/cookie': 0.5.1 459 | cookie: 0.5.0 460 | devalue: 4.2.3 461 | esm-env: 1.0.0 462 | kleur: 4.1.5 463 | magic-string: 0.27.0 464 | mime: 3.0.0 465 | sade: 1.8.1 466 | set-cookie-parser: 2.5.1 467 | sirv: 2.0.2 468 | svelte: 3.55.1 469 | tiny-glob: 0.2.9 470 | undici: 5.16.0 471 | vite: 4.1.1 472 | transitivePeerDependencies: 473 | - supports-color 474 | dev: true 475 | 476 | /@sveltejs/vite-plugin-svelte/2.0.2_svelte@3.55.1+vite@4.1.1: 477 | resolution: {integrity: sha512-xCEan0/NNpQuL0l5aS42FjwQ6wwskdxC3pW1OeFtEKNZwRg7Evro9lac9HesGP6TdFsTv2xMes5ASQVKbCacxg==} 478 | engines: {node: ^14.18.0 || >= 16} 479 | peerDependencies: 480 | svelte: ^3.54.0 481 | vite: ^4.0.0 482 | dependencies: 483 | debug: 4.3.4 484 | deepmerge: 4.3.0 485 | kleur: 4.1.5 486 | magic-string: 0.27.0 487 | svelte: 3.55.1 488 | svelte-hmr: 0.15.1_svelte@3.55.1 489 | vite: 4.1.1 490 | vitefu: 0.2.4_vite@4.1.1 491 | transitivePeerDependencies: 492 | - supports-color 493 | dev: true 494 | 495 | /@types/chai-subset/1.3.3: 496 | resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} 497 | dependencies: 498 | '@types/chai': 4.3.4 499 | dev: true 500 | 501 | /@types/chai/4.3.4: 502 | resolution: {integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==} 503 | dev: true 504 | 505 | /@types/cookie/0.5.1: 506 | resolution: {integrity: sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==} 507 | dev: true 508 | 509 | /@types/json-schema/7.0.11: 510 | resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} 511 | dev: true 512 | 513 | /@types/node/18.11.19: 514 | resolution: {integrity: sha512-YUgMWAQBWLObABqrvx8qKO1enAvBUdjZOAWQ5grBAkp5LQv45jBvYKZ3oFS9iKRCQyFjqw6iuEa1vmFqtxYLZw==} 515 | dev: true 516 | 517 | /@types/pug/2.0.6: 518 | resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==} 519 | dev: true 520 | 521 | /@types/sass/1.43.1: 522 | resolution: {integrity: sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==} 523 | dependencies: 524 | '@types/node': 18.11.19 525 | dev: true 526 | 527 | /@types/semver/7.3.13: 528 | resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} 529 | dev: true 530 | 531 | /@typescript-eslint/eslint-plugin/5.50.0_go4drrxstycfikanvu45pi4vgq: 532 | resolution: {integrity: sha512-vwksQWSFZiUhgq3Kv7o1Jcj0DUNylwnIlGvKvLLYsq8pAWha6/WCnXUeaSoNNha/K7QSf2+jvmkxggC1u3pIwQ==} 533 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 534 | peerDependencies: 535 | '@typescript-eslint/parser': ^5.0.0 536 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 537 | typescript: '*' 538 | peerDependenciesMeta: 539 | typescript: 540 | optional: true 541 | dependencies: 542 | '@typescript-eslint/parser': 5.50.0_4vsywjlpuriuw3tl5oq6zy5a64 543 | '@typescript-eslint/scope-manager': 5.50.0 544 | '@typescript-eslint/type-utils': 5.50.0_4vsywjlpuriuw3tl5oq6zy5a64 545 | '@typescript-eslint/utils': 5.50.0_4vsywjlpuriuw3tl5oq6zy5a64 546 | debug: 4.3.4 547 | eslint: 8.33.0 548 | grapheme-splitter: 1.0.4 549 | ignore: 5.2.4 550 | natural-compare-lite: 1.4.0 551 | regexpp: 3.2.0 552 | semver: 7.3.8 553 | tsutils: 3.21.0_typescript@4.9.5 554 | typescript: 4.9.5 555 | transitivePeerDependencies: 556 | - supports-color 557 | dev: true 558 | 559 | /@typescript-eslint/parser/5.50.0_4vsywjlpuriuw3tl5oq6zy5a64: 560 | resolution: {integrity: sha512-KCcSyNaogUDftK2G9RXfQyOCt51uB5yqC6pkUYqhYh8Kgt+DwR5M0EwEAxGPy/+DH6hnmKeGsNhiZRQxjH71uQ==} 561 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 562 | peerDependencies: 563 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 564 | typescript: '*' 565 | peerDependenciesMeta: 566 | typescript: 567 | optional: true 568 | dependencies: 569 | '@typescript-eslint/scope-manager': 5.50.0 570 | '@typescript-eslint/types': 5.50.0 571 | '@typescript-eslint/typescript-estree': 5.50.0_typescript@4.9.5 572 | debug: 4.3.4 573 | eslint: 8.33.0 574 | typescript: 4.9.5 575 | transitivePeerDependencies: 576 | - supports-color 577 | dev: true 578 | 579 | /@typescript-eslint/scope-manager/5.50.0: 580 | resolution: {integrity: sha512-rt03kaX+iZrhssaT974BCmoUikYtZI24Vp/kwTSy841XhiYShlqoshRFDvN1FKKvU2S3gK+kcBW1EA7kNUrogg==} 581 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 582 | dependencies: 583 | '@typescript-eslint/types': 5.50.0 584 | '@typescript-eslint/visitor-keys': 5.50.0 585 | dev: true 586 | 587 | /@typescript-eslint/type-utils/5.50.0_4vsywjlpuriuw3tl5oq6zy5a64: 588 | resolution: {integrity: sha512-dcnXfZ6OGrNCO7E5UY/i0ktHb7Yx1fV6fnQGGrlnfDhilcs6n19eIRcvLBqx6OQkrPaFlDPk3OJ0WlzQfrV0bQ==} 589 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 590 | peerDependencies: 591 | eslint: '*' 592 | typescript: '*' 593 | peerDependenciesMeta: 594 | typescript: 595 | optional: true 596 | dependencies: 597 | '@typescript-eslint/typescript-estree': 5.50.0_typescript@4.9.5 598 | '@typescript-eslint/utils': 5.50.0_4vsywjlpuriuw3tl5oq6zy5a64 599 | debug: 4.3.4 600 | eslint: 8.33.0 601 | tsutils: 3.21.0_typescript@4.9.5 602 | typescript: 4.9.5 603 | transitivePeerDependencies: 604 | - supports-color 605 | dev: true 606 | 607 | /@typescript-eslint/types/5.50.0: 608 | resolution: {integrity: sha512-atruOuJpir4OtyNdKahiHZobPKFvZnBnfDiyEaBf6d9vy9visE7gDjlmhl+y29uxZ2ZDgvXijcungGFjGGex7w==} 609 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 610 | dev: true 611 | 612 | /@typescript-eslint/typescript-estree/5.50.0_typescript@4.9.5: 613 | resolution: {integrity: sha512-Gq4zapso+OtIZlv8YNAStFtT6d05zyVCK7Fx3h5inlLBx2hWuc/0465C2mg/EQDDU2LKe52+/jN4f0g9bd+kow==} 614 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 615 | peerDependencies: 616 | typescript: '*' 617 | peerDependenciesMeta: 618 | typescript: 619 | optional: true 620 | dependencies: 621 | '@typescript-eslint/types': 5.50.0 622 | '@typescript-eslint/visitor-keys': 5.50.0 623 | debug: 4.3.4 624 | globby: 11.1.0 625 | is-glob: 4.0.3 626 | semver: 7.3.8 627 | tsutils: 3.21.0_typescript@4.9.5 628 | typescript: 4.9.5 629 | transitivePeerDependencies: 630 | - supports-color 631 | dev: true 632 | 633 | /@typescript-eslint/utils/5.50.0_4vsywjlpuriuw3tl5oq6zy5a64: 634 | resolution: {integrity: sha512-v/AnUFImmh8G4PH0NDkf6wA8hujNNcrwtecqW4vtQ1UOSNBaZl49zP1SHoZ/06e+UiwzHpgb5zP5+hwlYYWYAw==} 635 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 636 | peerDependencies: 637 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 638 | dependencies: 639 | '@types/json-schema': 7.0.11 640 | '@types/semver': 7.3.13 641 | '@typescript-eslint/scope-manager': 5.50.0 642 | '@typescript-eslint/types': 5.50.0 643 | '@typescript-eslint/typescript-estree': 5.50.0_typescript@4.9.5 644 | eslint: 8.33.0 645 | eslint-scope: 5.1.1 646 | eslint-utils: 3.0.0_eslint@8.33.0 647 | semver: 7.3.8 648 | transitivePeerDependencies: 649 | - supports-color 650 | - typescript 651 | dev: true 652 | 653 | /@typescript-eslint/visitor-keys/5.50.0: 654 | resolution: {integrity: sha512-cdMeD9HGu6EXIeGOh2yVW6oGf9wq8asBgZx7nsR/D36gTfQ0odE5kcRYe5M81vjEFAcPeugXrHg78Imu55F6gg==} 655 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 656 | dependencies: 657 | '@typescript-eslint/types': 5.50.0 658 | eslint-visitor-keys: 3.3.0 659 | dev: true 660 | 661 | /acorn-jsx/5.3.2_acorn@8.8.2: 662 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 663 | peerDependencies: 664 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 665 | dependencies: 666 | acorn: 8.8.2 667 | dev: true 668 | 669 | /acorn-walk/8.2.0: 670 | resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} 671 | engines: {node: '>=0.4.0'} 672 | dev: true 673 | 674 | /acorn/8.8.2: 675 | resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} 676 | engines: {node: '>=0.4.0'} 677 | hasBin: true 678 | dev: true 679 | 680 | /ajv/6.12.6: 681 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 682 | dependencies: 683 | fast-deep-equal: 3.1.3 684 | fast-json-stable-stringify: 2.1.0 685 | json-schema-traverse: 0.4.1 686 | uri-js: 4.4.1 687 | dev: true 688 | 689 | /ansi-regex/5.0.1: 690 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 691 | engines: {node: '>=8'} 692 | dev: true 693 | 694 | /ansi-styles/4.3.0: 695 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 696 | engines: {node: '>=8'} 697 | dependencies: 698 | color-convert: 2.0.1 699 | dev: true 700 | 701 | /anymatch/3.1.3: 702 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 703 | engines: {node: '>= 8'} 704 | dependencies: 705 | normalize-path: 3.0.0 706 | picomatch: 2.3.1 707 | dev: true 708 | 709 | /argparse/2.0.1: 710 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 711 | dev: true 712 | 713 | /array-union/2.1.0: 714 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 715 | engines: {node: '>=8'} 716 | dev: true 717 | 718 | /assertion-error/1.1.0: 719 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} 720 | dev: true 721 | 722 | /balanced-match/1.0.2: 723 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 724 | dev: true 725 | 726 | /binary-extensions/2.2.0: 727 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 728 | engines: {node: '>=8'} 729 | dev: true 730 | 731 | /brace-expansion/1.1.11: 732 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 733 | dependencies: 734 | balanced-match: 1.0.2 735 | concat-map: 0.0.1 736 | dev: true 737 | 738 | /braces/3.0.2: 739 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 740 | engines: {node: '>=8'} 741 | dependencies: 742 | fill-range: 7.0.1 743 | dev: true 744 | 745 | /buffer-crc32/0.2.13: 746 | resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} 747 | dev: true 748 | 749 | /busboy/1.6.0: 750 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 751 | engines: {node: '>=10.16.0'} 752 | dependencies: 753 | streamsearch: 1.1.0 754 | dev: true 755 | 756 | /callsites/3.1.0: 757 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 758 | engines: {node: '>=6'} 759 | dev: true 760 | 761 | /chai/4.3.7: 762 | resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} 763 | engines: {node: '>=4'} 764 | dependencies: 765 | assertion-error: 1.1.0 766 | check-error: 1.0.2 767 | deep-eql: 4.1.3 768 | get-func-name: 2.0.0 769 | loupe: 2.3.6 770 | pathval: 1.1.1 771 | type-detect: 4.0.8 772 | dev: true 773 | 774 | /chalk/4.1.2: 775 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 776 | engines: {node: '>=10'} 777 | dependencies: 778 | ansi-styles: 4.3.0 779 | supports-color: 7.2.0 780 | dev: true 781 | 782 | /check-error/1.0.2: 783 | resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} 784 | dev: true 785 | 786 | /chokidar/3.5.3: 787 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 788 | engines: {node: '>= 8.10.0'} 789 | dependencies: 790 | anymatch: 3.1.3 791 | braces: 3.0.2 792 | glob-parent: 5.1.2 793 | is-binary-path: 2.1.0 794 | is-glob: 4.0.3 795 | normalize-path: 3.0.0 796 | readdirp: 3.6.0 797 | optionalDependencies: 798 | fsevents: 2.3.2 799 | dev: true 800 | 801 | /color-convert/2.0.1: 802 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 803 | engines: {node: '>=7.0.0'} 804 | dependencies: 805 | color-name: 1.1.4 806 | dev: true 807 | 808 | /color-name/1.1.4: 809 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 810 | dev: true 811 | 812 | /concat-map/0.0.1: 813 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 814 | dev: true 815 | 816 | /cookie/0.5.0: 817 | resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} 818 | engines: {node: '>= 0.6'} 819 | dev: true 820 | 821 | /cross-spawn/7.0.3: 822 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 823 | engines: {node: '>= 8'} 824 | dependencies: 825 | path-key: 3.1.1 826 | shebang-command: 2.0.0 827 | which: 2.0.2 828 | dev: true 829 | 830 | /debug/4.3.4: 831 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 832 | engines: {node: '>=6.0'} 833 | peerDependencies: 834 | supports-color: '*' 835 | peerDependenciesMeta: 836 | supports-color: 837 | optional: true 838 | dependencies: 839 | ms: 2.1.2 840 | dev: true 841 | 842 | /deep-eql/4.1.3: 843 | resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} 844 | engines: {node: '>=6'} 845 | dependencies: 846 | type-detect: 4.0.8 847 | dev: true 848 | 849 | /deep-is/0.1.4: 850 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 851 | dev: true 852 | 853 | /deepmerge/4.3.0: 854 | resolution: {integrity: sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==} 855 | engines: {node: '>=0.10.0'} 856 | dev: true 857 | 858 | /detect-indent/6.1.0: 859 | resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} 860 | engines: {node: '>=8'} 861 | dev: true 862 | 863 | /devalue/4.2.3: 864 | resolution: {integrity: sha512-JG6Q248aN0pgFL57e3zqTVeFraBe+5W2ugvv1mLXsJP6YYIYJhRZhAl7QP8haJrqob6X10F9NEkuCvNILZTPeQ==} 865 | dev: true 866 | 867 | /dir-glob/3.0.1: 868 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 869 | engines: {node: '>=8'} 870 | dependencies: 871 | path-type: 4.0.0 872 | dev: true 873 | 874 | /doctrine/3.0.0: 875 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 876 | engines: {node: '>=6.0.0'} 877 | dependencies: 878 | esutils: 2.0.3 879 | dev: true 880 | 881 | /es6-promise/3.3.1: 882 | resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} 883 | dev: true 884 | 885 | /esbuild/0.16.17: 886 | resolution: {integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==} 887 | engines: {node: '>=12'} 888 | hasBin: true 889 | requiresBuild: true 890 | optionalDependencies: 891 | '@esbuild/android-arm': 0.16.17 892 | '@esbuild/android-arm64': 0.16.17 893 | '@esbuild/android-x64': 0.16.17 894 | '@esbuild/darwin-arm64': 0.16.17 895 | '@esbuild/darwin-x64': 0.16.17 896 | '@esbuild/freebsd-arm64': 0.16.17 897 | '@esbuild/freebsd-x64': 0.16.17 898 | '@esbuild/linux-arm': 0.16.17 899 | '@esbuild/linux-arm64': 0.16.17 900 | '@esbuild/linux-ia32': 0.16.17 901 | '@esbuild/linux-loong64': 0.16.17 902 | '@esbuild/linux-mips64el': 0.16.17 903 | '@esbuild/linux-ppc64': 0.16.17 904 | '@esbuild/linux-riscv64': 0.16.17 905 | '@esbuild/linux-s390x': 0.16.17 906 | '@esbuild/linux-x64': 0.16.17 907 | '@esbuild/netbsd-x64': 0.16.17 908 | '@esbuild/openbsd-x64': 0.16.17 909 | '@esbuild/sunos-x64': 0.16.17 910 | '@esbuild/win32-arm64': 0.16.17 911 | '@esbuild/win32-ia32': 0.16.17 912 | '@esbuild/win32-x64': 0.16.17 913 | dev: true 914 | 915 | /escape-string-regexp/4.0.0: 916 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 917 | engines: {node: '>=10'} 918 | dev: true 919 | 920 | /eslint-config-prettier/8.6.0_eslint@8.33.0: 921 | resolution: {integrity: sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==} 922 | hasBin: true 923 | peerDependencies: 924 | eslint: '>=7.0.0' 925 | dependencies: 926 | eslint: 8.33.0 927 | dev: true 928 | 929 | /eslint-plugin-svelte3/4.0.0_4omm2ewoudhgnmf7aocafatnc4: 930 | resolution: {integrity: sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==} 931 | peerDependencies: 932 | eslint: '>=8.0.0' 933 | svelte: ^3.2.0 934 | dependencies: 935 | eslint: 8.33.0 936 | svelte: 3.55.1 937 | dev: true 938 | 939 | /eslint-scope/5.1.1: 940 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 941 | engines: {node: '>=8.0.0'} 942 | dependencies: 943 | esrecurse: 4.3.0 944 | estraverse: 4.3.0 945 | dev: true 946 | 947 | /eslint-scope/7.1.1: 948 | resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} 949 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 950 | dependencies: 951 | esrecurse: 4.3.0 952 | estraverse: 5.3.0 953 | dev: true 954 | 955 | /eslint-utils/3.0.0_eslint@8.33.0: 956 | resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} 957 | engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} 958 | peerDependencies: 959 | eslint: '>=5' 960 | dependencies: 961 | eslint: 8.33.0 962 | eslint-visitor-keys: 2.1.0 963 | dev: true 964 | 965 | /eslint-visitor-keys/2.1.0: 966 | resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} 967 | engines: {node: '>=10'} 968 | dev: true 969 | 970 | /eslint-visitor-keys/3.3.0: 971 | resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} 972 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 973 | dev: true 974 | 975 | /eslint/8.33.0: 976 | resolution: {integrity: sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==} 977 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 978 | hasBin: true 979 | dependencies: 980 | '@eslint/eslintrc': 1.4.1 981 | '@humanwhocodes/config-array': 0.11.8 982 | '@humanwhocodes/module-importer': 1.0.1 983 | '@nodelib/fs.walk': 1.2.8 984 | ajv: 6.12.6 985 | chalk: 4.1.2 986 | cross-spawn: 7.0.3 987 | debug: 4.3.4 988 | doctrine: 3.0.0 989 | escape-string-regexp: 4.0.0 990 | eslint-scope: 7.1.1 991 | eslint-utils: 3.0.0_eslint@8.33.0 992 | eslint-visitor-keys: 3.3.0 993 | espree: 9.4.1 994 | esquery: 1.4.0 995 | esutils: 2.0.3 996 | fast-deep-equal: 3.1.3 997 | file-entry-cache: 6.0.1 998 | find-up: 5.0.0 999 | glob-parent: 6.0.2 1000 | globals: 13.20.0 1001 | grapheme-splitter: 1.0.4 1002 | ignore: 5.2.4 1003 | import-fresh: 3.3.0 1004 | imurmurhash: 0.1.4 1005 | is-glob: 4.0.3 1006 | is-path-inside: 3.0.3 1007 | js-sdsl: 4.3.0 1008 | js-yaml: 4.1.0 1009 | json-stable-stringify-without-jsonify: 1.0.1 1010 | levn: 0.4.1 1011 | lodash.merge: 4.6.2 1012 | minimatch: 3.1.2 1013 | natural-compare: 1.4.0 1014 | optionator: 0.9.1 1015 | regexpp: 3.2.0 1016 | strip-ansi: 6.0.1 1017 | strip-json-comments: 3.1.1 1018 | text-table: 0.2.0 1019 | transitivePeerDependencies: 1020 | - supports-color 1021 | dev: true 1022 | 1023 | /esm-env/1.0.0: 1024 | resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} 1025 | dev: true 1026 | 1027 | /espree/9.4.1: 1028 | resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==} 1029 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1030 | dependencies: 1031 | acorn: 8.8.2 1032 | acorn-jsx: 5.3.2_acorn@8.8.2 1033 | eslint-visitor-keys: 3.3.0 1034 | dev: true 1035 | 1036 | /esquery/1.4.0: 1037 | resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} 1038 | engines: {node: '>=0.10'} 1039 | dependencies: 1040 | estraverse: 5.3.0 1041 | dev: true 1042 | 1043 | /esrecurse/4.3.0: 1044 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1045 | engines: {node: '>=4.0'} 1046 | dependencies: 1047 | estraverse: 5.3.0 1048 | dev: true 1049 | 1050 | /estraverse/4.3.0: 1051 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} 1052 | engines: {node: '>=4.0'} 1053 | dev: true 1054 | 1055 | /estraverse/5.3.0: 1056 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1057 | engines: {node: '>=4.0'} 1058 | dev: true 1059 | 1060 | /esutils/2.0.3: 1061 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1062 | engines: {node: '>=0.10.0'} 1063 | dev: true 1064 | 1065 | /fast-deep-equal/3.1.3: 1066 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1067 | dev: true 1068 | 1069 | /fast-glob/3.2.12: 1070 | resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} 1071 | engines: {node: '>=8.6.0'} 1072 | dependencies: 1073 | '@nodelib/fs.stat': 2.0.5 1074 | '@nodelib/fs.walk': 1.2.8 1075 | glob-parent: 5.1.2 1076 | merge2: 1.4.1 1077 | micromatch: 4.0.5 1078 | dev: true 1079 | 1080 | /fast-json-stable-stringify/2.1.0: 1081 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1082 | dev: true 1083 | 1084 | /fast-levenshtein/2.0.6: 1085 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1086 | dev: true 1087 | 1088 | /fastq/1.15.0: 1089 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 1090 | dependencies: 1091 | reusify: 1.0.4 1092 | dev: true 1093 | 1094 | /file-entry-cache/6.0.1: 1095 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1096 | engines: {node: ^10.12.0 || >=12.0.0} 1097 | dependencies: 1098 | flat-cache: 3.0.4 1099 | dev: true 1100 | 1101 | /fill-range/7.0.1: 1102 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1103 | engines: {node: '>=8'} 1104 | dependencies: 1105 | to-regex-range: 5.0.1 1106 | dev: true 1107 | 1108 | /find-up/5.0.0: 1109 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1110 | engines: {node: '>=10'} 1111 | dependencies: 1112 | locate-path: 6.0.0 1113 | path-exists: 4.0.0 1114 | dev: true 1115 | 1116 | /flat-cache/3.0.4: 1117 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} 1118 | engines: {node: ^10.12.0 || >=12.0.0} 1119 | dependencies: 1120 | flatted: 3.2.7 1121 | rimraf: 3.0.2 1122 | dev: true 1123 | 1124 | /flatted/3.2.7: 1125 | resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} 1126 | dev: true 1127 | 1128 | /fs.realpath/1.0.0: 1129 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1130 | dev: true 1131 | 1132 | /fsevents/2.3.2: 1133 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 1134 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1135 | os: [darwin] 1136 | requiresBuild: true 1137 | dev: true 1138 | optional: true 1139 | 1140 | /function-bind/1.1.1: 1141 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 1142 | dev: true 1143 | 1144 | /get-func-name/2.0.0: 1145 | resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} 1146 | dev: true 1147 | 1148 | /glob-parent/5.1.2: 1149 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1150 | engines: {node: '>= 6'} 1151 | dependencies: 1152 | is-glob: 4.0.3 1153 | dev: true 1154 | 1155 | /glob-parent/6.0.2: 1156 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1157 | engines: {node: '>=10.13.0'} 1158 | dependencies: 1159 | is-glob: 4.0.3 1160 | dev: true 1161 | 1162 | /glob/7.2.3: 1163 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1164 | dependencies: 1165 | fs.realpath: 1.0.0 1166 | inflight: 1.0.6 1167 | inherits: 2.0.4 1168 | minimatch: 3.1.2 1169 | once: 1.4.0 1170 | path-is-absolute: 1.0.1 1171 | dev: true 1172 | 1173 | /globals/13.20.0: 1174 | resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} 1175 | engines: {node: '>=8'} 1176 | dependencies: 1177 | type-fest: 0.20.2 1178 | dev: true 1179 | 1180 | /globalyzer/0.1.0: 1181 | resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} 1182 | dev: true 1183 | 1184 | /globby/11.1.0: 1185 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1186 | engines: {node: '>=10'} 1187 | dependencies: 1188 | array-union: 2.1.0 1189 | dir-glob: 3.0.1 1190 | fast-glob: 3.2.12 1191 | ignore: 5.2.4 1192 | merge2: 1.4.1 1193 | slash: 3.0.0 1194 | dev: true 1195 | 1196 | /globrex/0.1.2: 1197 | resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} 1198 | dev: true 1199 | 1200 | /graceful-fs/4.2.10: 1201 | resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} 1202 | dev: true 1203 | 1204 | /grapheme-splitter/1.0.4: 1205 | resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} 1206 | dev: true 1207 | 1208 | /has-flag/4.0.0: 1209 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1210 | engines: {node: '>=8'} 1211 | dev: true 1212 | 1213 | /has/1.0.3: 1214 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 1215 | engines: {node: '>= 0.4.0'} 1216 | dependencies: 1217 | function-bind: 1.1.1 1218 | dev: true 1219 | 1220 | /ignore/5.2.4: 1221 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} 1222 | engines: {node: '>= 4'} 1223 | dev: true 1224 | 1225 | /import-fresh/3.3.0: 1226 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1227 | engines: {node: '>=6'} 1228 | dependencies: 1229 | parent-module: 1.0.1 1230 | resolve-from: 4.0.0 1231 | dev: true 1232 | 1233 | /import-meta-resolve/2.2.1: 1234 | resolution: {integrity: sha512-C6lLL7EJPY44kBvA80gq4uMsVFw5x3oSKfuMl1cuZ2RkI5+UJqQXgn+6hlUew0y4ig7Ypt4CObAAIzU53Nfpuw==} 1235 | dev: true 1236 | 1237 | /imurmurhash/0.1.4: 1238 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1239 | engines: {node: '>=0.8.19'} 1240 | dev: true 1241 | 1242 | /inflight/1.0.6: 1243 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1244 | dependencies: 1245 | once: 1.4.0 1246 | wrappy: 1.0.2 1247 | dev: true 1248 | 1249 | /inherits/2.0.4: 1250 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1251 | dev: true 1252 | 1253 | /is-binary-path/2.1.0: 1254 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1255 | engines: {node: '>=8'} 1256 | dependencies: 1257 | binary-extensions: 2.2.0 1258 | dev: true 1259 | 1260 | /is-core-module/2.11.0: 1261 | resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} 1262 | dependencies: 1263 | has: 1.0.3 1264 | dev: true 1265 | 1266 | /is-extglob/2.1.1: 1267 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1268 | engines: {node: '>=0.10.0'} 1269 | dev: true 1270 | 1271 | /is-glob/4.0.3: 1272 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1273 | engines: {node: '>=0.10.0'} 1274 | dependencies: 1275 | is-extglob: 2.1.1 1276 | dev: true 1277 | 1278 | /is-number/7.0.0: 1279 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1280 | engines: {node: '>=0.12.0'} 1281 | dev: true 1282 | 1283 | /is-path-inside/3.0.3: 1284 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 1285 | engines: {node: '>=8'} 1286 | dev: true 1287 | 1288 | /isexe/2.0.0: 1289 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1290 | dev: true 1291 | 1292 | /js-sdsl/4.3.0: 1293 | resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==} 1294 | dev: true 1295 | 1296 | /js-yaml/4.1.0: 1297 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1298 | hasBin: true 1299 | dependencies: 1300 | argparse: 2.0.1 1301 | dev: true 1302 | 1303 | /json-schema-traverse/0.4.1: 1304 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1305 | dev: true 1306 | 1307 | /json-stable-stringify-without-jsonify/1.0.1: 1308 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1309 | dev: true 1310 | 1311 | /kleur/4.1.5: 1312 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 1313 | engines: {node: '>=6'} 1314 | dev: true 1315 | 1316 | /levn/0.4.1: 1317 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1318 | engines: {node: '>= 0.8.0'} 1319 | dependencies: 1320 | prelude-ls: 1.2.1 1321 | type-check: 0.4.0 1322 | dev: true 1323 | 1324 | /local-pkg/0.4.3: 1325 | resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} 1326 | engines: {node: '>=14'} 1327 | dev: true 1328 | 1329 | /locate-path/6.0.0: 1330 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1331 | engines: {node: '>=10'} 1332 | dependencies: 1333 | p-locate: 5.0.0 1334 | dev: true 1335 | 1336 | /lodash.merge/4.6.2: 1337 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1338 | dev: true 1339 | 1340 | /loupe/2.3.6: 1341 | resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} 1342 | dependencies: 1343 | get-func-name: 2.0.0 1344 | dev: true 1345 | 1346 | /lru-cache/6.0.0: 1347 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 1348 | engines: {node: '>=10'} 1349 | dependencies: 1350 | yallist: 4.0.0 1351 | dev: true 1352 | 1353 | /lucia-auth/0.6.0: 1354 | resolution: {integrity: sha512-8j5nPl3RbbqGoZWULER4q+2PP7i8F3Eq3OeN7EnL+bxi4YAn5I+5FcNq/ikUCj8neOxGZyzJiRzFJq+t3r28+g==} 1355 | dependencies: 1356 | '@noble/hashes': 1.2.0 1357 | nanoid: 4.0.1 1358 | dev: false 1359 | 1360 | /magic-string/0.27.0: 1361 | resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} 1362 | engines: {node: '>=12'} 1363 | dependencies: 1364 | '@jridgewell/sourcemap-codec': 1.4.14 1365 | dev: true 1366 | 1367 | /merge2/1.4.1: 1368 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1369 | engines: {node: '>= 8'} 1370 | dev: true 1371 | 1372 | /micromatch/4.0.5: 1373 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1374 | engines: {node: '>=8.6'} 1375 | dependencies: 1376 | braces: 3.0.2 1377 | picomatch: 2.3.1 1378 | dev: true 1379 | 1380 | /mime/3.0.0: 1381 | resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} 1382 | engines: {node: '>=10.0.0'} 1383 | hasBin: true 1384 | dev: true 1385 | 1386 | /min-indent/1.0.1: 1387 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 1388 | engines: {node: '>=4'} 1389 | dev: true 1390 | 1391 | /minimatch/3.1.2: 1392 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1393 | dependencies: 1394 | brace-expansion: 1.1.11 1395 | dev: true 1396 | 1397 | /minimist/1.2.7: 1398 | resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} 1399 | dev: true 1400 | 1401 | /mkdirp/0.5.6: 1402 | resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} 1403 | hasBin: true 1404 | dependencies: 1405 | minimist: 1.2.7 1406 | dev: true 1407 | 1408 | /mri/1.2.0: 1409 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 1410 | engines: {node: '>=4'} 1411 | dev: true 1412 | 1413 | /mrmime/1.0.1: 1414 | resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} 1415 | engines: {node: '>=10'} 1416 | dev: true 1417 | 1418 | /ms/2.1.2: 1419 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1420 | dev: true 1421 | 1422 | /nanoid/3.3.4: 1423 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} 1424 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1425 | hasBin: true 1426 | dev: true 1427 | 1428 | /nanoid/4.0.1: 1429 | resolution: {integrity: sha512-udKGtCCUafD3nQtJg9wBhRP3KMbPglUsgV5JVsXhvyBs/oefqb4sqMEhKBBgqZncYowu58p1prsZQBYvAj/Gww==} 1430 | engines: {node: ^14 || ^16 || >=18} 1431 | hasBin: true 1432 | dev: false 1433 | 1434 | /natural-compare-lite/1.4.0: 1435 | resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} 1436 | dev: true 1437 | 1438 | /natural-compare/1.4.0: 1439 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1440 | dev: true 1441 | 1442 | /normalize-path/3.0.0: 1443 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1444 | engines: {node: '>=0.10.0'} 1445 | dev: true 1446 | 1447 | /once/1.4.0: 1448 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1449 | dependencies: 1450 | wrappy: 1.0.2 1451 | dev: true 1452 | 1453 | /optionator/0.9.1: 1454 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} 1455 | engines: {node: '>= 0.8.0'} 1456 | dependencies: 1457 | deep-is: 0.1.4 1458 | fast-levenshtein: 2.0.6 1459 | levn: 0.4.1 1460 | prelude-ls: 1.2.1 1461 | type-check: 0.4.0 1462 | word-wrap: 1.2.3 1463 | dev: true 1464 | 1465 | /p-limit/3.1.0: 1466 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1467 | engines: {node: '>=10'} 1468 | dependencies: 1469 | yocto-queue: 0.1.0 1470 | dev: true 1471 | 1472 | /p-locate/5.0.0: 1473 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1474 | engines: {node: '>=10'} 1475 | dependencies: 1476 | p-limit: 3.1.0 1477 | dev: true 1478 | 1479 | /parent-module/1.0.1: 1480 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1481 | engines: {node: '>=6'} 1482 | dependencies: 1483 | callsites: 3.1.0 1484 | dev: true 1485 | 1486 | /path-exists/4.0.0: 1487 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1488 | engines: {node: '>=8'} 1489 | dev: true 1490 | 1491 | /path-is-absolute/1.0.1: 1492 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1493 | engines: {node: '>=0.10.0'} 1494 | dev: true 1495 | 1496 | /path-key/3.1.1: 1497 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1498 | engines: {node: '>=8'} 1499 | dev: true 1500 | 1501 | /path-parse/1.0.7: 1502 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1503 | dev: true 1504 | 1505 | /path-type/4.0.0: 1506 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1507 | engines: {node: '>=8'} 1508 | dev: true 1509 | 1510 | /pathval/1.1.1: 1511 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} 1512 | dev: true 1513 | 1514 | /picocolors/1.0.0: 1515 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 1516 | dev: true 1517 | 1518 | /picomatch/2.3.1: 1519 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1520 | engines: {node: '>=8.6'} 1521 | dev: true 1522 | 1523 | /playwright-core/1.30.0: 1524 | resolution: {integrity: sha512-7AnRmTCf+GVYhHbLJsGUtskWTE33SwMZkybJ0v6rqR1boxq2x36U7p1vDRV7HO2IwTZgmycracLxPEJI49wu4g==} 1525 | engines: {node: '>=14'} 1526 | hasBin: true 1527 | dev: true 1528 | 1529 | /postcss/8.4.21: 1530 | resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} 1531 | engines: {node: ^10 || ^12 || >=14} 1532 | dependencies: 1533 | nanoid: 3.3.4 1534 | picocolors: 1.0.0 1535 | source-map-js: 1.0.2 1536 | dev: true 1537 | 1538 | /prelude-ls/1.2.1: 1539 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1540 | engines: {node: '>= 0.8.0'} 1541 | dev: true 1542 | 1543 | /prettier-plugin-svelte/2.9.0_kdmmghgdi3ngrsq6otxkjilbry: 1544 | resolution: {integrity: sha512-3doBi5NO4IVgaNPtwewvrgPpqAcvNv0NwJNflr76PIGgi9nf1oguQV1Hpdm9TI2ALIQVn/9iIwLpBO5UcD2Jiw==} 1545 | peerDependencies: 1546 | prettier: ^1.16.4 || ^2.0.0 1547 | svelte: ^3.2.0 1548 | dependencies: 1549 | prettier: 2.8.3 1550 | svelte: 3.55.1 1551 | dev: true 1552 | 1553 | /prettier/2.8.3: 1554 | resolution: {integrity: sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==} 1555 | engines: {node: '>=10.13.0'} 1556 | hasBin: true 1557 | dev: true 1558 | 1559 | /prisma/4.9.0: 1560 | resolution: {integrity: sha512-bS96oZ5oDFXYgoF2l7PJ3Mp1wWWfLOo8B/jAfbA2Pn0Wm5Z/owBHzaMQKS3i1CzVBDWWPVnOohmbJmjvkcHS5w==} 1561 | engines: {node: '>=14.17'} 1562 | hasBin: true 1563 | requiresBuild: true 1564 | dependencies: 1565 | '@prisma/engines': 4.9.0 1566 | 1567 | /punycode/2.3.0: 1568 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} 1569 | engines: {node: '>=6'} 1570 | dev: true 1571 | 1572 | /queue-microtask/1.2.3: 1573 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1574 | dev: true 1575 | 1576 | /readdirp/3.6.0: 1577 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1578 | engines: {node: '>=8.10.0'} 1579 | dependencies: 1580 | picomatch: 2.3.1 1581 | dev: true 1582 | 1583 | /regexpp/3.2.0: 1584 | resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} 1585 | engines: {node: '>=8'} 1586 | dev: true 1587 | 1588 | /resolve-from/4.0.0: 1589 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1590 | engines: {node: '>=4'} 1591 | dev: true 1592 | 1593 | /resolve/1.22.1: 1594 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 1595 | hasBin: true 1596 | dependencies: 1597 | is-core-module: 2.11.0 1598 | path-parse: 1.0.7 1599 | supports-preserve-symlinks-flag: 1.0.0 1600 | dev: true 1601 | 1602 | /reusify/1.0.4: 1603 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1604 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1605 | dev: true 1606 | 1607 | /rimraf/2.7.1: 1608 | resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} 1609 | hasBin: true 1610 | dependencies: 1611 | glob: 7.2.3 1612 | dev: true 1613 | 1614 | /rimraf/3.0.2: 1615 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 1616 | hasBin: true 1617 | dependencies: 1618 | glob: 7.2.3 1619 | dev: true 1620 | 1621 | /rollup/3.13.0: 1622 | resolution: {integrity: sha512-HJwQtrXAc0AmyDohTJ/2c+Bx/sWPScJLlAUJ1kuD7rAkCro8Cr2SnVB2gVYBiSLxpgD2kZ24jbyXtG++GumrYQ==} 1623 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 1624 | hasBin: true 1625 | optionalDependencies: 1626 | fsevents: 2.3.2 1627 | dev: true 1628 | 1629 | /rome/11.0.0: 1630 | resolution: {integrity: sha512-rRo6JOwpMLc3OkeTDRXkrmrDqnxDvZ75GS4f0jLDBNmRgDXWbu0F8eVnJoRn+VbK2AE7vWvhVOMBjnWowcopkQ==} 1631 | engines: {node: '>=14.*'} 1632 | hasBin: true 1633 | requiresBuild: true 1634 | optionalDependencies: 1635 | '@rometools/cli-darwin-arm64': 11.0.0 1636 | '@rometools/cli-darwin-x64': 11.0.0 1637 | '@rometools/cli-linux-arm64': 11.0.0 1638 | '@rometools/cli-linux-x64': 11.0.0 1639 | '@rometools/cli-win32-arm64': 11.0.0 1640 | '@rometools/cli-win32-x64': 11.0.0 1641 | dev: true 1642 | 1643 | /run-parallel/1.2.0: 1644 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1645 | dependencies: 1646 | queue-microtask: 1.2.3 1647 | dev: true 1648 | 1649 | /sade/1.8.1: 1650 | resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} 1651 | engines: {node: '>=6'} 1652 | dependencies: 1653 | mri: 1.2.0 1654 | dev: true 1655 | 1656 | /sander/0.5.1: 1657 | resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} 1658 | dependencies: 1659 | es6-promise: 3.3.1 1660 | graceful-fs: 4.2.10 1661 | mkdirp: 0.5.6 1662 | rimraf: 2.7.1 1663 | dev: true 1664 | 1665 | /semver/7.3.8: 1666 | resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} 1667 | engines: {node: '>=10'} 1668 | hasBin: true 1669 | dependencies: 1670 | lru-cache: 6.0.0 1671 | dev: true 1672 | 1673 | /set-cookie-parser/2.5.1: 1674 | resolution: {integrity: sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==} 1675 | dev: true 1676 | 1677 | /shebang-command/2.0.0: 1678 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1679 | engines: {node: '>=8'} 1680 | dependencies: 1681 | shebang-regex: 3.0.0 1682 | dev: true 1683 | 1684 | /shebang-regex/3.0.0: 1685 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1686 | engines: {node: '>=8'} 1687 | dev: true 1688 | 1689 | /sirv/2.0.2: 1690 | resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==} 1691 | engines: {node: '>= 10'} 1692 | dependencies: 1693 | '@polka/url': 1.0.0-next.21 1694 | mrmime: 1.0.1 1695 | totalist: 3.0.0 1696 | dev: true 1697 | 1698 | /slash/3.0.0: 1699 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1700 | engines: {node: '>=8'} 1701 | dev: true 1702 | 1703 | /sorcery/0.11.0: 1704 | resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==} 1705 | hasBin: true 1706 | dependencies: 1707 | '@jridgewell/sourcemap-codec': 1.4.14 1708 | buffer-crc32: 0.2.13 1709 | minimist: 1.2.7 1710 | sander: 0.5.1 1711 | dev: true 1712 | 1713 | /source-map-js/1.0.2: 1714 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 1715 | engines: {node: '>=0.10.0'} 1716 | dev: true 1717 | 1718 | /source-map/0.6.1: 1719 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1720 | engines: {node: '>=0.10.0'} 1721 | dev: true 1722 | 1723 | /streamsearch/1.1.0: 1724 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 1725 | engines: {node: '>=10.0.0'} 1726 | dev: true 1727 | 1728 | /strip-ansi/6.0.1: 1729 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1730 | engines: {node: '>=8'} 1731 | dependencies: 1732 | ansi-regex: 5.0.1 1733 | dev: true 1734 | 1735 | /strip-indent/3.0.0: 1736 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 1737 | engines: {node: '>=8'} 1738 | dependencies: 1739 | min-indent: 1.0.1 1740 | dev: true 1741 | 1742 | /strip-json-comments/3.1.1: 1743 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1744 | engines: {node: '>=8'} 1745 | dev: true 1746 | 1747 | /strip-literal/1.0.1: 1748 | resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==} 1749 | dependencies: 1750 | acorn: 8.8.2 1751 | dev: true 1752 | 1753 | /supports-color/7.2.0: 1754 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1755 | engines: {node: '>=8'} 1756 | dependencies: 1757 | has-flag: 4.0.0 1758 | dev: true 1759 | 1760 | /supports-preserve-symlinks-flag/1.0.0: 1761 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1762 | engines: {node: '>= 0.4'} 1763 | dev: true 1764 | 1765 | /svelte-check/3.0.3_svelte@3.55.1: 1766 | resolution: {integrity: sha512-ByBFXo3bfHRGIsYEasHkdMhLkNleVfszX/Ns1oip58tPJlKdo5Ssr8kgVIuo5oq00hss8AIcdesuy0Xt0BcTvg==} 1767 | hasBin: true 1768 | peerDependencies: 1769 | svelte: ^3.55.0 1770 | dependencies: 1771 | '@jridgewell/trace-mapping': 0.3.17 1772 | chokidar: 3.5.3 1773 | fast-glob: 3.2.12 1774 | import-fresh: 3.3.0 1775 | picocolors: 1.0.0 1776 | sade: 1.8.1 1777 | svelte: 3.55.1 1778 | svelte-preprocess: 5.0.1_4x7phaipmicbaooxtnresslofa 1779 | typescript: 4.9.5 1780 | transitivePeerDependencies: 1781 | - '@babel/core' 1782 | - coffeescript 1783 | - less 1784 | - postcss 1785 | - postcss-load-config 1786 | - pug 1787 | - sass 1788 | - stylus 1789 | - sugarss 1790 | dev: true 1791 | 1792 | /svelte-hmr/0.15.1_svelte@3.55.1: 1793 | resolution: {integrity: sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==} 1794 | engines: {node: ^12.20 || ^14.13.1 || >= 16} 1795 | peerDependencies: 1796 | svelte: '>=3.19.0' 1797 | dependencies: 1798 | svelte: 3.55.1 1799 | dev: true 1800 | 1801 | /svelte-preprocess/5.0.1_4x7phaipmicbaooxtnresslofa: 1802 | resolution: {integrity: sha512-0HXyhCoc9rsW4zGOgtInylC6qj259E1hpFnJMJWTf+aIfeqh4O/QHT31KT2hvPEqQfdjmqBR/kO2JDkkciBLrQ==} 1803 | engines: {node: '>= 14.10.0'} 1804 | requiresBuild: true 1805 | peerDependencies: 1806 | '@babel/core': ^7.10.2 1807 | coffeescript: ^2.5.1 1808 | less: ^3.11.3 || ^4.0.0 1809 | postcss: ^7 || ^8 1810 | postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 1811 | pug: ^3.0.0 1812 | sass: ^1.26.8 1813 | stylus: ^0.55.0 1814 | sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 1815 | svelte: ^3.23.0 1816 | typescript: ^3.9.5 || ^4.0.0 1817 | peerDependenciesMeta: 1818 | '@babel/core': 1819 | optional: true 1820 | coffeescript: 1821 | optional: true 1822 | less: 1823 | optional: true 1824 | postcss: 1825 | optional: true 1826 | postcss-load-config: 1827 | optional: true 1828 | pug: 1829 | optional: true 1830 | sass: 1831 | optional: true 1832 | stylus: 1833 | optional: true 1834 | sugarss: 1835 | optional: true 1836 | typescript: 1837 | optional: true 1838 | dependencies: 1839 | '@types/pug': 2.0.6 1840 | '@types/sass': 1.43.1 1841 | detect-indent: 6.1.0 1842 | magic-string: 0.27.0 1843 | sorcery: 0.11.0 1844 | strip-indent: 3.0.0 1845 | svelte: 3.55.1 1846 | typescript: 4.9.5 1847 | dev: true 1848 | 1849 | /svelte/3.55.1: 1850 | resolution: {integrity: sha512-S+87/P0Ve67HxKkEV23iCdAh/SX1xiSfjF1HOglno/YTbSTW7RniICMCofWGdJJbdjw3S+0PfFb1JtGfTXE0oQ==} 1851 | engines: {node: '>= 8'} 1852 | 1853 | /text-table/0.2.0: 1854 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 1855 | dev: true 1856 | 1857 | /tiny-glob/0.2.9: 1858 | resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} 1859 | dependencies: 1860 | globalyzer: 0.1.0 1861 | globrex: 0.1.2 1862 | dev: true 1863 | 1864 | /tinybench/2.3.1: 1865 | resolution: {integrity: sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==} 1866 | dev: true 1867 | 1868 | /tinypool/0.3.1: 1869 | resolution: {integrity: sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==} 1870 | engines: {node: '>=14.0.0'} 1871 | dev: true 1872 | 1873 | /tinyspy/1.0.2: 1874 | resolution: {integrity: sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q==} 1875 | engines: {node: '>=14.0.0'} 1876 | dev: true 1877 | 1878 | /to-regex-range/5.0.1: 1879 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1880 | engines: {node: '>=8.0'} 1881 | dependencies: 1882 | is-number: 7.0.0 1883 | dev: true 1884 | 1885 | /totalist/3.0.0: 1886 | resolution: {integrity: sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==} 1887 | engines: {node: '>=6'} 1888 | dev: true 1889 | 1890 | /tslib/1.14.1: 1891 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} 1892 | dev: true 1893 | 1894 | /tslib/2.5.0: 1895 | resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} 1896 | dev: true 1897 | 1898 | /tsutils/3.21.0_typescript@4.9.5: 1899 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} 1900 | engines: {node: '>= 6'} 1901 | peerDependencies: 1902 | 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' 1903 | dependencies: 1904 | tslib: 1.14.1 1905 | typescript: 4.9.5 1906 | dev: true 1907 | 1908 | /type-check/0.4.0: 1909 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1910 | engines: {node: '>= 0.8.0'} 1911 | dependencies: 1912 | prelude-ls: 1.2.1 1913 | dev: true 1914 | 1915 | /type-detect/4.0.8: 1916 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} 1917 | engines: {node: '>=4'} 1918 | dev: true 1919 | 1920 | /type-fest/0.20.2: 1921 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 1922 | engines: {node: '>=10'} 1923 | dev: true 1924 | 1925 | /typescript/4.9.5: 1926 | resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} 1927 | engines: {node: '>=4.2.0'} 1928 | hasBin: true 1929 | dev: true 1930 | 1931 | /undici/5.16.0: 1932 | resolution: {integrity: sha512-KWBOXNv6VX+oJQhchXieUznEmnJMqgXMbs0xxH2t8q/FUAWSJvOSr/rMaZKnX5RIVq7JDn0JbP4BOnKG2SGXLQ==} 1933 | engines: {node: '>=12.18'} 1934 | dependencies: 1935 | busboy: 1.6.0 1936 | dev: true 1937 | 1938 | /uri-js/4.4.1: 1939 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1940 | dependencies: 1941 | punycode: 2.3.0 1942 | dev: true 1943 | 1944 | /vite/4.1.1: 1945 | resolution: {integrity: sha512-LM9WWea8vsxhr782r9ntg+bhSFS06FJgCvvB0+8hf8UWtvaiDagKYWXndjfX6kGl74keHJUcpzrQliDXZlF5yg==} 1946 | engines: {node: ^14.18.0 || >=16.0.0} 1947 | hasBin: true 1948 | peerDependencies: 1949 | '@types/node': '>= 14' 1950 | less: '*' 1951 | sass: '*' 1952 | stylus: '*' 1953 | sugarss: '*' 1954 | terser: ^5.4.0 1955 | peerDependenciesMeta: 1956 | '@types/node': 1957 | optional: true 1958 | less: 1959 | optional: true 1960 | sass: 1961 | optional: true 1962 | stylus: 1963 | optional: true 1964 | sugarss: 1965 | optional: true 1966 | terser: 1967 | optional: true 1968 | dependencies: 1969 | esbuild: 0.16.17 1970 | postcss: 8.4.21 1971 | resolve: 1.22.1 1972 | rollup: 3.13.0 1973 | optionalDependencies: 1974 | fsevents: 2.3.2 1975 | dev: true 1976 | 1977 | /vite/4.1.1_@types+node@18.11.19: 1978 | resolution: {integrity: sha512-LM9WWea8vsxhr782r9ntg+bhSFS06FJgCvvB0+8hf8UWtvaiDagKYWXndjfX6kGl74keHJUcpzrQliDXZlF5yg==} 1979 | engines: {node: ^14.18.0 || >=16.0.0} 1980 | hasBin: true 1981 | peerDependencies: 1982 | '@types/node': '>= 14' 1983 | less: '*' 1984 | sass: '*' 1985 | stylus: '*' 1986 | sugarss: '*' 1987 | terser: ^5.4.0 1988 | peerDependenciesMeta: 1989 | '@types/node': 1990 | optional: true 1991 | less: 1992 | optional: true 1993 | sass: 1994 | optional: true 1995 | stylus: 1996 | optional: true 1997 | sugarss: 1998 | optional: true 1999 | terser: 2000 | optional: true 2001 | dependencies: 2002 | '@types/node': 18.11.19 2003 | esbuild: 0.16.17 2004 | postcss: 8.4.21 2005 | resolve: 1.22.1 2006 | rollup: 3.13.0 2007 | optionalDependencies: 2008 | fsevents: 2.3.2 2009 | dev: true 2010 | 2011 | /vitefu/0.2.4_vite@4.1.1: 2012 | resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==} 2013 | peerDependencies: 2014 | vite: ^3.0.0 || ^4.0.0 2015 | peerDependenciesMeta: 2016 | vite: 2017 | optional: true 2018 | dependencies: 2019 | vite: 4.1.1 2020 | dev: true 2021 | 2022 | /vitest/0.25.8: 2023 | resolution: {integrity: sha512-X75TApG2wZTJn299E/TIYevr4E9/nBo1sUtZzn0Ci5oK8qnpZAZyhwg0qCeMSakGIWtc6oRwcQFyFfW14aOFWg==} 2024 | engines: {node: '>=v14.16.0'} 2025 | hasBin: true 2026 | peerDependencies: 2027 | '@edge-runtime/vm': '*' 2028 | '@vitest/browser': '*' 2029 | '@vitest/ui': '*' 2030 | happy-dom: '*' 2031 | jsdom: '*' 2032 | peerDependenciesMeta: 2033 | '@edge-runtime/vm': 2034 | optional: true 2035 | '@vitest/browser': 2036 | optional: true 2037 | '@vitest/ui': 2038 | optional: true 2039 | happy-dom: 2040 | optional: true 2041 | jsdom: 2042 | optional: true 2043 | dependencies: 2044 | '@types/chai': 4.3.4 2045 | '@types/chai-subset': 1.3.3 2046 | '@types/node': 18.11.19 2047 | acorn: 8.8.2 2048 | acorn-walk: 8.2.0 2049 | chai: 4.3.7 2050 | debug: 4.3.4 2051 | local-pkg: 0.4.3 2052 | source-map: 0.6.1 2053 | strip-literal: 1.0.1 2054 | tinybench: 2.3.1 2055 | tinypool: 0.3.1 2056 | tinyspy: 1.0.2 2057 | vite: 4.1.1_@types+node@18.11.19 2058 | transitivePeerDependencies: 2059 | - less 2060 | - sass 2061 | - stylus 2062 | - sugarss 2063 | - supports-color 2064 | - terser 2065 | dev: true 2066 | 2067 | /which/2.0.2: 2068 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2069 | engines: {node: '>= 8'} 2070 | hasBin: true 2071 | dependencies: 2072 | isexe: 2.0.0 2073 | dev: true 2074 | 2075 | /word-wrap/1.2.3: 2076 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} 2077 | engines: {node: '>=0.10.0'} 2078 | dev: true 2079 | 2080 | /wrappy/1.0.2: 2081 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 2082 | dev: true 2083 | 2084 | /yallist/4.0.0: 2085 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 2086 | dev: true 2087 | 2088 | /yocto-queue/0.1.0: 2089 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2090 | engines: {node: '>=10'} 2091 | dev: true 2092 | -------------------------------------------------------------------------------- /prisma/schema.prisma: -------------------------------------------------------------------------------- 1 | // This is your Prisma schema file, 2 | // learn more about it in the docs: https://pris.ly/d/prisma-schema 3 | 4 | generator client { 5 | provider = "prisma-client-js" 6 | } 7 | 8 | datasource db { 9 | provider = "sqlite" 10 | url = "file:./dev.sqlite" 11 | } 12 | 13 | model Article { 14 | id Int @id @default(autoincrement()) 15 | title String 16 | content String 17 | auth_user AuthUser @relation(fields: [userId], references: [id]) 18 | userId String 19 | } 20 | 21 | model AuthUser { 22 | id String @id @unique 23 | name String 24 | username String @unique 25 | articles Article[] 26 | auth_session AuthSession[] 27 | auth_key AuthKey[] 28 | 29 | @@map("auth_user") 30 | } 31 | 32 | model AuthSession { 33 | id String @id @unique 34 | user_id String 35 | active_expires BigInt 36 | idle_expires BigInt 37 | auth_user AuthUser @relation(references: [id], fields: [user_id], onDelete: Cascade) 38 | 39 | @@index([user_id]) 40 | @@map("auth_session") 41 | } 42 | 43 | model AuthKey { 44 | id String @id @unique 45 | hashed_password String? 46 | user_id String 47 | primary_key Boolean 48 | expires BigInt? 49 | auth_user AuthUser @relation(references: [id], fields: [user_id], onDelete: Cascade) 50 | 51 | @@index([user_id]) 52 | @@map("auth_key") 53 | } 54 | -------------------------------------------------------------------------------- /rome.json: -------------------------------------------------------------------------------- 1 | { 2 | "linter": { 3 | "enabled": true, 4 | "rules": { 5 | "recommended": true 6 | } 7 | }, 8 | "javascript": { 9 | "formatter": { 10 | "semicolons": "asNeeded" 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /src/app.d.ts: -------------------------------------------------------------------------------- 1 | import type { PrismaClient } from '@prisma/client' 2 | 3 | declare global { 4 | namespace App { 5 | // interface Error {} 6 | interface Locals { 7 | auth: import('lucia-auth').AuthRequest 8 | } 9 | // interface PageData {} 10 | // interface Platform {} 11 | } 12 | var __prisma: PrismaClient 13 | 14 | /// 15 | declare namespace Lucia { 16 | type Auth = import('$lib/server/lucia').Auth 17 | type UserAttributes = { 18 | username: string 19 | name: string 20 | } 21 | } 22 | } 23 | 24 | export {} 25 | -------------------------------------------------------------------------------- /src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | %sveltekit.head% 8 | 9 | 10 |
%sveltekit.body%
11 | 12 | 13 | -------------------------------------------------------------------------------- /src/hooks.server.ts: -------------------------------------------------------------------------------- 1 | // import { handleHooks } from "@lucia-auth/sveltekit" 2 | import { auth } from '$lib/server/lucia' 3 | import type { Handle } from '@sveltejs/kit' 4 | // import { sequence } from "@sveltejs/kit/hooks" 5 | 6 | export const handle: Handle = async ({ event, resolve }) => { 7 | event.locals.auth = auth.handleRequest(event) 8 | return await resolve(event) 9 | } 10 | -------------------------------------------------------------------------------- /src/lib/server/lucia.ts: -------------------------------------------------------------------------------- 1 | // import { sveltekit } from 'lucia-auth/middleware' 2 | import lucia from 'lucia-auth' 3 | import prismaAdapter from '@lucia-auth/adapter-prisma' 4 | import { sveltekit } from 'lucia-auth/middleware' 5 | import { dev } from '$app/environment' 6 | import { prisma } from '$lib/server/prisma' 7 | 8 | export const auth = lucia({ 9 | adapter: prismaAdapter(prisma), 10 | env: dev ? 'DEV' : 'PROD', 11 | middleware: sveltekit(), 12 | transformDatabaseUser: (userData) => { 13 | return { 14 | userId: userData.id, 15 | username: userData.username, 16 | name: userData.name 17 | } 18 | } 19 | }) 20 | 21 | export type Auth = typeof auth 22 | -------------------------------------------------------------------------------- /src/lib/server/prisma.ts: -------------------------------------------------------------------------------- 1 | import { PrismaClient } from "@prisma/client" 2 | import { env } from "$env/dynamic/private" 3 | 4 | const prisma = global.__prisma || new PrismaClient() 5 | 6 | if (env.NODE_ENV === "development") { 7 | global.__prisma = prisma 8 | } 9 | 10 | export { prisma } 11 | -------------------------------------------------------------------------------- /src/routes/+layout.server.ts: -------------------------------------------------------------------------------- 1 | import type { LayoutServerLoad } from './$types' 2 | 3 | export const load: LayoutServerLoad = async ({ locals }) => { 4 | const { session, user } = await locals.auth.validateUser() 5 | return { user } 6 | } 7 | -------------------------------------------------------------------------------- /src/routes/+layout.svelte: -------------------------------------------------------------------------------- 1 | 6 | 7 |
8 | 30 | 31 |
32 | -------------------------------------------------------------------------------- /src/routes/+page.server.ts: -------------------------------------------------------------------------------- 1 | import type { Actions, PageServerLoad } from './$types' 2 | import { prisma } from '$lib/server/prisma' 3 | import { error, fail, redirect } from '@sveltejs/kit' 4 | 5 | export const load: PageServerLoad = async () => { 6 | return { 7 | articles: await prisma.article.findMany() 8 | } 9 | } 10 | 11 | export const actions: Actions = { 12 | createArticle: async ({ request, locals }) => { 13 | const { session, user } = await locals.auth.validateUser() 14 | if (!session || !user) { 15 | throw redirect(302, '/') 16 | } 17 | 18 | const { title, content } = Object.fromEntries(await request.formData()) as Record< 19 | string, 20 | string 21 | > 22 | 23 | try { 24 | await prisma.article.create({ 25 | data: { 26 | title, 27 | content, 28 | userId: user.userId 29 | } 30 | }) 31 | } catch (err) { 32 | console.error(err) 33 | return fail(500, { message: 'Could not create the article.' }) 34 | } 35 | 36 | return { 37 | status: 201 38 | } 39 | }, 40 | deleteArticle: async ({ url, locals }) => { 41 | const session = await locals.auth.validate() 42 | if (!session) { 43 | throw redirect(302, '/') 44 | } 45 | const id = url.searchParams.get('id') 46 | if (!id) { 47 | return fail(400, { message: 'Invalid request' }) 48 | } 49 | 50 | try { 51 | const article = await prisma.article.findUniqueOrThrow({ 52 | where: { 53 | id: Number(id) 54 | } 55 | }) 56 | 57 | if (article.userId !== user.userId) { 58 | throw error(403, 'Not authorized') 59 | } 60 | 61 | await prisma.article.delete({ 62 | where: { 63 | id: Number(id) 64 | } 65 | }) 66 | } catch (err) { 67 | console.error(err) 68 | return fail(500, { 69 | message: 'Something went wrong deleting your article' 70 | }) 71 | } 72 | 73 | return { 74 | status: 200 75 | } 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /src/routes/+page.svelte: -------------------------------------------------------------------------------- 1 | 8 | 9 |
10 |
11 |

Articles:

12 | {#each articles as article} 13 |
14 |
{article.title}
15 |

16 | {article.content} 17 |

18 | {#if article.userId === data.user?.userId} 19 |
20 | 21 |
22 | Edit Article 25 | {/if} 26 |
27 | {/each} 28 |
29 | {#if data.user} 30 |
31 |

New Article

32 | 33 | 34 | 35 |