├── .gitignore ├── README.md ├── package-lock.json ├── package.json ├── public ├── favicon.png ├── global.css └── index.html ├── rollup.config.js ├── scripts └── setupTypeScript.js ├── src ├── App.svelte ├── Drawer.svelte ├── index.js └── main.js └── types ├── Drawer.svelte.d.ts └── index.d.ts /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules/ 2 | /public/build/ 3 | 4 | .DS_Store 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # Svelte Drawer 3 | 4 | [Check out the demo](https://svelte.dev/repl/32443b9fad6447fe899a60596537db31?version=3.24.1) 5 | 6 | A Svelte component for a drawer that slides in from the side of the screen. 7 | 8 | Features: 9 | * CSS transitions 10 | * SSR Safe 11 | * Top, right, bottom, or left placement 12 | * Lock body scrolling when open 13 | 14 | ## Usage 15 | 16 | ```bash 17 | npm install svelte-drawer-component 18 | ``` 19 | 20 | ```html 21 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | ``` 32 | 33 | The open state for the drawer is handled entirely by the user. 34 | This design gives the most control and flexibility over drawer functionality and styling. 35 | This means that if you want the drawer to close when the user clicks away, you need to listen for that event. 36 | 37 | ```html 38 | open = false}> 39 | 40 | ``` 41 | 42 | For custom size and transition duration, use the props. 43 | Otherwise, if you want to style the drawer, then you can reach into the classes. 44 | 45 | ```html 46 |
47 | 48 |
49 | 50 | 60 | ``` 61 | 62 | ## Parameters 63 | 64 | | Parameter | Default | Description | 65 | |-----------|---------|-------------------------------------------------| 66 | | open | false | Two-way binding for open state of the component | 67 | | placement | left | Side of screen to slide out from | 68 | | size | null | Panel size (e.g. '100px', '10em', '70%', null) | 69 | | duration | 0.2 | Transition duration in seconds | 70 | 71 | By default, the `size` of the panel is set to null and stretches to the size of its parent container. -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "svelte-drawer-component", 3 | "version": "1.2.1", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "svelte-drawer-component", 9 | "version": "1.2.1", 10 | "devDependencies": { 11 | "@rollup/plugin-commonjs": "^14.0.0", 12 | "@rollup/plugin-node-resolve": "^8.0.0", 13 | "rollup": "^2.3.4", 14 | "rollup-plugin-livereload": "^2.0.0", 15 | "rollup-plugin-svelte": "^6.0.0", 16 | "rollup-plugin-terser": "^7.0.0", 17 | "sirv-cli": "^2.0.2", 18 | "svelte": "^3.0.0" 19 | } 20 | }, 21 | "node_modules/@babel/code-frame": { 22 | "version": "7.10.4", 23 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", 24 | "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", 25 | "dev": true, 26 | "dependencies": { 27 | "@babel/highlight": "^7.10.4" 28 | } 29 | }, 30 | "node_modules/@babel/helper-validator-identifier": { 31 | "version": "7.10.4", 32 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", 33 | "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", 34 | "dev": true 35 | }, 36 | "node_modules/@babel/highlight": { 37 | "version": "7.10.4", 38 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", 39 | "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", 40 | "dev": true, 41 | "dependencies": { 42 | "@babel/helper-validator-identifier": "^7.10.4", 43 | "chalk": "^2.0.0", 44 | "js-tokens": "^4.0.0" 45 | } 46 | }, 47 | "node_modules/@polka/url": { 48 | "version": "1.0.0-next.21", 49 | "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", 50 | "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", 51 | "dev": true 52 | }, 53 | "node_modules/@rollup/plugin-commonjs": { 54 | "version": "14.0.0", 55 | "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-14.0.0.tgz", 56 | "integrity": "sha512-+PSmD9ePwTAeU106i9FRdc+Zb3XUWyW26mo5Atr2mk82hor8+nPwkztEjFo8/B1fJKfaQDg9aM2bzQkjhi7zOw==", 57 | "dev": true, 58 | "dependencies": { 59 | "@rollup/pluginutils": "^3.0.8", 60 | "commondir": "^1.0.1", 61 | "estree-walker": "^1.0.1", 62 | "glob": "^7.1.2", 63 | "is-reference": "^1.1.2", 64 | "magic-string": "^0.25.2", 65 | "resolve": "^1.11.0" 66 | }, 67 | "engines": { 68 | "node": ">= 8.0.0" 69 | }, 70 | "peerDependencies": { 71 | "rollup": "^2.3.4" 72 | } 73 | }, 74 | "node_modules/@rollup/plugin-node-resolve": { 75 | "version": "8.4.0", 76 | "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz", 77 | "integrity": "sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ==", 78 | "dev": true, 79 | "dependencies": { 80 | "@rollup/pluginutils": "^3.1.0", 81 | "@types/resolve": "1.17.1", 82 | "builtin-modules": "^3.1.0", 83 | "deep-freeze": "^0.0.1", 84 | "deepmerge": "^4.2.2", 85 | "is-module": "^1.0.0", 86 | "resolve": "^1.17.0" 87 | }, 88 | "engines": { 89 | "node": ">= 8.0.0" 90 | }, 91 | "peerDependencies": { 92 | "rollup": "^1.20.0||^2.0.0" 93 | } 94 | }, 95 | "node_modules/@rollup/pluginutils": { 96 | "version": "3.1.0", 97 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", 98 | "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", 99 | "dev": true, 100 | "dependencies": { 101 | "@types/estree": "0.0.39", 102 | "estree-walker": "^1.0.1", 103 | "picomatch": "^2.2.2" 104 | }, 105 | "engines": { 106 | "node": ">= 8.0.0" 107 | }, 108 | "peerDependencies": { 109 | "rollup": "^1.20.0||^2.0.0" 110 | } 111 | }, 112 | "node_modules/@types/estree": { 113 | "version": "0.0.39", 114 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", 115 | "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", 116 | "dev": true 117 | }, 118 | "node_modules/@types/node": { 119 | "version": "14.14.9", 120 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.9.tgz", 121 | "integrity": "sha512-JsoLXFppG62tWTklIoO4knA+oDTYsmqWxHRvd4lpmfQRNhX6osheUOWETP2jMoV/2bEHuMra8Pp3Dmo/stBFcw==", 122 | "dev": true 123 | }, 124 | "node_modules/@types/resolve": { 125 | "version": "1.17.1", 126 | "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", 127 | "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", 128 | "dev": true, 129 | "dependencies": { 130 | "@types/node": "*" 131 | } 132 | }, 133 | "node_modules/ansi-styles": { 134 | "version": "3.2.1", 135 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 136 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 137 | "dev": true, 138 | "dependencies": { 139 | "color-convert": "^1.9.0" 140 | }, 141 | "engines": { 142 | "node": ">=4" 143 | } 144 | }, 145 | "node_modules/anymatch": { 146 | "version": "3.1.1", 147 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", 148 | "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", 149 | "dev": true, 150 | "dependencies": { 151 | "normalize-path": "^3.0.0", 152 | "picomatch": "^2.0.4" 153 | }, 154 | "engines": { 155 | "node": ">= 8" 156 | } 157 | }, 158 | "node_modules/async-limiter": { 159 | "version": "1.0.1", 160 | "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", 161 | "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", 162 | "dev": true 163 | }, 164 | "node_modules/balanced-match": { 165 | "version": "1.0.0", 166 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 167 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 168 | "dev": true 169 | }, 170 | "node_modules/binary-extensions": { 171 | "version": "2.1.0", 172 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", 173 | "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", 174 | "dev": true, 175 | "engines": { 176 | "node": ">=8" 177 | } 178 | }, 179 | "node_modules/brace-expansion": { 180 | "version": "1.1.11", 181 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 182 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 183 | "dev": true, 184 | "dependencies": { 185 | "balanced-match": "^1.0.0", 186 | "concat-map": "0.0.1" 187 | } 188 | }, 189 | "node_modules/braces": { 190 | "version": "3.0.2", 191 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 192 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 193 | "dev": true, 194 | "dependencies": { 195 | "fill-range": "^7.0.1" 196 | }, 197 | "engines": { 198 | "node": ">=8" 199 | } 200 | }, 201 | "node_modules/buffer-from": { 202 | "version": "1.1.1", 203 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 204 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", 205 | "dev": true 206 | }, 207 | "node_modules/builtin-modules": { 208 | "version": "3.1.0", 209 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", 210 | "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", 211 | "dev": true, 212 | "engines": { 213 | "node": ">=6" 214 | } 215 | }, 216 | "node_modules/chalk": { 217 | "version": "2.4.2", 218 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 219 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 220 | "dev": true, 221 | "dependencies": { 222 | "ansi-styles": "^3.2.1", 223 | "escape-string-regexp": "^1.0.5", 224 | "supports-color": "^5.3.0" 225 | }, 226 | "engines": { 227 | "node": ">=4" 228 | } 229 | }, 230 | "node_modules/chokidar": { 231 | "version": "3.4.3", 232 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", 233 | "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", 234 | "dev": true, 235 | "dependencies": { 236 | "anymatch": "~3.1.1", 237 | "braces": "~3.0.2", 238 | "glob-parent": "~5.1.0", 239 | "is-binary-path": "~2.1.0", 240 | "is-glob": "~4.0.1", 241 | "normalize-path": "~3.0.0", 242 | "readdirp": "~3.5.0" 243 | }, 244 | "engines": { 245 | "node": ">= 8.10.0" 246 | }, 247 | "optionalDependencies": { 248 | "fsevents": "~2.1.2" 249 | } 250 | }, 251 | "node_modules/color-convert": { 252 | "version": "1.9.3", 253 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 254 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 255 | "dev": true, 256 | "dependencies": { 257 | "color-name": "1.1.3" 258 | } 259 | }, 260 | "node_modules/color-name": { 261 | "version": "1.1.3", 262 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 263 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 264 | "dev": true 265 | }, 266 | "node_modules/commander": { 267 | "version": "2.20.3", 268 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", 269 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", 270 | "dev": true 271 | }, 272 | "node_modules/commondir": { 273 | "version": "1.0.1", 274 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", 275 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", 276 | "dev": true 277 | }, 278 | "node_modules/concat-map": { 279 | "version": "0.0.1", 280 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 281 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 282 | "dev": true 283 | }, 284 | "node_modules/console-clear": { 285 | "version": "1.1.1", 286 | "resolved": "https://registry.npmjs.org/console-clear/-/console-clear-1.1.1.tgz", 287 | "integrity": "sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ==", 288 | "dev": true, 289 | "engines": { 290 | "node": ">=4" 291 | } 292 | }, 293 | "node_modules/deep-freeze": { 294 | "version": "0.0.1", 295 | "resolved": "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz", 296 | "integrity": "sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=", 297 | "dev": true 298 | }, 299 | "node_modules/deepmerge": { 300 | "version": "4.2.2", 301 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", 302 | "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", 303 | "dev": true, 304 | "engines": { 305 | "node": ">=0.10.0" 306 | } 307 | }, 308 | "node_modules/escape-string-regexp": { 309 | "version": "1.0.5", 310 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 311 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 312 | "dev": true, 313 | "engines": { 314 | "node": ">=0.8.0" 315 | } 316 | }, 317 | "node_modules/estree-walker": { 318 | "version": "1.0.1", 319 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", 320 | "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", 321 | "dev": true 322 | }, 323 | "node_modules/fill-range": { 324 | "version": "7.0.1", 325 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 326 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 327 | "dev": true, 328 | "dependencies": { 329 | "to-regex-range": "^5.0.1" 330 | }, 331 | "engines": { 332 | "node": ">=8" 333 | } 334 | }, 335 | "node_modules/fs.realpath": { 336 | "version": "1.0.0", 337 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 338 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 339 | "dev": true 340 | }, 341 | "node_modules/fsevents": { 342 | "version": "2.1.3", 343 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", 344 | "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", 345 | "deprecated": "\"Please update to latest v2.3 or v2.2\"", 346 | "dev": true, 347 | "hasInstallScript": true, 348 | "optional": true, 349 | "os": [ 350 | "darwin" 351 | ], 352 | "engines": { 353 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 354 | } 355 | }, 356 | "node_modules/function-bind": { 357 | "version": "1.1.1", 358 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 359 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 360 | "dev": true 361 | }, 362 | "node_modules/get-port": { 363 | "version": "3.2.0", 364 | "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", 365 | "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=", 366 | "dev": true, 367 | "engines": { 368 | "node": ">=4" 369 | } 370 | }, 371 | "node_modules/glob": { 372 | "version": "7.1.6", 373 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 374 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 375 | "dev": true, 376 | "dependencies": { 377 | "fs.realpath": "^1.0.0", 378 | "inflight": "^1.0.4", 379 | "inherits": "2", 380 | "minimatch": "^3.0.4", 381 | "once": "^1.3.0", 382 | "path-is-absolute": "^1.0.0" 383 | }, 384 | "engines": { 385 | "node": "*" 386 | }, 387 | "funding": { 388 | "url": "https://github.com/sponsors/isaacs" 389 | } 390 | }, 391 | "node_modules/glob-parent": { 392 | "version": "5.1.1", 393 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", 394 | "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", 395 | "dev": true, 396 | "dependencies": { 397 | "is-glob": "^4.0.1" 398 | }, 399 | "engines": { 400 | "node": ">= 6" 401 | } 402 | }, 403 | "node_modules/has": { 404 | "version": "1.0.3", 405 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 406 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 407 | "dev": true, 408 | "dependencies": { 409 | "function-bind": "^1.1.1" 410 | }, 411 | "engines": { 412 | "node": ">= 0.4.0" 413 | } 414 | }, 415 | "node_modules/has-flag": { 416 | "version": "3.0.0", 417 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 418 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 419 | "dev": true, 420 | "engines": { 421 | "node": ">=4" 422 | } 423 | }, 424 | "node_modules/inflight": { 425 | "version": "1.0.6", 426 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 427 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 428 | "dev": true, 429 | "dependencies": { 430 | "once": "^1.3.0", 431 | "wrappy": "1" 432 | } 433 | }, 434 | "node_modules/inherits": { 435 | "version": "2.0.4", 436 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 437 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 438 | "dev": true 439 | }, 440 | "node_modules/is-binary-path": { 441 | "version": "2.1.0", 442 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 443 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 444 | "dev": true, 445 | "dependencies": { 446 | "binary-extensions": "^2.0.0" 447 | }, 448 | "engines": { 449 | "node": ">=8" 450 | } 451 | }, 452 | "node_modules/is-core-module": { 453 | "version": "2.1.0", 454 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", 455 | "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", 456 | "dev": true, 457 | "dependencies": { 458 | "has": "^1.0.3" 459 | }, 460 | "funding": { 461 | "url": "https://github.com/sponsors/ljharb" 462 | } 463 | }, 464 | "node_modules/is-extglob": { 465 | "version": "2.1.1", 466 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 467 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 468 | "dev": true, 469 | "engines": { 470 | "node": ">=0.10.0" 471 | } 472 | }, 473 | "node_modules/is-glob": { 474 | "version": "4.0.1", 475 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", 476 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", 477 | "dev": true, 478 | "dependencies": { 479 | "is-extglob": "^2.1.1" 480 | }, 481 | "engines": { 482 | "node": ">=0.10.0" 483 | } 484 | }, 485 | "node_modules/is-module": { 486 | "version": "1.0.0", 487 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", 488 | "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", 489 | "dev": true 490 | }, 491 | "node_modules/is-number": { 492 | "version": "7.0.0", 493 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 494 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 495 | "dev": true, 496 | "engines": { 497 | "node": ">=0.12.0" 498 | } 499 | }, 500 | "node_modules/is-reference": { 501 | "version": "1.2.1", 502 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", 503 | "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", 504 | "dev": true, 505 | "dependencies": { 506 | "@types/estree": "*" 507 | } 508 | }, 509 | "node_modules/jest-worker": { 510 | "version": "26.6.2", 511 | "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", 512 | "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", 513 | "dev": true, 514 | "dependencies": { 515 | "@types/node": "*", 516 | "merge-stream": "^2.0.0", 517 | "supports-color": "^7.0.0" 518 | }, 519 | "engines": { 520 | "node": ">= 10.13.0" 521 | } 522 | }, 523 | "node_modules/jest-worker/node_modules/has-flag": { 524 | "version": "4.0.0", 525 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 526 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 527 | "dev": true, 528 | "engines": { 529 | "node": ">=8" 530 | } 531 | }, 532 | "node_modules/jest-worker/node_modules/supports-color": { 533 | "version": "7.2.0", 534 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 535 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 536 | "dev": true, 537 | "dependencies": { 538 | "has-flag": "^4.0.0" 539 | }, 540 | "engines": { 541 | "node": ">=8" 542 | } 543 | }, 544 | "node_modules/js-tokens": { 545 | "version": "4.0.0", 546 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 547 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 548 | "dev": true 549 | }, 550 | "node_modules/kleur": { 551 | "version": "4.1.4", 552 | "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", 553 | "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", 554 | "dev": true, 555 | "engines": { 556 | "node": ">=6" 557 | } 558 | }, 559 | "node_modules/livereload": { 560 | "version": "0.9.1", 561 | "resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.1.tgz", 562 | "integrity": "sha512-9g7sua11kkyZNo2hLRCG3LuZZwqexoyEyecSlV8cAsfAVVCZqLzVir6XDqmH0r+Vzgnd5LrdHDMyjtFnJQLAYw==", 563 | "dev": true, 564 | "dependencies": { 565 | "chokidar": "^3.3.0", 566 | "livereload-js": "^3.1.0", 567 | "opts": ">= 1.2.0", 568 | "ws": "^6.2.1" 569 | }, 570 | "bin": { 571 | "livereload": "bin/livereload.js" 572 | }, 573 | "engines": { 574 | "node": ">=8.0.0" 575 | } 576 | }, 577 | "node_modules/livereload-js": { 578 | "version": "3.3.1", 579 | "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.3.1.tgz", 580 | "integrity": "sha512-CBu1gTEfzVhlOK1WASKAAJ9Qx1fHECTq0SUB67sfxwQssopTyvzqTlgl+c0h9pZ6V+Fzd2rc510ppuNusg9teQ==", 581 | "dev": true 582 | }, 583 | "node_modules/local-access": { 584 | "version": "1.1.0", 585 | "resolved": "https://registry.npmjs.org/local-access/-/local-access-1.1.0.tgz", 586 | "integrity": "sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw==", 587 | "dev": true, 588 | "engines": { 589 | "node": ">=6" 590 | } 591 | }, 592 | "node_modules/magic-string": { 593 | "version": "0.25.7", 594 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", 595 | "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", 596 | "dev": true, 597 | "dependencies": { 598 | "sourcemap-codec": "^1.4.4" 599 | } 600 | }, 601 | "node_modules/merge-stream": { 602 | "version": "2.0.0", 603 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", 604 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", 605 | "dev": true 606 | }, 607 | "node_modules/minimatch": { 608 | "version": "3.0.4", 609 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 610 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 611 | "dev": true, 612 | "dependencies": { 613 | "brace-expansion": "^1.1.7" 614 | }, 615 | "engines": { 616 | "node": "*" 617 | } 618 | }, 619 | "node_modules/mri": { 620 | "version": "1.1.6", 621 | "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.6.tgz", 622 | "integrity": "sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ==", 623 | "dev": true, 624 | "engines": { 625 | "node": ">=4" 626 | } 627 | }, 628 | "node_modules/mrmime": { 629 | "version": "1.0.0", 630 | "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.0.tgz", 631 | "integrity": "sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ==", 632 | "dev": true, 633 | "engines": { 634 | "node": ">=10" 635 | } 636 | }, 637 | "node_modules/normalize-path": { 638 | "version": "3.0.0", 639 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 640 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 641 | "dev": true, 642 | "engines": { 643 | "node": ">=0.10.0" 644 | } 645 | }, 646 | "node_modules/once": { 647 | "version": "1.4.0", 648 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 649 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 650 | "dev": true, 651 | "dependencies": { 652 | "wrappy": "1" 653 | } 654 | }, 655 | "node_modules/opts": { 656 | "version": "2.0.2", 657 | "resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz", 658 | "integrity": "sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==", 659 | "dev": true 660 | }, 661 | "node_modules/path-is-absolute": { 662 | "version": "1.0.1", 663 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 664 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 665 | "dev": true, 666 | "engines": { 667 | "node": ">=0.10.0" 668 | } 669 | }, 670 | "node_modules/path-parse": { 671 | "version": "1.0.6", 672 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 673 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", 674 | "dev": true 675 | }, 676 | "node_modules/picomatch": { 677 | "version": "2.2.2", 678 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", 679 | "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", 680 | "dev": true, 681 | "engines": { 682 | "node": ">=8.6" 683 | }, 684 | "funding": { 685 | "url": "https://github.com/sponsors/jonschlinkert" 686 | } 687 | }, 688 | "node_modules/randombytes": { 689 | "version": "2.1.0", 690 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", 691 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", 692 | "dev": true, 693 | "dependencies": { 694 | "safe-buffer": "^5.1.0" 695 | } 696 | }, 697 | "node_modules/readdirp": { 698 | "version": "3.5.0", 699 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", 700 | "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", 701 | "dev": true, 702 | "dependencies": { 703 | "picomatch": "^2.2.1" 704 | }, 705 | "engines": { 706 | "node": ">=8.10.0" 707 | } 708 | }, 709 | "node_modules/require-relative": { 710 | "version": "0.8.7", 711 | "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", 712 | "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=", 713 | "dev": true 714 | }, 715 | "node_modules/resolve": { 716 | "version": "1.19.0", 717 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", 718 | "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", 719 | "dev": true, 720 | "dependencies": { 721 | "is-core-module": "^2.1.0", 722 | "path-parse": "^1.0.6" 723 | }, 724 | "funding": { 725 | "url": "https://github.com/sponsors/ljharb" 726 | } 727 | }, 728 | "node_modules/rollup": { 729 | "version": "2.33.3", 730 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.33.3.tgz", 731 | "integrity": "sha512-RpayhPTe4Gu/uFGCmk7Gp5Z9Qic2VsqZ040G+KZZvsZYdcuWaJg678JeDJJvJeEQXminu24a2au+y92CUWVd+w==", 732 | "dev": true, 733 | "bin": { 734 | "rollup": "dist/bin/rollup" 735 | }, 736 | "engines": { 737 | "node": ">=10.0.0" 738 | }, 739 | "optionalDependencies": { 740 | "fsevents": "~2.1.2" 741 | } 742 | }, 743 | "node_modules/rollup-plugin-livereload": { 744 | "version": "2.0.0", 745 | "resolved": "https://registry.npmjs.org/rollup-plugin-livereload/-/rollup-plugin-livereload-2.0.0.tgz", 746 | "integrity": "sha512-oC/8NqumGYuphkqrfszOHUUIwzKsaHBICw6QRwT5uD07gvePTS+HW+GFwu6f9K8W02CUuTvtIM9AWJrbj4wE1A==", 747 | "dev": true, 748 | "dependencies": { 749 | "livereload": "^0.9.1" 750 | }, 751 | "engines": { 752 | "node": ">=8.3" 753 | } 754 | }, 755 | "node_modules/rollup-plugin-svelte": { 756 | "version": "6.1.1", 757 | "resolved": "https://registry.npmjs.org/rollup-plugin-svelte/-/rollup-plugin-svelte-6.1.1.tgz", 758 | "integrity": "sha512-ijnm0pH1ScrY4uxwaNXBpNVejVzpL2769hIEbAlnqNUWZrffLspu5/k9/l/Wsj3NrEHLQ6wCKGagVJonyfN7ow==", 759 | "dev": true, 760 | "dependencies": { 761 | "require-relative": "^0.8.7", 762 | "rollup-pluginutils": "^2.8.2", 763 | "sourcemap-codec": "^1.4.8" 764 | }, 765 | "peerDependencies": { 766 | "rollup": ">=1.19.2", 767 | "svelte": "*" 768 | } 769 | }, 770 | "node_modules/rollup-plugin-terser": { 771 | "version": "7.0.2", 772 | "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", 773 | "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", 774 | "dev": true, 775 | "dependencies": { 776 | "@babel/code-frame": "^7.10.4", 777 | "jest-worker": "^26.2.1", 778 | "serialize-javascript": "^4.0.0", 779 | "terser": "^5.0.0" 780 | }, 781 | "peerDependencies": { 782 | "rollup": "^2.0.0" 783 | } 784 | }, 785 | "node_modules/rollup-pluginutils": { 786 | "version": "2.8.2", 787 | "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", 788 | "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", 789 | "dev": true, 790 | "dependencies": { 791 | "estree-walker": "^0.6.1" 792 | } 793 | }, 794 | "node_modules/rollup-pluginutils/node_modules/estree-walker": { 795 | "version": "0.6.1", 796 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", 797 | "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", 798 | "dev": true 799 | }, 800 | "node_modules/sade": { 801 | "version": "1.7.4", 802 | "resolved": "https://registry.npmjs.org/sade/-/sade-1.7.4.tgz", 803 | "integrity": "sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==", 804 | "dev": true, 805 | "dependencies": { 806 | "mri": "^1.1.0" 807 | }, 808 | "engines": { 809 | "node": ">= 6" 810 | } 811 | }, 812 | "node_modules/safe-buffer": { 813 | "version": "5.2.1", 814 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 815 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 816 | "dev": true, 817 | "funding": [ 818 | { 819 | "type": "github", 820 | "url": "https://github.com/sponsors/feross" 821 | }, 822 | { 823 | "type": "patreon", 824 | "url": "https://www.patreon.com/feross" 825 | }, 826 | { 827 | "type": "consulting", 828 | "url": "https://feross.org/support" 829 | } 830 | ] 831 | }, 832 | "node_modules/semiver": { 833 | "version": "1.1.0", 834 | "resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz", 835 | "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==", 836 | "dev": true, 837 | "engines": { 838 | "node": ">=6" 839 | } 840 | }, 841 | "node_modules/serialize-javascript": { 842 | "version": "4.0.0", 843 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", 844 | "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", 845 | "dev": true, 846 | "dependencies": { 847 | "randombytes": "^2.1.0" 848 | } 849 | }, 850 | "node_modules/sirv": { 851 | "version": "2.0.2", 852 | "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz", 853 | "integrity": "sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==", 854 | "dev": true, 855 | "dependencies": { 856 | "@polka/url": "^1.0.0-next.20", 857 | "mrmime": "^1.0.0", 858 | "totalist": "^3.0.0" 859 | }, 860 | "engines": { 861 | "node": ">= 10" 862 | } 863 | }, 864 | "node_modules/sirv-cli": { 865 | "version": "2.0.2", 866 | "resolved": "https://registry.npmjs.org/sirv-cli/-/sirv-cli-2.0.2.tgz", 867 | "integrity": "sha512-OtSJDwxsF1NWHc7ps3Sa0s+dPtP15iQNJzfKVz+MxkEo3z72mCD+yu30ct79rPr0CaV1HXSOBp+MIY5uIhHZ1A==", 868 | "dev": true, 869 | "dependencies": { 870 | "console-clear": "^1.1.0", 871 | "get-port": "^3.2.0", 872 | "kleur": "^4.1.4", 873 | "local-access": "^1.0.1", 874 | "sade": "^1.6.0", 875 | "semiver": "^1.0.0", 876 | "sirv": "^2.0.0", 877 | "tinydate": "^1.0.0" 878 | }, 879 | "bin": { 880 | "sirv": "bin.js" 881 | }, 882 | "engines": { 883 | "node": ">= 10" 884 | } 885 | }, 886 | "node_modules/source-map": { 887 | "version": "0.7.3", 888 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", 889 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", 890 | "dev": true, 891 | "engines": { 892 | "node": ">= 8" 893 | } 894 | }, 895 | "node_modules/source-map-support": { 896 | "version": "0.5.19", 897 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", 898 | "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", 899 | "dev": true, 900 | "dependencies": { 901 | "buffer-from": "^1.0.0", 902 | "source-map": "^0.6.0" 903 | } 904 | }, 905 | "node_modules/source-map-support/node_modules/source-map": { 906 | "version": "0.6.1", 907 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 908 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 909 | "dev": true, 910 | "engines": { 911 | "node": ">=0.10.0" 912 | } 913 | }, 914 | "node_modules/sourcemap-codec": { 915 | "version": "1.4.8", 916 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 917 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", 918 | "dev": true 919 | }, 920 | "node_modules/supports-color": { 921 | "version": "5.5.0", 922 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 923 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 924 | "dev": true, 925 | "dependencies": { 926 | "has-flag": "^3.0.0" 927 | }, 928 | "engines": { 929 | "node": ">=4" 930 | } 931 | }, 932 | "node_modules/svelte": { 933 | "version": "3.29.7", 934 | "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.29.7.tgz", 935 | "integrity": "sha512-rx0g311kBODvEWUU01DFBUl3MJuJven04bvTVFUG/w0On/wuj0PajQY/QlXcJndFxG+W1s8iXKaB418tdHWc3A==", 936 | "dev": true, 937 | "engines": { 938 | "node": ">= 8" 939 | } 940 | }, 941 | "node_modules/terser": { 942 | "version": "5.5.0", 943 | "resolved": "https://registry.npmjs.org/terser/-/terser-5.5.0.tgz", 944 | "integrity": "sha512-eopt1Gf7/AQyPhpygdKePTzaet31TvQxXvrf7xYUvD/d8qkCJm4SKPDzu+GHK5ZaYTn8rvttfqaZc3swK21e5g==", 945 | "dev": true, 946 | "dependencies": { 947 | "commander": "^2.20.0", 948 | "source-map": "~0.7.2", 949 | "source-map-support": "~0.5.19" 950 | }, 951 | "bin": { 952 | "terser": "bin/terser" 953 | }, 954 | "engines": { 955 | "node": ">=10" 956 | } 957 | }, 958 | "node_modules/tinydate": { 959 | "version": "1.3.0", 960 | "resolved": "https://registry.npmjs.org/tinydate/-/tinydate-1.3.0.tgz", 961 | "integrity": "sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w==", 962 | "dev": true, 963 | "engines": { 964 | "node": ">=4" 965 | } 966 | }, 967 | "node_modules/to-regex-range": { 968 | "version": "5.0.1", 969 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 970 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 971 | "dev": true, 972 | "dependencies": { 973 | "is-number": "^7.0.0" 974 | }, 975 | "engines": { 976 | "node": ">=8.0" 977 | } 978 | }, 979 | "node_modules/totalist": { 980 | "version": "3.0.0", 981 | "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz", 982 | "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==", 983 | "dev": true, 984 | "engines": { 985 | "node": ">=6" 986 | } 987 | }, 988 | "node_modules/wrappy": { 989 | "version": "1.0.2", 990 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 991 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 992 | "dev": true 993 | }, 994 | "node_modules/ws": { 995 | "version": "6.2.1", 996 | "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", 997 | "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", 998 | "dev": true, 999 | "dependencies": { 1000 | "async-limiter": "~1.0.0" 1001 | } 1002 | } 1003 | }, 1004 | "dependencies": { 1005 | "@babel/code-frame": { 1006 | "version": "7.10.4", 1007 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", 1008 | "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", 1009 | "dev": true, 1010 | "requires": { 1011 | "@babel/highlight": "^7.10.4" 1012 | } 1013 | }, 1014 | "@babel/helper-validator-identifier": { 1015 | "version": "7.10.4", 1016 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", 1017 | "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", 1018 | "dev": true 1019 | }, 1020 | "@babel/highlight": { 1021 | "version": "7.10.4", 1022 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", 1023 | "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", 1024 | "dev": true, 1025 | "requires": { 1026 | "@babel/helper-validator-identifier": "^7.10.4", 1027 | "chalk": "^2.0.0", 1028 | "js-tokens": "^4.0.0" 1029 | } 1030 | }, 1031 | "@polka/url": { 1032 | "version": "1.0.0-next.21", 1033 | "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", 1034 | "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", 1035 | "dev": true 1036 | }, 1037 | "@rollup/plugin-commonjs": { 1038 | "version": "14.0.0", 1039 | "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-14.0.0.tgz", 1040 | "integrity": "sha512-+PSmD9ePwTAeU106i9FRdc+Zb3XUWyW26mo5Atr2mk82hor8+nPwkztEjFo8/B1fJKfaQDg9aM2bzQkjhi7zOw==", 1041 | "dev": true, 1042 | "requires": { 1043 | "@rollup/pluginutils": "^3.0.8", 1044 | "commondir": "^1.0.1", 1045 | "estree-walker": "^1.0.1", 1046 | "glob": "^7.1.2", 1047 | "is-reference": "^1.1.2", 1048 | "magic-string": "^0.25.2", 1049 | "resolve": "^1.11.0" 1050 | } 1051 | }, 1052 | "@rollup/plugin-node-resolve": { 1053 | "version": "8.4.0", 1054 | "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz", 1055 | "integrity": "sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ==", 1056 | "dev": true, 1057 | "requires": { 1058 | "@rollup/pluginutils": "^3.1.0", 1059 | "@types/resolve": "1.17.1", 1060 | "builtin-modules": "^3.1.0", 1061 | "deep-freeze": "^0.0.1", 1062 | "deepmerge": "^4.2.2", 1063 | "is-module": "^1.0.0", 1064 | "resolve": "^1.17.0" 1065 | } 1066 | }, 1067 | "@rollup/pluginutils": { 1068 | "version": "3.1.0", 1069 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", 1070 | "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", 1071 | "dev": true, 1072 | "requires": { 1073 | "@types/estree": "0.0.39", 1074 | "estree-walker": "^1.0.1", 1075 | "picomatch": "^2.2.2" 1076 | } 1077 | }, 1078 | "@types/estree": { 1079 | "version": "0.0.39", 1080 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", 1081 | "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", 1082 | "dev": true 1083 | }, 1084 | "@types/node": { 1085 | "version": "14.14.9", 1086 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.9.tgz", 1087 | "integrity": "sha512-JsoLXFppG62tWTklIoO4knA+oDTYsmqWxHRvd4lpmfQRNhX6osheUOWETP2jMoV/2bEHuMra8Pp3Dmo/stBFcw==", 1088 | "dev": true 1089 | }, 1090 | "@types/resolve": { 1091 | "version": "1.17.1", 1092 | "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", 1093 | "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", 1094 | "dev": true, 1095 | "requires": { 1096 | "@types/node": "*" 1097 | } 1098 | }, 1099 | "ansi-styles": { 1100 | "version": "3.2.1", 1101 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 1102 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 1103 | "dev": true, 1104 | "requires": { 1105 | "color-convert": "^1.9.0" 1106 | } 1107 | }, 1108 | "anymatch": { 1109 | "version": "3.1.1", 1110 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", 1111 | "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", 1112 | "dev": true, 1113 | "requires": { 1114 | "normalize-path": "^3.0.0", 1115 | "picomatch": "^2.0.4" 1116 | } 1117 | }, 1118 | "async-limiter": { 1119 | "version": "1.0.1", 1120 | "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", 1121 | "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", 1122 | "dev": true 1123 | }, 1124 | "balanced-match": { 1125 | "version": "1.0.0", 1126 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 1127 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 1128 | "dev": true 1129 | }, 1130 | "binary-extensions": { 1131 | "version": "2.1.0", 1132 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", 1133 | "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", 1134 | "dev": true 1135 | }, 1136 | "brace-expansion": { 1137 | "version": "1.1.11", 1138 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1139 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1140 | "dev": true, 1141 | "requires": { 1142 | "balanced-match": "^1.0.0", 1143 | "concat-map": "0.0.1" 1144 | } 1145 | }, 1146 | "braces": { 1147 | "version": "3.0.2", 1148 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 1149 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 1150 | "dev": true, 1151 | "requires": { 1152 | "fill-range": "^7.0.1" 1153 | } 1154 | }, 1155 | "buffer-from": { 1156 | "version": "1.1.1", 1157 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 1158 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", 1159 | "dev": true 1160 | }, 1161 | "builtin-modules": { 1162 | "version": "3.1.0", 1163 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", 1164 | "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", 1165 | "dev": true 1166 | }, 1167 | "chalk": { 1168 | "version": "2.4.2", 1169 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 1170 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 1171 | "dev": true, 1172 | "requires": { 1173 | "ansi-styles": "^3.2.1", 1174 | "escape-string-regexp": "^1.0.5", 1175 | "supports-color": "^5.3.0" 1176 | } 1177 | }, 1178 | "chokidar": { 1179 | "version": "3.4.3", 1180 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", 1181 | "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", 1182 | "dev": true, 1183 | "requires": { 1184 | "anymatch": "~3.1.1", 1185 | "braces": "~3.0.2", 1186 | "fsevents": "~2.1.2", 1187 | "glob-parent": "~5.1.0", 1188 | "is-binary-path": "~2.1.0", 1189 | "is-glob": "~4.0.1", 1190 | "normalize-path": "~3.0.0", 1191 | "readdirp": "~3.5.0" 1192 | } 1193 | }, 1194 | "color-convert": { 1195 | "version": "1.9.3", 1196 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 1197 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 1198 | "dev": true, 1199 | "requires": { 1200 | "color-name": "1.1.3" 1201 | } 1202 | }, 1203 | "color-name": { 1204 | "version": "1.1.3", 1205 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 1206 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 1207 | "dev": true 1208 | }, 1209 | "commander": { 1210 | "version": "2.20.3", 1211 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", 1212 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", 1213 | "dev": true 1214 | }, 1215 | "commondir": { 1216 | "version": "1.0.1", 1217 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", 1218 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", 1219 | "dev": true 1220 | }, 1221 | "concat-map": { 1222 | "version": "0.0.1", 1223 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1224 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 1225 | "dev": true 1226 | }, 1227 | "console-clear": { 1228 | "version": "1.1.1", 1229 | "resolved": "https://registry.npmjs.org/console-clear/-/console-clear-1.1.1.tgz", 1230 | "integrity": "sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ==", 1231 | "dev": true 1232 | }, 1233 | "deep-freeze": { 1234 | "version": "0.0.1", 1235 | "resolved": "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz", 1236 | "integrity": "sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=", 1237 | "dev": true 1238 | }, 1239 | "deepmerge": { 1240 | "version": "4.2.2", 1241 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", 1242 | "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", 1243 | "dev": true 1244 | }, 1245 | "escape-string-regexp": { 1246 | "version": "1.0.5", 1247 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1248 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 1249 | "dev": true 1250 | }, 1251 | "estree-walker": { 1252 | "version": "1.0.1", 1253 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", 1254 | "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", 1255 | "dev": true 1256 | }, 1257 | "fill-range": { 1258 | "version": "7.0.1", 1259 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 1260 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 1261 | "dev": true, 1262 | "requires": { 1263 | "to-regex-range": "^5.0.1" 1264 | } 1265 | }, 1266 | "fs.realpath": { 1267 | "version": "1.0.0", 1268 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1269 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1270 | "dev": true 1271 | }, 1272 | "fsevents": { 1273 | "version": "2.1.3", 1274 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", 1275 | "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", 1276 | "dev": true, 1277 | "optional": true 1278 | }, 1279 | "function-bind": { 1280 | "version": "1.1.1", 1281 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1282 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1283 | "dev": true 1284 | }, 1285 | "get-port": { 1286 | "version": "3.2.0", 1287 | "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", 1288 | "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=", 1289 | "dev": true 1290 | }, 1291 | "glob": { 1292 | "version": "7.1.6", 1293 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 1294 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 1295 | "dev": true, 1296 | "requires": { 1297 | "fs.realpath": "^1.0.0", 1298 | "inflight": "^1.0.4", 1299 | "inherits": "2", 1300 | "minimatch": "^3.0.4", 1301 | "once": "^1.3.0", 1302 | "path-is-absolute": "^1.0.0" 1303 | } 1304 | }, 1305 | "glob-parent": { 1306 | "version": "5.1.1", 1307 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", 1308 | "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", 1309 | "dev": true, 1310 | "requires": { 1311 | "is-glob": "^4.0.1" 1312 | } 1313 | }, 1314 | "has": { 1315 | "version": "1.0.3", 1316 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1317 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1318 | "dev": true, 1319 | "requires": { 1320 | "function-bind": "^1.1.1" 1321 | } 1322 | }, 1323 | "has-flag": { 1324 | "version": "3.0.0", 1325 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1326 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 1327 | "dev": true 1328 | }, 1329 | "inflight": { 1330 | "version": "1.0.6", 1331 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1332 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1333 | "dev": true, 1334 | "requires": { 1335 | "once": "^1.3.0", 1336 | "wrappy": "1" 1337 | } 1338 | }, 1339 | "inherits": { 1340 | "version": "2.0.4", 1341 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1342 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 1343 | "dev": true 1344 | }, 1345 | "is-binary-path": { 1346 | "version": "2.1.0", 1347 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 1348 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 1349 | "dev": true, 1350 | "requires": { 1351 | "binary-extensions": "^2.0.0" 1352 | } 1353 | }, 1354 | "is-core-module": { 1355 | "version": "2.1.0", 1356 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", 1357 | "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", 1358 | "dev": true, 1359 | "requires": { 1360 | "has": "^1.0.3" 1361 | } 1362 | }, 1363 | "is-extglob": { 1364 | "version": "2.1.1", 1365 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1366 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 1367 | "dev": true 1368 | }, 1369 | "is-glob": { 1370 | "version": "4.0.1", 1371 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", 1372 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", 1373 | "dev": true, 1374 | "requires": { 1375 | "is-extglob": "^2.1.1" 1376 | } 1377 | }, 1378 | "is-module": { 1379 | "version": "1.0.0", 1380 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", 1381 | "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", 1382 | "dev": true 1383 | }, 1384 | "is-number": { 1385 | "version": "7.0.0", 1386 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 1387 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 1388 | "dev": true 1389 | }, 1390 | "is-reference": { 1391 | "version": "1.2.1", 1392 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", 1393 | "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", 1394 | "dev": true, 1395 | "requires": { 1396 | "@types/estree": "*" 1397 | } 1398 | }, 1399 | "jest-worker": { 1400 | "version": "26.6.2", 1401 | "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", 1402 | "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", 1403 | "dev": true, 1404 | "requires": { 1405 | "@types/node": "*", 1406 | "merge-stream": "^2.0.0", 1407 | "supports-color": "^7.0.0" 1408 | }, 1409 | "dependencies": { 1410 | "has-flag": { 1411 | "version": "4.0.0", 1412 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1413 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 1414 | "dev": true 1415 | }, 1416 | "supports-color": { 1417 | "version": "7.2.0", 1418 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 1419 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 1420 | "dev": true, 1421 | "requires": { 1422 | "has-flag": "^4.0.0" 1423 | } 1424 | } 1425 | } 1426 | }, 1427 | "js-tokens": { 1428 | "version": "4.0.0", 1429 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 1430 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 1431 | "dev": true 1432 | }, 1433 | "kleur": { 1434 | "version": "4.1.4", 1435 | "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", 1436 | "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", 1437 | "dev": true 1438 | }, 1439 | "livereload": { 1440 | "version": "0.9.1", 1441 | "resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.1.tgz", 1442 | "integrity": "sha512-9g7sua11kkyZNo2hLRCG3LuZZwqexoyEyecSlV8cAsfAVVCZqLzVir6XDqmH0r+Vzgnd5LrdHDMyjtFnJQLAYw==", 1443 | "dev": true, 1444 | "requires": { 1445 | "chokidar": "^3.3.0", 1446 | "livereload-js": "^3.1.0", 1447 | "opts": ">= 1.2.0", 1448 | "ws": "^6.2.1" 1449 | } 1450 | }, 1451 | "livereload-js": { 1452 | "version": "3.3.1", 1453 | "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.3.1.tgz", 1454 | "integrity": "sha512-CBu1gTEfzVhlOK1WASKAAJ9Qx1fHECTq0SUB67sfxwQssopTyvzqTlgl+c0h9pZ6V+Fzd2rc510ppuNusg9teQ==", 1455 | "dev": true 1456 | }, 1457 | "local-access": { 1458 | "version": "1.1.0", 1459 | "resolved": "https://registry.npmjs.org/local-access/-/local-access-1.1.0.tgz", 1460 | "integrity": "sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw==", 1461 | "dev": true 1462 | }, 1463 | "magic-string": { 1464 | "version": "0.25.7", 1465 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", 1466 | "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", 1467 | "dev": true, 1468 | "requires": { 1469 | "sourcemap-codec": "^1.4.4" 1470 | } 1471 | }, 1472 | "merge-stream": { 1473 | "version": "2.0.0", 1474 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", 1475 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", 1476 | "dev": true 1477 | }, 1478 | "minimatch": { 1479 | "version": "3.0.4", 1480 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1481 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1482 | "dev": true, 1483 | "requires": { 1484 | "brace-expansion": "^1.1.7" 1485 | } 1486 | }, 1487 | "mri": { 1488 | "version": "1.1.6", 1489 | "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.6.tgz", 1490 | "integrity": "sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ==", 1491 | "dev": true 1492 | }, 1493 | "mrmime": { 1494 | "version": "1.0.0", 1495 | "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.0.tgz", 1496 | "integrity": "sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ==", 1497 | "dev": true 1498 | }, 1499 | "normalize-path": { 1500 | "version": "3.0.0", 1501 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 1502 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 1503 | "dev": true 1504 | }, 1505 | "once": { 1506 | "version": "1.4.0", 1507 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1508 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1509 | "dev": true, 1510 | "requires": { 1511 | "wrappy": "1" 1512 | } 1513 | }, 1514 | "opts": { 1515 | "version": "2.0.2", 1516 | "resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz", 1517 | "integrity": "sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==", 1518 | "dev": true 1519 | }, 1520 | "path-is-absolute": { 1521 | "version": "1.0.1", 1522 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1523 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1524 | "dev": true 1525 | }, 1526 | "path-parse": { 1527 | "version": "1.0.6", 1528 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 1529 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", 1530 | "dev": true 1531 | }, 1532 | "picomatch": { 1533 | "version": "2.2.2", 1534 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", 1535 | "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", 1536 | "dev": true 1537 | }, 1538 | "randombytes": { 1539 | "version": "2.1.0", 1540 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", 1541 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", 1542 | "dev": true, 1543 | "requires": { 1544 | "safe-buffer": "^5.1.0" 1545 | } 1546 | }, 1547 | "readdirp": { 1548 | "version": "3.5.0", 1549 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", 1550 | "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", 1551 | "dev": true, 1552 | "requires": { 1553 | "picomatch": "^2.2.1" 1554 | } 1555 | }, 1556 | "require-relative": { 1557 | "version": "0.8.7", 1558 | "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", 1559 | "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=", 1560 | "dev": true 1561 | }, 1562 | "resolve": { 1563 | "version": "1.19.0", 1564 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", 1565 | "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", 1566 | "dev": true, 1567 | "requires": { 1568 | "is-core-module": "^2.1.0", 1569 | "path-parse": "^1.0.6" 1570 | } 1571 | }, 1572 | "rollup": { 1573 | "version": "2.33.3", 1574 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.33.3.tgz", 1575 | "integrity": "sha512-RpayhPTe4Gu/uFGCmk7Gp5Z9Qic2VsqZ040G+KZZvsZYdcuWaJg678JeDJJvJeEQXminu24a2au+y92CUWVd+w==", 1576 | "dev": true, 1577 | "requires": { 1578 | "fsevents": "~2.1.2" 1579 | } 1580 | }, 1581 | "rollup-plugin-livereload": { 1582 | "version": "2.0.0", 1583 | "resolved": "https://registry.npmjs.org/rollup-plugin-livereload/-/rollup-plugin-livereload-2.0.0.tgz", 1584 | "integrity": "sha512-oC/8NqumGYuphkqrfszOHUUIwzKsaHBICw6QRwT5uD07gvePTS+HW+GFwu6f9K8W02CUuTvtIM9AWJrbj4wE1A==", 1585 | "dev": true, 1586 | "requires": { 1587 | "livereload": "^0.9.1" 1588 | } 1589 | }, 1590 | "rollup-plugin-svelte": { 1591 | "version": "6.1.1", 1592 | "resolved": "https://registry.npmjs.org/rollup-plugin-svelte/-/rollup-plugin-svelte-6.1.1.tgz", 1593 | "integrity": "sha512-ijnm0pH1ScrY4uxwaNXBpNVejVzpL2769hIEbAlnqNUWZrffLspu5/k9/l/Wsj3NrEHLQ6wCKGagVJonyfN7ow==", 1594 | "dev": true, 1595 | "requires": { 1596 | "require-relative": "^0.8.7", 1597 | "rollup-pluginutils": "^2.8.2", 1598 | "sourcemap-codec": "^1.4.8" 1599 | } 1600 | }, 1601 | "rollup-plugin-terser": { 1602 | "version": "7.0.2", 1603 | "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", 1604 | "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", 1605 | "dev": true, 1606 | "requires": { 1607 | "@babel/code-frame": "^7.10.4", 1608 | "jest-worker": "^26.2.1", 1609 | "serialize-javascript": "^4.0.0", 1610 | "terser": "^5.0.0" 1611 | } 1612 | }, 1613 | "rollup-pluginutils": { 1614 | "version": "2.8.2", 1615 | "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", 1616 | "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", 1617 | "dev": true, 1618 | "requires": { 1619 | "estree-walker": "^0.6.1" 1620 | }, 1621 | "dependencies": { 1622 | "estree-walker": { 1623 | "version": "0.6.1", 1624 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", 1625 | "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", 1626 | "dev": true 1627 | } 1628 | } 1629 | }, 1630 | "sade": { 1631 | "version": "1.7.4", 1632 | "resolved": "https://registry.npmjs.org/sade/-/sade-1.7.4.tgz", 1633 | "integrity": "sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==", 1634 | "dev": true, 1635 | "requires": { 1636 | "mri": "^1.1.0" 1637 | } 1638 | }, 1639 | "safe-buffer": { 1640 | "version": "5.2.1", 1641 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 1642 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 1643 | "dev": true 1644 | }, 1645 | "semiver": { 1646 | "version": "1.1.0", 1647 | "resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz", 1648 | "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==", 1649 | "dev": true 1650 | }, 1651 | "serialize-javascript": { 1652 | "version": "4.0.0", 1653 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", 1654 | "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", 1655 | "dev": true, 1656 | "requires": { 1657 | "randombytes": "^2.1.0" 1658 | } 1659 | }, 1660 | "sirv": { 1661 | "version": "2.0.2", 1662 | "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz", 1663 | "integrity": "sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==", 1664 | "dev": true, 1665 | "requires": { 1666 | "@polka/url": "^1.0.0-next.20", 1667 | "mrmime": "^1.0.0", 1668 | "totalist": "^3.0.0" 1669 | } 1670 | }, 1671 | "sirv-cli": { 1672 | "version": "2.0.2", 1673 | "resolved": "https://registry.npmjs.org/sirv-cli/-/sirv-cli-2.0.2.tgz", 1674 | "integrity": "sha512-OtSJDwxsF1NWHc7ps3Sa0s+dPtP15iQNJzfKVz+MxkEo3z72mCD+yu30ct79rPr0CaV1HXSOBp+MIY5uIhHZ1A==", 1675 | "dev": true, 1676 | "requires": { 1677 | "console-clear": "^1.1.0", 1678 | "get-port": "^3.2.0", 1679 | "kleur": "^4.1.4", 1680 | "local-access": "^1.0.1", 1681 | "sade": "^1.6.0", 1682 | "semiver": "^1.0.0", 1683 | "sirv": "^2.0.0", 1684 | "tinydate": "^1.0.0" 1685 | } 1686 | }, 1687 | "source-map": { 1688 | "version": "0.7.3", 1689 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", 1690 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", 1691 | "dev": true 1692 | }, 1693 | "source-map-support": { 1694 | "version": "0.5.19", 1695 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", 1696 | "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", 1697 | "dev": true, 1698 | "requires": { 1699 | "buffer-from": "^1.0.0", 1700 | "source-map": "^0.6.0" 1701 | }, 1702 | "dependencies": { 1703 | "source-map": { 1704 | "version": "0.6.1", 1705 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 1706 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 1707 | "dev": true 1708 | } 1709 | } 1710 | }, 1711 | "sourcemap-codec": { 1712 | "version": "1.4.8", 1713 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 1714 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", 1715 | "dev": true 1716 | }, 1717 | "supports-color": { 1718 | "version": "5.5.0", 1719 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1720 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1721 | "dev": true, 1722 | "requires": { 1723 | "has-flag": "^3.0.0" 1724 | } 1725 | }, 1726 | "svelte": { 1727 | "version": "3.29.7", 1728 | "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.29.7.tgz", 1729 | "integrity": "sha512-rx0g311kBODvEWUU01DFBUl3MJuJven04bvTVFUG/w0On/wuj0PajQY/QlXcJndFxG+W1s8iXKaB418tdHWc3A==", 1730 | "dev": true 1731 | }, 1732 | "terser": { 1733 | "version": "5.5.0", 1734 | "resolved": "https://registry.npmjs.org/terser/-/terser-5.5.0.tgz", 1735 | "integrity": "sha512-eopt1Gf7/AQyPhpygdKePTzaet31TvQxXvrf7xYUvD/d8qkCJm4SKPDzu+GHK5ZaYTn8rvttfqaZc3swK21e5g==", 1736 | "dev": true, 1737 | "requires": { 1738 | "commander": "^2.20.0", 1739 | "source-map": "~0.7.2", 1740 | "source-map-support": "~0.5.19" 1741 | } 1742 | }, 1743 | "tinydate": { 1744 | "version": "1.3.0", 1745 | "resolved": "https://registry.npmjs.org/tinydate/-/tinydate-1.3.0.tgz", 1746 | "integrity": "sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w==", 1747 | "dev": true 1748 | }, 1749 | "to-regex-range": { 1750 | "version": "5.0.1", 1751 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 1752 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 1753 | "dev": true, 1754 | "requires": { 1755 | "is-number": "^7.0.0" 1756 | } 1757 | }, 1758 | "totalist": { 1759 | "version": "3.0.0", 1760 | "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz", 1761 | "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==", 1762 | "dev": true 1763 | }, 1764 | "wrappy": { 1765 | "version": "1.0.2", 1766 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1767 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 1768 | "dev": true 1769 | }, 1770 | "ws": { 1771 | "version": "6.2.1", 1772 | "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", 1773 | "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", 1774 | "dev": true, 1775 | "requires": { 1776 | "async-limiter": "~1.0.0" 1777 | } 1778 | } 1779 | } 1780 | } 1781 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "svelte-drawer-component", 3 | "version": "1.2.2", 4 | "svelte": "src/index.js", 5 | "scripts": { 6 | "build": "rollup -c", 7 | "dev": "rollup -c -w", 8 | "start": "sirv public", 9 | "prepublishOnly": "npm run build" 10 | }, 11 | "types": "./types/index.d.ts", 12 | "devDependencies": { 13 | "@rollup/plugin-commonjs": "^14.0.0", 14 | "@rollup/plugin-node-resolve": "^8.0.0", 15 | "rollup": "^2.3.4", 16 | "rollup-plugin-livereload": "^2.0.0", 17 | "rollup-plugin-svelte": "^6.0.0", 18 | "rollup-plugin-terser": "^7.0.0", 19 | "sirv-cli": "^2.0.2", 20 | "svelte": "^3.0.0" 21 | }, 22 | "repository": { 23 | "type": "git", 24 | "url": "https://github.com/rsdavis/svelte-drawer" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rsdavis/svelte-drawer/4f4ebb38c08d51b3a39088be30cb14c3e6c55f0b/public/favicon.png -------------------------------------------------------------------------------- /public/global.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rsdavis/svelte-drawer/4f4ebb38c08d51b3a39088be30cb14c3e6c55f0b/public/global.css -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Svelte app 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import svelte from 'rollup-plugin-svelte'; 2 | import resolve from '@rollup/plugin-node-resolve'; 3 | import commonjs from '@rollup/plugin-commonjs'; 4 | import livereload from 'rollup-plugin-livereload'; 5 | import { terser } from 'rollup-plugin-terser'; 6 | 7 | const production = !process.env.ROLLUP_WATCH; 8 | 9 | function serve() { 10 | let server; 11 | 12 | function toExit() { 13 | if (server) server.kill(0); 14 | } 15 | 16 | return { 17 | writeBundle() { 18 | if (server) return; 19 | server = require('child_process').spawn('npm', ['run', 'start', '--', '--dev'], { 20 | stdio: ['ignore', 'inherit', 'inherit'], 21 | shell: true 22 | }); 23 | 24 | process.on('SIGTERM', toExit); 25 | process.on('exit', toExit); 26 | } 27 | }; 28 | } 29 | 30 | export default { 31 | input: 'src/main.js', 32 | output: { 33 | sourcemap: true, 34 | format: 'iife', 35 | name: 'app', 36 | file: 'public/build/bundle.js' 37 | }, 38 | plugins: [ 39 | svelte({ 40 | // enable run-time checks when not in production 41 | dev: !production, 42 | // we'll extract any component CSS out into 43 | // a separate file - better for performance 44 | css: css => { 45 | css.write('bundle.css'); 46 | } 47 | }), 48 | 49 | // If you have external dependencies installed from 50 | // npm, you'll most likely need these plugins. In 51 | // some cases you'll need additional configuration - 52 | // consult the documentation for details: 53 | // https://github.com/rollup/plugins/tree/master/packages/commonjs 54 | resolve({ 55 | browser: true, 56 | dedupe: ['svelte'] 57 | }), 58 | commonjs(), 59 | 60 | // In dev mode, call `npm run start` once 61 | // the bundle has been generated 62 | !production && serve(), 63 | 64 | // Watch the `public` directory and refresh the 65 | // browser on changes when not in production 66 | !production && livereload('public'), 67 | 68 | // If we're building for production (npm run build 69 | // instead of npm run dev), minify 70 | production && terser() 71 | ], 72 | watch: { 73 | clearScreen: false 74 | } 75 | }; 76 | -------------------------------------------------------------------------------- /scripts/setupTypeScript.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** This script modifies the project to support TS code in .svelte files like: 4 | 5 | 8 | 9 | As well as validating the code for CI. 10 | */ 11 | 12 | /** To work on this script: 13 | rm -rf test-template template && git clone sveltejs/template test-template && node scripts/setupTypeScript.js test-template 14 | */ 15 | 16 | const fs = require("fs") 17 | const path = require("path") 18 | const { argv } = require("process") 19 | 20 | const projectRoot = argv[2] || path.join(__dirname, "..") 21 | 22 | // Add deps to pkg.json 23 | const packageJSON = JSON.parse(fs.readFileSync(path.join(projectRoot, "package.json"), "utf8")) 24 | packageJSON.devDependencies = Object.assign(packageJSON.devDependencies, { 25 | "svelte-check": "^1.0.0", 26 | "svelte-preprocess": "^4.0.0", 27 | "@rollup/plugin-typescript": "^6.0.0", 28 | "typescript": "^3.9.3", 29 | "tslib": "^2.0.0", 30 | "@tsconfig/svelte": "^1.0.0" 31 | }) 32 | 33 | // Add script for checking 34 | packageJSON.scripts = Object.assign(packageJSON.scripts, { 35 | "validate": "svelte-check" 36 | }) 37 | 38 | // Write the package JSON 39 | fs.writeFileSync(path.join(projectRoot, "package.json"), JSON.stringify(packageJSON, null, " ")) 40 | 41 | // mv src/main.js to main.ts - note, we need to edit rollup.config.js for this too 42 | const beforeMainJSPath = path.join(projectRoot, "src", "main.js") 43 | const afterMainTSPath = path.join(projectRoot, "src", "main.ts") 44 | fs.renameSync(beforeMainJSPath, afterMainTSPath) 45 | 46 | // Switch the app.svelte file to use TS 47 | const appSveltePath = path.join(projectRoot, "src", "App.svelte") 48 | let appFile = fs.readFileSync(appSveltePath, "utf8") 49 | appFile = appFile.replace(" 8 | 9 | 10 |
11 | 12 | 13 | 14 | open = false} size='600px'> 15 | 16 | hello 17 | 18 | 19 |
20 | 21 | -------------------------------------------------------------------------------- /src/Drawer.svelte: -------------------------------------------------------------------------------- 1 | 35 | 36 | 45 | 46 | 124 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | export { default as default } from './Drawer.svelte'; -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import App from './App.svelte'; 2 | 3 | const app = new App({ 4 | target: document.body 5 | }); 6 | 7 | export default app; -------------------------------------------------------------------------------- /types/Drawer.svelte.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | import { SvelteComponentTyped } from "svelte"; 3 | 4 | interface DrawerProps { 5 | /** 6 | * Controls the open state of the drawer. 7 | * @default false 8 | */ 9 | open?: boolean; 10 | 11 | /** 12 | * Side of the screen to slide out from. 13 | * @default 'left' 14 | */ 15 | placement?: 'left' | 'right' | 'top' | 'bottom'; 16 | 17 | /** 18 | * Panel size (e.g.: `100px`, `10em`, `70%`, `null`). 19 | * A size of `null` stretches the drawer to the size of its parent container. 20 | * @default null 21 | */ 22 | size?: string | null; 23 | 24 | /** 25 | * Transition duration (in seconds). 26 | * @default 0.2 27 | */ 28 | duration?: number; 29 | } 30 | 31 | export default class extends SvelteComponentTyped< 32 | DrawerProps, 33 | { clickAway: CustomEvent }, 34 | { default: {} } 35 | > {} 36 | -------------------------------------------------------------------------------- /types/index.d.ts: -------------------------------------------------------------------------------- 1 | export { default } from "./Drawer.svelte"; 2 | --------------------------------------------------------------------------------