├── .gitignore ├── .prettierrc ├── LICENSE ├── README.md ├── package.json ├── rollup.config.js ├── site ├── .gitignore ├── LICENSE ├── README.md ├── package-lock.json ├── package.json ├── pnpm-lock.yaml ├── public │ ├── favicon.ico │ ├── index.html │ ├── logo.svg │ └── robots.txt ├── snowpack.config.js ├── src │ ├── App.svelte │ ├── App.test.js │ ├── Content.svelte │ ├── Items.svelte │ ├── NestedFoods.svelte │ ├── ZoomGrid.svelte │ ├── ZoomGridItems.svelte │ └── index.js └── web-test-runner.config.js └── src ├── Breadcrumbs.svelte ├── Zoomable.svelte ├── ZoomableContainer.svelte ├── index.js ├── transition.js ├── transition_executors.js ├── transition_schedulers.js └── zoomManager.js /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist/ 4 | /pnpm-lock.yaml 5 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "trailingComma": "es5", 4 | "arrowParens": "always", 5 | "svelteBracketNewLine": false, 6 | "svelteSortOrder": "options-scripts-markup-styles", 7 | "plugins": ["prettier-plugin-svelte"] 8 | } 9 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2020 Daniel Imfeld 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Svelte Zoomable UI 2 | 3 | This is a component for providing UI that can zoom into different levels of detail. 4 | 5 | More docs coming soon, but you can see some Svelte REPL examples to get a good idea of how it works: 6 | 7 | - [Zoomable Grid](https://svelte.dev/repl/32bf500c4b8b4b718daee1fae74b6a51?version=3.32.0) 8 | - [Flex Layouts](https://svelte.dev/repl/58dfe87756ee4db897c281b52fdef7b7?version=3.31.0) 9 | 10 | ```svelte 11 | 14 | 15 |

16 | 17 | {#each data as item} 18 | 19 |
20 | Content when the item is zoomed out 21 |
22 | 23 |
24 | Content when the item is zoomed in. This can contain additional Zoomables for more levels of nesting. 25 |
26 |
27 | {/each} 28 |
29 | ``` 30 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "svelte-zoomable", 3 | "version": "0.0.5", 4 | "license": "MIT", 5 | "author": "Daniel Imfeld ", 6 | "repository": { 7 | "type": "git", 8 | "url": "git+https://github.com/dimfeld/svelte-zoomable.git" 9 | }, 10 | "homepage": "https://github.com/dimfeld/svelte-zoomable#readme", 11 | "bugs": { 12 | "url": "https://github.com/dimfeld/svelte-zoomable/issues" 13 | }, 14 | "svelte": "src/index.js", 15 | "module": "dist/index.mjs", 16 | "main": "dist/index.js", 17 | "scripts": { 18 | "build": "rollup -c", 19 | "prepublishOnly": "npm run build" 20 | }, 21 | "devDependencies": { 22 | "@rollup/plugin-node-resolve": "^11.0.0", 23 | "rollup": "^2.35.0", 24 | "rollup-plugin-svelte": "^7.0.0", 25 | "svelte": "^3.0.0" 26 | }, 27 | "keywords": [ 28 | "svelte" 29 | ], 30 | "files": [ 31 | "src", 32 | "dist" 33 | ], 34 | "dependencies": { 35 | "svelte-style-action": "^0.0.3" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import svelte from 'rollup-plugin-svelte'; 2 | import resolve from '@rollup/plugin-node-resolve'; 3 | import pkg from './package.json'; 4 | 5 | const name = pkg.name 6 | .replace(/^(@\S+\/)?(svelte-)?(\S+)/, '$3') 7 | .replace(/^\w/, (m) => m.toUpperCase()) 8 | .replace(/-\w/g, (m) => m[1].toUpperCase()); 9 | 10 | export default { 11 | input: 'src/index.js', 12 | output: [ 13 | { file: pkg.module, format: 'es' }, 14 | { file: pkg.main, format: 'umd', name }, 15 | ], 16 | plugins: [ 17 | svelte({ 18 | compilerOptions: { 19 | dev: process.env.NODE_ENV === 'development', 20 | }, 21 | emitCss: false, 22 | }), 23 | resolve(), 24 | ], 25 | }; 26 | -------------------------------------------------------------------------------- /site/.gitignore: -------------------------------------------------------------------------------- 1 | .build 2 | build 3 | web_modules 4 | node_modules -------------------------------------------------------------------------------- /site/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Fred K. Schott 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /site/README.md: -------------------------------------------------------------------------------- 1 | # New Project 2 | 3 | > ✨ Bootstrapped with Create Snowpack App (CSA). 4 | 5 | ## Available Scripts 6 | 7 | ### npm start 8 | 9 | Runs the app in the development mode. 10 | Open http://localhost:8080 to view it in the browser. 11 | 12 | The page will reload if you make edits. 13 | You will also see any lint errors in the console. 14 | 15 | ### npm test 16 | 17 | Launches the test runner in the interactive watch mode. 18 | See the section about running tests for more information. 19 | 20 | ### npm run build 21 | 22 | Builds a static copy of your site to the `build/` folder. 23 | Your app is ready to be deployed! 24 | 25 | **For the best production performance:** Add a build bundler plugin like [@snowpack/plugin-webpack](https://github.com/snowpackjs/snowpack/tree/main/plugins/plugin-webpack) or [snowpack-plugin-rollup-bundle](https://github.com/ParamagicDev/snowpack-plugin-rollup-bundle) to your `snowpack.config.json` config file. 26 | 27 | ### Q: What about Eject? 28 | 29 | No eject needed! Snowpack guarantees zero lock-in, and CSA strives for the same. 30 | -------------------------------------------------------------------------------- /site/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "scripts": { 3 | "start": "snowpack dev", 4 | "build": "snowpack build", 5 | "test": "web-test-runner \"src/**/*.test.js\"" 6 | }, 7 | "dependencies": { 8 | "faker": "^5.2.0", 9 | "svelte": "^3.31.2", 10 | "tinro": "^0.5.9" 11 | }, 12 | "devDependencies": { 13 | "@snowpack/plugin-dotenv": "^2.0.5", 14 | "@snowpack/plugin-svelte": "^3.4.1", 15 | "@snowpack/web-test-runner-plugin": "^0.1.5", 16 | "@testing-library/svelte": "^3.0.3", 17 | "@types/faker": "^5.1.5", 18 | "@web/test-runner": "^0.10.2", 19 | "chai": "^4.2.0", 20 | "prettier": "^2.2.1", 21 | "prettier-plugin-svelte": "^2.1.1", 22 | "snowpack": "^2.18.5" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /site/pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | dependencies: 2 | faker: 5.2.0 3 | svelte: 3.31.2 4 | tinro: 0.5.9 5 | devDependencies: 6 | '@snowpack/plugin-dotenv': 2.0.5 7 | '@snowpack/plugin-svelte': 3.4.1_svelte@3.31.2 8 | '@snowpack/web-test-runner-plugin': 0.1.5_514cdb5b3bd43be7bc36981e71b23030 9 | '@testing-library/svelte': 3.0.3_svelte@3.31.2 10 | '@types/faker': 5.1.5 11 | '@web/test-runner': 0.10.2 12 | chai: 4.2.0 13 | prettier: 2.2.1 14 | prettier-plugin-svelte: 2.1.1_prettier@2.2.1+svelte@3.31.2 15 | snowpack: 2.18.5 16 | lockfileVersion: 5.2 17 | packages: 18 | /@babel/code-frame/7.12.11: 19 | dependencies: 20 | '@babel/highlight': 7.10.4 21 | dev: true 22 | resolution: 23 | integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== 24 | /@babel/helper-validator-identifier/7.12.11: 25 | dev: true 26 | resolution: 27 | integrity: sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== 28 | /@babel/highlight/7.10.4: 29 | dependencies: 30 | '@babel/helper-validator-identifier': 7.12.11 31 | chalk: 2.4.2 32 | js-tokens: 4.0.0 33 | dev: true 34 | resolution: 35 | integrity: sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== 36 | /@babel/runtime-corejs3/7.12.5: 37 | dependencies: 38 | core-js-pure: 3.8.2 39 | regenerator-runtime: 0.13.7 40 | dev: true 41 | resolution: 42 | integrity: sha512-roGr54CsTmNPPzZoCP1AmDXuBoNao7tnSA83TXTwt+UK5QVyh1DIJnrgYRPWKCF2flqZQXwa7Yr8v7VmLzF0YQ== 43 | /@babel/runtime/7.12.5: 44 | dependencies: 45 | regenerator-runtime: 0.13.7 46 | dev: true 47 | resolution: 48 | integrity: sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== 49 | /@jest/types/26.6.2: 50 | dependencies: 51 | '@types/istanbul-lib-coverage': 2.0.3 52 | '@types/istanbul-reports': 3.0.0 53 | '@types/node': 14.14.20 54 | '@types/yargs': 15.0.12 55 | chalk: 4.1.0 56 | dev: true 57 | engines: 58 | node: '>= 10.14.2' 59 | resolution: 60 | integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== 61 | /@nodelib/fs.scandir/2.1.4: 62 | dependencies: 63 | '@nodelib/fs.stat': 2.0.4 64 | run-parallel: 1.1.10 65 | dev: true 66 | engines: 67 | node: '>= 8' 68 | resolution: 69 | integrity: sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== 70 | /@nodelib/fs.stat/2.0.4: 71 | dev: true 72 | engines: 73 | node: '>= 8' 74 | resolution: 75 | integrity: sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== 76 | /@nodelib/fs.walk/1.2.6: 77 | dependencies: 78 | '@nodelib/fs.scandir': 2.1.4 79 | fastq: 1.10.0 80 | dev: true 81 | engines: 82 | node: '>= 8' 83 | resolution: 84 | integrity: sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== 85 | /@npmcli/move-file/1.0.1: 86 | dependencies: 87 | mkdirp: 1.0.4 88 | dev: true 89 | engines: 90 | node: '>=10' 91 | resolution: 92 | integrity: sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw== 93 | /@rollup/plugin-alias/3.1.1_rollup@2.36.1: 94 | dependencies: 95 | rollup: 2.36.1 96 | slash: 3.0.0 97 | dev: true 98 | engines: 99 | node: '>=8.0.0' 100 | peerDependencies: 101 | rollup: ^1.20.0||^2.0.0 102 | resolution: 103 | integrity: sha512-hNcQY4bpBUIvxekd26DBPgF7BT4mKVNDF5tBG4Zi+3IgwLxGYRY0itHs9D0oLVwXM5pvJDWJlBQro+au8WaUWw== 104 | /@rollup/plugin-commonjs/16.0.0_rollup@2.36.1: 105 | dependencies: 106 | '@rollup/pluginutils': 3.1.0_rollup@2.36.1 107 | commondir: 1.0.1 108 | estree-walker: 2.0.2 109 | glob: 7.1.6 110 | is-reference: 1.2.1 111 | magic-string: 0.25.7 112 | resolve: 1.19.0 113 | rollup: 2.36.1 114 | dev: true 115 | engines: 116 | node: '>= 8.0.0' 117 | peerDependencies: 118 | rollup: ^2.30.0 119 | resolution: 120 | integrity: sha512-LuNyypCP3msCGVQJ7ki8PqYdpjfEkE/xtFa5DqlF+7IBD0JsfMZ87C58heSwIMint58sAUZbt3ITqOmdQv/dXw== 121 | /@rollup/plugin-inject/4.0.2_rollup@2.36.1: 122 | dependencies: 123 | '@rollup/pluginutils': 3.1.0_rollup@2.36.1 124 | estree-walker: 1.0.1 125 | magic-string: 0.25.7 126 | rollup: 2.36.1 127 | dev: true 128 | peerDependencies: 129 | rollup: ^1.20.0 || ^2.0.0 130 | resolution: 131 | integrity: sha512-TSLMA8waJ7Dmgmoc8JfPnwUwVZgLjjIAM6MqeIFqPO2ODK36JqE0Cf2F54UTgCUuW8da93Mvoj75a6KAVWgylw== 132 | /@rollup/plugin-json/4.1.0_rollup@2.36.1: 133 | dependencies: 134 | '@rollup/pluginutils': 3.1.0_rollup@2.36.1 135 | rollup: 2.36.1 136 | dev: true 137 | peerDependencies: 138 | rollup: ^1.20.0 || ^2.0.0 139 | resolution: 140 | integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw== 141 | /@rollup/plugin-node-resolve/10.0.0: 142 | dependencies: 143 | '@rollup/pluginutils': 3.1.0 144 | '@types/resolve': 1.17.1 145 | builtin-modules: 3.2.0 146 | deepmerge: 4.2.2 147 | is-module: 1.0.0 148 | resolve: 1.19.0 149 | dev: true 150 | engines: 151 | node: '>= 10.0.0' 152 | peerDependencies: 153 | rollup: ^1.20.0||^2.0.0 154 | resolution: 155 | integrity: sha512-sNijGta8fqzwA1VwUEtTvWCx2E7qC70NMsDh4ZG13byAXYigBNZMxALhKUSycBks5gupJdq0lFrKumFrRZ8H3A== 156 | /@rollup/plugin-node-resolve/10.0.0_rollup@2.36.1: 157 | dependencies: 158 | '@rollup/pluginutils': 3.1.0_rollup@2.36.1 159 | '@types/resolve': 1.17.1 160 | builtin-modules: 3.2.0 161 | deepmerge: 4.2.2 162 | is-module: 1.0.0 163 | resolve: 1.19.0 164 | rollup: 2.36.1 165 | dev: true 166 | engines: 167 | node: '>= 10.0.0' 168 | peerDependencies: 169 | rollup: ^1.20.0||^2.0.0 170 | resolution: 171 | integrity: sha512-sNijGta8fqzwA1VwUEtTvWCx2E7qC70NMsDh4ZG13byAXYigBNZMxALhKUSycBks5gupJdq0lFrKumFrRZ8H3A== 172 | /@rollup/plugin-replace/2.3.4_rollup@2.36.1: 173 | dependencies: 174 | '@rollup/pluginutils': 3.1.0_rollup@2.36.1 175 | magic-string: 0.25.7 176 | rollup: 2.36.1 177 | dev: true 178 | peerDependencies: 179 | rollup: ^1.20.0 || ^2.0.0 180 | resolution: 181 | integrity: sha512-waBhMzyAtjCL1GwZes2jaE9MjuQ/DQF2BatH3fRivUF3z0JBFrU0U6iBNC/4WR+2rLKhaAhPWDNPYp4mI6RqdQ== 182 | /@rollup/pluginutils/3.1.0: 183 | dependencies: 184 | '@types/estree': 0.0.39 185 | estree-walker: 1.0.1 186 | picomatch: 2.2.2 187 | dev: true 188 | engines: 189 | node: '>= 8.0.0' 190 | peerDependencies: 191 | rollup: ^1.20.0||^2.0.0 192 | resolution: 193 | integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== 194 | /@rollup/pluginutils/3.1.0_rollup@2.36.1: 195 | dependencies: 196 | '@types/estree': 0.0.39 197 | estree-walker: 1.0.1 198 | picomatch: 2.2.2 199 | rollup: 2.36.1 200 | dev: true 201 | engines: 202 | node: '>= 8.0.0' 203 | peerDependencies: 204 | rollup: ^1.20.0||^2.0.0 205 | resolution: 206 | integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== 207 | /@sindresorhus/is/4.0.0: 208 | dev: true 209 | engines: 210 | node: '>=10' 211 | resolution: 212 | integrity: sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ== 213 | /@snowpack/plugin-build-script/2.0.12: 214 | dependencies: 215 | execa: 4.1.0 216 | npm-run-path: 4.0.1 217 | dev: true 218 | resolution: 219 | integrity: sha512-v4Kcmu8x0C5iqPbI8w1vMyT6ZVVeh/Z4LTFeTJx+nLm5VKdQJsLyLarI2YhOuQEGB/RZeR4PxvAJBZn1xcH6Bw== 220 | /@snowpack/plugin-dotenv/2.0.5: 221 | dependencies: 222 | dotenv: 8.2.0 223 | dotenv-expand: 5.1.0 224 | dev: true 225 | resolution: 226 | integrity: sha512-y54lwYRDpTfDTU3uopHLND0DKIjjyWiYxhvOPfZvC4OpOd7UIRwMdSOd5XLZJPEBJ4BD38lDLiXh+ODfNDqhnQ== 227 | /@snowpack/plugin-run-script/2.2.1: 228 | dependencies: 229 | execa: 4.1.0 230 | npm-run-path: 4.0.1 231 | dev: true 232 | resolution: 233 | integrity: sha512-TuYOtcTrJJnm7oMtAQCZN8/GEXI6Tumtk3MEKNhka/id9LrHdUvaYZ9+yxj/n4hep9/kJ0Y7SlweL32L5Zy0Ow== 234 | /@snowpack/plugin-svelte/3.4.1_svelte@3.31.2: 235 | dependencies: 236 | rollup-plugin-svelte: 7.0.0_svelte@3.31.2 237 | svelte: 3.31.2 238 | svelte-hmr: 0.12.2_svelte@3.31.2 239 | svelte-preprocess: 4.6.1_svelte@3.31.2 240 | dev: true 241 | peerDependencies: 242 | svelte: ^3.21.0 243 | resolution: 244 | integrity: sha512-wT25m5wmDz9mdnAA0lxgj0ixJc09UL1vSCpS8dADEDM5GU28+mqGa/64XsSulQyeziljJGo/p9pm+yj6xcdQiw== 245 | /@snowpack/web-test-runner-plugin/0.1.5_514cdb5b3bd43be7bc36981e71b23030: 246 | dependencies: 247 | '@web/test-runner': 0.10.2 248 | snowpack: 2.18.5 249 | dev: true 250 | peerDependencies: 251 | '@web/test-runner': ^0.10.0 252 | snowpack: ^2.14.3 253 | resolution: 254 | integrity: sha512-aeX08rgqR4WYexGtwnY7nZCjbkzIMK9RIvhNVtyg8Xr6VF9HgCOYnTo2rp/y1PWenUba3o2cYAGcl6RuBIXLbw== 255 | /@szmarczak/http-timer/4.0.5: 256 | dependencies: 257 | defer-to-connect: 2.0.0 258 | dev: true 259 | engines: 260 | node: '>=10' 261 | resolution: 262 | integrity: sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== 263 | /@testing-library/dom/7.29.1: 264 | dependencies: 265 | '@babel/code-frame': 7.12.11 266 | '@babel/runtime': 7.12.5 267 | '@types/aria-query': 4.2.0 268 | aria-query: 4.2.2 269 | chalk: 4.1.0 270 | dom-accessibility-api: 0.5.4 271 | lz-string: 1.4.4 272 | pretty-format: 26.6.2 273 | dev: true 274 | engines: 275 | node: '>=10' 276 | resolution: 277 | integrity: sha512-6BU7vAjKuMspCy9QQEtbWgmkuXi/yOSZo3ANdvZmNQW8N/WQGjO9cvlcA5EFJaPtp2hL1RAaPGpCXxumijUxCg== 278 | /@testing-library/svelte/3.0.3_svelte@3.31.2: 279 | dependencies: 280 | '@testing-library/dom': 7.29.1 281 | svelte: 3.31.2 282 | dev: true 283 | engines: 284 | node: '>= 8' 285 | peerDependencies: 286 | svelte: 3.x 287 | resolution: 288 | integrity: sha512-GxafAllShGM2nkntFGURZ7fYVlUYwv7K62lqv1aFqtTYzzeZ2Cu8zTVhtE/Qt3bk2zMl6+FPKP03wjLip/G8mA== 289 | /@types/accepts/1.3.5: 290 | dependencies: 291 | '@types/node': 14.14.20 292 | dev: true 293 | resolution: 294 | integrity: sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== 295 | /@types/aria-query/4.2.0: 296 | dev: true 297 | resolution: 298 | integrity: sha512-iIgQNzCm0v7QMhhe4Jjn9uRh+I6GoPmt03CbEtwx3ao8/EfoQcmgtqH4vQ5Db/lxiIGaWDv6nwvunuh0RyX0+A== 299 | /@types/babel__code-frame/7.0.2: 300 | dev: true 301 | resolution: 302 | integrity: sha512-imO+jT/yjOKOAS5GQZ8SDtwiIloAGGr6OaZDKB0V5JVaSfGZLat5K5/ZRtyKW6R60XHV3RHYPTFfhYb+wDKyKg== 303 | /@types/body-parser/1.19.0: 304 | dependencies: 305 | '@types/connect': 3.4.34 306 | '@types/node': 14.14.20 307 | dev: true 308 | resolution: 309 | integrity: sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ== 310 | /@types/cacheable-request/6.0.1: 311 | dependencies: 312 | '@types/http-cache-semantics': 4.0.0 313 | '@types/keyv': 3.1.1 314 | '@types/node': 14.14.20 315 | '@types/responselike': 1.0.0 316 | dev: true 317 | resolution: 318 | integrity: sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== 319 | /@types/cheerio/0.22.22: 320 | dependencies: 321 | '@types/node': 14.14.20 322 | dev: true 323 | resolution: 324 | integrity: sha512-05DYX4zU96IBfZFY+t3Mh88nlwSMtmmzSYaQkKN48T495VV1dkHSah6qYyDTN5ngaS0i0VonH37m+RuzSM0YiA== 325 | /@types/command-line-args/5.0.0: 326 | dev: true 327 | resolution: 328 | integrity: sha512-4eOPXyn5DmP64MCMF8ePDvdlvlzt2a+F8ZaVjqmh2yFCpGjc1kI3kGnCFYX9SCsGTjQcWIyVZ86IHCEyjy/MNg== 329 | /@types/connect/3.4.34: 330 | dependencies: 331 | '@types/node': 14.14.20 332 | dev: true 333 | resolution: 334 | integrity: sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ== 335 | /@types/content-disposition/0.5.3: 336 | dev: true 337 | resolution: 338 | integrity: sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg== 339 | /@types/cookies/0.7.6: 340 | dependencies: 341 | '@types/connect': 3.4.34 342 | '@types/express': 4.17.9 343 | '@types/keygrip': 1.0.2 344 | '@types/node': 14.14.20 345 | dev: true 346 | resolution: 347 | integrity: sha512-FK4U5Qyn7/Sc5ih233OuHO0qAkOpEcD/eG6584yEiLKizTFRny86qHLe/rej3HFQrkBuUjF4whFliAdODbVN/w== 348 | /@types/estree/0.0.39: 349 | dev: true 350 | resolution: 351 | integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== 352 | /@types/estree/0.0.45: 353 | dev: true 354 | resolution: 355 | integrity: sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g== 356 | /@types/express-serve-static-core/4.17.17: 357 | dependencies: 358 | '@types/node': 14.14.20 359 | '@types/qs': 6.9.5 360 | '@types/range-parser': 1.2.3 361 | dev: true 362 | resolution: 363 | integrity: sha512-YYlVaCni5dnHc+bLZfY908IG1+x5xuibKZMGv8srKkvtul3wUuanYvpIj9GXXoWkQbaAdR+kgX46IETKUALWNQ== 364 | /@types/express/4.17.9: 365 | dependencies: 366 | '@types/body-parser': 1.19.0 367 | '@types/express-serve-static-core': 4.17.17 368 | '@types/qs': 6.9.5 369 | '@types/serve-static': 1.13.8 370 | dev: true 371 | resolution: 372 | integrity: sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw== 373 | /@types/faker/5.1.5: 374 | dev: true 375 | resolution: 376 | integrity: sha512-2uEQFb7bsx68rqD4F8q95wZq6LTLOyexjv6BnvJogCO4jStkyc6IDEkODPQcWfovI6g6M3uPQ2/uD/oedJKkNw== 377 | /@types/http-assert/1.5.1: 378 | dev: true 379 | resolution: 380 | integrity: sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ== 381 | /@types/http-cache-semantics/4.0.0: 382 | dev: true 383 | resolution: 384 | integrity: sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== 385 | /@types/http-errors/1.8.0: 386 | dev: true 387 | resolution: 388 | integrity: sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA== 389 | /@types/istanbul-lib-coverage/2.0.3: 390 | dev: true 391 | resolution: 392 | integrity: sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== 393 | /@types/istanbul-lib-report/3.0.0: 394 | dependencies: 395 | '@types/istanbul-lib-coverage': 2.0.3 396 | dev: true 397 | resolution: 398 | integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== 399 | /@types/istanbul-reports/3.0.0: 400 | dependencies: 401 | '@types/istanbul-lib-report': 3.0.0 402 | dev: true 403 | resolution: 404 | integrity: sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== 405 | /@types/keygrip/1.0.2: 406 | dev: true 407 | resolution: 408 | integrity: sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw== 409 | /@types/keyv/3.1.1: 410 | dependencies: 411 | '@types/node': 14.14.20 412 | dev: true 413 | resolution: 414 | integrity: sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== 415 | /@types/koa-compose/3.2.5: 416 | dependencies: 417 | '@types/koa': 2.11.6 418 | dev: true 419 | resolution: 420 | integrity: sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ== 421 | /@types/koa/2.11.6: 422 | dependencies: 423 | '@types/accepts': 1.3.5 424 | '@types/content-disposition': 0.5.3 425 | '@types/cookies': 0.7.6 426 | '@types/http-assert': 1.5.1 427 | '@types/http-errors': 1.8.0 428 | '@types/keygrip': 1.0.2 429 | '@types/koa-compose': 3.2.5 430 | '@types/node': 14.14.20 431 | dev: true 432 | resolution: 433 | integrity: sha512-BhyrMj06eQkk04C97fovEDQMpLpd2IxCB4ecitaXwOKGq78Wi2tooaDOWOFGajPk8IkQOAtMppApgSVkYe1F/A== 434 | /@types/mime/2.0.3: 435 | dev: true 436 | resolution: 437 | integrity: sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q== 438 | /@types/mocha/8.2.0: 439 | dev: true 440 | resolution: 441 | integrity: sha512-/Sge3BymXo4lKc31C8OINJgXLaw+7vL1/L1pGiBNpGrBiT8FQiaFpSYV0uhTaG4y78vcMBTMFsWaHDvuD+xGzQ== 442 | /@types/node/14.14.20: 443 | dev: true 444 | resolution: 445 | integrity: sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A== 446 | /@types/parse-json/4.0.0: 447 | dev: true 448 | resolution: 449 | integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== 450 | /@types/parse5/5.0.3: 451 | dev: true 452 | resolution: 453 | integrity: sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== 454 | /@types/pug/2.0.4: 455 | dev: true 456 | resolution: 457 | integrity: sha1-h3L80EGOPNLMFxVV1zAHQVBR9LI= 458 | /@types/puppeteer-core/2.1.0: 459 | dependencies: 460 | '@types/puppeteer': 2.1.5 461 | dev: true 462 | resolution: 463 | integrity: sha512-q1s+x/3HuXQN1Xo9eVhCfRJ2SNfHA/a641iSZQRNnRH55t4jX7TsNWxQN0drLqwbz/Kp8nodJ5rTNYEIKX//gg== 464 | /@types/puppeteer/2.1.5: 465 | dependencies: 466 | '@types/node': 14.14.20 467 | dev: true 468 | resolution: 469 | integrity: sha512-ZZKAcX5XVEtSK+CLxz6FhofPt8y1D3yDtjGZHDFBZ4bGe8v2aaS6qBDHY4crruvpb4jsO7HKrPEx39IIqsZAUg== 470 | /@types/qs/6.9.5: 471 | dev: true 472 | resolution: 473 | integrity: sha512-/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ== 474 | /@types/range-parser/1.2.3: 475 | dev: true 476 | resolution: 477 | integrity: sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== 478 | /@types/resolve/1.17.1: 479 | dependencies: 480 | '@types/node': 14.14.20 481 | dev: true 482 | resolution: 483 | integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== 484 | /@types/responselike/1.0.0: 485 | dependencies: 486 | '@types/node': 14.14.20 487 | dev: true 488 | resolution: 489 | integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== 490 | /@types/sass/1.16.0: 491 | dependencies: 492 | '@types/node': 14.14.20 493 | dev: true 494 | resolution: 495 | integrity: sha512-2XZovu4NwcqmtZtsBR5XYLw18T8cBCnU2USFHTnYLLHz9fkhnoEMoDsqShJIOFsFhn5aJHjweiUUdTrDGujegA== 496 | /@types/serve-static/1.13.8: 497 | dependencies: 498 | '@types/mime': 2.0.3 499 | '@types/node': 14.14.20 500 | dev: true 501 | resolution: 502 | integrity: sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA== 503 | /@types/ws/7.4.0: 504 | dependencies: 505 | '@types/node': 14.14.20 506 | dev: true 507 | resolution: 508 | integrity: sha512-Y29uQ3Uy+58bZrFLhX36hcI3Np37nqWE7ky5tjiDoy1GDZnIwVxS0CgF+s+1bXMzjKBFy+fqaRfb708iNzdinw== 509 | /@types/yargs-parser/20.2.0: 510 | dev: true 511 | resolution: 512 | integrity: sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== 513 | /@types/yargs/15.0.12: 514 | dependencies: 515 | '@types/yargs-parser': 20.2.0 516 | dev: true 517 | resolution: 518 | integrity: sha512-f+fD/fQAo3BCbCDlrUpznF1A5Zp9rB0noS5vnoormHSIPFKL0Z2DcUJ3Gxp5ytH4uLRNxy7AwYUC9exZzqGMAw== 519 | /@types/yauzl/2.9.1: 520 | dependencies: 521 | '@types/node': 14.14.20 522 | dev: true 523 | optional: true 524 | resolution: 525 | integrity: sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA== 526 | /@web/browser-logs/0.1.6: 527 | dev: true 528 | engines: 529 | node: '>=10.0.0' 530 | resolution: 531 | integrity: sha512-AQ3y3W5CLC3b68PYWMnimTApjDsgk6qJt82bPTJTxzCp3HZaUxuZJeMxrtt7FrtmaPt6E56pJobu1pcaqn1jcA== 532 | /@web/config-loader/0.1.3: 533 | dependencies: 534 | semver: 7.3.4 535 | dev: true 536 | engines: 537 | node: '>=10.0.0' 538 | resolution: 539 | integrity: sha512-XVKH79pk4d3EHRhofete8eAnqto1e8mCRAqPV00KLNFzCWSe8sWmLnqKCqkPNARC6nksMaGrATnA5sPDRllMpQ== 540 | /@web/dev-server-core/0.2.19: 541 | dependencies: 542 | '@types/koa': 2.11.6 543 | '@types/ws': 7.4.0 544 | '@web/parse5-utils': 1.1.2 545 | chokidar: 3.5.0 546 | clone: 2.1.2 547 | es-module-lexer: 0.3.26 548 | get-stream: 6.0.0 549 | is-stream: 2.0.0 550 | isbinaryfile: 4.0.6 551 | koa: 2.13.1 552 | koa-etag: 4.0.0 553 | koa-static: 5.0.0 554 | lru-cache: 6.0.0 555 | mime-types: 2.1.28 556 | parse5: 6.0.1 557 | picomatch: 2.2.2 558 | ws: 7.4.2 559 | dev: true 560 | engines: 561 | node: '>=10.0.0' 562 | resolution: 563 | integrity: sha512-TaxwNsvj6pfdKLyqZfYIU1ikh+Q2ZlUwBpXRYWtdG6r2GL232hR+Zm/KooBBdwpOCjuMMlkzz70ImYnD6+mPIg== 564 | /@web/dev-server-rollup/0.2.13: 565 | dependencies: 566 | '@web/dev-server-core': 0.2.19 567 | chalk: 4.1.0 568 | parse5: 6.0.1 569 | rollup: 2.36.1 570 | whatwg-url: 8.4.0 571 | dev: true 572 | engines: 573 | node: '>=10.0.0' 574 | resolution: 575 | integrity: sha512-cJe/8m5GzDPTDbaY/8kMhVRdkxlB2ZXija7Zraq+osbsen5ALXU+bqZgQfknr5bRm4O9NGuBO8l53uZxJcYUTw== 576 | /@web/dev-server/0.0.29: 577 | dependencies: 578 | '@babel/code-frame': 7.12.11 579 | '@rollup/plugin-node-resolve': 10.0.0 580 | '@types/command-line-args': 5.0.0 581 | '@web/config-loader': 0.1.3 582 | '@web/dev-server-core': 0.2.19 583 | '@web/dev-server-rollup': 0.2.13 584 | camelcase: 6.2.0 585 | chalk: 4.1.0 586 | command-line-args: 5.1.1 587 | command-line-usage: 6.1.1 588 | debounce: 1.2.0 589 | deepmerge: 4.2.2 590 | ip: 1.1.5 591 | open: 7.3.1 592 | portfinder: 1.0.28 593 | dev: true 594 | engines: 595 | node: '>=10.0.0' 596 | hasBin: true 597 | resolution: 598 | integrity: sha512-Y28qjWToqDcczQoFTLrNPS0l/yfDYpGt1oDF+EmRtuz488CG6x4GEmZsi/Zh9xl0aLhHRAdjOypakvocpCM4AQ== 599 | /@web/parse5-utils/1.1.2: 600 | dependencies: 601 | '@types/parse5': 5.0.3 602 | parse5: 6.0.1 603 | dev: true 604 | engines: 605 | node: '>=10.0.0' 606 | resolution: 607 | integrity: sha512-/JQHbK53BmYiFK2igr2B+Psl2Ivp2ju75Nx1InZweTbxLQNGG9yUBaudER85aqebIH6smkPkKwVtpdBXBiwy1A== 608 | /@web/test-runner-chrome/0.7.3: 609 | dependencies: 610 | '@types/puppeteer-core': 2.1.0 611 | '@web/test-runner-core': 0.8.12 612 | '@web/test-runner-coverage-v8': 0.2.3 613 | chrome-launcher: 0.13.4 614 | puppeteer-core: 5.5.0 615 | dev: true 616 | engines: 617 | node: '>=10.0.0' 618 | resolution: 619 | integrity: sha512-wf4SZ8nPTontLML/QwAmsR/+e9+rcuPiirbz63ulsBpX939Kn6LuOPPF4axL66gxJJ/BP++PJeCWtsCnowzveA== 620 | /@web/test-runner-cli/0.6.14: 621 | dependencies: 622 | '@babel/code-frame': 7.12.11 623 | '@types/babel__code-frame': 7.0.2 624 | '@web/browser-logs': 0.1.6 625 | '@web/config-loader': 0.1.3 626 | '@web/test-runner-chrome': 0.7.3 627 | '@web/test-runner-core': 0.8.12 628 | camelcase: 6.2.0 629 | chalk: 4.1.0 630 | cli-cursor: 3.1.0 631 | command-line-args: 5.1.1 632 | command-line-usage: 6.1.1 633 | convert-source-map: 1.7.0 634 | deepmerge: 4.2.2 635 | diff: 5.0.0 636 | globby: 11.0.2 637 | ip: 1.1.5 638 | istanbul-lib-report: 3.0.0 639 | istanbul-reports: 3.0.2 640 | log-update: 4.0.0 641 | open: 7.3.1 642 | portfinder: 1.0.28 643 | source-map: 0.7.3 644 | dev: true 645 | engines: 646 | node: '>=10.0.0' 647 | resolution: 648 | integrity: sha512-NCXUPl7IedRP4a07F0nz+rvlR3Zhd+CWLfmsJQs5vr4B3+uoUinHuOSQYmyavtZDOBTonDJn/dqAzNmasPa3Mg== 649 | /@web/test-runner-commands/0.2.1: 650 | dependencies: 651 | '@web/test-runner-core': 0.8.12 652 | dev: true 653 | engines: 654 | node: '>=10.0.0' 655 | resolution: 656 | integrity: sha512-usbgVGIihxfHIPv1FPDueEzET51SM8X6ZVZY+k8MgFzab018JyhqvkDVEgRVmSfg1gWKvqRdA5Qpr11b+GGBeA== 657 | /@web/test-runner-core/0.8.12: 658 | dependencies: 659 | '@babel/code-frame': 7.12.11 660 | '@web/browser-logs': 0.1.6 661 | '@web/dev-server-core': 0.2.19 662 | co-body: 6.1.0 663 | debounce: 1.2.0 664 | dependency-graph: 0.9.0 665 | globby: 11.0.2 666 | istanbul-lib-coverage: 3.0.0 667 | picomatch: 2.2.2 668 | uuid: 8.3.2 669 | dev: true 670 | engines: 671 | node: '>=10.0.0' 672 | resolution: 673 | integrity: sha512-QFAh/g/pI5qzDKo/qxSMpmF4NGkxjxwCNvBLgGd2P1RdZLsJuKtm6bt7fX0LaG4JYX30QHWgjNnqX+1Ft2hmuw== 674 | /@web/test-runner-coverage-v8/0.2.3: 675 | dependencies: 676 | '@web/test-runner-core': 0.8.12 677 | istanbul-lib-coverage: 3.0.0 678 | v8-to-istanbul: 7.1.0 679 | dev: true 680 | engines: 681 | node: '>=10.0.0' 682 | resolution: 683 | integrity: sha512-vfDjbENCJsDxY2NwAclOKC5y9MkI+KIx0U/JSPZsowzx2dYZHOqKQfRknZa2nyC9wf3pqbBUrgy0g231t5nkyQ== 684 | /@web/test-runner-mocha/0.5.1: 685 | dependencies: 686 | '@types/mocha': 8.2.0 687 | '@web/test-runner-core': 0.8.12 688 | dev: true 689 | engines: 690 | node: '>=10.0.0' 691 | resolution: 692 | integrity: sha512-/8VBh3nP2sE/a320CfRI/J1TLT8ChPy0xGBafh3gg59+jOTtHCfZzHet7nre/VTOOvu1H24XEZiyhMFud6WVXQ== 693 | /@web/test-runner/0.10.2: 694 | dependencies: 695 | '@web/config-loader': 0.1.3 696 | '@web/dev-server': 0.0.29 697 | '@web/test-runner-chrome': 0.7.3 698 | '@web/test-runner-cli': 0.6.14 699 | '@web/test-runner-commands': 0.2.1 700 | '@web/test-runner-core': 0.8.12 701 | '@web/test-runner-mocha': 0.5.1 702 | command-line-args: 5.1.1 703 | deepmerge: 4.2.2 704 | globby: 11.0.2 705 | dev: true 706 | engines: 707 | node: '>=10.0.0' 708 | hasBin: true 709 | resolution: 710 | integrity: sha512-nTTv5q8VvC4nMOeD3ATaH/SU1Ief5odCqOv7SpsuvGjYz9hrQJ0y4MN+lBnYZ+jA+vc9cXAIeXKbbsJPmnu8FA== 711 | /accepts/1.3.7: 712 | dependencies: 713 | mime-types: 2.1.28 714 | negotiator: 0.6.2 715 | dev: true 716 | engines: 717 | node: '>= 0.6' 718 | resolution: 719 | integrity: sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== 720 | /address/1.1.2: 721 | dev: true 722 | engines: 723 | node: '>= 0.12.0' 724 | resolution: 725 | integrity: sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== 726 | /agent-base/5.1.1: 727 | dev: true 728 | engines: 729 | node: '>= 6.0.0' 730 | resolution: 731 | integrity: sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g== 732 | /aggregate-error/3.1.0: 733 | dependencies: 734 | clean-stack: 2.2.0 735 | indent-string: 4.0.0 736 | dev: true 737 | engines: 738 | node: '>=8' 739 | resolution: 740 | integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== 741 | /ansi-escapes/4.3.1: 742 | dependencies: 743 | type-fest: 0.11.0 744 | dev: true 745 | engines: 746 | node: '>=8' 747 | resolution: 748 | integrity: sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== 749 | /ansi-regex/5.0.0: 750 | dev: true 751 | engines: 752 | node: '>=8' 753 | resolution: 754 | integrity: sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== 755 | /ansi-styles/3.2.1: 756 | dependencies: 757 | color-convert: 1.9.3 758 | dev: true 759 | engines: 760 | node: '>=4' 761 | resolution: 762 | integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 763 | /ansi-styles/4.3.0: 764 | dependencies: 765 | color-convert: 2.0.1 766 | dev: true 767 | engines: 768 | node: '>=8' 769 | resolution: 770 | integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 771 | /any-promise/1.3.0: 772 | dev: true 773 | resolution: 774 | integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8= 775 | /anymatch/3.1.1: 776 | dependencies: 777 | normalize-path: 3.0.0 778 | picomatch: 2.2.2 779 | dev: true 780 | engines: 781 | node: '>= 8' 782 | resolution: 783 | integrity: sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== 784 | /aria-query/4.2.2: 785 | dependencies: 786 | '@babel/runtime': 7.12.5 787 | '@babel/runtime-corejs3': 7.12.5 788 | dev: true 789 | engines: 790 | node: '>=6.0' 791 | resolution: 792 | integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== 793 | /array-back/3.1.0: 794 | dev: true 795 | engines: 796 | node: '>=6' 797 | resolution: 798 | integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== 799 | /array-back/4.0.1: 800 | dev: true 801 | engines: 802 | node: '>=8' 803 | resolution: 804 | integrity: sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg== 805 | /array-union/2.1.0: 806 | dev: true 807 | engines: 808 | node: '>=8' 809 | resolution: 810 | integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== 811 | /assert/1.5.0: 812 | dependencies: 813 | object-assign: 4.1.1 814 | util: 0.10.3 815 | dev: true 816 | resolution: 817 | integrity: sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== 818 | /assertion-error/1.1.0: 819 | dev: true 820 | resolution: 821 | integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== 822 | /astral-regex/2.0.0: 823 | dev: true 824 | engines: 825 | node: '>=8' 826 | resolution: 827 | integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== 828 | /async/2.6.3: 829 | dependencies: 830 | lodash: 4.17.20 831 | dev: true 832 | resolution: 833 | integrity: sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== 834 | /balanced-match/1.0.0: 835 | dev: true 836 | resolution: 837 | integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 838 | /base64-js/1.5.1: 839 | dev: true 840 | resolution: 841 | integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== 842 | /big.js/5.2.2: 843 | dev: true 844 | resolution: 845 | integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== 846 | /binary-extensions/2.1.0: 847 | dev: true 848 | engines: 849 | node: '>=8' 850 | resolution: 851 | integrity: sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== 852 | /bl/4.0.3: 853 | dependencies: 854 | buffer: 5.7.1 855 | inherits: 2.0.4 856 | readable-stream: 3.6.0 857 | dev: true 858 | resolution: 859 | integrity: sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg== 860 | /boolbase/1.0.0: 861 | dev: true 862 | resolution: 863 | integrity: sha1-aN/1++YMUes3cl6p4+0xDcwed24= 864 | /brace-expansion/1.1.11: 865 | dependencies: 866 | balanced-match: 1.0.0 867 | concat-map: 0.0.1 868 | dev: true 869 | resolution: 870 | integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 871 | /braces/3.0.2: 872 | dependencies: 873 | fill-range: 7.0.1 874 | dev: true 875 | engines: 876 | node: '>=8' 877 | resolution: 878 | integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 879 | /buffer-crc32/0.2.13: 880 | dev: true 881 | resolution: 882 | integrity: sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= 883 | /buffer/5.7.1: 884 | dependencies: 885 | base64-js: 1.5.1 886 | ieee754: 1.2.1 887 | dev: true 888 | resolution: 889 | integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== 890 | /builtin-modules/3.2.0: 891 | dev: true 892 | engines: 893 | node: '>=6' 894 | resolution: 895 | integrity: sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== 896 | /builtins/1.0.3: 897 | dev: true 898 | resolution: 899 | integrity: sha1-y5T662HIaWRR2zZTThQi+U8K7og= 900 | /bytes/3.1.0: 901 | dev: true 902 | engines: 903 | node: '>= 0.8' 904 | resolution: 905 | integrity: sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== 906 | /cacache/15.0.5: 907 | dependencies: 908 | '@npmcli/move-file': 1.0.1 909 | chownr: 2.0.0 910 | fs-minipass: 2.1.0 911 | glob: 7.1.6 912 | infer-owner: 1.0.4 913 | lru-cache: 6.0.0 914 | minipass: 3.1.3 915 | minipass-collect: 1.0.2 916 | minipass-flush: 1.0.5 917 | minipass-pipeline: 1.2.4 918 | mkdirp: 1.0.4 919 | p-map: 4.0.0 920 | promise-inflight: 1.0.1 921 | rimraf: 3.0.2 922 | ssri: 8.0.0 923 | tar: 6.0.5 924 | unique-filename: 1.1.1 925 | dev: true 926 | engines: 927 | node: '>= 10' 928 | resolution: 929 | integrity: sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== 930 | /cache-content-type/1.0.1: 931 | dependencies: 932 | mime-types: 2.1.28 933 | ylru: 1.2.1 934 | dev: true 935 | engines: 936 | node: '>= 6.0.0' 937 | resolution: 938 | integrity: sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA== 939 | /cacheable-lookup/5.0.4: 940 | dev: true 941 | engines: 942 | node: '>=10.6.0' 943 | resolution: 944 | integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== 945 | /cacheable-request/7.0.1: 946 | dependencies: 947 | clone-response: 1.0.2 948 | get-stream: 5.2.0 949 | http-cache-semantics: 4.1.0 950 | keyv: 4.0.3 951 | lowercase-keys: 2.0.0 952 | normalize-url: 4.5.0 953 | responselike: 2.0.0 954 | dev: true 955 | engines: 956 | node: '>=8' 957 | resolution: 958 | integrity: sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw== 959 | /cachedir/2.3.0: 960 | dev: true 961 | engines: 962 | node: '>=6' 963 | resolution: 964 | integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== 965 | /callsites/3.1.0: 966 | dev: true 967 | engines: 968 | node: '>=6' 969 | resolution: 970 | integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 971 | /camelcase/6.2.0: 972 | dev: true 973 | engines: 974 | node: '>=10' 975 | resolution: 976 | integrity: sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== 977 | /chai/4.2.0: 978 | dependencies: 979 | assertion-error: 1.1.0 980 | check-error: 1.0.2 981 | deep-eql: 3.0.1 982 | get-func-name: 2.0.0 983 | pathval: 1.1.0 984 | type-detect: 4.0.8 985 | dev: true 986 | engines: 987 | node: '>=4' 988 | resolution: 989 | integrity: sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw== 990 | /chalk/2.4.2: 991 | dependencies: 992 | ansi-styles: 3.2.1 993 | escape-string-regexp: 1.0.5 994 | supports-color: 5.5.0 995 | dev: true 996 | engines: 997 | node: '>=4' 998 | resolution: 999 | integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 1000 | /chalk/4.1.0: 1001 | dependencies: 1002 | ansi-styles: 4.3.0 1003 | supports-color: 7.2.0 1004 | dev: true 1005 | engines: 1006 | node: '>=10' 1007 | resolution: 1008 | integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== 1009 | /check-error/1.0.2: 1010 | dev: true 1011 | resolution: 1012 | integrity: sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= 1013 | /cheerio-select-tmp/0.1.1: 1014 | dependencies: 1015 | css-select: 3.1.2 1016 | css-what: 4.0.0 1017 | domelementtype: 2.1.0 1018 | domhandler: 4.0.0 1019 | domutils: 2.4.4 1020 | deprecated: Use cheerio-select instead 1021 | dev: true 1022 | resolution: 1023 | integrity: sha512-YYs5JvbpU19VYJyj+F7oYrIE2BOll1/hRU7rEy/5+v9BzkSo3bK81iAeeQEMI92vRIxz677m72UmJUiVwwgjfQ== 1024 | /cheerio/1.0.0-rc.5: 1025 | dependencies: 1026 | cheerio-select-tmp: 0.1.1 1027 | dom-serializer: 1.2.0 1028 | domhandler: 4.0.0 1029 | entities: 2.1.0 1030 | htmlparser2: 6.0.0 1031 | parse5: 6.0.1 1032 | parse5-htmlparser2-tree-adapter: 6.0.1 1033 | dev: true 1034 | engines: 1035 | node: '>= 0.12' 1036 | resolution: 1037 | integrity: sha512-yoqps/VCaZgN4pfXtenwHROTp8NG6/Hlt4Jpz2FEP0ZJQ+ZUkVDd0hAPDNKhj3nakpfPt/CNs57yEtxD1bXQiw== 1038 | /chokidar/3.5.0: 1039 | dependencies: 1040 | anymatch: 3.1.1 1041 | braces: 3.0.2 1042 | glob-parent: 5.1.1 1043 | is-binary-path: 2.1.0 1044 | is-glob: 4.0.1 1045 | normalize-path: 3.0.0 1046 | readdirp: 3.5.0 1047 | dev: true 1048 | engines: 1049 | node: '>= 8.10.0' 1050 | optionalDependencies: 1051 | fsevents: 2.3.1 1052 | resolution: 1053 | integrity: sha512-JgQM9JS92ZbFR4P90EvmzNpSGhpPBGBSj10PILeDyYFwp4h2/D9OM03wsJ4zW1fEp4ka2DGrnUeD7FuvQ2aZ2Q== 1054 | /chownr/1.1.4: 1055 | dev: true 1056 | resolution: 1057 | integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== 1058 | /chownr/2.0.0: 1059 | dev: true 1060 | engines: 1061 | node: '>=10' 1062 | resolution: 1063 | integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== 1064 | /chrome-launcher/0.13.4: 1065 | dependencies: 1066 | '@types/node': 14.14.20 1067 | escape-string-regexp: 1.0.5 1068 | is-wsl: 2.2.0 1069 | lighthouse-logger: 1.2.0 1070 | mkdirp: 0.5.5 1071 | rimraf: 3.0.2 1072 | dev: true 1073 | resolution: 1074 | integrity: sha512-nnzXiDbGKjDSK6t2I+35OAPBy5Pw/39bgkb/ZAFwMhwJbdYBp6aH+vW28ZgtjdU890Q7D+3wN/tB8N66q5Gi2A== 1075 | /cjs-module-lexer/1.0.0: 1076 | dev: true 1077 | resolution: 1078 | integrity: sha512-bLSEjEwg4knnuXt7LIWegvgTOClk6ZonZY6g4CFGBly1EjRqVjTjI8Dwnb/dsu1PwJjYBKxnguE5bRTdk+bFOA== 1079 | /clean-stack/2.2.0: 1080 | dev: true 1081 | engines: 1082 | node: '>=6' 1083 | resolution: 1084 | integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== 1085 | /cli-cursor/3.1.0: 1086 | dependencies: 1087 | restore-cursor: 3.1.0 1088 | dev: true 1089 | engines: 1090 | node: '>=8' 1091 | resolution: 1092 | integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== 1093 | /clone-response/1.0.2: 1094 | dependencies: 1095 | mimic-response: 1.0.1 1096 | dev: true 1097 | resolution: 1098 | integrity: sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= 1099 | /clone/2.1.2: 1100 | dev: true 1101 | engines: 1102 | node: '>=0.8' 1103 | resolution: 1104 | integrity: sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= 1105 | /co-body/6.1.0: 1106 | dependencies: 1107 | inflation: 2.0.0 1108 | qs: 6.9.4 1109 | raw-body: 2.4.1 1110 | type-is: 1.6.18 1111 | dev: true 1112 | resolution: 1113 | integrity: sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ== 1114 | /co/4.6.0: 1115 | dev: true 1116 | engines: 1117 | iojs: '>= 1.0.0' 1118 | node: '>= 0.12.0' 1119 | resolution: 1120 | integrity: sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= 1121 | /color-convert/1.9.3: 1122 | dependencies: 1123 | color-name: 1.1.3 1124 | dev: true 1125 | resolution: 1126 | integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 1127 | /color-convert/2.0.1: 1128 | dependencies: 1129 | color-name: 1.1.4 1130 | dev: true 1131 | engines: 1132 | node: '>=7.0.0' 1133 | resolution: 1134 | integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 1135 | /color-name/1.1.3: 1136 | dev: true 1137 | resolution: 1138 | integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 1139 | /color-name/1.1.4: 1140 | dev: true 1141 | resolution: 1142 | integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 1143 | /colorette/1.2.1: 1144 | dev: true 1145 | resolution: 1146 | integrity: sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== 1147 | /command-line-args/5.1.1: 1148 | dependencies: 1149 | array-back: 3.1.0 1150 | find-replace: 3.0.0 1151 | lodash.camelcase: 4.3.0 1152 | typical: 4.0.0 1153 | dev: true 1154 | engines: 1155 | node: '>=4.0.0' 1156 | resolution: 1157 | integrity: sha512-hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg== 1158 | /command-line-usage/6.1.1: 1159 | dependencies: 1160 | array-back: 4.0.1 1161 | chalk: 2.4.2 1162 | table-layout: 1.0.1 1163 | typical: 5.2.0 1164 | dev: true 1165 | engines: 1166 | node: '>=8.0.0' 1167 | resolution: 1168 | integrity: sha512-F59pEuAR9o1SF/bD0dQBDluhpT4jJQNWUHEuVBqpDmCUo6gPjCi+m9fCWnWZVR/oG6cMTUms4h+3NPl74wGXvA== 1169 | /commondir/1.0.1: 1170 | dev: true 1171 | resolution: 1172 | integrity: sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= 1173 | /compressible/2.0.18: 1174 | dependencies: 1175 | mime-db: 1.45.0 1176 | dev: true 1177 | engines: 1178 | node: '>= 0.6' 1179 | resolution: 1180 | integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== 1181 | /concat-map/0.0.1: 1182 | dev: true 1183 | resolution: 1184 | integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 1185 | /content-disposition/0.5.3: 1186 | dependencies: 1187 | safe-buffer: 5.1.2 1188 | dev: true 1189 | engines: 1190 | node: '>= 0.6' 1191 | resolution: 1192 | integrity: sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== 1193 | /content-type/1.0.4: 1194 | dev: true 1195 | engines: 1196 | node: '>= 0.6' 1197 | resolution: 1198 | integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== 1199 | /convert-source-map/1.7.0: 1200 | dependencies: 1201 | safe-buffer: 5.1.2 1202 | dev: true 1203 | resolution: 1204 | integrity: sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== 1205 | /cookies/0.8.0: 1206 | dependencies: 1207 | depd: 2.0.0 1208 | keygrip: 1.1.0 1209 | dev: true 1210 | engines: 1211 | node: '>= 0.8' 1212 | resolution: 1213 | integrity: sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow== 1214 | /core-js-pure/3.8.2: 1215 | dev: true 1216 | requiresBuild: true 1217 | resolution: 1218 | integrity: sha512-v6zfIQqL/pzTVAbZvYUozsxNfxcFb6Ks3ZfEbuneJl3FW9Jb8F6vLWB6f+qTmAu72msUdyb84V8d/yBFf7FNnw== 1219 | /cosmiconfig/7.0.0: 1220 | dependencies: 1221 | '@types/parse-json': 4.0.0 1222 | import-fresh: 3.3.0 1223 | parse-json: 5.1.0 1224 | path-type: 4.0.0 1225 | yaml: 1.10.0 1226 | dev: true 1227 | engines: 1228 | node: '>=10' 1229 | resolution: 1230 | integrity: sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== 1231 | /cross-spawn/7.0.3: 1232 | dependencies: 1233 | path-key: 3.1.1 1234 | shebang-command: 2.0.0 1235 | which: 2.0.2 1236 | dev: true 1237 | engines: 1238 | node: '>= 8' 1239 | resolution: 1240 | integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 1241 | /css-select/3.1.2: 1242 | dependencies: 1243 | boolbase: 1.0.0 1244 | css-what: 4.0.0 1245 | domhandler: 4.0.0 1246 | domutils: 2.4.4 1247 | nth-check: 2.0.0 1248 | dev: true 1249 | resolution: 1250 | integrity: sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA== 1251 | /css-what/4.0.0: 1252 | dev: true 1253 | engines: 1254 | node: '>= 6' 1255 | resolution: 1256 | integrity: sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A== 1257 | /cssesc/3.0.0: 1258 | dev: true 1259 | engines: 1260 | node: '>=4' 1261 | hasBin: true 1262 | resolution: 1263 | integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== 1264 | /debounce/1.2.0: 1265 | dev: true 1266 | resolution: 1267 | integrity: sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg== 1268 | /debug/2.6.9: 1269 | dependencies: 1270 | ms: 2.0.0 1271 | dev: true 1272 | resolution: 1273 | integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 1274 | /debug/3.1.0: 1275 | dependencies: 1276 | ms: 2.0.0 1277 | dev: true 1278 | resolution: 1279 | integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== 1280 | /debug/3.2.7: 1281 | dependencies: 1282 | ms: 2.1.3 1283 | dev: true 1284 | resolution: 1285 | integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== 1286 | /debug/4.3.1: 1287 | dependencies: 1288 | ms: 2.1.2 1289 | dev: true 1290 | engines: 1291 | node: '>=6.0' 1292 | peerDependencies: 1293 | supports-color: '*' 1294 | peerDependenciesMeta: 1295 | supports-color: 1296 | optional: true 1297 | resolution: 1298 | integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== 1299 | /decompress-response/6.0.0: 1300 | dependencies: 1301 | mimic-response: 3.1.0 1302 | dev: true 1303 | engines: 1304 | node: '>=10' 1305 | resolution: 1306 | integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== 1307 | /deep-eql/3.0.1: 1308 | dependencies: 1309 | type-detect: 4.0.8 1310 | dev: true 1311 | engines: 1312 | node: '>=0.12' 1313 | resolution: 1314 | integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== 1315 | /deep-equal/1.0.1: 1316 | dev: true 1317 | resolution: 1318 | integrity: sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= 1319 | /deep-extend/0.6.0: 1320 | dev: true 1321 | engines: 1322 | node: '>=4.0.0' 1323 | resolution: 1324 | integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== 1325 | /deepmerge/4.2.2: 1326 | dev: true 1327 | engines: 1328 | node: '>=0.10.0' 1329 | resolution: 1330 | integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== 1331 | /defer-to-connect/2.0.0: 1332 | dev: true 1333 | engines: 1334 | node: '>=10' 1335 | resolution: 1336 | integrity: sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg== 1337 | /delegates/1.0.0: 1338 | dev: true 1339 | resolution: 1340 | integrity: sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= 1341 | /depd/1.1.2: 1342 | dev: true 1343 | engines: 1344 | node: '>= 0.6' 1345 | resolution: 1346 | integrity: sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= 1347 | /depd/2.0.0: 1348 | dev: true 1349 | engines: 1350 | node: '>= 0.8' 1351 | resolution: 1352 | integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== 1353 | /dependency-graph/0.9.0: 1354 | dev: true 1355 | engines: 1356 | node: '>= 0.6.0' 1357 | resolution: 1358 | integrity: sha512-9YLIBURXj4DJMFALxXw9K3Y3rwb5Fk0X5/8ipCzaN84+gKxoHK43tVKRNakCQbiEx07E8Uwhuq21BpUagFhZ8w== 1359 | /destroy/1.0.4: 1360 | dev: true 1361 | resolution: 1362 | integrity: sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= 1363 | /detect-indent/6.0.0: 1364 | dev: true 1365 | engines: 1366 | node: '>=8' 1367 | resolution: 1368 | integrity: sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== 1369 | /detect-port/1.3.0: 1370 | dependencies: 1371 | address: 1.1.2 1372 | debug: 2.6.9 1373 | dev: true 1374 | engines: 1375 | node: '>= 4.2.1' 1376 | hasBin: true 1377 | resolution: 1378 | integrity: sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ== 1379 | /devtools-protocol/0.0.818844: 1380 | dev: true 1381 | resolution: 1382 | integrity: sha512-AD1hi7iVJ8OD0aMLQU5VK0XH9LDlA1+BcPIgrAxPfaibx2DbWucuyOhc4oyQCbnvDDO68nN6/LcKfqTP343Jjg== 1383 | /diff/5.0.0: 1384 | dev: true 1385 | engines: 1386 | node: '>=0.3.1' 1387 | resolution: 1388 | integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== 1389 | /dir-glob/3.0.1: 1390 | dependencies: 1391 | path-type: 4.0.0 1392 | dev: true 1393 | engines: 1394 | node: '>=8' 1395 | resolution: 1396 | integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== 1397 | /dom-accessibility-api/0.5.4: 1398 | dev: true 1399 | resolution: 1400 | integrity: sha512-TvrjBckDy2c6v6RLxPv5QXOnU+SmF9nBII5621Ve5fu6Z/BDrENurBEvlC1f44lKEUVqOpK4w9E5Idc5/EgkLQ== 1401 | /dom-serializer/1.2.0: 1402 | dependencies: 1403 | domelementtype: 2.1.0 1404 | domhandler: 4.0.0 1405 | entities: 2.1.0 1406 | dev: true 1407 | resolution: 1408 | integrity: sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA== 1409 | /domelementtype/2.1.0: 1410 | dev: true 1411 | resolution: 1412 | integrity: sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== 1413 | /domhandler/4.0.0: 1414 | dependencies: 1415 | domelementtype: 2.1.0 1416 | dev: true 1417 | engines: 1418 | node: '>= 4' 1419 | resolution: 1420 | integrity: sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA== 1421 | /domutils/2.4.4: 1422 | dependencies: 1423 | dom-serializer: 1.2.0 1424 | domelementtype: 2.1.0 1425 | domhandler: 4.0.0 1426 | dev: true 1427 | resolution: 1428 | integrity: sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA== 1429 | /dotenv-expand/5.1.0: 1430 | dev: true 1431 | resolution: 1432 | integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== 1433 | /dotenv/8.2.0: 1434 | dev: true 1435 | engines: 1436 | node: '>=8' 1437 | resolution: 1438 | integrity: sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== 1439 | /ee-first/1.1.1: 1440 | dev: true 1441 | resolution: 1442 | integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= 1443 | /emoji-regex/8.0.0: 1444 | dev: true 1445 | resolution: 1446 | integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 1447 | /emojis-list/3.0.0: 1448 | dev: true 1449 | engines: 1450 | node: '>= 4' 1451 | resolution: 1452 | integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== 1453 | /encodeurl/1.0.2: 1454 | dev: true 1455 | engines: 1456 | node: '>= 0.8' 1457 | resolution: 1458 | integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= 1459 | /end-of-stream/1.4.4: 1460 | dependencies: 1461 | once: 1.4.0 1462 | dev: true 1463 | resolution: 1464 | integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 1465 | /entities/2.1.0: 1466 | dev: true 1467 | resolution: 1468 | integrity: sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== 1469 | /error-ex/1.3.2: 1470 | dependencies: 1471 | is-arrayish: 0.2.1 1472 | dev: true 1473 | resolution: 1474 | integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 1475 | /es-module-lexer/0.3.26: 1476 | dev: true 1477 | resolution: 1478 | integrity: sha512-Va0Q/xqtrss45hWzP8CZJwzGSZJjDM5/MJRE3IXXnUCcVLElR9BRaE9F62BopysASyc4nM3uwhSW7FFB9nlWAA== 1479 | /esbuild/0.8.31: 1480 | dev: true 1481 | hasBin: true 1482 | requiresBuild: true 1483 | resolution: 1484 | integrity: sha512-7EIU0VdUxltwivjVezX3HgeNzeIVR1snkrAo57WdUnuBMykdzin5rTrxwCDM6xQqj0RL/HjOEm3wFr2ijHKeaA== 1485 | /escape-html/1.0.3: 1486 | dev: true 1487 | resolution: 1488 | integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= 1489 | /escape-string-regexp/1.0.5: 1490 | dev: true 1491 | engines: 1492 | node: '>=0.8.0' 1493 | resolution: 1494 | integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 1495 | /esinstall/0.5.2: 1496 | dependencies: 1497 | '@rollup/plugin-alias': 3.1.1_rollup@2.36.1 1498 | '@rollup/plugin-commonjs': 16.0.0_rollup@2.36.1 1499 | '@rollup/plugin-inject': 4.0.2_rollup@2.36.1 1500 | '@rollup/plugin-json': 4.1.0_rollup@2.36.1 1501 | '@rollup/plugin-node-resolve': 10.0.0_rollup@2.36.1 1502 | '@rollup/plugin-replace': 2.3.4_rollup@2.36.1 1503 | cjs-module-lexer: 1.0.0 1504 | es-module-lexer: 0.3.26 1505 | is-builtin-module: 3.0.0 1506 | is-valid-identifier: 2.0.2 1507 | kleur: 4.1.3 1508 | mkdirp: 1.0.4 1509 | rimraf: 3.0.2 1510 | rollup: 2.36.1 1511 | rollup-plugin-node-polyfills: 0.2.1 1512 | validate-npm-package-name: 3.0.0 1513 | vm2: 3.9.2 1514 | dev: true 1515 | resolution: 1516 | integrity: sha512-6vvYBxFXhmRSWl8xs8thEhysuSkhFhtHEYg5QN8nuHffAu4Vwg9DwfgNxGJnFjzxLRcPUpA/3/DKHZovJkidOQ== 1517 | /estree-walker/0.6.1: 1518 | dev: true 1519 | resolution: 1520 | integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== 1521 | /estree-walker/1.0.1: 1522 | dev: true 1523 | resolution: 1524 | integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== 1525 | /estree-walker/2.0.2: 1526 | dev: true 1527 | resolution: 1528 | integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== 1529 | /etag/1.8.1: 1530 | dev: true 1531 | engines: 1532 | node: '>= 0.6' 1533 | resolution: 1534 | integrity: sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= 1535 | /eventemitter3/4.0.7: 1536 | dev: true 1537 | resolution: 1538 | integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== 1539 | /execa/4.1.0: 1540 | dependencies: 1541 | cross-spawn: 7.0.3 1542 | get-stream: 5.2.0 1543 | human-signals: 1.1.1 1544 | is-stream: 2.0.0 1545 | merge-stream: 2.0.0 1546 | npm-run-path: 4.0.1 1547 | onetime: 5.1.2 1548 | signal-exit: 3.0.3 1549 | strip-final-newline: 2.0.0 1550 | dev: true 1551 | engines: 1552 | node: '>=10' 1553 | resolution: 1554 | integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== 1555 | /extract-zip/2.0.1: 1556 | dependencies: 1557 | debug: 4.3.1 1558 | get-stream: 5.2.0 1559 | yauzl: 2.10.0 1560 | dev: true 1561 | engines: 1562 | node: '>= 10.17.0' 1563 | hasBin: true 1564 | optionalDependencies: 1565 | '@types/yauzl': 2.9.1 1566 | resolution: 1567 | integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== 1568 | /faker/5.2.0: 1569 | dev: false 1570 | resolution: 1571 | integrity: sha512-UlrF1NNRIdzEPtBcy5l8JTlnXQZdz+4pQc3v2TAVocW39nnczCNQ0g0CBKgPGISJPzA2DqJVN1kdr+FCRFdN5g== 1572 | /fast-glob/3.2.4: 1573 | dependencies: 1574 | '@nodelib/fs.stat': 2.0.4 1575 | '@nodelib/fs.walk': 1.2.6 1576 | glob-parent: 5.1.1 1577 | merge2: 1.4.1 1578 | micromatch: 4.0.2 1579 | picomatch: 2.2.2 1580 | dev: true 1581 | engines: 1582 | node: '>=8' 1583 | resolution: 1584 | integrity: sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== 1585 | /fastq/1.10.0: 1586 | dependencies: 1587 | reusify: 1.0.4 1588 | dev: true 1589 | resolution: 1590 | integrity: sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA== 1591 | /fd-slicer/1.1.0: 1592 | dependencies: 1593 | pend: 1.2.0 1594 | dev: true 1595 | resolution: 1596 | integrity: sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= 1597 | /fill-range/7.0.1: 1598 | dependencies: 1599 | to-regex-range: 5.0.1 1600 | dev: true 1601 | engines: 1602 | node: '>=8' 1603 | resolution: 1604 | integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 1605 | /find-cache-dir/3.3.1: 1606 | dependencies: 1607 | commondir: 1.0.1 1608 | make-dir: 3.1.0 1609 | pkg-dir: 4.2.0 1610 | dev: true 1611 | engines: 1612 | node: '>=8' 1613 | resolution: 1614 | integrity: sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== 1615 | /find-replace/3.0.0: 1616 | dependencies: 1617 | array-back: 3.1.0 1618 | dev: true 1619 | engines: 1620 | node: '>=4.0.0' 1621 | resolution: 1622 | integrity: sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== 1623 | /find-up/4.1.0: 1624 | dependencies: 1625 | locate-path: 5.0.0 1626 | path-exists: 4.0.0 1627 | dev: true 1628 | engines: 1629 | node: '>=8' 1630 | resolution: 1631 | integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== 1632 | /find-up/5.0.0: 1633 | dependencies: 1634 | locate-path: 6.0.0 1635 | path-exists: 4.0.0 1636 | dev: true 1637 | engines: 1638 | node: '>=10' 1639 | resolution: 1640 | integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== 1641 | /follow-redirects/1.13.1: 1642 | dev: true 1643 | engines: 1644 | node: '>=4.0' 1645 | peerDependencies: 1646 | debug: '*' 1647 | peerDependenciesMeta: 1648 | debug: 1649 | optional: true 1650 | resolution: 1651 | integrity: sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg== 1652 | /fresh/0.5.2: 1653 | dev: true 1654 | engines: 1655 | node: '>= 0.6' 1656 | resolution: 1657 | integrity: sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= 1658 | /fs-constants/1.0.0: 1659 | dev: true 1660 | resolution: 1661 | integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== 1662 | /fs-minipass/2.1.0: 1663 | dependencies: 1664 | minipass: 3.1.3 1665 | dev: true 1666 | engines: 1667 | node: '>= 8' 1668 | resolution: 1669 | integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== 1670 | /fs.realpath/1.0.0: 1671 | dev: true 1672 | resolution: 1673 | integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 1674 | /fsevents/2.1.3: 1675 | deprecated: '"Please update to latest v2.3 or v2.2"' 1676 | dev: true 1677 | engines: 1678 | node: ^8.16.0 || ^10.6.0 || >=11.0.0 1679 | optional: true 1680 | os: 1681 | - darwin 1682 | resolution: 1683 | integrity: sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== 1684 | /fsevents/2.3.1: 1685 | dev: true 1686 | engines: 1687 | node: ^8.16.0 || ^10.6.0 || >=11.0.0 1688 | optional: true 1689 | os: 1690 | - darwin 1691 | resolution: 1692 | integrity: sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw== 1693 | /function-bind/1.1.1: 1694 | dev: true 1695 | resolution: 1696 | integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 1697 | /generic-names/2.0.1: 1698 | dependencies: 1699 | loader-utils: 1.4.0 1700 | dev: true 1701 | resolution: 1702 | integrity: sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ== 1703 | /get-func-name/2.0.0: 1704 | dev: true 1705 | resolution: 1706 | integrity: sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= 1707 | /get-stream/5.2.0: 1708 | dependencies: 1709 | pump: 3.0.0 1710 | dev: true 1711 | engines: 1712 | node: '>=8' 1713 | resolution: 1714 | integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== 1715 | /get-stream/6.0.0: 1716 | dev: true 1717 | engines: 1718 | node: '>=10' 1719 | resolution: 1720 | integrity: sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== 1721 | /glob-parent/5.1.1: 1722 | dependencies: 1723 | is-glob: 4.0.1 1724 | dev: true 1725 | engines: 1726 | node: '>= 6' 1727 | resolution: 1728 | integrity: sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== 1729 | /glob/7.1.6: 1730 | dependencies: 1731 | fs.realpath: 1.0.0 1732 | inflight: 1.0.6 1733 | inherits: 2.0.4 1734 | minimatch: 3.0.4 1735 | once: 1.4.0 1736 | path-is-absolute: 1.0.1 1737 | dev: true 1738 | resolution: 1739 | integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== 1740 | /globby/11.0.2: 1741 | dependencies: 1742 | array-union: 2.1.0 1743 | dir-glob: 3.0.1 1744 | fast-glob: 3.2.4 1745 | ignore: 5.1.8 1746 | merge2: 1.4.1 1747 | slash: 3.0.0 1748 | dev: true 1749 | engines: 1750 | node: '>=10' 1751 | resolution: 1752 | integrity: sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og== 1753 | /got/11.8.1: 1754 | dependencies: 1755 | '@sindresorhus/is': 4.0.0 1756 | '@szmarczak/http-timer': 4.0.5 1757 | '@types/cacheable-request': 6.0.1 1758 | '@types/responselike': 1.0.0 1759 | cacheable-lookup: 5.0.4 1760 | cacheable-request: 7.0.1 1761 | decompress-response: 6.0.0 1762 | http2-wrapper: 1.0.0-beta.5.2 1763 | lowercase-keys: 2.0.0 1764 | p-cancelable: 2.0.0 1765 | responselike: 2.0.0 1766 | dev: true 1767 | engines: 1768 | node: '>=10.19.0' 1769 | resolution: 1770 | integrity: sha512-9aYdZL+6nHmvJwHALLwKSUZ0hMwGaJGYv3hoPLPgnT8BoBXm1SjnZeky+91tfwJaDzun2s4RsBRy48IEYv2q2Q== 1771 | /has-flag/3.0.0: 1772 | dev: true 1773 | engines: 1774 | node: '>=4' 1775 | resolution: 1776 | integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 1777 | /has-flag/4.0.0: 1778 | dev: true 1779 | engines: 1780 | node: '>=8' 1781 | resolution: 1782 | integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 1783 | /has/1.0.3: 1784 | dependencies: 1785 | function-bind: 1.1.1 1786 | dev: true 1787 | engines: 1788 | node: '>= 0.4.0' 1789 | resolution: 1790 | integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 1791 | /html-escaper/2.0.2: 1792 | dev: true 1793 | resolution: 1794 | integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== 1795 | /htmlparser2/6.0.0: 1796 | dependencies: 1797 | domelementtype: 2.1.0 1798 | domhandler: 4.0.0 1799 | domutils: 2.4.4 1800 | entities: 2.1.0 1801 | dev: true 1802 | resolution: 1803 | integrity: sha512-numTQtDZMoh78zJpaNdJ9MXb2cv5G3jwUoe3dMQODubZvLoGvTE/Ofp6sHvH8OGKcN/8A47pGLi/k58xHP/Tfw== 1804 | /http-assert/1.4.1: 1805 | dependencies: 1806 | deep-equal: 1.0.1 1807 | http-errors: 1.7.3 1808 | dev: true 1809 | engines: 1810 | node: '>= 0.8' 1811 | resolution: 1812 | integrity: sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw== 1813 | /http-cache-semantics/4.1.0: 1814 | dev: true 1815 | resolution: 1816 | integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== 1817 | /http-errors/1.6.3: 1818 | dependencies: 1819 | depd: 1.1.2 1820 | inherits: 2.0.3 1821 | setprototypeof: 1.1.0 1822 | statuses: 1.5.0 1823 | dev: true 1824 | engines: 1825 | node: '>= 0.6' 1826 | resolution: 1827 | integrity: sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= 1828 | /http-errors/1.7.3: 1829 | dependencies: 1830 | depd: 1.1.2 1831 | inherits: 2.0.4 1832 | setprototypeof: 1.1.1 1833 | statuses: 1.5.0 1834 | toidentifier: 1.0.0 1835 | dev: true 1836 | engines: 1837 | node: '>= 0.6' 1838 | resolution: 1839 | integrity: sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== 1840 | /http-errors/1.8.0: 1841 | dependencies: 1842 | depd: 1.1.2 1843 | inherits: 2.0.4 1844 | setprototypeof: 1.2.0 1845 | statuses: 1.5.0 1846 | toidentifier: 1.0.0 1847 | dev: true 1848 | engines: 1849 | node: '>= 0.6' 1850 | resolution: 1851 | integrity: sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A== 1852 | /http-proxy/1.18.1: 1853 | dependencies: 1854 | eventemitter3: 4.0.7 1855 | follow-redirects: 1.13.1 1856 | requires-port: 1.0.0 1857 | dev: true 1858 | engines: 1859 | node: '>=8.0.0' 1860 | resolution: 1861 | integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== 1862 | /http2-wrapper/1.0.0-beta.5.2: 1863 | dependencies: 1864 | quick-lru: 5.1.1 1865 | resolve-alpn: 1.0.0 1866 | dev: true 1867 | engines: 1868 | node: '>=10.19.0' 1869 | resolution: 1870 | integrity: sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ== 1871 | /httpie/1.1.2: 1872 | dev: true 1873 | engines: 1874 | node: '>=8' 1875 | resolution: 1876 | integrity: sha512-VQ82oXG95oY1fQw/XecHuvcFBA+lZQ9Vwj1RfLcO8a7HpDd4cc2ukwpJt+TUlFaLUAzZErylxWu6wclJ1rUhUQ== 1877 | /https-proxy-agent/4.0.0: 1878 | dependencies: 1879 | agent-base: 5.1.1 1880 | debug: 4.3.1 1881 | dev: true 1882 | engines: 1883 | node: '>= 6.0.0' 1884 | resolution: 1885 | integrity: sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg== 1886 | /human-signals/1.1.1: 1887 | dev: true 1888 | engines: 1889 | node: '>=8.12.0' 1890 | resolution: 1891 | integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== 1892 | /iconv-lite/0.4.24: 1893 | dependencies: 1894 | safer-buffer: 2.1.2 1895 | dev: true 1896 | engines: 1897 | node: '>=0.10.0' 1898 | resolution: 1899 | integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 1900 | /icss-replace-symbols/1.1.0: 1901 | dev: true 1902 | resolution: 1903 | integrity: sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= 1904 | /icss-utils/4.1.1: 1905 | dependencies: 1906 | postcss: 7.0.35 1907 | dev: true 1908 | engines: 1909 | node: '>= 6' 1910 | resolution: 1911 | integrity: sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== 1912 | /ieee754/1.2.1: 1913 | dev: true 1914 | resolution: 1915 | integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== 1916 | /ignore/5.1.8: 1917 | dev: true 1918 | engines: 1919 | node: '>= 4' 1920 | resolution: 1921 | integrity: sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== 1922 | /import-fresh/3.3.0: 1923 | dependencies: 1924 | parent-module: 1.0.1 1925 | resolve-from: 4.0.0 1926 | dev: true 1927 | engines: 1928 | node: '>=6' 1929 | resolution: 1930 | integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 1931 | /imurmurhash/0.1.4: 1932 | dev: true 1933 | engines: 1934 | node: '>=0.8.19' 1935 | resolution: 1936 | integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o= 1937 | /indent-string/4.0.0: 1938 | dev: true 1939 | engines: 1940 | node: '>=8' 1941 | resolution: 1942 | integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== 1943 | /indexes-of/1.0.1: 1944 | dev: true 1945 | resolution: 1946 | integrity: sha1-8w9xbI4r00bHtn0985FVZqfAVgc= 1947 | /infer-owner/1.0.4: 1948 | dev: true 1949 | resolution: 1950 | integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== 1951 | /inflation/2.0.0: 1952 | dev: true 1953 | engines: 1954 | node: '>= 0.8.0' 1955 | resolution: 1956 | integrity: sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8= 1957 | /inflight/1.0.6: 1958 | dependencies: 1959 | once: 1.4.0 1960 | wrappy: 1.0.2 1961 | dev: true 1962 | resolution: 1963 | integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 1964 | /inherits/2.0.1: 1965 | dev: true 1966 | resolution: 1967 | integrity: sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= 1968 | /inherits/2.0.3: 1969 | dev: true 1970 | resolution: 1971 | integrity: sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 1972 | /inherits/2.0.4: 1973 | dev: true 1974 | resolution: 1975 | integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1976 | /ip/1.1.5: 1977 | dev: true 1978 | resolution: 1979 | integrity: sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= 1980 | /is-arrayish/0.2.1: 1981 | dev: true 1982 | resolution: 1983 | integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 1984 | /is-binary-path/2.1.0: 1985 | dependencies: 1986 | binary-extensions: 2.1.0 1987 | dev: true 1988 | engines: 1989 | node: '>=8' 1990 | resolution: 1991 | integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 1992 | /is-builtin-module/3.0.0: 1993 | dependencies: 1994 | builtin-modules: 3.2.0 1995 | dev: true 1996 | engines: 1997 | node: '>=6' 1998 | resolution: 1999 | integrity: sha512-/93sDihsAD652hrMEbJGbMAVBf1qc96kyThHQ0CAOONHaE3aROLpTjDe4WQ5aoC5ITHFxEq1z8XqSU7km+8amw== 2000 | /is-core-module/2.2.0: 2001 | dependencies: 2002 | has: 1.0.3 2003 | dev: true 2004 | resolution: 2005 | integrity: sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== 2006 | /is-docker/2.1.1: 2007 | dev: true 2008 | engines: 2009 | node: '>=8' 2010 | hasBin: true 2011 | resolution: 2012 | integrity: sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw== 2013 | /is-extglob/2.1.1: 2014 | dev: true 2015 | engines: 2016 | node: '>=0.10.0' 2017 | resolution: 2018 | integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 2019 | /is-fullwidth-code-point/3.0.0: 2020 | dev: true 2021 | engines: 2022 | node: '>=8' 2023 | resolution: 2024 | integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 2025 | /is-generator-function/1.0.8: 2026 | dev: true 2027 | engines: 2028 | node: '>= 0.4' 2029 | resolution: 2030 | integrity: sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ== 2031 | /is-glob/4.0.1: 2032 | dependencies: 2033 | is-extglob: 2.1.1 2034 | dev: true 2035 | engines: 2036 | node: '>=0.10.0' 2037 | resolution: 2038 | integrity: sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 2039 | /is-module/1.0.0: 2040 | dev: true 2041 | resolution: 2042 | integrity: sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= 2043 | /is-number/7.0.0: 2044 | dev: true 2045 | engines: 2046 | node: '>=0.12.0' 2047 | resolution: 2048 | integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 2049 | /is-plain-object/5.0.0: 2050 | dev: true 2051 | engines: 2052 | node: '>=0.10.0' 2053 | resolution: 2054 | integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== 2055 | /is-reference/1.2.1: 2056 | dependencies: 2057 | '@types/estree': 0.0.45 2058 | dev: true 2059 | resolution: 2060 | integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== 2061 | /is-stream/2.0.0: 2062 | dev: true 2063 | engines: 2064 | node: '>=8' 2065 | resolution: 2066 | integrity: sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== 2067 | /is-valid-identifier/2.0.2: 2068 | dependencies: 2069 | assert: 1.5.0 2070 | dev: true 2071 | resolution: 2072 | integrity: sha512-mpS5EGqXOwzXtKAg6I44jIAqeBfntFLxpAth1rrKbxtKyI6LPktyDYpHBI+tHlduhhX/SF26mFXmxQu995QVqg== 2073 | /is-wsl/2.2.0: 2074 | dependencies: 2075 | is-docker: 2.1.1 2076 | dev: true 2077 | engines: 2078 | node: '>=8' 2079 | resolution: 2080 | integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== 2081 | /isbinaryfile/4.0.6: 2082 | dev: true 2083 | engines: 2084 | node: '>= 8.0.0' 2085 | resolution: 2086 | integrity: sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg== 2087 | /isexe/2.0.0: 2088 | dev: true 2089 | resolution: 2090 | integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 2091 | /istanbul-lib-coverage/3.0.0: 2092 | dev: true 2093 | engines: 2094 | node: '>=8' 2095 | resolution: 2096 | integrity: sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== 2097 | /istanbul-lib-report/3.0.0: 2098 | dependencies: 2099 | istanbul-lib-coverage: 3.0.0 2100 | make-dir: 3.1.0 2101 | supports-color: 7.2.0 2102 | dev: true 2103 | engines: 2104 | node: '>=8' 2105 | resolution: 2106 | integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== 2107 | /istanbul-reports/3.0.2: 2108 | dependencies: 2109 | html-escaper: 2.0.2 2110 | istanbul-lib-report: 3.0.0 2111 | dev: true 2112 | engines: 2113 | node: '>=8' 2114 | resolution: 2115 | integrity: sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== 2116 | /js-tokens/4.0.0: 2117 | dev: true 2118 | resolution: 2119 | integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 2120 | /json-buffer/3.0.1: 2121 | dev: true 2122 | resolution: 2123 | integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== 2124 | /json-parse-even-better-errors/2.3.1: 2125 | dev: true 2126 | resolution: 2127 | integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== 2128 | /json5/1.0.1: 2129 | dependencies: 2130 | minimist: 1.2.5 2131 | dev: true 2132 | hasBin: true 2133 | resolution: 2134 | integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== 2135 | /jsonschema/1.2.11: 2136 | dev: true 2137 | resolution: 2138 | integrity: sha512-XNZHs3N1IOa3lPKm//npxMhOdaoPw+MvEV0NIgxcER83GTJcG13rehtWmpBCfEt8DrtYwIkMTs8bdXoYs4fvnQ== 2139 | /keygrip/1.1.0: 2140 | dependencies: 2141 | tsscmp: 1.0.6 2142 | dev: true 2143 | engines: 2144 | node: '>= 0.6' 2145 | resolution: 2146 | integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ== 2147 | /keyv/4.0.3: 2148 | dependencies: 2149 | json-buffer: 3.0.1 2150 | dev: true 2151 | resolution: 2152 | integrity: sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA== 2153 | /kleur/4.1.3: 2154 | dev: true 2155 | engines: 2156 | node: '>=6' 2157 | resolution: 2158 | integrity: sha512-H1tr8QP2PxFTNwAFM74Mui2b6ovcY9FoxJefgrwxY+OCJcq01k5nvhf4M/KnizzrJvLRap5STUy7dgDV35iUBw== 2159 | /koa-compose/3.2.1: 2160 | dependencies: 2161 | any-promise: 1.3.0 2162 | dev: true 2163 | resolution: 2164 | integrity: sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec= 2165 | /koa-compose/4.1.0: 2166 | dev: true 2167 | resolution: 2168 | integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw== 2169 | /koa-convert/1.2.0: 2170 | dependencies: 2171 | co: 4.6.0 2172 | koa-compose: 3.2.1 2173 | dev: true 2174 | engines: 2175 | node: '>= 4' 2176 | resolution: 2177 | integrity: sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA= 2178 | /koa-etag/4.0.0: 2179 | dependencies: 2180 | etag: 1.8.1 2181 | dev: true 2182 | resolution: 2183 | integrity: sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg== 2184 | /koa-send/5.0.1: 2185 | dependencies: 2186 | debug: 4.3.1 2187 | http-errors: 1.8.0 2188 | resolve-path: 1.4.0 2189 | dev: true 2190 | engines: 2191 | node: '>= 8' 2192 | resolution: 2193 | integrity: sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ== 2194 | /koa-static/5.0.0: 2195 | dependencies: 2196 | debug: 3.2.7 2197 | koa-send: 5.0.1 2198 | dev: true 2199 | engines: 2200 | node: '>= 7.6.0' 2201 | resolution: 2202 | integrity: sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ== 2203 | /koa/2.13.1: 2204 | dependencies: 2205 | accepts: 1.3.7 2206 | cache-content-type: 1.0.1 2207 | content-disposition: 0.5.3 2208 | content-type: 1.0.4 2209 | cookies: 0.8.0 2210 | debug: 3.1.0 2211 | delegates: 1.0.0 2212 | depd: 2.0.0 2213 | destroy: 1.0.4 2214 | encodeurl: 1.0.2 2215 | escape-html: 1.0.3 2216 | fresh: 0.5.2 2217 | http-assert: 1.4.1 2218 | http-errors: 1.8.0 2219 | is-generator-function: 1.0.8 2220 | koa-compose: 4.1.0 2221 | koa-convert: 1.2.0 2222 | on-finished: 2.3.0 2223 | only: 0.0.2 2224 | parseurl: 1.3.3 2225 | statuses: 1.5.0 2226 | type-is: 1.6.18 2227 | vary: 1.1.2 2228 | dev: true 2229 | engines: 2230 | node: ^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4 2231 | resolution: 2232 | integrity: sha512-Lb2Dloc72auj5vK4X4qqL7B5jyDPQaZucc9sR/71byg7ryoD1NCaCm63CShk9ID9quQvDEi1bGR/iGjCG7As3w== 2233 | /lighthouse-logger/1.2.0: 2234 | dependencies: 2235 | debug: 2.6.9 2236 | marky: 1.2.1 2237 | dev: true 2238 | resolution: 2239 | integrity: sha512-wzUvdIeJZhRsG6gpZfmSCfysaxNEr43i+QT+Hie94wvHDKFLi4n7C2GqZ4sTC+PH5b5iktmXJvU87rWvhP3lHw== 2240 | /lines-and-columns/1.1.6: 2241 | dev: true 2242 | resolution: 2243 | integrity: sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= 2244 | /loader-utils/1.4.0: 2245 | dependencies: 2246 | big.js: 5.2.2 2247 | emojis-list: 3.0.0 2248 | json5: 1.0.1 2249 | dev: true 2250 | engines: 2251 | node: '>=4.0.0' 2252 | resolution: 2253 | integrity: sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== 2254 | /locate-path/5.0.0: 2255 | dependencies: 2256 | p-locate: 4.1.0 2257 | dev: true 2258 | engines: 2259 | node: '>=8' 2260 | resolution: 2261 | integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== 2262 | /locate-path/6.0.0: 2263 | dependencies: 2264 | p-locate: 5.0.0 2265 | dev: true 2266 | engines: 2267 | node: '>=10' 2268 | resolution: 2269 | integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== 2270 | /lodash.camelcase/4.3.0: 2271 | dev: true 2272 | resolution: 2273 | integrity: sha1-soqmKIorn8ZRA1x3EfZathkDMaY= 2274 | /lodash.sortby/4.7.0: 2275 | dev: true 2276 | resolution: 2277 | integrity: sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= 2278 | /lodash/4.17.20: 2279 | dev: true 2280 | resolution: 2281 | integrity: sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== 2282 | /log-update/4.0.0: 2283 | dependencies: 2284 | ansi-escapes: 4.3.1 2285 | cli-cursor: 3.1.0 2286 | slice-ansi: 4.0.0 2287 | wrap-ansi: 6.2.0 2288 | dev: true 2289 | engines: 2290 | node: '>=10' 2291 | resolution: 2292 | integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== 2293 | /lowercase-keys/2.0.0: 2294 | dev: true 2295 | engines: 2296 | node: '>=8' 2297 | resolution: 2298 | integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== 2299 | /lru-cache/6.0.0: 2300 | dependencies: 2301 | yallist: 4.0.0 2302 | dev: true 2303 | engines: 2304 | node: '>=10' 2305 | resolution: 2306 | integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 2307 | /lz-string/1.4.4: 2308 | dev: true 2309 | hasBin: true 2310 | resolution: 2311 | integrity: sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= 2312 | /magic-string/0.25.7: 2313 | dependencies: 2314 | sourcemap-codec: 1.4.8 2315 | dev: true 2316 | resolution: 2317 | integrity: sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== 2318 | /make-dir/3.1.0: 2319 | dependencies: 2320 | semver: 6.3.0 2321 | dev: true 2322 | engines: 2323 | node: '>=8' 2324 | resolution: 2325 | integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== 2326 | /marky/1.2.1: 2327 | dev: true 2328 | resolution: 2329 | integrity: sha512-md9k+Gxa3qLH6sUKpeC2CNkJK/Ld+bEz5X96nYwloqphQE0CKCVEKco/6jxEZixinqNdz5RFi/KaCyfbMDMAXQ== 2330 | /media-typer/0.3.0: 2331 | dev: true 2332 | engines: 2333 | node: '>= 0.6' 2334 | resolution: 2335 | integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= 2336 | /merge-stream/2.0.0: 2337 | dev: true 2338 | resolution: 2339 | integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== 2340 | /merge2/1.4.1: 2341 | dev: true 2342 | engines: 2343 | node: '>= 8' 2344 | resolution: 2345 | integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 2346 | /micromatch/4.0.2: 2347 | dependencies: 2348 | braces: 3.0.2 2349 | picomatch: 2.2.2 2350 | dev: true 2351 | engines: 2352 | node: '>=8' 2353 | resolution: 2354 | integrity: sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== 2355 | /mime-db/1.45.0: 2356 | dev: true 2357 | engines: 2358 | node: '>= 0.6' 2359 | resolution: 2360 | integrity: sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== 2361 | /mime-types/2.1.28: 2362 | dependencies: 2363 | mime-db: 1.45.0 2364 | dev: true 2365 | engines: 2366 | node: '>= 0.6' 2367 | resolution: 2368 | integrity: sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ== 2369 | /mimic-fn/2.1.0: 2370 | dev: true 2371 | engines: 2372 | node: '>=6' 2373 | resolution: 2374 | integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 2375 | /mimic-response/1.0.1: 2376 | dev: true 2377 | engines: 2378 | node: '>=4' 2379 | resolution: 2380 | integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== 2381 | /mimic-response/3.1.0: 2382 | dev: true 2383 | engines: 2384 | node: '>=10' 2385 | resolution: 2386 | integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== 2387 | /min-indent/1.0.1: 2388 | dev: true 2389 | engines: 2390 | node: '>=4' 2391 | resolution: 2392 | integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== 2393 | /minimatch/3.0.4: 2394 | dependencies: 2395 | brace-expansion: 1.1.11 2396 | dev: true 2397 | resolution: 2398 | integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 2399 | /minimist/1.2.5: 2400 | dev: true 2401 | resolution: 2402 | integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 2403 | /minipass-collect/1.0.2: 2404 | dependencies: 2405 | minipass: 3.1.3 2406 | dev: true 2407 | engines: 2408 | node: '>= 8' 2409 | resolution: 2410 | integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== 2411 | /minipass-flush/1.0.5: 2412 | dependencies: 2413 | minipass: 3.1.3 2414 | dev: true 2415 | engines: 2416 | node: '>= 8' 2417 | resolution: 2418 | integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== 2419 | /minipass-pipeline/1.2.4: 2420 | dependencies: 2421 | minipass: 3.1.3 2422 | dev: true 2423 | engines: 2424 | node: '>=8' 2425 | resolution: 2426 | integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== 2427 | /minipass/3.1.3: 2428 | dependencies: 2429 | yallist: 4.0.0 2430 | dev: true 2431 | engines: 2432 | node: '>=8' 2433 | resolution: 2434 | integrity: sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== 2435 | /minizlib/2.1.2: 2436 | dependencies: 2437 | minipass: 3.1.3 2438 | yallist: 4.0.0 2439 | dev: true 2440 | engines: 2441 | node: '>= 8' 2442 | resolution: 2443 | integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== 2444 | /mkdirp-classic/0.5.3: 2445 | dev: true 2446 | resolution: 2447 | integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== 2448 | /mkdirp/0.5.5: 2449 | dependencies: 2450 | minimist: 1.2.5 2451 | dev: true 2452 | hasBin: true 2453 | resolution: 2454 | integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== 2455 | /mkdirp/1.0.4: 2456 | dev: true 2457 | engines: 2458 | node: '>=10' 2459 | hasBin: true 2460 | resolution: 2461 | integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== 2462 | /ms/2.0.0: 2463 | dev: true 2464 | resolution: 2465 | integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 2466 | /ms/2.1.2: 2467 | dev: true 2468 | resolution: 2469 | integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 2470 | /ms/2.1.3: 2471 | dev: true 2472 | resolution: 2473 | integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 2474 | /nanoid/3.1.20: 2475 | dev: true 2476 | engines: 2477 | node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 2478 | hasBin: true 2479 | resolution: 2480 | integrity: sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== 2481 | /negotiator/0.6.2: 2482 | dev: true 2483 | engines: 2484 | node: '>= 0.6' 2485 | resolution: 2486 | integrity: sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== 2487 | /node-fetch/2.6.1: 2488 | dev: true 2489 | engines: 2490 | node: 4.x || >=6.0.0 2491 | resolution: 2492 | integrity: sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== 2493 | /normalize-path/3.0.0: 2494 | dev: true 2495 | engines: 2496 | node: '>=0.10.0' 2497 | resolution: 2498 | integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 2499 | /normalize-url/4.5.0: 2500 | dev: true 2501 | engines: 2502 | node: '>=8' 2503 | resolution: 2504 | integrity: sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== 2505 | /npm-run-path/4.0.1: 2506 | dependencies: 2507 | path-key: 3.1.1 2508 | dev: true 2509 | engines: 2510 | node: '>=8' 2511 | resolution: 2512 | integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== 2513 | /nth-check/2.0.0: 2514 | dependencies: 2515 | boolbase: 1.0.0 2516 | dev: true 2517 | resolution: 2518 | integrity: sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q== 2519 | /object-assign/4.1.1: 2520 | dev: true 2521 | engines: 2522 | node: '>=0.10.0' 2523 | resolution: 2524 | integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 2525 | /on-finished/2.3.0: 2526 | dependencies: 2527 | ee-first: 1.1.1 2528 | dev: true 2529 | engines: 2530 | node: '>= 0.8' 2531 | resolution: 2532 | integrity: sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= 2533 | /once/1.4.0: 2534 | dependencies: 2535 | wrappy: 1.0.2 2536 | dev: true 2537 | resolution: 2538 | integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 2539 | /onetime/5.1.2: 2540 | dependencies: 2541 | mimic-fn: 2.1.0 2542 | dev: true 2543 | engines: 2544 | node: '>=6' 2545 | resolution: 2546 | integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== 2547 | /only/0.0.2: 2548 | dev: true 2549 | resolution: 2550 | integrity: sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q= 2551 | /open/7.3.1: 2552 | dependencies: 2553 | is-docker: 2.1.1 2554 | is-wsl: 2.2.0 2555 | dev: true 2556 | engines: 2557 | node: '>=8' 2558 | resolution: 2559 | integrity: sha512-f2wt9DCBKKjlFbjzGb8MOAW8LH8F0mrs1zc7KTjAJ9PZNQbfenzWbNP1VZJvw6ICMG9r14Ah6yfwPn7T7i646A== 2560 | /p-cancelable/2.0.0: 2561 | dev: true 2562 | engines: 2563 | node: '>=8' 2564 | resolution: 2565 | integrity: sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== 2566 | /p-finally/1.0.0: 2567 | dev: true 2568 | engines: 2569 | node: '>=4' 2570 | resolution: 2571 | integrity: sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= 2572 | /p-limit/2.3.0: 2573 | dependencies: 2574 | p-try: 2.2.0 2575 | dev: true 2576 | engines: 2577 | node: '>=6' 2578 | resolution: 2579 | integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 2580 | /p-limit/3.1.0: 2581 | dependencies: 2582 | yocto-queue: 0.1.0 2583 | dev: true 2584 | engines: 2585 | node: '>=10' 2586 | resolution: 2587 | integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 2588 | /p-locate/4.1.0: 2589 | dependencies: 2590 | p-limit: 2.3.0 2591 | dev: true 2592 | engines: 2593 | node: '>=8' 2594 | resolution: 2595 | integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== 2596 | /p-locate/5.0.0: 2597 | dependencies: 2598 | p-limit: 3.1.0 2599 | dev: true 2600 | engines: 2601 | node: '>=10' 2602 | resolution: 2603 | integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 2604 | /p-map/4.0.0: 2605 | dependencies: 2606 | aggregate-error: 3.1.0 2607 | dev: true 2608 | engines: 2609 | node: '>=10' 2610 | resolution: 2611 | integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== 2612 | /p-queue/6.6.2: 2613 | dependencies: 2614 | eventemitter3: 4.0.7 2615 | p-timeout: 3.2.0 2616 | dev: true 2617 | engines: 2618 | node: '>=8' 2619 | resolution: 2620 | integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== 2621 | /p-timeout/3.2.0: 2622 | dependencies: 2623 | p-finally: 1.0.0 2624 | dev: true 2625 | engines: 2626 | node: '>=8' 2627 | resolution: 2628 | integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== 2629 | /p-try/2.2.0: 2630 | dev: true 2631 | engines: 2632 | node: '>=6' 2633 | resolution: 2634 | integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 2635 | /parent-module/1.0.1: 2636 | dependencies: 2637 | callsites: 3.1.0 2638 | dev: true 2639 | engines: 2640 | node: '>=6' 2641 | resolution: 2642 | integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 2643 | /parse-json/5.1.0: 2644 | dependencies: 2645 | '@babel/code-frame': 7.12.11 2646 | error-ex: 1.3.2 2647 | json-parse-even-better-errors: 2.3.1 2648 | lines-and-columns: 1.1.6 2649 | dev: true 2650 | engines: 2651 | node: '>=8' 2652 | resolution: 2653 | integrity: sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ== 2654 | /parse5-htmlparser2-tree-adapter/6.0.1: 2655 | dependencies: 2656 | parse5: 6.0.1 2657 | dev: true 2658 | resolution: 2659 | integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== 2660 | /parse5/6.0.1: 2661 | dev: true 2662 | resolution: 2663 | integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== 2664 | /parseurl/1.3.3: 2665 | dev: true 2666 | engines: 2667 | node: '>= 0.8' 2668 | resolution: 2669 | integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 2670 | /path-exists/4.0.0: 2671 | dev: true 2672 | engines: 2673 | node: '>=8' 2674 | resolution: 2675 | integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 2676 | /path-is-absolute/1.0.1: 2677 | dev: true 2678 | engines: 2679 | node: '>=0.10.0' 2680 | resolution: 2681 | integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 2682 | /path-key/3.1.1: 2683 | dev: true 2684 | engines: 2685 | node: '>=8' 2686 | resolution: 2687 | integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 2688 | /path-parse/1.0.6: 2689 | dev: true 2690 | resolution: 2691 | integrity: sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 2692 | /path-type/4.0.0: 2693 | dev: true 2694 | engines: 2695 | node: '>=8' 2696 | resolution: 2697 | integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== 2698 | /pathval/1.1.0: 2699 | dev: true 2700 | resolution: 2701 | integrity: sha1-uULm1L3mUwBe9rcTYd74cn0GReA= 2702 | /pend/1.2.0: 2703 | dev: true 2704 | resolution: 2705 | integrity: sha1-elfrVQpng/kRUzH89GY9XI4AelA= 2706 | /picomatch/2.2.2: 2707 | dev: true 2708 | engines: 2709 | node: '>=8.6' 2710 | resolution: 2711 | integrity: sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== 2712 | /pkg-dir/4.2.0: 2713 | dependencies: 2714 | find-up: 4.1.0 2715 | dev: true 2716 | engines: 2717 | node: '>=8' 2718 | resolution: 2719 | integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== 2720 | /portfinder/1.0.28: 2721 | dependencies: 2722 | async: 2.6.3 2723 | debug: 3.2.7 2724 | mkdirp: 0.5.5 2725 | dev: true 2726 | engines: 2727 | node: '>= 0.12.0' 2728 | resolution: 2729 | integrity: sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== 2730 | /postcss-modules-extract-imports/2.0.0: 2731 | dependencies: 2732 | postcss: 7.0.35 2733 | dev: true 2734 | engines: 2735 | node: '>= 6' 2736 | resolution: 2737 | integrity: sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== 2738 | /postcss-modules-local-by-default/3.0.3: 2739 | dependencies: 2740 | icss-utils: 4.1.1 2741 | postcss: 7.0.35 2742 | postcss-selector-parser: 6.0.4 2743 | postcss-value-parser: 4.1.0 2744 | dev: true 2745 | engines: 2746 | node: '>= 6' 2747 | resolution: 2748 | integrity: sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== 2749 | /postcss-modules-scope/2.2.0: 2750 | dependencies: 2751 | postcss: 7.0.35 2752 | postcss-selector-parser: 6.0.4 2753 | dev: true 2754 | engines: 2755 | node: '>= 6' 2756 | resolution: 2757 | integrity: sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== 2758 | /postcss-modules-values/3.0.0: 2759 | dependencies: 2760 | icss-utils: 4.1.1 2761 | postcss: 7.0.35 2762 | dev: true 2763 | resolution: 2764 | integrity: sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== 2765 | /postcss-modules/3.2.2: 2766 | dependencies: 2767 | generic-names: 2.0.1 2768 | icss-replace-symbols: 1.1.0 2769 | lodash.camelcase: 4.3.0 2770 | postcss: 7.0.35 2771 | postcss-modules-extract-imports: 2.0.0 2772 | postcss-modules-local-by-default: 3.0.3 2773 | postcss-modules-scope: 2.2.0 2774 | postcss-modules-values: 3.0.0 2775 | string-hash: 1.1.3 2776 | dev: true 2777 | resolution: 2778 | integrity: sha512-JQ8IAqHELxC0N6tyCg2UF40pACY5oiL6UpiqqcIFRWqgDYO8B0jnxzoQ0EOpPrWXvcpu6BSbQU/3vSiq7w8Nhw== 2779 | /postcss-selector-parser/6.0.4: 2780 | dependencies: 2781 | cssesc: 3.0.0 2782 | indexes-of: 1.0.1 2783 | uniq: 1.0.1 2784 | util-deprecate: 1.0.2 2785 | dev: true 2786 | engines: 2787 | node: '>=4' 2788 | resolution: 2789 | integrity: sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== 2790 | /postcss-value-parser/4.1.0: 2791 | dev: true 2792 | resolution: 2793 | integrity: sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== 2794 | /postcss/7.0.35: 2795 | dependencies: 2796 | chalk: 2.4.2 2797 | source-map: 0.6.1 2798 | supports-color: 6.1.0 2799 | dev: true 2800 | engines: 2801 | node: '>=6.0.0' 2802 | resolution: 2803 | integrity: sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== 2804 | /postcss/8.2.2: 2805 | dependencies: 2806 | colorette: 1.2.1 2807 | nanoid: 3.1.20 2808 | source-map: 0.6.1 2809 | dev: true 2810 | engines: 2811 | node: ^10 || ^12 || >=14 2812 | resolution: 2813 | integrity: sha512-HM1NDNWLgglJPQQMNwvLxgH2KcrKZklKLi/xXYIOaqQB57p/pDWEJNS83PVICYsn1Dg/9C26TiejNr422/ePaQ== 2814 | /prettier-plugin-svelte/2.1.1_prettier@2.2.1+svelte@3.31.2: 2815 | dependencies: 2816 | prettier: 2.2.1 2817 | svelte: 3.31.2 2818 | dev: true 2819 | peerDependencies: 2820 | prettier: ^1.16.4 || ^2.0.0 2821 | svelte: ^3.2.0 2822 | resolution: 2823 | integrity: sha512-U0gRsdJtveyusHd86OUPD+lEVd13bHPPF/CZD/csKjz0Y+Cv4WbUy9x8tA5vaHFtf0tsu8Yb1MrfuhN3GH2gig== 2824 | /prettier/2.2.1: 2825 | dev: true 2826 | engines: 2827 | node: '>=10.13.0' 2828 | hasBin: true 2829 | resolution: 2830 | integrity: sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== 2831 | /pretty-format/26.6.2: 2832 | dependencies: 2833 | '@jest/types': 26.6.2 2834 | ansi-regex: 5.0.0 2835 | ansi-styles: 4.3.0 2836 | react-is: 17.0.1 2837 | dev: true 2838 | engines: 2839 | node: '>= 10' 2840 | resolution: 2841 | integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== 2842 | /progress/2.0.3: 2843 | dev: true 2844 | engines: 2845 | node: '>=0.4.0' 2846 | resolution: 2847 | integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== 2848 | /promise-inflight/1.0.1: 2849 | dev: true 2850 | resolution: 2851 | integrity: sha1-mEcocL8igTL8vdhoEputEsPAKeM= 2852 | /proxy-from-env/1.1.0: 2853 | dev: true 2854 | resolution: 2855 | integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== 2856 | /pump/3.0.0: 2857 | dependencies: 2858 | end-of-stream: 1.4.4 2859 | once: 1.4.0 2860 | dev: true 2861 | resolution: 2862 | integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 2863 | /punycode/2.1.1: 2864 | dev: true 2865 | engines: 2866 | node: '>=6' 2867 | resolution: 2868 | integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 2869 | /puppeteer-core/5.5.0: 2870 | dependencies: 2871 | debug: 4.3.1 2872 | devtools-protocol: 0.0.818844 2873 | extract-zip: 2.0.1 2874 | https-proxy-agent: 4.0.0 2875 | node-fetch: 2.6.1 2876 | pkg-dir: 4.2.0 2877 | progress: 2.0.3 2878 | proxy-from-env: 1.1.0 2879 | rimraf: 3.0.2 2880 | tar-fs: 2.1.1 2881 | unbzip2-stream: 1.4.3 2882 | ws: 7.4.2 2883 | dev: true 2884 | engines: 2885 | node: '>=10.18.1' 2886 | resolution: 2887 | integrity: sha512-tlA+1n+ziW/Db03hVV+bAecDKse8ihFRXYiEypBe9IlLRvOCzYFG6qrCMBYK34HO/Q/Ecjc+tvkHRAfLVH+NgQ== 2888 | /qs/6.9.4: 2889 | dev: true 2890 | engines: 2891 | node: '>=0.6' 2892 | resolution: 2893 | integrity: sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== 2894 | /quick-lru/5.1.1: 2895 | dev: true 2896 | engines: 2897 | node: '>=10' 2898 | resolution: 2899 | integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== 2900 | /raw-body/2.4.1: 2901 | dependencies: 2902 | bytes: 3.1.0 2903 | http-errors: 1.7.3 2904 | iconv-lite: 0.4.24 2905 | unpipe: 1.0.0 2906 | dev: true 2907 | engines: 2908 | node: '>= 0.8' 2909 | resolution: 2910 | integrity: sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA== 2911 | /react-is/17.0.1: 2912 | dev: true 2913 | resolution: 2914 | integrity: sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA== 2915 | /readable-stream/3.6.0: 2916 | dependencies: 2917 | inherits: 2.0.4 2918 | string_decoder: 1.3.0 2919 | util-deprecate: 1.0.2 2920 | dev: true 2921 | engines: 2922 | node: '>= 6' 2923 | resolution: 2924 | integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== 2925 | /readdirp/3.5.0: 2926 | dependencies: 2927 | picomatch: 2.2.2 2928 | dev: true 2929 | engines: 2930 | node: '>=8.10.0' 2931 | resolution: 2932 | integrity: sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== 2933 | /reduce-flatten/2.0.0: 2934 | dev: true 2935 | engines: 2936 | node: '>=6' 2937 | resolution: 2938 | integrity: sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== 2939 | /regenerator-runtime/0.13.7: 2940 | dev: true 2941 | resolution: 2942 | integrity: sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== 2943 | /require-relative/0.8.7: 2944 | dev: true 2945 | resolution: 2946 | integrity: sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4= 2947 | /requires-port/1.0.0: 2948 | dev: true 2949 | resolution: 2950 | integrity: sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= 2951 | /resolve-alpn/1.0.0: 2952 | dev: true 2953 | resolution: 2954 | integrity: sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA== 2955 | /resolve-from/4.0.0: 2956 | dev: true 2957 | engines: 2958 | node: '>=4' 2959 | resolution: 2960 | integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 2961 | /resolve-from/5.0.0: 2962 | dev: true 2963 | engines: 2964 | node: '>=8' 2965 | resolution: 2966 | integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== 2967 | /resolve-path/1.4.0: 2968 | dependencies: 2969 | http-errors: 1.6.3 2970 | path-is-absolute: 1.0.1 2971 | dev: true 2972 | engines: 2973 | node: '>= 0.8' 2974 | resolution: 2975 | integrity: sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc= 2976 | /resolve/1.19.0: 2977 | dependencies: 2978 | is-core-module: 2.2.0 2979 | path-parse: 1.0.6 2980 | dev: true 2981 | resolution: 2982 | integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== 2983 | /responselike/2.0.0: 2984 | dependencies: 2985 | lowercase-keys: 2.0.0 2986 | dev: true 2987 | resolution: 2988 | integrity: sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== 2989 | /restore-cursor/3.1.0: 2990 | dependencies: 2991 | onetime: 5.1.2 2992 | signal-exit: 3.0.3 2993 | dev: true 2994 | engines: 2995 | node: '>=8' 2996 | resolution: 2997 | integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== 2998 | /reusify/1.0.4: 2999 | dev: true 3000 | engines: 3001 | iojs: '>=1.0.0' 3002 | node: '>=0.10.0' 3003 | resolution: 3004 | integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 3005 | /rimraf/3.0.2: 3006 | dependencies: 3007 | glob: 7.1.6 3008 | dev: true 3009 | hasBin: true 3010 | resolution: 3011 | integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 3012 | /rollup-plugin-inject/3.0.2: 3013 | dependencies: 3014 | estree-walker: 0.6.1 3015 | magic-string: 0.25.7 3016 | rollup-pluginutils: 2.8.2 3017 | deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject. 3018 | dev: true 3019 | resolution: 3020 | integrity: sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w== 3021 | /rollup-plugin-node-polyfills/0.2.1: 3022 | dependencies: 3023 | rollup-plugin-inject: 3.0.2 3024 | dev: true 3025 | resolution: 3026 | integrity: sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA== 3027 | /rollup-plugin-svelte/7.0.0_svelte@3.31.2: 3028 | dependencies: 3029 | require-relative: 0.8.7 3030 | rollup-pluginutils: 2.8.2 3031 | svelte: 3.31.2 3032 | dev: true 3033 | engines: 3034 | node: '>=10' 3035 | peerDependencies: 3036 | rollup: '>=2.0.0' 3037 | svelte: '>=3.5.0' 3038 | resolution: 3039 | integrity: sha512-cw4yv/5v1NQV3nPbpOJtikgkB+9mfSJaqKUdq7x5fVQJnwLtcdc2JOszBs5pBY+SemTs5pmJbdEMseEavbUtjQ== 3040 | /rollup-pluginutils/2.8.2: 3041 | dependencies: 3042 | estree-walker: 0.6.1 3043 | dev: true 3044 | resolution: 3045 | integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== 3046 | /rollup/2.36.1: 3047 | dev: true 3048 | engines: 3049 | node: '>=10.0.0' 3050 | hasBin: true 3051 | optionalDependencies: 3052 | fsevents: 2.1.3 3053 | resolution: 3054 | integrity: sha512-eAfqho8dyzuVvrGqpR0ITgEdq0zG2QJeWYh+HeuTbpcaXk8vNFc48B7bJa1xYosTCKx0CuW+447oQOW8HgBIZQ== 3055 | /run-parallel/1.1.10: 3056 | dev: true 3057 | resolution: 3058 | integrity: sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw== 3059 | /safe-buffer/5.1.2: 3060 | dev: true 3061 | resolution: 3062 | integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 3063 | /safe-buffer/5.2.1: 3064 | dev: true 3065 | resolution: 3066 | integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 3067 | /safer-buffer/2.1.2: 3068 | dev: true 3069 | resolution: 3070 | integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 3071 | /semver/6.3.0: 3072 | dev: true 3073 | hasBin: true 3074 | resolution: 3075 | integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 3076 | /semver/7.3.4: 3077 | dependencies: 3078 | lru-cache: 6.0.0 3079 | dev: true 3080 | engines: 3081 | node: '>=10' 3082 | hasBin: true 3083 | resolution: 3084 | integrity: sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== 3085 | /setprototypeof/1.1.0: 3086 | dev: true 3087 | resolution: 3088 | integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== 3089 | /setprototypeof/1.1.1: 3090 | dev: true 3091 | resolution: 3092 | integrity: sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== 3093 | /setprototypeof/1.2.0: 3094 | dev: true 3095 | resolution: 3096 | integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== 3097 | /shebang-command/2.0.0: 3098 | dependencies: 3099 | shebang-regex: 3.0.0 3100 | dev: true 3101 | engines: 3102 | node: '>=8' 3103 | resolution: 3104 | integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 3105 | /shebang-regex/3.0.0: 3106 | dev: true 3107 | engines: 3108 | node: '>=8' 3109 | resolution: 3110 | integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 3111 | /signal-exit/3.0.3: 3112 | dev: true 3113 | resolution: 3114 | integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== 3115 | /skypack/0.2.1: 3116 | dependencies: 3117 | cacache: 15.0.5 3118 | cachedir: 2.3.0 3119 | esinstall: 0.5.2 3120 | etag: 1.8.1 3121 | find-up: 5.0.0 3122 | got: 11.8.1 3123 | kleur: 4.1.3 3124 | mkdirp: 1.0.4 3125 | p-queue: 6.6.2 3126 | rimraf: 3.0.2 3127 | rollup: 2.36.1 3128 | validate-npm-package-name: 3.0.0 3129 | dev: true 3130 | engines: 3131 | node: '>=10.19.0' 3132 | resolution: 3133 | integrity: sha512-+LE2zg5Hdcxnq2PYfo6k/jqLA7vlCljZuGo6x9x9+83GvGULvdBGLCLIa5wUhcHQUIts4m9hB+f3asTPL/TcsA== 3134 | /slash/3.0.0: 3135 | dev: true 3136 | engines: 3137 | node: '>=8' 3138 | resolution: 3139 | integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== 3140 | /slice-ansi/4.0.0: 3141 | dependencies: 3142 | ansi-styles: 4.3.0 3143 | astral-regex: 2.0.0 3144 | is-fullwidth-code-point: 3.0.0 3145 | dev: true 3146 | engines: 3147 | node: '>=10' 3148 | resolution: 3149 | integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== 3150 | /snowpack/2.18.5: 3151 | dependencies: 3152 | '@snowpack/plugin-build-script': 2.0.12 3153 | '@snowpack/plugin-run-script': 2.2.1 3154 | '@types/cheerio': 0.22.22 3155 | cacache: 15.0.5 3156 | cachedir: 2.3.0 3157 | cheerio: 1.0.0-rc.5 3158 | chokidar: 3.5.0 3159 | compressible: 2.0.18 3160 | cosmiconfig: 7.0.0 3161 | deepmerge: 4.2.2 3162 | detect-port: 1.3.0 3163 | es-module-lexer: 0.3.26 3164 | esbuild: 0.8.31 3165 | esinstall: 0.5.2 3166 | etag: 1.8.1 3167 | execa: 4.1.0 3168 | find-cache-dir: 3.3.1 3169 | find-up: 5.0.0 3170 | glob: 7.1.6 3171 | http-proxy: 1.18.1 3172 | httpie: 1.1.2 3173 | is-plain-object: 5.0.0 3174 | isbinaryfile: 4.0.6 3175 | jsonschema: 1.2.11 3176 | kleur: 4.1.3 3177 | mime-types: 2.1.28 3178 | mkdirp: 1.0.4 3179 | npm-run-path: 4.0.1 3180 | open: 7.3.1 3181 | p-queue: 6.6.2 3182 | postcss: 8.2.2 3183 | postcss-modules: 3.2.2 3184 | resolve-from: 5.0.0 3185 | rimraf: 3.0.2 3186 | signal-exit: 3.0.3 3187 | skypack: 0.2.1 3188 | source-map: 0.7.3 3189 | strip-ansi: 6.0.0 3190 | strip-comments: 2.0.1 3191 | validate-npm-package-name: 3.0.0 3192 | ws: 7.4.2 3193 | yargs-parser: 20.2.4 3194 | dev: true 3195 | engines: 3196 | node: '>=10.19.0' 3197 | hasBin: true 3198 | resolution: 3199 | integrity: sha512-UThUbGXn/wN7zRJDVpbC0F3uvkhu6PAgpTbV1hdAaqLvYBewT794iEMAY5mMxT27zQ+ZOyqbICaBtKtq0BgDcA== 3200 | /source-map/0.6.1: 3201 | dev: true 3202 | engines: 3203 | node: '>=0.10.0' 3204 | resolution: 3205 | integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 3206 | /source-map/0.7.3: 3207 | dev: true 3208 | engines: 3209 | node: '>= 8' 3210 | resolution: 3211 | integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== 3212 | /sourcemap-codec/1.4.8: 3213 | dev: true 3214 | resolution: 3215 | integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== 3216 | /ssri/8.0.0: 3217 | dependencies: 3218 | minipass: 3.1.3 3219 | dev: true 3220 | engines: 3221 | node: '>= 8' 3222 | resolution: 3223 | integrity: sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA== 3224 | /statuses/1.5.0: 3225 | dev: true 3226 | engines: 3227 | node: '>= 0.6' 3228 | resolution: 3229 | integrity: sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= 3230 | /string-hash/1.1.3: 3231 | dev: true 3232 | resolution: 3233 | integrity: sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= 3234 | /string-width/4.2.0: 3235 | dependencies: 3236 | emoji-regex: 8.0.0 3237 | is-fullwidth-code-point: 3.0.0 3238 | strip-ansi: 6.0.0 3239 | dev: true 3240 | engines: 3241 | node: '>=8' 3242 | resolution: 3243 | integrity: sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== 3244 | /string_decoder/1.3.0: 3245 | dependencies: 3246 | safe-buffer: 5.2.1 3247 | dev: true 3248 | resolution: 3249 | integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== 3250 | /strip-ansi/6.0.0: 3251 | dependencies: 3252 | ansi-regex: 5.0.0 3253 | dev: true 3254 | engines: 3255 | node: '>=8' 3256 | resolution: 3257 | integrity: sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 3258 | /strip-comments/2.0.1: 3259 | dev: true 3260 | engines: 3261 | node: '>=10' 3262 | resolution: 3263 | integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw== 3264 | /strip-final-newline/2.0.0: 3265 | dev: true 3266 | engines: 3267 | node: '>=6' 3268 | resolution: 3269 | integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== 3270 | /strip-indent/3.0.0: 3271 | dependencies: 3272 | min-indent: 1.0.1 3273 | dev: true 3274 | engines: 3275 | node: '>=8' 3276 | resolution: 3277 | integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== 3278 | /supports-color/5.5.0: 3279 | dependencies: 3280 | has-flag: 3.0.0 3281 | dev: true 3282 | engines: 3283 | node: '>=4' 3284 | resolution: 3285 | integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 3286 | /supports-color/6.1.0: 3287 | dependencies: 3288 | has-flag: 3.0.0 3289 | dev: true 3290 | engines: 3291 | node: '>=6' 3292 | resolution: 3293 | integrity: sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== 3294 | /supports-color/7.2.0: 3295 | dependencies: 3296 | has-flag: 4.0.0 3297 | dev: true 3298 | engines: 3299 | node: '>=8' 3300 | resolution: 3301 | integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 3302 | /svelte-hmr/0.12.2_svelte@3.31.2: 3303 | dependencies: 3304 | svelte: 3.31.2 3305 | dev: true 3306 | peerDependencies: 3307 | svelte: '>=3.19.0' 3308 | resolution: 3309 | integrity: sha512-86fpj4Wjno7OREJsGxQwpVBtB3kmiKWwpOlvdZmfBZYankpL38lcVtAi1zvQXXcN4g8pRXUG68khwp6dYRwpYg== 3310 | /svelte-preprocess/4.6.1_svelte@3.31.2: 3311 | dependencies: 3312 | '@types/pug': 2.0.4 3313 | '@types/sass': 1.16.0 3314 | detect-indent: 6.0.0 3315 | strip-indent: 3.0.0 3316 | svelte: 3.31.2 3317 | dev: true 3318 | engines: 3319 | node: '>= 9.11.2' 3320 | peerDependencies: 3321 | '@babel/core': ^7.10.2 3322 | coffeescript: ^2.5.1 3323 | less: ^3.11.3 3324 | node-sass: '*' 3325 | postcss: ^7 || ^8 3326 | postcss-load-config: ^2.1.0 3327 | pug: ^3.0.0 3328 | sass: ^1.26.8 3329 | stylus: ^0.54.7 3330 | sugarss: ^2.0.0 3331 | svelte: ^3.23.0 3332 | typescript: ^3.9.5 || ^4.0.0 3333 | peerDependenciesMeta: 3334 | '@babel/core': 3335 | optional: true 3336 | coffeescript: 3337 | optional: true 3338 | less: 3339 | optional: true 3340 | node-sass: 3341 | optional: true 3342 | postcss: 3343 | optional: true 3344 | postcss-load-config: 3345 | optional: true 3346 | pug: 3347 | optional: true 3348 | sass: 3349 | optional: true 3350 | stylus: 3351 | optional: true 3352 | sugarss: 3353 | optional: true 3354 | typescript: 3355 | optional: true 3356 | requiresBuild: true 3357 | resolution: 3358 | integrity: sha512-s7KdhR2pOsffyOzZIMEb315f6pfgeDnOWN47m6YKFeSEx3NMf/79Znc3vuG/Ai79SL/vsi86WDrjFPLGRfDesg== 3359 | /svelte/3.31.2: 3360 | dev: false 3361 | engines: 3362 | node: '>= 8' 3363 | resolution: 3364 | integrity: sha512-TxZGrXzX2ggFH3BIKY5fmbeMdJuZrMIMDYPMX6R9255bueuYIuVaBQSLUeY2oD7W4IdeqRZiAVGCjDw2POKBRA== 3365 | /table-layout/1.0.1: 3366 | dependencies: 3367 | array-back: 4.0.1 3368 | deep-extend: 0.6.0 3369 | typical: 5.2.0 3370 | wordwrapjs: 4.0.0 3371 | dev: true 3372 | engines: 3373 | node: '>=8.0.0' 3374 | resolution: 3375 | integrity: sha512-dEquqYNJiGwY7iPfZ3wbXDI944iqanTSchrACLL2nOB+1r+h1Nzu2eH+DuPPvWvm5Ry7iAPeFlgEtP5bIp5U7Q== 3376 | /tar-fs/2.1.1: 3377 | dependencies: 3378 | chownr: 1.1.4 3379 | mkdirp-classic: 0.5.3 3380 | pump: 3.0.0 3381 | tar-stream: 2.2.0 3382 | dev: true 3383 | resolution: 3384 | integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== 3385 | /tar-stream/2.2.0: 3386 | dependencies: 3387 | bl: 4.0.3 3388 | end-of-stream: 1.4.4 3389 | fs-constants: 1.0.0 3390 | inherits: 2.0.4 3391 | readable-stream: 3.6.0 3392 | dev: true 3393 | engines: 3394 | node: '>=6' 3395 | resolution: 3396 | integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== 3397 | /tar/6.0.5: 3398 | dependencies: 3399 | chownr: 2.0.0 3400 | fs-minipass: 2.1.0 3401 | minipass: 3.1.3 3402 | minizlib: 2.1.2 3403 | mkdirp: 1.0.4 3404 | yallist: 4.0.0 3405 | dev: true 3406 | engines: 3407 | node: '>= 10' 3408 | resolution: 3409 | integrity: sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg== 3410 | /through/2.3.8: 3411 | dev: true 3412 | resolution: 3413 | integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= 3414 | /tinro/0.5.9: 3415 | dev: false 3416 | resolution: 3417 | integrity: sha512-mr41Bf/nUlG7WOM674/OOPuIRr+BEl+IpqqV24cDqSJl3p30weCEh8CsLrk5YFdpmL6TCx5irBLzFM0kStuSMQ== 3418 | /to-regex-range/5.0.1: 3419 | dependencies: 3420 | is-number: 7.0.0 3421 | dev: true 3422 | engines: 3423 | node: '>=8.0' 3424 | resolution: 3425 | integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 3426 | /toidentifier/1.0.0: 3427 | dev: true 3428 | engines: 3429 | node: '>=0.6' 3430 | resolution: 3431 | integrity: sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== 3432 | /tr46/2.0.2: 3433 | dependencies: 3434 | punycode: 2.1.1 3435 | dev: true 3436 | engines: 3437 | node: '>=8' 3438 | resolution: 3439 | integrity: sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== 3440 | /tsscmp/1.0.6: 3441 | dev: true 3442 | engines: 3443 | node: '>=0.6.x' 3444 | resolution: 3445 | integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== 3446 | /type-detect/4.0.8: 3447 | dev: true 3448 | engines: 3449 | node: '>=4' 3450 | resolution: 3451 | integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== 3452 | /type-fest/0.11.0: 3453 | dev: true 3454 | engines: 3455 | node: '>=8' 3456 | resolution: 3457 | integrity: sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== 3458 | /type-is/1.6.18: 3459 | dependencies: 3460 | media-typer: 0.3.0 3461 | mime-types: 2.1.28 3462 | dev: true 3463 | engines: 3464 | node: '>= 0.6' 3465 | resolution: 3466 | integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 3467 | /typical/4.0.0: 3468 | dev: true 3469 | engines: 3470 | node: '>=8' 3471 | resolution: 3472 | integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== 3473 | /typical/5.2.0: 3474 | dev: true 3475 | engines: 3476 | node: '>=8' 3477 | resolution: 3478 | integrity: sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== 3479 | /unbzip2-stream/1.4.3: 3480 | dependencies: 3481 | buffer: 5.7.1 3482 | through: 2.3.8 3483 | dev: true 3484 | resolution: 3485 | integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== 3486 | /uniq/1.0.1: 3487 | dev: true 3488 | resolution: 3489 | integrity: sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= 3490 | /unique-filename/1.1.1: 3491 | dependencies: 3492 | unique-slug: 2.0.2 3493 | dev: true 3494 | resolution: 3495 | integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== 3496 | /unique-slug/2.0.2: 3497 | dependencies: 3498 | imurmurhash: 0.1.4 3499 | dev: true 3500 | resolution: 3501 | integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== 3502 | /unpipe/1.0.0: 3503 | dev: true 3504 | engines: 3505 | node: '>= 0.8' 3506 | resolution: 3507 | integrity: sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= 3508 | /util-deprecate/1.0.2: 3509 | dev: true 3510 | resolution: 3511 | integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 3512 | /util/0.10.3: 3513 | dependencies: 3514 | inherits: 2.0.1 3515 | dev: true 3516 | resolution: 3517 | integrity: sha1-evsa/lCAUkZInj23/g7TeTNqwPk= 3518 | /uuid/8.3.2: 3519 | dev: true 3520 | hasBin: true 3521 | resolution: 3522 | integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== 3523 | /v8-to-istanbul/7.1.0: 3524 | dependencies: 3525 | '@types/istanbul-lib-coverage': 2.0.3 3526 | convert-source-map: 1.7.0 3527 | source-map: 0.7.3 3528 | dev: true 3529 | engines: 3530 | node: '>=10.10.0' 3531 | resolution: 3532 | integrity: sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g== 3533 | /validate-npm-package-name/3.0.0: 3534 | dependencies: 3535 | builtins: 1.0.3 3536 | dev: true 3537 | resolution: 3538 | integrity: sha1-X6kS2B630MdK/BQN5zF/DKffQ34= 3539 | /vary/1.1.2: 3540 | dev: true 3541 | engines: 3542 | node: '>= 0.8' 3543 | resolution: 3544 | integrity: sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= 3545 | /vm2/3.9.2: 3546 | dev: true 3547 | engines: 3548 | node: '>=6.0' 3549 | hasBin: true 3550 | resolution: 3551 | integrity: sha512-nzyFmHdy2FMg7mYraRytc2jr4QBaUY3TEGe3q3bK8EgS9WC98wxn2jrPxS/ruWm+JGzrEIIeufKweQzVoQEd+Q== 3552 | /webidl-conversions/6.1.0: 3553 | dev: true 3554 | engines: 3555 | node: '>=10.4' 3556 | resolution: 3557 | integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== 3558 | /whatwg-url/8.4.0: 3559 | dependencies: 3560 | lodash.sortby: 4.7.0 3561 | tr46: 2.0.2 3562 | webidl-conversions: 6.1.0 3563 | dev: true 3564 | engines: 3565 | node: '>=10' 3566 | resolution: 3567 | integrity: sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw== 3568 | /which/2.0.2: 3569 | dependencies: 3570 | isexe: 2.0.0 3571 | dev: true 3572 | engines: 3573 | node: '>= 8' 3574 | hasBin: true 3575 | resolution: 3576 | integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 3577 | /wordwrapjs/4.0.0: 3578 | dependencies: 3579 | reduce-flatten: 2.0.0 3580 | typical: 5.2.0 3581 | dev: true 3582 | engines: 3583 | node: '>=8.0.0' 3584 | resolution: 3585 | integrity: sha512-Svqw723a3R34KvsMgpjFBYCgNOSdcW3mQFK4wIfhGQhtaFVOJmdYoXgi63ne3dTlWgatVcUc7t4HtQ/+bUVIzQ== 3586 | /wrap-ansi/6.2.0: 3587 | dependencies: 3588 | ansi-styles: 4.3.0 3589 | string-width: 4.2.0 3590 | strip-ansi: 6.0.0 3591 | dev: true 3592 | engines: 3593 | node: '>=8' 3594 | resolution: 3595 | integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== 3596 | /wrappy/1.0.2: 3597 | dev: true 3598 | resolution: 3599 | integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 3600 | /ws/7.4.2: 3601 | dev: true 3602 | engines: 3603 | node: '>=8.3.0' 3604 | peerDependencies: 3605 | bufferutil: ^4.0.1 3606 | utf-8-validate: ^5.0.2 3607 | peerDependenciesMeta: 3608 | bufferutil: 3609 | optional: true 3610 | utf-8-validate: 3611 | optional: true 3612 | resolution: 3613 | integrity: sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA== 3614 | /yallist/4.0.0: 3615 | dev: true 3616 | resolution: 3617 | integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 3618 | /yaml/1.10.0: 3619 | dev: true 3620 | engines: 3621 | node: '>= 6' 3622 | resolution: 3623 | integrity: sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== 3624 | /yargs-parser/20.2.4: 3625 | dev: true 3626 | engines: 3627 | node: '>=10' 3628 | resolution: 3629 | integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== 3630 | /yauzl/2.10.0: 3631 | dependencies: 3632 | buffer-crc32: 0.2.13 3633 | fd-slicer: 1.1.0 3634 | dev: true 3635 | resolution: 3636 | integrity: sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= 3637 | /ylru/1.2.1: 3638 | dev: true 3639 | engines: 3640 | node: '>= 4.0.0' 3641 | resolution: 3642 | integrity: sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ== 3643 | /yocto-queue/0.1.0: 3644 | dev: true 3645 | engines: 3646 | node: '>=10' 3647 | resolution: 3648 | integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== 3649 | specifiers: 3650 | '@snowpack/plugin-dotenv': ^2.0.5 3651 | '@snowpack/plugin-svelte': ^3.4.1 3652 | '@snowpack/web-test-runner-plugin': ^0.1.5 3653 | '@testing-library/svelte': ^3.0.3 3654 | '@types/faker': ^5.1.5 3655 | '@web/test-runner': ^0.10.2 3656 | chai: ^4.2.0 3657 | faker: ^5.2.0 3658 | prettier: ^2.2.1 3659 | prettier-plugin-svelte: ^2.1.1 3660 | snowpack: ^2.18.5 3661 | svelte: ^3.31.2 3662 | tinro: ^0.5.9 3663 | -------------------------------------------------------------------------------- /site/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dimfeld/svelte-zoomable/9347d8f1a55034bef167d073767d822b17aaa999/site/public/favicon.ico -------------------------------------------------------------------------------- /site/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Snowpack App 9 | 10 | 11 | 12 | 13 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /site/public/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /site/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /site/snowpack.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import("snowpack").SnowpackUserConfig } */ 2 | module.exports = { 3 | mount: { 4 | public: { url: '/', static: true }, 5 | src: { url: '/dist' }, 6 | '../src': { url: '/dist' }, 7 | }, 8 | plugins: ['@snowpack/plugin-svelte', '@snowpack/plugin-dotenv'], 9 | install: [ 10 | /* ... */ 11 | ], 12 | installOptions: { 13 | rollup: { 14 | dedupe: ['svelte'], 15 | }, 16 | }, 17 | devOptions: { 18 | /* ... */ 19 | }, 20 | buildOptions: { 21 | /* ... */ 22 | }, 23 | proxy: { 24 | /* ... */ 25 | }, 26 | alias: { 27 | /* ... */ 28 | }, 29 | }; 30 | -------------------------------------------------------------------------------- /site/src/App.svelte: -------------------------------------------------------------------------------- 1 | 21 | 22 |
23 |
24 | 32 | 33 | 38 |
39 | 40 |
41 | 42 | 43 | 44 |
45 |
46 | 47 | 98 | -------------------------------------------------------------------------------- /site/src/App.test.js: -------------------------------------------------------------------------------- 1 | import {render} from '@testing-library/svelte'; 2 | import {expect} from 'chai'; 3 | import App from './App.svelte'; 4 | 5 | describe('', () => { 6 | it('renders learn svelte link', () => { 7 | const {getByText} = render(App); 8 | const linkElement = getByText(/learn svelte/i); 9 | expect(document.body.contains(linkElement)); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /site/src/Content.svelte: -------------------------------------------------------------------------------- 1 | 20 | 21 | 50 | 51 | 52 |
57 | {data.title} 58 | {#if data.children} 59 | {#each data.children.map((c) => c.title) as c} 60 |

{dashes(c)}

61 | {/each} 62 | {:else} 63 | {#each [].concat(data.content) as c} 64 |

{c}

65 | {/each} 66 | {/if} 67 |
68 | 69 |
76 | 78 | {#if data.children} 79 | 80 | {:else} 81 |

{data.title}

82 |

{data.content}

83 | {/if} 84 |
85 |
86 | -------------------------------------------------------------------------------- /site/src/Items.svelte: -------------------------------------------------------------------------------- 1 | 6 | 7 | 17 | 18 |
19 | {#each items as i} 20 |
21 | 22 |
23 | {/each} 24 |
25 | -------------------------------------------------------------------------------- /site/src/NestedFoods.svelte: -------------------------------------------------------------------------------- 1 | 61 | 62 |

63 | 64 |

65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /site/src/ZoomGrid.svelte: -------------------------------------------------------------------------------- 1 | 36 | 37 |

38 | 39 |

40 | 41 |
42 | 43 | 44 | 45 |
46 | 47 | 55 | -------------------------------------------------------------------------------- /site/src/ZoomGridItems.svelte: -------------------------------------------------------------------------------- 1 | 5 | 6 |
7 | {#each items as item} 8 |
9 | 10 |
11 | {item.name} 12 |
13 | 14 |
15 | {#if item.children} 16 | 17 | {:else} 18 |

{item.name}

19 |
{item.text}
20 | {/if} 21 |
22 |
23 |
24 | {/each} 25 |
26 | 27 | 47 | -------------------------------------------------------------------------------- /site/src/index.js: -------------------------------------------------------------------------------- 1 | import App from "./App.svelte"; 2 | 3 | let app = new App({ 4 | target: document.body, 5 | }); 6 | 7 | export default app; 8 | 9 | // Hot Module Replacement (HMR) - Remove this snippet to remove HMR. 10 | // Learn more: https://www.snowpack.dev/concepts/hot-module-replacement 11 | if (import.meta.hot) { 12 | import.meta.hot.accept(); 13 | import.meta.hot.dispose(() => { 14 | app.$destroy(); 15 | }); 16 | } 17 | -------------------------------------------------------------------------------- /site/web-test-runner.config.js: -------------------------------------------------------------------------------- 1 | // NODE_ENV=test - Needed by "@snowpack/web-test-runner-plugin" 2 | process.env.NODE_ENV = 'test'; 3 | 4 | module.exports = { 5 | plugins: [require('@snowpack/web-test-runner-plugin')()], 6 | }; 7 | -------------------------------------------------------------------------------- /src/Breadcrumbs.svelte: -------------------------------------------------------------------------------- 1 | 15 | 16 | 28 | 29 | 38 | -------------------------------------------------------------------------------- /src/Zoomable.svelte: -------------------------------------------------------------------------------- 1 | 81 | 82 | {#if zoomed} 83 |
102 | zoomManager.set(fullId.slice(0, -1))} 108 | /> 109 |
110 | {:else if !hide} 111 |
129 | zoomManager.set(fullId)} /> 130 |
131 | {/if} 132 | 133 | 150 | -------------------------------------------------------------------------------- /src/ZoomableContainer.svelte: -------------------------------------------------------------------------------- 1 | 21 | 22 |
23 | 24 |
25 | 26 | 36 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | export { default as Zoomable } from './Zoomable.svelte'; 2 | export { default as ZoomableContainer } from './ZoomableContainer.svelte'; 3 | export { default as Breadcrumbs } from './Breadcrumbs.svelte'; 4 | export { presets as zoomPresets } from './transition'; 5 | -------------------------------------------------------------------------------- /src/transition.js: -------------------------------------------------------------------------------- 1 | import * as transitions from './transition_executors'; 2 | import * as schedules from './transition_schedulers'; 3 | 4 | /** Presets for how the transitions work */ 5 | export const presets = { 6 | /** The selected detail expands outward while the other 7 | * overviews fly away from it. 8 | * This is still being tweaked and doesn't look too great yet. */ 9 | zoomExperimental: { 10 | selectedOverview: transitions.fade, 11 | detail: transitions.zoomClipRect, 12 | otherOverviews: transitions.flyAwayFrom, 13 | schedule: schedules.allTogether, 14 | defaultDuration: 400, 15 | }, 16 | /** Simple fade */ 17 | fade: { 18 | detail: transitions.fade, 19 | selectedOverview: transitions.fade, 20 | otherOverviews: transitions.fade, 21 | schedule: schedules.allTogether, 22 | defaultDuration: 200, 23 | }, 24 | /** Similar to the Svelte crossfade transition */ 25 | crossfade: { 26 | detail: transitions.crossfade, 27 | selectedOverview: transitions.crossfade, 28 | otherOverviews: transitions.fade, 29 | schedule: schedules.allTogether, 30 | defaultDuration: 200, 31 | }, 32 | /** The sibling overviews fly into the clicked one */ 33 | mergeSiblingsParallel: { 34 | detail: transitions.crossfade, 35 | selectedOverview: transitions.crossfade, 36 | otherOverviews: transitions.flyIntoSelected, 37 | schedule: schedules.otherOverviewsParallelFirst, 38 | defaultDuration: 1000, 39 | }, 40 | /** The sibling overviews fly into the clicked one, one at a time */ 41 | // Disabled due to problems with getting all the transitions in different 42 | // components running at the same time. Will need another approach to make this 43 | // work. 44 | // mergeSiblingsSeries: { 45 | // detail: transitions.crossfade, 46 | // selectedOverview: transitions.crossfade, 47 | // otherOverviews: transitions.flyIntoSelected, 48 | // schedule: schedules.otherOverviewsSeriesFirst, 49 | // defaultDuration: 2000, 50 | // }, 51 | }; 52 | 53 | export function zoomTransition({ 54 | delay: delayParam, 55 | duration: durationParam, 56 | easing, 57 | } = {}) { 58 | let sending = new Map(); 59 | let receiving = new Map(); 60 | 61 | let siblingData = new Map(); 62 | 63 | function transition(items, counterparts) { 64 | let isIncoming = items === receiving; 65 | 66 | return (node, params) => { 67 | let preset = params.preset ?? presets.fade; 68 | let rect = node.getBoundingClientRect(); 69 | items.set(params.key, rect); 70 | 71 | if (params.parent !== undefined) { 72 | let d = siblingData.get(params.parent); 73 | if (!d) { 74 | d = { 75 | refCount: 0, 76 | overviews: new Map(), 77 | detail: null, 78 | }; 79 | 80 | siblingData.set(params.parent, d); 81 | } 82 | 83 | // Since we don't know yet which node is actually zooming and which 84 | // are just the flying overviews, track them all. 85 | d.refCount++; 86 | if (params.isDetail) { 87 | // console.log( 88 | // `Registered detail ${params.key} for parent ${params.parent}` 89 | // ); 90 | d.detail = { 91 | id: params.key, 92 | rect, 93 | incoming: isIncoming, 94 | }; 95 | } else { 96 | // console.log( 97 | // `Registered overview ${params.key} for parent ${params.parent}` 98 | // ); 99 | d.overviews.set(params.key, rect); 100 | } 101 | } 102 | 103 | return () => { 104 | // console.log(`Transitioning ${params.key}`); 105 | let rect = counterparts.get(params.key); 106 | counterparts.delete(params.key); 107 | 108 | if (!rect) { 109 | // No other element to fade with. 110 | items.delete(params.key); 111 | } 112 | 113 | let style; 114 | 115 | let duration = durationParam ?? preset.defaultDuration; 116 | let delay = delayParam ?? 0; 117 | let start = 0; 118 | let end = 1; 119 | if (params.parent !== undefined) { 120 | let d = siblingData.get(params.parent); 121 | if (d) { 122 | let schedule = preset.schedule({ 123 | siblingData: d, 124 | id: params.key, 125 | isDetail: params.isDetail, 126 | }); 127 | 128 | start = schedule.start; 129 | end = schedule.end; 130 | 131 | if (d.detail && !rect) { 132 | let detailRect = d.detail.rect; 133 | let zoomingOverviewRect = d.overviews.get(d.detail.id); 134 | // console.log(`${params.key} is a sibling`, { 135 | // detailRect, 136 | // zoomingOverviewRect, 137 | // }); 138 | 139 | let executorParams = { 140 | detailRect, 141 | activeOverviewRect: zoomingOverviewRect, 142 | otherRect: null, 143 | node, 144 | start, 145 | end, 146 | }; 147 | 148 | style = zoomingOverviewRect 149 | ? preset.otherOverviews(executorParams) 150 | : transitions.none(); 151 | } 152 | 153 | d.refCount--; 154 | if (!d.refCount) { 155 | siblingData.delete(params.parent); 156 | } 157 | } 158 | } 159 | 160 | if (!style) { 161 | if (rect) { 162 | let nodeRect = node.getBoundingClientRect(); 163 | let executorParams = { 164 | detailRect: params.isDetail ? nodeRect : rect, 165 | activeOverviewRect: params.isDetail ? rect : nodeRect, 166 | otherRect: rect, 167 | node, 168 | start, 169 | end, 170 | }; 171 | // This is one of the "active" elements 172 | style = params.isDetail 173 | ? preset.detail(executorParams) 174 | : preset.selectedOverview(executorParams); 175 | } else { 176 | // There is no other element, so just do nothing. 177 | style = transitions.none(); 178 | } 179 | } 180 | 181 | return { 182 | delay, 183 | duration, 184 | easing, 185 | ...style, 186 | }; 187 | }; 188 | }; 189 | } 190 | 191 | return [transition(sending, receiving), transition(receiving, sending)]; 192 | } 193 | 194 | export const [send, receive] = zoomTransition({}); 195 | -------------------------------------------------------------------------------- /src/transition_executors.js: -------------------------------------------------------------------------------- 1 | import { transition_in } from 'svelte/internal'; 2 | 3 | function ramp(start, end, cb) { 4 | return (t, u) => { 5 | if (t <= start) { 6 | t = 0; 7 | } else if (t >= end) { 8 | t = 1; 9 | } else { 10 | t = (t - start) / (end - start); 11 | } 12 | 13 | return cb(t, 1 - t); 14 | }; 15 | } 16 | 17 | /** Simple opacity fade for zooming overview screen */ 18 | export function fade({ node, start, end }) { 19 | const style = getComputedStyle(node); 20 | const opacity = +style.opacity; 21 | return { 22 | css: ramp(start, end, (t, u) => `opacity: ${t * opacity}`), 23 | }; 24 | } 25 | 26 | export function none() { 27 | return { 28 | css: () => '', 29 | }; 30 | } 31 | 32 | /** detail transition appears to expand or contract between overview node and full area of zoomable container. 33 | * I'm still experimenting with getting this to look good. 34 | */ 35 | export function zoomClipRect({ otherRect: from, node, start, end }) { 36 | let to = node.getBoundingClientRect(); 37 | 38 | const style = getComputedStyle(node); 39 | const opacity = +style.opacity; 40 | const originalTransform = style.transform === 'none' ? '' : style.transform; 41 | 42 | let topStart = from.top - to.top; 43 | let topEnd = 0; 44 | let dTop = topEnd - topStart; 45 | 46 | let bottomStart = topStart + from.height; 47 | let bottomEnd = to.height; 48 | let dBottom = bottomEnd - bottomStart; 49 | 50 | let leftStart = from.left - to.left; 51 | let leftEnd = 0; 52 | let dLeft = leftEnd - leftStart; 53 | 54 | let rightStart = leftStart + from.width; 55 | let rightEnd = to.width; 56 | let dRight = rightEnd - rightStart; 57 | 58 | return { 59 | css: ramp(start, end, (t, u) => { 60 | let opacityStyle = `opacity: ${t * opacity}`; 61 | 62 | let top = topStart + t * dTop + 'px'; 63 | let bottom = bottomStart + t * dBottom + 'px'; 64 | let left = leftStart + t * dLeft + 'px'; 65 | let right = rightStart + t * dRight + 'px'; 66 | 67 | let clipRect = `clip-path: polygon(0px 0px, ${right} 0px, ${right} ${bottom}, 0px ${bottom})`; 68 | let transform = `transform: ${originalTransform} translate(${left} ${top})`; 69 | 70 | let result = [ 71 | opacityStyle, 72 | clipRect, 73 | transform, 74 | // 'background-color: hsla(0, 0%, 95%)', 75 | ] 76 | .filter(Boolean) 77 | .join(';'); 78 | // console.log(t, result); 79 | return result; 80 | }), 81 | }; 82 | } 83 | 84 | /** This is the guts of Svelte's crossfade transition extracted 85 | * out and modified slightly to work with the rest of these 86 | * transition runners. 87 | */ 88 | export function crossfade({ otherRect, activeOverviewRect, node, start, end }) { 89 | const from = otherRect || activeOverviewRect; 90 | const to = node.getBoundingClientRect(); 91 | const dx = from.left - to.left; 92 | const dy = from.top - to.top; 93 | const dw = from.width / to.width; 94 | const dh = from.height / to.height; 95 | const d = Math.sqrt(dx * dx + dy * dy); 96 | 97 | const style = getComputedStyle(node); 98 | const transform = style.transform === 'none' ? '' : style.transform; 99 | const opacity = +style.opacity; 100 | 101 | return { 102 | css: ramp( 103 | start, 104 | end, 105 | (t, u) => ` 106 | opacity: ${t * opacity}; 107 | transform-origin: top left; 108 | transform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${ 109 | t + (1 - t) * dw 110 | }, ${t + (1 - t) * dh}); 111 | ` 112 | ), 113 | }; 114 | } 115 | 116 | /** The siblings overview nodes all move away from the expanding detail node */ 117 | export function flyAwayFrom({ 118 | detailRect: fromDetail, 119 | activeOverviewRect: fromOverview, 120 | node, 121 | start, 122 | end, 123 | }) { 124 | let current = node.getBoundingClientRect(); 125 | 126 | let distanceY = 127 | current.top <= fromOverview.top 128 | ? fromDetail.top - fromOverview.top 129 | : fromDetail.bottom - fromOverview.bottom; 130 | let distanceX = 131 | current.left <= fromOverview.left 132 | ? fromDetail.left - fromOverview.left 133 | : fromDetail.right - fromOverview.right; 134 | 135 | // console.log({ distanceX, distanceY }); 136 | 137 | const style = getComputedStyle(node); 138 | const opacity = +style.opacity; 139 | 140 | const basePosition = `position:absolute;top:${current.top}px;left:${current.left}px`; 141 | 142 | return { 143 | css: ramp(start, end, (t, u) => { 144 | let x = distanceX * u; 145 | let y = distanceY * u; 146 | let opacityStyle = `opacity: ${t * opacity}`; 147 | let result = [ 148 | basePosition, 149 | `transform: translate(${x}px, ${y}px)`, 150 | opacityStyle, 151 | ].join(';'); 152 | // console.log(result); 153 | return result; 154 | }), 155 | }; 156 | } 157 | 158 | /** Fly into the selected overview */ 159 | export function flyIntoSelected({ 160 | activeOverviewRect: toOverview, 161 | node, 162 | start, 163 | end, 164 | }) { 165 | const current = node.getBoundingClientRect(); 166 | const style = getComputedStyle(node); 167 | const opacity = +style.opacity; 168 | 169 | let currentCenterX = (current.right + current.left) / 2; 170 | let currentCenterY = (current.top + current.bottom) / 2; 171 | 172 | let destCenterX = (toOverview.right + toOverview.left) / 2; 173 | let destCenterY = (toOverview.top + toOverview.bottom) / 2; 174 | 175 | let distanceX = destCenterX - currentCenterX; 176 | let distanceY = destCenterY - currentCenterY; 177 | 178 | return { 179 | css: ramp(start, end, (t, u) => { 180 | let x = distanceX * u; 181 | let y = distanceY * u; 182 | 183 | let opacityStyle = `opacity: ${t * opacity}`; 184 | let result = [opacityStyle, `transform: translate(${x}px, ${y}px)`].join( 185 | ';' 186 | ); 187 | 188 | return result; 189 | }), 190 | }; 191 | } 192 | -------------------------------------------------------------------------------- /src/transition_schedulers.js: -------------------------------------------------------------------------------- 1 | /** All elements transition at the same time */ 2 | export function allTogether({ siblingData, id }) { 3 | return { 4 | start: 0, 5 | end: 1, 6 | }; 7 | } 8 | 9 | /** Each "other" overview element runs its transition, one at a 10 | * time, and then the active overview and the detail run at the end. 11 | */ 12 | export function otherOverviewsSeriesFirst({ siblingData, id, isDetail }) { 13 | let numElements = siblingData.overviews.size; 14 | let thisDuration = 1 / numElements; 15 | let detailId = siblingData.detail?.id; 16 | let detailIncoming = siblingData.detail?.incoming; 17 | 18 | if (id === detailId) { 19 | // This is a detail or the overview swapping with a detail. 20 | let start = isDetail ? 1 - thisDuration : 0; 21 | 22 | // console.log({ id, start, thisDuration, detailId, isDetail }); 23 | return { 24 | start, 25 | end: start + thisDuration, 26 | }; 27 | } 28 | 29 | // See where this one came in the order. 30 | let thisIndex = 0; 31 | for (let s of Array.from(siblingData.overviews.keys()).sort()) { 32 | if (s === id) { 33 | break; 34 | } 35 | 36 | if (s !== detailId) { 37 | thisIndex++; 38 | } 39 | } 40 | 41 | let elementSequence = thisDuration * (thisIndex + 1); 42 | let start = elementSequence; 43 | 44 | // console.log({ id, start, thisDuration, thisIndex, detailId }); 45 | 46 | return { 47 | start, 48 | end: start + thisDuration, 49 | }; 50 | } 51 | 52 | /** The "other" overview elements runs their transitions simultaneously, and then the active overview and the detail run at the end. 53 | */ 54 | export function otherOverviewsParallelFirst({ siblingData, id, isDetail }) { 55 | let detailId = siblingData.detail?.id; 56 | let start = isDetail || id !== detailId ? 0.5 : 0; 57 | 58 | // console.log({ id, isDetail, start }); 59 | 60 | return { 61 | start, 62 | end: start + 0.5, 63 | }; 64 | } 65 | -------------------------------------------------------------------------------- /src/zoomManager.js: -------------------------------------------------------------------------------- 1 | import { writable } from 'svelte/store'; 2 | export const zoomManagerContext = Symbol('zoom-manager'); 3 | export const zoomParentContext = Symbol('zoom-parent'); 4 | export const zoomTransitionContext = Symbol('zoom-transition'); 5 | 6 | function toArray(zoomPath) { 7 | if (typeof zoomPath === 'string') { 8 | zoomPath = zoomPath.split('.'); 9 | if (zoomPath[0] === '') { 10 | zoomPath = []; 11 | } 12 | } 13 | 14 | return zoomPath; 15 | } 16 | 17 | export function createZoomManager() { 18 | let currentZoomPath = []; 19 | let currentZoomPathStore = writable({ path: currentZoomPath, title: [] }); 20 | let components = new Map(); 21 | 22 | const status = (zoomPath) => { 23 | zoomPath = toArray(zoomPath); 24 | let zoomed = zoomPath.every((p, i) => currentZoomPath[i] === p); 25 | let active = zoomPath.length == currentZoomPath.length; 26 | 27 | return { 28 | zoomed, 29 | active, 30 | }; 31 | }; 32 | 33 | const updateComponent = (pathArray, zoomed, active) => { 34 | let path = pathArray.join('.'); 35 | let componentData = components.get(path); 36 | // console.log(`${path} zoomed ${zoomed} active ${active}`); 37 | componentData?.callback({ zoomed, active }); 38 | }; 39 | 40 | return { 41 | ...currentZoomPathStore, 42 | register({ id, title, callback }) { 43 | let idString = Array.isArray(id) ? id.join('.') : id; 44 | 45 | components.set(idString, { title, callback }); 46 | callback(status(id)); 47 | return () => components.delete(idString); 48 | }, 49 | status, 50 | set(zoomPath) { 51 | zoomPath = toArray(zoomPath); 52 | 53 | // console.log(`Moving to ${zoomPath.join('.')}`); 54 | 55 | let commonSegments = 0; 56 | while ( 57 | commonSegments < zoomPath.length && 58 | commonSegments < currentZoomPath.length && 59 | zoomPath[commonSegments] === currentZoomPath[commonSegments] 60 | ) { 61 | commonSegments++; 62 | } 63 | 64 | // Unzoom everything in currentZoomPath that doesn't match the new path. 65 | for (let i = currentZoomPath.length - 1; i >= commonSegments; --i) { 66 | updateComponent(currentZoomPath.slice(0, i + 1), false, false); 67 | } 68 | 69 | let finalComponentPath = zoomPath.join('.'); 70 | let finalComponentData = components.get(finalComponentPath); 71 | currentZoomPath = [...zoomPath]; 72 | currentZoomPathStore.set({ 73 | path: currentZoomPath, 74 | title: [...(finalComponentData?.title || [])], 75 | }); 76 | 77 | for (let i = commonSegments; i < zoomPath.length; ++i) { 78 | updateComponent(zoomPath.slice(0, i), true, false); 79 | } 80 | 81 | // Notify the newly-active component. 82 | if (finalComponentData) { 83 | finalComponentData.callback({ zoomed: true, active: true }); 84 | } 85 | }, 86 | }; 87 | } 88 | --------------------------------------------------------------------------------