├── .gitignore ├── README.md ├── build.js ├── package-lock.json ├── package.json ├── src ├── components │ ├── card.html │ └── notify.html ├── index.html └── tailwind.css └── tailwind.config.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | dist/* 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Single File Components for Alpine.js 2 | 3 | Svelte-inspired single-file components compiler for Alpine.js 4 | 5 | ## About 6 | 7 | I love the simplicity of Alpine.js, but on bigger projects it can become a challenge to keep your code organized and modular. 8 | 9 | Inspired by the way Svelte compiles your single file components into browser-friendly javascript, I created a simple compiler for Alpinejs. You write your code in single-file-component-style, and the build script compiles it to browser-friendly javascript, html and css. It also features **live-reload**, so every time you save changes to a single file component, the build script compiles your code and runs it. Although this is a basic POC, in its current form it does help you to better organize your code. 10 | 11 | ## Tailwind CSS integrated 12 | 13 | Because Alpine.js and Tailwind go so well together, I've also integrated Tailwind into the build process: every time you save a file in the `src` directory, Tailwind automatically scans your components to see which classes you've used. It then rebuilds the tailwind.css file in the `dist` folder. 14 | 15 | If you don't want to use Tailwind, just remove the following part from package.json: 16 | 17 | `&& npx tailwindcss -i ./src/tailwind.css -o ./dist/tailwind.css` 18 | 19 | ## How to install? 20 | 21 | 1. run `npx degit https://github.com/dashpilot/single-file-components-for-alpinejs` 22 | 2. run `npm install` and then `npm run dev` to run the example components 23 | 24 | ## How to create a single-file component? 25 | 26 | Create a new .html file in `src/components`, with the following structure: 27 | 28 | 34 | 35 | 46 | 47 | 54 | 55 | The order of the template-, script- and css- tags is up to your own preference. When you run `npm run dev` or `npm run build` the compiler goes through all the components and automatically splits and minifies/uglifies the JS, CSS and HTML into dist/assets. It also copies index.html to the dist folder. 56 | 57 | To load a component on the page, create a custom element in index.html that corresponds to the filename of your component. So if your component is called `card.html`, create a custom element `` in index.html. You can also load multiple instances of the component on the page, without duplicating the javascript or CSS. 58 | 59 | Take a look at `components/card.html` to see how well this concept actually fits Alpinejs: each component has its own data-'controller', while sharing data between components is easy via the global store (in index.html). And of course, all templating-directives are available to you (x-for, x-if, x-text, etc.) 60 | 61 | ## What it's not 62 | 63 | This script is simply meant to help you write Alpine.js code in a more modular way, but isn't a module bundler or js framework. Let me know if there are any features/improvements you'd like to see. 64 | 65 | ## Press the :star: button 66 | 67 | Don't forget to press the :star: button to let me know I should continue improving this project. 68 | -------------------------------------------------------------------------------- /build.js: -------------------------------------------------------------------------------- 1 | const fs = require("fs"); 2 | const path = require("path"); 3 | const { 4 | minify 5 | } = require("terser"); 6 | const { 7 | parse 8 | } = require("node-html-parser"); 9 | const CleanCSS = require("clean-css"); 10 | 11 | if (!fs.existsSync('./dist')) { 12 | fs.mkdirSync('./dist', 0744); 13 | fs.mkdirSync('./dist/assets', 0744); 14 | } 15 | 16 | var index = fs.readFileSync("./src/index.html", "utf8"); 17 | fs.writeFileSync("./dist/index.html", index, "utf8"); 18 | 19 | var data = []; 20 | data.script = ""; 21 | data.style = ""; 22 | data.template = ""; 23 | 24 | const folder = "./src/components/"; 25 | let files = fs.readdirSync(folder); 26 | let i = 0; 27 | files.forEach(function(file) { 28 | extractTags(folder + file, data); 29 | i++; 30 | }); 31 | 32 | var output = new CleanCSS().minify(data.style); 33 | fs.writeFileSync("./dist/assets/app.min.css", output.styles, "utf8"); 34 | 35 | minifyJs(data); 36 | 37 | // helpers 38 | 39 | function extractTags(filepath, data) { 40 | var file = fs.readFileSync(filepath, "utf8"); 41 | var filename = path.basename(filepath, '.html'); 42 | 43 | const root = parse(file); 44 | if (root.querySelector("template")) { 45 | data.template += 46 | 'document.querySelectorAll("' + filename + '").forEach(function(e){' + 47 | 'e.innerHTML = `' + 48 | root.querySelector("template").innerHTML.replace(/\s\s+/g, ' ') + 49 | '`' + 50 | "})\n"; 51 | } 52 | if (root.querySelector("script")) { 53 | data.script += root.querySelector("script").text + "\n"; 54 | } 55 | if (root.querySelector("style")) { 56 | data.style += root.querySelector("style").text; 57 | } 58 | 59 | //console.log(data); 60 | } 61 | 62 | async function minifyJs(data) { 63 | let combined = data.template + ' ' + data.script; 64 | var result = await minify(combined, { 65 | sourceMap: true 66 | }); 67 | fs.writeFileSync("./dist/assets/app.min.js", result.code, "utf8"); 68 | } -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "single-file-components-for-alpinejs", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "single-file-components-for-alpinejs", 9 | "version": "1.0.0", 10 | "license": "ISC", 11 | "dependencies": { 12 | "merge-files": "^0.1.2", 13 | "node-html-parser": "^1.3.1", 14 | "path": "^0.12.7", 15 | "terser": "^5.3.5" 16 | }, 17 | "devDependencies": { 18 | "clean-css": "^4.2.3", 19 | "dev-refresh": "^1.2.1", 20 | "tailwindcss": "^3.0.15", 21 | "watch": "^0.13.0" 22 | } 23 | }, 24 | "node_modules/@jridgewell/gen-mapping": { 25 | "version": "0.3.2", 26 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", 27 | "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", 28 | "dependencies": { 29 | "@jridgewell/set-array": "^1.0.1", 30 | "@jridgewell/sourcemap-codec": "^1.4.10", 31 | "@jridgewell/trace-mapping": "^0.3.9" 32 | }, 33 | "engines": { 34 | "node": ">=6.0.0" 35 | } 36 | }, 37 | "node_modules/@jridgewell/resolve-uri": { 38 | "version": "3.1.0", 39 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", 40 | "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", 41 | "engines": { 42 | "node": ">=6.0.0" 43 | } 44 | }, 45 | "node_modules/@jridgewell/set-array": { 46 | "version": "1.1.2", 47 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", 48 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", 49 | "engines": { 50 | "node": ">=6.0.0" 51 | } 52 | }, 53 | "node_modules/@jridgewell/source-map": { 54 | "version": "0.3.2", 55 | "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", 56 | "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", 57 | "dependencies": { 58 | "@jridgewell/gen-mapping": "^0.3.0", 59 | "@jridgewell/trace-mapping": "^0.3.9" 60 | } 61 | }, 62 | "node_modules/@jridgewell/sourcemap-codec": { 63 | "version": "1.4.14", 64 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", 65 | "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" 66 | }, 67 | "node_modules/@jridgewell/trace-mapping": { 68 | "version": "0.3.14", 69 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", 70 | "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", 71 | "dependencies": { 72 | "@jridgewell/resolve-uri": "^3.0.3", 73 | "@jridgewell/sourcemap-codec": "^1.4.10" 74 | } 75 | }, 76 | "node_modules/@nodelib/fs.scandir": { 77 | "version": "2.1.5", 78 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 79 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 80 | "dev": true, 81 | "dependencies": { 82 | "@nodelib/fs.stat": "2.0.5", 83 | "run-parallel": "^1.1.9" 84 | }, 85 | "engines": { 86 | "node": ">= 8" 87 | } 88 | }, 89 | "node_modules/@nodelib/fs.stat": { 90 | "version": "2.0.5", 91 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 92 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 93 | "dev": true, 94 | "engines": { 95 | "node": ">= 8" 96 | } 97 | }, 98 | "node_modules/@nodelib/fs.walk": { 99 | "version": "1.2.8", 100 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 101 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 102 | "dev": true, 103 | "dependencies": { 104 | "@nodelib/fs.scandir": "2.1.5", 105 | "fastq": "^1.6.0" 106 | }, 107 | "engines": { 108 | "node": ">= 8" 109 | } 110 | }, 111 | "node_modules/acorn": { 112 | "version": "7.4.1", 113 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", 114 | "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", 115 | "dev": true, 116 | "bin": { 117 | "acorn": "bin/acorn" 118 | }, 119 | "engines": { 120 | "node": ">=0.4.0" 121 | } 122 | }, 123 | "node_modules/acorn-node": { 124 | "version": "1.8.2", 125 | "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", 126 | "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", 127 | "dev": true, 128 | "dependencies": { 129 | "acorn": "^7.0.0", 130 | "acorn-walk": "^7.0.0", 131 | "xtend": "^4.0.2" 132 | } 133 | }, 134 | "node_modules/acorn-walk": { 135 | "version": "7.2.0", 136 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", 137 | "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", 138 | "dev": true, 139 | "engines": { 140 | "node": ">=0.4.0" 141 | } 142 | }, 143 | "node_modules/anymatch": { 144 | "version": "3.1.2", 145 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", 146 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", 147 | "dev": true, 148 | "dependencies": { 149 | "normalize-path": "^3.0.0", 150 | "picomatch": "^2.0.4" 151 | }, 152 | "engines": { 153 | "node": ">= 8" 154 | } 155 | }, 156 | "node_modules/arg": { 157 | "version": "5.0.2", 158 | "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", 159 | "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", 160 | "dev": true 161 | }, 162 | "node_modules/binary-extensions": { 163 | "version": "2.2.0", 164 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 165 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 166 | "dev": true, 167 | "engines": { 168 | "node": ">=8" 169 | } 170 | }, 171 | "node_modules/braces": { 172 | "version": "3.0.3", 173 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", 174 | "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", 175 | "dev": true, 176 | "license": "MIT", 177 | "dependencies": { 178 | "fill-range": "^7.1.1" 179 | }, 180 | "engines": { 181 | "node": ">=8" 182 | } 183 | }, 184 | "node_modules/buffer-from": { 185 | "version": "1.1.2", 186 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", 187 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" 188 | }, 189 | "node_modules/camelcase-css": { 190 | "version": "2.0.1", 191 | "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", 192 | "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", 193 | "dev": true, 194 | "engines": { 195 | "node": ">= 6" 196 | } 197 | }, 198 | "node_modules/chokidar": { 199 | "version": "3.5.3", 200 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 201 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 202 | "dev": true, 203 | "funding": [ 204 | { 205 | "type": "individual", 206 | "url": "https://paulmillr.com/funding/" 207 | } 208 | ], 209 | "dependencies": { 210 | "anymatch": "~3.1.2", 211 | "braces": "~3.0.2", 212 | "glob-parent": "~5.1.2", 213 | "is-binary-path": "~2.1.0", 214 | "is-glob": "~4.0.1", 215 | "normalize-path": "~3.0.0", 216 | "readdirp": "~3.6.0" 217 | }, 218 | "engines": { 219 | "node": ">= 8.10.0" 220 | }, 221 | "optionalDependencies": { 222 | "fsevents": "~2.3.2" 223 | } 224 | }, 225 | "node_modules/chokidar/node_modules/glob-parent": { 226 | "version": "5.1.2", 227 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 228 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 229 | "dev": true, 230 | "dependencies": { 231 | "is-glob": "^4.0.1" 232 | }, 233 | "engines": { 234 | "node": ">= 6" 235 | } 236 | }, 237 | "node_modules/clean-css": { 238 | "version": "4.2.3", 239 | "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", 240 | "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", 241 | "dev": true, 242 | "dependencies": { 243 | "source-map": "~0.6.0" 244 | }, 245 | "engines": { 246 | "node": ">= 4.0" 247 | } 248 | }, 249 | "node_modules/color-name": { 250 | "version": "1.1.4", 251 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 252 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 253 | "dev": true 254 | }, 255 | "node_modules/colors": { 256 | "version": "1.4.0", 257 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", 258 | "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", 259 | "dev": true, 260 | "engines": { 261 | "node": ">=0.1.90" 262 | } 263 | }, 264 | "node_modules/commander": { 265 | "version": "2.20.3", 266 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", 267 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" 268 | }, 269 | "node_modules/core-util-is": { 270 | "version": "1.0.2", 271 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 272 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 273 | }, 274 | "node_modules/cssesc": { 275 | "version": "3.0.0", 276 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", 277 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", 278 | "dev": true, 279 | "bin": { 280 | "cssesc": "bin/cssesc" 281 | }, 282 | "engines": { 283 | "node": ">=4" 284 | } 285 | }, 286 | "node_modules/defined": { 287 | "version": "1.0.0", 288 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", 289 | "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==", 290 | "dev": true 291 | }, 292 | "node_modules/detective": { 293 | "version": "5.2.1", 294 | "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", 295 | "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", 296 | "dev": true, 297 | "dependencies": { 298 | "acorn-node": "^1.8.2", 299 | "defined": "^1.0.0", 300 | "minimist": "^1.2.6" 301 | }, 302 | "bin": { 303 | "detective": "bin/detective.js" 304 | }, 305 | "engines": { 306 | "node": ">=0.8.0" 307 | } 308 | }, 309 | "node_modules/dev-refresh": { 310 | "version": "1.2.1", 311 | "resolved": "https://registry.npmjs.org/dev-refresh/-/dev-refresh-1.2.1.tgz", 312 | "integrity": "sha512-qKJYVTh1HkQPsgJDzoRlZ9NyTIbxy2tAYMndjYAU3dpZasm+aD5ZCdks8G0SfNzheZC1T4WMwYZpLgvneXzwcw==", 313 | "dev": true, 314 | "dependencies": { 315 | "colors": "^1.3.3", 316 | "minimist": "^1.2.0", 317 | "node-watch": "^0.6.2", 318 | "open": "^6.4.0", 319 | "webframe": "^0.9.0", 320 | "ws": "^7.1.0" 321 | }, 322 | "bin": { 323 | "dev-refresh": "cli.js" 324 | } 325 | }, 326 | "node_modules/didyoumean": { 327 | "version": "1.2.2", 328 | "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", 329 | "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", 330 | "dev": true 331 | }, 332 | "node_modules/dlv": { 333 | "version": "1.1.3", 334 | "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", 335 | "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", 336 | "dev": true 337 | }, 338 | "node_modules/fast-glob": { 339 | "version": "3.2.11", 340 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", 341 | "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", 342 | "dev": true, 343 | "dependencies": { 344 | "@nodelib/fs.stat": "^2.0.2", 345 | "@nodelib/fs.walk": "^1.2.3", 346 | "glob-parent": "^5.1.2", 347 | "merge2": "^1.3.0", 348 | "micromatch": "^4.0.4" 349 | }, 350 | "engines": { 351 | "node": ">=8.6.0" 352 | } 353 | }, 354 | "node_modules/fast-glob/node_modules/glob-parent": { 355 | "version": "5.1.2", 356 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 357 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 358 | "dev": true, 359 | "dependencies": { 360 | "is-glob": "^4.0.1" 361 | }, 362 | "engines": { 363 | "node": ">= 6" 364 | } 365 | }, 366 | "node_modules/fastq": { 367 | "version": "1.13.0", 368 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", 369 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", 370 | "dev": true, 371 | "dependencies": { 372 | "reusify": "^1.0.4" 373 | } 374 | }, 375 | "node_modules/fill-range": { 376 | "version": "7.1.1", 377 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", 378 | "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", 379 | "dev": true, 380 | "license": "MIT", 381 | "dependencies": { 382 | "to-regex-range": "^5.0.1" 383 | }, 384 | "engines": { 385 | "node": ">=8" 386 | } 387 | }, 388 | "node_modules/fsevents": { 389 | "version": "2.3.2", 390 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 391 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 392 | "dev": true, 393 | "hasInstallScript": true, 394 | "optional": true, 395 | "os": [ 396 | "darwin" 397 | ], 398 | "engines": { 399 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 400 | } 401 | }, 402 | "node_modules/function-bind": { 403 | "version": "1.1.1", 404 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 405 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 406 | "dev": true 407 | }, 408 | "node_modules/glob-parent": { 409 | "version": "6.0.2", 410 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 411 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 412 | "dev": true, 413 | "dependencies": { 414 | "is-glob": "^4.0.3" 415 | }, 416 | "engines": { 417 | "node": ">=10.13.0" 418 | } 419 | }, 420 | "node_modules/has": { 421 | "version": "1.0.3", 422 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 423 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 424 | "dev": true, 425 | "dependencies": { 426 | "function-bind": "^1.1.1" 427 | }, 428 | "engines": { 429 | "node": ">= 0.4.0" 430 | } 431 | }, 432 | "node_modules/he": { 433 | "version": "1.2.0", 434 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", 435 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", 436 | "bin": { 437 | "he": "bin/he" 438 | } 439 | }, 440 | "node_modules/inherits": { 441 | "version": "2.0.4", 442 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 443 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 444 | }, 445 | "node_modules/is-binary-path": { 446 | "version": "2.1.0", 447 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 448 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 449 | "dev": true, 450 | "dependencies": { 451 | "binary-extensions": "^2.0.0" 452 | }, 453 | "engines": { 454 | "node": ">=8" 455 | } 456 | }, 457 | "node_modules/is-core-module": { 458 | "version": "2.10.0", 459 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", 460 | "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", 461 | "dev": true, 462 | "dependencies": { 463 | "has": "^1.0.3" 464 | }, 465 | "funding": { 466 | "url": "https://github.com/sponsors/ljharb" 467 | } 468 | }, 469 | "node_modules/is-extglob": { 470 | "version": "2.1.1", 471 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 472 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 473 | "dev": true, 474 | "engines": { 475 | "node": ">=0.10.0" 476 | } 477 | }, 478 | "node_modules/is-glob": { 479 | "version": "4.0.3", 480 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 481 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 482 | "dev": true, 483 | "dependencies": { 484 | "is-extglob": "^2.1.1" 485 | }, 486 | "engines": { 487 | "node": ">=0.10.0" 488 | } 489 | }, 490 | "node_modules/is-number": { 491 | "version": "7.0.0", 492 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 493 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 494 | "dev": true, 495 | "license": "MIT", 496 | "engines": { 497 | "node": ">=0.12.0" 498 | } 499 | }, 500 | "node_modules/is-wsl": { 501 | "version": "1.1.0", 502 | "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", 503 | "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", 504 | "dev": true, 505 | "engines": { 506 | "node": ">=4" 507 | } 508 | }, 509 | "node_modules/isarray": { 510 | "version": "1.0.0", 511 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 512 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 513 | }, 514 | "node_modules/lilconfig": { 515 | "version": "2.0.6", 516 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", 517 | "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", 518 | "dev": true, 519 | "engines": { 520 | "node": ">=10" 521 | } 522 | }, 523 | "node_modules/merge-files": { 524 | "version": "0.1.2", 525 | "resolved": "https://registry.npmjs.org/merge-files/-/merge-files-0.1.2.tgz", 526 | "integrity": "sha512-WTvtH6ZwVy1/scvp1M+Re6PVni87QTjpSLAwxh0L+PlYIxc4VGFFpLjvP7jdJ43gaJ5n+RUIriJ6wKqmqvVVmg==", 527 | "dependencies": { 528 | "multistream": "^2.1.0" 529 | } 530 | }, 531 | "node_modules/merge2": { 532 | "version": "1.4.1", 533 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 534 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 535 | "dev": true, 536 | "engines": { 537 | "node": ">= 8" 538 | } 539 | }, 540 | "node_modules/micromatch": { 541 | "version": "4.0.8", 542 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", 543 | "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", 544 | "dev": true, 545 | "license": "MIT", 546 | "dependencies": { 547 | "braces": "^3.0.3", 548 | "picomatch": "^2.3.1" 549 | }, 550 | "engines": { 551 | "node": ">=8.6" 552 | } 553 | }, 554 | "node_modules/minimist": { 555 | "version": "1.2.6", 556 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", 557 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", 558 | "dev": true 559 | }, 560 | "node_modules/multistream": { 561 | "version": "2.1.1", 562 | "resolved": "https://registry.npmjs.org/multistream/-/multistream-2.1.1.tgz", 563 | "integrity": "sha512-xasv76hl6nr1dEy3lPvy7Ej7K/Lx3O/FCvwge8PeVJpciPPoNCbaANcNiBug3IpdvTveZUcAV0DJzdnUDMesNQ==", 564 | "dependencies": { 565 | "inherits": "^2.0.1", 566 | "readable-stream": "^2.0.5" 567 | } 568 | }, 569 | "node_modules/nanoid": { 570 | "version": "3.3.8", 571 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", 572 | "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", 573 | "dev": true, 574 | "funding": [ 575 | { 576 | "type": "github", 577 | "url": "https://github.com/sponsors/ai" 578 | } 579 | ], 580 | "license": "MIT", 581 | "bin": { 582 | "nanoid": "bin/nanoid.cjs" 583 | }, 584 | "engines": { 585 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 586 | } 587 | }, 588 | "node_modules/node-html-parser": { 589 | "version": "1.3.1", 590 | "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-1.3.1.tgz", 591 | "integrity": "sha512-AwYVI6GyEKj9NGoyMfSx4j5l7Axf7obQgLWGxtasLjED6RggTTQoq5ZRzjwSUfgSZ+Mv8Nzbi3pID0gFGqNUsA==", 592 | "dependencies": { 593 | "he": "1.2.0" 594 | } 595 | }, 596 | "node_modules/node-watch": { 597 | "version": "0.6.4", 598 | "resolved": "https://registry.npmjs.org/node-watch/-/node-watch-0.6.4.tgz", 599 | "integrity": "sha512-cI6CHzivIFESe8djiK3Wh90CtWQBxLwMem8x8S+2GSvCvFgoMuOKVlfJtQ/2v3Afg3wOnHl/+tXotEs8z5vOrg==", 600 | "dev": true, 601 | "engines": { 602 | "node": ">=6" 603 | } 604 | }, 605 | "node_modules/normalize-path": { 606 | "version": "3.0.0", 607 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 608 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 609 | "dev": true, 610 | "engines": { 611 | "node": ">=0.10.0" 612 | } 613 | }, 614 | "node_modules/object-hash": { 615 | "version": "3.0.0", 616 | "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", 617 | "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", 618 | "dev": true, 619 | "engines": { 620 | "node": ">= 6" 621 | } 622 | }, 623 | "node_modules/open": { 624 | "version": "6.4.0", 625 | "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", 626 | "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", 627 | "dev": true, 628 | "dependencies": { 629 | "is-wsl": "^1.1.0" 630 | }, 631 | "engines": { 632 | "node": ">=8" 633 | } 634 | }, 635 | "node_modules/path": { 636 | "version": "0.12.7", 637 | "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", 638 | "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", 639 | "dependencies": { 640 | "process": "^0.11.1", 641 | "util": "^0.10.3" 642 | } 643 | }, 644 | "node_modules/path-parse": { 645 | "version": "1.0.7", 646 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 647 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 648 | "dev": true 649 | }, 650 | "node_modules/picocolors": { 651 | "version": "1.1.1", 652 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", 653 | "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", 654 | "dev": true, 655 | "license": "ISC" 656 | }, 657 | "node_modules/picomatch": { 658 | "version": "2.3.1", 659 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 660 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 661 | "dev": true, 662 | "engines": { 663 | "node": ">=8.6" 664 | }, 665 | "funding": { 666 | "url": "https://github.com/sponsors/jonschlinkert" 667 | } 668 | }, 669 | "node_modules/pify": { 670 | "version": "2.3.0", 671 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 672 | "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", 673 | "dev": true, 674 | "engines": { 675 | "node": ">=0.10.0" 676 | } 677 | }, 678 | "node_modules/postcss": { 679 | "version": "8.5.2", 680 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz", 681 | "integrity": "sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==", 682 | "dev": true, 683 | "funding": [ 684 | { 685 | "type": "opencollective", 686 | "url": "https://opencollective.com/postcss/" 687 | }, 688 | { 689 | "type": "tidelift", 690 | "url": "https://tidelift.com/funding/github/npm/postcss" 691 | }, 692 | { 693 | "type": "github", 694 | "url": "https://github.com/sponsors/ai" 695 | } 696 | ], 697 | "license": "MIT", 698 | "dependencies": { 699 | "nanoid": "^3.3.8", 700 | "picocolors": "^1.1.1", 701 | "source-map-js": "^1.2.1" 702 | }, 703 | "engines": { 704 | "node": "^10 || ^12 || >=14" 705 | } 706 | }, 707 | "node_modules/postcss-import": { 708 | "version": "14.1.0", 709 | "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", 710 | "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", 711 | "dev": true, 712 | "dependencies": { 713 | "postcss-value-parser": "^4.0.0", 714 | "read-cache": "^1.0.0", 715 | "resolve": "^1.1.7" 716 | }, 717 | "engines": { 718 | "node": ">=10.0.0" 719 | }, 720 | "peerDependencies": { 721 | "postcss": "^8.0.0" 722 | } 723 | }, 724 | "node_modules/postcss-js": { 725 | "version": "4.0.0", 726 | "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", 727 | "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", 728 | "dev": true, 729 | "dependencies": { 730 | "camelcase-css": "^2.0.1" 731 | }, 732 | "engines": { 733 | "node": "^12 || ^14 || >= 16" 734 | }, 735 | "funding": { 736 | "type": "opencollective", 737 | "url": "https://opencollective.com/postcss/" 738 | }, 739 | "peerDependencies": { 740 | "postcss": "^8.3.3" 741 | } 742 | }, 743 | "node_modules/postcss-load-config": { 744 | "version": "3.1.4", 745 | "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", 746 | "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", 747 | "dev": true, 748 | "dependencies": { 749 | "lilconfig": "^2.0.5", 750 | "yaml": "^1.10.2" 751 | }, 752 | "engines": { 753 | "node": ">= 10" 754 | }, 755 | "funding": { 756 | "type": "opencollective", 757 | "url": "https://opencollective.com/postcss/" 758 | }, 759 | "peerDependencies": { 760 | "postcss": ">=8.0.9", 761 | "ts-node": ">=9.0.0" 762 | }, 763 | "peerDependenciesMeta": { 764 | "postcss": { 765 | "optional": true 766 | }, 767 | "ts-node": { 768 | "optional": true 769 | } 770 | } 771 | }, 772 | "node_modules/postcss-nested": { 773 | "version": "5.0.6", 774 | "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", 775 | "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", 776 | "dev": true, 777 | "dependencies": { 778 | "postcss-selector-parser": "^6.0.6" 779 | }, 780 | "engines": { 781 | "node": ">=12.0" 782 | }, 783 | "funding": { 784 | "type": "opencollective", 785 | "url": "https://opencollective.com/postcss/" 786 | }, 787 | "peerDependencies": { 788 | "postcss": "^8.2.14" 789 | } 790 | }, 791 | "node_modules/postcss-selector-parser": { 792 | "version": "6.0.10", 793 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", 794 | "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", 795 | "dev": true, 796 | "dependencies": { 797 | "cssesc": "^3.0.0", 798 | "util-deprecate": "^1.0.2" 799 | }, 800 | "engines": { 801 | "node": ">=4" 802 | } 803 | }, 804 | "node_modules/postcss-value-parser": { 805 | "version": "4.2.0", 806 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", 807 | "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", 808 | "dev": true 809 | }, 810 | "node_modules/process": { 811 | "version": "0.11.10", 812 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", 813 | "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", 814 | "engines": { 815 | "node": ">= 0.6.0" 816 | } 817 | }, 818 | "node_modules/process-nextick-args": { 819 | "version": "2.0.1", 820 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 821 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 822 | }, 823 | "node_modules/queue-microtask": { 824 | "version": "1.2.3", 825 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 826 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 827 | "dev": true, 828 | "funding": [ 829 | { 830 | "type": "github", 831 | "url": "https://github.com/sponsors/feross" 832 | }, 833 | { 834 | "type": "patreon", 835 | "url": "https://www.patreon.com/feross" 836 | }, 837 | { 838 | "type": "consulting", 839 | "url": "https://feross.org/support" 840 | } 841 | ] 842 | }, 843 | "node_modules/quick-lru": { 844 | "version": "5.1.1", 845 | "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", 846 | "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", 847 | "dev": true, 848 | "engines": { 849 | "node": ">=10" 850 | }, 851 | "funding": { 852 | "url": "https://github.com/sponsors/sindresorhus" 853 | } 854 | }, 855 | "node_modules/read-cache": { 856 | "version": "1.0.0", 857 | "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", 858 | "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", 859 | "dev": true, 860 | "dependencies": { 861 | "pify": "^2.3.0" 862 | } 863 | }, 864 | "node_modules/readable-stream": { 865 | "version": "2.3.7", 866 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 867 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 868 | "dependencies": { 869 | "core-util-is": "~1.0.0", 870 | "inherits": "~2.0.3", 871 | "isarray": "~1.0.0", 872 | "process-nextick-args": "~2.0.0", 873 | "safe-buffer": "~5.1.1", 874 | "string_decoder": "~1.1.1", 875 | "util-deprecate": "~1.0.1" 876 | } 877 | }, 878 | "node_modules/readdirp": { 879 | "version": "3.6.0", 880 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 881 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 882 | "dev": true, 883 | "dependencies": { 884 | "picomatch": "^2.2.1" 885 | }, 886 | "engines": { 887 | "node": ">=8.10.0" 888 | } 889 | }, 890 | "node_modules/resolve": { 891 | "version": "1.22.1", 892 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", 893 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", 894 | "dev": true, 895 | "dependencies": { 896 | "is-core-module": "^2.9.0", 897 | "path-parse": "^1.0.7", 898 | "supports-preserve-symlinks-flag": "^1.0.0" 899 | }, 900 | "bin": { 901 | "resolve": "bin/resolve" 902 | }, 903 | "funding": { 904 | "url": "https://github.com/sponsors/ljharb" 905 | } 906 | }, 907 | "node_modules/reusify": { 908 | "version": "1.0.4", 909 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 910 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 911 | "dev": true, 912 | "engines": { 913 | "iojs": ">=1.0.0", 914 | "node": ">=0.10.0" 915 | } 916 | }, 917 | "node_modules/run-parallel": { 918 | "version": "1.2.0", 919 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 920 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 921 | "dev": true, 922 | "funding": [ 923 | { 924 | "type": "github", 925 | "url": "https://github.com/sponsors/feross" 926 | }, 927 | { 928 | "type": "patreon", 929 | "url": "https://www.patreon.com/feross" 930 | }, 931 | { 932 | "type": "consulting", 933 | "url": "https://feross.org/support" 934 | } 935 | ], 936 | "dependencies": { 937 | "queue-microtask": "^1.2.2" 938 | } 939 | }, 940 | "node_modules/safe-buffer": { 941 | "version": "5.1.2", 942 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 943 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 944 | }, 945 | "node_modules/source-map": { 946 | "version": "0.6.1", 947 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 948 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 949 | "engines": { 950 | "node": ">=0.10.0" 951 | } 952 | }, 953 | "node_modules/source-map-js": { 954 | "version": "1.2.1", 955 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", 956 | "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", 957 | "dev": true, 958 | "license": "BSD-3-Clause", 959 | "engines": { 960 | "node": ">=0.10.0" 961 | } 962 | }, 963 | "node_modules/source-map-support": { 964 | "version": "0.5.21", 965 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", 966 | "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", 967 | "dependencies": { 968 | "buffer-from": "^1.0.0", 969 | "source-map": "^0.6.0" 970 | } 971 | }, 972 | "node_modules/string_decoder": { 973 | "version": "1.1.1", 974 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 975 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 976 | "dependencies": { 977 | "safe-buffer": "~5.1.0" 978 | } 979 | }, 980 | "node_modules/supports-preserve-symlinks-flag": { 981 | "version": "1.0.0", 982 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 983 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 984 | "dev": true, 985 | "engines": { 986 | "node": ">= 0.4" 987 | }, 988 | "funding": { 989 | "url": "https://github.com/sponsors/ljharb" 990 | } 991 | }, 992 | "node_modules/tailwindcss": { 993 | "version": "3.1.7", 994 | "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.1.7.tgz", 995 | "integrity": "sha512-r7mgumZ3k0InfVPpGWcX8X/Ut4xBfv+1O/+C73ar/m01LxGVzWvPxF/w6xIUPEztrCoz7axfx0SMdh8FH8ZvRQ==", 996 | "dev": true, 997 | "dependencies": { 998 | "arg": "^5.0.2", 999 | "chokidar": "^3.5.3", 1000 | "color-name": "^1.1.4", 1001 | "detective": "^5.2.1", 1002 | "didyoumean": "^1.2.2", 1003 | "dlv": "^1.1.3", 1004 | "fast-glob": "^3.2.11", 1005 | "glob-parent": "^6.0.2", 1006 | "is-glob": "^4.0.3", 1007 | "lilconfig": "^2.0.6", 1008 | "normalize-path": "^3.0.0", 1009 | "object-hash": "^3.0.0", 1010 | "picocolors": "^1.0.0", 1011 | "postcss": "^8.4.14", 1012 | "postcss-import": "^14.1.0", 1013 | "postcss-js": "^4.0.0", 1014 | "postcss-load-config": "^3.1.4", 1015 | "postcss-nested": "5.0.6", 1016 | "postcss-selector-parser": "^6.0.10", 1017 | "postcss-value-parser": "^4.2.0", 1018 | "quick-lru": "^5.1.1", 1019 | "resolve": "^1.22.1" 1020 | }, 1021 | "bin": { 1022 | "tailwind": "lib/cli.js", 1023 | "tailwindcss": "lib/cli.js" 1024 | }, 1025 | "engines": { 1026 | "node": ">=12.13.0" 1027 | }, 1028 | "peerDependencies": { 1029 | "postcss": "^8.0.9" 1030 | } 1031 | }, 1032 | "node_modules/terser": { 1033 | "version": "5.14.2", 1034 | "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", 1035 | "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", 1036 | "dependencies": { 1037 | "@jridgewell/source-map": "^0.3.2", 1038 | "acorn": "^8.5.0", 1039 | "commander": "^2.20.0", 1040 | "source-map-support": "~0.5.20" 1041 | }, 1042 | "bin": { 1043 | "terser": "bin/terser" 1044 | }, 1045 | "engines": { 1046 | "node": ">=10" 1047 | } 1048 | }, 1049 | "node_modules/terser/node_modules/acorn": { 1050 | "version": "8.8.0", 1051 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", 1052 | "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", 1053 | "bin": { 1054 | "acorn": "bin/acorn" 1055 | }, 1056 | "engines": { 1057 | "node": ">=0.4.0" 1058 | } 1059 | }, 1060 | "node_modules/to-regex-range": { 1061 | "version": "5.0.1", 1062 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 1063 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 1064 | "dev": true, 1065 | "license": "MIT", 1066 | "dependencies": { 1067 | "is-number": "^7.0.0" 1068 | }, 1069 | "engines": { 1070 | "node": ">=8.0" 1071 | } 1072 | }, 1073 | "node_modules/util": { 1074 | "version": "0.10.4", 1075 | "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", 1076 | "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", 1077 | "dependencies": { 1078 | "inherits": "2.0.3" 1079 | } 1080 | }, 1081 | "node_modules/util-deprecate": { 1082 | "version": "1.0.2", 1083 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1084 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 1085 | }, 1086 | "node_modules/util/node_modules/inherits": { 1087 | "version": "2.0.3", 1088 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1089 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 1090 | }, 1091 | "node_modules/watch": { 1092 | "version": "0.13.0", 1093 | "resolved": "https://registry.npmjs.org/watch/-/watch-0.13.0.tgz", 1094 | "integrity": "sha1-/MbSs/DoxzSC61Qjmhn9W8+adTw=", 1095 | "dev": true, 1096 | "engines": [ 1097 | "node >=0.1.95" 1098 | ], 1099 | "dependencies": { 1100 | "minimist": "^1.1.0" 1101 | }, 1102 | "bin": { 1103 | "watch": "cli.js" 1104 | } 1105 | }, 1106 | "node_modules/webframe": { 1107 | "version": "0.9.0", 1108 | "resolved": "https://registry.npmjs.org/webframe/-/webframe-0.9.0.tgz", 1109 | "integrity": "sha512-rSzNoQt7LDwiGOBOhQk4v2DyhqC88Mr4v4XyzIY5rF1bVCsvSrtVCg8RCi0mzh64WXTjJzr7v1VV85IcOrsYXw==", 1110 | "dev": true, 1111 | "bin": { 1112 | "webframe": "cli.js" 1113 | } 1114 | }, 1115 | "node_modules/ws": { 1116 | "version": "7.5.10", 1117 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", 1118 | "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", 1119 | "dev": true, 1120 | "license": "MIT", 1121 | "engines": { 1122 | "node": ">=8.3.0" 1123 | }, 1124 | "peerDependencies": { 1125 | "bufferutil": "^4.0.1", 1126 | "utf-8-validate": "^5.0.2" 1127 | }, 1128 | "peerDependenciesMeta": { 1129 | "bufferutil": { 1130 | "optional": true 1131 | }, 1132 | "utf-8-validate": { 1133 | "optional": true 1134 | } 1135 | } 1136 | }, 1137 | "node_modules/xtend": { 1138 | "version": "4.0.2", 1139 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", 1140 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", 1141 | "dev": true, 1142 | "engines": { 1143 | "node": ">=0.4" 1144 | } 1145 | }, 1146 | "node_modules/yaml": { 1147 | "version": "1.10.2", 1148 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", 1149 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", 1150 | "dev": true, 1151 | "engines": { 1152 | "node": ">= 6" 1153 | } 1154 | } 1155 | }, 1156 | "dependencies": { 1157 | "@jridgewell/gen-mapping": { 1158 | "version": "0.3.2", 1159 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", 1160 | "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", 1161 | "requires": { 1162 | "@jridgewell/set-array": "^1.0.1", 1163 | "@jridgewell/sourcemap-codec": "^1.4.10", 1164 | "@jridgewell/trace-mapping": "^0.3.9" 1165 | } 1166 | }, 1167 | "@jridgewell/resolve-uri": { 1168 | "version": "3.1.0", 1169 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", 1170 | "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" 1171 | }, 1172 | "@jridgewell/set-array": { 1173 | "version": "1.1.2", 1174 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", 1175 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" 1176 | }, 1177 | "@jridgewell/source-map": { 1178 | "version": "0.3.2", 1179 | "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", 1180 | "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", 1181 | "requires": { 1182 | "@jridgewell/gen-mapping": "^0.3.0", 1183 | "@jridgewell/trace-mapping": "^0.3.9" 1184 | } 1185 | }, 1186 | "@jridgewell/sourcemap-codec": { 1187 | "version": "1.4.14", 1188 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", 1189 | "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" 1190 | }, 1191 | "@jridgewell/trace-mapping": { 1192 | "version": "0.3.14", 1193 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", 1194 | "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", 1195 | "requires": { 1196 | "@jridgewell/resolve-uri": "^3.0.3", 1197 | "@jridgewell/sourcemap-codec": "^1.4.10" 1198 | } 1199 | }, 1200 | "@nodelib/fs.scandir": { 1201 | "version": "2.1.5", 1202 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 1203 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 1204 | "dev": true, 1205 | "requires": { 1206 | "@nodelib/fs.stat": "2.0.5", 1207 | "run-parallel": "^1.1.9" 1208 | } 1209 | }, 1210 | "@nodelib/fs.stat": { 1211 | "version": "2.0.5", 1212 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 1213 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 1214 | "dev": true 1215 | }, 1216 | "@nodelib/fs.walk": { 1217 | "version": "1.2.8", 1218 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 1219 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 1220 | "dev": true, 1221 | "requires": { 1222 | "@nodelib/fs.scandir": "2.1.5", 1223 | "fastq": "^1.6.0" 1224 | } 1225 | }, 1226 | "acorn": { 1227 | "version": "7.4.1", 1228 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", 1229 | "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", 1230 | "dev": true 1231 | }, 1232 | "acorn-node": { 1233 | "version": "1.8.2", 1234 | "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", 1235 | "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", 1236 | "dev": true, 1237 | "requires": { 1238 | "acorn": "^7.0.0", 1239 | "acorn-walk": "^7.0.0", 1240 | "xtend": "^4.0.2" 1241 | } 1242 | }, 1243 | "acorn-walk": { 1244 | "version": "7.2.0", 1245 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", 1246 | "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", 1247 | "dev": true 1248 | }, 1249 | "anymatch": { 1250 | "version": "3.1.2", 1251 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", 1252 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", 1253 | "dev": true, 1254 | "requires": { 1255 | "normalize-path": "^3.0.0", 1256 | "picomatch": "^2.0.4" 1257 | } 1258 | }, 1259 | "arg": { 1260 | "version": "5.0.2", 1261 | "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", 1262 | "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", 1263 | "dev": true 1264 | }, 1265 | "binary-extensions": { 1266 | "version": "2.2.0", 1267 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 1268 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 1269 | "dev": true 1270 | }, 1271 | "braces": { 1272 | "version": "3.0.3", 1273 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", 1274 | "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", 1275 | "dev": true, 1276 | "requires": { 1277 | "fill-range": "^7.1.1" 1278 | } 1279 | }, 1280 | "buffer-from": { 1281 | "version": "1.1.2", 1282 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", 1283 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" 1284 | }, 1285 | "camelcase-css": { 1286 | "version": "2.0.1", 1287 | "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", 1288 | "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", 1289 | "dev": true 1290 | }, 1291 | "chokidar": { 1292 | "version": "3.5.3", 1293 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 1294 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 1295 | "dev": true, 1296 | "requires": { 1297 | "anymatch": "~3.1.2", 1298 | "braces": "~3.0.2", 1299 | "fsevents": "~2.3.2", 1300 | "glob-parent": "~5.1.2", 1301 | "is-binary-path": "~2.1.0", 1302 | "is-glob": "~4.0.1", 1303 | "normalize-path": "~3.0.0", 1304 | "readdirp": "~3.6.0" 1305 | }, 1306 | "dependencies": { 1307 | "glob-parent": { 1308 | "version": "5.1.2", 1309 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1310 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1311 | "dev": true, 1312 | "requires": { 1313 | "is-glob": "^4.0.1" 1314 | } 1315 | } 1316 | } 1317 | }, 1318 | "clean-css": { 1319 | "version": "4.2.3", 1320 | "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", 1321 | "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", 1322 | "dev": true, 1323 | "requires": { 1324 | "source-map": "~0.6.0" 1325 | } 1326 | }, 1327 | "color-name": { 1328 | "version": "1.1.4", 1329 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1330 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 1331 | "dev": true 1332 | }, 1333 | "colors": { 1334 | "version": "1.4.0", 1335 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", 1336 | "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", 1337 | "dev": true 1338 | }, 1339 | "commander": { 1340 | "version": "2.20.3", 1341 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", 1342 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" 1343 | }, 1344 | "core-util-is": { 1345 | "version": "1.0.2", 1346 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 1347 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 1348 | }, 1349 | "cssesc": { 1350 | "version": "3.0.0", 1351 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", 1352 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", 1353 | "dev": true 1354 | }, 1355 | "defined": { 1356 | "version": "1.0.0", 1357 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", 1358 | "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==", 1359 | "dev": true 1360 | }, 1361 | "detective": { 1362 | "version": "5.2.1", 1363 | "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", 1364 | "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", 1365 | "dev": true, 1366 | "requires": { 1367 | "acorn-node": "^1.8.2", 1368 | "defined": "^1.0.0", 1369 | "minimist": "^1.2.6" 1370 | } 1371 | }, 1372 | "dev-refresh": { 1373 | "version": "1.2.1", 1374 | "resolved": "https://registry.npmjs.org/dev-refresh/-/dev-refresh-1.2.1.tgz", 1375 | "integrity": "sha512-qKJYVTh1HkQPsgJDzoRlZ9NyTIbxy2tAYMndjYAU3dpZasm+aD5ZCdks8G0SfNzheZC1T4WMwYZpLgvneXzwcw==", 1376 | "dev": true, 1377 | "requires": { 1378 | "colors": "^1.3.3", 1379 | "minimist": "^1.2.0", 1380 | "node-watch": "^0.6.2", 1381 | "open": "^6.4.0", 1382 | "webframe": "^0.9.0", 1383 | "ws": "^7.1.0" 1384 | } 1385 | }, 1386 | "didyoumean": { 1387 | "version": "1.2.2", 1388 | "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", 1389 | "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", 1390 | "dev": true 1391 | }, 1392 | "dlv": { 1393 | "version": "1.1.3", 1394 | "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", 1395 | "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", 1396 | "dev": true 1397 | }, 1398 | "fast-glob": { 1399 | "version": "3.2.11", 1400 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", 1401 | "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", 1402 | "dev": true, 1403 | "requires": { 1404 | "@nodelib/fs.stat": "^2.0.2", 1405 | "@nodelib/fs.walk": "^1.2.3", 1406 | "glob-parent": "^5.1.2", 1407 | "merge2": "^1.3.0", 1408 | "micromatch": "^4.0.4" 1409 | }, 1410 | "dependencies": { 1411 | "glob-parent": { 1412 | "version": "5.1.2", 1413 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1414 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1415 | "dev": true, 1416 | "requires": { 1417 | "is-glob": "^4.0.1" 1418 | } 1419 | } 1420 | } 1421 | }, 1422 | "fastq": { 1423 | "version": "1.13.0", 1424 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", 1425 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", 1426 | "dev": true, 1427 | "requires": { 1428 | "reusify": "^1.0.4" 1429 | } 1430 | }, 1431 | "fill-range": { 1432 | "version": "7.1.1", 1433 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", 1434 | "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", 1435 | "dev": true, 1436 | "requires": { 1437 | "to-regex-range": "^5.0.1" 1438 | } 1439 | }, 1440 | "fsevents": { 1441 | "version": "2.3.2", 1442 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 1443 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 1444 | "dev": true, 1445 | "optional": true 1446 | }, 1447 | "function-bind": { 1448 | "version": "1.1.1", 1449 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1450 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1451 | "dev": true 1452 | }, 1453 | "glob-parent": { 1454 | "version": "6.0.2", 1455 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 1456 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 1457 | "dev": true, 1458 | "requires": { 1459 | "is-glob": "^4.0.3" 1460 | } 1461 | }, 1462 | "has": { 1463 | "version": "1.0.3", 1464 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1465 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1466 | "dev": true, 1467 | "requires": { 1468 | "function-bind": "^1.1.1" 1469 | } 1470 | }, 1471 | "he": { 1472 | "version": "1.2.0", 1473 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", 1474 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" 1475 | }, 1476 | "inherits": { 1477 | "version": "2.0.4", 1478 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1479 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 1480 | }, 1481 | "is-binary-path": { 1482 | "version": "2.1.0", 1483 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 1484 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 1485 | "dev": true, 1486 | "requires": { 1487 | "binary-extensions": "^2.0.0" 1488 | } 1489 | }, 1490 | "is-core-module": { 1491 | "version": "2.10.0", 1492 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", 1493 | "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", 1494 | "dev": true, 1495 | "requires": { 1496 | "has": "^1.0.3" 1497 | } 1498 | }, 1499 | "is-extglob": { 1500 | "version": "2.1.1", 1501 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1502 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 1503 | "dev": true 1504 | }, 1505 | "is-glob": { 1506 | "version": "4.0.3", 1507 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 1508 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 1509 | "dev": true, 1510 | "requires": { 1511 | "is-extglob": "^2.1.1" 1512 | } 1513 | }, 1514 | "is-number": { 1515 | "version": "7.0.0", 1516 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 1517 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 1518 | "dev": true 1519 | }, 1520 | "is-wsl": { 1521 | "version": "1.1.0", 1522 | "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", 1523 | "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", 1524 | "dev": true 1525 | }, 1526 | "isarray": { 1527 | "version": "1.0.0", 1528 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1529 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 1530 | }, 1531 | "lilconfig": { 1532 | "version": "2.0.6", 1533 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", 1534 | "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", 1535 | "dev": true 1536 | }, 1537 | "merge-files": { 1538 | "version": "0.1.2", 1539 | "resolved": "https://registry.npmjs.org/merge-files/-/merge-files-0.1.2.tgz", 1540 | "integrity": "sha512-WTvtH6ZwVy1/scvp1M+Re6PVni87QTjpSLAwxh0L+PlYIxc4VGFFpLjvP7jdJ43gaJ5n+RUIriJ6wKqmqvVVmg==", 1541 | "requires": { 1542 | "multistream": "^2.1.0" 1543 | } 1544 | }, 1545 | "merge2": { 1546 | "version": "1.4.1", 1547 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 1548 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 1549 | "dev": true 1550 | }, 1551 | "micromatch": { 1552 | "version": "4.0.8", 1553 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", 1554 | "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", 1555 | "dev": true, 1556 | "requires": { 1557 | "braces": "^3.0.3", 1558 | "picomatch": "^2.3.1" 1559 | } 1560 | }, 1561 | "minimist": { 1562 | "version": "1.2.6", 1563 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", 1564 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", 1565 | "dev": true 1566 | }, 1567 | "multistream": { 1568 | "version": "2.1.1", 1569 | "resolved": "https://registry.npmjs.org/multistream/-/multistream-2.1.1.tgz", 1570 | "integrity": "sha512-xasv76hl6nr1dEy3lPvy7Ej7K/Lx3O/FCvwge8PeVJpciPPoNCbaANcNiBug3IpdvTveZUcAV0DJzdnUDMesNQ==", 1571 | "requires": { 1572 | "inherits": "^2.0.1", 1573 | "readable-stream": "^2.0.5" 1574 | } 1575 | }, 1576 | "nanoid": { 1577 | "version": "3.3.8", 1578 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", 1579 | "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", 1580 | "dev": true 1581 | }, 1582 | "node-html-parser": { 1583 | "version": "1.3.1", 1584 | "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-1.3.1.tgz", 1585 | "integrity": "sha512-AwYVI6GyEKj9NGoyMfSx4j5l7Axf7obQgLWGxtasLjED6RggTTQoq5ZRzjwSUfgSZ+Mv8Nzbi3pID0gFGqNUsA==", 1586 | "requires": { 1587 | "he": "1.2.0" 1588 | } 1589 | }, 1590 | "node-watch": { 1591 | "version": "0.6.4", 1592 | "resolved": "https://registry.npmjs.org/node-watch/-/node-watch-0.6.4.tgz", 1593 | "integrity": "sha512-cI6CHzivIFESe8djiK3Wh90CtWQBxLwMem8x8S+2GSvCvFgoMuOKVlfJtQ/2v3Afg3wOnHl/+tXotEs8z5vOrg==", 1594 | "dev": true 1595 | }, 1596 | "normalize-path": { 1597 | "version": "3.0.0", 1598 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 1599 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 1600 | "dev": true 1601 | }, 1602 | "object-hash": { 1603 | "version": "3.0.0", 1604 | "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", 1605 | "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", 1606 | "dev": true 1607 | }, 1608 | "open": { 1609 | "version": "6.4.0", 1610 | "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", 1611 | "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", 1612 | "dev": true, 1613 | "requires": { 1614 | "is-wsl": "^1.1.0" 1615 | } 1616 | }, 1617 | "path": { 1618 | "version": "0.12.7", 1619 | "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", 1620 | "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", 1621 | "requires": { 1622 | "process": "^0.11.1", 1623 | "util": "^0.10.3" 1624 | } 1625 | }, 1626 | "path-parse": { 1627 | "version": "1.0.7", 1628 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 1629 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 1630 | "dev": true 1631 | }, 1632 | "picocolors": { 1633 | "version": "1.1.1", 1634 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", 1635 | "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", 1636 | "dev": true 1637 | }, 1638 | "picomatch": { 1639 | "version": "2.3.1", 1640 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 1641 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 1642 | "dev": true 1643 | }, 1644 | "pify": { 1645 | "version": "2.3.0", 1646 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 1647 | "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", 1648 | "dev": true 1649 | }, 1650 | "postcss": { 1651 | "version": "8.5.2", 1652 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz", 1653 | "integrity": "sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==", 1654 | "dev": true, 1655 | "requires": { 1656 | "nanoid": "^3.3.8", 1657 | "picocolors": "^1.1.1", 1658 | "source-map-js": "^1.2.1" 1659 | } 1660 | }, 1661 | "postcss-import": { 1662 | "version": "14.1.0", 1663 | "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", 1664 | "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", 1665 | "dev": true, 1666 | "requires": { 1667 | "postcss-value-parser": "^4.0.0", 1668 | "read-cache": "^1.0.0", 1669 | "resolve": "^1.1.7" 1670 | } 1671 | }, 1672 | "postcss-js": { 1673 | "version": "4.0.0", 1674 | "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", 1675 | "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", 1676 | "dev": true, 1677 | "requires": { 1678 | "camelcase-css": "^2.0.1" 1679 | } 1680 | }, 1681 | "postcss-load-config": { 1682 | "version": "3.1.4", 1683 | "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", 1684 | "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", 1685 | "dev": true, 1686 | "requires": { 1687 | "lilconfig": "^2.0.5", 1688 | "yaml": "^1.10.2" 1689 | } 1690 | }, 1691 | "postcss-nested": { 1692 | "version": "5.0.6", 1693 | "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", 1694 | "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", 1695 | "dev": true, 1696 | "requires": { 1697 | "postcss-selector-parser": "^6.0.6" 1698 | } 1699 | }, 1700 | "postcss-selector-parser": { 1701 | "version": "6.0.10", 1702 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", 1703 | "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", 1704 | "dev": true, 1705 | "requires": { 1706 | "cssesc": "^3.0.0", 1707 | "util-deprecate": "^1.0.2" 1708 | } 1709 | }, 1710 | "postcss-value-parser": { 1711 | "version": "4.2.0", 1712 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", 1713 | "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", 1714 | "dev": true 1715 | }, 1716 | "process": { 1717 | "version": "0.11.10", 1718 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", 1719 | "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" 1720 | }, 1721 | "process-nextick-args": { 1722 | "version": "2.0.1", 1723 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 1724 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 1725 | }, 1726 | "queue-microtask": { 1727 | "version": "1.2.3", 1728 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 1729 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 1730 | "dev": true 1731 | }, 1732 | "quick-lru": { 1733 | "version": "5.1.1", 1734 | "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", 1735 | "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", 1736 | "dev": true 1737 | }, 1738 | "read-cache": { 1739 | "version": "1.0.0", 1740 | "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", 1741 | "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", 1742 | "dev": true, 1743 | "requires": { 1744 | "pify": "^2.3.0" 1745 | } 1746 | }, 1747 | "readable-stream": { 1748 | "version": "2.3.7", 1749 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 1750 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 1751 | "requires": { 1752 | "core-util-is": "~1.0.0", 1753 | "inherits": "~2.0.3", 1754 | "isarray": "~1.0.0", 1755 | "process-nextick-args": "~2.0.0", 1756 | "safe-buffer": "~5.1.1", 1757 | "string_decoder": "~1.1.1", 1758 | "util-deprecate": "~1.0.1" 1759 | } 1760 | }, 1761 | "readdirp": { 1762 | "version": "3.6.0", 1763 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 1764 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 1765 | "dev": true, 1766 | "requires": { 1767 | "picomatch": "^2.2.1" 1768 | } 1769 | }, 1770 | "resolve": { 1771 | "version": "1.22.1", 1772 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", 1773 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", 1774 | "dev": true, 1775 | "requires": { 1776 | "is-core-module": "^2.9.0", 1777 | "path-parse": "^1.0.7", 1778 | "supports-preserve-symlinks-flag": "^1.0.0" 1779 | } 1780 | }, 1781 | "reusify": { 1782 | "version": "1.0.4", 1783 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 1784 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 1785 | "dev": true 1786 | }, 1787 | "run-parallel": { 1788 | "version": "1.2.0", 1789 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 1790 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 1791 | "dev": true, 1792 | "requires": { 1793 | "queue-microtask": "^1.2.2" 1794 | } 1795 | }, 1796 | "safe-buffer": { 1797 | "version": "5.1.2", 1798 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1799 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1800 | }, 1801 | "source-map": { 1802 | "version": "0.6.1", 1803 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 1804 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" 1805 | }, 1806 | "source-map-js": { 1807 | "version": "1.2.1", 1808 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", 1809 | "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", 1810 | "dev": true 1811 | }, 1812 | "source-map-support": { 1813 | "version": "0.5.21", 1814 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", 1815 | "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", 1816 | "requires": { 1817 | "buffer-from": "^1.0.0", 1818 | "source-map": "^0.6.0" 1819 | } 1820 | }, 1821 | "string_decoder": { 1822 | "version": "1.1.1", 1823 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1824 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1825 | "requires": { 1826 | "safe-buffer": "~5.1.0" 1827 | } 1828 | }, 1829 | "supports-preserve-symlinks-flag": { 1830 | "version": "1.0.0", 1831 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 1832 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 1833 | "dev": true 1834 | }, 1835 | "tailwindcss": { 1836 | "version": "3.1.7", 1837 | "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.1.7.tgz", 1838 | "integrity": "sha512-r7mgumZ3k0InfVPpGWcX8X/Ut4xBfv+1O/+C73ar/m01LxGVzWvPxF/w6xIUPEztrCoz7axfx0SMdh8FH8ZvRQ==", 1839 | "dev": true, 1840 | "requires": { 1841 | "arg": "^5.0.2", 1842 | "chokidar": "^3.5.3", 1843 | "color-name": "^1.1.4", 1844 | "detective": "^5.2.1", 1845 | "didyoumean": "^1.2.2", 1846 | "dlv": "^1.1.3", 1847 | "fast-glob": "^3.2.11", 1848 | "glob-parent": "^6.0.2", 1849 | "is-glob": "^4.0.3", 1850 | "lilconfig": "^2.0.6", 1851 | "normalize-path": "^3.0.0", 1852 | "object-hash": "^3.0.0", 1853 | "picocolors": "^1.0.0", 1854 | "postcss": "^8.4.14", 1855 | "postcss-import": "^14.1.0", 1856 | "postcss-js": "^4.0.0", 1857 | "postcss-load-config": "^3.1.4", 1858 | "postcss-nested": "5.0.6", 1859 | "postcss-selector-parser": "^6.0.10", 1860 | "postcss-value-parser": "^4.2.0", 1861 | "quick-lru": "^5.1.1", 1862 | "resolve": "^1.22.1" 1863 | } 1864 | }, 1865 | "terser": { 1866 | "version": "5.14.2", 1867 | "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", 1868 | "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", 1869 | "requires": { 1870 | "@jridgewell/source-map": "^0.3.2", 1871 | "acorn": "^8.5.0", 1872 | "commander": "^2.20.0", 1873 | "source-map-support": "~0.5.20" 1874 | }, 1875 | "dependencies": { 1876 | "acorn": { 1877 | "version": "8.8.0", 1878 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", 1879 | "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==" 1880 | } 1881 | } 1882 | }, 1883 | "to-regex-range": { 1884 | "version": "5.0.1", 1885 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 1886 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 1887 | "dev": true, 1888 | "requires": { 1889 | "is-number": "^7.0.0" 1890 | } 1891 | }, 1892 | "util": { 1893 | "version": "0.10.4", 1894 | "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", 1895 | "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", 1896 | "requires": { 1897 | "inherits": "2.0.3" 1898 | }, 1899 | "dependencies": { 1900 | "inherits": { 1901 | "version": "2.0.3", 1902 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1903 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 1904 | } 1905 | } 1906 | }, 1907 | "util-deprecate": { 1908 | "version": "1.0.2", 1909 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1910 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 1911 | }, 1912 | "watch": { 1913 | "version": "0.13.0", 1914 | "resolved": "https://registry.npmjs.org/watch/-/watch-0.13.0.tgz", 1915 | "integrity": "sha1-/MbSs/DoxzSC61Qjmhn9W8+adTw=", 1916 | "dev": true, 1917 | "requires": { 1918 | "minimist": "^1.1.0" 1919 | } 1920 | }, 1921 | "webframe": { 1922 | "version": "0.9.0", 1923 | "resolved": "https://registry.npmjs.org/webframe/-/webframe-0.9.0.tgz", 1924 | "integrity": "sha512-rSzNoQt7LDwiGOBOhQk4v2DyhqC88Mr4v4XyzIY5rF1bVCsvSrtVCg8RCi0mzh64WXTjJzr7v1VV85IcOrsYXw==", 1925 | "dev": true 1926 | }, 1927 | "ws": { 1928 | "version": "7.5.10", 1929 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", 1930 | "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", 1931 | "dev": true, 1932 | "requires": {} 1933 | }, 1934 | "xtend": { 1935 | "version": "4.0.2", 1936 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", 1937 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", 1938 | "dev": true 1939 | }, 1940 | "yaml": { 1941 | "version": "1.10.2", 1942 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", 1943 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", 1944 | "dev": true 1945 | } 1946 | } 1947 | } 1948 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "single-file-components-for-alpinejs", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "build.js", 6 | "scripts": { 7 | "build": "node build.js && npx tailwindcss -i ./src/tailwind.css -o ./dist/tailwind.css", 8 | "css-build": "npx tailwindcss -i ./src/tailwind.css -o ./dist/tailwind.css", 9 | "dev": "dev-refresh src --serve dist --cmd 'npm run build' && npx tailwindcss -i ./src/tailwind.css -o ./dist/tailwind.css" 10 | }, 11 | "repository": { 12 | "type": "git", 13 | "url": "git+https://github.com/dashpilot/dashpilot-website.git" 14 | }, 15 | "author": "", 16 | "license": "ISC", 17 | "bugs": { 18 | "url": "https://github.com/dashpilot/dashpilot-website/issues" 19 | }, 20 | "homepage": "https://github.com/dashpilot/dashpilot-website#readme", 21 | "dependencies": { 22 | "merge-files": "^0.1.2", 23 | "node-html-parser": "^1.3.1", 24 | "path": "^0.12.7", 25 | "terser": "^5.3.5" 26 | }, 27 | "devDependencies": { 28 | "clean-css": "^4.2.3", 29 | "dev-refresh": "^1.2.1", 30 | "tailwindcss": "^3.0.15", 31 | "watch": "^0.13.0" 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/components/card.html: -------------------------------------------------------------------------------- 1 | 19 | 20 | 33 | 34 | -------------------------------------------------------------------------------- /src/components/notify.html: -------------------------------------------------------------------------------- 1 | 6 | 7 | 16 | 17 | -------------------------------------------------------------------------------- /src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 |
25 | 26 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /src/tailwind.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | content: ["./src/**/*.{html,js}"], 3 | theme: { 4 | extend: {}, 5 | }, 6 | plugins: [], 7 | } --------------------------------------------------------------------------------