├── .gitignore ├── README.md ├── package-lock.json ├── package.json ├── src ├── api │ └── index.js ├── components │ ├── comment.marko │ ├── layout.marko │ ├── layout.style.css │ ├── story.marko │ └── toggle.marko ├── dev-env.js ├── dev-server.js ├── pages │ ├── index.marko │ ├── stories.$id.marko │ └── users.$id.marko ├── router.js └── worker.js ├── vite.config.js └── wrangler.toml /.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | dist 3 | node_modules 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Marko Hacker News w/ Vite + Cloudflare Workers 2 | ================================== 3 | 4 | See the live demo [here](https://marko-hackernews.ryansolid.workers.dev/) 5 | 6 | ## Getting Started 7 | ```bash 8 | npm install 9 | npm run dev 10 | ``` 11 | 12 | ## Production Preview 13 | First you'll need to authenticate with `cloudflare` and install the [`wrangler cli`](https://developers.cloudflare.com/workers/cli-wrangler). If you've not already done this, follow [the cloudflare workers getting started guide through step 3](https://developers.cloudflare.com/workers/get-started/guide#3-configure-the-workers-cli). 14 | 15 | ```bash 16 | npm run preview 17 | ``` 18 | 19 | ## Routing 20 | This simple example comes with file system based routing implemented using [Vite's glob imports](https://vitejs.dev/guide/features.html#glob-import). It follows similar conventions to [Remix](https://remix.run/docs/en/v1/guides/routing#review). 21 | 22 | Any top level `.marko` file under the `./src/pages` directory will automatically be served according to it's path on disk. 23 | We automatically exclude any `components` directories. 24 | 25 | For dynamic routes you can prefix the file/folder name with `$`. Or to save creating a folder use an extension that starts with a `$`. 26 | `index` folders and files are also stripped from the path being matched. 27 | 28 | Here are some example file system paths, and what their route format ultimately becomes. 29 | 30 | ```bash 31 | # Static routes 32 | ./pages/index.marko => / 33 | ./pages/stories.marko => /stories 34 | ./pages/stories/index.marko => /stories 35 | 36 | # Dynamic routes 37 | ./pages/stories/$id.marko => /stories/:id 38 | ./pages/stories.$id.marko => /stories/:id 39 | ``` 40 | 41 | The `input` for the page component will be an object like the following: 42 | 43 | ```js 44 | { 45 | url: new URL(...), // a URL instance for the current request. 46 | request: new Request(...), // The current Request object. 47 | params: { ... } // An object containing all matched params for the dynamic paths. 48 | } 49 | ``` 50 | 51 | ## Common Template for multiple routes 52 | Sometimes you may want to have the same `.marko` component used for multiple routes in your application. 53 | Typically this is done to make the URL a bit prettier and it may be best to simply use a query string or other mechanism instead of multiple pathnames. 54 | 55 | However this can be done simply by creating a `.js` file at the alternative paths and re-exporting the `.marko` component from there. 56 | 57 | ```js 58 | import Template from "./another-template-path.marko"; 59 | export { Template as default }; 60 | ``` 61 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "marko-hackernews", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "marko-hackernews", 9 | "version": "1.0.0", 10 | "devDependencies": { 11 | "@cloudflare/kv-asset-handler": "^0.2.0", 12 | "@marko/compiler": "^5.17.6", 13 | "@marko/vite": "^2.2.6", 14 | "cross-env": "^7.0.3", 15 | "marko": "^5.17.9", 16 | "postcss-preset-env": "^7.2.0", 17 | "rimraf": "^3.0.2", 18 | "undici": "^4.12.1", 19 | "url-router": "^13.0.0", 20 | "vite": "^2.7.10" 21 | } 22 | }, 23 | "node_modules/@ampproject/remapping": { 24 | "version": "2.1.2", 25 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", 26 | "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", 27 | "dev": true, 28 | "dependencies": { 29 | "@jridgewell/trace-mapping": "^0.3.0" 30 | }, 31 | "engines": { 32 | "node": ">=6.0.0" 33 | } 34 | }, 35 | "node_modules/@babel/code-frame": { 36 | "version": "7.16.7", 37 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", 38 | "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", 39 | "dev": true, 40 | "dependencies": { 41 | "@babel/highlight": "^7.16.7" 42 | }, 43 | "engines": { 44 | "node": ">=6.9.0" 45 | } 46 | }, 47 | "node_modules/@babel/compat-data": { 48 | "version": "7.17.7", 49 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", 50 | "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", 51 | "dev": true, 52 | "engines": { 53 | "node": ">=6.9.0" 54 | } 55 | }, 56 | "node_modules/@babel/core": { 57 | "version": "7.17.9", 58 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz", 59 | "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", 60 | "dev": true, 61 | "dependencies": { 62 | "@ampproject/remapping": "^2.1.0", 63 | "@babel/code-frame": "^7.16.7", 64 | "@babel/generator": "^7.17.9", 65 | "@babel/helper-compilation-targets": "^7.17.7", 66 | "@babel/helper-module-transforms": "^7.17.7", 67 | "@babel/helpers": "^7.17.9", 68 | "@babel/parser": "^7.17.9", 69 | "@babel/template": "^7.16.7", 70 | "@babel/traverse": "^7.17.9", 71 | "@babel/types": "^7.17.0", 72 | "convert-source-map": "^1.7.0", 73 | "debug": "^4.1.0", 74 | "gensync": "^1.0.0-beta.2", 75 | "json5": "^2.2.1", 76 | "semver": "^6.3.0" 77 | }, 78 | "engines": { 79 | "node": ">=6.9.0" 80 | }, 81 | "funding": { 82 | "type": "opencollective", 83 | "url": "https://opencollective.com/babel" 84 | } 85 | }, 86 | "node_modules/@babel/generator": { 87 | "version": "7.17.9", 88 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", 89 | "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", 90 | "dev": true, 91 | "dependencies": { 92 | "@babel/types": "^7.17.0", 93 | "jsesc": "^2.5.1", 94 | "source-map": "^0.5.0" 95 | }, 96 | "engines": { 97 | "node": ">=6.9.0" 98 | } 99 | }, 100 | "node_modules/@babel/generator/node_modules/jsesc": { 101 | "version": "2.5.2", 102 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", 103 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", 104 | "dev": true, 105 | "bin": { 106 | "jsesc": "bin/jsesc" 107 | }, 108 | "engines": { 109 | "node": ">=4" 110 | } 111 | }, 112 | "node_modules/@babel/helper-compilation-targets": { 113 | "version": "7.17.7", 114 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", 115 | "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", 116 | "dev": true, 117 | "dependencies": { 118 | "@babel/compat-data": "^7.17.7", 119 | "@babel/helper-validator-option": "^7.16.7", 120 | "browserslist": "^4.17.5", 121 | "semver": "^6.3.0" 122 | }, 123 | "engines": { 124 | "node": ">=6.9.0" 125 | }, 126 | "peerDependencies": { 127 | "@babel/core": "^7.0.0" 128 | } 129 | }, 130 | "node_modules/@babel/helper-environment-visitor": { 131 | "version": "7.16.7", 132 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", 133 | "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", 134 | "dev": true, 135 | "dependencies": { 136 | "@babel/types": "^7.16.7" 137 | }, 138 | "engines": { 139 | "node": ">=6.9.0" 140 | } 141 | }, 142 | "node_modules/@babel/helper-function-name": { 143 | "version": "7.17.9", 144 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", 145 | "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", 146 | "dev": true, 147 | "dependencies": { 148 | "@babel/template": "^7.16.7", 149 | "@babel/types": "^7.17.0" 150 | }, 151 | "engines": { 152 | "node": ">=6.9.0" 153 | } 154 | }, 155 | "node_modules/@babel/helper-hoist-variables": { 156 | "version": "7.16.7", 157 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", 158 | "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", 159 | "dev": true, 160 | "dependencies": { 161 | "@babel/types": "^7.16.7" 162 | }, 163 | "engines": { 164 | "node": ">=6.9.0" 165 | } 166 | }, 167 | "node_modules/@babel/helper-module-imports": { 168 | "version": "7.16.7", 169 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", 170 | "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", 171 | "dev": true, 172 | "dependencies": { 173 | "@babel/types": "^7.16.7" 174 | }, 175 | "engines": { 176 | "node": ">=6.9.0" 177 | } 178 | }, 179 | "node_modules/@babel/helper-module-transforms": { 180 | "version": "7.17.7", 181 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", 182 | "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", 183 | "dev": true, 184 | "dependencies": { 185 | "@babel/helper-environment-visitor": "^7.16.7", 186 | "@babel/helper-module-imports": "^7.16.7", 187 | "@babel/helper-simple-access": "^7.17.7", 188 | "@babel/helper-split-export-declaration": "^7.16.7", 189 | "@babel/helper-validator-identifier": "^7.16.7", 190 | "@babel/template": "^7.16.7", 191 | "@babel/traverse": "^7.17.3", 192 | "@babel/types": "^7.17.0" 193 | }, 194 | "engines": { 195 | "node": ">=6.9.0" 196 | } 197 | }, 198 | "node_modules/@babel/helper-plugin-utils": { 199 | "version": "7.16.7", 200 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", 201 | "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", 202 | "dev": true, 203 | "engines": { 204 | "node": ">=6.9.0" 205 | } 206 | }, 207 | "node_modules/@babel/helper-simple-access": { 208 | "version": "7.17.7", 209 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", 210 | "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", 211 | "dev": true, 212 | "dependencies": { 213 | "@babel/types": "^7.17.0" 214 | }, 215 | "engines": { 216 | "node": ">=6.9.0" 217 | } 218 | }, 219 | "node_modules/@babel/helper-split-export-declaration": { 220 | "version": "7.16.7", 221 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", 222 | "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", 223 | "dev": true, 224 | "dependencies": { 225 | "@babel/types": "^7.16.7" 226 | }, 227 | "engines": { 228 | "node": ">=6.9.0" 229 | } 230 | }, 231 | "node_modules/@babel/helper-validator-identifier": { 232 | "version": "7.16.7", 233 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", 234 | "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", 235 | "dev": true, 236 | "engines": { 237 | "node": ">=6.9.0" 238 | } 239 | }, 240 | "node_modules/@babel/helper-validator-option": { 241 | "version": "7.16.7", 242 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", 243 | "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", 244 | "dev": true, 245 | "engines": { 246 | "node": ">=6.9.0" 247 | } 248 | }, 249 | "node_modules/@babel/helpers": { 250 | "version": "7.17.9", 251 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", 252 | "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", 253 | "dev": true, 254 | "dependencies": { 255 | "@babel/template": "^7.16.7", 256 | "@babel/traverse": "^7.17.9", 257 | "@babel/types": "^7.17.0" 258 | }, 259 | "engines": { 260 | "node": ">=6.9.0" 261 | } 262 | }, 263 | "node_modules/@babel/highlight": { 264 | "version": "7.17.9", 265 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", 266 | "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", 267 | "dev": true, 268 | "dependencies": { 269 | "@babel/helper-validator-identifier": "^7.16.7", 270 | "chalk": "^2.0.0", 271 | "js-tokens": "^4.0.0" 272 | }, 273 | "engines": { 274 | "node": ">=6.9.0" 275 | } 276 | }, 277 | "node_modules/@babel/parser": { 278 | "version": "7.17.9", 279 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", 280 | "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", 281 | "dev": true, 282 | "bin": { 283 | "parser": "bin/babel-parser.js" 284 | }, 285 | "engines": { 286 | "node": ">=6.0.0" 287 | } 288 | }, 289 | "node_modules/@babel/plugin-transform-modules-commonjs": { 290 | "version": "7.17.9", 291 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz", 292 | "integrity": "sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw==", 293 | "dev": true, 294 | "dependencies": { 295 | "@babel/helper-module-transforms": "^7.17.7", 296 | "@babel/helper-plugin-utils": "^7.16.7", 297 | "@babel/helper-simple-access": "^7.17.7", 298 | "babel-plugin-dynamic-import-node": "^2.3.3" 299 | }, 300 | "engines": { 301 | "node": ">=6.9.0" 302 | }, 303 | "peerDependencies": { 304 | "@babel/core": "^7.0.0-0" 305 | } 306 | }, 307 | "node_modules/@babel/runtime": { 308 | "version": "7.17.9", 309 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz", 310 | "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", 311 | "dev": true, 312 | "dependencies": { 313 | "regenerator-runtime": "^0.13.4" 314 | }, 315 | "engines": { 316 | "node": ">=6.9.0" 317 | } 318 | }, 319 | "node_modules/@babel/template": { 320 | "version": "7.16.7", 321 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", 322 | "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", 323 | "dev": true, 324 | "dependencies": { 325 | "@babel/code-frame": "^7.16.7", 326 | "@babel/parser": "^7.16.7", 327 | "@babel/types": "^7.16.7" 328 | }, 329 | "engines": { 330 | "node": ">=6.9.0" 331 | } 332 | }, 333 | "node_modules/@babel/traverse": { 334 | "version": "7.17.9", 335 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz", 336 | "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", 337 | "dev": true, 338 | "dependencies": { 339 | "@babel/code-frame": "^7.16.7", 340 | "@babel/generator": "^7.17.9", 341 | "@babel/helper-environment-visitor": "^7.16.7", 342 | "@babel/helper-function-name": "^7.17.9", 343 | "@babel/helper-hoist-variables": "^7.16.7", 344 | "@babel/helper-split-export-declaration": "^7.16.7", 345 | "@babel/parser": "^7.17.9", 346 | "@babel/types": "^7.17.0", 347 | "debug": "^4.1.0", 348 | "globals": "^11.1.0" 349 | }, 350 | "engines": { 351 | "node": ">=6.9.0" 352 | } 353 | }, 354 | "node_modules/@babel/types": { 355 | "version": "7.17.0", 356 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", 357 | "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", 358 | "dev": true, 359 | "dependencies": { 360 | "@babel/helper-validator-identifier": "^7.16.7", 361 | "to-fast-properties": "^2.0.0" 362 | }, 363 | "engines": { 364 | "node": ">=6.9.0" 365 | } 366 | }, 367 | "node_modules/@cloudflare/kv-asset-handler": { 368 | "version": "0.2.0", 369 | "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.2.0.tgz", 370 | "integrity": "sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==", 371 | "dev": true, 372 | "dependencies": { 373 | "mime": "^3.0.0" 374 | } 375 | }, 376 | "node_modules/@csstools/postcss-color-function": { 377 | "version": "1.1.0", 378 | "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.0.tgz", 379 | "integrity": "sha512-5D5ND/mZWcQoSfYnSPsXtuiFxhzmhxt6pcjrFLJyldj+p0ZN2vvRpYNX+lahFTtMhAYOa2WmkdGINr0yP0CvGA==", 380 | "dev": true, 381 | "dependencies": { 382 | "@csstools/postcss-progressive-custom-properties": "^1.1.0", 383 | "postcss-value-parser": "^4.2.0" 384 | }, 385 | "engines": { 386 | "node": "^12 || ^14 || >=16" 387 | }, 388 | "funding": { 389 | "type": "opencollective", 390 | "url": "https://opencollective.com/csstools" 391 | }, 392 | "peerDependencies": { 393 | "postcss": "^8.4" 394 | } 395 | }, 396 | "node_modules/@csstools/postcss-font-format-keywords": { 397 | "version": "1.0.0", 398 | "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.0.tgz", 399 | "integrity": "sha512-oO0cZt8do8FdVBX8INftvIA4lUrKUSCcWUf9IwH9IPWOgKT22oAZFXeHLoDK7nhB2SmkNycp5brxfNMRLIhd6Q==", 400 | "dev": true, 401 | "dependencies": { 402 | "postcss-value-parser": "^4.2.0" 403 | }, 404 | "engines": { 405 | "node": "^12 || ^14 || >=16" 406 | }, 407 | "peerDependencies": { 408 | "postcss": "^8.3" 409 | } 410 | }, 411 | "node_modules/@csstools/postcss-hwb-function": { 412 | "version": "1.0.0", 413 | "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.0.tgz", 414 | "integrity": "sha512-VSTd7hGjmde4rTj1rR30sokY3ONJph1reCBTUXqeW1fKwETPy1x4t/XIeaaqbMbC5Xg4SM/lyXZ2S8NELT2TaA==", 415 | "dev": true, 416 | "dependencies": { 417 | "postcss-value-parser": "^4.2.0" 418 | }, 419 | "engines": { 420 | "node": "^12 || ^14 || >=16" 421 | }, 422 | "peerDependencies": { 423 | "postcss": "^8.3" 424 | } 425 | }, 426 | "node_modules/@csstools/postcss-ic-unit": { 427 | "version": "1.0.0", 428 | "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.0.tgz", 429 | "integrity": "sha512-i4yps1mBp2ijrx7E96RXrQXQQHm6F4ym1TOD0D69/sjDjZvQ22tqiEvaNw7pFZTUO5b9vWRHzbHzP9+UKuw+bA==", 430 | "dev": true, 431 | "dependencies": { 432 | "@csstools/postcss-progressive-custom-properties": "^1.1.0", 433 | "postcss-value-parser": "^4.2.0" 434 | }, 435 | "engines": { 436 | "node": "^12 || ^14 || >=16" 437 | }, 438 | "peerDependencies": { 439 | "postcss": "^8.3" 440 | } 441 | }, 442 | "node_modules/@csstools/postcss-is-pseudo-class": { 443 | "version": "2.0.2", 444 | "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.2.tgz", 445 | "integrity": "sha512-L9h1yxXMj7KpgNzlMrw3isvHJYkikZgZE4ASwssTnGEH8tm50L6QsM9QQT5wR4/eO5mU0rN5axH7UzNxEYg5CA==", 446 | "dev": true, 447 | "dependencies": { 448 | "postcss-selector-parser": "^6.0.10" 449 | }, 450 | "engines": { 451 | "node": "^12 || ^14 || >=16" 452 | }, 453 | "funding": { 454 | "type": "opencollective", 455 | "url": "https://opencollective.com/csstools" 456 | }, 457 | "peerDependencies": { 458 | "postcss": "^8.4" 459 | } 460 | }, 461 | "node_modules/@csstools/postcss-normalize-display-values": { 462 | "version": "1.0.0", 463 | "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.0.tgz", 464 | "integrity": "sha512-bX+nx5V8XTJEmGtpWTO6kywdS725t71YSLlxWt78XoHUbELWgoCXeOFymRJmL3SU1TLlKSIi7v52EWqe60vJTQ==", 465 | "dev": true, 466 | "dependencies": { 467 | "postcss-value-parser": "^4.2.0" 468 | }, 469 | "engines": { 470 | "node": "^12 || ^14 || >=16" 471 | }, 472 | "peerDependencies": { 473 | "postcss": "^8.3" 474 | } 475 | }, 476 | "node_modules/@csstools/postcss-oklab-function": { 477 | "version": "1.1.0", 478 | "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.0.tgz", 479 | "integrity": "sha512-e/Q5HopQzmnQgqimG9v3w2IG4VRABsBq3itOcn4bnm+j4enTgQZ0nWsaH/m9GV2otWGQ0nwccYL5vmLKyvP1ww==", 480 | "dev": true, 481 | "dependencies": { 482 | "@csstools/postcss-progressive-custom-properties": "^1.1.0", 483 | "postcss-value-parser": "^4.2.0" 484 | }, 485 | "engines": { 486 | "node": "^12 || ^14 || >=16" 487 | }, 488 | "funding": { 489 | "type": "opencollective", 490 | "url": "https://opencollective.com/csstools" 491 | }, 492 | "peerDependencies": { 493 | "postcss": "^8.4" 494 | } 495 | }, 496 | "node_modules/@csstools/postcss-progressive-custom-properties": { 497 | "version": "1.3.0", 498 | "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", 499 | "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", 500 | "dev": true, 501 | "dependencies": { 502 | "postcss-value-parser": "^4.2.0" 503 | }, 504 | "engines": { 505 | "node": "^12 || ^14 || >=16" 506 | }, 507 | "peerDependencies": { 508 | "postcss": "^8.3" 509 | } 510 | }, 511 | "node_modules/@jridgewell/resolve-uri": { 512 | "version": "3.0.5", 513 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", 514 | "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", 515 | "dev": true, 516 | "engines": { 517 | "node": ">=6.0.0" 518 | } 519 | }, 520 | "node_modules/@jridgewell/sourcemap-codec": { 521 | "version": "1.4.11", 522 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", 523 | "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", 524 | "dev": true 525 | }, 526 | "node_modules/@jridgewell/trace-mapping": { 527 | "version": "0.3.4", 528 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", 529 | "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", 530 | "dev": true, 531 | "dependencies": { 532 | "@jridgewell/resolve-uri": "^3.0.3", 533 | "@jridgewell/sourcemap-codec": "^1.4.10" 534 | } 535 | }, 536 | "node_modules/@marko/babel-utils": { 537 | "version": "5.20.3", 538 | "resolved": "https://registry.npmjs.org/@marko/babel-utils/-/babel-utils-5.20.3.tgz", 539 | "integrity": "sha512-IgSjeL+5JMonivLESu9JR/1yIPRcLiyJkzQjkFDFZ2oHGU3+lvmdb35J2bzoLidRk3edgq+FN3/SXSa0hnzN9A==", 540 | "dev": true, 541 | "dependencies": { 542 | "@babel/runtime": "^7.16.0", 543 | "jsesc": "^3.0.2", 544 | "relative-import-path": "^1.0.0" 545 | } 546 | }, 547 | "node_modules/@marko/compiler": { 548 | "version": "5.20.3", 549 | "resolved": "https://registry.npmjs.org/@marko/compiler/-/compiler-5.20.3.tgz", 550 | "integrity": "sha512-fI2uvF07p7X5cSszpYIjyKggjsRQvAXCRwXipQDIdzP6a5aBJtQjZKM4Y32ugru/whVORGY4fkVwHIhN2AkiBA==", 551 | "dev": true, 552 | "dependencies": { 553 | "@babel/code-frame": "^7.16.0", 554 | "@babel/core": "^7.16.0", 555 | "@babel/generator": "^7.16.0", 556 | "@babel/parser": "^7.16.0", 557 | "@babel/plugin-transform-modules-commonjs": "^7.16.0", 558 | "@babel/runtime": "^7.16.0", 559 | "@babel/traverse": "^7.16.0", 560 | "@babel/types": "^7.16.0", 561 | "@marko/babel-utils": "^5.20.3", 562 | "complain": "^1.6.0", 563 | "he": "^1.2.0", 564 | "htmljs-parser": "^2.11.1", 565 | "jsesc": "^3.0.2", 566 | "lasso-package-root": "^1.0.1", 567 | "property-handlers": "^1.1.1", 568 | "raptor-regexp": "^1.0.1", 569 | "raptor-util": "^3.2.0", 570 | "resolve-from": "^5.0.0", 571 | "self-closing-tags": "^1.0.1", 572 | "strip-ansi": "^6.0.0", 573 | "strip-json-comments": "^3.1.1" 574 | } 575 | }, 576 | "node_modules/@marko/translator-default": { 577 | "version": "5.20.3", 578 | "resolved": "https://registry.npmjs.org/@marko/translator-default/-/translator-default-5.20.3.tgz", 579 | "integrity": "sha512-GSNO6b1MGMHXI3OMfgEt0GXaBzrL6k8dRXLv1W0MEbhS9mshkGx9dsF0yFgmRxC0gizk3HTRz7v8x4EZik1s6w==", 580 | "dev": true, 581 | "dependencies": { 582 | "@babel/runtime": "^7.16.0", 583 | "@marko/babel-utils": "^5.20.3", 584 | "escape-string-regexp": "^4.0.0", 585 | "magic-string": "^0.25.7", 586 | "self-closing-tags": "^1.0.1" 587 | }, 588 | "peerDependencies": { 589 | "@marko/compiler": "^5.16.1", 590 | "marko": "^5.17.2" 591 | } 592 | }, 593 | "node_modules/@marko/translator-default/node_modules/escape-string-regexp": { 594 | "version": "4.0.0", 595 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 596 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 597 | "dev": true, 598 | "engines": { 599 | "node": ">=10" 600 | }, 601 | "funding": { 602 | "url": "https://github.com/sponsors/sindresorhus" 603 | } 604 | }, 605 | "node_modules/@marko/vite": { 606 | "version": "2.2.11", 607 | "resolved": "https://registry.npmjs.org/@marko/vite/-/vite-2.2.11.tgz", 608 | "integrity": "sha512-8xzK5lxsOar5mANOc40WxKM7bFTVHGIJUeUJ5Av1jftW9EXwxvUU7iWRLfaKDsvsySuSsVb5kykYsuPwY0vYNw==", 609 | "dev": true, 610 | "dependencies": { 611 | "anymatch": "^3.1.2", 612 | "domelementtype": "^2.2.0", 613 | "domhandler": "^4.3.0", 614 | "htmlparser2": "^7.2.0" 615 | }, 616 | "peerDependencies": { 617 | "@marko/compiler": "^5", 618 | "vite": "^2" 619 | } 620 | }, 621 | "node_modules/ansi-regex": { 622 | "version": "5.0.1", 623 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 624 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 625 | "dev": true, 626 | "engines": { 627 | "node": ">=8" 628 | } 629 | }, 630 | "node_modules/ansi-styles": { 631 | "version": "3.2.1", 632 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 633 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 634 | "dev": true, 635 | "dependencies": { 636 | "color-convert": "^1.9.0" 637 | }, 638 | "engines": { 639 | "node": ">=4" 640 | } 641 | }, 642 | "node_modules/anymatch": { 643 | "version": "3.1.2", 644 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", 645 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", 646 | "dev": true, 647 | "dependencies": { 648 | "normalize-path": "^3.0.0", 649 | "picomatch": "^2.0.4" 650 | }, 651 | "engines": { 652 | "node": ">= 8" 653 | } 654 | }, 655 | "node_modules/app-module-path": { 656 | "version": "2.2.0", 657 | "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", 658 | "integrity": "sha1-ZBqlXft9am8KgUHEucCqULbCTdU=", 659 | "dev": true 660 | }, 661 | "node_modules/argly": { 662 | "version": "1.2.0", 663 | "resolved": "https://registry.npmjs.org/argly/-/argly-1.2.0.tgz", 664 | "integrity": "sha1-KydORVGin/XnGZ0u2XiOtm7TbmA=", 665 | "dev": true 666 | }, 667 | "node_modules/assertion-error": { 668 | "version": "1.1.0", 669 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", 670 | "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", 671 | "dev": true, 672 | "engines": { 673 | "node": "*" 674 | } 675 | }, 676 | "node_modules/autoprefixer": { 677 | "version": "10.4.4", 678 | "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.4.tgz", 679 | "integrity": "sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==", 680 | "dev": true, 681 | "funding": [ 682 | { 683 | "type": "opencollective", 684 | "url": "https://opencollective.com/postcss/" 685 | }, 686 | { 687 | "type": "tidelift", 688 | "url": "https://tidelift.com/funding/github/npm/autoprefixer" 689 | } 690 | ], 691 | "dependencies": { 692 | "browserslist": "^4.20.2", 693 | "caniuse-lite": "^1.0.30001317", 694 | "fraction.js": "^4.2.0", 695 | "normalize-range": "^0.1.2", 696 | "picocolors": "^1.0.0", 697 | "postcss-value-parser": "^4.2.0" 698 | }, 699 | "bin": { 700 | "autoprefixer": "bin/autoprefixer" 701 | }, 702 | "engines": { 703 | "node": "^10 || ^12 || >=14" 704 | }, 705 | "peerDependencies": { 706 | "postcss": "^8.1.0" 707 | } 708 | }, 709 | "node_modules/babel-plugin-dynamic-import-node": { 710 | "version": "2.3.3", 711 | "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", 712 | "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", 713 | "dev": true, 714 | "dependencies": { 715 | "object.assign": "^4.1.0" 716 | } 717 | }, 718 | "node_modules/balanced-match": { 719 | "version": "1.0.2", 720 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 721 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 722 | "dev": true 723 | }, 724 | "node_modules/brace-expansion": { 725 | "version": "1.1.11", 726 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 727 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 728 | "dev": true, 729 | "dependencies": { 730 | "balanced-match": "^1.0.0", 731 | "concat-map": "0.0.1" 732 | } 733 | }, 734 | "node_modules/browser-refresh-client": { 735 | "version": "1.1.4", 736 | "resolved": "https://registry.npmjs.org/browser-refresh-client/-/browser-refresh-client-1.1.4.tgz", 737 | "integrity": "sha1-jl/4R1/h1UHSroH3oa6gWuIaYhc=", 738 | "dev": true 739 | }, 740 | "node_modules/browserslist": { 741 | "version": "4.20.2", 742 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", 743 | "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", 744 | "dev": true, 745 | "funding": [ 746 | { 747 | "type": "opencollective", 748 | "url": "https://opencollective.com/browserslist" 749 | }, 750 | { 751 | "type": "tidelift", 752 | "url": "https://tidelift.com/funding/github/npm/browserslist" 753 | } 754 | ], 755 | "dependencies": { 756 | "caniuse-lite": "^1.0.30001317", 757 | "electron-to-chromium": "^1.4.84", 758 | "escalade": "^3.1.1", 759 | "node-releases": "^2.0.2", 760 | "picocolors": "^1.0.0" 761 | }, 762 | "bin": { 763 | "browserslist": "cli.js" 764 | }, 765 | "engines": { 766 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 767 | } 768 | }, 769 | "node_modules/call-bind": { 770 | "version": "1.0.2", 771 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 772 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 773 | "dev": true, 774 | "dependencies": { 775 | "function-bind": "^1.1.1", 776 | "get-intrinsic": "^1.0.2" 777 | }, 778 | "funding": { 779 | "url": "https://github.com/sponsors/ljharb" 780 | } 781 | }, 782 | "node_modules/caniuse-lite": { 783 | "version": "1.0.30001327", 784 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001327.tgz", 785 | "integrity": "sha512-1/Cg4jlD9qjZzhbzkzEaAC2JHsP0WrOc8Rd/3a3LuajGzGWR/hD7TVyvq99VqmTy99eVh8Zkmdq213OgvgXx7w==", 786 | "dev": true, 787 | "funding": [ 788 | { 789 | "type": "opencollective", 790 | "url": "https://opencollective.com/browserslist" 791 | }, 792 | { 793 | "type": "tidelift", 794 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 795 | } 796 | ] 797 | }, 798 | "node_modules/chai": { 799 | "version": "3.5.0", 800 | "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", 801 | "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", 802 | "dev": true, 803 | "dependencies": { 804 | "assertion-error": "^1.0.1", 805 | "deep-eql": "^0.1.3", 806 | "type-detect": "^1.0.0" 807 | }, 808 | "engines": { 809 | "node": ">= 0.4.0" 810 | } 811 | }, 812 | "node_modules/chalk": { 813 | "version": "2.4.2", 814 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 815 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 816 | "dev": true, 817 | "dependencies": { 818 | "ansi-styles": "^3.2.1", 819 | "escape-string-regexp": "^1.0.5", 820 | "supports-color": "^5.3.0" 821 | }, 822 | "engines": { 823 | "node": ">=4" 824 | } 825 | }, 826 | "node_modules/char-props": { 827 | "version": "0.1.5", 828 | "resolved": "https://registry.npmjs.org/char-props/-/char-props-0.1.5.tgz", 829 | "integrity": "sha1-W5UvniDqIc0Iyn/hNaEPb+kcEJ4=", 830 | "dev": true, 831 | "engines": { 832 | "node": ">= 0.6.0" 833 | } 834 | }, 835 | "node_modules/color-convert": { 836 | "version": "1.9.3", 837 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 838 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 839 | "dev": true, 840 | "dependencies": { 841 | "color-name": "1.1.3" 842 | } 843 | }, 844 | "node_modules/color-name": { 845 | "version": "1.1.3", 846 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 847 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 848 | "dev": true 849 | }, 850 | "node_modules/complain": { 851 | "version": "1.6.0", 852 | "resolved": "https://registry.npmjs.org/complain/-/complain-1.6.0.tgz", 853 | "integrity": "sha512-9oBfSEfxveaNmo2eSp/vEPkaBVxUhiJTZVgGYayzBchSAXQM6CK1PAQeV5ICShnSgfT+biYzrN7egKwwX+HkCw==", 854 | "dev": true, 855 | "dependencies": { 856 | "error-stack-parser": "^2.0.1" 857 | } 858 | }, 859 | "node_modules/concat-map": { 860 | "version": "0.0.1", 861 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 862 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 863 | "dev": true 864 | }, 865 | "node_modules/convert-source-map": { 866 | "version": "1.8.0", 867 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", 868 | "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", 869 | "dev": true, 870 | "dependencies": { 871 | "safe-buffer": "~5.1.1" 872 | } 873 | }, 874 | "node_modules/cross-env": { 875 | "version": "7.0.3", 876 | "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", 877 | "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", 878 | "dev": true, 879 | "dependencies": { 880 | "cross-spawn": "^7.0.1" 881 | }, 882 | "bin": { 883 | "cross-env": "src/bin/cross-env.js", 884 | "cross-env-shell": "src/bin/cross-env-shell.js" 885 | }, 886 | "engines": { 887 | "node": ">=10.14", 888 | "npm": ">=6", 889 | "yarn": ">=1" 890 | } 891 | }, 892 | "node_modules/cross-spawn": { 893 | "version": "7.0.3", 894 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 895 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 896 | "dev": true, 897 | "dependencies": { 898 | "path-key": "^3.1.0", 899 | "shebang-command": "^2.0.0", 900 | "which": "^2.0.1" 901 | }, 902 | "engines": { 903 | "node": ">= 8" 904 | } 905 | }, 906 | "node_modules/css-blank-pseudo": { 907 | "version": "3.0.3", 908 | "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", 909 | "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", 910 | "dev": true, 911 | "dependencies": { 912 | "postcss-selector-parser": "^6.0.9" 913 | }, 914 | "bin": { 915 | "css-blank-pseudo": "dist/cli.cjs" 916 | }, 917 | "engines": { 918 | "node": "^12 || ^14 || >=16" 919 | }, 920 | "peerDependencies": { 921 | "postcss": "^8.4" 922 | } 923 | }, 924 | "node_modules/css-has-pseudo": { 925 | "version": "3.0.4", 926 | "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", 927 | "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", 928 | "dev": true, 929 | "dependencies": { 930 | "postcss-selector-parser": "^6.0.9" 931 | }, 932 | "bin": { 933 | "css-has-pseudo": "dist/cli.cjs" 934 | }, 935 | "engines": { 936 | "node": "^12 || ^14 || >=16" 937 | }, 938 | "peerDependencies": { 939 | "postcss": "^8.4" 940 | } 941 | }, 942 | "node_modules/css-prefers-color-scheme": { 943 | "version": "6.0.3", 944 | "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", 945 | "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", 946 | "dev": true, 947 | "bin": { 948 | "css-prefers-color-scheme": "dist/cli.cjs" 949 | }, 950 | "engines": { 951 | "node": "^12 || ^14 || >=16" 952 | }, 953 | "peerDependencies": { 954 | "postcss": "^8.4" 955 | } 956 | }, 957 | "node_modules/cssdb": { 958 | "version": "6.5.0", 959 | "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.5.0.tgz", 960 | "integrity": "sha512-Rh7AAopF2ckPXe/VBcoUS9JrCZNSyc60+KpgE6X25vpVxA32TmiqvExjkfhwP4wGSb6Xe8Z/JIyGqwgx/zZYFA==", 961 | "dev": true 962 | }, 963 | "node_modules/cssesc": { 964 | "version": "3.0.0", 965 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", 966 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", 967 | "dev": true, 968 | "bin": { 969 | "cssesc": "bin/cssesc" 970 | }, 971 | "engines": { 972 | "node": ">=4" 973 | } 974 | }, 975 | "node_modules/debug": { 976 | "version": "4.3.4", 977 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 978 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 979 | "dev": true, 980 | "dependencies": { 981 | "ms": "2.1.2" 982 | }, 983 | "engines": { 984 | "node": ">=6.0" 985 | }, 986 | "peerDependenciesMeta": { 987 | "supports-color": { 988 | "optional": true 989 | } 990 | } 991 | }, 992 | "node_modules/deep-eql": { 993 | "version": "0.1.3", 994 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", 995 | "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", 996 | "dev": true, 997 | "dependencies": { 998 | "type-detect": "0.1.1" 999 | }, 1000 | "engines": { 1001 | "node": "*" 1002 | } 1003 | }, 1004 | "node_modules/deep-eql/node_modules/type-detect": { 1005 | "version": "0.1.1", 1006 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", 1007 | "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", 1008 | "dev": true, 1009 | "engines": { 1010 | "node": "*" 1011 | } 1012 | }, 1013 | "node_modules/define-properties": { 1014 | "version": "1.1.3", 1015 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", 1016 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", 1017 | "dev": true, 1018 | "dependencies": { 1019 | "object-keys": "^1.0.12" 1020 | }, 1021 | "engines": { 1022 | "node": ">= 0.4" 1023 | } 1024 | }, 1025 | "node_modules/dom-serializer": { 1026 | "version": "1.4.1", 1027 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", 1028 | "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", 1029 | "dev": true, 1030 | "dependencies": { 1031 | "domelementtype": "^2.0.1", 1032 | "domhandler": "^4.2.0", 1033 | "entities": "^2.0.0" 1034 | }, 1035 | "funding": { 1036 | "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" 1037 | } 1038 | }, 1039 | "node_modules/dom-serializer/node_modules/entities": { 1040 | "version": "2.2.0", 1041 | "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", 1042 | "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", 1043 | "dev": true, 1044 | "funding": { 1045 | "url": "https://github.com/fb55/entities?sponsor=1" 1046 | } 1047 | }, 1048 | "node_modules/domelementtype": { 1049 | "version": "2.3.0", 1050 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", 1051 | "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", 1052 | "dev": true, 1053 | "funding": [ 1054 | { 1055 | "type": "github", 1056 | "url": "https://github.com/sponsors/fb55" 1057 | } 1058 | ] 1059 | }, 1060 | "node_modules/domhandler": { 1061 | "version": "4.3.1", 1062 | "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", 1063 | "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", 1064 | "dev": true, 1065 | "dependencies": { 1066 | "domelementtype": "^2.2.0" 1067 | }, 1068 | "engines": { 1069 | "node": ">= 4" 1070 | }, 1071 | "funding": { 1072 | "url": "https://github.com/fb55/domhandler?sponsor=1" 1073 | } 1074 | }, 1075 | "node_modules/domutils": { 1076 | "version": "2.8.0", 1077 | "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", 1078 | "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", 1079 | "dev": true, 1080 | "dependencies": { 1081 | "dom-serializer": "^1.0.1", 1082 | "domelementtype": "^2.2.0", 1083 | "domhandler": "^4.2.0" 1084 | }, 1085 | "funding": { 1086 | "url": "https://github.com/fb55/domutils?sponsor=1" 1087 | } 1088 | }, 1089 | "node_modules/electron-to-chromium": { 1090 | "version": "1.4.106", 1091 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.106.tgz", 1092 | "integrity": "sha512-ZYfpVLULm67K7CaaGP7DmjyeMY4naxsbTy+syVVxT6QHI1Ww8XbJjmr9fDckrhq44WzCrcC5kH3zGpdusxwwqg==", 1093 | "dev": true 1094 | }, 1095 | "node_modules/entities": { 1096 | "version": "3.0.1", 1097 | "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", 1098 | "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", 1099 | "dev": true, 1100 | "engines": { 1101 | "node": ">=0.12" 1102 | }, 1103 | "funding": { 1104 | "url": "https://github.com/fb55/entities?sponsor=1" 1105 | } 1106 | }, 1107 | "node_modules/error-stack-parser": { 1108 | "version": "2.0.7", 1109 | "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz", 1110 | "integrity": "sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==", 1111 | "dev": true, 1112 | "dependencies": { 1113 | "stackframe": "^1.1.1" 1114 | } 1115 | }, 1116 | "node_modules/esbuild": { 1117 | "version": "0.14.34", 1118 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.34.tgz", 1119 | "integrity": "sha512-QIWdPT/gFF6hCaf4m7kP0cJ+JIuFkdHibI7vVFvu3eJS1HpVmYHWDulyN5WXwbRA0SX/7ZDaJ/1DH8SdY9xOJg==", 1120 | "dev": true, 1121 | "hasInstallScript": true, 1122 | "bin": { 1123 | "esbuild": "bin/esbuild" 1124 | }, 1125 | "engines": { 1126 | "node": ">=12" 1127 | }, 1128 | "optionalDependencies": { 1129 | "esbuild-android-64": "0.14.34", 1130 | "esbuild-android-arm64": "0.14.34", 1131 | "esbuild-darwin-64": "0.14.34", 1132 | "esbuild-darwin-arm64": "0.14.34", 1133 | "esbuild-freebsd-64": "0.14.34", 1134 | "esbuild-freebsd-arm64": "0.14.34", 1135 | "esbuild-linux-32": "0.14.34", 1136 | "esbuild-linux-64": "0.14.34", 1137 | "esbuild-linux-arm": "0.14.34", 1138 | "esbuild-linux-arm64": "0.14.34", 1139 | "esbuild-linux-mips64le": "0.14.34", 1140 | "esbuild-linux-ppc64le": "0.14.34", 1141 | "esbuild-linux-riscv64": "0.14.34", 1142 | "esbuild-linux-s390x": "0.14.34", 1143 | "esbuild-netbsd-64": "0.14.34", 1144 | "esbuild-openbsd-64": "0.14.34", 1145 | "esbuild-sunos-64": "0.14.34", 1146 | "esbuild-windows-32": "0.14.34", 1147 | "esbuild-windows-64": "0.14.34", 1148 | "esbuild-windows-arm64": "0.14.34" 1149 | } 1150 | }, 1151 | "node_modules/esbuild-android-64": { 1152 | "version": "0.14.34", 1153 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.34.tgz", 1154 | "integrity": "sha512-XfxcfJqmMYsT/LXqrptzFxmaR3GWzXHDLdFNIhm6S00zPaQF1TBBWm+9t0RZ6LRR7iwH57DPjaOeW20vMqI4Yw==", 1155 | "cpu": [ 1156 | "x64" 1157 | ], 1158 | "dev": true, 1159 | "optional": true, 1160 | "os": [ 1161 | "android" 1162 | ], 1163 | "engines": { 1164 | "node": ">=12" 1165 | } 1166 | }, 1167 | "node_modules/esbuild-android-arm64": { 1168 | "version": "0.14.34", 1169 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.34.tgz", 1170 | "integrity": "sha512-T02+NXTmSRL1Mc6puz+R9CB54rSPICkXKq6+tw8B6vxZFnCPzbJxgwIX4kcluz9p8nYBjF3+lSilTGWb7+Xgew==", 1171 | "cpu": [ 1172 | "arm64" 1173 | ], 1174 | "dev": true, 1175 | "optional": true, 1176 | "os": [ 1177 | "android" 1178 | ], 1179 | "engines": { 1180 | "node": ">=12" 1181 | } 1182 | }, 1183 | "node_modules/esbuild-darwin-64": { 1184 | "version": "0.14.34", 1185 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.34.tgz", 1186 | "integrity": "sha512-pLRip2Bh4Ng7Bf6AMgCrSp3pPe/qZyf11h5Qo2mOfJqLWzSVjxrXW+CFRJfrOVP7TCnh/gmZSM2AFdCPB72vtw==", 1187 | "cpu": [ 1188 | "x64" 1189 | ], 1190 | "dev": true, 1191 | "optional": true, 1192 | "os": [ 1193 | "darwin" 1194 | ], 1195 | "engines": { 1196 | "node": ">=12" 1197 | } 1198 | }, 1199 | "node_modules/esbuild-darwin-arm64": { 1200 | "version": "0.14.34", 1201 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.34.tgz", 1202 | "integrity": "sha512-vpidSJEBxx6lf1NWgXC+DCmGqesJuZ5Y8aQVVsaoO4i8tRXbXb0whChRvop/zd3nfNM4dIl5EXAky0knRX5I6w==", 1203 | "cpu": [ 1204 | "arm64" 1205 | ], 1206 | "dev": true, 1207 | "optional": true, 1208 | "os": [ 1209 | "darwin" 1210 | ], 1211 | "engines": { 1212 | "node": ">=12" 1213 | } 1214 | }, 1215 | "node_modules/esbuild-freebsd-64": { 1216 | "version": "0.14.34", 1217 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.34.tgz", 1218 | "integrity": "sha512-m0HBjePhe0hAQJgtMRMNV9kMgIyV4/qSnzPx42kRMQBcPhgjAq1JRu4Il26czC+9FgpMbFkUktb07f/Lwnc6CA==", 1219 | "cpu": [ 1220 | "x64" 1221 | ], 1222 | "dev": true, 1223 | "optional": true, 1224 | "os": [ 1225 | "freebsd" 1226 | ], 1227 | "engines": { 1228 | "node": ">=12" 1229 | } 1230 | }, 1231 | "node_modules/esbuild-freebsd-arm64": { 1232 | "version": "0.14.34", 1233 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.34.tgz", 1234 | "integrity": "sha512-cpRc2B94L1KvMPPYB4D6G39jLqpKlD3noAMY4/e86iXXXkhUYJJEtTuyNFTa9JRpWM0xCAp4mxjHjoIiLuoCLA==", 1235 | "cpu": [ 1236 | "arm64" 1237 | ], 1238 | "dev": true, 1239 | "optional": true, 1240 | "os": [ 1241 | "freebsd" 1242 | ], 1243 | "engines": { 1244 | "node": ">=12" 1245 | } 1246 | }, 1247 | "node_modules/esbuild-linux-32": { 1248 | "version": "0.14.34", 1249 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.34.tgz", 1250 | "integrity": "sha512-8nQaEaoW7MH/K/RlozJa+lE1ejHIr8fuPIHhc513UebRav7HtXgQvxHQ6VZRUkWtep23M6dd7UqhwO1tMOfzQQ==", 1251 | "cpu": [ 1252 | "ia32" 1253 | ], 1254 | "dev": true, 1255 | "optional": true, 1256 | "os": [ 1257 | "linux" 1258 | ], 1259 | "engines": { 1260 | "node": ">=12" 1261 | } 1262 | }, 1263 | "node_modules/esbuild-linux-64": { 1264 | "version": "0.14.34", 1265 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.34.tgz", 1266 | "integrity": "sha512-Y3of4qQoLLlAgf042MlrY1P+7PnN9zWj8nVtw9XQG5hcLOZLz7IKpU35oeu7n4wvyaZHwvQqDJ93gRLqdJekcQ==", 1267 | "cpu": [ 1268 | "x64" 1269 | ], 1270 | "dev": true, 1271 | "optional": true, 1272 | "os": [ 1273 | "linux" 1274 | ], 1275 | "engines": { 1276 | "node": ">=12" 1277 | } 1278 | }, 1279 | "node_modules/esbuild-linux-arm": { 1280 | "version": "0.14.34", 1281 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.34.tgz", 1282 | "integrity": "sha512-9lpq1NcJqssAF7alCO6zL3gvBVVt/lKw4oetUM7OgNnRX0OWpB+ZIO9FwCrSj/dMdmgDhPLf+119zB8QxSMmAg==", 1283 | "cpu": [ 1284 | "arm" 1285 | ], 1286 | "dev": true, 1287 | "optional": true, 1288 | "os": [ 1289 | "linux" 1290 | ], 1291 | "engines": { 1292 | "node": ">=12" 1293 | } 1294 | }, 1295 | "node_modules/esbuild-linux-arm64": { 1296 | "version": "0.14.34", 1297 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.34.tgz", 1298 | "integrity": "sha512-IlWaGtj9ir7+Nrume1DGcyzBDlK8GcnJq0ANKwcI9pVw8tqr+6GD0eqyF9SF1mR8UmAp+odrx1H5NdR2cHdFHA==", 1299 | "cpu": [ 1300 | "arm64" 1301 | ], 1302 | "dev": true, 1303 | "optional": true, 1304 | "os": [ 1305 | "linux" 1306 | ], 1307 | "engines": { 1308 | "node": ">=12" 1309 | } 1310 | }, 1311 | "node_modules/esbuild-linux-mips64le": { 1312 | "version": "0.14.34", 1313 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.34.tgz", 1314 | "integrity": "sha512-k3or+01Rska1AjUyNjA4buEwB51eyN/xPQAoOx1CjzAQC3l8rpjUDw55kXyL63O/1MUi4ISvtNtl8gLwdyEcxw==", 1315 | "cpu": [ 1316 | "mips64el" 1317 | ], 1318 | "dev": true, 1319 | "optional": true, 1320 | "os": [ 1321 | "linux" 1322 | ], 1323 | "engines": { 1324 | "node": ">=12" 1325 | } 1326 | }, 1327 | "node_modules/esbuild-linux-ppc64le": { 1328 | "version": "0.14.34", 1329 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.34.tgz", 1330 | "integrity": "sha512-+qxb8M9FfM2CJaVU7GgYpJOHM1ngQOx+/VrtBjb4C8oVqaPcESCeg2anjl+HRZy8VpYc71q/iBYausPPbJ+Keg==", 1331 | "cpu": [ 1332 | "ppc64" 1333 | ], 1334 | "dev": true, 1335 | "optional": true, 1336 | "os": [ 1337 | "linux" 1338 | ], 1339 | "engines": { 1340 | "node": ">=12" 1341 | } 1342 | }, 1343 | "node_modules/esbuild-linux-riscv64": { 1344 | "version": "0.14.34", 1345 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.34.tgz", 1346 | "integrity": "sha512-Y717ltBdQ5j5sZIHdy1DV9kieo0wMip0dCmVSTceowCPYSn1Cg33Kd6981+F/3b9FDMzNWldZFOBRILViENZSA==", 1347 | "cpu": [ 1348 | "riscv64" 1349 | ], 1350 | "dev": true, 1351 | "optional": true, 1352 | "os": [ 1353 | "linux" 1354 | ], 1355 | "engines": { 1356 | "node": ">=12" 1357 | } 1358 | }, 1359 | "node_modules/esbuild-linux-s390x": { 1360 | "version": "0.14.34", 1361 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.34.tgz", 1362 | "integrity": "sha512-bDDgYO4LhL4+zPs+WcBkXph+AQoPcQRTv18FzZS0WhjfH8TZx2QqlVPGhmhZ6WidrY+jKthUqO6UhGyIb4MpmA==", 1363 | "cpu": [ 1364 | "s390x" 1365 | ], 1366 | "dev": true, 1367 | "optional": true, 1368 | "os": [ 1369 | "linux" 1370 | ], 1371 | "engines": { 1372 | "node": ">=12" 1373 | } 1374 | }, 1375 | "node_modules/esbuild-netbsd-64": { 1376 | "version": "0.14.34", 1377 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.34.tgz", 1378 | "integrity": "sha512-cfaFGXdRt0+vHsjNPyF0POM4BVSHPSbhLPe8mppDc7GDDxjIl08mV1Zou14oDWMp/XZMjYN1kWYRSfftiD0vvQ==", 1379 | "cpu": [ 1380 | "x64" 1381 | ], 1382 | "dev": true, 1383 | "optional": true, 1384 | "os": [ 1385 | "netbsd" 1386 | ], 1387 | "engines": { 1388 | "node": ">=12" 1389 | } 1390 | }, 1391 | "node_modules/esbuild-openbsd-64": { 1392 | "version": "0.14.34", 1393 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.34.tgz", 1394 | "integrity": "sha512-vmy9DxXVnRiI14s8GKuYBtess+EVcDALkbpTqd5jw4XITutIzyB7n4x0Tj5utAkKsgZJB22lLWGekr0ABnSLow==", 1395 | "cpu": [ 1396 | "x64" 1397 | ], 1398 | "dev": true, 1399 | "optional": true, 1400 | "os": [ 1401 | "openbsd" 1402 | ], 1403 | "engines": { 1404 | "node": ">=12" 1405 | } 1406 | }, 1407 | "node_modules/esbuild-sunos-64": { 1408 | "version": "0.14.34", 1409 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.34.tgz", 1410 | "integrity": "sha512-eNPVatNET1F7tRMhii7goL/eptfxc0ALRjrj9SPFNqp0zmxrehBFD6BaP3R4LjMn6DbMO0jOAnTLFKr8NqcJAA==", 1411 | "cpu": [ 1412 | "x64" 1413 | ], 1414 | "dev": true, 1415 | "optional": true, 1416 | "os": [ 1417 | "sunos" 1418 | ], 1419 | "engines": { 1420 | "node": ">=12" 1421 | } 1422 | }, 1423 | "node_modules/esbuild-windows-32": { 1424 | "version": "0.14.34", 1425 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.34.tgz", 1426 | "integrity": "sha512-EFhpXyHEcnqWYe2rAHFd8dRw8wkrd9U+9oqcyoEL84GbanAYjiiIjBZsnR8kl0sCQ5w6bLpk7vCEIA2VS32Vcg==", 1427 | "cpu": [ 1428 | "ia32" 1429 | ], 1430 | "dev": true, 1431 | "optional": true, 1432 | "os": [ 1433 | "win32" 1434 | ], 1435 | "engines": { 1436 | "node": ">=12" 1437 | } 1438 | }, 1439 | "node_modules/esbuild-windows-64": { 1440 | "version": "0.14.34", 1441 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.34.tgz", 1442 | "integrity": "sha512-a8fbl8Ky7PxNEjf1aJmtxdDZj32/hC7S1OcA2ckEpCJRTjiKslI9vAdPpSjrKIWhws4Galpaawy0nB7fjHYf5Q==", 1443 | "cpu": [ 1444 | "x64" 1445 | ], 1446 | "dev": true, 1447 | "optional": true, 1448 | "os": [ 1449 | "win32" 1450 | ], 1451 | "engines": { 1452 | "node": ">=12" 1453 | } 1454 | }, 1455 | "node_modules/esbuild-windows-arm64": { 1456 | "version": "0.14.34", 1457 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.34.tgz", 1458 | "integrity": "sha512-EYvmKbSa2B3sPnpC28UEu9jBK5atGV4BaVRE7CYGUci2Hlz4AvtV/LML+TcDMT6gBgibnN2gcltWclab3UutMg==", 1459 | "cpu": [ 1460 | "arm64" 1461 | ], 1462 | "dev": true, 1463 | "optional": true, 1464 | "os": [ 1465 | "win32" 1466 | ], 1467 | "engines": { 1468 | "node": ">=12" 1469 | } 1470 | }, 1471 | "node_modules/escalade": { 1472 | "version": "3.1.1", 1473 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 1474 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 1475 | "dev": true, 1476 | "engines": { 1477 | "node": ">=6" 1478 | } 1479 | }, 1480 | "node_modules/escape-string-regexp": { 1481 | "version": "1.0.5", 1482 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1483 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 1484 | "dev": true, 1485 | "engines": { 1486 | "node": ">=0.8.0" 1487 | } 1488 | }, 1489 | "node_modules/events-light": { 1490 | "version": "1.0.5", 1491 | "resolved": "https://registry.npmjs.org/events-light/-/events-light-1.0.5.tgz", 1492 | "integrity": "sha1-lk5jRQugr0prAiqpVbF//vZXte4=", 1493 | "dev": true, 1494 | "dependencies": { 1495 | "chai": "^3.5.0" 1496 | } 1497 | }, 1498 | "node_modules/fraction.js": { 1499 | "version": "4.2.0", 1500 | "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", 1501 | "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", 1502 | "dev": true, 1503 | "engines": { 1504 | "node": "*" 1505 | }, 1506 | "funding": { 1507 | "type": "patreon", 1508 | "url": "https://www.patreon.com/infusion" 1509 | } 1510 | }, 1511 | "node_modules/fs.realpath": { 1512 | "version": "1.0.0", 1513 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1514 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1515 | "dev": true 1516 | }, 1517 | "node_modules/fsevents": { 1518 | "version": "2.3.2", 1519 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 1520 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 1521 | "dev": true, 1522 | "hasInstallScript": true, 1523 | "optional": true, 1524 | "os": [ 1525 | "darwin" 1526 | ], 1527 | "engines": { 1528 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1529 | } 1530 | }, 1531 | "node_modules/function-bind": { 1532 | "version": "1.1.1", 1533 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1534 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1535 | "dev": true 1536 | }, 1537 | "node_modules/gensync": { 1538 | "version": "1.0.0-beta.2", 1539 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 1540 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", 1541 | "dev": true, 1542 | "engines": { 1543 | "node": ">=6.9.0" 1544 | } 1545 | }, 1546 | "node_modules/get-intrinsic": { 1547 | "version": "1.1.1", 1548 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", 1549 | "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", 1550 | "dev": true, 1551 | "dependencies": { 1552 | "function-bind": "^1.1.1", 1553 | "has": "^1.0.3", 1554 | "has-symbols": "^1.0.1" 1555 | }, 1556 | "funding": { 1557 | "url": "https://github.com/sponsors/ljharb" 1558 | } 1559 | }, 1560 | "node_modules/glob": { 1561 | "version": "7.2.0", 1562 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", 1563 | "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", 1564 | "dev": true, 1565 | "dependencies": { 1566 | "fs.realpath": "^1.0.0", 1567 | "inflight": "^1.0.4", 1568 | "inherits": "2", 1569 | "minimatch": "^3.0.4", 1570 | "once": "^1.3.0", 1571 | "path-is-absolute": "^1.0.0" 1572 | }, 1573 | "engines": { 1574 | "node": "*" 1575 | }, 1576 | "funding": { 1577 | "url": "https://github.com/sponsors/isaacs" 1578 | } 1579 | }, 1580 | "node_modules/globals": { 1581 | "version": "11.12.0", 1582 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 1583 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 1584 | "dev": true, 1585 | "engines": { 1586 | "node": ">=4" 1587 | } 1588 | }, 1589 | "node_modules/has": { 1590 | "version": "1.0.3", 1591 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1592 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1593 | "dev": true, 1594 | "dependencies": { 1595 | "function-bind": "^1.1.1" 1596 | }, 1597 | "engines": { 1598 | "node": ">= 0.4.0" 1599 | } 1600 | }, 1601 | "node_modules/has-flag": { 1602 | "version": "3.0.0", 1603 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1604 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 1605 | "dev": true, 1606 | "engines": { 1607 | "node": ">=4" 1608 | } 1609 | }, 1610 | "node_modules/has-symbols": { 1611 | "version": "1.0.3", 1612 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 1613 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", 1614 | "dev": true, 1615 | "engines": { 1616 | "node": ">= 0.4" 1617 | }, 1618 | "funding": { 1619 | "url": "https://github.com/sponsors/ljharb" 1620 | } 1621 | }, 1622 | "node_modules/he": { 1623 | "version": "1.2.0", 1624 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", 1625 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", 1626 | "dev": true, 1627 | "bin": { 1628 | "he": "bin/he" 1629 | } 1630 | }, 1631 | "node_modules/htmljs-parser": { 1632 | "version": "2.11.3", 1633 | "resolved": "https://registry.npmjs.org/htmljs-parser/-/htmljs-parser-2.11.3.tgz", 1634 | "integrity": "sha512-qK+YpmgYzKAgPiYKyVBuMeDwLGvxCsjoNI3W7q9tdv6A+Z/4XoTTefXi5mj15cEN/byU5Z5INhsXxhafshg+5A==", 1635 | "dev": true, 1636 | "dependencies": { 1637 | "char-props": "^0.1.5", 1638 | "complain": "^1.0.0" 1639 | } 1640 | }, 1641 | "node_modules/htmlparser2": { 1642 | "version": "7.2.0", 1643 | "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", 1644 | "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", 1645 | "dev": true, 1646 | "funding": [ 1647 | "https://github.com/fb55/htmlparser2?sponsor=1", 1648 | { 1649 | "type": "github", 1650 | "url": "https://github.com/sponsors/fb55" 1651 | } 1652 | ], 1653 | "dependencies": { 1654 | "domelementtype": "^2.0.1", 1655 | "domhandler": "^4.2.2", 1656 | "domutils": "^2.8.0", 1657 | "entities": "^3.0.1" 1658 | } 1659 | }, 1660 | "node_modules/inflight": { 1661 | "version": "1.0.6", 1662 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1663 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1664 | "dev": true, 1665 | "dependencies": { 1666 | "once": "^1.3.0", 1667 | "wrappy": "1" 1668 | } 1669 | }, 1670 | "node_modules/inherits": { 1671 | "version": "2.0.4", 1672 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1673 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 1674 | "dev": true 1675 | }, 1676 | "node_modules/is-core-module": { 1677 | "version": "2.8.1", 1678 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", 1679 | "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", 1680 | "dev": true, 1681 | "dependencies": { 1682 | "has": "^1.0.3" 1683 | }, 1684 | "funding": { 1685 | "url": "https://github.com/sponsors/ljharb" 1686 | } 1687 | }, 1688 | "node_modules/isexe": { 1689 | "version": "2.0.0", 1690 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1691 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 1692 | "dev": true 1693 | }, 1694 | "node_modules/js-tokens": { 1695 | "version": "4.0.0", 1696 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 1697 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 1698 | "dev": true 1699 | }, 1700 | "node_modules/jsesc": { 1701 | "version": "3.0.2", 1702 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", 1703 | "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", 1704 | "dev": true, 1705 | "bin": { 1706 | "jsesc": "bin/jsesc" 1707 | }, 1708 | "engines": { 1709 | "node": ">=6" 1710 | } 1711 | }, 1712 | "node_modules/json5": { 1713 | "version": "2.2.1", 1714 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", 1715 | "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", 1716 | "dev": true, 1717 | "bin": { 1718 | "json5": "lib/cli.js" 1719 | }, 1720 | "engines": { 1721 | "node": ">=6" 1722 | } 1723 | }, 1724 | "node_modules/lasso-caching-fs": { 1725 | "version": "1.0.2", 1726 | "resolved": "https://registry.npmjs.org/lasso-caching-fs/-/lasso-caching-fs-1.0.2.tgz", 1727 | "integrity": "sha1-m+TrHwaqwSYDRMrq70LC8AhusQ0=", 1728 | "dev": true, 1729 | "dependencies": { 1730 | "raptor-async": "^1.1.2" 1731 | } 1732 | }, 1733 | "node_modules/lasso-package-root": { 1734 | "version": "1.0.1", 1735 | "resolved": "https://registry.npmjs.org/lasso-package-root/-/lasso-package-root-1.0.1.tgz", 1736 | "integrity": "sha1-mX0OcfQdA8Xw+gmlvCmNeW+LLCM=", 1737 | "dev": true, 1738 | "dependencies": { 1739 | "lasso-caching-fs": "^1.0.0" 1740 | } 1741 | }, 1742 | "node_modules/listener-tracker": { 1743 | "version": "2.0.0", 1744 | "resolved": "https://registry.npmjs.org/listener-tracker/-/listener-tracker-2.0.0.tgz", 1745 | "integrity": "sha1-OWCLQ1wJAfpVECF8FFJyjWvBm18=", 1746 | "dev": true 1747 | }, 1748 | "node_modules/magic-string": { 1749 | "version": "0.25.9", 1750 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", 1751 | "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", 1752 | "dev": true, 1753 | "dependencies": { 1754 | "sourcemap-codec": "^1.4.8" 1755 | } 1756 | }, 1757 | "node_modules/marko": { 1758 | "version": "5.20.3", 1759 | "resolved": "https://registry.npmjs.org/marko/-/marko-5.20.3.tgz", 1760 | "integrity": "sha512-LwZWotyHbV/wi7wnPDJzg1/prh3CLMCdzsA9etEQnQHbMK3wz1UsH+zsggJBcIzrMmIEVtlo4ZiSkvPQ0h6/kw==", 1761 | "dev": true, 1762 | "dependencies": { 1763 | "@marko/compiler": "^5.20.3", 1764 | "@marko/translator-default": "^5.20.3", 1765 | "app-module-path": "^2.2.0", 1766 | "argly": "^1.2.0", 1767 | "browser-refresh-client": "1.1.4", 1768 | "complain": "^1.6.0", 1769 | "events-light": "^1.0.5", 1770 | "listener-tracker": "^2.0.0", 1771 | "minimatch": "^3.0.4", 1772 | "raptor-util": "^3.2.0", 1773 | "resolve-from": "^5.0.0", 1774 | "self-closing-tags": "^1.0.1", 1775 | "warp10": "^2.0.1" 1776 | }, 1777 | "bin": { 1778 | "markoc": "bin/markoc" 1779 | } 1780 | }, 1781 | "node_modules/mime": { 1782 | "version": "3.0.0", 1783 | "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", 1784 | "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", 1785 | "dev": true, 1786 | "bin": { 1787 | "mime": "cli.js" 1788 | }, 1789 | "engines": { 1790 | "node": ">=10.0.0" 1791 | } 1792 | }, 1793 | "node_modules/minimatch": { 1794 | "version": "3.1.2", 1795 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 1796 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1797 | "dev": true, 1798 | "dependencies": { 1799 | "brace-expansion": "^1.1.7" 1800 | }, 1801 | "engines": { 1802 | "node": "*" 1803 | } 1804 | }, 1805 | "node_modules/ms": { 1806 | "version": "2.1.2", 1807 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1808 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 1809 | "dev": true 1810 | }, 1811 | "node_modules/nanoid": { 1812 | "version": "3.3.2", 1813 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.2.tgz", 1814 | "integrity": "sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==", 1815 | "dev": true, 1816 | "bin": { 1817 | "nanoid": "bin/nanoid.cjs" 1818 | }, 1819 | "engines": { 1820 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 1821 | } 1822 | }, 1823 | "node_modules/node-releases": { 1824 | "version": "2.0.2", 1825 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", 1826 | "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", 1827 | "dev": true 1828 | }, 1829 | "node_modules/normalize-path": { 1830 | "version": "3.0.0", 1831 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 1832 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 1833 | "dev": true, 1834 | "engines": { 1835 | "node": ">=0.10.0" 1836 | } 1837 | }, 1838 | "node_modules/normalize-range": { 1839 | "version": "0.1.2", 1840 | "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", 1841 | "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", 1842 | "dev": true, 1843 | "engines": { 1844 | "node": ">=0.10.0" 1845 | } 1846 | }, 1847 | "node_modules/object-keys": { 1848 | "version": "1.1.1", 1849 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 1850 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 1851 | "dev": true, 1852 | "engines": { 1853 | "node": ">= 0.4" 1854 | } 1855 | }, 1856 | "node_modules/object.assign": { 1857 | "version": "4.1.2", 1858 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", 1859 | "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", 1860 | "dev": true, 1861 | "dependencies": { 1862 | "call-bind": "^1.0.0", 1863 | "define-properties": "^1.1.3", 1864 | "has-symbols": "^1.0.1", 1865 | "object-keys": "^1.1.1" 1866 | }, 1867 | "engines": { 1868 | "node": ">= 0.4" 1869 | }, 1870 | "funding": { 1871 | "url": "https://github.com/sponsors/ljharb" 1872 | } 1873 | }, 1874 | "node_modules/once": { 1875 | "version": "1.4.0", 1876 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1877 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1878 | "dev": true, 1879 | "dependencies": { 1880 | "wrappy": "1" 1881 | } 1882 | }, 1883 | "node_modules/path-is-absolute": { 1884 | "version": "1.0.1", 1885 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1886 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1887 | "dev": true, 1888 | "engines": { 1889 | "node": ">=0.10.0" 1890 | } 1891 | }, 1892 | "node_modules/path-key": { 1893 | "version": "3.1.1", 1894 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 1895 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 1896 | "dev": true, 1897 | "engines": { 1898 | "node": ">=8" 1899 | } 1900 | }, 1901 | "node_modules/path-parse": { 1902 | "version": "1.0.7", 1903 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 1904 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 1905 | "dev": true 1906 | }, 1907 | "node_modules/picocolors": { 1908 | "version": "1.0.0", 1909 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 1910 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 1911 | "dev": true 1912 | }, 1913 | "node_modules/picomatch": { 1914 | "version": "2.3.1", 1915 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 1916 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 1917 | "dev": true, 1918 | "engines": { 1919 | "node": ">=8.6" 1920 | }, 1921 | "funding": { 1922 | "url": "https://github.com/sponsors/jonschlinkert" 1923 | } 1924 | }, 1925 | "node_modules/postcss": { 1926 | "version": "8.4.12", 1927 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", 1928 | "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", 1929 | "dev": true, 1930 | "funding": [ 1931 | { 1932 | "type": "opencollective", 1933 | "url": "https://opencollective.com/postcss/" 1934 | }, 1935 | { 1936 | "type": "tidelift", 1937 | "url": "https://tidelift.com/funding/github/npm/postcss" 1938 | } 1939 | ], 1940 | "dependencies": { 1941 | "nanoid": "^3.3.1", 1942 | "picocolors": "^1.0.0", 1943 | "source-map-js": "^1.0.2" 1944 | }, 1945 | "engines": { 1946 | "node": "^10 || ^12 || >=14" 1947 | } 1948 | }, 1949 | "node_modules/postcss-attribute-case-insensitive": { 1950 | "version": "5.0.0", 1951 | "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz", 1952 | "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==", 1953 | "dev": true, 1954 | "dependencies": { 1955 | "postcss-selector-parser": "^6.0.2" 1956 | }, 1957 | "peerDependencies": { 1958 | "postcss": "^8.0.2" 1959 | } 1960 | }, 1961 | "node_modules/postcss-clamp": { 1962 | "version": "4.1.0", 1963 | "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", 1964 | "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", 1965 | "dev": true, 1966 | "dependencies": { 1967 | "postcss-value-parser": "^4.2.0" 1968 | }, 1969 | "engines": { 1970 | "node": ">=7.6.0" 1971 | }, 1972 | "peerDependencies": { 1973 | "postcss": "^8.4.6" 1974 | } 1975 | }, 1976 | "node_modules/postcss-color-functional-notation": { 1977 | "version": "4.2.2", 1978 | "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.2.tgz", 1979 | "integrity": "sha512-DXVtwUhIk4f49KK5EGuEdgx4Gnyj6+t2jBSEmxvpIK9QI40tWrpS2Pua8Q7iIZWBrki2QOaeUdEaLPPa91K0RQ==", 1980 | "dev": true, 1981 | "dependencies": { 1982 | "postcss-value-parser": "^4.2.0" 1983 | }, 1984 | "engines": { 1985 | "node": "^12 || ^14 || >=16" 1986 | }, 1987 | "peerDependencies": { 1988 | "postcss": "^8.4" 1989 | } 1990 | }, 1991 | "node_modules/postcss-color-hex-alpha": { 1992 | "version": "8.0.3", 1993 | "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz", 1994 | "integrity": "sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==", 1995 | "dev": true, 1996 | "dependencies": { 1997 | "postcss-value-parser": "^4.2.0" 1998 | }, 1999 | "engines": { 2000 | "node": "^12 || ^14 || >=16" 2001 | }, 2002 | "peerDependencies": { 2003 | "postcss": "^8.4" 2004 | } 2005 | }, 2006 | "node_modules/postcss-color-rebeccapurple": { 2007 | "version": "7.0.2", 2008 | "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz", 2009 | "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==", 2010 | "dev": true, 2011 | "dependencies": { 2012 | "postcss-value-parser": "^4.2.0" 2013 | }, 2014 | "engines": { 2015 | "node": "^12 || ^14 || >=16" 2016 | }, 2017 | "peerDependencies": { 2018 | "postcss": "^8.3" 2019 | } 2020 | }, 2021 | "node_modules/postcss-custom-media": { 2022 | "version": "8.0.0", 2023 | "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", 2024 | "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", 2025 | "dev": true, 2026 | "engines": { 2027 | "node": ">=10.0.0" 2028 | }, 2029 | "peerDependencies": { 2030 | "postcss": "^8.1.0" 2031 | } 2032 | }, 2033 | "node_modules/postcss-custom-properties": { 2034 | "version": "12.1.7", 2035 | "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.7.tgz", 2036 | "integrity": "sha512-N/hYP5gSoFhaqxi2DPCmvto/ZcRDVjE3T1LiAMzc/bg53hvhcHOLpXOHb526LzBBp5ZlAUhkuot/bfpmpgStJg==", 2037 | "dev": true, 2038 | "dependencies": { 2039 | "postcss-value-parser": "^4.2.0" 2040 | }, 2041 | "engines": { 2042 | "node": "^12 || ^14 || >=16" 2043 | }, 2044 | "funding": { 2045 | "type": "opencollective", 2046 | "url": "https://opencollective.com/csstools" 2047 | }, 2048 | "peerDependencies": { 2049 | "postcss": "^8.4" 2050 | } 2051 | }, 2052 | "node_modules/postcss-custom-selectors": { 2053 | "version": "6.0.0", 2054 | "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz", 2055 | "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==", 2056 | "dev": true, 2057 | "dependencies": { 2058 | "postcss-selector-parser": "^6.0.4" 2059 | }, 2060 | "engines": { 2061 | "node": ">=10.0.0" 2062 | }, 2063 | "peerDependencies": { 2064 | "postcss": "^8.1.2" 2065 | } 2066 | }, 2067 | "node_modules/postcss-dir-pseudo-class": { 2068 | "version": "6.0.4", 2069 | "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.4.tgz", 2070 | "integrity": "sha512-I8epwGy5ftdzNWEYok9VjW9whC4xnelAtbajGv4adql4FIF09rnrxnA9Y8xSHN47y7gqFIv10C5+ImsLeJpKBw==", 2071 | "dev": true, 2072 | "dependencies": { 2073 | "postcss-selector-parser": "^6.0.9" 2074 | }, 2075 | "engines": { 2076 | "node": "^12 || ^14 || >=16" 2077 | }, 2078 | "peerDependencies": { 2079 | "postcss": "^8.4" 2080 | } 2081 | }, 2082 | "node_modules/postcss-double-position-gradients": { 2083 | "version": "3.1.1", 2084 | "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.1.tgz", 2085 | "integrity": "sha512-jM+CGkTs4FcG53sMPjrrGE0rIvLDdCrqMzgDC5fLI7JHDO7o6QG8C5TQBtExb13hdBdoH9C2QVbG4jo2y9lErQ==", 2086 | "dev": true, 2087 | "dependencies": { 2088 | "@csstools/postcss-progressive-custom-properties": "^1.1.0", 2089 | "postcss-value-parser": "^4.2.0" 2090 | }, 2091 | "engines": { 2092 | "node": "^12 || ^14 || >=16" 2093 | }, 2094 | "peerDependencies": { 2095 | "postcss": "^8.4" 2096 | } 2097 | }, 2098 | "node_modules/postcss-env-function": { 2099 | "version": "4.0.6", 2100 | "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", 2101 | "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", 2102 | "dev": true, 2103 | "dependencies": { 2104 | "postcss-value-parser": "^4.2.0" 2105 | }, 2106 | "engines": { 2107 | "node": "^12 || ^14 || >=16" 2108 | }, 2109 | "peerDependencies": { 2110 | "postcss": "^8.4" 2111 | } 2112 | }, 2113 | "node_modules/postcss-focus-visible": { 2114 | "version": "6.0.4", 2115 | "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", 2116 | "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", 2117 | "dev": true, 2118 | "dependencies": { 2119 | "postcss-selector-parser": "^6.0.9" 2120 | }, 2121 | "engines": { 2122 | "node": "^12 || ^14 || >=16" 2123 | }, 2124 | "peerDependencies": { 2125 | "postcss": "^8.4" 2126 | } 2127 | }, 2128 | "node_modules/postcss-focus-within": { 2129 | "version": "5.0.4", 2130 | "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", 2131 | "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", 2132 | "dev": true, 2133 | "dependencies": { 2134 | "postcss-selector-parser": "^6.0.9" 2135 | }, 2136 | "engines": { 2137 | "node": "^12 || ^14 || >=16" 2138 | }, 2139 | "peerDependencies": { 2140 | "postcss": "^8.4" 2141 | } 2142 | }, 2143 | "node_modules/postcss-font-variant": { 2144 | "version": "5.0.0", 2145 | "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", 2146 | "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", 2147 | "dev": true, 2148 | "peerDependencies": { 2149 | "postcss": "^8.1.0" 2150 | } 2151 | }, 2152 | "node_modules/postcss-gap-properties": { 2153 | "version": "3.0.3", 2154 | "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", 2155 | "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", 2156 | "dev": true, 2157 | "engines": { 2158 | "node": "^12 || ^14 || >=16" 2159 | }, 2160 | "peerDependencies": { 2161 | "postcss": "^8.4" 2162 | } 2163 | }, 2164 | "node_modules/postcss-image-set-function": { 2165 | "version": "4.0.6", 2166 | "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.6.tgz", 2167 | "integrity": "sha512-KfdC6vg53GC+vPd2+HYzsZ6obmPqOk6HY09kttU19+Gj1nC3S3XBVEXDHxkhxTohgZqzbUb94bKXvKDnYWBm/A==", 2168 | "dev": true, 2169 | "dependencies": { 2170 | "postcss-value-parser": "^4.2.0" 2171 | }, 2172 | "engines": { 2173 | "node": "^12 || ^14 || >=16" 2174 | }, 2175 | "peerDependencies": { 2176 | "postcss": "^8.4" 2177 | } 2178 | }, 2179 | "node_modules/postcss-initial": { 2180 | "version": "4.0.1", 2181 | "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", 2182 | "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", 2183 | "dev": true, 2184 | "peerDependencies": { 2185 | "postcss": "^8.0.0" 2186 | } 2187 | }, 2188 | "node_modules/postcss-lab-function": { 2189 | "version": "4.2.0", 2190 | "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.0.tgz", 2191 | "integrity": "sha512-Zb1EO9DGYfa3CP8LhINHCcTTCTLI+R3t7AX2mKsDzdgVQ/GkCpHOTgOr6HBHslP7XDdVbqgHW5vvRPMdVANQ8w==", 2192 | "dev": true, 2193 | "dependencies": { 2194 | "@csstools/postcss-progressive-custom-properties": "^1.1.0", 2195 | "postcss-value-parser": "^4.2.0" 2196 | }, 2197 | "engines": { 2198 | "node": "^12 || ^14 || >=16" 2199 | }, 2200 | "funding": { 2201 | "type": "opencollective", 2202 | "url": "https://opencollective.com/csstools" 2203 | }, 2204 | "peerDependencies": { 2205 | "postcss": "^8.4" 2206 | } 2207 | }, 2208 | "node_modules/postcss-logical": { 2209 | "version": "5.0.4", 2210 | "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", 2211 | "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", 2212 | "dev": true, 2213 | "engines": { 2214 | "node": "^12 || ^14 || >=16" 2215 | }, 2216 | "peerDependencies": { 2217 | "postcss": "^8.4" 2218 | } 2219 | }, 2220 | "node_modules/postcss-media-minmax": { 2221 | "version": "5.0.0", 2222 | "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", 2223 | "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", 2224 | "dev": true, 2225 | "engines": { 2226 | "node": ">=10.0.0" 2227 | }, 2228 | "peerDependencies": { 2229 | "postcss": "^8.1.0" 2230 | } 2231 | }, 2232 | "node_modules/postcss-nesting": { 2233 | "version": "10.1.4", 2234 | "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.4.tgz", 2235 | "integrity": "sha512-2ixdQ59ik/Gt1+oPHiI1kHdwEI8lLKEmui9B1nl6163ANLC+GewQn7fXMxJF2JSb4i2MKL96GU8fIiQztK4TTA==", 2236 | "dev": true, 2237 | "dependencies": { 2238 | "postcss-selector-parser": "^6.0.10" 2239 | }, 2240 | "engines": { 2241 | "node": "^12 || ^14 || >=16" 2242 | }, 2243 | "funding": { 2244 | "type": "opencollective", 2245 | "url": "https://opencollective.com/csstools" 2246 | }, 2247 | "peerDependencies": { 2248 | "postcss": "^8.4" 2249 | } 2250 | }, 2251 | "node_modules/postcss-opacity-percentage": { 2252 | "version": "1.1.2", 2253 | "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz", 2254 | "integrity": "sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==", 2255 | "dev": true, 2256 | "funding": [ 2257 | { 2258 | "type": "kofi", 2259 | "url": "https://ko-fi.com/mrcgrtz" 2260 | }, 2261 | { 2262 | "type": "liberapay", 2263 | "url": "https://liberapay.com/mrcgrtz" 2264 | } 2265 | ], 2266 | "engines": { 2267 | "node": "^12 || ^14 || >=16" 2268 | } 2269 | }, 2270 | "node_modules/postcss-overflow-shorthand": { 2271 | "version": "3.0.3", 2272 | "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", 2273 | "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", 2274 | "dev": true, 2275 | "engines": { 2276 | "node": "^12 || ^14 || >=16" 2277 | }, 2278 | "peerDependencies": { 2279 | "postcss": "^8.4" 2280 | } 2281 | }, 2282 | "node_modules/postcss-page-break": { 2283 | "version": "3.0.4", 2284 | "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", 2285 | "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", 2286 | "dev": true, 2287 | "peerDependencies": { 2288 | "postcss": "^8" 2289 | } 2290 | }, 2291 | "node_modules/postcss-place": { 2292 | "version": "7.0.4", 2293 | "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.4.tgz", 2294 | "integrity": "sha512-MrgKeiiu5OC/TETQO45kV3npRjOFxEHthsqGtkh3I1rPbZSbXGD/lZVi9j13cYh+NA8PIAPyk6sGjT9QbRyvSg==", 2295 | "dev": true, 2296 | "dependencies": { 2297 | "postcss-value-parser": "^4.2.0" 2298 | }, 2299 | "engines": { 2300 | "node": "^12 || ^14 || >=16" 2301 | }, 2302 | "peerDependencies": { 2303 | "postcss": "^8.4" 2304 | } 2305 | }, 2306 | "node_modules/postcss-preset-env": { 2307 | "version": "7.4.3", 2308 | "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.4.3.tgz", 2309 | "integrity": "sha512-dlPA65g9KuGv7YsmGyCKtFkZKCPLkoVMUE3omOl6yM+qrynVHxFvf0tMuippIrXB/sB/MyhL1FgTIbrO+qMERg==", 2310 | "dev": true, 2311 | "dependencies": { 2312 | "@csstools/postcss-color-function": "^1.0.3", 2313 | "@csstools/postcss-font-format-keywords": "^1.0.0", 2314 | "@csstools/postcss-hwb-function": "^1.0.0", 2315 | "@csstools/postcss-ic-unit": "^1.0.0", 2316 | "@csstools/postcss-is-pseudo-class": "^2.0.1", 2317 | "@csstools/postcss-normalize-display-values": "^1.0.0", 2318 | "@csstools/postcss-oklab-function": "^1.0.2", 2319 | "@csstools/postcss-progressive-custom-properties": "^1.3.0", 2320 | "autoprefixer": "^10.4.4", 2321 | "browserslist": "^4.20.2", 2322 | "css-blank-pseudo": "^3.0.3", 2323 | "css-has-pseudo": "^3.0.4", 2324 | "css-prefers-color-scheme": "^6.0.3", 2325 | "cssdb": "^6.5.0", 2326 | "postcss-attribute-case-insensitive": "^5.0.0", 2327 | "postcss-clamp": "^4.1.0", 2328 | "postcss-color-functional-notation": "^4.2.2", 2329 | "postcss-color-hex-alpha": "^8.0.3", 2330 | "postcss-color-rebeccapurple": "^7.0.2", 2331 | "postcss-custom-media": "^8.0.0", 2332 | "postcss-custom-properties": "^12.1.5", 2333 | "postcss-custom-selectors": "^6.0.0", 2334 | "postcss-dir-pseudo-class": "^6.0.4", 2335 | "postcss-double-position-gradients": "^3.1.1", 2336 | "postcss-env-function": "^4.0.6", 2337 | "postcss-focus-visible": "^6.0.4", 2338 | "postcss-focus-within": "^5.0.4", 2339 | "postcss-font-variant": "^5.0.0", 2340 | "postcss-gap-properties": "^3.0.3", 2341 | "postcss-image-set-function": "^4.0.6", 2342 | "postcss-initial": "^4.0.1", 2343 | "postcss-lab-function": "^4.1.2", 2344 | "postcss-logical": "^5.0.4", 2345 | "postcss-media-minmax": "^5.0.0", 2346 | "postcss-nesting": "^10.1.3", 2347 | "postcss-opacity-percentage": "^1.1.2", 2348 | "postcss-overflow-shorthand": "^3.0.3", 2349 | "postcss-page-break": "^3.0.4", 2350 | "postcss-place": "^7.0.4", 2351 | "postcss-pseudo-class-any-link": "^7.1.1", 2352 | "postcss-replace-overflow-wrap": "^4.0.0", 2353 | "postcss-selector-not": "^5.0.0", 2354 | "postcss-value-parser": "^4.2.0" 2355 | }, 2356 | "engines": { 2357 | "node": "^12 || ^14 || >=16" 2358 | }, 2359 | "peerDependencies": { 2360 | "postcss": "^8.4" 2361 | } 2362 | }, 2363 | "node_modules/postcss-pseudo-class-any-link": { 2364 | "version": "7.1.2", 2365 | "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.2.tgz", 2366 | "integrity": "sha512-76XzEQv3g+Vgnz3tmqh3pqQyRojkcJ+pjaePsyhcyf164p9aZsu3t+NWxkZYbcHLK1ju5Qmalti2jPI5IWCe5w==", 2367 | "dev": true, 2368 | "dependencies": { 2369 | "postcss-selector-parser": "^6.0.10" 2370 | }, 2371 | "engines": { 2372 | "node": "^12 || ^14 || >=16" 2373 | }, 2374 | "funding": { 2375 | "type": "opencollective", 2376 | "url": "https://opencollective.com/csstools" 2377 | }, 2378 | "peerDependencies": { 2379 | "postcss": "^8.4" 2380 | } 2381 | }, 2382 | "node_modules/postcss-replace-overflow-wrap": { 2383 | "version": "4.0.0", 2384 | "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", 2385 | "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", 2386 | "dev": true, 2387 | "peerDependencies": { 2388 | "postcss": "^8.0.3" 2389 | } 2390 | }, 2391 | "node_modules/postcss-selector-not": { 2392 | "version": "5.0.0", 2393 | "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", 2394 | "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", 2395 | "dev": true, 2396 | "dependencies": { 2397 | "balanced-match": "^1.0.0" 2398 | }, 2399 | "peerDependencies": { 2400 | "postcss": "^8.1.0" 2401 | } 2402 | }, 2403 | "node_modules/postcss-selector-parser": { 2404 | "version": "6.0.10", 2405 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", 2406 | "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", 2407 | "dev": true, 2408 | "dependencies": { 2409 | "cssesc": "^3.0.0", 2410 | "util-deprecate": "^1.0.2" 2411 | }, 2412 | "engines": { 2413 | "node": ">=4" 2414 | } 2415 | }, 2416 | "node_modules/postcss-value-parser": { 2417 | "version": "4.2.0", 2418 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", 2419 | "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", 2420 | "dev": true 2421 | }, 2422 | "node_modules/property-handlers": { 2423 | "version": "1.1.1", 2424 | "resolved": "https://registry.npmjs.org/property-handlers/-/property-handlers-1.1.1.tgz", 2425 | "integrity": "sha1-yyDTIqq32U//rCj0bJGGvVlHtLQ=", 2426 | "dev": true 2427 | }, 2428 | "node_modules/raptor-async": { 2429 | "version": "1.1.3", 2430 | "resolved": "https://registry.npmjs.org/raptor-async/-/raptor-async-1.1.3.tgz", 2431 | "integrity": "sha1-uDw8m2A9yYXCw6n3jStAc+b2Akw=", 2432 | "dev": true 2433 | }, 2434 | "node_modules/raptor-regexp": { 2435 | "version": "1.0.1", 2436 | "resolved": "https://registry.npmjs.org/raptor-regexp/-/raptor-regexp-1.0.1.tgz", 2437 | "integrity": "sha1-7PD2bGZxwM2fXkjDcFAmxVCZlcA=", 2438 | "dev": true 2439 | }, 2440 | "node_modules/raptor-util": { 2441 | "version": "3.2.0", 2442 | "resolved": "https://registry.npmjs.org/raptor-util/-/raptor-util-3.2.0.tgz", 2443 | "integrity": "sha1-I7DIA8jxrIocrmfZpjiLSRYcl1g=", 2444 | "dev": true 2445 | }, 2446 | "node_modules/regenerator-runtime": { 2447 | "version": "0.13.9", 2448 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", 2449 | "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", 2450 | "dev": true 2451 | }, 2452 | "node_modules/relative-import-path": { 2453 | "version": "1.0.0", 2454 | "resolved": "https://registry.npmjs.org/relative-import-path/-/relative-import-path-1.0.0.tgz", 2455 | "integrity": "sha512-ZvbtoduKQmD4PZeJPfH6Ql21qUWhaMxiHkIsH+FUnZqKDwNIXBtGg5zRZyHWomiGYk8n5+KMBPK7Mi4D0XWfNg==", 2456 | "dev": true 2457 | }, 2458 | "node_modules/resolve": { 2459 | "version": "1.22.0", 2460 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", 2461 | "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", 2462 | "dev": true, 2463 | "dependencies": { 2464 | "is-core-module": "^2.8.1", 2465 | "path-parse": "^1.0.7", 2466 | "supports-preserve-symlinks-flag": "^1.0.0" 2467 | }, 2468 | "bin": { 2469 | "resolve": "bin/resolve" 2470 | }, 2471 | "funding": { 2472 | "url": "https://github.com/sponsors/ljharb" 2473 | } 2474 | }, 2475 | "node_modules/resolve-from": { 2476 | "version": "5.0.0", 2477 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", 2478 | "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", 2479 | "dev": true, 2480 | "engines": { 2481 | "node": ">=8" 2482 | } 2483 | }, 2484 | "node_modules/rimraf": { 2485 | "version": "3.0.2", 2486 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 2487 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 2488 | "dev": true, 2489 | "dependencies": { 2490 | "glob": "^7.1.3" 2491 | }, 2492 | "bin": { 2493 | "rimraf": "bin.js" 2494 | }, 2495 | "funding": { 2496 | "url": "https://github.com/sponsors/isaacs" 2497 | } 2498 | }, 2499 | "node_modules/rollup": { 2500 | "version": "2.70.1", 2501 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", 2502 | "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", 2503 | "dev": true, 2504 | "bin": { 2505 | "rollup": "dist/bin/rollup" 2506 | }, 2507 | "engines": { 2508 | "node": ">=10.0.0" 2509 | }, 2510 | "optionalDependencies": { 2511 | "fsevents": "~2.3.2" 2512 | } 2513 | }, 2514 | "node_modules/safe-buffer": { 2515 | "version": "5.1.2", 2516 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 2517 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 2518 | "dev": true 2519 | }, 2520 | "node_modules/self-closing-tags": { 2521 | "version": "1.0.1", 2522 | "resolved": "https://registry.npmjs.org/self-closing-tags/-/self-closing-tags-1.0.1.tgz", 2523 | "integrity": "sha512-7t6hNbYMxM+VHXTgJmxwgZgLGktuXtVVD5AivWzNTdJBM4DBjnDKDzkf2SrNjihaArpeJYNjxkELBu1evI4lQA==", 2524 | "dev": true, 2525 | "engines": { 2526 | "node": ">=0.12.0" 2527 | } 2528 | }, 2529 | "node_modules/semver": { 2530 | "version": "6.3.0", 2531 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 2532 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 2533 | "dev": true, 2534 | "bin": { 2535 | "semver": "bin/semver.js" 2536 | } 2537 | }, 2538 | "node_modules/shebang-command": { 2539 | "version": "2.0.0", 2540 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 2541 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 2542 | "dev": true, 2543 | "dependencies": { 2544 | "shebang-regex": "^3.0.0" 2545 | }, 2546 | "engines": { 2547 | "node": ">=8" 2548 | } 2549 | }, 2550 | "node_modules/shebang-regex": { 2551 | "version": "3.0.0", 2552 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 2553 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 2554 | "dev": true, 2555 | "engines": { 2556 | "node": ">=8" 2557 | } 2558 | }, 2559 | "node_modules/source-map": { 2560 | "version": "0.5.7", 2561 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 2562 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 2563 | "dev": true, 2564 | "engines": { 2565 | "node": ">=0.10.0" 2566 | } 2567 | }, 2568 | "node_modules/source-map-js": { 2569 | "version": "1.0.2", 2570 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 2571 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 2572 | "dev": true, 2573 | "engines": { 2574 | "node": ">=0.10.0" 2575 | } 2576 | }, 2577 | "node_modules/sourcemap-codec": { 2578 | "version": "1.4.8", 2579 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 2580 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", 2581 | "dev": true 2582 | }, 2583 | "node_modules/stackframe": { 2584 | "version": "1.2.1", 2585 | "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz", 2586 | "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==", 2587 | "dev": true 2588 | }, 2589 | "node_modules/strip-ansi": { 2590 | "version": "6.0.1", 2591 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 2592 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 2593 | "dev": true, 2594 | "dependencies": { 2595 | "ansi-regex": "^5.0.1" 2596 | }, 2597 | "engines": { 2598 | "node": ">=8" 2599 | } 2600 | }, 2601 | "node_modules/strip-json-comments": { 2602 | "version": "3.1.1", 2603 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 2604 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 2605 | "dev": true, 2606 | "engines": { 2607 | "node": ">=8" 2608 | }, 2609 | "funding": { 2610 | "url": "https://github.com/sponsors/sindresorhus" 2611 | } 2612 | }, 2613 | "node_modules/supports-color": { 2614 | "version": "5.5.0", 2615 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 2616 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 2617 | "dev": true, 2618 | "dependencies": { 2619 | "has-flag": "^3.0.0" 2620 | }, 2621 | "engines": { 2622 | "node": ">=4" 2623 | } 2624 | }, 2625 | "node_modules/supports-preserve-symlinks-flag": { 2626 | "version": "1.0.0", 2627 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 2628 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 2629 | "dev": true, 2630 | "engines": { 2631 | "node": ">= 0.4" 2632 | }, 2633 | "funding": { 2634 | "url": "https://github.com/sponsors/ljharb" 2635 | } 2636 | }, 2637 | "node_modules/to-fast-properties": { 2638 | "version": "2.0.0", 2639 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", 2640 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", 2641 | "dev": true, 2642 | "engines": { 2643 | "node": ">=4" 2644 | } 2645 | }, 2646 | "node_modules/type-detect": { 2647 | "version": "1.0.0", 2648 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", 2649 | "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=", 2650 | "dev": true, 2651 | "engines": { 2652 | "node": "*" 2653 | } 2654 | }, 2655 | "node_modules/undici": { 2656 | "version": "4.16.0", 2657 | "resolved": "https://registry.npmjs.org/undici/-/undici-4.16.0.tgz", 2658 | "integrity": "sha512-tkZSECUYi+/T1i4u+4+lwZmQgLXd4BLGlrc7KZPcLIW7Jpq99+Xpc30ONv7nS6F5UNOxp/HBZSSL9MafUrvJbw==", 2659 | "dev": true, 2660 | "engines": { 2661 | "node": ">=12.18" 2662 | } 2663 | }, 2664 | "node_modules/url-router": { 2665 | "version": "13.0.0", 2666 | "resolved": "https://registry.npmjs.org/url-router/-/url-router-13.0.0.tgz", 2667 | "integrity": "sha512-ePA6wkquLJfX+mjEcFvFzdLx/PuthtUN0u6eqK/EIux8iQY7Ky03UTCyerDqlvA5lgyImtwNbtTIjp1a1/VtKQ==", 2668 | "dev": true 2669 | }, 2670 | "node_modules/util-deprecate": { 2671 | "version": "1.0.2", 2672 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2673 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 2674 | "dev": true 2675 | }, 2676 | "node_modules/vite": { 2677 | "version": "2.9.1", 2678 | "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.1.tgz", 2679 | "integrity": "sha512-vSlsSdOYGcYEJfkQ/NeLXgnRv5zZfpAsdztkIrs7AZHV8RCMZQkwjo4DS5BnrYTqoWqLoUe1Cah4aVO4oNNqCQ==", 2680 | "dev": true, 2681 | "dependencies": { 2682 | "esbuild": "^0.14.27", 2683 | "postcss": "^8.4.12", 2684 | "resolve": "^1.22.0", 2685 | "rollup": "^2.59.0" 2686 | }, 2687 | "bin": { 2688 | "vite": "bin/vite.js" 2689 | }, 2690 | "engines": { 2691 | "node": ">=12.2.0" 2692 | }, 2693 | "optionalDependencies": { 2694 | "fsevents": "~2.3.2" 2695 | }, 2696 | "peerDependencies": { 2697 | "less": "*", 2698 | "sass": "*", 2699 | "stylus": "*" 2700 | }, 2701 | "peerDependenciesMeta": { 2702 | "less": { 2703 | "optional": true 2704 | }, 2705 | "sass": { 2706 | "optional": true 2707 | }, 2708 | "stylus": { 2709 | "optional": true 2710 | } 2711 | } 2712 | }, 2713 | "node_modules/warp10": { 2714 | "version": "2.0.2", 2715 | "resolved": "https://registry.npmjs.org/warp10/-/warp10-2.0.2.tgz", 2716 | "integrity": "sha512-CC8MD3mBxPvKgBz58QJo8G+jPGo/oaBL2vcT6EWVpWsgzvDNwhiBBLGUDmRqaaVXv1INh8bpJPpVMUP5q1myBw==", 2717 | "dev": true 2718 | }, 2719 | "node_modules/which": { 2720 | "version": "2.0.2", 2721 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 2722 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 2723 | "dev": true, 2724 | "dependencies": { 2725 | "isexe": "^2.0.0" 2726 | }, 2727 | "bin": { 2728 | "node-which": "bin/node-which" 2729 | }, 2730 | "engines": { 2731 | "node": ">= 8" 2732 | } 2733 | }, 2734 | "node_modules/wrappy": { 2735 | "version": "1.0.2", 2736 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2737 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 2738 | "dev": true 2739 | } 2740 | }, 2741 | "dependencies": { 2742 | "@ampproject/remapping": { 2743 | "version": "2.1.2", 2744 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", 2745 | "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", 2746 | "dev": true, 2747 | "requires": { 2748 | "@jridgewell/trace-mapping": "^0.3.0" 2749 | } 2750 | }, 2751 | "@babel/code-frame": { 2752 | "version": "7.16.7", 2753 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", 2754 | "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", 2755 | "dev": true, 2756 | "requires": { 2757 | "@babel/highlight": "^7.16.7" 2758 | } 2759 | }, 2760 | "@babel/compat-data": { 2761 | "version": "7.17.7", 2762 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", 2763 | "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", 2764 | "dev": true 2765 | }, 2766 | "@babel/core": { 2767 | "version": "7.17.9", 2768 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz", 2769 | "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", 2770 | "dev": true, 2771 | "requires": { 2772 | "@ampproject/remapping": "^2.1.0", 2773 | "@babel/code-frame": "^7.16.7", 2774 | "@babel/generator": "^7.17.9", 2775 | "@babel/helper-compilation-targets": "^7.17.7", 2776 | "@babel/helper-module-transforms": "^7.17.7", 2777 | "@babel/helpers": "^7.17.9", 2778 | "@babel/parser": "^7.17.9", 2779 | "@babel/template": "^7.16.7", 2780 | "@babel/traverse": "^7.17.9", 2781 | "@babel/types": "^7.17.0", 2782 | "convert-source-map": "^1.7.0", 2783 | "debug": "^4.1.0", 2784 | "gensync": "^1.0.0-beta.2", 2785 | "json5": "^2.2.1", 2786 | "semver": "^6.3.0" 2787 | } 2788 | }, 2789 | "@babel/generator": { 2790 | "version": "7.17.9", 2791 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", 2792 | "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", 2793 | "dev": true, 2794 | "requires": { 2795 | "@babel/types": "^7.17.0", 2796 | "jsesc": "^2.5.1", 2797 | "source-map": "^0.5.0" 2798 | }, 2799 | "dependencies": { 2800 | "jsesc": { 2801 | "version": "2.5.2", 2802 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", 2803 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", 2804 | "dev": true 2805 | } 2806 | } 2807 | }, 2808 | "@babel/helper-compilation-targets": { 2809 | "version": "7.17.7", 2810 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", 2811 | "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", 2812 | "dev": true, 2813 | "requires": { 2814 | "@babel/compat-data": "^7.17.7", 2815 | "@babel/helper-validator-option": "^7.16.7", 2816 | "browserslist": "^4.17.5", 2817 | "semver": "^6.3.0" 2818 | } 2819 | }, 2820 | "@babel/helper-environment-visitor": { 2821 | "version": "7.16.7", 2822 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", 2823 | "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", 2824 | "dev": true, 2825 | "requires": { 2826 | "@babel/types": "^7.16.7" 2827 | } 2828 | }, 2829 | "@babel/helper-function-name": { 2830 | "version": "7.17.9", 2831 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", 2832 | "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", 2833 | "dev": true, 2834 | "requires": { 2835 | "@babel/template": "^7.16.7", 2836 | "@babel/types": "^7.17.0" 2837 | } 2838 | }, 2839 | "@babel/helper-hoist-variables": { 2840 | "version": "7.16.7", 2841 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", 2842 | "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", 2843 | "dev": true, 2844 | "requires": { 2845 | "@babel/types": "^7.16.7" 2846 | } 2847 | }, 2848 | "@babel/helper-module-imports": { 2849 | "version": "7.16.7", 2850 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", 2851 | "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", 2852 | "dev": true, 2853 | "requires": { 2854 | "@babel/types": "^7.16.7" 2855 | } 2856 | }, 2857 | "@babel/helper-module-transforms": { 2858 | "version": "7.17.7", 2859 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", 2860 | "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", 2861 | "dev": true, 2862 | "requires": { 2863 | "@babel/helper-environment-visitor": "^7.16.7", 2864 | "@babel/helper-module-imports": "^7.16.7", 2865 | "@babel/helper-simple-access": "^7.17.7", 2866 | "@babel/helper-split-export-declaration": "^7.16.7", 2867 | "@babel/helper-validator-identifier": "^7.16.7", 2868 | "@babel/template": "^7.16.7", 2869 | "@babel/traverse": "^7.17.3", 2870 | "@babel/types": "^7.17.0" 2871 | } 2872 | }, 2873 | "@babel/helper-plugin-utils": { 2874 | "version": "7.16.7", 2875 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", 2876 | "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", 2877 | "dev": true 2878 | }, 2879 | "@babel/helper-simple-access": { 2880 | "version": "7.17.7", 2881 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", 2882 | "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", 2883 | "dev": true, 2884 | "requires": { 2885 | "@babel/types": "^7.17.0" 2886 | } 2887 | }, 2888 | "@babel/helper-split-export-declaration": { 2889 | "version": "7.16.7", 2890 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", 2891 | "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", 2892 | "dev": true, 2893 | "requires": { 2894 | "@babel/types": "^7.16.7" 2895 | } 2896 | }, 2897 | "@babel/helper-validator-identifier": { 2898 | "version": "7.16.7", 2899 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", 2900 | "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", 2901 | "dev": true 2902 | }, 2903 | "@babel/helper-validator-option": { 2904 | "version": "7.16.7", 2905 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", 2906 | "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", 2907 | "dev": true 2908 | }, 2909 | "@babel/helpers": { 2910 | "version": "7.17.9", 2911 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", 2912 | "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", 2913 | "dev": true, 2914 | "requires": { 2915 | "@babel/template": "^7.16.7", 2916 | "@babel/traverse": "^7.17.9", 2917 | "@babel/types": "^7.17.0" 2918 | } 2919 | }, 2920 | "@babel/highlight": { 2921 | "version": "7.17.9", 2922 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", 2923 | "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", 2924 | "dev": true, 2925 | "requires": { 2926 | "@babel/helper-validator-identifier": "^7.16.7", 2927 | "chalk": "^2.0.0", 2928 | "js-tokens": "^4.0.0" 2929 | } 2930 | }, 2931 | "@babel/parser": { 2932 | "version": "7.17.9", 2933 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", 2934 | "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", 2935 | "dev": true 2936 | }, 2937 | "@babel/plugin-transform-modules-commonjs": { 2938 | "version": "7.17.9", 2939 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz", 2940 | "integrity": "sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw==", 2941 | "dev": true, 2942 | "requires": { 2943 | "@babel/helper-module-transforms": "^7.17.7", 2944 | "@babel/helper-plugin-utils": "^7.16.7", 2945 | "@babel/helper-simple-access": "^7.17.7", 2946 | "babel-plugin-dynamic-import-node": "^2.3.3" 2947 | } 2948 | }, 2949 | "@babel/runtime": { 2950 | "version": "7.17.9", 2951 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz", 2952 | "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", 2953 | "dev": true, 2954 | "requires": { 2955 | "regenerator-runtime": "^0.13.4" 2956 | } 2957 | }, 2958 | "@babel/template": { 2959 | "version": "7.16.7", 2960 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", 2961 | "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", 2962 | "dev": true, 2963 | "requires": { 2964 | "@babel/code-frame": "^7.16.7", 2965 | "@babel/parser": "^7.16.7", 2966 | "@babel/types": "^7.16.7" 2967 | } 2968 | }, 2969 | "@babel/traverse": { 2970 | "version": "7.17.9", 2971 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz", 2972 | "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", 2973 | "dev": true, 2974 | "requires": { 2975 | "@babel/code-frame": "^7.16.7", 2976 | "@babel/generator": "^7.17.9", 2977 | "@babel/helper-environment-visitor": "^7.16.7", 2978 | "@babel/helper-function-name": "^7.17.9", 2979 | "@babel/helper-hoist-variables": "^7.16.7", 2980 | "@babel/helper-split-export-declaration": "^7.16.7", 2981 | "@babel/parser": "^7.17.9", 2982 | "@babel/types": "^7.17.0", 2983 | "debug": "^4.1.0", 2984 | "globals": "^11.1.0" 2985 | } 2986 | }, 2987 | "@babel/types": { 2988 | "version": "7.17.0", 2989 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", 2990 | "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", 2991 | "dev": true, 2992 | "requires": { 2993 | "@babel/helper-validator-identifier": "^7.16.7", 2994 | "to-fast-properties": "^2.0.0" 2995 | } 2996 | }, 2997 | "@cloudflare/kv-asset-handler": { 2998 | "version": "0.2.0", 2999 | "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.2.0.tgz", 3000 | "integrity": "sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==", 3001 | "dev": true, 3002 | "requires": { 3003 | "mime": "^3.0.0" 3004 | } 3005 | }, 3006 | "@csstools/postcss-color-function": { 3007 | "version": "1.1.0", 3008 | "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.0.tgz", 3009 | "integrity": "sha512-5D5ND/mZWcQoSfYnSPsXtuiFxhzmhxt6pcjrFLJyldj+p0ZN2vvRpYNX+lahFTtMhAYOa2WmkdGINr0yP0CvGA==", 3010 | "dev": true, 3011 | "requires": { 3012 | "@csstools/postcss-progressive-custom-properties": "^1.1.0", 3013 | "postcss-value-parser": "^4.2.0" 3014 | } 3015 | }, 3016 | "@csstools/postcss-font-format-keywords": { 3017 | "version": "1.0.0", 3018 | "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.0.tgz", 3019 | "integrity": "sha512-oO0cZt8do8FdVBX8INftvIA4lUrKUSCcWUf9IwH9IPWOgKT22oAZFXeHLoDK7nhB2SmkNycp5brxfNMRLIhd6Q==", 3020 | "dev": true, 3021 | "requires": { 3022 | "postcss-value-parser": "^4.2.0" 3023 | } 3024 | }, 3025 | "@csstools/postcss-hwb-function": { 3026 | "version": "1.0.0", 3027 | "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.0.tgz", 3028 | "integrity": "sha512-VSTd7hGjmde4rTj1rR30sokY3ONJph1reCBTUXqeW1fKwETPy1x4t/XIeaaqbMbC5Xg4SM/lyXZ2S8NELT2TaA==", 3029 | "dev": true, 3030 | "requires": { 3031 | "postcss-value-parser": "^4.2.0" 3032 | } 3033 | }, 3034 | "@csstools/postcss-ic-unit": { 3035 | "version": "1.0.0", 3036 | "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.0.tgz", 3037 | "integrity": "sha512-i4yps1mBp2ijrx7E96RXrQXQQHm6F4ym1TOD0D69/sjDjZvQ22tqiEvaNw7pFZTUO5b9vWRHzbHzP9+UKuw+bA==", 3038 | "dev": true, 3039 | "requires": { 3040 | "@csstools/postcss-progressive-custom-properties": "^1.1.0", 3041 | "postcss-value-parser": "^4.2.0" 3042 | } 3043 | }, 3044 | "@csstools/postcss-is-pseudo-class": { 3045 | "version": "2.0.2", 3046 | "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.2.tgz", 3047 | "integrity": "sha512-L9h1yxXMj7KpgNzlMrw3isvHJYkikZgZE4ASwssTnGEH8tm50L6QsM9QQT5wR4/eO5mU0rN5axH7UzNxEYg5CA==", 3048 | "dev": true, 3049 | "requires": { 3050 | "postcss-selector-parser": "^6.0.10" 3051 | } 3052 | }, 3053 | "@csstools/postcss-normalize-display-values": { 3054 | "version": "1.0.0", 3055 | "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.0.tgz", 3056 | "integrity": "sha512-bX+nx5V8XTJEmGtpWTO6kywdS725t71YSLlxWt78XoHUbELWgoCXeOFymRJmL3SU1TLlKSIi7v52EWqe60vJTQ==", 3057 | "dev": true, 3058 | "requires": { 3059 | "postcss-value-parser": "^4.2.0" 3060 | } 3061 | }, 3062 | "@csstools/postcss-oklab-function": { 3063 | "version": "1.1.0", 3064 | "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.0.tgz", 3065 | "integrity": "sha512-e/Q5HopQzmnQgqimG9v3w2IG4VRABsBq3itOcn4bnm+j4enTgQZ0nWsaH/m9GV2otWGQ0nwccYL5vmLKyvP1ww==", 3066 | "dev": true, 3067 | "requires": { 3068 | "@csstools/postcss-progressive-custom-properties": "^1.1.0", 3069 | "postcss-value-parser": "^4.2.0" 3070 | } 3071 | }, 3072 | "@csstools/postcss-progressive-custom-properties": { 3073 | "version": "1.3.0", 3074 | "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", 3075 | "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", 3076 | "dev": true, 3077 | "requires": { 3078 | "postcss-value-parser": "^4.2.0" 3079 | } 3080 | }, 3081 | "@jridgewell/resolve-uri": { 3082 | "version": "3.0.5", 3083 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", 3084 | "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", 3085 | "dev": true 3086 | }, 3087 | "@jridgewell/sourcemap-codec": { 3088 | "version": "1.4.11", 3089 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", 3090 | "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", 3091 | "dev": true 3092 | }, 3093 | "@jridgewell/trace-mapping": { 3094 | "version": "0.3.4", 3095 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", 3096 | "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", 3097 | "dev": true, 3098 | "requires": { 3099 | "@jridgewell/resolve-uri": "^3.0.3", 3100 | "@jridgewell/sourcemap-codec": "^1.4.10" 3101 | } 3102 | }, 3103 | "@marko/babel-utils": { 3104 | "version": "5.20.3", 3105 | "resolved": "https://registry.npmjs.org/@marko/babel-utils/-/babel-utils-5.20.3.tgz", 3106 | "integrity": "sha512-IgSjeL+5JMonivLESu9JR/1yIPRcLiyJkzQjkFDFZ2oHGU3+lvmdb35J2bzoLidRk3edgq+FN3/SXSa0hnzN9A==", 3107 | "dev": true, 3108 | "requires": { 3109 | "@babel/runtime": "^7.16.0", 3110 | "jsesc": "^3.0.2", 3111 | "relative-import-path": "^1.0.0" 3112 | } 3113 | }, 3114 | "@marko/compiler": { 3115 | "version": "5.20.3", 3116 | "resolved": "https://registry.npmjs.org/@marko/compiler/-/compiler-5.20.3.tgz", 3117 | "integrity": "sha512-fI2uvF07p7X5cSszpYIjyKggjsRQvAXCRwXipQDIdzP6a5aBJtQjZKM4Y32ugru/whVORGY4fkVwHIhN2AkiBA==", 3118 | "dev": true, 3119 | "requires": { 3120 | "@babel/code-frame": "^7.16.0", 3121 | "@babel/core": "^7.16.0", 3122 | "@babel/generator": "^7.16.0", 3123 | "@babel/parser": "^7.16.0", 3124 | "@babel/plugin-transform-modules-commonjs": "^7.16.0", 3125 | "@babel/runtime": "^7.16.0", 3126 | "@babel/traverse": "^7.16.0", 3127 | "@babel/types": "^7.16.0", 3128 | "@marko/babel-utils": "^5.20.3", 3129 | "complain": "^1.6.0", 3130 | "he": "^1.2.0", 3131 | "htmljs-parser": "^2.11.1", 3132 | "jsesc": "^3.0.2", 3133 | "lasso-package-root": "^1.0.1", 3134 | "property-handlers": "^1.1.1", 3135 | "raptor-regexp": "^1.0.1", 3136 | "raptor-util": "^3.2.0", 3137 | "resolve-from": "^5.0.0", 3138 | "self-closing-tags": "^1.0.1", 3139 | "strip-ansi": "^6.0.0", 3140 | "strip-json-comments": "^3.1.1" 3141 | } 3142 | }, 3143 | "@marko/translator-default": { 3144 | "version": "5.20.3", 3145 | "resolved": "https://registry.npmjs.org/@marko/translator-default/-/translator-default-5.20.3.tgz", 3146 | "integrity": "sha512-GSNO6b1MGMHXI3OMfgEt0GXaBzrL6k8dRXLv1W0MEbhS9mshkGx9dsF0yFgmRxC0gizk3HTRz7v8x4EZik1s6w==", 3147 | "dev": true, 3148 | "requires": { 3149 | "@babel/runtime": "^7.16.0", 3150 | "@marko/babel-utils": "^5.20.3", 3151 | "escape-string-regexp": "^4.0.0", 3152 | "magic-string": "^0.25.7", 3153 | "self-closing-tags": "^1.0.1" 3154 | }, 3155 | "dependencies": { 3156 | "escape-string-regexp": { 3157 | "version": "4.0.0", 3158 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 3159 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 3160 | "dev": true 3161 | } 3162 | } 3163 | }, 3164 | "@marko/vite": { 3165 | "version": "2.2.11", 3166 | "resolved": "https://registry.npmjs.org/@marko/vite/-/vite-2.2.11.tgz", 3167 | "integrity": "sha512-8xzK5lxsOar5mANOc40WxKM7bFTVHGIJUeUJ5Av1jftW9EXwxvUU7iWRLfaKDsvsySuSsVb5kykYsuPwY0vYNw==", 3168 | "dev": true, 3169 | "requires": { 3170 | "anymatch": "^3.1.2", 3171 | "domelementtype": "^2.2.0", 3172 | "domhandler": "^4.3.0", 3173 | "htmlparser2": "^7.2.0" 3174 | } 3175 | }, 3176 | "ansi-regex": { 3177 | "version": "5.0.1", 3178 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 3179 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 3180 | "dev": true 3181 | }, 3182 | "ansi-styles": { 3183 | "version": "3.2.1", 3184 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 3185 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 3186 | "dev": true, 3187 | "requires": { 3188 | "color-convert": "^1.9.0" 3189 | } 3190 | }, 3191 | "anymatch": { 3192 | "version": "3.1.2", 3193 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", 3194 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", 3195 | "dev": true, 3196 | "requires": { 3197 | "normalize-path": "^3.0.0", 3198 | "picomatch": "^2.0.4" 3199 | } 3200 | }, 3201 | "app-module-path": { 3202 | "version": "2.2.0", 3203 | "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", 3204 | "integrity": "sha1-ZBqlXft9am8KgUHEucCqULbCTdU=", 3205 | "dev": true 3206 | }, 3207 | "argly": { 3208 | "version": "1.2.0", 3209 | "resolved": "https://registry.npmjs.org/argly/-/argly-1.2.0.tgz", 3210 | "integrity": "sha1-KydORVGin/XnGZ0u2XiOtm7TbmA=", 3211 | "dev": true 3212 | }, 3213 | "assertion-error": { 3214 | "version": "1.1.0", 3215 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", 3216 | "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", 3217 | "dev": true 3218 | }, 3219 | "autoprefixer": { 3220 | "version": "10.4.4", 3221 | "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.4.tgz", 3222 | "integrity": "sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==", 3223 | "dev": true, 3224 | "requires": { 3225 | "browserslist": "^4.20.2", 3226 | "caniuse-lite": "^1.0.30001317", 3227 | "fraction.js": "^4.2.0", 3228 | "normalize-range": "^0.1.2", 3229 | "picocolors": "^1.0.0", 3230 | "postcss-value-parser": "^4.2.0" 3231 | } 3232 | }, 3233 | "babel-plugin-dynamic-import-node": { 3234 | "version": "2.3.3", 3235 | "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", 3236 | "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", 3237 | "dev": true, 3238 | "requires": { 3239 | "object.assign": "^4.1.0" 3240 | } 3241 | }, 3242 | "balanced-match": { 3243 | "version": "1.0.2", 3244 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 3245 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 3246 | "dev": true 3247 | }, 3248 | "brace-expansion": { 3249 | "version": "1.1.11", 3250 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 3251 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 3252 | "dev": true, 3253 | "requires": { 3254 | "balanced-match": "^1.0.0", 3255 | "concat-map": "0.0.1" 3256 | } 3257 | }, 3258 | "browser-refresh-client": { 3259 | "version": "1.1.4", 3260 | "resolved": "https://registry.npmjs.org/browser-refresh-client/-/browser-refresh-client-1.1.4.tgz", 3261 | "integrity": "sha1-jl/4R1/h1UHSroH3oa6gWuIaYhc=", 3262 | "dev": true 3263 | }, 3264 | "browserslist": { 3265 | "version": "4.20.2", 3266 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", 3267 | "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", 3268 | "dev": true, 3269 | "requires": { 3270 | "caniuse-lite": "^1.0.30001317", 3271 | "electron-to-chromium": "^1.4.84", 3272 | "escalade": "^3.1.1", 3273 | "node-releases": "^2.0.2", 3274 | "picocolors": "^1.0.0" 3275 | } 3276 | }, 3277 | "call-bind": { 3278 | "version": "1.0.2", 3279 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 3280 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 3281 | "dev": true, 3282 | "requires": { 3283 | "function-bind": "^1.1.1", 3284 | "get-intrinsic": "^1.0.2" 3285 | } 3286 | }, 3287 | "caniuse-lite": { 3288 | "version": "1.0.30001327", 3289 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001327.tgz", 3290 | "integrity": "sha512-1/Cg4jlD9qjZzhbzkzEaAC2JHsP0WrOc8Rd/3a3LuajGzGWR/hD7TVyvq99VqmTy99eVh8Zkmdq213OgvgXx7w==", 3291 | "dev": true 3292 | }, 3293 | "chai": { 3294 | "version": "3.5.0", 3295 | "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", 3296 | "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", 3297 | "dev": true, 3298 | "requires": { 3299 | "assertion-error": "^1.0.1", 3300 | "deep-eql": "^0.1.3", 3301 | "type-detect": "^1.0.0" 3302 | } 3303 | }, 3304 | "chalk": { 3305 | "version": "2.4.2", 3306 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 3307 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 3308 | "dev": true, 3309 | "requires": { 3310 | "ansi-styles": "^3.2.1", 3311 | "escape-string-regexp": "^1.0.5", 3312 | "supports-color": "^5.3.0" 3313 | } 3314 | }, 3315 | "char-props": { 3316 | "version": "0.1.5", 3317 | "resolved": "https://registry.npmjs.org/char-props/-/char-props-0.1.5.tgz", 3318 | "integrity": "sha1-W5UvniDqIc0Iyn/hNaEPb+kcEJ4=", 3319 | "dev": true 3320 | }, 3321 | "color-convert": { 3322 | "version": "1.9.3", 3323 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 3324 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 3325 | "dev": true, 3326 | "requires": { 3327 | "color-name": "1.1.3" 3328 | } 3329 | }, 3330 | "color-name": { 3331 | "version": "1.1.3", 3332 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 3333 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 3334 | "dev": true 3335 | }, 3336 | "complain": { 3337 | "version": "1.6.0", 3338 | "resolved": "https://registry.npmjs.org/complain/-/complain-1.6.0.tgz", 3339 | "integrity": "sha512-9oBfSEfxveaNmo2eSp/vEPkaBVxUhiJTZVgGYayzBchSAXQM6CK1PAQeV5ICShnSgfT+biYzrN7egKwwX+HkCw==", 3340 | "dev": true, 3341 | "requires": { 3342 | "error-stack-parser": "^2.0.1" 3343 | } 3344 | }, 3345 | "concat-map": { 3346 | "version": "0.0.1", 3347 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 3348 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 3349 | "dev": true 3350 | }, 3351 | "convert-source-map": { 3352 | "version": "1.8.0", 3353 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", 3354 | "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", 3355 | "dev": true, 3356 | "requires": { 3357 | "safe-buffer": "~5.1.1" 3358 | } 3359 | }, 3360 | "cross-env": { 3361 | "version": "7.0.3", 3362 | "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", 3363 | "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", 3364 | "dev": true, 3365 | "requires": { 3366 | "cross-spawn": "^7.0.1" 3367 | } 3368 | }, 3369 | "cross-spawn": { 3370 | "version": "7.0.3", 3371 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 3372 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 3373 | "dev": true, 3374 | "requires": { 3375 | "path-key": "^3.1.0", 3376 | "shebang-command": "^2.0.0", 3377 | "which": "^2.0.1" 3378 | } 3379 | }, 3380 | "css-blank-pseudo": { 3381 | "version": "3.0.3", 3382 | "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", 3383 | "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", 3384 | "dev": true, 3385 | "requires": { 3386 | "postcss-selector-parser": "^6.0.9" 3387 | } 3388 | }, 3389 | "css-has-pseudo": { 3390 | "version": "3.0.4", 3391 | "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", 3392 | "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", 3393 | "dev": true, 3394 | "requires": { 3395 | "postcss-selector-parser": "^6.0.9" 3396 | } 3397 | }, 3398 | "css-prefers-color-scheme": { 3399 | "version": "6.0.3", 3400 | "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", 3401 | "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", 3402 | "dev": true, 3403 | "requires": {} 3404 | }, 3405 | "cssdb": { 3406 | "version": "6.5.0", 3407 | "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.5.0.tgz", 3408 | "integrity": "sha512-Rh7AAopF2ckPXe/VBcoUS9JrCZNSyc60+KpgE6X25vpVxA32TmiqvExjkfhwP4wGSb6Xe8Z/JIyGqwgx/zZYFA==", 3409 | "dev": true 3410 | }, 3411 | "cssesc": { 3412 | "version": "3.0.0", 3413 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", 3414 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", 3415 | "dev": true 3416 | }, 3417 | "debug": { 3418 | "version": "4.3.4", 3419 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 3420 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 3421 | "dev": true, 3422 | "requires": { 3423 | "ms": "2.1.2" 3424 | } 3425 | }, 3426 | "deep-eql": { 3427 | "version": "0.1.3", 3428 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", 3429 | "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", 3430 | "dev": true, 3431 | "requires": { 3432 | "type-detect": "0.1.1" 3433 | }, 3434 | "dependencies": { 3435 | "type-detect": { 3436 | "version": "0.1.1", 3437 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", 3438 | "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", 3439 | "dev": true 3440 | } 3441 | } 3442 | }, 3443 | "define-properties": { 3444 | "version": "1.1.3", 3445 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", 3446 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", 3447 | "dev": true, 3448 | "requires": { 3449 | "object-keys": "^1.0.12" 3450 | } 3451 | }, 3452 | "dom-serializer": { 3453 | "version": "1.4.1", 3454 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", 3455 | "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", 3456 | "dev": true, 3457 | "requires": { 3458 | "domelementtype": "^2.0.1", 3459 | "domhandler": "^4.2.0", 3460 | "entities": "^2.0.0" 3461 | }, 3462 | "dependencies": { 3463 | "entities": { 3464 | "version": "2.2.0", 3465 | "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", 3466 | "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", 3467 | "dev": true 3468 | } 3469 | } 3470 | }, 3471 | "domelementtype": { 3472 | "version": "2.3.0", 3473 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", 3474 | "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", 3475 | "dev": true 3476 | }, 3477 | "domhandler": { 3478 | "version": "4.3.1", 3479 | "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", 3480 | "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", 3481 | "dev": true, 3482 | "requires": { 3483 | "domelementtype": "^2.2.0" 3484 | } 3485 | }, 3486 | "domutils": { 3487 | "version": "2.8.0", 3488 | "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", 3489 | "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", 3490 | "dev": true, 3491 | "requires": { 3492 | "dom-serializer": "^1.0.1", 3493 | "domelementtype": "^2.2.0", 3494 | "domhandler": "^4.2.0" 3495 | } 3496 | }, 3497 | "electron-to-chromium": { 3498 | "version": "1.4.106", 3499 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.106.tgz", 3500 | "integrity": "sha512-ZYfpVLULm67K7CaaGP7DmjyeMY4naxsbTy+syVVxT6QHI1Ww8XbJjmr9fDckrhq44WzCrcC5kH3zGpdusxwwqg==", 3501 | "dev": true 3502 | }, 3503 | "entities": { 3504 | "version": "3.0.1", 3505 | "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", 3506 | "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", 3507 | "dev": true 3508 | }, 3509 | "error-stack-parser": { 3510 | "version": "2.0.7", 3511 | "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz", 3512 | "integrity": "sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==", 3513 | "dev": true, 3514 | "requires": { 3515 | "stackframe": "^1.1.1" 3516 | } 3517 | }, 3518 | "esbuild": { 3519 | "version": "0.14.34", 3520 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.34.tgz", 3521 | "integrity": "sha512-QIWdPT/gFF6hCaf4m7kP0cJ+JIuFkdHibI7vVFvu3eJS1HpVmYHWDulyN5WXwbRA0SX/7ZDaJ/1DH8SdY9xOJg==", 3522 | "dev": true, 3523 | "requires": { 3524 | "esbuild-android-64": "0.14.34", 3525 | "esbuild-android-arm64": "0.14.34", 3526 | "esbuild-darwin-64": "0.14.34", 3527 | "esbuild-darwin-arm64": "0.14.34", 3528 | "esbuild-freebsd-64": "0.14.34", 3529 | "esbuild-freebsd-arm64": "0.14.34", 3530 | "esbuild-linux-32": "0.14.34", 3531 | "esbuild-linux-64": "0.14.34", 3532 | "esbuild-linux-arm": "0.14.34", 3533 | "esbuild-linux-arm64": "0.14.34", 3534 | "esbuild-linux-mips64le": "0.14.34", 3535 | "esbuild-linux-ppc64le": "0.14.34", 3536 | "esbuild-linux-riscv64": "0.14.34", 3537 | "esbuild-linux-s390x": "0.14.34", 3538 | "esbuild-netbsd-64": "0.14.34", 3539 | "esbuild-openbsd-64": "0.14.34", 3540 | "esbuild-sunos-64": "0.14.34", 3541 | "esbuild-windows-32": "0.14.34", 3542 | "esbuild-windows-64": "0.14.34", 3543 | "esbuild-windows-arm64": "0.14.34" 3544 | } 3545 | }, 3546 | "esbuild-android-64": { 3547 | "version": "0.14.34", 3548 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.34.tgz", 3549 | "integrity": "sha512-XfxcfJqmMYsT/LXqrptzFxmaR3GWzXHDLdFNIhm6S00zPaQF1TBBWm+9t0RZ6LRR7iwH57DPjaOeW20vMqI4Yw==", 3550 | "dev": true, 3551 | "optional": true 3552 | }, 3553 | "esbuild-android-arm64": { 3554 | "version": "0.14.34", 3555 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.34.tgz", 3556 | "integrity": "sha512-T02+NXTmSRL1Mc6puz+R9CB54rSPICkXKq6+tw8B6vxZFnCPzbJxgwIX4kcluz9p8nYBjF3+lSilTGWb7+Xgew==", 3557 | "dev": true, 3558 | "optional": true 3559 | }, 3560 | "esbuild-darwin-64": { 3561 | "version": "0.14.34", 3562 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.34.tgz", 3563 | "integrity": "sha512-pLRip2Bh4Ng7Bf6AMgCrSp3pPe/qZyf11h5Qo2mOfJqLWzSVjxrXW+CFRJfrOVP7TCnh/gmZSM2AFdCPB72vtw==", 3564 | "dev": true, 3565 | "optional": true 3566 | }, 3567 | "esbuild-darwin-arm64": { 3568 | "version": "0.14.34", 3569 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.34.tgz", 3570 | "integrity": "sha512-vpidSJEBxx6lf1NWgXC+DCmGqesJuZ5Y8aQVVsaoO4i8tRXbXb0whChRvop/zd3nfNM4dIl5EXAky0knRX5I6w==", 3571 | "dev": true, 3572 | "optional": true 3573 | }, 3574 | "esbuild-freebsd-64": { 3575 | "version": "0.14.34", 3576 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.34.tgz", 3577 | "integrity": "sha512-m0HBjePhe0hAQJgtMRMNV9kMgIyV4/qSnzPx42kRMQBcPhgjAq1JRu4Il26czC+9FgpMbFkUktb07f/Lwnc6CA==", 3578 | "dev": true, 3579 | "optional": true 3580 | }, 3581 | "esbuild-freebsd-arm64": { 3582 | "version": "0.14.34", 3583 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.34.tgz", 3584 | "integrity": "sha512-cpRc2B94L1KvMPPYB4D6G39jLqpKlD3noAMY4/e86iXXXkhUYJJEtTuyNFTa9JRpWM0xCAp4mxjHjoIiLuoCLA==", 3585 | "dev": true, 3586 | "optional": true 3587 | }, 3588 | "esbuild-linux-32": { 3589 | "version": "0.14.34", 3590 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.34.tgz", 3591 | "integrity": "sha512-8nQaEaoW7MH/K/RlozJa+lE1ejHIr8fuPIHhc513UebRav7HtXgQvxHQ6VZRUkWtep23M6dd7UqhwO1tMOfzQQ==", 3592 | "dev": true, 3593 | "optional": true 3594 | }, 3595 | "esbuild-linux-64": { 3596 | "version": "0.14.34", 3597 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.34.tgz", 3598 | "integrity": "sha512-Y3of4qQoLLlAgf042MlrY1P+7PnN9zWj8nVtw9XQG5hcLOZLz7IKpU35oeu7n4wvyaZHwvQqDJ93gRLqdJekcQ==", 3599 | "dev": true, 3600 | "optional": true 3601 | }, 3602 | "esbuild-linux-arm": { 3603 | "version": "0.14.34", 3604 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.34.tgz", 3605 | "integrity": "sha512-9lpq1NcJqssAF7alCO6zL3gvBVVt/lKw4oetUM7OgNnRX0OWpB+ZIO9FwCrSj/dMdmgDhPLf+119zB8QxSMmAg==", 3606 | "dev": true, 3607 | "optional": true 3608 | }, 3609 | "esbuild-linux-arm64": { 3610 | "version": "0.14.34", 3611 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.34.tgz", 3612 | "integrity": "sha512-IlWaGtj9ir7+Nrume1DGcyzBDlK8GcnJq0ANKwcI9pVw8tqr+6GD0eqyF9SF1mR8UmAp+odrx1H5NdR2cHdFHA==", 3613 | "dev": true, 3614 | "optional": true 3615 | }, 3616 | "esbuild-linux-mips64le": { 3617 | "version": "0.14.34", 3618 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.34.tgz", 3619 | "integrity": "sha512-k3or+01Rska1AjUyNjA4buEwB51eyN/xPQAoOx1CjzAQC3l8rpjUDw55kXyL63O/1MUi4ISvtNtl8gLwdyEcxw==", 3620 | "dev": true, 3621 | "optional": true 3622 | }, 3623 | "esbuild-linux-ppc64le": { 3624 | "version": "0.14.34", 3625 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.34.tgz", 3626 | "integrity": "sha512-+qxb8M9FfM2CJaVU7GgYpJOHM1ngQOx+/VrtBjb4C8oVqaPcESCeg2anjl+HRZy8VpYc71q/iBYausPPbJ+Keg==", 3627 | "dev": true, 3628 | "optional": true 3629 | }, 3630 | "esbuild-linux-riscv64": { 3631 | "version": "0.14.34", 3632 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.34.tgz", 3633 | "integrity": "sha512-Y717ltBdQ5j5sZIHdy1DV9kieo0wMip0dCmVSTceowCPYSn1Cg33Kd6981+F/3b9FDMzNWldZFOBRILViENZSA==", 3634 | "dev": true, 3635 | "optional": true 3636 | }, 3637 | "esbuild-linux-s390x": { 3638 | "version": "0.14.34", 3639 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.34.tgz", 3640 | "integrity": "sha512-bDDgYO4LhL4+zPs+WcBkXph+AQoPcQRTv18FzZS0WhjfH8TZx2QqlVPGhmhZ6WidrY+jKthUqO6UhGyIb4MpmA==", 3641 | "dev": true, 3642 | "optional": true 3643 | }, 3644 | "esbuild-netbsd-64": { 3645 | "version": "0.14.34", 3646 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.34.tgz", 3647 | "integrity": "sha512-cfaFGXdRt0+vHsjNPyF0POM4BVSHPSbhLPe8mppDc7GDDxjIl08mV1Zou14oDWMp/XZMjYN1kWYRSfftiD0vvQ==", 3648 | "dev": true, 3649 | "optional": true 3650 | }, 3651 | "esbuild-openbsd-64": { 3652 | "version": "0.14.34", 3653 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.34.tgz", 3654 | "integrity": "sha512-vmy9DxXVnRiI14s8GKuYBtess+EVcDALkbpTqd5jw4XITutIzyB7n4x0Tj5utAkKsgZJB22lLWGekr0ABnSLow==", 3655 | "dev": true, 3656 | "optional": true 3657 | }, 3658 | "esbuild-sunos-64": { 3659 | "version": "0.14.34", 3660 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.34.tgz", 3661 | "integrity": "sha512-eNPVatNET1F7tRMhii7goL/eptfxc0ALRjrj9SPFNqp0zmxrehBFD6BaP3R4LjMn6DbMO0jOAnTLFKr8NqcJAA==", 3662 | "dev": true, 3663 | "optional": true 3664 | }, 3665 | "esbuild-windows-32": { 3666 | "version": "0.14.34", 3667 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.34.tgz", 3668 | "integrity": "sha512-EFhpXyHEcnqWYe2rAHFd8dRw8wkrd9U+9oqcyoEL84GbanAYjiiIjBZsnR8kl0sCQ5w6bLpk7vCEIA2VS32Vcg==", 3669 | "dev": true, 3670 | "optional": true 3671 | }, 3672 | "esbuild-windows-64": { 3673 | "version": "0.14.34", 3674 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.34.tgz", 3675 | "integrity": "sha512-a8fbl8Ky7PxNEjf1aJmtxdDZj32/hC7S1OcA2ckEpCJRTjiKslI9vAdPpSjrKIWhws4Galpaawy0nB7fjHYf5Q==", 3676 | "dev": true, 3677 | "optional": true 3678 | }, 3679 | "esbuild-windows-arm64": { 3680 | "version": "0.14.34", 3681 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.34.tgz", 3682 | "integrity": "sha512-EYvmKbSa2B3sPnpC28UEu9jBK5atGV4BaVRE7CYGUci2Hlz4AvtV/LML+TcDMT6gBgibnN2gcltWclab3UutMg==", 3683 | "dev": true, 3684 | "optional": true 3685 | }, 3686 | "escalade": { 3687 | "version": "3.1.1", 3688 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 3689 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 3690 | "dev": true 3691 | }, 3692 | "escape-string-regexp": { 3693 | "version": "1.0.5", 3694 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 3695 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 3696 | "dev": true 3697 | }, 3698 | "events-light": { 3699 | "version": "1.0.5", 3700 | "resolved": "https://registry.npmjs.org/events-light/-/events-light-1.0.5.tgz", 3701 | "integrity": "sha1-lk5jRQugr0prAiqpVbF//vZXte4=", 3702 | "dev": true, 3703 | "requires": { 3704 | "chai": "^3.5.0" 3705 | } 3706 | }, 3707 | "fraction.js": { 3708 | "version": "4.2.0", 3709 | "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", 3710 | "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", 3711 | "dev": true 3712 | }, 3713 | "fs.realpath": { 3714 | "version": "1.0.0", 3715 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 3716 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 3717 | "dev": true 3718 | }, 3719 | "fsevents": { 3720 | "version": "2.3.2", 3721 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 3722 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 3723 | "dev": true, 3724 | "optional": true 3725 | }, 3726 | "function-bind": { 3727 | "version": "1.1.1", 3728 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 3729 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 3730 | "dev": true 3731 | }, 3732 | "gensync": { 3733 | "version": "1.0.0-beta.2", 3734 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 3735 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", 3736 | "dev": true 3737 | }, 3738 | "get-intrinsic": { 3739 | "version": "1.1.1", 3740 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", 3741 | "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", 3742 | "dev": true, 3743 | "requires": { 3744 | "function-bind": "^1.1.1", 3745 | "has": "^1.0.3", 3746 | "has-symbols": "^1.0.1" 3747 | } 3748 | }, 3749 | "glob": { 3750 | "version": "7.2.0", 3751 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", 3752 | "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", 3753 | "dev": true, 3754 | "requires": { 3755 | "fs.realpath": "^1.0.0", 3756 | "inflight": "^1.0.4", 3757 | "inherits": "2", 3758 | "minimatch": "^3.0.4", 3759 | "once": "^1.3.0", 3760 | "path-is-absolute": "^1.0.0" 3761 | } 3762 | }, 3763 | "globals": { 3764 | "version": "11.12.0", 3765 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 3766 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 3767 | "dev": true 3768 | }, 3769 | "has": { 3770 | "version": "1.0.3", 3771 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 3772 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 3773 | "dev": true, 3774 | "requires": { 3775 | "function-bind": "^1.1.1" 3776 | } 3777 | }, 3778 | "has-flag": { 3779 | "version": "3.0.0", 3780 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 3781 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 3782 | "dev": true 3783 | }, 3784 | "has-symbols": { 3785 | "version": "1.0.3", 3786 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 3787 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", 3788 | "dev": true 3789 | }, 3790 | "he": { 3791 | "version": "1.2.0", 3792 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", 3793 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", 3794 | "dev": true 3795 | }, 3796 | "htmljs-parser": { 3797 | "version": "2.11.3", 3798 | "resolved": "https://registry.npmjs.org/htmljs-parser/-/htmljs-parser-2.11.3.tgz", 3799 | "integrity": "sha512-qK+YpmgYzKAgPiYKyVBuMeDwLGvxCsjoNI3W7q9tdv6A+Z/4XoTTefXi5mj15cEN/byU5Z5INhsXxhafshg+5A==", 3800 | "dev": true, 3801 | "requires": { 3802 | "char-props": "^0.1.5", 3803 | "complain": "^1.0.0" 3804 | } 3805 | }, 3806 | "htmlparser2": { 3807 | "version": "7.2.0", 3808 | "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", 3809 | "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", 3810 | "dev": true, 3811 | "requires": { 3812 | "domelementtype": "^2.0.1", 3813 | "domhandler": "^4.2.2", 3814 | "domutils": "^2.8.0", 3815 | "entities": "^3.0.1" 3816 | } 3817 | }, 3818 | "inflight": { 3819 | "version": "1.0.6", 3820 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 3821 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 3822 | "dev": true, 3823 | "requires": { 3824 | "once": "^1.3.0", 3825 | "wrappy": "1" 3826 | } 3827 | }, 3828 | "inherits": { 3829 | "version": "2.0.4", 3830 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 3831 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 3832 | "dev": true 3833 | }, 3834 | "is-core-module": { 3835 | "version": "2.8.1", 3836 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", 3837 | "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", 3838 | "dev": true, 3839 | "requires": { 3840 | "has": "^1.0.3" 3841 | } 3842 | }, 3843 | "isexe": { 3844 | "version": "2.0.0", 3845 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 3846 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 3847 | "dev": true 3848 | }, 3849 | "js-tokens": { 3850 | "version": "4.0.0", 3851 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 3852 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 3853 | "dev": true 3854 | }, 3855 | "jsesc": { 3856 | "version": "3.0.2", 3857 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", 3858 | "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", 3859 | "dev": true 3860 | }, 3861 | "json5": { 3862 | "version": "2.2.1", 3863 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", 3864 | "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", 3865 | "dev": true 3866 | }, 3867 | "lasso-caching-fs": { 3868 | "version": "1.0.2", 3869 | "resolved": "https://registry.npmjs.org/lasso-caching-fs/-/lasso-caching-fs-1.0.2.tgz", 3870 | "integrity": "sha1-m+TrHwaqwSYDRMrq70LC8AhusQ0=", 3871 | "dev": true, 3872 | "requires": { 3873 | "raptor-async": "^1.1.2" 3874 | } 3875 | }, 3876 | "lasso-package-root": { 3877 | "version": "1.0.1", 3878 | "resolved": "https://registry.npmjs.org/lasso-package-root/-/lasso-package-root-1.0.1.tgz", 3879 | "integrity": "sha1-mX0OcfQdA8Xw+gmlvCmNeW+LLCM=", 3880 | "dev": true, 3881 | "requires": { 3882 | "lasso-caching-fs": "^1.0.0" 3883 | } 3884 | }, 3885 | "listener-tracker": { 3886 | "version": "2.0.0", 3887 | "resolved": "https://registry.npmjs.org/listener-tracker/-/listener-tracker-2.0.0.tgz", 3888 | "integrity": "sha1-OWCLQ1wJAfpVECF8FFJyjWvBm18=", 3889 | "dev": true 3890 | }, 3891 | "magic-string": { 3892 | "version": "0.25.9", 3893 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", 3894 | "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", 3895 | "dev": true, 3896 | "requires": { 3897 | "sourcemap-codec": "^1.4.8" 3898 | } 3899 | }, 3900 | "marko": { 3901 | "version": "5.20.3", 3902 | "resolved": "https://registry.npmjs.org/marko/-/marko-5.20.3.tgz", 3903 | "integrity": "sha512-LwZWotyHbV/wi7wnPDJzg1/prh3CLMCdzsA9etEQnQHbMK3wz1UsH+zsggJBcIzrMmIEVtlo4ZiSkvPQ0h6/kw==", 3904 | "dev": true, 3905 | "requires": { 3906 | "@marko/compiler": "^5.20.3", 3907 | "@marko/translator-default": "^5.20.3", 3908 | "app-module-path": "^2.2.0", 3909 | "argly": "^1.2.0", 3910 | "browser-refresh-client": "1.1.4", 3911 | "complain": "^1.6.0", 3912 | "events-light": "^1.0.5", 3913 | "listener-tracker": "^2.0.0", 3914 | "minimatch": "^3.0.4", 3915 | "raptor-util": "^3.2.0", 3916 | "resolve-from": "^5.0.0", 3917 | "self-closing-tags": "^1.0.1", 3918 | "warp10": "^2.0.1" 3919 | } 3920 | }, 3921 | "mime": { 3922 | "version": "3.0.0", 3923 | "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", 3924 | "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", 3925 | "dev": true 3926 | }, 3927 | "minimatch": { 3928 | "version": "3.1.2", 3929 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 3930 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 3931 | "dev": true, 3932 | "requires": { 3933 | "brace-expansion": "^1.1.7" 3934 | } 3935 | }, 3936 | "ms": { 3937 | "version": "2.1.2", 3938 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 3939 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 3940 | "dev": true 3941 | }, 3942 | "nanoid": { 3943 | "version": "3.3.2", 3944 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.2.tgz", 3945 | "integrity": "sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==", 3946 | "dev": true 3947 | }, 3948 | "node-releases": { 3949 | "version": "2.0.2", 3950 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", 3951 | "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", 3952 | "dev": true 3953 | }, 3954 | "normalize-path": { 3955 | "version": "3.0.0", 3956 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 3957 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 3958 | "dev": true 3959 | }, 3960 | "normalize-range": { 3961 | "version": "0.1.2", 3962 | "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", 3963 | "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", 3964 | "dev": true 3965 | }, 3966 | "object-keys": { 3967 | "version": "1.1.1", 3968 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 3969 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 3970 | "dev": true 3971 | }, 3972 | "object.assign": { 3973 | "version": "4.1.2", 3974 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", 3975 | "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", 3976 | "dev": true, 3977 | "requires": { 3978 | "call-bind": "^1.0.0", 3979 | "define-properties": "^1.1.3", 3980 | "has-symbols": "^1.0.1", 3981 | "object-keys": "^1.1.1" 3982 | } 3983 | }, 3984 | "once": { 3985 | "version": "1.4.0", 3986 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 3987 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 3988 | "dev": true, 3989 | "requires": { 3990 | "wrappy": "1" 3991 | } 3992 | }, 3993 | "path-is-absolute": { 3994 | "version": "1.0.1", 3995 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 3996 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 3997 | "dev": true 3998 | }, 3999 | "path-key": { 4000 | "version": "3.1.1", 4001 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 4002 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 4003 | "dev": true 4004 | }, 4005 | "path-parse": { 4006 | "version": "1.0.7", 4007 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 4008 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 4009 | "dev": true 4010 | }, 4011 | "picocolors": { 4012 | "version": "1.0.0", 4013 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 4014 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 4015 | "dev": true 4016 | }, 4017 | "picomatch": { 4018 | "version": "2.3.1", 4019 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 4020 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 4021 | "dev": true 4022 | }, 4023 | "postcss": { 4024 | "version": "8.4.12", 4025 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", 4026 | "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", 4027 | "dev": true, 4028 | "requires": { 4029 | "nanoid": "^3.3.1", 4030 | "picocolors": "^1.0.0", 4031 | "source-map-js": "^1.0.2" 4032 | } 4033 | }, 4034 | "postcss-attribute-case-insensitive": { 4035 | "version": "5.0.0", 4036 | "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz", 4037 | "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==", 4038 | "dev": true, 4039 | "requires": { 4040 | "postcss-selector-parser": "^6.0.2" 4041 | } 4042 | }, 4043 | "postcss-clamp": { 4044 | "version": "4.1.0", 4045 | "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", 4046 | "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", 4047 | "dev": true, 4048 | "requires": { 4049 | "postcss-value-parser": "^4.2.0" 4050 | } 4051 | }, 4052 | "postcss-color-functional-notation": { 4053 | "version": "4.2.2", 4054 | "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.2.tgz", 4055 | "integrity": "sha512-DXVtwUhIk4f49KK5EGuEdgx4Gnyj6+t2jBSEmxvpIK9QI40tWrpS2Pua8Q7iIZWBrki2QOaeUdEaLPPa91K0RQ==", 4056 | "dev": true, 4057 | "requires": { 4058 | "postcss-value-parser": "^4.2.0" 4059 | } 4060 | }, 4061 | "postcss-color-hex-alpha": { 4062 | "version": "8.0.3", 4063 | "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz", 4064 | "integrity": "sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==", 4065 | "dev": true, 4066 | "requires": { 4067 | "postcss-value-parser": "^4.2.0" 4068 | } 4069 | }, 4070 | "postcss-color-rebeccapurple": { 4071 | "version": "7.0.2", 4072 | "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz", 4073 | "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==", 4074 | "dev": true, 4075 | "requires": { 4076 | "postcss-value-parser": "^4.2.0" 4077 | } 4078 | }, 4079 | "postcss-custom-media": { 4080 | "version": "8.0.0", 4081 | "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", 4082 | "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", 4083 | "dev": true, 4084 | "requires": {} 4085 | }, 4086 | "postcss-custom-properties": { 4087 | "version": "12.1.7", 4088 | "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.7.tgz", 4089 | "integrity": "sha512-N/hYP5gSoFhaqxi2DPCmvto/ZcRDVjE3T1LiAMzc/bg53hvhcHOLpXOHb526LzBBp5ZlAUhkuot/bfpmpgStJg==", 4090 | "dev": true, 4091 | "requires": { 4092 | "postcss-value-parser": "^4.2.0" 4093 | } 4094 | }, 4095 | "postcss-custom-selectors": { 4096 | "version": "6.0.0", 4097 | "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz", 4098 | "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==", 4099 | "dev": true, 4100 | "requires": { 4101 | "postcss-selector-parser": "^6.0.4" 4102 | } 4103 | }, 4104 | "postcss-dir-pseudo-class": { 4105 | "version": "6.0.4", 4106 | "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.4.tgz", 4107 | "integrity": "sha512-I8epwGy5ftdzNWEYok9VjW9whC4xnelAtbajGv4adql4FIF09rnrxnA9Y8xSHN47y7gqFIv10C5+ImsLeJpKBw==", 4108 | "dev": true, 4109 | "requires": { 4110 | "postcss-selector-parser": "^6.0.9" 4111 | } 4112 | }, 4113 | "postcss-double-position-gradients": { 4114 | "version": "3.1.1", 4115 | "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.1.tgz", 4116 | "integrity": "sha512-jM+CGkTs4FcG53sMPjrrGE0rIvLDdCrqMzgDC5fLI7JHDO7o6QG8C5TQBtExb13hdBdoH9C2QVbG4jo2y9lErQ==", 4117 | "dev": true, 4118 | "requires": { 4119 | "@csstools/postcss-progressive-custom-properties": "^1.1.0", 4120 | "postcss-value-parser": "^4.2.0" 4121 | } 4122 | }, 4123 | "postcss-env-function": { 4124 | "version": "4.0.6", 4125 | "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", 4126 | "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", 4127 | "dev": true, 4128 | "requires": { 4129 | "postcss-value-parser": "^4.2.0" 4130 | } 4131 | }, 4132 | "postcss-focus-visible": { 4133 | "version": "6.0.4", 4134 | "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", 4135 | "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", 4136 | "dev": true, 4137 | "requires": { 4138 | "postcss-selector-parser": "^6.0.9" 4139 | } 4140 | }, 4141 | "postcss-focus-within": { 4142 | "version": "5.0.4", 4143 | "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", 4144 | "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", 4145 | "dev": true, 4146 | "requires": { 4147 | "postcss-selector-parser": "^6.0.9" 4148 | } 4149 | }, 4150 | "postcss-font-variant": { 4151 | "version": "5.0.0", 4152 | "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", 4153 | "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", 4154 | "dev": true, 4155 | "requires": {} 4156 | }, 4157 | "postcss-gap-properties": { 4158 | "version": "3.0.3", 4159 | "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", 4160 | "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", 4161 | "dev": true, 4162 | "requires": {} 4163 | }, 4164 | "postcss-image-set-function": { 4165 | "version": "4.0.6", 4166 | "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.6.tgz", 4167 | "integrity": "sha512-KfdC6vg53GC+vPd2+HYzsZ6obmPqOk6HY09kttU19+Gj1nC3S3XBVEXDHxkhxTohgZqzbUb94bKXvKDnYWBm/A==", 4168 | "dev": true, 4169 | "requires": { 4170 | "postcss-value-parser": "^4.2.0" 4171 | } 4172 | }, 4173 | "postcss-initial": { 4174 | "version": "4.0.1", 4175 | "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", 4176 | "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", 4177 | "dev": true, 4178 | "requires": {} 4179 | }, 4180 | "postcss-lab-function": { 4181 | "version": "4.2.0", 4182 | "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.0.tgz", 4183 | "integrity": "sha512-Zb1EO9DGYfa3CP8LhINHCcTTCTLI+R3t7AX2mKsDzdgVQ/GkCpHOTgOr6HBHslP7XDdVbqgHW5vvRPMdVANQ8w==", 4184 | "dev": true, 4185 | "requires": { 4186 | "@csstools/postcss-progressive-custom-properties": "^1.1.0", 4187 | "postcss-value-parser": "^4.2.0" 4188 | } 4189 | }, 4190 | "postcss-logical": { 4191 | "version": "5.0.4", 4192 | "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", 4193 | "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", 4194 | "dev": true, 4195 | "requires": {} 4196 | }, 4197 | "postcss-media-minmax": { 4198 | "version": "5.0.0", 4199 | "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", 4200 | "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", 4201 | "dev": true, 4202 | "requires": {} 4203 | }, 4204 | "postcss-nesting": { 4205 | "version": "10.1.4", 4206 | "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.4.tgz", 4207 | "integrity": "sha512-2ixdQ59ik/Gt1+oPHiI1kHdwEI8lLKEmui9B1nl6163ANLC+GewQn7fXMxJF2JSb4i2MKL96GU8fIiQztK4TTA==", 4208 | "dev": true, 4209 | "requires": { 4210 | "postcss-selector-parser": "^6.0.10" 4211 | } 4212 | }, 4213 | "postcss-opacity-percentage": { 4214 | "version": "1.1.2", 4215 | "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz", 4216 | "integrity": "sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==", 4217 | "dev": true 4218 | }, 4219 | "postcss-overflow-shorthand": { 4220 | "version": "3.0.3", 4221 | "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", 4222 | "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", 4223 | "dev": true, 4224 | "requires": {} 4225 | }, 4226 | "postcss-page-break": { 4227 | "version": "3.0.4", 4228 | "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", 4229 | "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", 4230 | "dev": true, 4231 | "requires": {} 4232 | }, 4233 | "postcss-place": { 4234 | "version": "7.0.4", 4235 | "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.4.tgz", 4236 | "integrity": "sha512-MrgKeiiu5OC/TETQO45kV3npRjOFxEHthsqGtkh3I1rPbZSbXGD/lZVi9j13cYh+NA8PIAPyk6sGjT9QbRyvSg==", 4237 | "dev": true, 4238 | "requires": { 4239 | "postcss-value-parser": "^4.2.0" 4240 | } 4241 | }, 4242 | "postcss-preset-env": { 4243 | "version": "7.4.3", 4244 | "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.4.3.tgz", 4245 | "integrity": "sha512-dlPA65g9KuGv7YsmGyCKtFkZKCPLkoVMUE3omOl6yM+qrynVHxFvf0tMuippIrXB/sB/MyhL1FgTIbrO+qMERg==", 4246 | "dev": true, 4247 | "requires": { 4248 | "@csstools/postcss-color-function": "^1.0.3", 4249 | "@csstools/postcss-font-format-keywords": "^1.0.0", 4250 | "@csstools/postcss-hwb-function": "^1.0.0", 4251 | "@csstools/postcss-ic-unit": "^1.0.0", 4252 | "@csstools/postcss-is-pseudo-class": "^2.0.1", 4253 | "@csstools/postcss-normalize-display-values": "^1.0.0", 4254 | "@csstools/postcss-oklab-function": "^1.0.2", 4255 | "@csstools/postcss-progressive-custom-properties": "^1.3.0", 4256 | "autoprefixer": "^10.4.4", 4257 | "browserslist": "^4.20.2", 4258 | "css-blank-pseudo": "^3.0.3", 4259 | "css-has-pseudo": "^3.0.4", 4260 | "css-prefers-color-scheme": "^6.0.3", 4261 | "cssdb": "^6.5.0", 4262 | "postcss-attribute-case-insensitive": "^5.0.0", 4263 | "postcss-clamp": "^4.1.0", 4264 | "postcss-color-functional-notation": "^4.2.2", 4265 | "postcss-color-hex-alpha": "^8.0.3", 4266 | "postcss-color-rebeccapurple": "^7.0.2", 4267 | "postcss-custom-media": "^8.0.0", 4268 | "postcss-custom-properties": "^12.1.5", 4269 | "postcss-custom-selectors": "^6.0.0", 4270 | "postcss-dir-pseudo-class": "^6.0.4", 4271 | "postcss-double-position-gradients": "^3.1.1", 4272 | "postcss-env-function": "^4.0.6", 4273 | "postcss-focus-visible": "^6.0.4", 4274 | "postcss-focus-within": "^5.0.4", 4275 | "postcss-font-variant": "^5.0.0", 4276 | "postcss-gap-properties": "^3.0.3", 4277 | "postcss-image-set-function": "^4.0.6", 4278 | "postcss-initial": "^4.0.1", 4279 | "postcss-lab-function": "^4.1.2", 4280 | "postcss-logical": "^5.0.4", 4281 | "postcss-media-minmax": "^5.0.0", 4282 | "postcss-nesting": "^10.1.3", 4283 | "postcss-opacity-percentage": "^1.1.2", 4284 | "postcss-overflow-shorthand": "^3.0.3", 4285 | "postcss-page-break": "^3.0.4", 4286 | "postcss-place": "^7.0.4", 4287 | "postcss-pseudo-class-any-link": "^7.1.1", 4288 | "postcss-replace-overflow-wrap": "^4.0.0", 4289 | "postcss-selector-not": "^5.0.0", 4290 | "postcss-value-parser": "^4.2.0" 4291 | } 4292 | }, 4293 | "postcss-pseudo-class-any-link": { 4294 | "version": "7.1.2", 4295 | "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.2.tgz", 4296 | "integrity": "sha512-76XzEQv3g+Vgnz3tmqh3pqQyRojkcJ+pjaePsyhcyf164p9aZsu3t+NWxkZYbcHLK1ju5Qmalti2jPI5IWCe5w==", 4297 | "dev": true, 4298 | "requires": { 4299 | "postcss-selector-parser": "^6.0.10" 4300 | } 4301 | }, 4302 | "postcss-replace-overflow-wrap": { 4303 | "version": "4.0.0", 4304 | "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", 4305 | "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", 4306 | "dev": true, 4307 | "requires": {} 4308 | }, 4309 | "postcss-selector-not": { 4310 | "version": "5.0.0", 4311 | "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", 4312 | "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", 4313 | "dev": true, 4314 | "requires": { 4315 | "balanced-match": "^1.0.0" 4316 | } 4317 | }, 4318 | "postcss-selector-parser": { 4319 | "version": "6.0.10", 4320 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", 4321 | "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", 4322 | "dev": true, 4323 | "requires": { 4324 | "cssesc": "^3.0.0", 4325 | "util-deprecate": "^1.0.2" 4326 | } 4327 | }, 4328 | "postcss-value-parser": { 4329 | "version": "4.2.0", 4330 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", 4331 | "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", 4332 | "dev": true 4333 | }, 4334 | "property-handlers": { 4335 | "version": "1.1.1", 4336 | "resolved": "https://registry.npmjs.org/property-handlers/-/property-handlers-1.1.1.tgz", 4337 | "integrity": "sha1-yyDTIqq32U//rCj0bJGGvVlHtLQ=", 4338 | "dev": true 4339 | }, 4340 | "raptor-async": { 4341 | "version": "1.1.3", 4342 | "resolved": "https://registry.npmjs.org/raptor-async/-/raptor-async-1.1.3.tgz", 4343 | "integrity": "sha1-uDw8m2A9yYXCw6n3jStAc+b2Akw=", 4344 | "dev": true 4345 | }, 4346 | "raptor-regexp": { 4347 | "version": "1.0.1", 4348 | "resolved": "https://registry.npmjs.org/raptor-regexp/-/raptor-regexp-1.0.1.tgz", 4349 | "integrity": "sha1-7PD2bGZxwM2fXkjDcFAmxVCZlcA=", 4350 | "dev": true 4351 | }, 4352 | "raptor-util": { 4353 | "version": "3.2.0", 4354 | "resolved": "https://registry.npmjs.org/raptor-util/-/raptor-util-3.2.0.tgz", 4355 | "integrity": "sha1-I7DIA8jxrIocrmfZpjiLSRYcl1g=", 4356 | "dev": true 4357 | }, 4358 | "regenerator-runtime": { 4359 | "version": "0.13.9", 4360 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", 4361 | "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", 4362 | "dev": true 4363 | }, 4364 | "relative-import-path": { 4365 | "version": "1.0.0", 4366 | "resolved": "https://registry.npmjs.org/relative-import-path/-/relative-import-path-1.0.0.tgz", 4367 | "integrity": "sha512-ZvbtoduKQmD4PZeJPfH6Ql21qUWhaMxiHkIsH+FUnZqKDwNIXBtGg5zRZyHWomiGYk8n5+KMBPK7Mi4D0XWfNg==", 4368 | "dev": true 4369 | }, 4370 | "resolve": { 4371 | "version": "1.22.0", 4372 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", 4373 | "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", 4374 | "dev": true, 4375 | "requires": { 4376 | "is-core-module": "^2.8.1", 4377 | "path-parse": "^1.0.7", 4378 | "supports-preserve-symlinks-flag": "^1.0.0" 4379 | } 4380 | }, 4381 | "resolve-from": { 4382 | "version": "5.0.0", 4383 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", 4384 | "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", 4385 | "dev": true 4386 | }, 4387 | "rimraf": { 4388 | "version": "3.0.2", 4389 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 4390 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 4391 | "dev": true, 4392 | "requires": { 4393 | "glob": "^7.1.3" 4394 | } 4395 | }, 4396 | "rollup": { 4397 | "version": "2.70.1", 4398 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", 4399 | "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", 4400 | "dev": true, 4401 | "requires": { 4402 | "fsevents": "~2.3.2" 4403 | } 4404 | }, 4405 | "safe-buffer": { 4406 | "version": "5.1.2", 4407 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 4408 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 4409 | "dev": true 4410 | }, 4411 | "self-closing-tags": { 4412 | "version": "1.0.1", 4413 | "resolved": "https://registry.npmjs.org/self-closing-tags/-/self-closing-tags-1.0.1.tgz", 4414 | "integrity": "sha512-7t6hNbYMxM+VHXTgJmxwgZgLGktuXtVVD5AivWzNTdJBM4DBjnDKDzkf2SrNjihaArpeJYNjxkELBu1evI4lQA==", 4415 | "dev": true 4416 | }, 4417 | "semver": { 4418 | "version": "6.3.0", 4419 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 4420 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 4421 | "dev": true 4422 | }, 4423 | "shebang-command": { 4424 | "version": "2.0.0", 4425 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 4426 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 4427 | "dev": true, 4428 | "requires": { 4429 | "shebang-regex": "^3.0.0" 4430 | } 4431 | }, 4432 | "shebang-regex": { 4433 | "version": "3.0.0", 4434 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 4435 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 4436 | "dev": true 4437 | }, 4438 | "source-map": { 4439 | "version": "0.5.7", 4440 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 4441 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 4442 | "dev": true 4443 | }, 4444 | "source-map-js": { 4445 | "version": "1.0.2", 4446 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 4447 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 4448 | "dev": true 4449 | }, 4450 | "sourcemap-codec": { 4451 | "version": "1.4.8", 4452 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 4453 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", 4454 | "dev": true 4455 | }, 4456 | "stackframe": { 4457 | "version": "1.2.1", 4458 | "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz", 4459 | "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==", 4460 | "dev": true 4461 | }, 4462 | "strip-ansi": { 4463 | "version": "6.0.1", 4464 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 4465 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 4466 | "dev": true, 4467 | "requires": { 4468 | "ansi-regex": "^5.0.1" 4469 | } 4470 | }, 4471 | "strip-json-comments": { 4472 | "version": "3.1.1", 4473 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 4474 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 4475 | "dev": true 4476 | }, 4477 | "supports-color": { 4478 | "version": "5.5.0", 4479 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 4480 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 4481 | "dev": true, 4482 | "requires": { 4483 | "has-flag": "^3.0.0" 4484 | } 4485 | }, 4486 | "supports-preserve-symlinks-flag": { 4487 | "version": "1.0.0", 4488 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 4489 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 4490 | "dev": true 4491 | }, 4492 | "to-fast-properties": { 4493 | "version": "2.0.0", 4494 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", 4495 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", 4496 | "dev": true 4497 | }, 4498 | "type-detect": { 4499 | "version": "1.0.0", 4500 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", 4501 | "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=", 4502 | "dev": true 4503 | }, 4504 | "undici": { 4505 | "version": "4.16.0", 4506 | "resolved": "https://registry.npmjs.org/undici/-/undici-4.16.0.tgz", 4507 | "integrity": "sha512-tkZSECUYi+/T1i4u+4+lwZmQgLXd4BLGlrc7KZPcLIW7Jpq99+Xpc30ONv7nS6F5UNOxp/HBZSSL9MafUrvJbw==", 4508 | "dev": true 4509 | }, 4510 | "url-router": { 4511 | "version": "13.0.0", 4512 | "resolved": "https://registry.npmjs.org/url-router/-/url-router-13.0.0.tgz", 4513 | "integrity": "sha512-ePA6wkquLJfX+mjEcFvFzdLx/PuthtUN0u6eqK/EIux8iQY7Ky03UTCyerDqlvA5lgyImtwNbtTIjp1a1/VtKQ==", 4514 | "dev": true 4515 | }, 4516 | "util-deprecate": { 4517 | "version": "1.0.2", 4518 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 4519 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 4520 | "dev": true 4521 | }, 4522 | "vite": { 4523 | "version": "2.9.1", 4524 | "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.1.tgz", 4525 | "integrity": "sha512-vSlsSdOYGcYEJfkQ/NeLXgnRv5zZfpAsdztkIrs7AZHV8RCMZQkwjo4DS5BnrYTqoWqLoUe1Cah4aVO4oNNqCQ==", 4526 | "dev": true, 4527 | "requires": { 4528 | "esbuild": "^0.14.27", 4529 | "fsevents": "~2.3.2", 4530 | "postcss": "^8.4.12", 4531 | "resolve": "^1.22.0", 4532 | "rollup": "^2.59.0" 4533 | } 4534 | }, 4535 | "warp10": { 4536 | "version": "2.0.2", 4537 | "resolved": "https://registry.npmjs.org/warp10/-/warp10-2.0.2.tgz", 4538 | "integrity": "sha512-CC8MD3mBxPvKgBz58QJo8G+jPGo/oaBL2vcT6EWVpWsgzvDNwhiBBLGUDmRqaaVXv1INh8bpJPpVMUP5q1myBw==", 4539 | "dev": true 4540 | }, 4541 | "which": { 4542 | "version": "2.0.2", 4543 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 4544 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 4545 | "dev": true, 4546 | "requires": { 4547 | "isexe": "^2.0.0" 4548 | } 4549 | }, 4550 | "wrappy": { 4551 | "version": "1.0.2", 4552 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 4553 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 4554 | "dev": true 4555 | } 4556 | } 4557 | } 4558 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "marko-hackernews", 3 | "description": "Hacker News demo with Marko, Vite, and Cloudflare", 4 | "version": "1.0.0", 5 | "devDependencies": { 6 | "@cloudflare/kv-asset-handler": "^0.2.0", 7 | "@marko/compiler": "^5.17.6", 8 | "@marko/vite": "^2.2.6", 9 | "cross-env": "^7.0.3", 10 | "marko": "^5.17.9", 11 | "postcss-preset-env": "^7.2.0", 12 | "rimraf": "^3.0.2", 13 | "undici": "^4.12.1", 14 | "url-router": "^13.0.0", 15 | "vite": "^2.7.10" 16 | }, 17 | "main": "dist/worker.js", 18 | "private": true, 19 | "scripts": { 20 | "build": "rimraf dist && npm run build:worker && npm run build:client", 21 | "build:client": "cross-env NODE_ENV=production vite build", 22 | "build:worker": "cross-env NODE_ENV=production vite build --ssr src/worker.js", 23 | "dev": "node --no-warnings --enable-source-maps src/dev-server.js", 24 | "dev:inspect": "node --inspect --no-warnings --enable-source-maps src/dev-server.js", 25 | "preview": "npx wrangler dev" 26 | }, 27 | "type": "module" 28 | } -------------------------------------------------------------------------------- /src/api/index.js: -------------------------------------------------------------------------------- 1 | const mapStories = { 2 | top: "news", 3 | new: "newest", 4 | show: "show", 5 | ask: "ask", 6 | job: "jobs", 7 | }; 8 | 9 | export function getStory(id) { 10 | return get(`https://node-hnapi.herokuapp.com/item/${id}`); 11 | } 12 | export function getUser(id) { 13 | return get(`https://hacker-news.firebaseio.com/v0/user/${id}.json`); 14 | } 15 | export function getStories(type, page) { 16 | const l = mapStories[type]; 17 | return l ? get(`https://node-hnapi.herokuapp.com/${l}?page=${page}`) : []; 18 | } 19 | 20 | async function get(href) { 21 | const res = await fetch(href, { 22 | headers: { "User-Agent": "chrome" }, 23 | }); 24 | 25 | return res.json(); 26 | } 27 | -------------------------------------------------------------------------------- /src/components/comment.marko: -------------------------------------------------------------------------------- 1 | $ const { comment } = input; 2 | 3 | 4 | ${comment.user} 5 | ${` ${comment.time_ago}`} 6 | 7 | $!{comment.content} 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/components/layout.marko: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Marko - Hacker News 8 | 9 | 10 | 11 | 12 | HN 13 | New 14 | Show 15 | Ask 16 | Jobs 17 | 22 | Built with Marko 23 | 24 | 25 | 26 | <${input.renderBody}/> 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/components/layout.style.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, 3 | Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; 4 | font-size: 15px; 5 | background-color: #f2f3f5; 6 | margin: 0; 7 | padding-top: 55px; 8 | color: #34495e; 9 | overflow-y: scroll; 10 | } 11 | a { 12 | color: #34495e; 13 | text-decoration: none; 14 | } 15 | .header { 16 | background-color: #f60; 17 | position: fixed; 18 | z-index: 999; 19 | height: 55px; 20 | top: 0; 21 | left: 0; 22 | right: 0; 23 | } 24 | .header .inner { 25 | max-width: 800px; 26 | box-sizing: border-box; 27 | margin: 0 auto; 28 | padding: 15px 5px; 29 | } 30 | .header a { 31 | color: rgba(255, 255, 255, 0.8); 32 | line-height: 24px; 33 | display: inline-block; 34 | vertical-align: middle; 35 | font-weight: 300; 36 | letter-spacing: 0.075em; 37 | margin-right: 1.8em; 38 | } 39 | .header a:hover { 40 | color: #fff; 41 | } 42 | .header a.active { 43 | color: #fff; 44 | font-weight: 400; 45 | } 46 | .header a:nth-child(6) { 47 | margin-right: 0; 48 | } 49 | .header .github { 50 | color: #fff; 51 | font-size: 0.9em; 52 | margin: 0; 53 | float: right; 54 | } 55 | .logo { 56 | width: 24px; 57 | margin-right: 10px; 58 | display: inline-block; 59 | vertical-align: middle; 60 | } 61 | .view { 62 | max-width: 800px; 63 | margin: 0 auto; 64 | position: relative; 65 | } 66 | @media (max-width: 860px) { 67 | .header .inner { 68 | padding: 15px 30px; 69 | } 70 | } 71 | @media (max-width: 600px) { 72 | .header .inner { 73 | padding: 15px; 74 | } 75 | .header a { 76 | margin-right: 1em; 77 | } 78 | .header .github { 79 | display: none; 80 | } 81 | } 82 | .news-view { 83 | padding-top: 45px; 84 | } 85 | .news-list, 86 | .news-list-nav { 87 | background-color: #fff; 88 | border-radius: 2px; 89 | } 90 | .news-list-nav { 91 | padding: 15px 30px; 92 | position: fixed; 93 | text-align: center; 94 | top: 55px; 95 | left: 0; 96 | right: 0; 97 | z-index: 998; 98 | box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); 99 | } 100 | .news-list-nav .page-link { 101 | margin: 0 1em; 102 | } 103 | .news-list-nav .disabled { 104 | color: #ccc; 105 | } 106 | .news-list { 107 | position: absolute; 108 | margin: 30px 0; 109 | width: 100%; 110 | } 111 | .news-list ul { 112 | list-style-type: none; 113 | padding: 0; 114 | margin: 0; 115 | } 116 | @media (max-width: 600px) { 117 | .news-list { 118 | margin: 10px 0; 119 | } 120 | } 121 | .news-item { 122 | background-color: #fff; 123 | padding: 20px 30px 20px 80px; 124 | border-bottom: 1px solid #eee; 125 | position: relative; 126 | line-height: 20px; 127 | } 128 | .news-item .score { 129 | color: #f60; 130 | font-size: 1.1em; 131 | font-weight: 700; 132 | position: absolute; 133 | top: 50%; 134 | left: 0; 135 | width: 80px; 136 | text-align: center; 137 | margin-top: -10px; 138 | } 139 | .news-item .host, 140 | .news-item .meta { 141 | font-size: 0.85em; 142 | color: #828282; 143 | } 144 | .news-item .host a, 145 | .news-item .meta a { 146 | color: #828282; 147 | text-decoration: underline; 148 | } 149 | .news-item .host a:hover, 150 | .news-item .meta a:hover { 151 | color: #f60; 152 | } 153 | .item-view-header { 154 | background-color: #fff; 155 | padding: 1.8em 2em 1em; 156 | box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); 157 | } 158 | .item-view-header h1 { 159 | display: inline; 160 | font-size: 1.5em; 161 | margin: 0; 162 | margin-right: 0.5em; 163 | } 164 | .item-view-header .host, 165 | .item-view-header .meta, 166 | .item-view-header .meta a { 167 | color: #828282; 168 | } 169 | .item-view-header .meta a { 170 | text-decoration: underline; 171 | } 172 | .item-view-comments { 173 | background-color: #fff; 174 | margin-top: 10px; 175 | padding: 0 2em 0.5em; 176 | } 177 | .item-view-comments-header { 178 | margin: 0; 179 | font-size: 1.1em; 180 | padding: 1em 0; 181 | position: relative; 182 | } 183 | .item-view-comments-header .spinner { 184 | display: inline-block; 185 | margin: -15px 0; 186 | } 187 | .comment-children { 188 | list-style-type: none; 189 | padding: 0; 190 | margin: 0; 191 | } 192 | @media (max-width: 600px) { 193 | .item-view-header h1 { 194 | font-size: 1.25em; 195 | } 196 | } 197 | .comment-children .comment-children { 198 | margin-left: 1.5em; 199 | } 200 | .comment { 201 | border-top: 1px solid #eee; 202 | position: relative; 203 | } 204 | .comment .by, 205 | .comment .text, 206 | .comment .toggle { 207 | font-size: 0.9em; 208 | margin: 1em 0; 209 | } 210 | .comment .by { 211 | color: #828282; 212 | } 213 | .comment .by a { 214 | color: #828282; 215 | text-decoration: underline; 216 | } 217 | .comment .text { 218 | overflow-wrap: break-word; 219 | } 220 | .comment .text a:hover { 221 | color: #f60; 222 | } 223 | .comment .text pre { 224 | white-space: pre-wrap; 225 | } 226 | .comment .toggle { 227 | background-color: #fffbf2; 228 | padding: 0.3em 0.5em; 229 | border-radius: 4px; 230 | } 231 | .comment .toggle a { 232 | color: #828282; 233 | cursor: pointer; 234 | } 235 | .comment .toggle.open { 236 | padding: 0; 237 | background-color: transparent; 238 | margin-bottom: -0.5em; 239 | } 240 | .user-view { 241 | background-color: #fff; 242 | box-sizing: border-box; 243 | padding: 2em 3em; 244 | } 245 | .user-view h1 { 246 | margin: 0; 247 | font-size: 1.5em; 248 | } 249 | .user-view .meta { 250 | list-style-type: none; 251 | padding: 0; 252 | } 253 | .user-view .label { 254 | display: inline-block; 255 | min-width: 4em; 256 | } 257 | .user-view .about { 258 | margin: 1em 0; 259 | } 260 | .user-view .links a { 261 | text-decoration: underline; 262 | } 263 | -------------------------------------------------------------------------------- /src/components/story.marko: -------------------------------------------------------------------------------- 1 | $ const { story } = input; 2 | 3 | ${story.points} 4 | 5 | 6 | ${story.title} 7 | (${story.domain}) 8 | 9 | ${story.title} 10 | 11 |
12 | 13 | 14 | by 15 | ${story.user} 16 | ${` ${story.time_ago} | `} 17 | 18 | ${story.comments_count ? `${story.comments_count} comments` : "discuss"} 19 | 20 | 21 | ${story.time_ago} 22 | 23 | 24 | ${story.type} 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/components/toggle.marko: -------------------------------------------------------------------------------- 1 | class { 2 | onCreate() { 3 | this.state = { open: true }; 4 | } 5 | toggle() { 6 | this.state.open = !this.state.open; 7 | } 8 | } 9 | 10 | 13 | 14 | <${input.renderBody}/> 15 | 16 | -------------------------------------------------------------------------------- /src/dev-env.js: -------------------------------------------------------------------------------- 1 | import { Blob } from "buffer"; 2 | import Streams from "stream/web"; 3 | import { webcrypto as crypto } from "crypto"; 4 | import { TextEncoder, TextDecoder } from "util"; 5 | import { fetch, File, FormData, Headers, Request, Response } from "undici"; 6 | 7 | // Expose similar globals to what is available in a worker. 8 | Object.assign(globalThis, Streams, { 9 | Blob, 10 | crypto, 11 | EventTarget, 12 | fetch, 13 | File, 14 | FormData, 15 | Headers, 16 | Request, 17 | Response, 18 | TextDecoder, 19 | TextEncoder 20 | }); 21 | -------------------------------------------------------------------------------- /src/dev-server.js: -------------------------------------------------------------------------------- 1 | import "./dev-env.js"; 2 | import { once } from "events"; 3 | import { Readable } from "stream"; 4 | import { createServer } from "vite"; 5 | 6 | const devServer = await createServer({ server: { middlewareMode: "ssr" } }); 7 | const server = devServer.middlewares 8 | .use(async (req, res, next) => { 9 | try { 10 | const url = new URL(req.url, `http://${req.headers.host}`); 11 | const { router } = await devServer.ssrLoadModule("./src/router.js"); 12 | const match = router.find(url.pathname); 13 | if (!match) return next(); 14 | 15 | // Copy all of the info from the web style Response to the node ServerResponse. 16 | const { handler, params } = match; 17 | const webRes = await handler({ 18 | url, 19 | params, 20 | request: new Request(url, { 21 | method: req.method, 22 | headers: req.headers, 23 | referrer: req.headers.referer || "", 24 | body: req.method === "POST" ? req : null, 25 | }), 26 | }); 27 | 28 | res.statusCode = webRes.status; 29 | res.statusMessage = webRes.statusText; 30 | 31 | for (const [name, value] of webRes.headers) { 32 | res.setHeader(name, value); 33 | } 34 | 35 | if (webRes.body) { 36 | const readable = Readable.from(webRes.body); 37 | readable.pipe(res); 38 | await once(readable, "end"); 39 | } else { 40 | res.end(); 41 | } 42 | } catch (err) { 43 | devServer.ssrFixStacktrace(err); 44 | return next(err); 45 | } 46 | }) 47 | .listen(process.env.PORT || 3000); 48 | 49 | await once(server, "listening"); 50 | console.log(`Listening at: ${`http://localhost:${server.address().port}`}`); 51 | -------------------------------------------------------------------------------- /src/pages/index.marko: -------------------------------------------------------------------------------- 1 | import { getStories } from "../api"; 2 | $ const { searchParams } = input.url; 3 | $ const stories = searchParams.get("stories") || "top"; 4 | $ const page = parseInt(searchParams.get("page"), 10) || 1; 5 | 6 | 7 | 8 | 9 | <@then|storyList|> 10 | 11 | 1)> 12 | 19 | < prev 20 | 21 | 22 | 23 | 24 | page ${page} 25 | 26 | 27 | = 28)> 28 | 35 | more > 36 | 37 | 38 | 39 | 40 | 41 |
    42 | 43 | 44 | 45 |
46 | 47 | 48 | <@placeholder>Loading... 49 | 50 | 51 |
52 | -------------------------------------------------------------------------------- /src/pages/stories.$id.marko: -------------------------------------------------------------------------------- 1 | import { getStory } from "../api"; 2 | 3 | 4 | 5 | 6 | <@then|story|> 7 | 8 |

${story.title}

9 | 10 | ${story.points} points | by 11 | ${story.user} 12 | ${` ${story.time_ago}`} 13 |

14 | 15 | 16 | 17 | ${story.comments_count 18 | ? `${story.comments_count} comments` 19 | : "No comments yet."} 20 |

21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 | -------------------------------------------------------------------------------- /src/pages/users.$id.marko: -------------------------------------------------------------------------------- 1 | import { getUser } from "../api"; 2 | 3 | 4 | 5 | 6 | <@then|user|> 7 |

User : ${user.id}

8 | 9 |
  • Created: ${user.created}
  • 10 |
  • Karma: ${user.karma}
  • 11 | 12 | $!{user.about} 13 | 14 | 15 | 16 | 17 | submissions 18 | 19 | | 20 | 21 | comments 22 | 23 |

    24 | 25 | 26 | 27 |
    28 | -------------------------------------------------------------------------------- /src/router.js: -------------------------------------------------------------------------------- 1 | import Router from "url-router"; 2 | 3 | const entries = import.meta.globEager("./pages/*(!(components/*)*/)*.marko"); 4 | const routes = {}; 5 | 6 | for (const entry in entries) { 7 | routes[ 8 | // Below we map file system paths to routes for all of the Marko files found. 9 | entry 10 | .replace(/^\.\/pages/, "") // remove ./pages prefix 11 | .replace(/\.[^\.]+$/, "") // remove extension 12 | .replace(/[/.]\$/g, "/:") // replace /$param and .$param with /:param 13 | .replace(/(?:\/index)+(\/|$)/g, "/") // replace /index with / 14 | ] = (ctx) => { 15 | return new Response(entries[entry].default.stream(ctx), { 16 | status: 200, 17 | headers: { "content-type": "text/html;charset=UTF-8" }, 18 | }); 19 | }; 20 | } 21 | 22 | export const router = new Router(routes); 23 | -------------------------------------------------------------------------------- /src/worker.js: -------------------------------------------------------------------------------- 1 | import { getAssetFromKV, NotFoundError } from "@cloudflare/kv-asset-handler"; 2 | import { router } from "./router"; 3 | 4 | addEventListener("fetch", (event) => { 5 | event.respondWith(handleEvent(event)); 6 | }); 7 | 8 | async function handleEvent(event) { 9 | try { 10 | return await getAssetFromKV(event); 11 | } catch (err) { 12 | if (err instanceof NotFoundError) { 13 | const { request } = event; 14 | const url = new URL(request.url); 15 | const match = router.find(url.pathname); 16 | 17 | if (match) { 18 | const { handler, params } = match; 19 | return handler({ 20 | url, 21 | params, 22 | request, 23 | }); 24 | } 25 | 26 | return new Response(null, { status: 404 }); 27 | } 28 | 29 | return new Response(null, { status: 500 }); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "vite"; 2 | import marko from "@marko/vite"; 3 | 4 | const { NODE_ENV } = process.env; 5 | const isProd = NODE_ENV === "production"; 6 | 7 | export default defineConfig({ 8 | plugins: [ 9 | marko(), 10 | { 11 | apply: "build", 12 | name: "worker-condition", 13 | config(options) { 14 | if (options.build.ssr && options.ssr?.target === "webworker") { 15 | // Add the `worker` export condition to tell Marko to load worker compatible stream apis. 16 | // Remove when https://github.com/vitejs/vite/issues/6401 is resolved. 17 | options.resolve = { 18 | conditions: ["worker"], 19 | }; 20 | } 21 | 22 | return options; 23 | }, 24 | }, 25 | ], 26 | build: { 27 | minify: true, 28 | outDir: "dist", // Server and client builds should output assets to the same folder. 29 | emptyOutDir: false, // Avoid server / client deleting files from each other. 30 | rollupOptions: { 31 | output: { 32 | // Output ESM for the server build also. 33 | // Remove when https://github.com/vitejs/vite/issues/2152 is resolved. 34 | format: "es", 35 | }, 36 | }, 37 | }, 38 | ssr: { 39 | target: "webworker", 40 | noExternal: isProd, 41 | } 42 | }); 43 | -------------------------------------------------------------------------------- /wrangler.toml: -------------------------------------------------------------------------------- 1 | name = "marko-hackernews" 2 | type = "javascript" 3 | workers_dev = true 4 | compatibility_date = "2022-01-06" 5 | 6 | [site] 7 | bucket = "./dist" 8 | entry-point = "" 9 | include = ["assets/**"] 10 | 11 | [build] 12 | command = "npm run build" 13 | 14 | [build.upload] 15 | format = "service-worker" 16 | --------------------------------------------------------------------------------