├── .eslintignore ├── .eslintrc.cjs ├── .gitignore ├── .npmrc ├── .prettierignore ├── .prettierrc ├── README.md ├── package-lock.json ├── package.json ├── playwright.config.ts ├── pnpm-lock.yaml ├── postcss.config.cjs ├── rome.json ├── src ├── app.d.ts ├── app.html ├── app.postcss ├── global.postcss ├── hooks.server.ts ├── index.test.ts ├── lib │ └── server │ │ └── auth.ts └── routes │ ├── +layout.svelte │ ├── +page.server.ts │ ├── +page.svelte │ ├── logout │ └── +server.ts │ └── protected │ ├── +page.server.ts │ ├── +page.svelte │ └── item │ └── +page.svelte ├── static └── favicon.png ├── svelte.config.js ├── tests └── test.ts ├── 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 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | engine-strict=true 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /build 4 | /.svelte-kit 5 | /package 6 | .env 7 | .env.* 8 | !.env.example 9 | 10 | # Ignore files for PNPM, NPM and YARN 11 | pnpm-lock.yaml 12 | package-lock.json 13 | yarn.lock 14 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "useTabs": true, 3 | "singleQuote": true, 4 | "trailingComma": "none", 5 | "printWidth": 100, 6 | "plugins": ["prettier-plugin-svelte"], 7 | "pluginSearchDirs": ["."], 8 | "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] 9 | } 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # create-svelte 2 | 3 | Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte). 4 | 5 | ## Creating a project 6 | 7 | If you're seeing this, you've probably already done this step. Congrats! 8 | 9 | ```bash 10 | # create a new project in the current directory 11 | npm create svelte@latest 12 | 13 | # create a new project in my-app 14 | npm create svelte@latest my-app 15 | ``` 16 | 17 | ## Developing 18 | 19 | Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: 20 | 21 | ```bash 22 | npm run dev 23 | 24 | # or start the server and open the app in a new browser tab 25 | npm run dev -- --open 26 | ``` 27 | 28 | ## Building 29 | 30 | To create a production version of your app: 31 | 32 | ```bash 33 | npm run build 34 | ``` 35 | 36 | You can preview the production build with `npm run preview`. 37 | 38 | > To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment. 39 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sveltekit-locals", 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.28.1", 18 | "@sveltejs/adapter-auto": "1.0.0", 19 | "@sveltejs/kit": "1.0.0", 20 | "@typescript-eslint/eslint-plugin": "^5.46.1", 21 | "@typescript-eslint/parser": "^5.46.1", 22 | "autoprefixer": "^10.4.13", 23 | "eslint": "^8.29.0", 24 | "eslint-config-prettier": "^8.5.0", 25 | "eslint-plugin-svelte3": "^4.0.0", 26 | "postcss": "^8.4.20", 27 | "postcss-load-config": "^4.0.1", 28 | "prettier": "^2.8.1", 29 | "prettier-plugin-svelte": "^2.9.0", 30 | "svelte": "^3.55.0", 31 | "svelte-check": "^2.10.2", 32 | "svelte-preprocess": "^5.0.0", 33 | "tslib": "^2.4.1", 34 | "typescript": "^4.9.4", 35 | "vite": "^4.0.1", 36 | "vitest": "^0.25.8" 37 | }, 38 | "type": "module", 39 | "dependencies": { 40 | "postcss-preset-env": "^7.8.3", 41 | "postcss-simple-vars": "^7.0.1" 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 | '@playwright/test': ^1.28.1 5 | '@sveltejs/adapter-auto': 1.0.0 6 | '@sveltejs/kit': 1.0.0 7 | '@typescript-eslint/eslint-plugin': ^5.46.1 8 | '@typescript-eslint/parser': ^5.46.1 9 | autoprefixer: ^10.4.13 10 | eslint: ^8.29.0 11 | eslint-config-prettier: ^8.5.0 12 | eslint-plugin-svelte3: ^4.0.0 13 | postcss: ^8.4.20 14 | postcss-load-config: ^4.0.1 15 | postcss-preset-env: ^7.8.3 16 | postcss-simple-vars: ^7.0.1 17 | prettier: ^2.8.1 18 | prettier-plugin-svelte: ^2.9.0 19 | svelte: ^3.55.0 20 | svelte-check: ^2.10.2 21 | svelte-preprocess: ^5.0.0 22 | tslib: ^2.4.1 23 | typescript: ^4.9.4 24 | vite: ^4.0.1 25 | vitest: ^0.25.8 26 | 27 | dependencies: 28 | postcss-preset-env: 7.8.3_postcss@8.4.20 29 | postcss-simple-vars: 7.0.1_postcss@8.4.20 30 | 31 | devDependencies: 32 | '@playwright/test': 1.28.1 33 | '@sveltejs/adapter-auto': 1.0.0_@sveltejs+kit@1.0.0 34 | '@sveltejs/kit': 1.0.0_svelte@3.55.0+vite@4.0.1 35 | '@typescript-eslint/eslint-plugin': 5.46.1_imrg37k3svwu377c6q7gkarwmi 36 | '@typescript-eslint/parser': 5.46.1_ha6vam6werchizxrnqvarmz2zu 37 | autoprefixer: 10.4.13_postcss@8.4.20 38 | eslint: 8.29.0 39 | eslint-config-prettier: 8.5.0_eslint@8.29.0 40 | eslint-plugin-svelte3: 4.0.0_ffnabc34fed75fjymbd45uofx4 41 | postcss: 8.4.20 42 | postcss-load-config: 4.0.1_postcss@8.4.20 43 | prettier: 2.8.1 44 | prettier-plugin-svelte: 2.9.0_ajxj753sv7dbwexjherrch25ta 45 | svelte: 3.55.0 46 | svelte-check: 2.10.2_7tgmgw23w4ankk7vtabgm5xtbu 47 | svelte-preprocess: 5.0.0_4pbnl6cqae4gmabfifuvcfaifu 48 | tslib: 2.4.1 49 | typescript: 4.9.4 50 | vite: 4.0.1 51 | vitest: 0.25.8 52 | 53 | packages: 54 | 55 | /@csstools/postcss-cascade-layers/1.1.1_postcss@8.4.20: 56 | resolution: {integrity: sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==} 57 | engines: {node: ^12 || ^14 || >=16} 58 | peerDependencies: 59 | postcss: ^8.2 60 | dependencies: 61 | '@csstools/selector-specificity': 2.0.2_2xshye3abirqjlplmebvmaxyna 62 | postcss: 8.4.20 63 | postcss-selector-parser: 6.0.11 64 | dev: false 65 | 66 | /@csstools/postcss-color-function/1.1.1_postcss@8.4.20: 67 | resolution: {integrity: sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==} 68 | engines: {node: ^12 || ^14 || >=16} 69 | peerDependencies: 70 | postcss: ^8.2 71 | dependencies: 72 | '@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.20 73 | postcss: 8.4.20 74 | postcss-value-parser: 4.2.0 75 | dev: false 76 | 77 | /@csstools/postcss-font-format-keywords/1.0.1_postcss@8.4.20: 78 | resolution: {integrity: sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==} 79 | engines: {node: ^12 || ^14 || >=16} 80 | peerDependencies: 81 | postcss: ^8.2 82 | dependencies: 83 | postcss: 8.4.20 84 | postcss-value-parser: 4.2.0 85 | dev: false 86 | 87 | /@csstools/postcss-hwb-function/1.0.2_postcss@8.4.20: 88 | resolution: {integrity: sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==} 89 | engines: {node: ^12 || ^14 || >=16} 90 | peerDependencies: 91 | postcss: ^8.2 92 | dependencies: 93 | postcss: 8.4.20 94 | postcss-value-parser: 4.2.0 95 | dev: false 96 | 97 | /@csstools/postcss-ic-unit/1.0.1_postcss@8.4.20: 98 | resolution: {integrity: sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==} 99 | engines: {node: ^12 || ^14 || >=16} 100 | peerDependencies: 101 | postcss: ^8.2 102 | dependencies: 103 | '@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.20 104 | postcss: 8.4.20 105 | postcss-value-parser: 4.2.0 106 | dev: false 107 | 108 | /@csstools/postcss-is-pseudo-class/2.0.7_postcss@8.4.20: 109 | resolution: {integrity: sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==} 110 | engines: {node: ^12 || ^14 || >=16} 111 | peerDependencies: 112 | postcss: ^8.2 113 | dependencies: 114 | '@csstools/selector-specificity': 2.0.2_2xshye3abirqjlplmebvmaxyna 115 | postcss: 8.4.20 116 | postcss-selector-parser: 6.0.11 117 | dev: false 118 | 119 | /@csstools/postcss-nested-calc/1.0.0_postcss@8.4.20: 120 | resolution: {integrity: sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==} 121 | engines: {node: ^12 || ^14 || >=16} 122 | peerDependencies: 123 | postcss: ^8.2 124 | dependencies: 125 | postcss: 8.4.20 126 | postcss-value-parser: 4.2.0 127 | dev: false 128 | 129 | /@csstools/postcss-normalize-display-values/1.0.1_postcss@8.4.20: 130 | resolution: {integrity: sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==} 131 | engines: {node: ^12 || ^14 || >=16} 132 | peerDependencies: 133 | postcss: ^8.2 134 | dependencies: 135 | postcss: 8.4.20 136 | postcss-value-parser: 4.2.0 137 | dev: false 138 | 139 | /@csstools/postcss-oklab-function/1.1.1_postcss@8.4.20: 140 | resolution: {integrity: sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==} 141 | engines: {node: ^12 || ^14 || >=16} 142 | peerDependencies: 143 | postcss: ^8.2 144 | dependencies: 145 | '@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.20 146 | postcss: 8.4.20 147 | postcss-value-parser: 4.2.0 148 | dev: false 149 | 150 | /@csstools/postcss-progressive-custom-properties/1.3.0_postcss@8.4.20: 151 | resolution: {integrity: sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==} 152 | engines: {node: ^12 || ^14 || >=16} 153 | peerDependencies: 154 | postcss: ^8.3 155 | dependencies: 156 | postcss: 8.4.20 157 | postcss-value-parser: 4.2.0 158 | dev: false 159 | 160 | /@csstools/postcss-stepped-value-functions/1.0.1_postcss@8.4.20: 161 | resolution: {integrity: sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==} 162 | engines: {node: ^12 || ^14 || >=16} 163 | peerDependencies: 164 | postcss: ^8.2 165 | dependencies: 166 | postcss: 8.4.20 167 | postcss-value-parser: 4.2.0 168 | dev: false 169 | 170 | /@csstools/postcss-text-decoration-shorthand/1.0.0_postcss@8.4.20: 171 | resolution: {integrity: sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==} 172 | engines: {node: ^12 || ^14 || >=16} 173 | peerDependencies: 174 | postcss: ^8.2 175 | dependencies: 176 | postcss: 8.4.20 177 | postcss-value-parser: 4.2.0 178 | dev: false 179 | 180 | /@csstools/postcss-trigonometric-functions/1.0.2_postcss@8.4.20: 181 | resolution: {integrity: sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==} 182 | engines: {node: ^14 || >=16} 183 | peerDependencies: 184 | postcss: ^8.2 185 | dependencies: 186 | postcss: 8.4.20 187 | postcss-value-parser: 4.2.0 188 | dev: false 189 | 190 | /@csstools/postcss-unset-value/1.0.2_postcss@8.4.20: 191 | resolution: {integrity: sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==} 192 | engines: {node: ^12 || ^14 || >=16} 193 | peerDependencies: 194 | postcss: ^8.2 195 | dependencies: 196 | postcss: 8.4.20 197 | dev: false 198 | 199 | /@csstools/selector-specificity/2.0.2_2xshye3abirqjlplmebvmaxyna: 200 | resolution: {integrity: sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==} 201 | engines: {node: ^12 || ^14 || >=16} 202 | peerDependencies: 203 | postcss: ^8.2 204 | postcss-selector-parser: ^6.0.10 205 | dependencies: 206 | postcss: 8.4.20 207 | postcss-selector-parser: 6.0.11 208 | dev: false 209 | 210 | /@esbuild/android-arm/0.16.6: 211 | resolution: {integrity: sha512-wc1AyHlFS8eejfAdePn2wr8/5zEa+FvF3ipBeTo4Qm9Xl0A0miTUfphwzXa3xdxU2pHimRCzIAUhjlbSSts8JQ==} 212 | engines: {node: '>=12'} 213 | cpu: [arm] 214 | os: [android] 215 | requiresBuild: true 216 | dev: true 217 | optional: true 218 | 219 | /@esbuild/android-arm64/0.16.6: 220 | resolution: {integrity: sha512-5mSVUNQoEpnvWBgMnEKlHGjrK/3kqRoj+YkErK+RbKMlxCGzzkqh+vSGY0pq+RCobAXs0BlBQMQ+8ZutAkyStw==} 221 | engines: {node: '>=12'} 222 | cpu: [arm64] 223 | os: [android] 224 | requiresBuild: true 225 | dev: true 226 | optional: true 227 | 228 | /@esbuild/android-x64/0.16.6: 229 | resolution: {integrity: sha512-zqbsOaB908GEO4JyVlkV5a9jjHVk35eR6dd3VvOdbu0u0BufaCblFjslbUP8ARGoLS77TWRe1mBpbcySkyybKQ==} 230 | engines: {node: '>=12'} 231 | cpu: [x64] 232 | os: [android] 233 | requiresBuild: true 234 | dev: true 235 | optional: true 236 | 237 | /@esbuild/darwin-arm64/0.16.6: 238 | resolution: {integrity: sha512-uc46Du5AiooWidDIkXeU3HWIuLTzVbYp95slpd9SdDH7FjXWgiiEo7DXzoUoPxGwkUfPgQvvgFKx3TqsYvy68w==} 239 | engines: {node: '>=12'} 240 | cpu: [arm64] 241 | os: [darwin] 242 | requiresBuild: true 243 | dev: true 244 | optional: true 245 | 246 | /@esbuild/darwin-x64/0.16.6: 247 | resolution: {integrity: sha512-ND/o8hoEpXxIOqhRbt73tyvnu3WWA8MeuMAVww0crdubpzzEevH0S8r6uRjrHn1H4etRSmWwTbM3rHul68BJOA==} 248 | engines: {node: '>=12'} 249 | cpu: [x64] 250 | os: [darwin] 251 | requiresBuild: true 252 | dev: true 253 | optional: true 254 | 255 | /@esbuild/freebsd-arm64/0.16.6: 256 | resolution: {integrity: sha512-mMHz7ePkfVXW5wEhRR0XtoTlXDa5F1hIoxnfoeY+G0wWs4Q3HZgHZrXw3PSO26JnZOxIgyV/OuWIP87nQoWegQ==} 257 | engines: {node: '>=12'} 258 | cpu: [arm64] 259 | os: [freebsd] 260 | requiresBuild: true 261 | dev: true 262 | optional: true 263 | 264 | /@esbuild/freebsd-x64/0.16.6: 265 | resolution: {integrity: sha512-/BneBfb5v+VAqjDLt8Q/5llb7smIEJVPd1afNJDShRfj2qr5nIwh1FJaOjoEWe6I1sucdKJ/EbwOujH+iBkW/g==} 266 | engines: {node: '>=12'} 267 | cpu: [x64] 268 | os: [freebsd] 269 | requiresBuild: true 270 | dev: true 271 | optional: true 272 | 273 | /@esbuild/linux-arm/0.16.6: 274 | resolution: {integrity: sha512-hdw0JS24ToFAnWJJbexr62ZRTcl/yJSPeNZR4fAAJY4PcghgQcnp8lO5MdxBe2QCNz3i5WYCoGZcU4+TBJJMDg==} 275 | engines: {node: '>=12'} 276 | cpu: [arm] 277 | os: [linux] 278 | requiresBuild: true 279 | dev: true 280 | optional: true 281 | 282 | /@esbuild/linux-arm64/0.16.6: 283 | resolution: {integrity: sha512-1h2EyMOB9X2VfFzBv4/Xo+OcGj3fmZEwvGxOdDRPxSP8ZVQiqc4XesCVur85VjP0MLPC+y7PioDc/uWpwFadFw==} 284 | engines: {node: '>=12'} 285 | cpu: [arm64] 286 | os: [linux] 287 | requiresBuild: true 288 | dev: true 289 | optional: true 290 | 291 | /@esbuild/linux-ia32/0.16.6: 292 | resolution: {integrity: sha512-MyBWPjAMAlnkYANHCjeun2QsOn5cY1RxXAqnG0hE+fEmeX/hJK9pj6wQ5QptAew7sKt9flcOLKEB/hn2mr/xUw==} 293 | engines: {node: '>=12'} 294 | cpu: [ia32] 295 | os: [linux] 296 | requiresBuild: true 297 | dev: true 298 | optional: true 299 | 300 | /@esbuild/linux-loong64/0.16.6: 301 | resolution: {integrity: sha512-wJAE0pZrY47xWRIYkBrOYRKWJ9vE1XBC7PtuGy4/Ii0Au2VRc52A/VxIHwRI0NyQMNRkjOD5PpS/ruhnNx7JNA==} 302 | engines: {node: '>=12'} 303 | cpu: [loong64] 304 | os: [linux] 305 | requiresBuild: true 306 | dev: true 307 | optional: true 308 | 309 | /@esbuild/linux-mips64el/0.16.6: 310 | resolution: {integrity: sha512-/eR74aTs0dWrg/Y9m0H2iE6rIigkwxsaJlzlSoz6N5JspyARRXutAITveg1wGek4W5LkistZBjEeeyCnC3FT9Q==} 311 | engines: {node: '>=12'} 312 | cpu: [mips64el] 313 | os: [linux] 314 | requiresBuild: true 315 | dev: true 316 | optional: true 317 | 318 | /@esbuild/linux-ppc64/0.16.6: 319 | resolution: {integrity: sha512-zwIKMrYQzh59ftwiuXREcXwyjvsRNLELOgdIE17CwTnc5Xxj2IR9Gi8NvQcMTquFoGaHOh8O7F2zJ3vU5LQEhA==} 320 | engines: {node: '>=12'} 321 | cpu: [ppc64] 322 | os: [linux] 323 | requiresBuild: true 324 | dev: true 325 | optional: true 326 | 327 | /@esbuild/linux-riscv64/0.16.6: 328 | resolution: {integrity: sha512-uqCmZ9GnYcD9Od9fiDYH4TLahw14S6ZgCVrIb1bBBwbAy4pEOPwB73vBX3mnG3ClHv7b5xsOYhCBZkfkoJEgMA==} 329 | engines: {node: '>=12'} 330 | cpu: [riscv64] 331 | os: [linux] 332 | requiresBuild: true 333 | dev: true 334 | optional: true 335 | 336 | /@esbuild/linux-s390x/0.16.6: 337 | resolution: {integrity: sha512-zt1vo5Zzu1Y+0K64wYIQR1pMVNYDbwDetrWy/4XyD4c+tnZfxGZwzZOmb65LSto8hxAYq5UG6DpHSNJ4zy5F1w==} 338 | engines: {node: '>=12'} 339 | cpu: [s390x] 340 | os: [linux] 341 | requiresBuild: true 342 | dev: true 343 | optional: true 344 | 345 | /@esbuild/linux-x64/0.16.6: 346 | resolution: {integrity: sha512-g2aCp+XjWGbHq57ZUfyWNOMVDKr0flizfOa6BkP9Ezn2BLZ+gibxF+6M6272vfvALFYsbCUY+AyoNxuCVcaKFg==} 347 | engines: {node: '>=12'} 348 | cpu: [x64] 349 | os: [linux] 350 | requiresBuild: true 351 | dev: true 352 | optional: true 353 | 354 | /@esbuild/netbsd-x64/0.16.6: 355 | resolution: {integrity: sha512-q5tKkYilkgNLtp6szs/yXAHJJ4OEjoTRlHHPJtVyDj6AZsdDynrkoFUV98D+CncB9Im5CIRnPmJErb6EDvIR0Q==} 356 | engines: {node: '>=12'} 357 | cpu: [x64] 358 | os: [netbsd] 359 | requiresBuild: true 360 | dev: true 361 | optional: true 362 | 363 | /@esbuild/openbsd-x64/0.16.6: 364 | resolution: {integrity: sha512-dR+DrQ2Dsfia71xKgdUPnf6lc3y4O8qNE4nmhEJHrR7teS0yScspommz28MaIe/8c5IubqPuOY2SYQFSExG55w==} 365 | engines: {node: '>=12'} 366 | cpu: [x64] 367 | os: [openbsd] 368 | requiresBuild: true 369 | dev: true 370 | optional: true 371 | 372 | /@esbuild/sunos-x64/0.16.6: 373 | resolution: {integrity: sha512-u0hH+njKsZCz7SHRIIkqnOCWITFL+uLaXB7ro3SSztWcx7iB//Lpg/2lkPZ7sZ1lVpO0nmaHWApZIbvMTCwz1Q==} 374 | engines: {node: '>=12'} 375 | cpu: [x64] 376 | os: [sunos] 377 | requiresBuild: true 378 | dev: true 379 | optional: true 380 | 381 | /@esbuild/win32-arm64/0.16.6: 382 | resolution: {integrity: sha512-d+hveGvPLoGQHOKVDWfWSLUFnPtdpzWdtmz3PFq4t/iLg1MMTnPy48TrgC/JFTwcxDgKJdFw6ogTXjYN1tVALw==} 383 | engines: {node: '>=12'} 384 | cpu: [arm64] 385 | os: [win32] 386 | requiresBuild: true 387 | dev: true 388 | optional: true 389 | 390 | /@esbuild/win32-ia32/0.16.6: 391 | resolution: {integrity: sha512-/e2x2+Gq7afiU9xxw5J0r0DCsfsWY+hmjLNzXh6O/9Kf2kFxyCLKsPyTJmj0jQ0icz5aGlxtueH2Hnm5Rczt/Q==} 392 | engines: {node: '>=12'} 393 | cpu: [ia32] 394 | os: [win32] 395 | requiresBuild: true 396 | dev: true 397 | optional: true 398 | 399 | /@esbuild/win32-x64/0.16.6: 400 | resolution: {integrity: sha512-BlXuMzOWhAcdLRzE/PQLAAyhItzvL1fRMvbmHV6k09Xiq8rZzFJB/CrfX3ZQI0nKBlfxO4sLN9H9WwK2nLo7Pg==} 401 | engines: {node: '>=12'} 402 | cpu: [x64] 403 | os: [win32] 404 | requiresBuild: true 405 | dev: true 406 | optional: true 407 | 408 | /@eslint/eslintrc/1.3.3: 409 | resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==} 410 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 411 | dependencies: 412 | ajv: 6.12.6 413 | debug: 4.3.4 414 | espree: 9.4.1 415 | globals: 13.19.0 416 | ignore: 5.2.1 417 | import-fresh: 3.3.0 418 | js-yaml: 4.1.0 419 | minimatch: 3.1.2 420 | strip-json-comments: 3.1.1 421 | transitivePeerDependencies: 422 | - supports-color 423 | dev: true 424 | 425 | /@humanwhocodes/config-array/0.11.8: 426 | resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} 427 | engines: {node: '>=10.10.0'} 428 | dependencies: 429 | '@humanwhocodes/object-schema': 1.2.1 430 | debug: 4.3.4 431 | minimatch: 3.1.2 432 | transitivePeerDependencies: 433 | - supports-color 434 | dev: true 435 | 436 | /@humanwhocodes/module-importer/1.0.1: 437 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 438 | engines: {node: '>=12.22'} 439 | dev: true 440 | 441 | /@humanwhocodes/object-schema/1.2.1: 442 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} 443 | dev: true 444 | 445 | /@jridgewell/resolve-uri/3.1.0: 446 | resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} 447 | engines: {node: '>=6.0.0'} 448 | dev: true 449 | 450 | /@jridgewell/sourcemap-codec/1.4.14: 451 | resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} 452 | dev: true 453 | 454 | /@jridgewell/trace-mapping/0.3.17: 455 | resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} 456 | dependencies: 457 | '@jridgewell/resolve-uri': 3.1.0 458 | '@jridgewell/sourcemap-codec': 1.4.14 459 | dev: true 460 | 461 | /@nodelib/fs.scandir/2.1.5: 462 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 463 | engines: {node: '>= 8'} 464 | dependencies: 465 | '@nodelib/fs.stat': 2.0.5 466 | run-parallel: 1.2.0 467 | dev: true 468 | 469 | /@nodelib/fs.stat/2.0.5: 470 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 471 | engines: {node: '>= 8'} 472 | dev: true 473 | 474 | /@nodelib/fs.walk/1.2.8: 475 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 476 | engines: {node: '>= 8'} 477 | dependencies: 478 | '@nodelib/fs.scandir': 2.1.5 479 | fastq: 1.14.0 480 | dev: true 481 | 482 | /@playwright/test/1.28.1: 483 | resolution: {integrity: sha512-xN6spdqrNlwSn9KabIhqfZR7IWjPpFK1835tFNgjrlysaSezuX8PYUwaz38V/yI8TJLG9PkAMEXoHRXYXlpTPQ==} 484 | engines: {node: '>=14'} 485 | hasBin: true 486 | dependencies: 487 | '@types/node': 18.11.15 488 | playwright-core: 1.28.1 489 | dev: true 490 | 491 | /@polka/url/1.0.0-next.21: 492 | resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} 493 | dev: true 494 | 495 | /@sveltejs/adapter-auto/1.0.0_@sveltejs+kit@1.0.0: 496 | resolution: {integrity: sha512-yKyPvlLVua1bJ/42FrR3X041mFGdB4GzTZOAEoHUcNBRE5Mhx94+eqHpC3hNvAOiLEDcKfVO0ObyKSu7qldU+w==} 497 | peerDependencies: 498 | '@sveltejs/kit': ^1.0.0 499 | dependencies: 500 | '@sveltejs/kit': 1.0.0_svelte@3.55.0+vite@4.0.1 501 | import-meta-resolve: 2.2.0 502 | dev: true 503 | 504 | /@sveltejs/kit/1.0.0_svelte@3.55.0+vite@4.0.1: 505 | resolution: {integrity: sha512-6VgD5C3i2XOT7GRBi5LaPPLiFAmpiDkhKJNVt8fLg1RmaL6f7rT4Kiwi2XGpYRj3V1F4t1QRdsfmAkkDUKY3OA==} 506 | engines: {node: '>=16.14'} 507 | hasBin: true 508 | requiresBuild: true 509 | peerDependencies: 510 | svelte: ^3.54.0 511 | vite: ^4.0.0 512 | dependencies: 513 | '@sveltejs/vite-plugin-svelte': 2.0.2_svelte@3.55.0+vite@4.0.1 514 | '@types/cookie': 0.5.1 515 | cookie: 0.5.0 516 | devalue: 4.2.0 517 | esm-env: 1.0.0 518 | kleur: 4.1.5 519 | magic-string: 0.27.0 520 | mime: 3.0.0 521 | sade: 1.8.1 522 | set-cookie-parser: 2.5.1 523 | sirv: 2.0.2 524 | svelte: 3.55.0 525 | tiny-glob: 0.2.9 526 | undici: 5.14.0 527 | vite: 4.0.1 528 | transitivePeerDependencies: 529 | - supports-color 530 | dev: true 531 | 532 | /@sveltejs/vite-plugin-svelte/2.0.2_svelte@3.55.0+vite@4.0.1: 533 | resolution: {integrity: sha512-xCEan0/NNpQuL0l5aS42FjwQ6wwskdxC3pW1OeFtEKNZwRg7Evro9lac9HesGP6TdFsTv2xMes5ASQVKbCacxg==} 534 | engines: {node: ^14.18.0 || >= 16} 535 | peerDependencies: 536 | svelte: ^3.54.0 537 | vite: ^4.0.0 538 | dependencies: 539 | debug: 4.3.4 540 | deepmerge: 4.2.2 541 | kleur: 4.1.5 542 | magic-string: 0.27.0 543 | svelte: 3.55.0 544 | svelte-hmr: 0.15.1_svelte@3.55.0 545 | vite: 4.0.1 546 | vitefu: 0.2.3_vite@4.0.1 547 | transitivePeerDependencies: 548 | - supports-color 549 | dev: true 550 | 551 | /@types/chai-subset/1.3.3: 552 | resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} 553 | dependencies: 554 | '@types/chai': 4.3.4 555 | dev: true 556 | 557 | /@types/chai/4.3.4: 558 | resolution: {integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==} 559 | dev: true 560 | 561 | /@types/cookie/0.5.1: 562 | resolution: {integrity: sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==} 563 | dev: true 564 | 565 | /@types/json-schema/7.0.11: 566 | resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} 567 | dev: true 568 | 569 | /@types/node/18.11.15: 570 | resolution: {integrity: sha512-VkhBbVo2+2oozlkdHXLrb3zjsRkpdnaU2bXmX8Wgle3PUi569eLRaHGlgETQHR7lLL1w7GiG3h9SnePhxNDecw==} 571 | dev: true 572 | 573 | /@types/pug/2.0.6: 574 | resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==} 575 | dev: true 576 | 577 | /@types/sass/1.43.1: 578 | resolution: {integrity: sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==} 579 | dependencies: 580 | '@types/node': 18.11.15 581 | dev: true 582 | 583 | /@types/semver/7.3.13: 584 | resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} 585 | dev: true 586 | 587 | /@typescript-eslint/eslint-plugin/5.46.1_imrg37k3svwu377c6q7gkarwmi: 588 | resolution: {integrity: sha512-YpzNv3aayRBwjs4J3oz65eVLXc9xx0PDbIRisHj+dYhvBn02MjYOD96P8YGiWEIFBrojaUjxvkaUpakD82phsA==} 589 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 590 | peerDependencies: 591 | '@typescript-eslint/parser': ^5.0.0 592 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 593 | typescript: '*' 594 | peerDependenciesMeta: 595 | typescript: 596 | optional: true 597 | dependencies: 598 | '@typescript-eslint/parser': 5.46.1_ha6vam6werchizxrnqvarmz2zu 599 | '@typescript-eslint/scope-manager': 5.46.1 600 | '@typescript-eslint/type-utils': 5.46.1_ha6vam6werchizxrnqvarmz2zu 601 | '@typescript-eslint/utils': 5.46.1_ha6vam6werchizxrnqvarmz2zu 602 | debug: 4.3.4 603 | eslint: 8.29.0 604 | ignore: 5.2.1 605 | natural-compare-lite: 1.4.0 606 | regexpp: 3.2.0 607 | semver: 7.3.8 608 | tsutils: 3.21.0_typescript@4.9.4 609 | typescript: 4.9.4 610 | transitivePeerDependencies: 611 | - supports-color 612 | dev: true 613 | 614 | /@typescript-eslint/parser/5.46.1_ha6vam6werchizxrnqvarmz2zu: 615 | resolution: {integrity: sha512-RelQ5cGypPh4ySAtfIMBzBGyrNerQcmfA1oJvPj5f+H4jI59rl9xxpn4bonC0tQvUKOEN7eGBFWxFLK3Xepneg==} 616 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 617 | peerDependencies: 618 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 619 | typescript: '*' 620 | peerDependenciesMeta: 621 | typescript: 622 | optional: true 623 | dependencies: 624 | '@typescript-eslint/scope-manager': 5.46.1 625 | '@typescript-eslint/types': 5.46.1 626 | '@typescript-eslint/typescript-estree': 5.46.1_typescript@4.9.4 627 | debug: 4.3.4 628 | eslint: 8.29.0 629 | typescript: 4.9.4 630 | transitivePeerDependencies: 631 | - supports-color 632 | dev: true 633 | 634 | /@typescript-eslint/scope-manager/5.46.1: 635 | resolution: {integrity: sha512-iOChVivo4jpwUdrJZyXSMrEIM/PvsbbDOX1y3UCKjSgWn+W89skxWaYXACQfxmIGhPVpRWK/VWPYc+bad6smIA==} 636 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 637 | dependencies: 638 | '@typescript-eslint/types': 5.46.1 639 | '@typescript-eslint/visitor-keys': 5.46.1 640 | dev: true 641 | 642 | /@typescript-eslint/type-utils/5.46.1_ha6vam6werchizxrnqvarmz2zu: 643 | resolution: {integrity: sha512-V/zMyfI+jDmL1ADxfDxjZ0EMbtiVqj8LUGPAGyBkXXStWmCUErMpW873zEHsyguWCuq2iN4BrlWUkmuVj84yng==} 644 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 645 | peerDependencies: 646 | eslint: '*' 647 | typescript: '*' 648 | peerDependenciesMeta: 649 | typescript: 650 | optional: true 651 | dependencies: 652 | '@typescript-eslint/typescript-estree': 5.46.1_typescript@4.9.4 653 | '@typescript-eslint/utils': 5.46.1_ha6vam6werchizxrnqvarmz2zu 654 | debug: 4.3.4 655 | eslint: 8.29.0 656 | tsutils: 3.21.0_typescript@4.9.4 657 | typescript: 4.9.4 658 | transitivePeerDependencies: 659 | - supports-color 660 | dev: true 661 | 662 | /@typescript-eslint/types/5.46.1: 663 | resolution: {integrity: sha512-Z5pvlCaZgU+93ryiYUwGwLl9AQVB/PQ1TsJ9NZ/gHzZjN7g9IAn6RSDkpCV8hqTwAiaj6fmCcKSQeBPlIpW28w==} 664 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 665 | dev: true 666 | 667 | /@typescript-eslint/typescript-estree/5.46.1_typescript@4.9.4: 668 | resolution: {integrity: sha512-j9W4t67QiNp90kh5Nbr1w92wzt+toiIsaVPnEblB2Ih2U9fqBTyqV9T3pYWZBRt6QoMh/zVWP59EpuCjc4VRBg==} 669 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 670 | peerDependencies: 671 | typescript: '*' 672 | peerDependenciesMeta: 673 | typescript: 674 | optional: true 675 | dependencies: 676 | '@typescript-eslint/types': 5.46.1 677 | '@typescript-eslint/visitor-keys': 5.46.1 678 | debug: 4.3.4 679 | globby: 11.1.0 680 | is-glob: 4.0.3 681 | semver: 7.3.8 682 | tsutils: 3.21.0_typescript@4.9.4 683 | typescript: 4.9.4 684 | transitivePeerDependencies: 685 | - supports-color 686 | dev: true 687 | 688 | /@typescript-eslint/utils/5.46.1_ha6vam6werchizxrnqvarmz2zu: 689 | resolution: {integrity: sha512-RBdBAGv3oEpFojaCYT4Ghn4775pdjvwfDOfQ2P6qzNVgQOVrnSPe5/Pb88kv7xzYQjoio0eKHKB9GJ16ieSxvA==} 690 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 691 | peerDependencies: 692 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 693 | dependencies: 694 | '@types/json-schema': 7.0.11 695 | '@types/semver': 7.3.13 696 | '@typescript-eslint/scope-manager': 5.46.1 697 | '@typescript-eslint/types': 5.46.1 698 | '@typescript-eslint/typescript-estree': 5.46.1_typescript@4.9.4 699 | eslint: 8.29.0 700 | eslint-scope: 5.1.1 701 | eslint-utils: 3.0.0_eslint@8.29.0 702 | semver: 7.3.8 703 | transitivePeerDependencies: 704 | - supports-color 705 | - typescript 706 | dev: true 707 | 708 | /@typescript-eslint/visitor-keys/5.46.1: 709 | resolution: {integrity: sha512-jczZ9noovXwy59KjRTk1OftT78pwygdcmCuBf8yMoWt/8O8l+6x2LSEze0E4TeepXK4MezW3zGSyoDRZK7Y9cg==} 710 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 711 | dependencies: 712 | '@typescript-eslint/types': 5.46.1 713 | eslint-visitor-keys: 3.3.0 714 | dev: true 715 | 716 | /acorn-jsx/5.3.2_acorn@8.8.1: 717 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 718 | peerDependencies: 719 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 720 | dependencies: 721 | acorn: 8.8.1 722 | dev: true 723 | 724 | /acorn-walk/8.2.0: 725 | resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} 726 | engines: {node: '>=0.4.0'} 727 | dev: true 728 | 729 | /acorn/8.8.1: 730 | resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==} 731 | engines: {node: '>=0.4.0'} 732 | hasBin: true 733 | dev: true 734 | 735 | /ajv/6.12.6: 736 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 737 | dependencies: 738 | fast-deep-equal: 3.1.3 739 | fast-json-stable-stringify: 2.1.0 740 | json-schema-traverse: 0.4.1 741 | uri-js: 4.4.1 742 | dev: true 743 | 744 | /ansi-regex/5.0.1: 745 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 746 | engines: {node: '>=8'} 747 | dev: true 748 | 749 | /ansi-styles/4.3.0: 750 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 751 | engines: {node: '>=8'} 752 | dependencies: 753 | color-convert: 2.0.1 754 | dev: true 755 | 756 | /anymatch/3.1.3: 757 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 758 | engines: {node: '>= 8'} 759 | dependencies: 760 | normalize-path: 3.0.0 761 | picomatch: 2.3.1 762 | dev: true 763 | 764 | /argparse/2.0.1: 765 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 766 | dev: true 767 | 768 | /array-union/2.1.0: 769 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 770 | engines: {node: '>=8'} 771 | dev: true 772 | 773 | /assertion-error/1.1.0: 774 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} 775 | dev: true 776 | 777 | /autoprefixer/10.4.13_postcss@8.4.20: 778 | resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==} 779 | engines: {node: ^10 || ^12 || >=14} 780 | hasBin: true 781 | peerDependencies: 782 | postcss: ^8.1.0 783 | dependencies: 784 | browserslist: 4.21.4 785 | caniuse-lite: 1.0.30001439 786 | fraction.js: 4.2.0 787 | normalize-range: 0.1.2 788 | picocolors: 1.0.0 789 | postcss: 8.4.20 790 | postcss-value-parser: 4.2.0 791 | 792 | /balanced-match/1.0.2: 793 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 794 | dev: true 795 | 796 | /binary-extensions/2.2.0: 797 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 798 | engines: {node: '>=8'} 799 | dev: true 800 | 801 | /brace-expansion/1.1.11: 802 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 803 | dependencies: 804 | balanced-match: 1.0.2 805 | concat-map: 0.0.1 806 | dev: true 807 | 808 | /braces/3.0.2: 809 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 810 | engines: {node: '>=8'} 811 | dependencies: 812 | fill-range: 7.0.1 813 | dev: true 814 | 815 | /browserslist/4.21.4: 816 | resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} 817 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 818 | hasBin: true 819 | dependencies: 820 | caniuse-lite: 1.0.30001439 821 | electron-to-chromium: 1.4.284 822 | node-releases: 2.0.7 823 | update-browserslist-db: 1.0.10_browserslist@4.21.4 824 | 825 | /buffer-crc32/0.2.13: 826 | resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} 827 | dev: true 828 | 829 | /busboy/1.6.0: 830 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 831 | engines: {node: '>=10.16.0'} 832 | dependencies: 833 | streamsearch: 1.1.0 834 | dev: true 835 | 836 | /callsites/3.1.0: 837 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 838 | engines: {node: '>=6'} 839 | dev: true 840 | 841 | /caniuse-lite/1.0.30001439: 842 | resolution: {integrity: sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==} 843 | 844 | /chai/4.3.7: 845 | resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} 846 | engines: {node: '>=4'} 847 | dependencies: 848 | assertion-error: 1.1.0 849 | check-error: 1.0.2 850 | deep-eql: 4.1.3 851 | get-func-name: 2.0.0 852 | loupe: 2.3.6 853 | pathval: 1.1.1 854 | type-detect: 4.0.8 855 | dev: true 856 | 857 | /chalk/4.1.2: 858 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 859 | engines: {node: '>=10'} 860 | dependencies: 861 | ansi-styles: 4.3.0 862 | supports-color: 7.2.0 863 | dev: true 864 | 865 | /check-error/1.0.2: 866 | resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} 867 | dev: true 868 | 869 | /chokidar/3.5.3: 870 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 871 | engines: {node: '>= 8.10.0'} 872 | dependencies: 873 | anymatch: 3.1.3 874 | braces: 3.0.2 875 | glob-parent: 5.1.2 876 | is-binary-path: 2.1.0 877 | is-glob: 4.0.3 878 | normalize-path: 3.0.0 879 | readdirp: 3.6.0 880 | optionalDependencies: 881 | fsevents: 2.3.2 882 | dev: true 883 | 884 | /color-convert/2.0.1: 885 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 886 | engines: {node: '>=7.0.0'} 887 | dependencies: 888 | color-name: 1.1.4 889 | dev: true 890 | 891 | /color-name/1.1.4: 892 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 893 | dev: true 894 | 895 | /concat-map/0.0.1: 896 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 897 | dev: true 898 | 899 | /cookie/0.5.0: 900 | resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} 901 | engines: {node: '>= 0.6'} 902 | dev: true 903 | 904 | /cross-spawn/7.0.3: 905 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 906 | engines: {node: '>= 8'} 907 | dependencies: 908 | path-key: 3.1.1 909 | shebang-command: 2.0.0 910 | which: 2.0.2 911 | dev: true 912 | 913 | /css-blank-pseudo/3.0.3_postcss@8.4.20: 914 | resolution: {integrity: sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==} 915 | engines: {node: ^12 || ^14 || >=16} 916 | hasBin: true 917 | peerDependencies: 918 | postcss: ^8.4 919 | dependencies: 920 | postcss: 8.4.20 921 | postcss-selector-parser: 6.0.11 922 | dev: false 923 | 924 | /css-has-pseudo/3.0.4_postcss@8.4.20: 925 | resolution: {integrity: sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==} 926 | engines: {node: ^12 || ^14 || >=16} 927 | hasBin: true 928 | peerDependencies: 929 | postcss: ^8.4 930 | dependencies: 931 | postcss: 8.4.20 932 | postcss-selector-parser: 6.0.11 933 | dev: false 934 | 935 | /css-prefers-color-scheme/6.0.3_postcss@8.4.20: 936 | resolution: {integrity: sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==} 937 | engines: {node: ^12 || ^14 || >=16} 938 | hasBin: true 939 | peerDependencies: 940 | postcss: ^8.4 941 | dependencies: 942 | postcss: 8.4.20 943 | dev: false 944 | 945 | /cssdb/7.2.0: 946 | resolution: {integrity: sha512-JYlIsE7eKHSi0UNuCyo96YuIDFqvhGgHw4Ck6lsN+DP0Tp8M64UTDT2trGbkMDqnCoEjks7CkS0XcjU0rkvBdg==} 947 | dev: false 948 | 949 | /cssesc/3.0.0: 950 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 951 | engines: {node: '>=4'} 952 | hasBin: true 953 | dev: false 954 | 955 | /debug/4.3.4: 956 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 957 | engines: {node: '>=6.0'} 958 | peerDependencies: 959 | supports-color: '*' 960 | peerDependenciesMeta: 961 | supports-color: 962 | optional: true 963 | dependencies: 964 | ms: 2.1.2 965 | dev: true 966 | 967 | /deep-eql/4.1.3: 968 | resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} 969 | engines: {node: '>=6'} 970 | dependencies: 971 | type-detect: 4.0.8 972 | dev: true 973 | 974 | /deep-is/0.1.4: 975 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 976 | dev: true 977 | 978 | /deepmerge/4.2.2: 979 | resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} 980 | engines: {node: '>=0.10.0'} 981 | dev: true 982 | 983 | /detect-indent/6.1.0: 984 | resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} 985 | engines: {node: '>=8'} 986 | dev: true 987 | 988 | /devalue/4.2.0: 989 | resolution: {integrity: sha512-mbjoAaCL2qogBKgeFxFPOXAUsZchircF+B/79LD4sHH0+NHfYm8gZpQrskKDn5gENGt35+5OI1GUF7hLVnkPDw==} 990 | dev: true 991 | 992 | /dir-glob/3.0.1: 993 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 994 | engines: {node: '>=8'} 995 | dependencies: 996 | path-type: 4.0.0 997 | dev: true 998 | 999 | /doctrine/3.0.0: 1000 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 1001 | engines: {node: '>=6.0.0'} 1002 | dependencies: 1003 | esutils: 2.0.3 1004 | dev: true 1005 | 1006 | /electron-to-chromium/1.4.284: 1007 | resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==} 1008 | 1009 | /es6-promise/3.3.1: 1010 | resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} 1011 | dev: true 1012 | 1013 | /esbuild/0.16.6: 1014 | resolution: {integrity: sha512-0Fn9lUX1yy2iP56L0BDAgnQFJfkDICdYZ0Xm6Kgdwa72AkHoKX0egau/ZIROYdjJWPLJtl9bDuW7Xs56TuKPhQ==} 1015 | engines: {node: '>=12'} 1016 | hasBin: true 1017 | requiresBuild: true 1018 | optionalDependencies: 1019 | '@esbuild/android-arm': 0.16.6 1020 | '@esbuild/android-arm64': 0.16.6 1021 | '@esbuild/android-x64': 0.16.6 1022 | '@esbuild/darwin-arm64': 0.16.6 1023 | '@esbuild/darwin-x64': 0.16.6 1024 | '@esbuild/freebsd-arm64': 0.16.6 1025 | '@esbuild/freebsd-x64': 0.16.6 1026 | '@esbuild/linux-arm': 0.16.6 1027 | '@esbuild/linux-arm64': 0.16.6 1028 | '@esbuild/linux-ia32': 0.16.6 1029 | '@esbuild/linux-loong64': 0.16.6 1030 | '@esbuild/linux-mips64el': 0.16.6 1031 | '@esbuild/linux-ppc64': 0.16.6 1032 | '@esbuild/linux-riscv64': 0.16.6 1033 | '@esbuild/linux-s390x': 0.16.6 1034 | '@esbuild/linux-x64': 0.16.6 1035 | '@esbuild/netbsd-x64': 0.16.6 1036 | '@esbuild/openbsd-x64': 0.16.6 1037 | '@esbuild/sunos-x64': 0.16.6 1038 | '@esbuild/win32-arm64': 0.16.6 1039 | '@esbuild/win32-ia32': 0.16.6 1040 | '@esbuild/win32-x64': 0.16.6 1041 | dev: true 1042 | 1043 | /escalade/3.1.1: 1044 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 1045 | engines: {node: '>=6'} 1046 | 1047 | /escape-string-regexp/4.0.0: 1048 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1049 | engines: {node: '>=10'} 1050 | dev: true 1051 | 1052 | /eslint-config-prettier/8.5.0_eslint@8.29.0: 1053 | resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} 1054 | hasBin: true 1055 | peerDependencies: 1056 | eslint: '>=7.0.0' 1057 | dependencies: 1058 | eslint: 8.29.0 1059 | dev: true 1060 | 1061 | /eslint-plugin-svelte3/4.0.0_ffnabc34fed75fjymbd45uofx4: 1062 | resolution: {integrity: sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==} 1063 | peerDependencies: 1064 | eslint: '>=8.0.0' 1065 | svelte: ^3.2.0 1066 | dependencies: 1067 | eslint: 8.29.0 1068 | svelte: 3.55.0 1069 | dev: true 1070 | 1071 | /eslint-scope/5.1.1: 1072 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 1073 | engines: {node: '>=8.0.0'} 1074 | dependencies: 1075 | esrecurse: 4.3.0 1076 | estraverse: 4.3.0 1077 | dev: true 1078 | 1079 | /eslint-scope/7.1.1: 1080 | resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} 1081 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1082 | dependencies: 1083 | esrecurse: 4.3.0 1084 | estraverse: 5.3.0 1085 | dev: true 1086 | 1087 | /eslint-utils/3.0.0_eslint@8.29.0: 1088 | resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} 1089 | engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} 1090 | peerDependencies: 1091 | eslint: '>=5' 1092 | dependencies: 1093 | eslint: 8.29.0 1094 | eslint-visitor-keys: 2.1.0 1095 | dev: true 1096 | 1097 | /eslint-visitor-keys/2.1.0: 1098 | resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} 1099 | engines: {node: '>=10'} 1100 | dev: true 1101 | 1102 | /eslint-visitor-keys/3.3.0: 1103 | resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} 1104 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1105 | dev: true 1106 | 1107 | /eslint/8.29.0: 1108 | resolution: {integrity: sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==} 1109 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1110 | hasBin: true 1111 | dependencies: 1112 | '@eslint/eslintrc': 1.3.3 1113 | '@humanwhocodes/config-array': 0.11.8 1114 | '@humanwhocodes/module-importer': 1.0.1 1115 | '@nodelib/fs.walk': 1.2.8 1116 | ajv: 6.12.6 1117 | chalk: 4.1.2 1118 | cross-spawn: 7.0.3 1119 | debug: 4.3.4 1120 | doctrine: 3.0.0 1121 | escape-string-regexp: 4.0.0 1122 | eslint-scope: 7.1.1 1123 | eslint-utils: 3.0.0_eslint@8.29.0 1124 | eslint-visitor-keys: 3.3.0 1125 | espree: 9.4.1 1126 | esquery: 1.4.0 1127 | esutils: 2.0.3 1128 | fast-deep-equal: 3.1.3 1129 | file-entry-cache: 6.0.1 1130 | find-up: 5.0.0 1131 | glob-parent: 6.0.2 1132 | globals: 13.19.0 1133 | grapheme-splitter: 1.0.4 1134 | ignore: 5.2.1 1135 | import-fresh: 3.3.0 1136 | imurmurhash: 0.1.4 1137 | is-glob: 4.0.3 1138 | is-path-inside: 3.0.3 1139 | js-sdsl: 4.2.0 1140 | js-yaml: 4.1.0 1141 | json-stable-stringify-without-jsonify: 1.0.1 1142 | levn: 0.4.1 1143 | lodash.merge: 4.6.2 1144 | minimatch: 3.1.2 1145 | natural-compare: 1.4.0 1146 | optionator: 0.9.1 1147 | regexpp: 3.2.0 1148 | strip-ansi: 6.0.1 1149 | strip-json-comments: 3.1.1 1150 | text-table: 0.2.0 1151 | transitivePeerDependencies: 1152 | - supports-color 1153 | dev: true 1154 | 1155 | /esm-env/1.0.0: 1156 | resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} 1157 | dev: true 1158 | 1159 | /espree/9.4.1: 1160 | resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==} 1161 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1162 | dependencies: 1163 | acorn: 8.8.1 1164 | acorn-jsx: 5.3.2_acorn@8.8.1 1165 | eslint-visitor-keys: 3.3.0 1166 | dev: true 1167 | 1168 | /esquery/1.4.0: 1169 | resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} 1170 | engines: {node: '>=0.10'} 1171 | dependencies: 1172 | estraverse: 5.3.0 1173 | dev: true 1174 | 1175 | /esrecurse/4.3.0: 1176 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1177 | engines: {node: '>=4.0'} 1178 | dependencies: 1179 | estraverse: 5.3.0 1180 | dev: true 1181 | 1182 | /estraverse/4.3.0: 1183 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} 1184 | engines: {node: '>=4.0'} 1185 | dev: true 1186 | 1187 | /estraverse/5.3.0: 1188 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1189 | engines: {node: '>=4.0'} 1190 | dev: true 1191 | 1192 | /esutils/2.0.3: 1193 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1194 | engines: {node: '>=0.10.0'} 1195 | dev: true 1196 | 1197 | /fast-deep-equal/3.1.3: 1198 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1199 | dev: true 1200 | 1201 | /fast-glob/3.2.12: 1202 | resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} 1203 | engines: {node: '>=8.6.0'} 1204 | dependencies: 1205 | '@nodelib/fs.stat': 2.0.5 1206 | '@nodelib/fs.walk': 1.2.8 1207 | glob-parent: 5.1.2 1208 | merge2: 1.4.1 1209 | micromatch: 4.0.5 1210 | dev: true 1211 | 1212 | /fast-json-stable-stringify/2.1.0: 1213 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1214 | dev: true 1215 | 1216 | /fast-levenshtein/2.0.6: 1217 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1218 | dev: true 1219 | 1220 | /fastq/1.14.0: 1221 | resolution: {integrity: sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==} 1222 | dependencies: 1223 | reusify: 1.0.4 1224 | dev: true 1225 | 1226 | /file-entry-cache/6.0.1: 1227 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1228 | engines: {node: ^10.12.0 || >=12.0.0} 1229 | dependencies: 1230 | flat-cache: 3.0.4 1231 | dev: true 1232 | 1233 | /fill-range/7.0.1: 1234 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1235 | engines: {node: '>=8'} 1236 | dependencies: 1237 | to-regex-range: 5.0.1 1238 | dev: true 1239 | 1240 | /find-up/5.0.0: 1241 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1242 | engines: {node: '>=10'} 1243 | dependencies: 1244 | locate-path: 6.0.0 1245 | path-exists: 4.0.0 1246 | dev: true 1247 | 1248 | /flat-cache/3.0.4: 1249 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} 1250 | engines: {node: ^10.12.0 || >=12.0.0} 1251 | dependencies: 1252 | flatted: 3.2.7 1253 | rimraf: 3.0.2 1254 | dev: true 1255 | 1256 | /flatted/3.2.7: 1257 | resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} 1258 | dev: true 1259 | 1260 | /fraction.js/4.2.0: 1261 | resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} 1262 | 1263 | /fs.realpath/1.0.0: 1264 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1265 | dev: true 1266 | 1267 | /fsevents/2.3.2: 1268 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 1269 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1270 | os: [darwin] 1271 | requiresBuild: true 1272 | dev: true 1273 | optional: true 1274 | 1275 | /function-bind/1.1.1: 1276 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 1277 | dev: true 1278 | 1279 | /get-func-name/2.0.0: 1280 | resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} 1281 | dev: true 1282 | 1283 | /glob-parent/5.1.2: 1284 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1285 | engines: {node: '>= 6'} 1286 | dependencies: 1287 | is-glob: 4.0.3 1288 | dev: true 1289 | 1290 | /glob-parent/6.0.2: 1291 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1292 | engines: {node: '>=10.13.0'} 1293 | dependencies: 1294 | is-glob: 4.0.3 1295 | dev: true 1296 | 1297 | /glob/7.2.3: 1298 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1299 | dependencies: 1300 | fs.realpath: 1.0.0 1301 | inflight: 1.0.6 1302 | inherits: 2.0.4 1303 | minimatch: 3.1.2 1304 | once: 1.4.0 1305 | path-is-absolute: 1.0.1 1306 | dev: true 1307 | 1308 | /globals/13.19.0: 1309 | resolution: {integrity: sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==} 1310 | engines: {node: '>=8'} 1311 | dependencies: 1312 | type-fest: 0.20.2 1313 | dev: true 1314 | 1315 | /globalyzer/0.1.0: 1316 | resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} 1317 | dev: true 1318 | 1319 | /globby/11.1.0: 1320 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1321 | engines: {node: '>=10'} 1322 | dependencies: 1323 | array-union: 2.1.0 1324 | dir-glob: 3.0.1 1325 | fast-glob: 3.2.12 1326 | ignore: 5.2.1 1327 | merge2: 1.4.1 1328 | slash: 3.0.0 1329 | dev: true 1330 | 1331 | /globrex/0.1.2: 1332 | resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} 1333 | dev: true 1334 | 1335 | /graceful-fs/4.2.10: 1336 | resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} 1337 | dev: true 1338 | 1339 | /grapheme-splitter/1.0.4: 1340 | resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} 1341 | dev: true 1342 | 1343 | /has-flag/4.0.0: 1344 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1345 | engines: {node: '>=8'} 1346 | dev: true 1347 | 1348 | /has/1.0.3: 1349 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 1350 | engines: {node: '>= 0.4.0'} 1351 | dependencies: 1352 | function-bind: 1.1.1 1353 | dev: true 1354 | 1355 | /ignore/5.2.1: 1356 | resolution: {integrity: sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==} 1357 | engines: {node: '>= 4'} 1358 | dev: true 1359 | 1360 | /import-fresh/3.3.0: 1361 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1362 | engines: {node: '>=6'} 1363 | dependencies: 1364 | parent-module: 1.0.1 1365 | resolve-from: 4.0.0 1366 | dev: true 1367 | 1368 | /import-meta-resolve/2.2.0: 1369 | resolution: {integrity: sha512-CpPOtiCHxP9HdtDM5F45tNiAe66Cqlv3f5uHoJjt+KlaLrUh9/Wz9vepADZ78SlqEo62aDWZtj9ydMGXV+CPnw==} 1370 | dev: true 1371 | 1372 | /imurmurhash/0.1.4: 1373 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1374 | engines: {node: '>=0.8.19'} 1375 | dev: true 1376 | 1377 | /inflight/1.0.6: 1378 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1379 | dependencies: 1380 | once: 1.4.0 1381 | wrappy: 1.0.2 1382 | dev: true 1383 | 1384 | /inherits/2.0.4: 1385 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1386 | dev: true 1387 | 1388 | /is-binary-path/2.1.0: 1389 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1390 | engines: {node: '>=8'} 1391 | dependencies: 1392 | binary-extensions: 2.2.0 1393 | dev: true 1394 | 1395 | /is-core-module/2.11.0: 1396 | resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} 1397 | dependencies: 1398 | has: 1.0.3 1399 | dev: true 1400 | 1401 | /is-extglob/2.1.1: 1402 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1403 | engines: {node: '>=0.10.0'} 1404 | dev: true 1405 | 1406 | /is-glob/4.0.3: 1407 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1408 | engines: {node: '>=0.10.0'} 1409 | dependencies: 1410 | is-extglob: 2.1.1 1411 | dev: true 1412 | 1413 | /is-number/7.0.0: 1414 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1415 | engines: {node: '>=0.12.0'} 1416 | dev: true 1417 | 1418 | /is-path-inside/3.0.3: 1419 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 1420 | engines: {node: '>=8'} 1421 | dev: true 1422 | 1423 | /isexe/2.0.0: 1424 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1425 | dev: true 1426 | 1427 | /js-sdsl/4.2.0: 1428 | resolution: {integrity: sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==} 1429 | dev: true 1430 | 1431 | /js-yaml/4.1.0: 1432 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1433 | hasBin: true 1434 | dependencies: 1435 | argparse: 2.0.1 1436 | dev: true 1437 | 1438 | /json-schema-traverse/0.4.1: 1439 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1440 | dev: true 1441 | 1442 | /json-stable-stringify-without-jsonify/1.0.1: 1443 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1444 | dev: true 1445 | 1446 | /kleur/4.1.5: 1447 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 1448 | engines: {node: '>=6'} 1449 | dev: true 1450 | 1451 | /levn/0.4.1: 1452 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1453 | engines: {node: '>= 0.8.0'} 1454 | dependencies: 1455 | prelude-ls: 1.2.1 1456 | type-check: 0.4.0 1457 | dev: true 1458 | 1459 | /lilconfig/2.0.6: 1460 | resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} 1461 | engines: {node: '>=10'} 1462 | dev: true 1463 | 1464 | /local-pkg/0.4.2: 1465 | resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==} 1466 | engines: {node: '>=14'} 1467 | dev: true 1468 | 1469 | /locate-path/6.0.0: 1470 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1471 | engines: {node: '>=10'} 1472 | dependencies: 1473 | p-locate: 5.0.0 1474 | dev: true 1475 | 1476 | /lodash.merge/4.6.2: 1477 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1478 | dev: true 1479 | 1480 | /loupe/2.3.6: 1481 | resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} 1482 | dependencies: 1483 | get-func-name: 2.0.0 1484 | dev: true 1485 | 1486 | /lru-cache/6.0.0: 1487 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 1488 | engines: {node: '>=10'} 1489 | dependencies: 1490 | yallist: 4.0.0 1491 | dev: true 1492 | 1493 | /magic-string/0.25.9: 1494 | resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} 1495 | dependencies: 1496 | sourcemap-codec: 1.4.8 1497 | dev: true 1498 | 1499 | /magic-string/0.27.0: 1500 | resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} 1501 | engines: {node: '>=12'} 1502 | dependencies: 1503 | '@jridgewell/sourcemap-codec': 1.4.14 1504 | dev: true 1505 | 1506 | /merge2/1.4.1: 1507 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1508 | engines: {node: '>= 8'} 1509 | dev: true 1510 | 1511 | /micromatch/4.0.5: 1512 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1513 | engines: {node: '>=8.6'} 1514 | dependencies: 1515 | braces: 3.0.2 1516 | picomatch: 2.3.1 1517 | dev: true 1518 | 1519 | /mime/3.0.0: 1520 | resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} 1521 | engines: {node: '>=10.0.0'} 1522 | hasBin: true 1523 | dev: true 1524 | 1525 | /min-indent/1.0.1: 1526 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 1527 | engines: {node: '>=4'} 1528 | dev: true 1529 | 1530 | /minimatch/3.1.2: 1531 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1532 | dependencies: 1533 | brace-expansion: 1.1.11 1534 | dev: true 1535 | 1536 | /minimist/1.2.7: 1537 | resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} 1538 | dev: true 1539 | 1540 | /mkdirp/0.5.6: 1541 | resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} 1542 | hasBin: true 1543 | dependencies: 1544 | minimist: 1.2.7 1545 | dev: true 1546 | 1547 | /mri/1.2.0: 1548 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 1549 | engines: {node: '>=4'} 1550 | dev: true 1551 | 1552 | /mrmime/1.0.1: 1553 | resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} 1554 | engines: {node: '>=10'} 1555 | dev: true 1556 | 1557 | /ms/2.1.2: 1558 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1559 | dev: true 1560 | 1561 | /nanoid/3.3.4: 1562 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} 1563 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1564 | hasBin: true 1565 | 1566 | /natural-compare-lite/1.4.0: 1567 | resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} 1568 | dev: true 1569 | 1570 | /natural-compare/1.4.0: 1571 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1572 | dev: true 1573 | 1574 | /node-releases/2.0.7: 1575 | resolution: {integrity: sha512-EJ3rzxL9pTWPjk5arA0s0dgXpnyiAbJDE6wHT62g7VsgrgQgmmZ+Ru++M1BFofncWja+Pnn3rEr3fieRySAdKQ==} 1576 | 1577 | /normalize-path/3.0.0: 1578 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1579 | engines: {node: '>=0.10.0'} 1580 | dev: true 1581 | 1582 | /normalize-range/0.1.2: 1583 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} 1584 | engines: {node: '>=0.10.0'} 1585 | 1586 | /once/1.4.0: 1587 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1588 | dependencies: 1589 | wrappy: 1.0.2 1590 | dev: true 1591 | 1592 | /optionator/0.9.1: 1593 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} 1594 | engines: {node: '>= 0.8.0'} 1595 | dependencies: 1596 | deep-is: 0.1.4 1597 | fast-levenshtein: 2.0.6 1598 | levn: 0.4.1 1599 | prelude-ls: 1.2.1 1600 | type-check: 0.4.0 1601 | word-wrap: 1.2.3 1602 | dev: true 1603 | 1604 | /p-limit/3.1.0: 1605 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1606 | engines: {node: '>=10'} 1607 | dependencies: 1608 | yocto-queue: 0.1.0 1609 | dev: true 1610 | 1611 | /p-locate/5.0.0: 1612 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1613 | engines: {node: '>=10'} 1614 | dependencies: 1615 | p-limit: 3.1.0 1616 | dev: true 1617 | 1618 | /parent-module/1.0.1: 1619 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1620 | engines: {node: '>=6'} 1621 | dependencies: 1622 | callsites: 3.1.0 1623 | dev: true 1624 | 1625 | /path-exists/4.0.0: 1626 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1627 | engines: {node: '>=8'} 1628 | dev: true 1629 | 1630 | /path-is-absolute/1.0.1: 1631 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1632 | engines: {node: '>=0.10.0'} 1633 | dev: true 1634 | 1635 | /path-key/3.1.1: 1636 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1637 | engines: {node: '>=8'} 1638 | dev: true 1639 | 1640 | /path-parse/1.0.7: 1641 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1642 | dev: true 1643 | 1644 | /path-type/4.0.0: 1645 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1646 | engines: {node: '>=8'} 1647 | dev: true 1648 | 1649 | /pathval/1.1.1: 1650 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} 1651 | dev: true 1652 | 1653 | /picocolors/1.0.0: 1654 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 1655 | 1656 | /picomatch/2.3.1: 1657 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1658 | engines: {node: '>=8.6'} 1659 | dev: true 1660 | 1661 | /playwright-core/1.28.1: 1662 | resolution: {integrity: sha512-3PixLnGPno0E8rSBJjtwqTwJe3Yw72QwBBBxNoukIj3lEeBNXwbNiKrNuB1oyQgTBw5QHUhNO3SteEtHaMK6ag==} 1663 | engines: {node: '>=14'} 1664 | hasBin: true 1665 | dev: true 1666 | 1667 | /postcss-attribute-case-insensitive/5.0.2_postcss@8.4.20: 1668 | resolution: {integrity: sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==} 1669 | engines: {node: ^12 || ^14 || >=16} 1670 | peerDependencies: 1671 | postcss: ^8.2 1672 | dependencies: 1673 | postcss: 8.4.20 1674 | postcss-selector-parser: 6.0.11 1675 | dev: false 1676 | 1677 | /postcss-clamp/4.1.0_postcss@8.4.20: 1678 | resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==} 1679 | engines: {node: '>=7.6.0'} 1680 | peerDependencies: 1681 | postcss: ^8.4.6 1682 | dependencies: 1683 | postcss: 8.4.20 1684 | postcss-value-parser: 4.2.0 1685 | dev: false 1686 | 1687 | /postcss-color-functional-notation/4.2.4_postcss@8.4.20: 1688 | resolution: {integrity: sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==} 1689 | engines: {node: ^12 || ^14 || >=16} 1690 | peerDependencies: 1691 | postcss: ^8.2 1692 | dependencies: 1693 | postcss: 8.4.20 1694 | postcss-value-parser: 4.2.0 1695 | dev: false 1696 | 1697 | /postcss-color-hex-alpha/8.0.4_postcss@8.4.20: 1698 | resolution: {integrity: sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==} 1699 | engines: {node: ^12 || ^14 || >=16} 1700 | peerDependencies: 1701 | postcss: ^8.4 1702 | dependencies: 1703 | postcss: 8.4.20 1704 | postcss-value-parser: 4.2.0 1705 | dev: false 1706 | 1707 | /postcss-color-rebeccapurple/7.1.1_postcss@8.4.20: 1708 | resolution: {integrity: sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==} 1709 | engines: {node: ^12 || ^14 || >=16} 1710 | peerDependencies: 1711 | postcss: ^8.2 1712 | dependencies: 1713 | postcss: 8.4.20 1714 | postcss-value-parser: 4.2.0 1715 | dev: false 1716 | 1717 | /postcss-custom-media/8.0.2_postcss@8.4.20: 1718 | resolution: {integrity: sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==} 1719 | engines: {node: ^12 || ^14 || >=16} 1720 | peerDependencies: 1721 | postcss: ^8.3 1722 | dependencies: 1723 | postcss: 8.4.20 1724 | postcss-value-parser: 4.2.0 1725 | dev: false 1726 | 1727 | /postcss-custom-properties/12.1.11_postcss@8.4.20: 1728 | resolution: {integrity: sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==} 1729 | engines: {node: ^12 || ^14 || >=16} 1730 | peerDependencies: 1731 | postcss: ^8.2 1732 | dependencies: 1733 | postcss: 8.4.20 1734 | postcss-value-parser: 4.2.0 1735 | dev: false 1736 | 1737 | /postcss-custom-selectors/6.0.3_postcss@8.4.20: 1738 | resolution: {integrity: sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==} 1739 | engines: {node: ^12 || ^14 || >=16} 1740 | peerDependencies: 1741 | postcss: ^8.3 1742 | dependencies: 1743 | postcss: 8.4.20 1744 | postcss-selector-parser: 6.0.11 1745 | dev: false 1746 | 1747 | /postcss-dir-pseudo-class/6.0.5_postcss@8.4.20: 1748 | resolution: {integrity: sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==} 1749 | engines: {node: ^12 || ^14 || >=16} 1750 | peerDependencies: 1751 | postcss: ^8.2 1752 | dependencies: 1753 | postcss: 8.4.20 1754 | postcss-selector-parser: 6.0.11 1755 | dev: false 1756 | 1757 | /postcss-double-position-gradients/3.1.2_postcss@8.4.20: 1758 | resolution: {integrity: sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==} 1759 | engines: {node: ^12 || ^14 || >=16} 1760 | peerDependencies: 1761 | postcss: ^8.2 1762 | dependencies: 1763 | '@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.20 1764 | postcss: 8.4.20 1765 | postcss-value-parser: 4.2.0 1766 | dev: false 1767 | 1768 | /postcss-env-function/4.0.6_postcss@8.4.20: 1769 | resolution: {integrity: sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==} 1770 | engines: {node: ^12 || ^14 || >=16} 1771 | peerDependencies: 1772 | postcss: ^8.4 1773 | dependencies: 1774 | postcss: 8.4.20 1775 | postcss-value-parser: 4.2.0 1776 | dev: false 1777 | 1778 | /postcss-focus-visible/6.0.4_postcss@8.4.20: 1779 | resolution: {integrity: sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==} 1780 | engines: {node: ^12 || ^14 || >=16} 1781 | peerDependencies: 1782 | postcss: ^8.4 1783 | dependencies: 1784 | postcss: 8.4.20 1785 | postcss-selector-parser: 6.0.11 1786 | dev: false 1787 | 1788 | /postcss-focus-within/5.0.4_postcss@8.4.20: 1789 | resolution: {integrity: sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==} 1790 | engines: {node: ^12 || ^14 || >=16} 1791 | peerDependencies: 1792 | postcss: ^8.4 1793 | dependencies: 1794 | postcss: 8.4.20 1795 | postcss-selector-parser: 6.0.11 1796 | dev: false 1797 | 1798 | /postcss-font-variant/5.0.0_postcss@8.4.20: 1799 | resolution: {integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==} 1800 | peerDependencies: 1801 | postcss: ^8.1.0 1802 | dependencies: 1803 | postcss: 8.4.20 1804 | dev: false 1805 | 1806 | /postcss-gap-properties/3.0.5_postcss@8.4.20: 1807 | resolution: {integrity: sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==} 1808 | engines: {node: ^12 || ^14 || >=16} 1809 | peerDependencies: 1810 | postcss: ^8.2 1811 | dependencies: 1812 | postcss: 8.4.20 1813 | dev: false 1814 | 1815 | /postcss-image-set-function/4.0.7_postcss@8.4.20: 1816 | resolution: {integrity: sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==} 1817 | engines: {node: ^12 || ^14 || >=16} 1818 | peerDependencies: 1819 | postcss: ^8.2 1820 | dependencies: 1821 | postcss: 8.4.20 1822 | postcss-value-parser: 4.2.0 1823 | dev: false 1824 | 1825 | /postcss-initial/4.0.1_postcss@8.4.20: 1826 | resolution: {integrity: sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==} 1827 | peerDependencies: 1828 | postcss: ^8.0.0 1829 | dependencies: 1830 | postcss: 8.4.20 1831 | dev: false 1832 | 1833 | /postcss-lab-function/4.2.1_postcss@8.4.20: 1834 | resolution: {integrity: sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==} 1835 | engines: {node: ^12 || ^14 || >=16} 1836 | peerDependencies: 1837 | postcss: ^8.2 1838 | dependencies: 1839 | '@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.20 1840 | postcss: 8.4.20 1841 | postcss-value-parser: 4.2.0 1842 | dev: false 1843 | 1844 | /postcss-load-config/4.0.1_postcss@8.4.20: 1845 | resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} 1846 | engines: {node: '>= 14'} 1847 | peerDependencies: 1848 | postcss: '>=8.0.9' 1849 | ts-node: '>=9.0.0' 1850 | peerDependenciesMeta: 1851 | postcss: 1852 | optional: true 1853 | ts-node: 1854 | optional: true 1855 | dependencies: 1856 | lilconfig: 2.0.6 1857 | postcss: 8.4.20 1858 | yaml: 2.1.3 1859 | dev: true 1860 | 1861 | /postcss-logical/5.0.4_postcss@8.4.20: 1862 | resolution: {integrity: sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==} 1863 | engines: {node: ^12 || ^14 || >=16} 1864 | peerDependencies: 1865 | postcss: ^8.4 1866 | dependencies: 1867 | postcss: 8.4.20 1868 | dev: false 1869 | 1870 | /postcss-media-minmax/5.0.0_postcss@8.4.20: 1871 | resolution: {integrity: sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==} 1872 | engines: {node: '>=10.0.0'} 1873 | peerDependencies: 1874 | postcss: ^8.1.0 1875 | dependencies: 1876 | postcss: 8.4.20 1877 | dev: false 1878 | 1879 | /postcss-nesting/10.2.0_postcss@8.4.20: 1880 | resolution: {integrity: sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==} 1881 | engines: {node: ^12 || ^14 || >=16} 1882 | peerDependencies: 1883 | postcss: ^8.2 1884 | dependencies: 1885 | '@csstools/selector-specificity': 2.0.2_2xshye3abirqjlplmebvmaxyna 1886 | postcss: 8.4.20 1887 | postcss-selector-parser: 6.0.11 1888 | dev: false 1889 | 1890 | /postcss-opacity-percentage/1.1.2: 1891 | resolution: {integrity: sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==} 1892 | engines: {node: ^12 || ^14 || >=16} 1893 | dev: false 1894 | 1895 | /postcss-overflow-shorthand/3.0.4_postcss@8.4.20: 1896 | resolution: {integrity: sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==} 1897 | engines: {node: ^12 || ^14 || >=16} 1898 | peerDependencies: 1899 | postcss: ^8.2 1900 | dependencies: 1901 | postcss: 8.4.20 1902 | postcss-value-parser: 4.2.0 1903 | dev: false 1904 | 1905 | /postcss-page-break/3.0.4_postcss@8.4.20: 1906 | resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==} 1907 | peerDependencies: 1908 | postcss: ^8 1909 | dependencies: 1910 | postcss: 8.4.20 1911 | dev: false 1912 | 1913 | /postcss-place/7.0.5_postcss@8.4.20: 1914 | resolution: {integrity: sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==} 1915 | engines: {node: ^12 || ^14 || >=16} 1916 | peerDependencies: 1917 | postcss: ^8.2 1918 | dependencies: 1919 | postcss: 8.4.20 1920 | postcss-value-parser: 4.2.0 1921 | dev: false 1922 | 1923 | /postcss-preset-env/7.8.3_postcss@8.4.20: 1924 | resolution: {integrity: sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==} 1925 | engines: {node: ^12 || ^14 || >=16} 1926 | peerDependencies: 1927 | postcss: ^8.2 1928 | dependencies: 1929 | '@csstools/postcss-cascade-layers': 1.1.1_postcss@8.4.20 1930 | '@csstools/postcss-color-function': 1.1.1_postcss@8.4.20 1931 | '@csstools/postcss-font-format-keywords': 1.0.1_postcss@8.4.20 1932 | '@csstools/postcss-hwb-function': 1.0.2_postcss@8.4.20 1933 | '@csstools/postcss-ic-unit': 1.0.1_postcss@8.4.20 1934 | '@csstools/postcss-is-pseudo-class': 2.0.7_postcss@8.4.20 1935 | '@csstools/postcss-nested-calc': 1.0.0_postcss@8.4.20 1936 | '@csstools/postcss-normalize-display-values': 1.0.1_postcss@8.4.20 1937 | '@csstools/postcss-oklab-function': 1.1.1_postcss@8.4.20 1938 | '@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.20 1939 | '@csstools/postcss-stepped-value-functions': 1.0.1_postcss@8.4.20 1940 | '@csstools/postcss-text-decoration-shorthand': 1.0.0_postcss@8.4.20 1941 | '@csstools/postcss-trigonometric-functions': 1.0.2_postcss@8.4.20 1942 | '@csstools/postcss-unset-value': 1.0.2_postcss@8.4.20 1943 | autoprefixer: 10.4.13_postcss@8.4.20 1944 | browserslist: 4.21.4 1945 | css-blank-pseudo: 3.0.3_postcss@8.4.20 1946 | css-has-pseudo: 3.0.4_postcss@8.4.20 1947 | css-prefers-color-scheme: 6.0.3_postcss@8.4.20 1948 | cssdb: 7.2.0 1949 | postcss: 8.4.20 1950 | postcss-attribute-case-insensitive: 5.0.2_postcss@8.4.20 1951 | postcss-clamp: 4.1.0_postcss@8.4.20 1952 | postcss-color-functional-notation: 4.2.4_postcss@8.4.20 1953 | postcss-color-hex-alpha: 8.0.4_postcss@8.4.20 1954 | postcss-color-rebeccapurple: 7.1.1_postcss@8.4.20 1955 | postcss-custom-media: 8.0.2_postcss@8.4.20 1956 | postcss-custom-properties: 12.1.11_postcss@8.4.20 1957 | postcss-custom-selectors: 6.0.3_postcss@8.4.20 1958 | postcss-dir-pseudo-class: 6.0.5_postcss@8.4.20 1959 | postcss-double-position-gradients: 3.1.2_postcss@8.4.20 1960 | postcss-env-function: 4.0.6_postcss@8.4.20 1961 | postcss-focus-visible: 6.0.4_postcss@8.4.20 1962 | postcss-focus-within: 5.0.4_postcss@8.4.20 1963 | postcss-font-variant: 5.0.0_postcss@8.4.20 1964 | postcss-gap-properties: 3.0.5_postcss@8.4.20 1965 | postcss-image-set-function: 4.0.7_postcss@8.4.20 1966 | postcss-initial: 4.0.1_postcss@8.4.20 1967 | postcss-lab-function: 4.2.1_postcss@8.4.20 1968 | postcss-logical: 5.0.4_postcss@8.4.20 1969 | postcss-media-minmax: 5.0.0_postcss@8.4.20 1970 | postcss-nesting: 10.2.0_postcss@8.4.20 1971 | postcss-opacity-percentage: 1.1.2 1972 | postcss-overflow-shorthand: 3.0.4_postcss@8.4.20 1973 | postcss-page-break: 3.0.4_postcss@8.4.20 1974 | postcss-place: 7.0.5_postcss@8.4.20 1975 | postcss-pseudo-class-any-link: 7.1.6_postcss@8.4.20 1976 | postcss-replace-overflow-wrap: 4.0.0_postcss@8.4.20 1977 | postcss-selector-not: 6.0.1_postcss@8.4.20 1978 | postcss-value-parser: 4.2.0 1979 | dev: false 1980 | 1981 | /postcss-pseudo-class-any-link/7.1.6_postcss@8.4.20: 1982 | resolution: {integrity: sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==} 1983 | engines: {node: ^12 || ^14 || >=16} 1984 | peerDependencies: 1985 | postcss: ^8.2 1986 | dependencies: 1987 | postcss: 8.4.20 1988 | postcss-selector-parser: 6.0.11 1989 | dev: false 1990 | 1991 | /postcss-replace-overflow-wrap/4.0.0_postcss@8.4.20: 1992 | resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==} 1993 | peerDependencies: 1994 | postcss: ^8.0.3 1995 | dependencies: 1996 | postcss: 8.4.20 1997 | dev: false 1998 | 1999 | /postcss-selector-not/6.0.1_postcss@8.4.20: 2000 | resolution: {integrity: sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==} 2001 | engines: {node: ^12 || ^14 || >=16} 2002 | peerDependencies: 2003 | postcss: ^8.2 2004 | dependencies: 2005 | postcss: 8.4.20 2006 | postcss-selector-parser: 6.0.11 2007 | dev: false 2008 | 2009 | /postcss-selector-parser/6.0.11: 2010 | resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} 2011 | engines: {node: '>=4'} 2012 | dependencies: 2013 | cssesc: 3.0.0 2014 | util-deprecate: 1.0.2 2015 | dev: false 2016 | 2017 | /postcss-simple-vars/7.0.1_postcss@8.4.20: 2018 | resolution: {integrity: sha512-5GLLXaS8qmzHMOjVxqkk1TZPf1jMqesiI7qLhnlyERalG0sMbHIbJqrcnrpmZdKCLglHnRHoEBB61RtGTsj++A==} 2019 | engines: {node: '>=14.0'} 2020 | peerDependencies: 2021 | postcss: ^8.2.1 2022 | dependencies: 2023 | postcss: 8.4.20 2024 | dev: false 2025 | 2026 | /postcss-value-parser/4.2.0: 2027 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 2028 | 2029 | /postcss/8.4.20: 2030 | resolution: {integrity: sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==} 2031 | engines: {node: ^10 || ^12 || >=14} 2032 | dependencies: 2033 | nanoid: 3.3.4 2034 | picocolors: 1.0.0 2035 | source-map-js: 1.0.2 2036 | 2037 | /prelude-ls/1.2.1: 2038 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 2039 | engines: {node: '>= 0.8.0'} 2040 | dev: true 2041 | 2042 | /prettier-plugin-svelte/2.9.0_ajxj753sv7dbwexjherrch25ta: 2043 | resolution: {integrity: sha512-3doBi5NO4IVgaNPtwewvrgPpqAcvNv0NwJNflr76PIGgi9nf1oguQV1Hpdm9TI2ALIQVn/9iIwLpBO5UcD2Jiw==} 2044 | peerDependencies: 2045 | prettier: ^1.16.4 || ^2.0.0 2046 | svelte: ^3.2.0 2047 | dependencies: 2048 | prettier: 2.8.1 2049 | svelte: 3.55.0 2050 | dev: true 2051 | 2052 | /prettier/2.8.1: 2053 | resolution: {integrity: sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==} 2054 | engines: {node: '>=10.13.0'} 2055 | hasBin: true 2056 | dev: true 2057 | 2058 | /punycode/2.1.1: 2059 | resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} 2060 | engines: {node: '>=6'} 2061 | dev: true 2062 | 2063 | /queue-microtask/1.2.3: 2064 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 2065 | dev: true 2066 | 2067 | /readdirp/3.6.0: 2068 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 2069 | engines: {node: '>=8.10.0'} 2070 | dependencies: 2071 | picomatch: 2.3.1 2072 | dev: true 2073 | 2074 | /regexpp/3.2.0: 2075 | resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} 2076 | engines: {node: '>=8'} 2077 | dev: true 2078 | 2079 | /resolve-from/4.0.0: 2080 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 2081 | engines: {node: '>=4'} 2082 | dev: true 2083 | 2084 | /resolve/1.22.1: 2085 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 2086 | hasBin: true 2087 | dependencies: 2088 | is-core-module: 2.11.0 2089 | path-parse: 1.0.7 2090 | supports-preserve-symlinks-flag: 1.0.0 2091 | dev: true 2092 | 2093 | /reusify/1.0.4: 2094 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 2095 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 2096 | dev: true 2097 | 2098 | /rimraf/2.7.1: 2099 | resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} 2100 | hasBin: true 2101 | dependencies: 2102 | glob: 7.2.3 2103 | dev: true 2104 | 2105 | /rimraf/3.0.2: 2106 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 2107 | hasBin: true 2108 | dependencies: 2109 | glob: 7.2.3 2110 | dev: true 2111 | 2112 | /rollup/3.7.4: 2113 | resolution: {integrity: sha512-jN9rx3k5pfg9H9al0r0y1EYKSeiRANZRYX32SuNXAnKzh6cVyf4LZVto1KAuDnbHT03E1CpsgqDKaqQ8FZtgxw==} 2114 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 2115 | hasBin: true 2116 | optionalDependencies: 2117 | fsevents: 2.3.2 2118 | dev: true 2119 | 2120 | /run-parallel/1.2.0: 2121 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 2122 | dependencies: 2123 | queue-microtask: 1.2.3 2124 | dev: true 2125 | 2126 | /sade/1.8.1: 2127 | resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} 2128 | engines: {node: '>=6'} 2129 | dependencies: 2130 | mri: 1.2.0 2131 | dev: true 2132 | 2133 | /sander/0.5.1: 2134 | resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} 2135 | dependencies: 2136 | es6-promise: 3.3.1 2137 | graceful-fs: 4.2.10 2138 | mkdirp: 0.5.6 2139 | rimraf: 2.7.1 2140 | dev: true 2141 | 2142 | /semver/7.3.8: 2143 | resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} 2144 | engines: {node: '>=10'} 2145 | hasBin: true 2146 | dependencies: 2147 | lru-cache: 6.0.0 2148 | dev: true 2149 | 2150 | /set-cookie-parser/2.5.1: 2151 | resolution: {integrity: sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==} 2152 | dev: true 2153 | 2154 | /shebang-command/2.0.0: 2155 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 2156 | engines: {node: '>=8'} 2157 | dependencies: 2158 | shebang-regex: 3.0.0 2159 | dev: true 2160 | 2161 | /shebang-regex/3.0.0: 2162 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 2163 | engines: {node: '>=8'} 2164 | dev: true 2165 | 2166 | /sirv/2.0.2: 2167 | resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==} 2168 | engines: {node: '>= 10'} 2169 | dependencies: 2170 | '@polka/url': 1.0.0-next.21 2171 | mrmime: 1.0.1 2172 | totalist: 3.0.0 2173 | dev: true 2174 | 2175 | /slash/3.0.0: 2176 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 2177 | engines: {node: '>=8'} 2178 | dev: true 2179 | 2180 | /sorcery/0.10.0: 2181 | resolution: {integrity: sha512-R5ocFmKZQFfSTstfOtHjJuAwbpGyf9qjQa1egyhvXSbM7emjrtLXtGdZsDJDABC85YBfVvrOiGWKSYXPKdvP1g==} 2182 | hasBin: true 2183 | dependencies: 2184 | buffer-crc32: 0.2.13 2185 | minimist: 1.2.7 2186 | sander: 0.5.1 2187 | sourcemap-codec: 1.4.8 2188 | dev: true 2189 | 2190 | /source-map-js/1.0.2: 2191 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 2192 | engines: {node: '>=0.10.0'} 2193 | 2194 | /source-map/0.6.1: 2195 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 2196 | engines: {node: '>=0.10.0'} 2197 | dev: true 2198 | 2199 | /sourcemap-codec/1.4.8: 2200 | resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 2201 | deprecated: Please use @jridgewell/sourcemap-codec instead 2202 | dev: true 2203 | 2204 | /streamsearch/1.1.0: 2205 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 2206 | engines: {node: '>=10.0.0'} 2207 | dev: true 2208 | 2209 | /strip-ansi/6.0.1: 2210 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 2211 | engines: {node: '>=8'} 2212 | dependencies: 2213 | ansi-regex: 5.0.1 2214 | dev: true 2215 | 2216 | /strip-indent/3.0.0: 2217 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 2218 | engines: {node: '>=8'} 2219 | dependencies: 2220 | min-indent: 1.0.1 2221 | dev: true 2222 | 2223 | /strip-json-comments/3.1.1: 2224 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 2225 | engines: {node: '>=8'} 2226 | dev: true 2227 | 2228 | /strip-literal/1.0.0: 2229 | resolution: {integrity: sha512-5o4LsH1lzBzO9UFH63AJ2ad2/S2AVx6NtjOcaz+VTT2h1RiRvbipW72z8M/lxEhcPHDBQwpDrnTF7sXy/7OwCQ==} 2230 | dependencies: 2231 | acorn: 8.8.1 2232 | dev: true 2233 | 2234 | /supports-color/7.2.0: 2235 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 2236 | engines: {node: '>=8'} 2237 | dependencies: 2238 | has-flag: 4.0.0 2239 | dev: true 2240 | 2241 | /supports-preserve-symlinks-flag/1.0.0: 2242 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 2243 | engines: {node: '>= 0.4'} 2244 | dev: true 2245 | 2246 | /svelte-check/2.10.2_7tgmgw23w4ankk7vtabgm5xtbu: 2247 | resolution: {integrity: sha512-h1Tuiir0m8J5yqN+Vx6qgKKk1L871e6a9o7rMwVWfu8Qs6Wg7x2R+wcxS3SO3VpW5JCxCat90rxPsZMYgz+HaQ==} 2248 | hasBin: true 2249 | peerDependencies: 2250 | svelte: ^3.24.0 2251 | dependencies: 2252 | '@jridgewell/trace-mapping': 0.3.17 2253 | chokidar: 3.5.3 2254 | fast-glob: 3.2.12 2255 | import-fresh: 3.3.0 2256 | picocolors: 1.0.0 2257 | sade: 1.8.1 2258 | svelte: 3.55.0 2259 | svelte-preprocess: 4.10.7_4pbnl6cqae4gmabfifuvcfaifu 2260 | typescript: 4.9.4 2261 | transitivePeerDependencies: 2262 | - '@babel/core' 2263 | - coffeescript 2264 | - less 2265 | - node-sass 2266 | - postcss 2267 | - postcss-load-config 2268 | - pug 2269 | - sass 2270 | - stylus 2271 | - sugarss 2272 | dev: true 2273 | 2274 | /svelte-hmr/0.15.1_svelte@3.55.0: 2275 | resolution: {integrity: sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==} 2276 | engines: {node: ^12.20 || ^14.13.1 || >= 16} 2277 | peerDependencies: 2278 | svelte: '>=3.19.0' 2279 | dependencies: 2280 | svelte: 3.55.0 2281 | dev: true 2282 | 2283 | /svelte-preprocess/4.10.7_4pbnl6cqae4gmabfifuvcfaifu: 2284 | resolution: {integrity: sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw==} 2285 | engines: {node: '>= 9.11.2'} 2286 | requiresBuild: true 2287 | peerDependencies: 2288 | '@babel/core': ^7.10.2 2289 | coffeescript: ^2.5.1 2290 | less: ^3.11.3 || ^4.0.0 2291 | node-sass: '*' 2292 | postcss: ^7 || ^8 2293 | postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 2294 | pug: ^3.0.0 2295 | sass: ^1.26.8 2296 | stylus: ^0.55.0 2297 | sugarss: ^2.0.0 2298 | svelte: ^3.23.0 2299 | typescript: ^3.9.5 || ^4.0.0 2300 | peerDependenciesMeta: 2301 | '@babel/core': 2302 | optional: true 2303 | coffeescript: 2304 | optional: true 2305 | less: 2306 | optional: true 2307 | node-sass: 2308 | optional: true 2309 | postcss: 2310 | optional: true 2311 | postcss-load-config: 2312 | optional: true 2313 | pug: 2314 | optional: true 2315 | sass: 2316 | optional: true 2317 | stylus: 2318 | optional: true 2319 | sugarss: 2320 | optional: true 2321 | typescript: 2322 | optional: true 2323 | dependencies: 2324 | '@types/pug': 2.0.6 2325 | '@types/sass': 1.43.1 2326 | detect-indent: 6.1.0 2327 | magic-string: 0.25.9 2328 | postcss: 8.4.20 2329 | postcss-load-config: 4.0.1_postcss@8.4.20 2330 | sorcery: 0.10.0 2331 | strip-indent: 3.0.0 2332 | svelte: 3.55.0 2333 | typescript: 4.9.4 2334 | dev: true 2335 | 2336 | /svelte-preprocess/5.0.0_4pbnl6cqae4gmabfifuvcfaifu: 2337 | resolution: {integrity: sha512-q7lpa7i2FBu8Pa+G0MmuQQWETBwCKgsGmuq1Sf6n8q4uaG9ZLcLP0Y+etC6bF4sE6EbLxfiI38zV6RfPe3RSfg==} 2338 | engines: {node: '>= 14.10.0'} 2339 | requiresBuild: true 2340 | peerDependencies: 2341 | '@babel/core': ^7.10.2 2342 | coffeescript: ^2.5.1 2343 | less: ^3.11.3 || ^4.0.0 2344 | postcss: ^7 || ^8 2345 | postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 2346 | pug: ^3.0.0 2347 | sass: ^1.26.8 2348 | stylus: ^0.55.0 2349 | sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 2350 | svelte: ^3.23.0 2351 | typescript: ^3.9.5 || ^4.0.0 2352 | peerDependenciesMeta: 2353 | '@babel/core': 2354 | optional: true 2355 | coffeescript: 2356 | optional: true 2357 | less: 2358 | optional: true 2359 | postcss: 2360 | optional: true 2361 | postcss-load-config: 2362 | optional: true 2363 | pug: 2364 | optional: true 2365 | sass: 2366 | optional: true 2367 | stylus: 2368 | optional: true 2369 | sugarss: 2370 | optional: true 2371 | typescript: 2372 | optional: true 2373 | dependencies: 2374 | '@types/pug': 2.0.6 2375 | '@types/sass': 1.43.1 2376 | detect-indent: 6.1.0 2377 | magic-string: 0.27.0 2378 | postcss: 8.4.20 2379 | postcss-load-config: 4.0.1_postcss@8.4.20 2380 | sorcery: 0.10.0 2381 | strip-indent: 3.0.0 2382 | svelte: 3.55.0 2383 | typescript: 4.9.4 2384 | dev: true 2385 | 2386 | /svelte/3.55.0: 2387 | resolution: {integrity: sha512-uGu2FVMlOuey4JoKHKrpZFkoYyj0VLjJdz47zX5+gVK5odxHM40RVhar9/iK2YFRVxvfg9FkhfVlR0sjeIrOiA==} 2388 | engines: {node: '>= 8'} 2389 | dev: true 2390 | 2391 | /text-table/0.2.0: 2392 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 2393 | dev: true 2394 | 2395 | /tiny-glob/0.2.9: 2396 | resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} 2397 | dependencies: 2398 | globalyzer: 0.1.0 2399 | globrex: 0.1.2 2400 | dev: true 2401 | 2402 | /tinybench/2.3.1: 2403 | resolution: {integrity: sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==} 2404 | dev: true 2405 | 2406 | /tinypool/0.3.0: 2407 | resolution: {integrity: sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==} 2408 | engines: {node: '>=14.0.0'} 2409 | dev: true 2410 | 2411 | /tinyspy/1.0.2: 2412 | resolution: {integrity: sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q==} 2413 | engines: {node: '>=14.0.0'} 2414 | dev: true 2415 | 2416 | /to-regex-range/5.0.1: 2417 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2418 | engines: {node: '>=8.0'} 2419 | dependencies: 2420 | is-number: 7.0.0 2421 | dev: true 2422 | 2423 | /totalist/3.0.0: 2424 | resolution: {integrity: sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==} 2425 | engines: {node: '>=6'} 2426 | dev: true 2427 | 2428 | /tslib/1.14.1: 2429 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} 2430 | dev: true 2431 | 2432 | /tslib/2.4.1: 2433 | resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} 2434 | dev: true 2435 | 2436 | /tsutils/3.21.0_typescript@4.9.4: 2437 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} 2438 | engines: {node: '>= 6'} 2439 | peerDependencies: 2440 | 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' 2441 | dependencies: 2442 | tslib: 1.14.1 2443 | typescript: 4.9.4 2444 | dev: true 2445 | 2446 | /type-check/0.4.0: 2447 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 2448 | engines: {node: '>= 0.8.0'} 2449 | dependencies: 2450 | prelude-ls: 1.2.1 2451 | dev: true 2452 | 2453 | /type-detect/4.0.8: 2454 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} 2455 | engines: {node: '>=4'} 2456 | dev: true 2457 | 2458 | /type-fest/0.20.2: 2459 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 2460 | engines: {node: '>=10'} 2461 | dev: true 2462 | 2463 | /typescript/4.9.4: 2464 | resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==} 2465 | engines: {node: '>=4.2.0'} 2466 | hasBin: true 2467 | dev: true 2468 | 2469 | /undici/5.14.0: 2470 | resolution: {integrity: sha512-yJlHYw6yXPPsuOH0x2Ib1Km61vu4hLiRRQoafs+WUgX1vO64vgnxiCEN9dpIrhZyHFsai3F0AEj4P9zy19enEQ==} 2471 | engines: {node: '>=12.18'} 2472 | dependencies: 2473 | busboy: 1.6.0 2474 | dev: true 2475 | 2476 | /update-browserslist-db/1.0.10_browserslist@4.21.4: 2477 | resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} 2478 | hasBin: true 2479 | peerDependencies: 2480 | browserslist: '>= 4.21.0' 2481 | dependencies: 2482 | browserslist: 4.21.4 2483 | escalade: 3.1.1 2484 | picocolors: 1.0.0 2485 | 2486 | /uri-js/4.4.1: 2487 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 2488 | dependencies: 2489 | punycode: 2.1.1 2490 | dev: true 2491 | 2492 | /util-deprecate/1.0.2: 2493 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 2494 | dev: false 2495 | 2496 | /vite/4.0.1: 2497 | resolution: {integrity: sha512-kZQPzbDau35iWOhy3CpkrRC7It+HIHtulAzBhMqzGHKRf/4+vmh8rPDDdv98SWQrFWo6//3ozwsRmwQIPZsK9g==} 2498 | engines: {node: ^14.18.0 || >=16.0.0} 2499 | hasBin: true 2500 | peerDependencies: 2501 | '@types/node': '>= 14' 2502 | less: '*' 2503 | sass: '*' 2504 | stylus: '*' 2505 | sugarss: '*' 2506 | terser: ^5.4.0 2507 | peerDependenciesMeta: 2508 | '@types/node': 2509 | optional: true 2510 | less: 2511 | optional: true 2512 | sass: 2513 | optional: true 2514 | stylus: 2515 | optional: true 2516 | sugarss: 2517 | optional: true 2518 | terser: 2519 | optional: true 2520 | dependencies: 2521 | esbuild: 0.16.6 2522 | postcss: 8.4.20 2523 | resolve: 1.22.1 2524 | rollup: 3.7.4 2525 | optionalDependencies: 2526 | fsevents: 2.3.2 2527 | dev: true 2528 | 2529 | /vite/4.0.1_@types+node@18.11.15: 2530 | resolution: {integrity: sha512-kZQPzbDau35iWOhy3CpkrRC7It+HIHtulAzBhMqzGHKRf/4+vmh8rPDDdv98SWQrFWo6//3ozwsRmwQIPZsK9g==} 2531 | engines: {node: ^14.18.0 || >=16.0.0} 2532 | hasBin: true 2533 | peerDependencies: 2534 | '@types/node': '>= 14' 2535 | less: '*' 2536 | sass: '*' 2537 | stylus: '*' 2538 | sugarss: '*' 2539 | terser: ^5.4.0 2540 | peerDependenciesMeta: 2541 | '@types/node': 2542 | optional: true 2543 | less: 2544 | optional: true 2545 | sass: 2546 | optional: true 2547 | stylus: 2548 | optional: true 2549 | sugarss: 2550 | optional: true 2551 | terser: 2552 | optional: true 2553 | dependencies: 2554 | '@types/node': 18.11.15 2555 | esbuild: 0.16.6 2556 | postcss: 8.4.20 2557 | resolve: 1.22.1 2558 | rollup: 3.7.4 2559 | optionalDependencies: 2560 | fsevents: 2.3.2 2561 | dev: true 2562 | 2563 | /vitefu/0.2.3_vite@4.0.1: 2564 | resolution: {integrity: sha512-75l7TTuU8isAhz1QFtNKjDkqjxvndfMC1AfIMjJ0ZQ59ZD0Ow9QOIsJJX16Wv9PS8f+zMzp6fHy5cCbKG/yVUQ==} 2565 | peerDependencies: 2566 | vite: ^3.0.0 || ^4.0.0 2567 | peerDependenciesMeta: 2568 | vite: 2569 | optional: true 2570 | dependencies: 2571 | vite: 4.0.1 2572 | dev: true 2573 | 2574 | /vitest/0.25.8: 2575 | resolution: {integrity: sha512-X75TApG2wZTJn299E/TIYevr4E9/nBo1sUtZzn0Ci5oK8qnpZAZyhwg0qCeMSakGIWtc6oRwcQFyFfW14aOFWg==} 2576 | engines: {node: '>=v14.16.0'} 2577 | hasBin: true 2578 | peerDependencies: 2579 | '@edge-runtime/vm': '*' 2580 | '@vitest/browser': '*' 2581 | '@vitest/ui': '*' 2582 | happy-dom: '*' 2583 | jsdom: '*' 2584 | peerDependenciesMeta: 2585 | '@edge-runtime/vm': 2586 | optional: true 2587 | '@vitest/browser': 2588 | optional: true 2589 | '@vitest/ui': 2590 | optional: true 2591 | happy-dom: 2592 | optional: true 2593 | jsdom: 2594 | optional: true 2595 | dependencies: 2596 | '@types/chai': 4.3.4 2597 | '@types/chai-subset': 1.3.3 2598 | '@types/node': 18.11.15 2599 | acorn: 8.8.1 2600 | acorn-walk: 8.2.0 2601 | chai: 4.3.7 2602 | debug: 4.3.4 2603 | local-pkg: 0.4.2 2604 | source-map: 0.6.1 2605 | strip-literal: 1.0.0 2606 | tinybench: 2.3.1 2607 | tinypool: 0.3.0 2608 | tinyspy: 1.0.2 2609 | vite: 4.0.1_@types+node@18.11.15 2610 | transitivePeerDependencies: 2611 | - less 2612 | - sass 2613 | - stylus 2614 | - sugarss 2615 | - supports-color 2616 | - terser 2617 | dev: true 2618 | 2619 | /which/2.0.2: 2620 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2621 | engines: {node: '>= 8'} 2622 | hasBin: true 2623 | dependencies: 2624 | isexe: 2.0.0 2625 | dev: true 2626 | 2627 | /word-wrap/1.2.3: 2628 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} 2629 | engines: {node: '>=0.10.0'} 2630 | dev: true 2631 | 2632 | /wrappy/1.0.2: 2633 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 2634 | dev: true 2635 | 2636 | /yallist/4.0.0: 2637 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 2638 | dev: true 2639 | 2640 | /yaml/2.1.3: 2641 | resolution: {integrity: sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg==} 2642 | engines: {node: '>= 14'} 2643 | dev: true 2644 | 2645 | /yocto-queue/0.1.0: 2646 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2647 | engines: {node: '>=10'} 2648 | dev: true 2649 | -------------------------------------------------------------------------------- /postcss.config.cjs: -------------------------------------------------------------------------------- 1 | const autoprefixer = require("autoprefixer"); 2 | 3 | const config = { 4 | plugins: [ 5 | require("postcss-simple-vars"), 6 | autoprefixer, 7 | require("postcss-preset-env")({ 8 | stage: 1, 9 | }), 10 | ], 11 | }; 12 | 13 | module.exports = config; 14 | -------------------------------------------------------------------------------- /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 | // See https://kit.svelte.dev/docs/types#app 2 | // for information about these interfaces 3 | // and what to do when importing types 4 | 5 | type User = { 6 | id: number 7 | email: string 8 | role: string 9 | } 10 | 11 | declare namespace App { 12 | // interface Error {} 13 | interface Locals { 14 | user: User | null 15 | } 16 | // interface PageData {} 17 | // interface Platform {} 18 | } 19 | -------------------------------------------------------------------------------- /src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | %sveltekit.head% 8 | 9 | 10 |
%sveltekit.body%
11 | 12 | 13 | -------------------------------------------------------------------------------- /src/app.postcss: -------------------------------------------------------------------------------- 1 | @import 'global.postcss'; 2 | 3 | $dark-300: hsl(213, 24%, 7%); 4 | $dark-200: hsl(222, 15%, 13%); 5 | $dark-100: hsl(222, 15%, 19%); 6 | $primary-300: hsl(149, 77%, 46%); 7 | $primary-200: hsl(149, 77%, 56%); 8 | $primary-100: hsl(149, 77%, 66%); 9 | $secondary-300: hsl(289, 90%, 53%); 10 | $secondary-200: hsl(289, 90%, 63%); 11 | $secondary-100: hsl(289, 90%, 73%); 12 | $gray: hsl(212, 15%, 48%); 13 | 14 | body { 15 | background: $dark-200; 16 | color: #ffffff; 17 | font-size: 18px; 18 | } 19 | 20 | main { 21 | padding: 2rem; 22 | text-align: center; 23 | } 24 | 25 | .container { 26 | display: flex; 27 | flex-direction: column; 28 | align-items: center; 29 | height: 100vh; 30 | padding: 0 20px; 31 | } 32 | 33 | .button-container { 34 | display: flex; 35 | justify-content: center; 36 | align-items: center; 37 | margin-top: 1rem; 38 | gap: 1rem; 39 | } 40 | 41 | .card { 42 | display: flex; 43 | flex-direction: column; 44 | margin: 0 auto; 45 | background-color: $dark-200; 46 | border-radius: 10px; 47 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); 48 | padding: 32px; 49 | } 50 | 51 | .btn { 52 | color: $dark-300; 53 | border: none; 54 | border-radius: 5px; 55 | padding: 8px 16px; 56 | font-size: 16px; 57 | cursor: pointer; 58 | transition: all 0.2s ease-in-out; 59 | 60 | &:hover { 61 | text-decoration: none; 62 | } 63 | } 64 | 65 | .btn-primary { 66 | background-color: $primary-200; 67 | color: $dark-300; 68 | 69 | &:hover { 70 | background-color: $primary-300; 71 | } 72 | } 73 | 74 | .btn-secondary { 75 | background-color: $secondary-200; 76 | color: $dark-300; 77 | 78 | &:hover { 79 | background-color: $secondary-300; 80 | } 81 | } 82 | 83 | input { 84 | background-color: $dark-100; 85 | border: $gray 2px solid; 86 | border-radius: 5px; 87 | padding: 8px 16px; 88 | color: #ffffff; 89 | font-size: 16px; 90 | margin-bottom: 20px; 91 | 92 | &:focus { 93 | outline: $primary-300 2px solid; 94 | } 95 | } 96 | 97 | .auth-form { 98 | display: flex; 99 | flex-direction: column; 100 | width: 100%; 101 | max-width: 400px; 102 | min-width: 400px; 103 | margin: 0 auto; 104 | 105 | & label { 106 | text-align: left; 107 | padding-bottom: 2px; 108 | font-size: 16px; 109 | } 110 | } 111 | 112 | .navbar { 113 | display: flex; 114 | align-items: center; 115 | justify-content: center; 116 | padding: 10px; 117 | gap: 1rem; 118 | border-bottom: 1px solid $gray; 119 | 120 | & .btn { 121 | padding: 5px 10px; 122 | font-size: 12px; 123 | background-color: inherit; 124 | border: 2px solid white; 125 | color: white; 126 | 127 | &:hover { 128 | background-color: $dark-100; 129 | } 130 | } 131 | } 132 | -------------------------------------------------------------------------------- /src/global.postcss: -------------------------------------------------------------------------------- 1 | /* Write your global styles here, in PostCSS syntax */ 2 | /* 3 | 1. Use a more-intuitive box-sizing model. 4 | */ 5 | *, 6 | *::before, 7 | *::after { 8 | box-sizing: border-box; 9 | } 10 | 11 | /* 12 | 2. Remove default margin 13 | */ 14 | * { 15 | margin: 0; 16 | } 17 | 18 | /* 19 | 3. Allow percentage-based heights in the application 20 | */ 21 | html, 22 | body { 23 | height: 100%; 24 | } 25 | 26 | /* 27 | Typographic tweaks! 28 | 4. Add accessible line-height 29 | 5. Improve text rendering 30 | */ 31 | body { 32 | line-height: 1.5; 33 | -webkit-font-smoothing: antialiased; 34 | font-family: sans-serif; 35 | } 36 | 37 | /* 38 | 6. Improve media defaults 39 | */ 40 | img, 41 | picture, 42 | video, 43 | canvas, 44 | svg { 45 | display: block; 46 | max-width: 100%; 47 | } 48 | 49 | /* 50 | 7. Remove built-in form typography styles 51 | */ 52 | input, 53 | button, 54 | textarea, 55 | select { 56 | font: inherit; 57 | } 58 | 59 | /* 60 | 8. Avoid text overflows 61 | */ 62 | 63 | @custom-selector :--heading h1, h2, h3, h4, h5, h6; 64 | :--heading { 65 | overflow-wrap: break-word; 66 | } 67 | 68 | a { 69 | text-decoration: none; 70 | color: inherit; 71 | } 72 | 73 | a:hover { 74 | text-decoration: underline; 75 | } 76 | 77 | /* 78 | 9. Create a root stacking context 79 | */ 80 | #root { 81 | isolation: isolate; 82 | } 83 | -------------------------------------------------------------------------------- /src/hooks.server.ts: -------------------------------------------------------------------------------- 1 | import type { Handle } from "@sveltejs/kit" 2 | 3 | export const handle: Handle = async ({ event, resolve }) => { 4 | return resolve(event) 5 | } 6 | -------------------------------------------------------------------------------- /src/index.test.ts: -------------------------------------------------------------------------------- 1 | import { describe, it, expect } from "vitest" 2 | 3 | describe("sum test", () => { 4 | it("adds 1 + 2 to equal 3", () => { 5 | expect(1 + 2).toBe(3) 6 | }) 7 | }) 8 | -------------------------------------------------------------------------------- /src/lib/server/auth.ts: -------------------------------------------------------------------------------- 1 | import type { RequestEvent } from "@sveltejs/kit" 2 | 3 | export const authenticateUser = (event: RequestEvent) => { 4 | // get the cookies from the request 5 | const { cookies } = event 6 | 7 | // get the user token from the cookie 8 | const userToken = cookies.get("auth") 9 | 10 | // if the user token is not valid, return null 11 | // this is where you would check the user token against your database 12 | // to see if it is valid and return the user object 13 | if (userToken === "regularusertoken") { 14 | const user = { 15 | id: 1, 16 | email: "user@example.com", 17 | role: "USER", 18 | } 19 | return user 20 | } 21 | if (userToken === "adminusertoken") { 22 | const user = { 23 | id: 2, 24 | email: "admin@example.com", 25 | role: "ADMIN", 26 | } 27 | return user 28 | } 29 | 30 | return null 31 | } 32 | -------------------------------------------------------------------------------- /src/routes/+layout.svelte: -------------------------------------------------------------------------------- 1 | 4 | 5 | 12 | 13 | -------------------------------------------------------------------------------- /src/routes/+page.server.ts: -------------------------------------------------------------------------------- 1 | import { redirect } from "@sveltejs/kit" 2 | import type { Actions, PageServerLoad } from "./$types" 3 | 4 | export const load: PageServerLoad = async () => {} 5 | 6 | export const actions: Actions = { 7 | login: async ({ cookies }) => { 8 | cookies.set("auth", "regularusertoken", { 9 | path: "/", 10 | httpOnly: true, 11 | sameSite: "strict", 12 | secure: process.env.NODE_ENV === "production", 13 | maxAge: 60 * 60 * 24 * 7, // 1 week 14 | }) 15 | 16 | throw redirect(303, "/") 17 | }, 18 | } 19 | -------------------------------------------------------------------------------- /src/routes/+page.svelte: -------------------------------------------------------------------------------- 1 |
2 |

SvelteKit Hooks

3 |

Let's learn how the handle hook works in SvelteKit!

4 |
5 |
6 | 7 |
8 | Protected 9 |
10 |
11 | -------------------------------------------------------------------------------- /src/routes/logout/+server.ts: -------------------------------------------------------------------------------- 1 | import { redirect } from "@sveltejs/kit" 2 | import type { RequestHandler } from "./$types" 3 | 4 | export const POST: RequestHandler = async ({ cookies }) => { 5 | cookies.delete("auth") 6 | throw redirect(303, "/") 7 | } 8 | -------------------------------------------------------------------------------- /src/routes/protected/+page.server.ts: -------------------------------------------------------------------------------- 1 | import type { PageServerLoad } from "./$types" 2 | 3 | export const load: PageServerLoad = async () => {} 4 | -------------------------------------------------------------------------------- /src/routes/protected/+page.svelte: -------------------------------------------------------------------------------- 1 |
2 |

Admin

3 |

Welcome to the admin panel

4 |
5 | Back 6 |
7 |
8 | -------------------------------------------------------------------------------- /src/routes/protected/item/+page.svelte: -------------------------------------------------------------------------------- 1 |
2 |

Protected Item

3 |

If you can see this item, you are authenticated!

4 |
5 | Home 6 |
7 |
8 | -------------------------------------------------------------------------------- /static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huntabyte/sveltekit-protected-routes/ac00940cd82090fcaf7434ad7c71f881f3285991/static/favicon.png -------------------------------------------------------------------------------- /svelte.config.js: -------------------------------------------------------------------------------- 1 | import preprocess from "svelte-preprocess"; 2 | import adapter from "@sveltejs/adapter-auto"; 3 | import { vitePreprocess } from "@sveltejs/kit/vite"; 4 | 5 | /** @type {import('@sveltejs/kit').Config} */ 6 | const config = { 7 | // Consult https://kit.svelte.dev/docs/integrations#preprocessors 8 | // for more information about preprocessors 9 | preprocess: [ 10 | vitePreprocess(), 11 | preprocess({ 12 | postcss: true, 13 | }), 14 | ], 15 | 16 | kit: { 17 | adapter: adapter(), 18 | }, 19 | }; 20 | 21 | export default config; 22 | -------------------------------------------------------------------------------- /tests/test.ts: -------------------------------------------------------------------------------- 1 | import { expect, test } from '@playwright/test'; 2 | 3 | test('index page has expected h1', async ({ page }) => { 4 | await page.goto('/'); 5 | expect(await page.textContent('h1')).toBe('Welcome to SvelteKit'); 6 | }); 7 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./.svelte-kit/tsconfig.json", 3 | "compilerOptions": { 4 | "allowJs": true, 5 | "checkJs": true, 6 | "esModuleInterop": true, 7 | "forceConsistentCasingInFileNames": true, 8 | "resolveJsonModule": true, 9 | "skipLibCheck": true, 10 | "sourceMap": true, 11 | "strict": true 12 | } 13 | // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias 14 | // 15 | // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes 16 | // from the referenced tsconfig.json - TypeScript does not merge them in 17 | } 18 | -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import { sveltekit } from '@sveltejs/kit/vite'; 2 | 3 | /** @type {import('vite').UserConfig} */ 4 | const config = { 5 | plugins: [sveltekit()], 6 | test: { 7 | include: ['src/**/*.{test,spec}.{js,ts}'] 8 | } 9 | }; 10 | 11 | export default config; 12 | --------------------------------------------------------------------------------