FastAPI & Piccolo Example Project
23 |24 | Visit kit.svelte.dev to read the documentation 25 |
26 | {#each products as product} 27 |{product.name}
28 | {/each} 29 |├── .dockerignore ├── .editorconfig ├── .gitignore ├── Makefile ├── README.md ├── docker-compose.dev.yml ├── frontend ├── .dockerignore ├── .gitignore ├── .npmrc ├── .prettierignore ├── .prettierrc ├── Dockerfile ├── Dockerfile.dev ├── README.md ├── jsconfig.json ├── package.json ├── pnpm-lock.yaml ├── postcss.config.cjs ├── src │ ├── app.html │ ├── app.postcss │ ├── global.d.ts │ ├── lib │ │ └── variables.js │ └── routes │ │ ├── __layout.svelte │ │ └── index.svelte ├── static │ └── favicon.png ├── svelte.config.js └── tailwind.config.cjs ├── piccolo-fastapi ├── Dockerfile ├── app.py ├── config.py ├── dependencies.py ├── entrypoint.sh ├── main.py ├── piccolo_conf.py ├── poetry.lock ├── product │ ├── __init__.py │ ├── models.py │ ├── piccolo_app.py │ ├── piccolo_migrations │ │ ├── 2021-06-22T00-35-24.py │ │ └── __init__.py │ ├── routers.py │ └── tables.py ├── pyproject.toml └── requirements.txt └── sample.env /.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/heliumbrain/fastapi-piccolo/895f55790d05782a1bd7d042b305fd8343c47d62/.dockerignore -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = false 6 | charset = utf-8 7 | 8 | 9 | [*.{svelte,js,yml}] 10 | indent_style = space 11 | indent_size = 2 12 | 13 | [*.py] 14 | indent_style = space 15 | indent_size = 4 16 | 17 | [*.json] 18 | indent_style = tab 19 | indent_size = 4 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .venv 2 | __pycache__ 3 | .env 4 | .DS_Store 5 | .vscode 6 | waypoint.hcl -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: build 2 | build: 3 | docker-compose -f docker-compose.dev.yml build 4 | .PHONY: up 5 | up: 6 | docker-compose --env-file=sample.env -f docker-compose.dev.yml up 7 | 8 | .PHONY: down 9 | down: 10 | docker-compose -f docker-compose.dev.yml down -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # WORK IN PROGRESS! 2 | ## FastAPI + Piccolo ORM + SvelteKit 3 | This is a practical example project showing how to use FastAPI together with the Piccolo ORM. Also includes a very simple frontend built with SvelteKit to prove that it works :) 4 | 5 | ## Stuff used 6 | * FastAPI 7 | * Piccolo ORM 8 | * Postgres 9 | * SvelteKit 10 | 11 | ### How to run 12 | 1. Clone the repo 13 | 2. Run `make build && make up` in your terminal 14 | 15 | To shut the docker containers down simply run `make down` in your terminal. Please note that any data attached to the Docker containers will be lost. 16 | 17 | ### Good to know 18 | There's a `sample.env` file included to set the needed environment variables for the different parts of the app to run. Please note that if you want to change this you will also have to change the `Makefile` to use the correct `.env` file for the `make up` command. 19 | -------------------------------------------------------------------------------- /docker-compose.dev.yml: -------------------------------------------------------------------------------- 1 | version: "3.9" 2 | 3 | services: 4 | frontend: 5 | container_name: frontend 6 | build: 7 | context: ./frontend 8 | dockerfile: Dockerfile.dev 9 | volumes: 10 | - ./frontend:/usr/src/app 11 | ports: 12 | - "3000:3000" 13 | environment: 14 | VITE_API_BASE_PATH: $VITE_API_BASE_PATH 15 | depends_on: 16 | - postgres 17 | - fastapi 18 | 19 | fastapi: 20 | container_name: backend 21 | build: ./piccolo-fastapi 22 | command: uvicorn app:app --reload --workers 1 --host 0.0.0.0 --port 8000 23 | volumes: 24 | - ./piccolo-fastapi:/usr/src/app 25 | ports: 26 | - 8000:8000 27 | environment: 28 | POSTGRES_DB: $POSTGRES_DB 29 | POSTGRES_USER: $POSTGRES_USER 30 | POSTGRES_PASSWORD: $POSTGRES_PASSWORD 31 | POSTGRES_PORT: $POSTGRES_PORT 32 | POSTGRES_HOST: $POSTGRES_HOST 33 | depends_on: 34 | - postgres 35 | 36 | postgres: 37 | container_name: db 38 | image: postgres 39 | environment: 40 | POSTGRES_DB: $POSTGRES_DB 41 | POSTGRES_USER: $POSTGRES_USER 42 | POSTGRES_PASSWORD: $POSTGRES_PASSWORD 43 | ports: 44 | - "5432:5432" 45 | volumes: 46 | - fastapi-piccolo-db:/var/lib/postgresql/data 47 | 48 | volumes: 49 | fastapi-piccolo-db: 50 | 51 | networks: 52 | default: 53 | name: fastapi-piccolo 54 | -------------------------------------------------------------------------------- /frontend/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | /.svelte-kit 4 | build 5 | .svelte-kit -------------------------------------------------------------------------------- /frontend/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /.svelte-kit 4 | /package 5 | build -------------------------------------------------------------------------------- /frontend/.npmrc: -------------------------------------------------------------------------------- 1 | engine-strict=true 2 | -------------------------------------------------------------------------------- /frontend/.prettierignore: -------------------------------------------------------------------------------- 1 | .svelte-kit/** 2 | static/** 3 | build/** 4 | node_modules/** 5 | -------------------------------------------------------------------------------- /frontend/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "useTabs": true, 3 | "singleQuote": true, 4 | "trailingComma": "none", 5 | "printWidth": 100 6 | } 7 | -------------------------------------------------------------------------------- /frontend/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM mhart/alpine-node:16 2 | 3 | # install dependencies 4 | WORKDIR /app 5 | COPY package.json pnpm-lock.yaml ./ 6 | RUN npm install -g pnpm 7 | RUN pnpm install 8 | 9 | # Copy all local files into the image. 10 | COPY . . 11 | 12 | RUN pnpm build 13 | 14 | ### 15 | # Only copy over the Node pieces we need 16 | # ~> Saves 35MB 17 | ### 18 | FROM mhart/alpine-node:slim-16 19 | 20 | WORKDIR /app 21 | COPY --from=0 /app . 22 | COPY . . 23 | 24 | EXPOSE 3000 25 | CMD ["node", "./build"] -------------------------------------------------------------------------------- /frontend/Dockerfile.dev: -------------------------------------------------------------------------------- 1 | FROM node:16 2 | 3 | # install dependencies 4 | WORKDIR /usr/src/app 5 | COPY package.json pnpm-lock.yaml ./ 6 | RUN npm install -g pnpm 7 | RUN pnpm install 8 | 9 | # Copy all local files into the image. 10 | COPY . . 11 | 12 | CMD pnpm dev -------------------------------------------------------------------------------- /frontend/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 init svelte@next 12 | 13 | # create a new project in my-app 14 | npm init svelte@next my-app 15 | ``` 16 | 17 | > Note: the `@next` is temporary 18 | 19 | ## Developing 20 | 21 | Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: 22 | 23 | ```bash 24 | npm run dev 25 | 26 | # or start the server and open the app in a new browser tab 27 | npm run dev -- --open 28 | ``` 29 | 30 | ## Building 31 | 32 | Before creating a production version of your app, install an [adapter](https://kit.svelte.dev/docs#adapters) for your target environment. Then: 33 | 34 | ```bash 35 | npm run build 36 | ``` 37 | 38 | > You can preview the built app with `npm run preview`, regardless of whether you installed an adapter. This should _not_ be used to serve your app in production. 39 | -------------------------------------------------------------------------------- /frontend/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "paths": { 5 | "$lib/*": ["src/lib/*"] 6 | } 7 | }, 8 | "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte"] 9 | } 10 | -------------------------------------------------------------------------------- /frontend/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "FastAPI & Piccolo - Frontend", 3 | "version": "0.0.1", 4 | "scripts": { 5 | "dev": "svelte-kit dev --host", 6 | "build": "svelte-kit build", 7 | "preview": "svelte-kit preview", 8 | "lint": "prettier --check --plugin-search-dir=. .", 9 | "format": "prettier --write --plugin-search-dir=. ." 10 | }, 11 | "devDependencies": { 12 | "@sveltejs/adapter-node": "^1.0.0-next.27", 13 | "@sveltejs/kit": "next", 14 | "autoprefixer": "^10.2.6", 15 | "cssnano": "^5.0.6", 16 | "postcss": "^8.3.5", 17 | "postcss-load-config": "^3.1.0", 18 | "prettier": "~2.2.1", 19 | "prettier-plugin-svelte": "^2.3.1", 20 | "svelte": "^3.38.3", 21 | "svelte-preprocess": "^4.7.3", 22 | "tailwindcss": "^2.2.2" 23 | }, 24 | "type": "module" 25 | } -------------------------------------------------------------------------------- /frontend/pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.3 2 | 3 | specifiers: 4 | '@sveltejs/adapter-node': ^1.0.0-next.27 5 | '@sveltejs/kit': next 6 | autoprefixer: ^10.2.6 7 | cssnano: ^5.0.6 8 | postcss: ^8.3.5 9 | postcss-load-config: ^3.1.0 10 | prettier: ~2.2.1 11 | prettier-plugin-svelte: ^2.3.1 12 | svelte: ^3.38.3 13 | svelte-preprocess: ^4.7.3 14 | tailwindcss: ^2.2.2 15 | 16 | devDependencies: 17 | '@sveltejs/adapter-node': 1.0.0-next.27 18 | '@sveltejs/kit': 1.0.0-next.116_svelte@3.38.3 19 | autoprefixer: 10.2.6_postcss@8.3.5 20 | cssnano: 5.0.6_postcss@8.3.5 21 | postcss: 8.3.5 22 | postcss-load-config: 3.1.0 23 | prettier: 2.2.1 24 | prettier-plugin-svelte: 2.3.1_prettier@2.2.1+svelte@3.38.3 25 | svelte: 3.38.3 26 | svelte-preprocess: 4.7.3_7d4d22e7287a4965435cb62392efd75a 27 | tailwindcss: 2.2.2_72be89de93206f86f2d67dd5290ec14d 28 | 29 | packages: 30 | 31 | /@babel/code-frame/7.14.5: 32 | resolution: {integrity: sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==} 33 | engines: {node: '>=6.9.0'} 34 | dependencies: 35 | '@babel/highlight': 7.14.5 36 | dev: true 37 | 38 | /@babel/helper-validator-identifier/7.14.5: 39 | resolution: {integrity: sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==} 40 | engines: {node: '>=6.9.0'} 41 | dev: true 42 | 43 | /@babel/highlight/7.14.5: 44 | resolution: {integrity: sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==} 45 | engines: {node: '>=6.9.0'} 46 | dependencies: 47 | '@babel/helper-validator-identifier': 7.14.5 48 | chalk: 2.4.2 49 | js-tokens: 4.0.0 50 | dev: true 51 | 52 | /@fullhuman/postcss-purgecss/4.0.3_postcss@8.3.5: 53 | resolution: {integrity: sha512-/EnQ9UDWGGqHkn1UKAwSgh+gJHPKmD+Z+5dQ4gWT4qq2NUyez3zqAfZNwFH3eSgmgO+wjTXfhlLchx2M9/K+7Q==} 54 | peerDependencies: 55 | postcss: ^8.0.0 56 | dependencies: 57 | postcss: 8.3.5 58 | purgecss: 4.0.3 59 | dev: true 60 | 61 | /@nodelib/fs.scandir/2.1.5: 62 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 63 | engines: {node: '>= 8'} 64 | dependencies: 65 | '@nodelib/fs.stat': 2.0.5 66 | run-parallel: 1.2.0 67 | dev: true 68 | 69 | /@nodelib/fs.stat/2.0.5: 70 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 71 | engines: {node: '>= 8'} 72 | dev: true 73 | 74 | /@nodelib/fs.walk/1.2.7: 75 | resolution: {integrity: sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==} 76 | engines: {node: '>= 8'} 77 | dependencies: 78 | '@nodelib/fs.scandir': 2.1.5 79 | fastq: 1.11.0 80 | dev: true 81 | 82 | /@rollup/pluginutils/4.1.0: 83 | resolution: {integrity: sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ==} 84 | engines: {node: '>= 8.0.0'} 85 | peerDependencies: 86 | rollup: ^1.20.0||^2.0.0 87 | dependencies: 88 | estree-walker: 2.0.2 89 | picomatch: 2.3.0 90 | dev: true 91 | 92 | /@sveltejs/adapter-node/1.0.0-next.27: 93 | resolution: {integrity: sha512-Ia1GyJ39dZBFRkX20P31pzASOJDtR0DCVV0wvN+znn06H/1P3EW9wbCVvuxHK8zgs3CCyO8NArL3Glcx/R1tgQ==} 94 | dependencies: 95 | esbuild: 0.12.9 96 | tiny-glob: 0.2.9 97 | dev: true 98 | 99 | /@sveltejs/kit/1.0.0-next.116_svelte@3.38.3: 100 | resolution: {integrity: sha512-BpqiZMgCjxZUpDYnRZ3Z2H0PQtj7ak+EHOTJYOCUzDUK4iT4Jd36ljlzTEQgEJKrBTKZJgs0yFH1Zc9AAdftoA==} 101 | engines: {node: ^12.20 || >=14.13} 102 | hasBin: true 103 | peerDependencies: 104 | svelte: ^3.38.2 105 | dependencies: 106 | '@sveltejs/vite-plugin-svelte': 1.0.0-next.11_svelte@3.38.3+vite@2.3.8 107 | cheap-watch: 1.0.3 108 | sade: 1.7.4 109 | svelte: 3.38.3 110 | vite: 2.3.8 111 | transitivePeerDependencies: 112 | - rollup 113 | - supports-color 114 | dev: true 115 | 116 | /@sveltejs/vite-plugin-svelte/1.0.0-next.11_svelte@3.38.3+vite@2.3.8: 117 | resolution: {integrity: sha512-EYR1I145k5rflVqhPwk3442m3bkYimTKSHM9uO5KdomXzt+GS9ZSBJQE3/wy1Di9V8OnGa3oKpckI3OZsHkTIA==} 118 | engines: {node: ^12.20 || ^14.13.1 || >= 16} 119 | peerDependencies: 120 | svelte: ^3.38.2 121 | vite: ^2.3.7 122 | dependencies: 123 | '@rollup/pluginutils': 4.1.0 124 | chalk: 4.1.1 125 | debug: 4.3.2 126 | require-relative: 0.8.7 127 | svelte: 3.38.3 128 | svelte-hmr: 0.14.4_svelte@3.38.3 129 | vite: 2.3.8 130 | transitivePeerDependencies: 131 | - rollup 132 | - supports-color 133 | dev: true 134 | 135 | /@trysound/sax/0.1.1: 136 | resolution: {integrity: sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow==} 137 | engines: {node: '>=10.13.0'} 138 | dev: true 139 | 140 | /@types/node/15.12.4: 141 | resolution: {integrity: sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA==} 142 | dev: true 143 | 144 | /@types/parse-json/4.0.0: 145 | resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} 146 | dev: true 147 | 148 | /@types/pug/2.0.4: 149 | resolution: {integrity: sha1-h3L80EGOPNLMFxVV1zAHQVBR9LI=} 150 | dev: true 151 | 152 | /@types/sass/1.16.0: 153 | resolution: {integrity: sha512-2XZovu4NwcqmtZtsBR5XYLw18T8cBCnU2USFHTnYLLHz9fkhnoEMoDsqShJIOFsFhn5aJHjweiUUdTrDGujegA==} 154 | dependencies: 155 | '@types/node': 15.12.4 156 | dev: true 157 | 158 | /acorn-node/1.8.2: 159 | resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} 160 | dependencies: 161 | acorn: 7.4.1 162 | acorn-walk: 7.2.0 163 | xtend: 4.0.2 164 | dev: true 165 | 166 | /acorn-walk/7.2.0: 167 | resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} 168 | engines: {node: '>=0.4.0'} 169 | dev: true 170 | 171 | /acorn/7.4.1: 172 | resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} 173 | engines: {node: '>=0.4.0'} 174 | hasBin: true 175 | dev: true 176 | 177 | /alphanum-sort/1.0.2: 178 | resolution: {integrity: sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=} 179 | dev: true 180 | 181 | /ansi-styles/3.2.1: 182 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 183 | engines: {node: '>=4'} 184 | dependencies: 185 | color-convert: 1.9.3 186 | dev: true 187 | 188 | /ansi-styles/4.3.0: 189 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 190 | engines: {node: '>=8'} 191 | dependencies: 192 | color-convert: 2.0.1 193 | dev: true 194 | 195 | /anymatch/3.1.2: 196 | resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} 197 | engines: {node: '>= 8'} 198 | dependencies: 199 | normalize-path: 3.0.0 200 | picomatch: 2.3.0 201 | dev: true 202 | 203 | /arg/5.0.0: 204 | resolution: {integrity: sha512-4P8Zm2H+BRS+c/xX1LrHw0qKpEhdlZjLCgWy+d78T9vqa2Z2SiD2wMrYuWIAFy5IZUD7nnNXroRttz+0RzlrzQ==} 205 | dev: true 206 | 207 | /autoprefixer/10.2.6_postcss@8.3.5: 208 | resolution: {integrity: sha512-8lChSmdU6dCNMCQopIf4Pe5kipkAGj/fvTMslCsih0uHpOrXOPUEVOmYMMqmw3cekQkSD7EhIeuYl5y0BLdKqg==} 209 | engines: {node: ^10 || ^12 || >=14} 210 | hasBin: true 211 | peerDependencies: 212 | postcss: ^8.1.0 213 | dependencies: 214 | browserslist: 4.16.6 215 | caniuse-lite: 1.0.30001239 216 | colorette: 1.2.2 217 | fraction.js: 4.1.1 218 | normalize-range: 0.1.2 219 | postcss: 8.3.5 220 | postcss-value-parser: 4.1.0 221 | dev: true 222 | 223 | /balanced-match/1.0.2: 224 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 225 | dev: true 226 | 227 | /binary-extensions/2.2.0: 228 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 229 | engines: {node: '>=8'} 230 | dev: true 231 | 232 | /boolbase/1.0.0: 233 | resolution: {integrity: sha1-aN/1++YMUes3cl6p4+0xDcwed24=} 234 | dev: true 235 | 236 | /brace-expansion/1.1.11: 237 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 238 | dependencies: 239 | balanced-match: 1.0.2 240 | concat-map: 0.0.1 241 | dev: true 242 | 243 | /braces/3.0.2: 244 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 245 | engines: {node: '>=8'} 246 | dependencies: 247 | fill-range: 7.0.1 248 | dev: true 249 | 250 | /browserslist/4.16.6: 251 | resolution: {integrity: sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==} 252 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 253 | hasBin: true 254 | dependencies: 255 | caniuse-lite: 1.0.30001239 256 | colorette: 1.2.2 257 | electron-to-chromium: 1.3.754 258 | escalade: 3.1.1 259 | node-releases: 1.1.73 260 | dev: true 261 | 262 | /bytes/3.1.0: 263 | resolution: {integrity: sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==} 264 | engines: {node: '>= 0.8'} 265 | dev: true 266 | 267 | /callsites/3.1.0: 268 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 269 | engines: {node: '>=6'} 270 | dev: true 271 | 272 | /camelcase-css/2.0.1: 273 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 274 | engines: {node: '>= 6'} 275 | dev: true 276 | 277 | /caniuse-api/3.0.0: 278 | resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} 279 | dependencies: 280 | browserslist: 4.16.6 281 | caniuse-lite: 1.0.30001239 282 | lodash.memoize: 4.1.2 283 | lodash.uniq: 4.5.0 284 | dev: true 285 | 286 | /caniuse-lite/1.0.30001239: 287 | resolution: {integrity: sha512-cyBkXJDMeI4wthy8xJ2FvDU6+0dtcZSJW3voUF8+e9f1bBeuvyZfc3PNbkOETyhbR+dGCPzn9E7MA3iwzusOhQ==} 288 | dev: true 289 | 290 | /chalk/2.4.2: 291 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 292 | engines: {node: '>=4'} 293 | dependencies: 294 | ansi-styles: 3.2.1 295 | escape-string-regexp: 1.0.5 296 | supports-color: 5.5.0 297 | dev: true 298 | 299 | /chalk/4.1.1: 300 | resolution: {integrity: sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==} 301 | engines: {node: '>=10'} 302 | dependencies: 303 | ansi-styles: 4.3.0 304 | supports-color: 7.2.0 305 | dev: true 306 | 307 | /cheap-watch/1.0.3: 308 | resolution: {integrity: sha512-xC5CruMhLzjPwJ5ecUxGu1uGmwJQykUhqd2QrCrYbwvsFYdRyviu6jG9+pccwDXJR/OpmOTOJ9yLFunVgQu9wg==} 309 | engines: {node: '>=8'} 310 | dev: true 311 | 312 | /chokidar/3.5.2: 313 | resolution: {integrity: sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==} 314 | engines: {node: '>= 8.10.0'} 315 | dependencies: 316 | anymatch: 3.1.2 317 | braces: 3.0.2 318 | glob-parent: 5.1.2 319 | is-binary-path: 2.1.0 320 | is-glob: 4.0.1 321 | normalize-path: 3.0.0 322 | readdirp: 3.6.0 323 | optionalDependencies: 324 | fsevents: 2.3.2 325 | dev: true 326 | 327 | /color-convert/1.9.3: 328 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 329 | dependencies: 330 | color-name: 1.1.3 331 | dev: true 332 | 333 | /color-convert/2.0.1: 334 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 335 | engines: {node: '>=7.0.0'} 336 | dependencies: 337 | color-name: 1.1.4 338 | dev: true 339 | 340 | /color-name/1.1.3: 341 | resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} 342 | dev: true 343 | 344 | /color-name/1.1.4: 345 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 346 | dev: true 347 | 348 | /color-string/1.5.5: 349 | resolution: {integrity: sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==} 350 | dependencies: 351 | color-name: 1.1.4 352 | simple-swizzle: 0.2.2 353 | dev: true 354 | 355 | /color/3.1.3: 356 | resolution: {integrity: sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==} 357 | dependencies: 358 | color-convert: 1.9.3 359 | color-string: 1.5.5 360 | dev: true 361 | 362 | /colord/2.0.1: 363 | resolution: {integrity: sha512-vm5YpaWamD0Ov6TSG0GGmUIwstrWcfKQV/h2CmbR7PbNu41+qdB5PW9lpzhjedrpm08uuYvcXi0Oel1RLZIJuA==} 364 | dev: true 365 | 366 | /colorette/1.2.2: 367 | resolution: {integrity: sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==} 368 | dev: true 369 | 370 | /commander/6.2.1: 371 | resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} 372 | engines: {node: '>= 6'} 373 | dev: true 374 | 375 | /commander/7.2.0: 376 | resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} 377 | engines: {node: '>= 10'} 378 | dev: true 379 | 380 | /concat-map/0.0.1: 381 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} 382 | dev: true 383 | 384 | /cosmiconfig/7.0.0: 385 | resolution: {integrity: sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==} 386 | engines: {node: '>=10'} 387 | dependencies: 388 | '@types/parse-json': 4.0.0 389 | import-fresh: 3.3.0 390 | parse-json: 5.2.0 391 | path-type: 4.0.0 392 | yaml: 1.10.2 393 | dev: true 394 | 395 | /css-color-names/0.0.4: 396 | resolution: {integrity: sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=} 397 | dev: true 398 | 399 | /css-color-names/1.0.1: 400 | resolution: {integrity: sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA==} 401 | dev: true 402 | 403 | /css-declaration-sorter/6.0.3_postcss@8.3.5: 404 | resolution: {integrity: sha512-52P95mvW1SMzuRZegvpluT6yEv0FqQusydKQPZsNN5Q7hh8EwQvN8E2nwuJ16BBvNN6LcoIZXu/Bk58DAhrrxw==} 405 | engines: {node: '>= 10'} 406 | peerDependencies: 407 | postcss: ^8.0.9 408 | dependencies: 409 | postcss: 8.3.5 410 | timsort: 0.3.0 411 | dev: true 412 | 413 | /css-select/3.1.2: 414 | resolution: {integrity: sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA==} 415 | dependencies: 416 | boolbase: 1.0.0 417 | css-what: 4.0.0 418 | domhandler: 4.2.0 419 | domutils: 2.7.0 420 | nth-check: 2.0.0 421 | dev: true 422 | 423 | /css-tree/1.1.3: 424 | resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} 425 | engines: {node: '>=8.0.0'} 426 | dependencies: 427 | mdn-data: 2.0.14 428 | source-map: 0.6.1 429 | dev: true 430 | 431 | /css-unit-converter/1.1.2: 432 | resolution: {integrity: sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==} 433 | dev: true 434 | 435 | /css-what/4.0.0: 436 | resolution: {integrity: sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A==} 437 | engines: {node: '>= 6'} 438 | dev: true 439 | 440 | /cssesc/3.0.0: 441 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 442 | engines: {node: '>=4'} 443 | hasBin: true 444 | dev: true 445 | 446 | /cssnano-preset-default/5.1.3_postcss@8.3.5: 447 | resolution: {integrity: sha512-qo9tX+t4yAAZ/yagVV3b+QBKeLklQbmgR3wI7mccrDcR+bEk9iHgZN1E7doX68y9ThznLya3RDmR+nc7l6/2WQ==} 448 | engines: {node: ^10 || ^12 || >=14.0} 449 | peerDependencies: 450 | postcss: ^8.2.15 451 | dependencies: 452 | css-declaration-sorter: 6.0.3_postcss@8.3.5 453 | cssnano-utils: 2.0.1_postcss@8.3.5 454 | postcss: 8.3.5 455 | postcss-calc: 8.0.0_postcss@8.3.5 456 | postcss-colormin: 5.2.0_postcss@8.3.5 457 | postcss-convert-values: 5.0.1_postcss@8.3.5 458 | postcss-discard-comments: 5.0.1_postcss@8.3.5 459 | postcss-discard-duplicates: 5.0.1_postcss@8.3.5 460 | postcss-discard-empty: 5.0.1_postcss@8.3.5 461 | postcss-discard-overridden: 5.0.1_postcss@8.3.5 462 | postcss-merge-longhand: 5.0.2_postcss@8.3.5 463 | postcss-merge-rules: 5.0.2_postcss@8.3.5 464 | postcss-minify-font-values: 5.0.1_postcss@8.3.5 465 | postcss-minify-gradients: 5.0.1_postcss@8.3.5 466 | postcss-minify-params: 5.0.1_postcss@8.3.5 467 | postcss-minify-selectors: 5.1.0_postcss@8.3.5 468 | postcss-normalize-charset: 5.0.1_postcss@8.3.5 469 | postcss-normalize-display-values: 5.0.1_postcss@8.3.5 470 | postcss-normalize-positions: 5.0.1_postcss@8.3.5 471 | postcss-normalize-repeat-style: 5.0.1_postcss@8.3.5 472 | postcss-normalize-string: 5.0.1_postcss@8.3.5 473 | postcss-normalize-timing-functions: 5.0.1_postcss@8.3.5 474 | postcss-normalize-unicode: 5.0.1_postcss@8.3.5 475 | postcss-normalize-url: 5.0.2_postcss@8.3.5 476 | postcss-normalize-whitespace: 5.0.1_postcss@8.3.5 477 | postcss-ordered-values: 5.0.2_postcss@8.3.5 478 | postcss-reduce-initial: 5.0.1_postcss@8.3.5 479 | postcss-reduce-transforms: 5.0.1_postcss@8.3.5 480 | postcss-svgo: 5.0.2_postcss@8.3.5 481 | postcss-unique-selectors: 5.0.1_postcss@8.3.5 482 | dev: true 483 | 484 | /cssnano-utils/2.0.1_postcss@8.3.5: 485 | resolution: {integrity: sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ==} 486 | engines: {node: ^10 || ^12 || >=14.0} 487 | peerDependencies: 488 | postcss: ^8.2.15 489 | dependencies: 490 | postcss: 8.3.5 491 | dev: true 492 | 493 | /cssnano/5.0.6_postcss@8.3.5: 494 | resolution: {integrity: sha512-NiaLH/7yqGksFGsFNvSRe2IV/qmEBAeDE64dYeD8OBrgp6lE8YoMeQJMtsv5ijo6MPyhuoOvFhI94reahBRDkw==} 495 | engines: {node: ^10 || ^12 || >=14.0} 496 | peerDependencies: 497 | postcss: ^8.2.15 498 | dependencies: 499 | cosmiconfig: 7.0.0 500 | cssnano-preset-default: 5.1.3_postcss@8.3.5 501 | is-resolvable: 1.1.0 502 | postcss: 8.3.5 503 | dev: true 504 | 505 | /csso/4.2.0: 506 | resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} 507 | engines: {node: '>=8.0.0'} 508 | dependencies: 509 | css-tree: 1.1.3 510 | dev: true 511 | 512 | /debug/4.3.2: 513 | resolution: {integrity: sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==} 514 | engines: {node: '>=6.0'} 515 | peerDependencies: 516 | supports-color: '*' 517 | peerDependenciesMeta: 518 | supports-color: 519 | optional: true 520 | dependencies: 521 | ms: 2.1.2 522 | dev: true 523 | 524 | /defined/1.0.0: 525 | resolution: {integrity: sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=} 526 | dev: true 527 | 528 | /detect-indent/6.1.0: 529 | resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} 530 | engines: {node: '>=8'} 531 | dev: true 532 | 533 | /detective/5.2.0: 534 | resolution: {integrity: sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==} 535 | engines: {node: '>=0.8.0'} 536 | hasBin: true 537 | dependencies: 538 | acorn-node: 1.8.2 539 | defined: 1.0.0 540 | minimist: 1.2.5 541 | dev: true 542 | 543 | /didyoumean/1.2.1: 544 | resolution: {integrity: sha1-6S7f2tplN9SE1zwBcv0eugxJdv8=} 545 | dev: true 546 | 547 | /dlv/1.1.3: 548 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 549 | dev: true 550 | 551 | /dom-serializer/1.3.2: 552 | resolution: {integrity: sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==} 553 | dependencies: 554 | domelementtype: 2.2.0 555 | domhandler: 4.2.0 556 | entities: 2.2.0 557 | dev: true 558 | 559 | /domelementtype/2.2.0: 560 | resolution: {integrity: sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==} 561 | dev: true 562 | 563 | /domhandler/4.2.0: 564 | resolution: {integrity: sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==} 565 | engines: {node: '>= 4'} 566 | dependencies: 567 | domelementtype: 2.2.0 568 | dev: true 569 | 570 | /domutils/2.7.0: 571 | resolution: {integrity: sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==} 572 | dependencies: 573 | dom-serializer: 1.3.2 574 | domelementtype: 2.2.0 575 | domhandler: 4.2.0 576 | dev: true 577 | 578 | /electron-to-chromium/1.3.754: 579 | resolution: {integrity: sha512-Q50dJbfYYRtwK3G9mFP/EsJVzlgcYwKxFjbXmvVa1lDAbdviPcT9QOpFoufDApub4j0hBfDRL6v3lWNLEdEDXQ==} 580 | dev: true 581 | 582 | /entities/2.2.0: 583 | resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} 584 | dev: true 585 | 586 | /error-ex/1.3.2: 587 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 588 | dependencies: 589 | is-arrayish: 0.2.1 590 | dev: true 591 | 592 | /esbuild/0.12.9: 593 | resolution: {integrity: sha512-MWRhAbMOJ9RJygCrt778rz/qNYgA4ZVj6aXnNPxFjs7PmIpb0fuB9Gmg5uWrr6n++XKwwm/RmSz6RR5JL2Ocsw==} 594 | hasBin: true 595 | requiresBuild: true 596 | dev: true 597 | 598 | /escalade/3.1.1: 599 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 600 | engines: {node: '>=6'} 601 | dev: true 602 | 603 | /escape-string-regexp/1.0.5: 604 | resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} 605 | engines: {node: '>=0.8.0'} 606 | dev: true 607 | 608 | /estree-walker/2.0.2: 609 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 610 | dev: true 611 | 612 | /fast-glob/3.2.5: 613 | resolution: {integrity: sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==} 614 | engines: {node: '>=8'} 615 | dependencies: 616 | '@nodelib/fs.stat': 2.0.5 617 | '@nodelib/fs.walk': 1.2.7 618 | glob-parent: 5.1.2 619 | merge2: 1.4.1 620 | micromatch: 4.0.4 621 | picomatch: 2.3.0 622 | dev: true 623 | 624 | /fastq/1.11.0: 625 | resolution: {integrity: sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==} 626 | dependencies: 627 | reusify: 1.0.4 628 | dev: true 629 | 630 | /fill-range/7.0.1: 631 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 632 | engines: {node: '>=8'} 633 | dependencies: 634 | to-regex-range: 5.0.1 635 | dev: true 636 | 637 | /fraction.js/4.1.1: 638 | resolution: {integrity: sha512-MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg==} 639 | dev: true 640 | 641 | /fs-extra/10.0.0: 642 | resolution: {integrity: sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==} 643 | engines: {node: '>=12'} 644 | dependencies: 645 | graceful-fs: 4.2.6 646 | jsonfile: 6.1.0 647 | universalify: 2.0.0 648 | dev: true 649 | 650 | /fs.realpath/1.0.0: 651 | resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} 652 | dev: true 653 | 654 | /fsevents/2.3.2: 655 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 656 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 657 | os: [darwin] 658 | dev: true 659 | optional: true 660 | 661 | /function-bind/1.1.1: 662 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 663 | dev: true 664 | 665 | /glob-parent/5.1.2: 666 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 667 | engines: {node: '>= 6'} 668 | dependencies: 669 | is-glob: 4.0.1 670 | dev: true 671 | 672 | /glob-parent/6.0.0: 673 | resolution: {integrity: sha512-Hdd4287VEJcZXUwv1l8a+vXC1GjOQqXe+VS30w/ypihpcnu9M1n3xeYeJu5CBpeEQj2nAab2xxz28GuA3vp4Ww==} 674 | engines: {node: '>=10.13.0'} 675 | dependencies: 676 | is-glob: 4.0.1 677 | dev: true 678 | 679 | /glob/7.1.7: 680 | resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} 681 | dependencies: 682 | fs.realpath: 1.0.0 683 | inflight: 1.0.6 684 | inherits: 2.0.4 685 | minimatch: 3.0.4 686 | once: 1.4.0 687 | path-is-absolute: 1.0.1 688 | dev: true 689 | 690 | /globalyzer/0.1.0: 691 | resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} 692 | dev: true 693 | 694 | /globrex/0.1.2: 695 | resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} 696 | dev: true 697 | 698 | /graceful-fs/4.2.6: 699 | resolution: {integrity: sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==} 700 | dev: true 701 | 702 | /has-flag/3.0.0: 703 | resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} 704 | engines: {node: '>=4'} 705 | dev: true 706 | 707 | /has-flag/4.0.0: 708 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 709 | engines: {node: '>=8'} 710 | dev: true 711 | 712 | /has/1.0.3: 713 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 714 | engines: {node: '>= 0.4.0'} 715 | dependencies: 716 | function-bind: 1.1.1 717 | dev: true 718 | 719 | /hex-color-regex/1.1.0: 720 | resolution: {integrity: sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==} 721 | dev: true 722 | 723 | /hsl-regex/1.0.0: 724 | resolution: {integrity: sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=} 725 | dev: true 726 | 727 | /hsla-regex/1.0.0: 728 | resolution: {integrity: sha1-wc56MWjIxmFAM6S194d/OyJfnDg=} 729 | dev: true 730 | 731 | /html-tags/3.1.0: 732 | resolution: {integrity: sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==} 733 | engines: {node: '>=8'} 734 | dev: true 735 | 736 | /import-cwd/3.0.0: 737 | resolution: {integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==} 738 | engines: {node: '>=8'} 739 | dependencies: 740 | import-from: 3.0.0 741 | dev: true 742 | 743 | /import-fresh/3.3.0: 744 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 745 | engines: {node: '>=6'} 746 | dependencies: 747 | parent-module: 1.0.1 748 | resolve-from: 4.0.0 749 | dev: true 750 | 751 | /import-from/3.0.0: 752 | resolution: {integrity: sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==} 753 | engines: {node: '>=8'} 754 | dependencies: 755 | resolve-from: 5.0.0 756 | dev: true 757 | 758 | /inflight/1.0.6: 759 | resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} 760 | dependencies: 761 | once: 1.4.0 762 | wrappy: 1.0.2 763 | dev: true 764 | 765 | /inherits/2.0.4: 766 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 767 | dev: true 768 | 769 | /is-absolute-url/3.0.3: 770 | resolution: {integrity: sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==} 771 | engines: {node: '>=8'} 772 | dev: true 773 | 774 | /is-arrayish/0.2.1: 775 | resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} 776 | dev: true 777 | 778 | /is-arrayish/0.3.2: 779 | resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} 780 | dev: true 781 | 782 | /is-binary-path/2.1.0: 783 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 784 | engines: {node: '>=8'} 785 | dependencies: 786 | binary-extensions: 2.2.0 787 | dev: true 788 | 789 | /is-color-stop/1.1.0: 790 | resolution: {integrity: sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=} 791 | dependencies: 792 | css-color-names: 0.0.4 793 | hex-color-regex: 1.1.0 794 | hsl-regex: 1.0.0 795 | hsla-regex: 1.0.0 796 | rgb-regex: 1.0.1 797 | rgba-regex: 1.0.0 798 | dev: true 799 | 800 | /is-core-module/2.4.0: 801 | resolution: {integrity: sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==} 802 | dependencies: 803 | has: 1.0.3 804 | dev: true 805 | 806 | /is-extglob/2.1.1: 807 | resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} 808 | engines: {node: '>=0.10.0'} 809 | dev: true 810 | 811 | /is-glob/4.0.1: 812 | resolution: {integrity: sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==} 813 | engines: {node: '>=0.10.0'} 814 | dependencies: 815 | is-extglob: 2.1.1 816 | dev: true 817 | 818 | /is-number/7.0.0: 819 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 820 | engines: {node: '>=0.12.0'} 821 | dev: true 822 | 823 | /is-resolvable/1.1.0: 824 | resolution: {integrity: sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==} 825 | dev: true 826 | 827 | /js-tokens/4.0.0: 828 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 829 | dev: true 830 | 831 | /json-parse-even-better-errors/2.3.1: 832 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 833 | dev: true 834 | 835 | /jsonfile/6.1.0: 836 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} 837 | dependencies: 838 | universalify: 2.0.0 839 | optionalDependencies: 840 | graceful-fs: 4.2.6 841 | dev: true 842 | 843 | /lilconfig/2.0.3: 844 | resolution: {integrity: sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==} 845 | engines: {node: '>=10'} 846 | dev: true 847 | 848 | /lines-and-columns/1.1.6: 849 | resolution: {integrity: sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=} 850 | dev: true 851 | 852 | /lodash.memoize/4.1.2: 853 | resolution: {integrity: sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=} 854 | dev: true 855 | 856 | /lodash.toarray/4.4.0: 857 | resolution: {integrity: sha1-JMS/zWsvuji/0FlNsRedjptlZWE=} 858 | dev: true 859 | 860 | /lodash.topath/4.5.2: 861 | resolution: {integrity: sha1-NhY1Hzu6YZlKCTGYlmC9AyVP0Ak=} 862 | dev: true 863 | 864 | /lodash.uniq/4.5.0: 865 | resolution: {integrity: sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=} 866 | dev: true 867 | 868 | /lodash/4.17.21: 869 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 870 | dev: true 871 | 872 | /mdn-data/2.0.14: 873 | resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} 874 | dev: true 875 | 876 | /merge2/1.4.1: 877 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 878 | engines: {node: '>= 8'} 879 | dev: true 880 | 881 | /micromatch/4.0.4: 882 | resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} 883 | engines: {node: '>=8.6'} 884 | dependencies: 885 | braces: 3.0.2 886 | picomatch: 2.3.0 887 | dev: true 888 | 889 | /min-indent/1.0.1: 890 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 891 | engines: {node: '>=4'} 892 | dev: true 893 | 894 | /minimatch/3.0.4: 895 | resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} 896 | dependencies: 897 | brace-expansion: 1.1.11 898 | dev: true 899 | 900 | /minimist/1.2.5: 901 | resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} 902 | dev: true 903 | 904 | /modern-normalize/1.1.0: 905 | resolution: {integrity: sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA==} 906 | engines: {node: '>=6'} 907 | dev: true 908 | 909 | /mri/1.1.6: 910 | resolution: {integrity: sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ==} 911 | engines: {node: '>=4'} 912 | dev: true 913 | 914 | /ms/2.1.2: 915 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 916 | dev: true 917 | 918 | /nanoid/3.1.23: 919 | resolution: {integrity: sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==} 920 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 921 | hasBin: true 922 | dev: true 923 | 924 | /node-emoji/1.10.0: 925 | resolution: {integrity: sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==} 926 | dependencies: 927 | lodash.toarray: 4.4.0 928 | dev: true 929 | 930 | /node-releases/1.1.73: 931 | resolution: {integrity: sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==} 932 | dev: true 933 | 934 | /normalize-path/3.0.0: 935 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 936 | engines: {node: '>=0.10.0'} 937 | dev: true 938 | 939 | /normalize-range/0.1.2: 940 | resolution: {integrity: sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=} 941 | engines: {node: '>=0.10.0'} 942 | dev: true 943 | 944 | /normalize-url/6.1.0: 945 | resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} 946 | engines: {node: '>=10'} 947 | dev: true 948 | 949 | /nth-check/2.0.0: 950 | resolution: {integrity: sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==} 951 | dependencies: 952 | boolbase: 1.0.0 953 | dev: true 954 | 955 | /object-hash/2.2.0: 956 | resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==} 957 | engines: {node: '>= 6'} 958 | dev: true 959 | 960 | /once/1.4.0: 961 | resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} 962 | dependencies: 963 | wrappy: 1.0.2 964 | dev: true 965 | 966 | /parent-module/1.0.1: 967 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 968 | engines: {node: '>=6'} 969 | dependencies: 970 | callsites: 3.1.0 971 | dev: true 972 | 973 | /parse-json/5.2.0: 974 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 975 | engines: {node: '>=8'} 976 | dependencies: 977 | '@babel/code-frame': 7.14.5 978 | error-ex: 1.3.2 979 | json-parse-even-better-errors: 2.3.1 980 | lines-and-columns: 1.1.6 981 | dev: true 982 | 983 | /path-is-absolute/1.0.1: 984 | resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} 985 | engines: {node: '>=0.10.0'} 986 | dev: true 987 | 988 | /path-parse/1.0.7: 989 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 990 | dev: true 991 | 992 | /path-type/4.0.0: 993 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 994 | engines: {node: '>=8'} 995 | dev: true 996 | 997 | /picomatch/2.3.0: 998 | resolution: {integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==} 999 | engines: {node: '>=8.6'} 1000 | dev: true 1001 | 1002 | /postcss-calc/8.0.0_postcss@8.3.5: 1003 | resolution: {integrity: sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g==} 1004 | peerDependencies: 1005 | postcss: ^8.2.2 1006 | dependencies: 1007 | postcss: 8.3.5 1008 | postcss-selector-parser: 6.0.6 1009 | postcss-value-parser: 4.1.0 1010 | dev: true 1011 | 1012 | /postcss-colormin/5.2.0_postcss@8.3.5: 1013 | resolution: {integrity: sha512-+HC6GfWU3upe5/mqmxuqYZ9B2Wl4lcoUUNkoaX59nEWV4EtADCMiBqui111Bu8R8IvaZTmqmxrqOAqjbHIwXPw==} 1014 | engines: {node: ^10 || ^12 || >=14.0} 1015 | peerDependencies: 1016 | postcss: ^8.2.15 1017 | dependencies: 1018 | browserslist: 4.16.6 1019 | caniuse-api: 3.0.0 1020 | colord: 2.0.1 1021 | postcss: 8.3.5 1022 | postcss-value-parser: 4.1.0 1023 | dev: true 1024 | 1025 | /postcss-convert-values/5.0.1_postcss@8.3.5: 1026 | resolution: {integrity: sha512-C3zR1Do2BkKkCgC0g3sF8TS0koF2G+mN8xxayZx3f10cIRmTaAnpgpRQZjNekTZxM2ciSPoh2IWJm0VZx8NoQg==} 1027 | engines: {node: ^10 || ^12 || >=14.0} 1028 | peerDependencies: 1029 | postcss: ^8.2.15 1030 | dependencies: 1031 | postcss: 8.3.5 1032 | postcss-value-parser: 4.1.0 1033 | dev: true 1034 | 1035 | /postcss-discard-comments/5.0.1_postcss@8.3.5: 1036 | resolution: {integrity: sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg==} 1037 | engines: {node: ^10 || ^12 || >=14.0} 1038 | peerDependencies: 1039 | postcss: ^8.2.15 1040 | dependencies: 1041 | postcss: 8.3.5 1042 | dev: true 1043 | 1044 | /postcss-discard-duplicates/5.0.1_postcss@8.3.5: 1045 | resolution: {integrity: sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA==} 1046 | engines: {node: ^10 || ^12 || >=14.0} 1047 | peerDependencies: 1048 | postcss: ^8.2.15 1049 | dependencies: 1050 | postcss: 8.3.5 1051 | dev: true 1052 | 1053 | /postcss-discard-empty/5.0.1_postcss@8.3.5: 1054 | resolution: {integrity: sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw==} 1055 | engines: {node: ^10 || ^12 || >=14.0} 1056 | peerDependencies: 1057 | postcss: ^8.2.15 1058 | dependencies: 1059 | postcss: 8.3.5 1060 | dev: true 1061 | 1062 | /postcss-discard-overridden/5.0.1_postcss@8.3.5: 1063 | resolution: {integrity: sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q==} 1064 | engines: {node: ^10 || ^12 || >=14.0} 1065 | peerDependencies: 1066 | postcss: ^8.2.15 1067 | dependencies: 1068 | postcss: 8.3.5 1069 | dev: true 1070 | 1071 | /postcss-js/3.0.3: 1072 | resolution: {integrity: sha512-gWnoWQXKFw65Hk/mi2+WTQTHdPD5UJdDXZmX073EY/B3BWnYjO4F4t0VneTCnCGQ5E5GsCdMkzPaTXwl3r5dJw==} 1073 | engines: {node: '>=10.0'} 1074 | dependencies: 1075 | camelcase-css: 2.0.1 1076 | postcss: 8.3.5 1077 | dev: true 1078 | 1079 | /postcss-load-config/3.1.0: 1080 | resolution: {integrity: sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==} 1081 | engines: {node: '>= 10'} 1082 | peerDependencies: 1083 | ts-node: '>=9.0.0' 1084 | peerDependenciesMeta: 1085 | ts-node: 1086 | optional: true 1087 | dependencies: 1088 | import-cwd: 3.0.0 1089 | lilconfig: 2.0.3 1090 | yaml: 1.10.2 1091 | dev: true 1092 | 1093 | /postcss-merge-longhand/5.0.2_postcss@8.3.5: 1094 | resolution: {integrity: sha512-BMlg9AXSI5G9TBT0Lo/H3PfUy63P84rVz3BjCFE9e9Y9RXQZD3+h3YO1kgTNsNJy7bBc1YQp8DmSnwLIW5VPcw==} 1095 | engines: {node: ^10 || ^12 || >=14.0} 1096 | peerDependencies: 1097 | postcss: ^8.2.15 1098 | dependencies: 1099 | css-color-names: 1.0.1 1100 | postcss: 8.3.5 1101 | postcss-value-parser: 4.1.0 1102 | stylehacks: 5.0.1_postcss@8.3.5 1103 | dev: true 1104 | 1105 | /postcss-merge-rules/5.0.2_postcss@8.3.5: 1106 | resolution: {integrity: sha512-5K+Md7S3GwBewfB4rjDeol6V/RZ8S+v4B66Zk2gChRqLTCC8yjnHQ601omj9TKftS19OPGqZ/XzoqpzNQQLwbg==} 1107 | engines: {node: ^10 || ^12 || >=14.0} 1108 | peerDependencies: 1109 | postcss: ^8.2.15 1110 | dependencies: 1111 | browserslist: 4.16.6 1112 | caniuse-api: 3.0.0 1113 | cssnano-utils: 2.0.1_postcss@8.3.5 1114 | postcss: 8.3.5 1115 | postcss-selector-parser: 6.0.6 1116 | vendors: 1.0.4 1117 | dev: true 1118 | 1119 | /postcss-minify-font-values/5.0.1_postcss@8.3.5: 1120 | resolution: {integrity: sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA==} 1121 | engines: {node: ^10 || ^12 || >=14.0} 1122 | peerDependencies: 1123 | postcss: ^8.2.15 1124 | dependencies: 1125 | postcss: 8.3.5 1126 | postcss-value-parser: 4.1.0 1127 | dev: true 1128 | 1129 | /postcss-minify-gradients/5.0.1_postcss@8.3.5: 1130 | resolution: {integrity: sha512-odOwBFAIn2wIv+XYRpoN2hUV3pPQlgbJ10XeXPq8UY2N+9ZG42xu45lTn/g9zZ+d70NKSQD6EOi6UiCMu3FN7g==} 1131 | engines: {node: ^10 || ^12 || >=14.0} 1132 | peerDependencies: 1133 | postcss: ^8.2.15 1134 | dependencies: 1135 | cssnano-utils: 2.0.1_postcss@8.3.5 1136 | is-color-stop: 1.1.0 1137 | postcss: 8.3.5 1138 | postcss-value-parser: 4.1.0 1139 | dev: true 1140 | 1141 | /postcss-minify-params/5.0.1_postcss@8.3.5: 1142 | resolution: {integrity: sha512-4RUC4k2A/Q9mGco1Z8ODc7h+A0z7L7X2ypO1B6V8057eVK6mZ6xwz6QN64nHuHLbqbclkX1wyzRnIrdZehTEHw==} 1143 | engines: {node: ^10 || ^12 || >=14.0} 1144 | peerDependencies: 1145 | postcss: ^8.2.15 1146 | dependencies: 1147 | alphanum-sort: 1.0.2 1148 | browserslist: 4.16.6 1149 | cssnano-utils: 2.0.1_postcss@8.3.5 1150 | postcss: 8.3.5 1151 | postcss-value-parser: 4.1.0 1152 | uniqs: 2.0.0 1153 | dev: true 1154 | 1155 | /postcss-minify-selectors/5.1.0_postcss@8.3.5: 1156 | resolution: {integrity: sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og==} 1157 | engines: {node: ^10 || ^12 || >=14.0} 1158 | peerDependencies: 1159 | postcss: ^8.2.15 1160 | dependencies: 1161 | alphanum-sort: 1.0.2 1162 | postcss: 8.3.5 1163 | postcss-selector-parser: 6.0.6 1164 | dev: true 1165 | 1166 | /postcss-nested/5.0.5_postcss@8.3.5: 1167 | resolution: {integrity: sha512-GSRXYz5bccobpTzLQZXOnSOfKl6TwVr5CyAQJUPub4nuRJSOECK5AqurxVgmtxP48p0Kc/ndY/YyS1yqldX0Ew==} 1168 | engines: {node: '>=10.0'} 1169 | peerDependencies: 1170 | postcss: ^8.1.13 1171 | dependencies: 1172 | postcss: 8.3.5 1173 | postcss-selector-parser: 6.0.6 1174 | dev: true 1175 | 1176 | /postcss-normalize-charset/5.0.1_postcss@8.3.5: 1177 | resolution: {integrity: sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg==} 1178 | engines: {node: ^10 || ^12 || >=14.0} 1179 | peerDependencies: 1180 | postcss: ^8.2.15 1181 | dependencies: 1182 | postcss: 8.3.5 1183 | dev: true 1184 | 1185 | /postcss-normalize-display-values/5.0.1_postcss@8.3.5: 1186 | resolution: {integrity: sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ==} 1187 | engines: {node: ^10 || ^12 || >=14.0} 1188 | peerDependencies: 1189 | postcss: ^8.2.15 1190 | dependencies: 1191 | cssnano-utils: 2.0.1_postcss@8.3.5 1192 | postcss: 8.3.5 1193 | postcss-value-parser: 4.1.0 1194 | dev: true 1195 | 1196 | /postcss-normalize-positions/5.0.1_postcss@8.3.5: 1197 | resolution: {integrity: sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg==} 1198 | engines: {node: ^10 || ^12 || >=14.0} 1199 | peerDependencies: 1200 | postcss: ^8.2.15 1201 | dependencies: 1202 | postcss: 8.3.5 1203 | postcss-value-parser: 4.1.0 1204 | dev: true 1205 | 1206 | /postcss-normalize-repeat-style/5.0.1_postcss@8.3.5: 1207 | resolution: {integrity: sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w==} 1208 | engines: {node: ^10 || ^12 || >=14.0} 1209 | peerDependencies: 1210 | postcss: ^8.2.15 1211 | dependencies: 1212 | cssnano-utils: 2.0.1_postcss@8.3.5 1213 | postcss: 8.3.5 1214 | postcss-value-parser: 4.1.0 1215 | dev: true 1216 | 1217 | /postcss-normalize-string/5.0.1_postcss@8.3.5: 1218 | resolution: {integrity: sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA==} 1219 | engines: {node: ^10 || ^12 || >=14.0} 1220 | peerDependencies: 1221 | postcss: ^8.2.15 1222 | dependencies: 1223 | postcss: 8.3.5 1224 | postcss-value-parser: 4.1.0 1225 | dev: true 1226 | 1227 | /postcss-normalize-timing-functions/5.0.1_postcss@8.3.5: 1228 | resolution: {integrity: sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q==} 1229 | engines: {node: ^10 || ^12 || >=14.0} 1230 | peerDependencies: 1231 | postcss: ^8.2.15 1232 | dependencies: 1233 | cssnano-utils: 2.0.1_postcss@8.3.5 1234 | postcss: 8.3.5 1235 | postcss-value-parser: 4.1.0 1236 | dev: true 1237 | 1238 | /postcss-normalize-unicode/5.0.1_postcss@8.3.5: 1239 | resolution: {integrity: sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA==} 1240 | engines: {node: ^10 || ^12 || >=14.0} 1241 | peerDependencies: 1242 | postcss: ^8.2.15 1243 | dependencies: 1244 | browserslist: 4.16.6 1245 | postcss: 8.3.5 1246 | postcss-value-parser: 4.1.0 1247 | dev: true 1248 | 1249 | /postcss-normalize-url/5.0.2_postcss@8.3.5: 1250 | resolution: {integrity: sha512-k4jLTPUxREQ5bpajFQZpx8bCF2UrlqOTzP9kEqcEnOfwsRshWs2+oAFIHfDQB8GO2PaUaSE0NlTAYtbluZTlHQ==} 1251 | engines: {node: ^10 || ^12 || >=14.0} 1252 | peerDependencies: 1253 | postcss: ^8.2.15 1254 | dependencies: 1255 | is-absolute-url: 3.0.3 1256 | normalize-url: 6.1.0 1257 | postcss: 8.3.5 1258 | postcss-value-parser: 4.1.0 1259 | dev: true 1260 | 1261 | /postcss-normalize-whitespace/5.0.1_postcss@8.3.5: 1262 | resolution: {integrity: sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA==} 1263 | engines: {node: ^10 || ^12 || >=14.0} 1264 | peerDependencies: 1265 | postcss: ^8.2.15 1266 | dependencies: 1267 | postcss: 8.3.5 1268 | postcss-value-parser: 4.1.0 1269 | dev: true 1270 | 1271 | /postcss-ordered-values/5.0.2_postcss@8.3.5: 1272 | resolution: {integrity: sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ==} 1273 | engines: {node: ^10 || ^12 || >=14.0} 1274 | peerDependencies: 1275 | postcss: ^8.2.15 1276 | dependencies: 1277 | cssnano-utils: 2.0.1_postcss@8.3.5 1278 | postcss: 8.3.5 1279 | postcss-value-parser: 4.1.0 1280 | dev: true 1281 | 1282 | /postcss-reduce-initial/5.0.1_postcss@8.3.5: 1283 | resolution: {integrity: sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw==} 1284 | engines: {node: ^10 || ^12 || >=14.0} 1285 | peerDependencies: 1286 | postcss: ^8.2.15 1287 | dependencies: 1288 | browserslist: 4.16.6 1289 | caniuse-api: 3.0.0 1290 | postcss: 8.3.5 1291 | dev: true 1292 | 1293 | /postcss-reduce-transforms/5.0.1_postcss@8.3.5: 1294 | resolution: {integrity: sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA==} 1295 | engines: {node: ^10 || ^12 || >=14.0} 1296 | peerDependencies: 1297 | postcss: ^8.2.15 1298 | dependencies: 1299 | cssnano-utils: 2.0.1_postcss@8.3.5 1300 | postcss: 8.3.5 1301 | postcss-value-parser: 4.1.0 1302 | dev: true 1303 | 1304 | /postcss-selector-parser/6.0.6: 1305 | resolution: {integrity: sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==} 1306 | engines: {node: '>=4'} 1307 | dependencies: 1308 | cssesc: 3.0.0 1309 | util-deprecate: 1.0.2 1310 | dev: true 1311 | 1312 | /postcss-svgo/5.0.2_postcss@8.3.5: 1313 | resolution: {integrity: sha512-YzQuFLZu3U3aheizD+B1joQ94vzPfE6BNUcSYuceNxlVnKKsOtdo6hL9/zyC168Q8EwfLSgaDSalsUGa9f2C0A==} 1314 | engines: {node: ^10 || ^12 || >=14.0} 1315 | peerDependencies: 1316 | postcss: ^8.2.15 1317 | dependencies: 1318 | postcss: 8.3.5 1319 | postcss-value-parser: 4.1.0 1320 | svgo: 2.3.0 1321 | dev: true 1322 | 1323 | /postcss-unique-selectors/5.0.1_postcss@8.3.5: 1324 | resolution: {integrity: sha512-gwi1NhHV4FMmPn+qwBNuot1sG1t2OmacLQ/AX29lzyggnjd+MnVD5uqQmpXO3J17KGL2WAxQruj1qTd3H0gG/w==} 1325 | engines: {node: ^10 || ^12 || >=14.0} 1326 | peerDependencies: 1327 | postcss: ^8.2.15 1328 | dependencies: 1329 | alphanum-sort: 1.0.2 1330 | postcss: 8.3.5 1331 | postcss-selector-parser: 6.0.6 1332 | uniqs: 2.0.0 1333 | dev: true 1334 | 1335 | /postcss-value-parser/3.3.1: 1336 | resolution: {integrity: sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==} 1337 | dev: true 1338 | 1339 | /postcss-value-parser/4.1.0: 1340 | resolution: {integrity: sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==} 1341 | dev: true 1342 | 1343 | /postcss/8.3.5: 1344 | resolution: {integrity: sha512-NxTuJocUhYGsMiMFHDUkmjSKT3EdH4/WbGF6GCi1NDGk+vbcUTun4fpbOqaPtD8IIsztA2ilZm2DhYCuyN58gA==} 1345 | engines: {node: ^10 || ^12 || >=14} 1346 | dependencies: 1347 | colorette: 1.2.2 1348 | nanoid: 3.1.23 1349 | source-map-js: 0.6.2 1350 | dev: true 1351 | 1352 | /prettier-plugin-svelte/2.3.1_prettier@2.2.1+svelte@3.38.3: 1353 | resolution: {integrity: sha512-F1/r6OYoBq8Zgurhs1MN25tdrhPw0JW5JjioPRqpxbYdmrZ3gY/DzHGs0B6zwd4DLyRsfGB2gqhxUCbHt/D1fw==} 1354 | peerDependencies: 1355 | prettier: ^1.16.4 || ^2.0.0 1356 | svelte: ^3.2.0 1357 | dependencies: 1358 | prettier: 2.2.1 1359 | svelte: 3.38.3 1360 | dev: true 1361 | 1362 | /prettier/2.2.1: 1363 | resolution: {integrity: sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==} 1364 | engines: {node: '>=10.13.0'} 1365 | hasBin: true 1366 | dev: true 1367 | 1368 | /pretty-hrtime/1.0.3: 1369 | resolution: {integrity: sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=} 1370 | engines: {node: '>= 0.8'} 1371 | dev: true 1372 | 1373 | /purgecss/4.0.3: 1374 | resolution: {integrity: sha512-PYOIn5ibRIP34PBU9zohUcCI09c7drPJJtTDAc0Q6QlRz2/CHQ8ywGLdE7ZhxU2VTqB7p5wkvj5Qcm05Rz3Jmw==} 1375 | hasBin: true 1376 | dependencies: 1377 | commander: 6.2.1 1378 | glob: 7.1.7 1379 | postcss: 8.3.5 1380 | postcss-selector-parser: 6.0.6 1381 | dev: true 1382 | 1383 | /queue-microtask/1.2.3: 1384 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1385 | dev: true 1386 | 1387 | /quick-lru/5.1.1: 1388 | resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} 1389 | engines: {node: '>=10'} 1390 | dev: true 1391 | 1392 | /readdirp/3.6.0: 1393 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1394 | engines: {node: '>=8.10.0'} 1395 | dependencies: 1396 | picomatch: 2.3.0 1397 | dev: true 1398 | 1399 | /reduce-css-calc/2.1.8: 1400 | resolution: {integrity: sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==} 1401 | dependencies: 1402 | css-unit-converter: 1.1.2 1403 | postcss-value-parser: 3.3.1 1404 | dev: true 1405 | 1406 | /require-relative/0.8.7: 1407 | resolution: {integrity: sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=} 1408 | dev: true 1409 | 1410 | /resolve-from/4.0.0: 1411 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1412 | engines: {node: '>=4'} 1413 | dev: true 1414 | 1415 | /resolve-from/5.0.0: 1416 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 1417 | engines: {node: '>=8'} 1418 | dev: true 1419 | 1420 | /resolve/1.20.0: 1421 | resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} 1422 | dependencies: 1423 | is-core-module: 2.4.0 1424 | path-parse: 1.0.7 1425 | dev: true 1426 | 1427 | /reusify/1.0.4: 1428 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1429 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1430 | dev: true 1431 | 1432 | /rgb-regex/1.0.1: 1433 | resolution: {integrity: sha1-wODWiC3w4jviVKR16O3UGRX+rrE=} 1434 | dev: true 1435 | 1436 | /rgba-regex/1.0.0: 1437 | resolution: {integrity: sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=} 1438 | dev: true 1439 | 1440 | /rimraf/3.0.2: 1441 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 1442 | hasBin: true 1443 | dependencies: 1444 | glob: 7.1.7 1445 | dev: true 1446 | 1447 | /rollup/2.52.2: 1448 | resolution: {integrity: sha512-4RlFC3k2BIHlUsJ9mGd8OO+9Lm2eDF5P7+6DNQOp5sx+7N/1tFM01kELfbxlMX3MxT6owvLB1ln4S3QvvQlbUA==} 1449 | engines: {node: '>=10.0.0'} 1450 | hasBin: true 1451 | optionalDependencies: 1452 | fsevents: 2.3.2 1453 | dev: true 1454 | 1455 | /run-parallel/1.2.0: 1456 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1457 | dependencies: 1458 | queue-microtask: 1.2.3 1459 | dev: true 1460 | 1461 | /sade/1.7.4: 1462 | resolution: {integrity: sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==} 1463 | engines: {node: '>= 6'} 1464 | dependencies: 1465 | mri: 1.1.6 1466 | dev: true 1467 | 1468 | /simple-swizzle/0.2.2: 1469 | resolution: {integrity: sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=} 1470 | dependencies: 1471 | is-arrayish: 0.3.2 1472 | dev: true 1473 | 1474 | /source-map-js/0.6.2: 1475 | resolution: {integrity: sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==} 1476 | engines: {node: '>=0.10.0'} 1477 | dev: true 1478 | 1479 | /source-map/0.6.1: 1480 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1481 | engines: {node: '>=0.10.0'} 1482 | dev: true 1483 | 1484 | /stable/0.1.8: 1485 | resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} 1486 | dev: true 1487 | 1488 | /strip-indent/3.0.0: 1489 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 1490 | engines: {node: '>=8'} 1491 | dependencies: 1492 | min-indent: 1.0.1 1493 | dev: true 1494 | 1495 | /stylehacks/5.0.1_postcss@8.3.5: 1496 | resolution: {integrity: sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA==} 1497 | engines: {node: ^10 || ^12 || >=14.0} 1498 | peerDependencies: 1499 | postcss: ^8.2.15 1500 | dependencies: 1501 | browserslist: 4.16.6 1502 | postcss: 8.3.5 1503 | postcss-selector-parser: 6.0.6 1504 | dev: true 1505 | 1506 | /supports-color/5.5.0: 1507 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 1508 | engines: {node: '>=4'} 1509 | dependencies: 1510 | has-flag: 3.0.0 1511 | dev: true 1512 | 1513 | /supports-color/7.2.0: 1514 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1515 | engines: {node: '>=8'} 1516 | dependencies: 1517 | has-flag: 4.0.0 1518 | dev: true 1519 | 1520 | /svelte-hmr/0.14.4_svelte@3.38.3: 1521 | resolution: {integrity: sha512-kItFF7vqzStckSigoFmMnxJpTOdB9TWnQAW6Js+yAB4277tLbJIIE5KBlGHNmJNpA7MguqidsPB27Uw5UzQPCA==} 1522 | peerDependencies: 1523 | svelte: '>=3.19.0' 1524 | dependencies: 1525 | svelte: 3.38.3 1526 | dev: true 1527 | 1528 | /svelte-preprocess/4.7.3_7d4d22e7287a4965435cb62392efd75a: 1529 | resolution: {integrity: sha512-Zx1/xLeGOIBlZMGPRCaXtlMe4ZA0faato5Dc3CosEqwu75MIEPuOstdkH6cy+RYTUYynoxzNaDxkPX4DbrPwRA==} 1530 | engines: {node: '>= 9.11.2'} 1531 | requiresBuild: true 1532 | peerDependencies: 1533 | '@babel/core': ^7.10.2 1534 | coffeescript: ^2.5.1 1535 | less: ^3.11.3 1536 | node-sass: '*' 1537 | postcss: ^7 || ^8 1538 | postcss-load-config: ^2.1.0 || ^3.0.0 1539 | pug: ^3.0.0 1540 | sass: ^1.26.8 1541 | stylus: ^0.54.7 1542 | sugarss: ^2.0.0 1543 | svelte: ^3.23.0 1544 | typescript: ^3.9.5 || ^4.0.0 1545 | peerDependenciesMeta: 1546 | '@babel/core': 1547 | optional: true 1548 | coffeescript: 1549 | optional: true 1550 | less: 1551 | optional: true 1552 | node-sass: 1553 | optional: true 1554 | postcss: 1555 | optional: true 1556 | postcss-load-config: 1557 | optional: true 1558 | pug: 1559 | optional: true 1560 | sass: 1561 | optional: true 1562 | stylus: 1563 | optional: true 1564 | sugarss: 1565 | optional: true 1566 | typescript: 1567 | optional: true 1568 | dependencies: 1569 | '@types/pug': 2.0.4 1570 | '@types/sass': 1.16.0 1571 | detect-indent: 6.1.0 1572 | postcss: 8.3.5 1573 | postcss-load-config: 3.1.0 1574 | strip-indent: 3.0.0 1575 | svelte: 3.38.3 1576 | dev: true 1577 | 1578 | /svelte/3.38.3: 1579 | resolution: {integrity: sha512-N7bBZJH0iF24wsalFZF+fVYMUOigaAUQMIcEKHO3jstK/iL8VmP9xE+P0/a76+FkNcWt+TDv2Gx1taUoUscrvw==} 1580 | engines: {node: '>= 8'} 1581 | dev: true 1582 | 1583 | /svgo/2.3.0: 1584 | resolution: {integrity: sha512-fz4IKjNO6HDPgIQxu4IxwtubtbSfGEAJUq/IXyTPIkGhWck/faiiwfkvsB8LnBkKLvSoyNNIY6d13lZprJMc9Q==} 1585 | engines: {node: '>=10.13.0'} 1586 | hasBin: true 1587 | dependencies: 1588 | '@trysound/sax': 0.1.1 1589 | chalk: 4.1.1 1590 | commander: 7.2.0 1591 | css-select: 3.1.2 1592 | css-tree: 1.1.3 1593 | csso: 4.2.0 1594 | stable: 0.1.8 1595 | dev: true 1596 | 1597 | /tailwindcss/2.2.2_72be89de93206f86f2d67dd5290ec14d: 1598 | resolution: {integrity: sha512-OzFWhlnfrO3JXZKHQiqZcb0Wwl3oJSmQ7PvT2jdIgCjV5iUoAyql9bb9ZLCSBI5TYXmawujXAoNxXVfP5Auy/Q==} 1599 | engines: {node: '>=12.13.0'} 1600 | hasBin: true 1601 | peerDependencies: 1602 | autoprefixer: ^10.0.2 1603 | postcss: ^8.0.9 1604 | dependencies: 1605 | '@fullhuman/postcss-purgecss': 4.0.3_postcss@8.3.5 1606 | arg: 5.0.0 1607 | autoprefixer: 10.2.6_postcss@8.3.5 1608 | bytes: 3.1.0 1609 | chalk: 4.1.1 1610 | chokidar: 3.5.2 1611 | color: 3.1.3 1612 | cosmiconfig: 7.0.0 1613 | detective: 5.2.0 1614 | didyoumean: 1.2.1 1615 | dlv: 1.1.3 1616 | fast-glob: 3.2.5 1617 | fs-extra: 10.0.0 1618 | glob-parent: 6.0.0 1619 | html-tags: 3.1.0 1620 | is-glob: 4.0.1 1621 | lodash: 4.17.21 1622 | lodash.topath: 4.5.2 1623 | modern-normalize: 1.1.0 1624 | node-emoji: 1.10.0 1625 | normalize-path: 3.0.0 1626 | object-hash: 2.2.0 1627 | postcss: 8.3.5 1628 | postcss-js: 3.0.3 1629 | postcss-load-config: 3.1.0 1630 | postcss-nested: 5.0.5_postcss@8.3.5 1631 | postcss-selector-parser: 6.0.6 1632 | postcss-value-parser: 4.1.0 1633 | pretty-hrtime: 1.0.3 1634 | quick-lru: 5.1.1 1635 | reduce-css-calc: 2.1.8 1636 | resolve: 1.20.0 1637 | tmp: 0.2.1 1638 | transitivePeerDependencies: 1639 | - ts-node 1640 | dev: true 1641 | 1642 | /timsort/0.3.0: 1643 | resolution: {integrity: sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=} 1644 | dev: true 1645 | 1646 | /tiny-glob/0.2.9: 1647 | resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} 1648 | dependencies: 1649 | globalyzer: 0.1.0 1650 | globrex: 0.1.2 1651 | dev: true 1652 | 1653 | /tmp/0.2.1: 1654 | resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} 1655 | engines: {node: '>=8.17.0'} 1656 | dependencies: 1657 | rimraf: 3.0.2 1658 | dev: true 1659 | 1660 | /to-regex-range/5.0.1: 1661 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1662 | engines: {node: '>=8.0'} 1663 | dependencies: 1664 | is-number: 7.0.0 1665 | dev: true 1666 | 1667 | /uniqs/2.0.0: 1668 | resolution: {integrity: sha1-/+3ks2slKQaW5uFl1KWe25mOawI=} 1669 | dev: true 1670 | 1671 | /universalify/2.0.0: 1672 | resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} 1673 | engines: {node: '>= 10.0.0'} 1674 | dev: true 1675 | 1676 | /util-deprecate/1.0.2: 1677 | resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} 1678 | dev: true 1679 | 1680 | /vendors/1.0.4: 1681 | resolution: {integrity: sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==} 1682 | dev: true 1683 | 1684 | /vite/2.3.8: 1685 | resolution: {integrity: sha512-QiEx+iqNnJntSgSF2fWRQvRey9pORIrtNJzNyBJXwc+BdzWs83FQolX84cTBo393cfhObrtWa6180dAa4NLDiQ==} 1686 | engines: {node: '>=12.0.0'} 1687 | hasBin: true 1688 | dependencies: 1689 | esbuild: 0.12.9 1690 | postcss: 8.3.5 1691 | resolve: 1.20.0 1692 | rollup: 2.52.2 1693 | optionalDependencies: 1694 | fsevents: 2.3.2 1695 | dev: true 1696 | 1697 | /wrappy/1.0.2: 1698 | resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} 1699 | dev: true 1700 | 1701 | /xtend/4.0.2: 1702 | resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} 1703 | engines: {node: '>=0.4'} 1704 | dev: true 1705 | 1706 | /yaml/1.10.2: 1707 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 1708 | engines: {node: '>= 6'} 1709 | dev: true 1710 | -------------------------------------------------------------------------------- /frontend/postcss.config.cjs: -------------------------------------------------------------------------------- 1 | const tailwindcss = require("tailwindcss"); 2 | const autoprefixer = require("autoprefixer"); 3 | const cssnano = require("cssnano"); 4 | 5 | const mode = process.env.NODE_ENV; 6 | const dev = mode === "development"; 7 | 8 | const config = { 9 | plugins: [ 10 | //Some plugins, like postcss-nested, need to run before Tailwind, 11 | tailwindcss(), 12 | //But others, like autoprefixer, need to run after, 13 | autoprefixer(), 14 | !dev && cssnano({ 15 | preset: "default", 16 | }) 17 | ], 18 | }; 19 | 20 | module.exports = config; -------------------------------------------------------------------------------- /frontend/src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | %svelte.head% 8 | 9 | 10 |24 | Visit kit.svelte.dev to read the documentation 25 |
26 | {#each products as product} 27 |{product.name}
28 | {/each} 29 |