├── .github └── workflows │ └── run_cafe_sync.yml ├── .gitignore ├── README.md ├── index.html ├── package.json ├── pnpm-lock.yaml ├── postcss.config.js ├── public └── favicon.svg ├── screenshots ├── 1.png └── logo.png ├── scripts └── process.mjs ├── sha ├── src ├── components │ ├── About.tsx │ ├── Detail.tsx │ ├── FloatControl.tsx │ ├── ListItem.tsx │ ├── Logo.tsx │ ├── Map.tsx │ ├── Modal.tsx │ ├── Nav.tsx │ └── Search.tsx ├── constants.ts ├── event.ts ├── main.css ├── main.tsx ├── store.ts ├── types.ts ├── utils │ ├── distance.ts │ ├── parseShop.ts │ └── time.ts └── window.d.ts ├── tailwind.config.js ├── tsconfig.json └── vite.config.ts /.github/workflows/run_cafe_sync.yml: -------------------------------------------------------------------------------- 1 | name: Cafe Sync 2 | 3 | on: 4 | schedule: 5 | - cron: "0 0 * * *" 6 | push: 7 | branches: 8 | - master 9 | 10 | jobs: 11 | sync: 12 | name: Sync 13 | runs-on: ubuntu-latest 14 | steps: 15 | - name: Checkout 16 | uses: actions/checkout@v2 17 | 18 | - name: Get source sha 19 | run: curl https://api.github.com/repos/ElaWorkshop/awesome-cn-cafe/branches/master --silent | grep "sha" | head -n1 > sha 20 | 21 | - name: Update source sha 22 | uses: EndBug/add-and-commit@v4 23 | with: 24 | message: "chore: update source sha" 25 | add: "sha" 26 | env: 27 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | cafe 2 | node_modules 3 | .DS_Store 4 | src/data.json 5 | src/build.ts 6 | dist 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 | 5 |

6 | Web App for Awesome CN Café 7 |

8 | 9 | 10 |

11 | 👉 Goto App 12 |

13 |
14 | 15 | ![](./screenshots/1.png) 16 | 17 | ## Features 18 | 19 | - Instant searching 20 | - Show my location and distances to shops 21 | - Direct open in map apps 22 | - Filter by network speed 23 | - Filter by refererrs 24 | - Auto sync with the source every day on 00:00 UTC, thanks [@yihong0618](https://github.com/yihong0618) 25 | - Powered by [Vite](https://github.com/vitejs/vite) and [reactivue](https://github.com/antfu/reactivue) (React + Vue) 26 | 27 | > 💡 For maintainers of other awesome cafe lists, if you are intersted in maintaining a fork for your cafe list, let me know and I am happy to help :) 28 | 29 | ## TODO 30 | 31 | - Auto PR Generator 32 | - Leave comments to existing shops 33 | - Add a new shop right inside app 34 | 35 | ## License 36 | 37 | MIT - Anthony Fu 2020 38 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Café / 𝐂𝐍 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "awesome-cn-cafe-web", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "fetch": "git clone https://github.com/ElaWorkshop/awesome-cn-cafe cafe 2> /dev/null || git -C cafe pull", 7 | "data": "node ./scripts/process.mjs", 8 | "postinstall": "npm run fetch && npm run data", 9 | "dev": "vite", 10 | "build": "npm run postinstall && vite build" 11 | }, 12 | "dependencies": { 13 | "@pika/react": "^16.13.1", 14 | "@pika/react-dom": "^16.13.1", 15 | "@vueuse/core": "^4.0.0-beta.4", 16 | "emitt": "^1.3.3", 17 | "fuse.js": "^6.4.1", 18 | "reactivue": "^0.2.1", 19 | "tailwindcss": "^1.6.2" 20 | }, 21 | "devDependencies": { 22 | "@antfu/eslint-config": "^0.3.1", 23 | "@iconify/react-with-api": "^1.0.0-beta.2", 24 | "@types/react": "^16.9.46", 25 | "@types/react-dom": "^16.9.8", 26 | "@typescript-eslint/eslint-plugin": "^3.9.0", 27 | "eslint": "^7.6.0", 28 | "eslint-plugin-react": "^7.20.5", 29 | "fast-glob": "^3.2.4", 30 | "typescript": "^3.9.7", 31 | "vite": "^1.0.0-rc.4", 32 | "vite-plugin-react": "^3.0.2" 33 | }, 34 | "eslintConfig": { 35 | "extends": "@antfu" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | dependencies: 2 | '@pika/react': 16.13.1 3 | '@pika/react-dom': 16.13.1 4 | '@vueuse/core': 4.0.0-beta.4 5 | emitt: 1.3.3 6 | fuse.js: 6.4.1 7 | reactivue: 0.2.1 8 | tailwindcss: 1.6.2 9 | devDependencies: 10 | '@antfu/eslint-config': 0.3.1_eslint@7.6.0+typescript@3.9.7 11 | '@iconify/react-with-api': 1.0.0-beta.2 12 | '@types/react': 16.9.46 13 | '@types/react-dom': 16.9.8 14 | '@typescript-eslint/eslint-plugin': 3.9.0_eslint@7.6.0+typescript@3.9.7 15 | eslint: 7.6.0 16 | eslint-plugin-react: 7.20.5_eslint@7.6.0 17 | fast-glob: 3.2.4 18 | typescript: 3.9.7 19 | vite: 1.0.0-rc.4 20 | vite-plugin-react: 3.0.2_vite@1.0.0-rc.4 21 | lockfileVersion: 5.1 22 | packages: 23 | /@antfu/eslint-config-basic/0.3.0_eslint@7.6.0: 24 | dependencies: 25 | eslint: 7.6.0 26 | eslint-config-standard: 14.1.1_852544c994842eaa2dbc35fff65e8cbc 27 | eslint-plugin-html: 6.0.3 28 | eslint-plugin-import: 2.22.0_eslint@7.6.0 29 | eslint-plugin-node: 11.1.0_eslint@7.6.0 30 | eslint-plugin-promise: 4.2.1 31 | eslint-plugin-standard: 4.0.1_eslint@7.6.0 32 | eslint-plugin-unicorn: 21.0.0_eslint@7.6.0 33 | dev: true 34 | peerDependencies: 35 | eslint: '>=7.4.0' 36 | resolution: 37 | integrity: sha512-vrfVvioCpUVsPxLmKIXmecVI/fZ94sSD1Kdp0KK7hnvg2PRlAlUOmfWJPe6Prtn21CXvUsgj1VRbkB2/euWPVA== 38 | /@antfu/eslint-config-react/0.3.1_eslint@7.6.0+typescript@3.9.7: 39 | dependencies: 40 | '@antfu/eslint-config-ts': 0.3.1_eslint@7.6.0+typescript@3.9.7 41 | eslint: 7.6.0 42 | eslint-plugin-react: 7.20.5_eslint@7.6.0 43 | dev: true 44 | peerDependencies: 45 | eslint: '>=7.4.0' 46 | typescript: '*' 47 | resolution: 48 | integrity: sha512-ij8PrR9NxKll+3eL2Qaqsp8u1vy4QW/GB/S60MorwHU1JnKnjhPX9QHhKesRhx2hdJt8SU7UueACOpOkGEFP/Q== 49 | /@antfu/eslint-config-ts/0.3.1_eslint@7.6.0+typescript@3.9.7: 50 | dependencies: 51 | '@antfu/eslint-config-basic': 0.3.0_eslint@7.6.0 52 | '@typescript-eslint/eslint-plugin': 3.6.1_d6577319693733c9ab4cf1a59ecb806a 53 | '@typescript-eslint/parser': 3.9.0_eslint@7.6.0+typescript@3.9.7 54 | eslint: 7.6.0 55 | typescript: 3.9.7 56 | dev: true 57 | peerDependencies: 58 | eslint: '>=7.4.0' 59 | typescript: '>=3.9' 60 | resolution: 61 | integrity: sha512-QLCBw9b8FibjdRxvoNFh1HE07QwGfkZxNfZ64J4a6bGADClL42kDM7OCvZmVfr+LXfybB6bX/pMr6qscF4ln4w== 62 | /@antfu/eslint-config-vue/0.3.1_eslint@7.6.0+typescript@3.9.7: 63 | dependencies: 64 | '@antfu/eslint-config-ts': 0.3.1_eslint@7.6.0+typescript@3.9.7 65 | eslint: 7.6.0 66 | eslint-plugin-vue: 7.0.0-alpha.10_eslint@7.6.0 67 | dev: true 68 | peerDependencies: 69 | eslint: '>=7.4.0' 70 | typescript: '*' 71 | resolution: 72 | integrity: sha512-7+tpJDAWN+xFGXQ1t0SmR9dhcWd/v1CeVNq53K3Ho8hYSgeSZKu/Y9UZ9wKaiyLj712Wp0iaJQfVeWbZMDW1JA== 73 | /@antfu/eslint-config/0.3.1_eslint@7.6.0+typescript@3.9.7: 74 | dependencies: 75 | '@antfu/eslint-config-react': 0.3.1_eslint@7.6.0+typescript@3.9.7 76 | '@antfu/eslint-config-vue': 0.3.1_eslint@7.6.0+typescript@3.9.7 77 | eslint: 7.6.0 78 | dev: true 79 | peerDependencies: 80 | eslint: '>=7.4.0' 81 | typescript: '*' 82 | resolution: 83 | integrity: sha512-AWo12Lc6deN0NXcE9IjHfTDLk7tn2Bz0CEWvzGFmKwD2f+Sg9HyKBC8uWhl9lDFJyasrKiOKL59EYS3wTxMLzA== 84 | /@babel/code-frame/7.10.4: 85 | dependencies: 86 | '@babel/highlight': 7.10.4 87 | dev: true 88 | resolution: 89 | integrity: sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== 90 | /@babel/core/7.11.0: 91 | dependencies: 92 | '@babel/code-frame': 7.10.4 93 | '@babel/generator': 7.11.0 94 | '@babel/helper-module-transforms': 7.11.0 95 | '@babel/helpers': 7.10.4 96 | '@babel/parser': 7.11.0 97 | '@babel/template': 7.10.4 98 | '@babel/traverse': 7.11.0 99 | '@babel/types': 7.11.0 100 | convert-source-map: 1.7.0 101 | debug: 4.1.1 102 | gensync: 1.0.0-beta.1 103 | json5: 2.1.3 104 | lodash: 4.17.19 105 | resolve: 1.17.0 106 | semver: 5.7.1 107 | source-map: 0.5.7 108 | dev: true 109 | engines: 110 | node: '>=6.9.0' 111 | resolution: 112 | integrity: sha512-mkLq8nwaXmDtFmRkQ8ED/eA2CnVw4zr7dCztKalZXBvdK5EeNUAesrrwUqjQEzFgomJssayzB0aqlOsP1vGLqg== 113 | /@babel/generator/7.11.0: 114 | dependencies: 115 | '@babel/types': 7.11.0 116 | jsesc: 2.5.2 117 | source-map: 0.5.7 118 | dev: true 119 | resolution: 120 | integrity: sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ== 121 | /@babel/helper-function-name/7.10.4: 122 | dependencies: 123 | '@babel/helper-get-function-arity': 7.10.4 124 | '@babel/template': 7.10.4 125 | '@babel/types': 7.11.0 126 | dev: true 127 | resolution: 128 | integrity: sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== 129 | /@babel/helper-get-function-arity/7.10.4: 130 | dependencies: 131 | '@babel/types': 7.11.0 132 | dev: true 133 | resolution: 134 | integrity: sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A== 135 | /@babel/helper-member-expression-to-functions/7.11.0: 136 | dependencies: 137 | '@babel/types': 7.11.0 138 | dev: true 139 | resolution: 140 | integrity: sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q== 141 | /@babel/helper-module-imports/7.10.4: 142 | dependencies: 143 | '@babel/types': 7.11.0 144 | dev: true 145 | resolution: 146 | integrity: sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== 147 | /@babel/helper-module-transforms/7.11.0: 148 | dependencies: 149 | '@babel/helper-module-imports': 7.10.4 150 | '@babel/helper-replace-supers': 7.10.4 151 | '@babel/helper-simple-access': 7.10.4 152 | '@babel/helper-split-export-declaration': 7.11.0 153 | '@babel/template': 7.10.4 154 | '@babel/types': 7.11.0 155 | lodash: 4.17.19 156 | dev: true 157 | resolution: 158 | integrity: sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg== 159 | /@babel/helper-optimise-call-expression/7.10.4: 160 | dependencies: 161 | '@babel/types': 7.11.0 162 | dev: true 163 | resolution: 164 | integrity: sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg== 165 | /@babel/helper-replace-supers/7.10.4: 166 | dependencies: 167 | '@babel/helper-member-expression-to-functions': 7.11.0 168 | '@babel/helper-optimise-call-expression': 7.10.4 169 | '@babel/traverse': 7.11.0 170 | '@babel/types': 7.11.0 171 | dev: true 172 | resolution: 173 | integrity: sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A== 174 | /@babel/helper-simple-access/7.10.4: 175 | dependencies: 176 | '@babel/template': 7.10.4 177 | '@babel/types': 7.11.0 178 | dev: true 179 | resolution: 180 | integrity: sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw== 181 | /@babel/helper-split-export-declaration/7.11.0: 182 | dependencies: 183 | '@babel/types': 7.11.0 184 | dev: true 185 | resolution: 186 | integrity: sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== 187 | /@babel/helper-validator-identifier/7.10.4: 188 | dev: true 189 | resolution: 190 | integrity: sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== 191 | /@babel/helpers/7.10.4: 192 | dependencies: 193 | '@babel/template': 7.10.4 194 | '@babel/traverse': 7.11.0 195 | '@babel/types': 7.11.0 196 | dev: true 197 | resolution: 198 | integrity: sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA== 199 | /@babel/highlight/7.10.4: 200 | dependencies: 201 | '@babel/helper-validator-identifier': 7.10.4 202 | chalk: 2.4.2 203 | js-tokens: 4.0.0 204 | dev: true 205 | resolution: 206 | integrity: sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== 207 | /@babel/parser/7.11.0: 208 | dev: true 209 | engines: 210 | node: '>=6.0.0' 211 | hasBin: true 212 | resolution: 213 | integrity: sha512-qvRvi4oI8xii8NllyEc4MDJjuZiNaRzyb7Y7lup1NqJV8TZHF4O27CcP+72WPn/k1zkgJ6WJfnIbk4jTsVAZHw== 214 | /@babel/template/7.10.4: 215 | dependencies: 216 | '@babel/code-frame': 7.10.4 217 | '@babel/parser': 7.11.0 218 | '@babel/types': 7.11.0 219 | dev: true 220 | resolution: 221 | integrity: sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== 222 | /@babel/traverse/7.11.0: 223 | dependencies: 224 | '@babel/code-frame': 7.10.4 225 | '@babel/generator': 7.11.0 226 | '@babel/helper-function-name': 7.10.4 227 | '@babel/helper-split-export-declaration': 7.11.0 228 | '@babel/parser': 7.11.0 229 | '@babel/types': 7.11.0 230 | debug: 4.1.1 231 | globals: 11.12.0 232 | lodash: 4.17.19 233 | dev: true 234 | resolution: 235 | integrity: sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg== 236 | /@babel/types/7.11.0: 237 | dependencies: 238 | '@babel/helper-validator-identifier': 7.10.4 239 | lodash: 4.17.19 240 | to-fast-properties: 2.0.0 241 | dev: true 242 | resolution: 243 | integrity: sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA== 244 | /@fullhuman/postcss-purgecss/2.3.0: 245 | dependencies: 246 | postcss: 7.0.32 247 | purgecss: 2.3.0 248 | dev: false 249 | resolution: 250 | integrity: sha512-qnKm5dIOyPGJ70kPZ5jiz0I9foVOic0j+cOzNDoo8KoCf6HjicIZ99UfO2OmE7vCYSKAAepEwJtNzpiiZAh9xw== 251 | /@iconify/react-with-api/1.0.0-beta.2: 252 | dev: true 253 | peerDependencies: 254 | react: ^16.0.0 255 | resolution: 256 | integrity: sha512-SBBRU5lp9BhvrR0RUL+/SJC2HjG4XVqRWoaWS0ZjRbqtUFAft+4FkeFEtOewEAFCOu3oSHmTg0kC0Im2suSijw== 257 | /@nodelib/fs.scandir/2.1.3: 258 | dependencies: 259 | '@nodelib/fs.stat': 2.0.3 260 | run-parallel: 1.1.9 261 | dev: true 262 | engines: 263 | node: '>= 8' 264 | resolution: 265 | integrity: sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== 266 | /@nodelib/fs.stat/2.0.3: 267 | dev: true 268 | engines: 269 | node: '>= 8' 270 | resolution: 271 | integrity: sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== 272 | /@nodelib/fs.walk/1.2.4: 273 | dependencies: 274 | '@nodelib/fs.scandir': 2.1.3 275 | fastq: 1.8.0 276 | dev: true 277 | engines: 278 | node: '>= 8' 279 | resolution: 280 | integrity: sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== 281 | /@pika/react-dom/16.13.1: 282 | dev: false 283 | peerDependencies: 284 | react: ^16.0.0 285 | resolution: 286 | integrity: sha512-tCROpA6uP7caCNodaOUcqmauQmpVOmFXsaaKUJgLOMiZdlW+L02ItK3WAqGSOw25rM0bbwDXNC/x9PpfiQ9ESg== 287 | /@pika/react/16.13.1: 288 | dev: false 289 | resolution: 290 | integrity: sha512-v33Ub2QxntNpDFRnkj3tCbT6jMb7Etu7LOMQO/YAulLRIDtDvJdMwuOVJDdPYUmDtWjfWOB5xSP7nl7k0BApbQ== 291 | /@rollup/plugin-commonjs/14.0.0_rollup@2.23.0: 292 | dependencies: 293 | '@rollup/pluginutils': 3.1.0_rollup@2.23.0 294 | commondir: 1.0.1 295 | estree-walker: 1.0.1 296 | glob: 7.1.6 297 | is-reference: 1.2.1 298 | magic-string: 0.25.7 299 | resolve: 1.17.0 300 | rollup: 2.23.0 301 | dev: true 302 | engines: 303 | node: '>= 8.0.0' 304 | peerDependencies: 305 | rollup: ^2.3.4 306 | resolution: 307 | integrity: sha512-+PSmD9ePwTAeU106i9FRdc+Zb3XUWyW26mo5Atr2mk82hor8+nPwkztEjFo8/B1fJKfaQDg9aM2bzQkjhi7zOw== 308 | /@rollup/plugin-json/4.1.0_rollup@2.23.0: 309 | dependencies: 310 | '@rollup/pluginutils': 3.1.0_rollup@2.23.0 311 | rollup: 2.23.0 312 | dev: true 313 | peerDependencies: 314 | rollup: ^1.20.0 || ^2.0.0 315 | resolution: 316 | integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw== 317 | /@rollup/plugin-node-resolve/8.4.0_rollup@2.23.0: 318 | dependencies: 319 | '@rollup/pluginutils': 3.1.0_rollup@2.23.0 320 | '@types/resolve': 1.17.1 321 | builtin-modules: 3.1.0 322 | deep-freeze: 0.0.1 323 | deepmerge: 4.2.2 324 | is-module: 1.0.0 325 | resolve: 1.17.0 326 | rollup: 2.23.0 327 | dev: true 328 | engines: 329 | node: '>= 8.0.0' 330 | peerDependencies: 331 | rollup: ^1.20.0||^2.0.0 332 | resolution: 333 | integrity: sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ== 334 | /@rollup/pluginutils/3.1.0_rollup@2.23.0: 335 | dependencies: 336 | '@types/estree': 0.0.39 337 | estree-walker: 1.0.1 338 | picomatch: 2.2.2 339 | rollup: 2.23.0 340 | dev: true 341 | engines: 342 | node: '>= 8.0.0' 343 | peerDependencies: 344 | rollup: ^1.20.0||^2.0.0 345 | resolution: 346 | integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== 347 | /@types/accepts/1.3.5: 348 | dependencies: 349 | '@types/node': 14.0.27 350 | dev: true 351 | resolution: 352 | integrity: sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== 353 | /@types/body-parser/1.19.0: 354 | dependencies: 355 | '@types/connect': 3.4.33 356 | '@types/node': 14.0.27 357 | dev: true 358 | resolution: 359 | integrity: sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ== 360 | /@types/color-name/1.1.1: 361 | resolution: 362 | integrity: sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== 363 | /@types/connect/3.4.33: 364 | dependencies: 365 | '@types/node': 14.0.27 366 | dev: true 367 | resolution: 368 | integrity: sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A== 369 | /@types/content-disposition/0.5.3: 370 | dev: true 371 | resolution: 372 | integrity: sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg== 373 | /@types/cookies/0.7.4: 374 | dependencies: 375 | '@types/connect': 3.4.33 376 | '@types/express': 4.17.7 377 | '@types/keygrip': 1.0.2 378 | '@types/node': 14.0.27 379 | dev: true 380 | resolution: 381 | integrity: sha512-oTGtMzZZAVuEjTwCjIh8T8FrC8n/uwy+PG0yTvQcdZ7etoel7C7/3MSd7qrukENTgQtotG7gvBlBojuVs7X5rw== 382 | /@types/eslint-visitor-keys/1.0.0: 383 | dev: true 384 | resolution: 385 | integrity: sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== 386 | /@types/estree/0.0.39: 387 | dev: true 388 | resolution: 389 | integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== 390 | /@types/estree/0.0.45: 391 | dev: true 392 | resolution: 393 | integrity: sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g== 394 | /@types/express-serve-static-core/4.17.9: 395 | dependencies: 396 | '@types/node': 14.0.27 397 | '@types/qs': 6.9.4 398 | '@types/range-parser': 1.2.3 399 | dev: true 400 | resolution: 401 | integrity: sha512-DG0BYg6yO+ePW+XoDENYz8zhNGC3jDDEpComMYn7WJc4mY1Us8Rw9ax2YhJXxpyk2SF47PQAoQ0YyVT1a0bEkA== 402 | /@types/express/4.17.7: 403 | dependencies: 404 | '@types/body-parser': 1.19.0 405 | '@types/express-serve-static-core': 4.17.9 406 | '@types/qs': 6.9.4 407 | '@types/serve-static': 1.13.5 408 | dev: true 409 | resolution: 410 | integrity: sha512-dCOT5lcmV/uC2J9k0rPafATeeyz+99xTt54ReX11/LObZgfzJqZNcW27zGhYyX+9iSEGXGt5qLPwRSvBZcLvtQ== 411 | /@types/http-assert/1.5.1: 412 | dev: true 413 | resolution: 414 | integrity: sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ== 415 | /@types/json-schema/7.0.5: 416 | dev: true 417 | resolution: 418 | integrity: sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ== 419 | /@types/json5/0.0.29: 420 | dev: true 421 | resolution: 422 | integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4= 423 | /@types/keygrip/1.0.2: 424 | dev: true 425 | resolution: 426 | integrity: sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw== 427 | /@types/koa-compose/3.2.5: 428 | dependencies: 429 | '@types/koa': 2.11.3 430 | dev: true 431 | resolution: 432 | integrity: sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ== 433 | /@types/koa/2.11.3: 434 | dependencies: 435 | '@types/accepts': 1.3.5 436 | '@types/content-disposition': 0.5.3 437 | '@types/cookies': 0.7.4 438 | '@types/http-assert': 1.5.1 439 | '@types/keygrip': 1.0.2 440 | '@types/koa-compose': 3.2.5 441 | '@types/node': 14.0.27 442 | dev: true 443 | resolution: 444 | integrity: sha512-ABxVkrNWa4O/Jp24EYI/hRNqEVRlhB9g09p48neQp4m3xL1TJtdWk2NyNQSMCU45ejeELMQZBYyfstyVvO2H3Q== 445 | /@types/lru-cache/5.1.0: 446 | dev: true 447 | resolution: 448 | integrity: sha512-RaE0B+14ToE4l6UqdarKPnXwVDuigfFv+5j9Dze/Nqr23yyuqdNvzcZi3xB+3Agvi5R4EOgAksfv3lXX4vBt9w== 449 | /@types/mime/2.0.3: 450 | dev: true 451 | resolution: 452 | integrity: sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q== 453 | /@types/node/14.0.27: 454 | dev: true 455 | resolution: 456 | integrity: sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g== 457 | /@types/normalize-package-data/2.4.0: 458 | dev: true 459 | resolution: 460 | integrity: sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== 461 | /@types/prop-types/15.7.3: 462 | dev: true 463 | resolution: 464 | integrity: sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== 465 | /@types/qs/6.9.4: 466 | dev: true 467 | resolution: 468 | integrity: sha512-+wYo+L6ZF6BMoEjtf8zB2esQsqdV6WsjRK/GP9WOgLPrq87PbNWgIxS76dS5uvl/QXtHGakZmwTznIfcPXcKlQ== 469 | /@types/range-parser/1.2.3: 470 | dev: true 471 | resolution: 472 | integrity: sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== 473 | /@types/react-dom/16.9.8: 474 | dependencies: 475 | '@types/react': 16.9.44 476 | dev: true 477 | resolution: 478 | integrity: sha512-ykkPQ+5nFknnlU6lDd947WbQ6TE3NNzbQAkInC2EKY1qeYdTKp7onFusmYZb+ityzx2YviqT6BXSu+LyWWJwcA== 479 | /@types/react/16.9.44: 480 | dependencies: 481 | '@types/prop-types': 15.7.3 482 | csstype: 3.0.2 483 | dev: true 484 | resolution: 485 | integrity: sha512-BtLoJrXdW8DVZauKP+bY4Kmiq7ubcJq+H/aCpRfvPF7RAT3RwR73Sg8szdc2YasbAlWBDrQ6Q+AFM0KwtQY+WQ== 486 | /@types/react/16.9.46: 487 | dependencies: 488 | '@types/prop-types': 15.7.3 489 | csstype: 3.0.2 490 | dev: true 491 | resolution: 492 | integrity: sha512-dbHzO3aAq1lB3jRQuNpuZ/mnu+CdD3H0WVaaBQA8LTT3S33xhVBUj232T8M3tAhSWJs/D/UqORYUlJNl/8VQZg== 493 | /@types/resolve/1.17.1: 494 | dependencies: 495 | '@types/node': 14.0.27 496 | dev: true 497 | resolution: 498 | integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== 499 | /@types/serve-static/1.13.5: 500 | dependencies: 501 | '@types/express-serve-static-core': 4.17.9 502 | '@types/mime': 2.0.3 503 | dev: true 504 | resolution: 505 | integrity: sha512-6M64P58N+OXjU432WoLLBQxbA0LRGBCRm7aAGQJ+SMC1IMl0dgRVi9EFfoDcS2a7Xogygk/eGN94CfwU9UF7UQ== 506 | /@typescript-eslint/eslint-plugin/3.6.1_d6577319693733c9ab4cf1a59ecb806a: 507 | dependencies: 508 | '@typescript-eslint/experimental-utils': 3.6.1_eslint@7.6.0+typescript@3.9.7 509 | '@typescript-eslint/parser': 3.9.0_eslint@7.6.0+typescript@3.9.7 510 | debug: 4.1.1 511 | eslint: 7.6.0 512 | functional-red-black-tree: 1.0.1 513 | regexpp: 3.1.0 514 | semver: 7.3.2 515 | tsutils: 3.17.1_typescript@3.9.7 516 | typescript: 3.9.7 517 | dev: true 518 | engines: 519 | node: ^10.12.0 || >=12.0.0 520 | peerDependencies: 521 | '@typescript-eslint/parser': ^3.0.0 522 | eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 523 | typescript: '*' 524 | peerDependenciesMeta: 525 | typescript: 526 | optional: true 527 | resolution: 528 | integrity: sha512-06lfjo76naNeOMDl+mWG9Fh/a0UHKLGhin+mGaIw72FUMbMGBkdi/FEJmgEDzh4eE73KIYzHWvOCYJ0ak7nrJQ== 529 | /@typescript-eslint/eslint-plugin/3.9.0_eslint@7.6.0+typescript@3.9.7: 530 | dependencies: 531 | '@typescript-eslint/experimental-utils': 3.9.0_eslint@7.6.0+typescript@3.9.7 532 | debug: 4.1.1 533 | eslint: 7.6.0 534 | functional-red-black-tree: 1.0.1 535 | regexpp: 3.1.0 536 | semver: 7.3.2 537 | tsutils: 3.17.1_typescript@3.9.7 538 | typescript: 3.9.7 539 | dev: true 540 | engines: 541 | node: ^10.12.0 || >=12.0.0 542 | peerDependencies: 543 | '@typescript-eslint/parser': ^3.0.0 544 | eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 545 | typescript: '*' 546 | peerDependenciesMeta: 547 | typescript: 548 | optional: true 549 | resolution: 550 | integrity: sha512-UD6b4p0/hSe1xdTvRCENSx7iQ+KR6ourlZFfYuPC7FlXEzdHuLPrEmuxZ23b2zW96KJX9Z3w05GE/wNOiEzrVg== 551 | /@typescript-eslint/experimental-utils/3.6.1_eslint@7.6.0+typescript@3.9.7: 552 | dependencies: 553 | '@types/json-schema': 7.0.5 554 | '@typescript-eslint/types': 3.6.1 555 | '@typescript-eslint/typescript-estree': 3.6.1_typescript@3.9.7 556 | eslint: 7.6.0 557 | eslint-scope: 5.1.0 558 | eslint-utils: 2.1.0 559 | dev: true 560 | engines: 561 | node: ^10.12.0 || >=12.0.0 562 | peerDependencies: 563 | eslint: '*' 564 | typescript: '*' 565 | resolution: 566 | integrity: sha512-oS+hihzQE5M84ewXrTlVx7eTgc52eu+sVmG7ayLfOhyZmJ8Unvf3osyFQNADHP26yoThFfbxcibbO0d2FjnYhg== 567 | /@typescript-eslint/experimental-utils/3.9.0_eslint@7.6.0+typescript@3.9.7: 568 | dependencies: 569 | '@types/json-schema': 7.0.5 570 | '@typescript-eslint/types': 3.9.0 571 | '@typescript-eslint/typescript-estree': 3.9.0_typescript@3.9.7 572 | eslint: 7.6.0 573 | eslint-scope: 5.1.0 574 | eslint-utils: 2.1.0 575 | typescript: 3.9.7 576 | dev: true 577 | engines: 578 | node: ^10.12.0 || >=12.0.0 579 | peerDependencies: 580 | eslint: '*' 581 | typescript: '*' 582 | resolution: 583 | integrity: sha512-/vSHUDYizSOhrOJdjYxPNGfb4a3ibO8zd4nUKo/QBFOmxosT3cVUV7KIg8Dwi6TXlr667G7YPqFK9+VSZOorNA== 584 | /@typescript-eslint/parser/3.9.0_eslint@7.6.0+typescript@3.9.7: 585 | dependencies: 586 | '@types/eslint-visitor-keys': 1.0.0 587 | '@typescript-eslint/experimental-utils': 3.9.0_eslint@7.6.0+typescript@3.9.7 588 | '@typescript-eslint/types': 3.9.0 589 | '@typescript-eslint/typescript-estree': 3.9.0_typescript@3.9.7 590 | eslint: 7.6.0 591 | eslint-visitor-keys: 1.3.0 592 | typescript: 3.9.7 593 | dev: true 594 | engines: 595 | node: ^10.12.0 || >=12.0.0 596 | peerDependencies: 597 | eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 598 | typescript: '*' 599 | peerDependenciesMeta: 600 | typescript: 601 | optional: true 602 | resolution: 603 | integrity: sha512-rDHOKb6uW2jZkHQniUQVZkixQrfsZGUCNWWbKWep4A5hGhN5dLHMUCNAWnC4tXRlHedXkTDptIpxs6e4Pz8UfA== 604 | /@typescript-eslint/types/3.6.1: 605 | dev: true 606 | engines: 607 | node: ^8.10.0 || ^10.13.0 || >=11.10.1 608 | resolution: 609 | integrity: sha512-NPxd5yXG63gx57WDTW1rp0cF3XlNuuFFB5G+Kc48zZ+51ZnQn9yjDEsjTPQ+aWM+V+Z0I4kuTFKjKvgcT1F7xQ== 610 | /@typescript-eslint/types/3.9.0: 611 | dev: true 612 | engines: 613 | node: ^8.10.0 || ^10.13.0 || >=11.10.1 614 | resolution: 615 | integrity: sha512-rb6LDr+dk9RVVXO/NJE8dT1pGlso3voNdEIN8ugm4CWM5w5GimbThCMiMl4da1t5u3YwPWEwOnKAULCZgBtBHg== 616 | /@typescript-eslint/typescript-estree/3.6.1_typescript@3.9.7: 617 | dependencies: 618 | '@typescript-eslint/types': 3.6.1 619 | '@typescript-eslint/visitor-keys': 3.6.1 620 | debug: 4.1.1 621 | glob: 7.1.6 622 | is-glob: 4.0.1 623 | lodash: 4.17.19 624 | semver: 7.3.2 625 | tsutils: 3.17.1_typescript@3.9.7 626 | typescript: 3.9.7 627 | dev: true 628 | engines: 629 | node: ^10.12.0 || >=12.0.0 630 | peerDependencies: 631 | typescript: '*' 632 | peerDependenciesMeta: 633 | typescript: 634 | optional: true 635 | resolution: 636 | integrity: sha512-G4XRe/ZbCZkL1fy09DPN3U0mR6SayIv1zSeBNquRFRk7CnVLgkC2ZPj8llEMJg5Y8dJ3T76SvTGtceytniaztQ== 637 | /@typescript-eslint/typescript-estree/3.9.0_typescript@3.9.7: 638 | dependencies: 639 | '@typescript-eslint/types': 3.9.0 640 | '@typescript-eslint/visitor-keys': 3.9.0 641 | debug: 4.1.1 642 | glob: 7.1.6 643 | is-glob: 4.0.1 644 | lodash: 4.17.19 645 | semver: 7.3.2 646 | tsutils: 3.17.1_typescript@3.9.7 647 | typescript: 3.9.7 648 | dev: true 649 | engines: 650 | node: ^10.12.0 || >=12.0.0 651 | peerDependencies: 652 | typescript: '*' 653 | peerDependenciesMeta: 654 | typescript: 655 | optional: true 656 | resolution: 657 | integrity: sha512-N+158NKgN4rOmWVfvKOMoMFV5n8XxAliaKkArm/sOypzQ0bUL8MSnOEBW3VFIeffb/K5ce/cAV0yYhR7U4ALAA== 658 | /@typescript-eslint/visitor-keys/3.6.1: 659 | dependencies: 660 | eslint-visitor-keys: 1.3.0 661 | dev: true 662 | engines: 663 | node: ^8.10.0 || ^10.13.0 || >=11.10.1 664 | resolution: 665 | integrity: sha512-qC8Olwz5ZyMTZrh4Wl3K4U6tfms0R/mzU4/5W3XeUZptVraGVmbptJbn6h2Ey6Rb3hOs3zWoAUebZk8t47KGiQ== 666 | /@typescript-eslint/visitor-keys/3.9.0: 667 | dependencies: 668 | eslint-visitor-keys: 1.3.0 669 | dev: true 670 | engines: 671 | node: ^8.10.0 || ^10.13.0 || >=11.10.1 672 | resolution: 673 | integrity: sha512-O1qeoGqDbu0EZUC/MZ6F1WHTIzcBVhGqDj3LhTnj65WUA548RXVxUHbYhAW9bZWfb2rnX9QsbbP5nmeJ5Z4+ng== 674 | /@vue/compiler-core/3.0.0-rc.5: 675 | dependencies: 676 | '@babel/parser': 7.11.0 677 | '@babel/types': 7.11.0 678 | '@vue/shared': 3.0.0-rc.5 679 | estree-walker: 2.0.1 680 | source-map: 0.6.1 681 | dev: true 682 | resolution: 683 | integrity: sha512-dNz5AObEYg0Oglw3emIsBhTAOVfObrfxDaAzR0UTRDDq+Ohfr6KTSaVQAH88Ym+oa08ZlLZBFc6ARe9doAOIxg== 684 | /@vue/compiler-dom/3.0.0-rc.5: 685 | dependencies: 686 | '@vue/compiler-core': 3.0.0-rc.5 687 | '@vue/shared': 3.0.0-rc.5 688 | dev: true 689 | resolution: 690 | integrity: sha512-z8n+R1GhFnWuKURLYxfVSEfP7nSNM91qteobxwys55fhlZZuReouMnUwgrn+ois/IL6RdFlT9H+n4+N6yLrdJA== 691 | /@vue/compiler-sfc/3.0.0-rc.5_vue@3.0.0-rc.5: 692 | dependencies: 693 | '@babel/parser': 7.11.0 694 | '@babel/types': 7.11.0 695 | '@vue/compiler-core': 3.0.0-rc.5 696 | '@vue/compiler-dom': 3.0.0-rc.5 697 | '@vue/compiler-ssr': 3.0.0-rc.5 698 | '@vue/shared': 3.0.0-rc.5 699 | consolidate: 0.15.1 700 | estree-walker: 2.0.1 701 | hash-sum: 2.0.0 702 | lru-cache: 5.1.1 703 | magic-string: 0.25.7 704 | merge-source-map: 1.1.0 705 | postcss: 7.0.32 706 | postcss-modules: 3.2.0 707 | postcss-selector-parser: 6.0.2 708 | source-map: 0.6.1 709 | vue: 3.0.0-rc.5 710 | dev: true 711 | peerDependencies: 712 | vue: 3.0.0-rc.5 713 | resolution: 714 | integrity: sha512-huoIFEfFCJxHcpoByAUQti7CIwJdHPLJXKuy2HG7J1B+IEKugtBdF50CLH35ZD8dWM0nyOMFFqTbO7i6CCjL3Q== 715 | /@vue/compiler-ssr/3.0.0-rc.5: 716 | dependencies: 717 | '@vue/compiler-dom': 3.0.0-rc.5 718 | '@vue/shared': 3.0.0-rc.5 719 | dev: true 720 | resolution: 721 | integrity: sha512-OU5Vl2+bCDMImS9OeCVnl4lfxZ3/sopdwX2SrUWVKQvCxmmmlyWvoVkC6nNGCs/MrOmIMhKmL6etgzLTWyCkUg== 722 | /@vue/reactivity/3.0.0-rc.5: 723 | dependencies: 724 | '@vue/shared': 3.0.0-rc.5 725 | resolution: 726 | integrity: sha512-oe9C+1jtWUdYL/iNc0OPWbwgOk2rOW2uQ+exx3I6Jo6PKOmnAiPkMElalf9vRnO53rnUphVecMp8BlTJvcNgDw== 727 | /@vue/runtime-core/3.0.0-rc.5: 728 | dependencies: 729 | '@vue/reactivity': 3.0.0-rc.5 730 | '@vue/shared': 3.0.0-rc.5 731 | dev: true 732 | resolution: 733 | integrity: sha512-MRIWreFigxdRuI2moFociUL5rVBfgYPrT7rWfQ0XfOyW46b+AiuCJyZvgbsRXwkAERfW1Tb/mY5forYjX2thOg== 734 | /@vue/runtime-dom/3.0.0-rc.5: 735 | dependencies: 736 | '@vue/runtime-core': 3.0.0-rc.5 737 | '@vue/shared': 3.0.0-rc.5 738 | csstype: 2.6.13 739 | dev: true 740 | resolution: 741 | integrity: sha512-0jwpO3MBqMToq7qC816Z8Y6G8aN4ZKbv7MupgRaepzxhiK0sXcjLQmOATP3g/NyX52UCBJS4wAwsxidqGnAabA== 742 | /@vue/shared/3.0.0-rc.5: 743 | resolution: 744 | integrity: sha512-ZhcgGzBpp+pUzisZgQpM4ctIGgLpYjBj7/rZfbhEPxFHF/BuTV2jmhXvAl8aF9xDAejIcw85xCy92gDSwKtPag== 745 | /@vueuse/core/4.0.0-beta.4: 746 | dependencies: 747 | vue-demi: 0.1.4 748 | dev: false 749 | resolution: 750 | integrity: sha512-ehNve6O4Ks4pcQ5IiYWsN0x0gdHArIkspsssSj95Gpjsll0UXiShcwlwcjbljQp9wF9oKpPj6TNqWhVxK5cLgg== 751 | /accepts/1.3.7: 752 | dependencies: 753 | mime-types: 2.1.27 754 | negotiator: 0.6.2 755 | dev: true 756 | engines: 757 | node: '>= 0.6' 758 | resolution: 759 | integrity: sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== 760 | /acorn-jsx/5.2.0_acorn@7.3.1: 761 | dependencies: 762 | acorn: 7.3.1 763 | dev: true 764 | peerDependencies: 765 | acorn: ^6.0.0 || ^7.0.0 766 | resolution: 767 | integrity: sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== 768 | /acorn-node/1.8.2: 769 | dependencies: 770 | acorn: 7.3.1 771 | acorn-walk: 7.2.0 772 | xtend: 4.0.2 773 | dev: false 774 | resolution: 775 | integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== 776 | /acorn-walk/7.2.0: 777 | dev: false 778 | engines: 779 | node: '>=0.4.0' 780 | resolution: 781 | integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== 782 | /acorn/7.3.1: 783 | engines: 784 | node: '>=0.4.0' 785 | hasBin: true 786 | resolution: 787 | integrity: sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA== 788 | /ajv/6.12.3: 789 | dependencies: 790 | fast-deep-equal: 3.1.3 791 | fast-json-stable-stringify: 2.1.0 792 | json-schema-traverse: 0.4.1 793 | uri-js: 4.2.2 794 | dev: true 795 | resolution: 796 | integrity: sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== 797 | /ansi-colors/4.1.1: 798 | dev: true 799 | engines: 800 | node: '>=6' 801 | resolution: 802 | integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== 803 | /ansi-regex/4.1.0: 804 | dev: true 805 | engines: 806 | node: '>=6' 807 | resolution: 808 | integrity: sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== 809 | /ansi-regex/5.0.0: 810 | dev: true 811 | engines: 812 | node: '>=8' 813 | resolution: 814 | integrity: sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== 815 | /ansi-styles/3.2.1: 816 | dependencies: 817 | color-convert: 1.9.3 818 | engines: 819 | node: '>=4' 820 | resolution: 821 | integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 822 | /ansi-styles/4.2.1: 823 | dependencies: 824 | '@types/color-name': 1.1.1 825 | color-convert: 2.0.1 826 | engines: 827 | node: '>=8' 828 | resolution: 829 | integrity: sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== 830 | /any-promise/1.3.0: 831 | dev: true 832 | resolution: 833 | integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8= 834 | /anymatch/3.1.1: 835 | dependencies: 836 | normalize-path: 3.0.0 837 | picomatch: 2.2.2 838 | dev: true 839 | engines: 840 | node: '>= 8' 841 | resolution: 842 | integrity: sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== 843 | /argparse/1.0.10: 844 | dependencies: 845 | sprintf-js: 1.0.3 846 | dev: true 847 | resolution: 848 | integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 849 | /array-includes/3.1.1: 850 | dependencies: 851 | define-properties: 1.1.3 852 | es-abstract: 1.17.6 853 | is-string: 1.0.5 854 | dev: true 855 | engines: 856 | node: '>= 0.4' 857 | resolution: 858 | integrity: sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== 859 | /array-union/2.1.0: 860 | dev: true 861 | engines: 862 | node: '>=8' 863 | resolution: 864 | integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== 865 | /array.prototype.flat/1.2.3: 866 | dependencies: 867 | define-properties: 1.1.3 868 | es-abstract: 1.17.6 869 | dev: true 870 | engines: 871 | node: '>= 0.4' 872 | resolution: 873 | integrity: sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== 874 | /array.prototype.flatmap/1.2.3: 875 | dependencies: 876 | define-properties: 1.1.3 877 | es-abstract: 1.17.6 878 | function-bind: 1.1.1 879 | dev: true 880 | engines: 881 | node: '>= 0.4' 882 | resolution: 883 | integrity: sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg== 884 | /astral-regex/1.0.0: 885 | dev: true 886 | engines: 887 | node: '>=4' 888 | resolution: 889 | integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== 890 | /at-least-node/1.0.0: 891 | dev: true 892 | engines: 893 | node: '>= 4.0.0' 894 | resolution: 895 | integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== 896 | /autoprefixer/9.8.6: 897 | dependencies: 898 | browserslist: 4.13.0 899 | caniuse-lite: 1.0.30001109 900 | colorette: 1.2.1 901 | normalize-range: 0.1.2 902 | num2fraction: 1.2.2 903 | postcss: 7.0.32 904 | postcss-value-parser: 4.1.0 905 | dev: false 906 | hasBin: true 907 | resolution: 908 | integrity: sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== 909 | /babel-eslint/10.1.0_eslint@7.6.0: 910 | dependencies: 911 | '@babel/code-frame': 7.10.4 912 | '@babel/parser': 7.11.0 913 | '@babel/traverse': 7.11.0 914 | '@babel/types': 7.11.0 915 | eslint: 7.6.0 916 | eslint-visitor-keys: 1.3.0 917 | resolve: 1.17.0 918 | dev: true 919 | engines: 920 | node: '>=6' 921 | peerDependencies: 922 | eslint: '>= 4.12.1' 923 | resolution: 924 | integrity: sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== 925 | /babel-plugin-syntax-flow/6.18.0: 926 | dev: false 927 | resolution: 928 | integrity: sha1-TDqyCiryaqIM0lmVw5jE63AxDI0= 929 | /babel-plugin-transform-flow-strip-types/6.22.0: 930 | dependencies: 931 | babel-plugin-syntax-flow: 6.18.0 932 | babel-runtime: 6.26.0 933 | dev: false 934 | resolution: 935 | integrity: sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988= 936 | /babel-preset-flow/6.23.0: 937 | dependencies: 938 | babel-plugin-transform-flow-strip-types: 6.22.0 939 | dev: false 940 | resolution: 941 | integrity: sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0= 942 | /babel-runtime/6.26.0: 943 | dependencies: 944 | core-js: 2.6.11 945 | regenerator-runtime: 0.11.1 946 | dev: false 947 | resolution: 948 | integrity: sha1-llxwWGaOgrVde/4E/yM3vItWR/4= 949 | /balanced-match/1.0.0: 950 | resolution: 951 | integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 952 | /big.js/5.2.2: 953 | dev: true 954 | resolution: 955 | integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== 956 | /binary-extensions/2.1.0: 957 | dev: true 958 | engines: 959 | node: '>=8' 960 | resolution: 961 | integrity: sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== 962 | /bluebird/3.7.2: 963 | dev: true 964 | resolution: 965 | integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== 966 | /brace-expansion/1.1.11: 967 | dependencies: 968 | balanced-match: 1.0.0 969 | concat-map: 0.0.1 970 | resolution: 971 | integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 972 | /braces/3.0.2: 973 | dependencies: 974 | fill-range: 7.0.1 975 | dev: true 976 | engines: 977 | node: '>=8' 978 | resolution: 979 | integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 980 | /brotli-size/4.0.0: 981 | dependencies: 982 | duplexer: 0.1.1 983 | dev: true 984 | engines: 985 | node: '>= 10.16.0' 986 | resolution: 987 | integrity: sha512-uA9fOtlTRC0iqKfzff1W34DXUA3GyVqbUaeo3Rw3d4gd1eavKVCETXrn3NzO74W+UVkG3UHu8WxUi+XvKI/huA== 988 | /browserslist/4.13.0: 989 | dependencies: 990 | caniuse-lite: 1.0.30001109 991 | electron-to-chromium: 1.3.516 992 | escalade: 3.0.2 993 | node-releases: 1.1.60 994 | dev: false 995 | engines: 996 | node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 997 | hasBin: true 998 | resolution: 999 | integrity: sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ== 1000 | /buffer-from/1.1.1: 1001 | dev: true 1002 | resolution: 1003 | integrity: sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== 1004 | /builtin-modules/1.1.1: 1005 | dev: true 1006 | engines: 1007 | node: '>=0.10.0' 1008 | resolution: 1009 | integrity: sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= 1010 | /builtin-modules/3.1.0: 1011 | dev: true 1012 | engines: 1013 | node: '>=6' 1014 | resolution: 1015 | integrity: sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw== 1016 | /bytes/3.1.0: 1017 | dev: false 1018 | engines: 1019 | node: '>= 0.8' 1020 | resolution: 1021 | integrity: sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== 1022 | /cache-content-type/1.0.1: 1023 | dependencies: 1024 | mime-types: 2.1.27 1025 | ylru: 1.2.1 1026 | dev: true 1027 | engines: 1028 | node: '>= 6.0.0' 1029 | resolution: 1030 | integrity: sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA== 1031 | /caller-callsite/2.0.0: 1032 | dependencies: 1033 | callsites: 2.0.0 1034 | dev: true 1035 | engines: 1036 | node: '>=4' 1037 | resolution: 1038 | integrity: sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= 1039 | /caller-path/2.0.0: 1040 | dependencies: 1041 | caller-callsite: 2.0.0 1042 | dev: true 1043 | engines: 1044 | node: '>=4' 1045 | resolution: 1046 | integrity: sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= 1047 | /callsites/2.0.0: 1048 | dev: true 1049 | engines: 1050 | node: '>=4' 1051 | resolution: 1052 | integrity: sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= 1053 | /callsites/3.1.0: 1054 | dev: true 1055 | engines: 1056 | node: '>=6' 1057 | resolution: 1058 | integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 1059 | /camelcase-css/2.0.1: 1060 | dev: false 1061 | engines: 1062 | node: '>= 6' 1063 | resolution: 1064 | integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== 1065 | /caniuse-lite/1.0.30001109: 1066 | dev: false 1067 | resolution: 1068 | integrity: sha512-4JIXRodHzdS3HdK8nSgIqXYLExOvG+D2/EenSvcub2Kp3QEADjo2v2oUn5g0n0D+UNwG9BtwKOyGcSq2qvQXvQ== 1069 | /chalk/2.4.2: 1070 | dependencies: 1071 | ansi-styles: 3.2.1 1072 | escape-string-regexp: 1.0.5 1073 | supports-color: 5.5.0 1074 | engines: 1075 | node: '>=4' 1076 | resolution: 1077 | integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 1078 | /chalk/3.0.0: 1079 | dependencies: 1080 | ansi-styles: 4.2.1 1081 | supports-color: 7.1.0 1082 | dev: true 1083 | engines: 1084 | node: '>=8' 1085 | resolution: 1086 | integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== 1087 | /chalk/4.1.0: 1088 | dependencies: 1089 | ansi-styles: 4.2.1 1090 | supports-color: 7.1.0 1091 | engines: 1092 | node: '>=10' 1093 | resolution: 1094 | integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== 1095 | /chokidar/3.4.1: 1096 | dependencies: 1097 | anymatch: 3.1.1 1098 | braces: 3.0.2 1099 | glob-parent: 5.1.1 1100 | is-binary-path: 2.1.0 1101 | is-glob: 4.0.1 1102 | normalize-path: 3.0.0 1103 | readdirp: 3.4.0 1104 | dev: true 1105 | engines: 1106 | node: '>= 8.10.0' 1107 | optionalDependencies: 1108 | fsevents: 2.1.3 1109 | resolution: 1110 | integrity: sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g== 1111 | /ci-info/2.0.0: 1112 | dev: true 1113 | resolution: 1114 | integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== 1115 | /clean-css/4.2.3: 1116 | dependencies: 1117 | source-map: 0.6.1 1118 | dev: true 1119 | engines: 1120 | node: '>= 4.0' 1121 | resolution: 1122 | integrity: sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== 1123 | /clean-regexp/1.0.0: 1124 | dependencies: 1125 | escape-string-regexp: 1.0.5 1126 | dev: true 1127 | engines: 1128 | node: '>=4' 1129 | resolution: 1130 | integrity: sha1-jffHquUf02h06PjQW5GAvBGj/tc= 1131 | /cli-cursor/3.1.0: 1132 | dependencies: 1133 | restore-cursor: 3.1.0 1134 | dev: true 1135 | engines: 1136 | node: '>=8' 1137 | resolution: 1138 | integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== 1139 | /cli-spinners/2.4.0: 1140 | dev: true 1141 | engines: 1142 | node: '>=6' 1143 | resolution: 1144 | integrity: sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA== 1145 | /clone/1.0.4: 1146 | dev: true 1147 | engines: 1148 | node: '>=0.8' 1149 | resolution: 1150 | integrity: sha1-2jCcwmPfFZlMaIypAheco8fNfH4= 1151 | /co/4.6.0: 1152 | dev: true 1153 | engines: 1154 | iojs: '>= 1.0.0' 1155 | node: '>= 0.12.0' 1156 | resolution: 1157 | integrity: sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= 1158 | /color-convert/1.9.3: 1159 | dependencies: 1160 | color-name: 1.1.3 1161 | resolution: 1162 | integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 1163 | /color-convert/2.0.1: 1164 | dependencies: 1165 | color-name: 1.1.4 1166 | engines: 1167 | node: '>=7.0.0' 1168 | resolution: 1169 | integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 1170 | /color-name/1.1.3: 1171 | resolution: 1172 | integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 1173 | /color-name/1.1.4: 1174 | resolution: 1175 | integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 1176 | /color-string/1.5.3: 1177 | dependencies: 1178 | color-name: 1.1.4 1179 | simple-swizzle: 0.2.2 1180 | dev: false 1181 | resolution: 1182 | integrity: sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== 1183 | /color/3.1.2: 1184 | dependencies: 1185 | color-convert: 1.9.3 1186 | color-string: 1.5.3 1187 | dev: false 1188 | resolution: 1189 | integrity: sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== 1190 | /colorette/1.2.1: 1191 | dev: false 1192 | resolution: 1193 | integrity: sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== 1194 | /commander/2.20.3: 1195 | dev: true 1196 | resolution: 1197 | integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 1198 | /commander/5.1.0: 1199 | dev: false 1200 | engines: 1201 | node: '>= 6' 1202 | resolution: 1203 | integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== 1204 | /commondir/1.0.1: 1205 | dev: true 1206 | resolution: 1207 | integrity: sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= 1208 | /concat-map/0.0.1: 1209 | resolution: 1210 | integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 1211 | /consolidate/0.15.1: 1212 | dependencies: 1213 | bluebird: 3.7.2 1214 | dev: true 1215 | engines: 1216 | node: '>= 0.10.0' 1217 | resolution: 1218 | integrity: sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw== 1219 | /contains-path/0.1.0: 1220 | dev: true 1221 | engines: 1222 | node: '>=0.10.0' 1223 | resolution: 1224 | integrity: sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= 1225 | /content-disposition/0.5.3: 1226 | dependencies: 1227 | safe-buffer: 5.1.2 1228 | dev: true 1229 | engines: 1230 | node: '>= 0.6' 1231 | resolution: 1232 | integrity: sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== 1233 | /content-type/1.0.4: 1234 | dev: true 1235 | engines: 1236 | node: '>= 0.6' 1237 | resolution: 1238 | integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== 1239 | /convert-source-map/1.7.0: 1240 | dependencies: 1241 | safe-buffer: 5.1.2 1242 | dev: true 1243 | resolution: 1244 | integrity: sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== 1245 | /cookies/0.8.0: 1246 | dependencies: 1247 | depd: 2.0.0 1248 | keygrip: 1.1.0 1249 | dev: true 1250 | engines: 1251 | node: '>= 0.8' 1252 | resolution: 1253 | integrity: sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow== 1254 | /core-js/2.6.11: 1255 | deprecated: 'core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.' 1256 | dev: false 1257 | requiresBuild: true 1258 | resolution: 1259 | integrity: sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== 1260 | /cosmiconfig/5.2.1: 1261 | dependencies: 1262 | import-fresh: 2.0.0 1263 | is-directory: 0.3.1 1264 | js-yaml: 3.14.0 1265 | parse-json: 4.0.0 1266 | dev: true 1267 | engines: 1268 | node: '>=4' 1269 | resolution: 1270 | integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== 1271 | /cross-spawn/7.0.3: 1272 | dependencies: 1273 | path-key: 3.1.1 1274 | shebang-command: 2.0.0 1275 | which: 2.0.2 1276 | dev: true 1277 | engines: 1278 | node: '>= 8' 1279 | resolution: 1280 | integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 1281 | /css-unit-converter/1.1.2: 1282 | dev: false 1283 | resolution: 1284 | integrity: sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA== 1285 | /cssesc/3.0.0: 1286 | engines: 1287 | node: '>=4' 1288 | hasBin: true 1289 | resolution: 1290 | integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== 1291 | /csstype/2.6.13: 1292 | dev: true 1293 | resolution: 1294 | integrity: sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A== 1295 | /csstype/3.0.2: 1296 | dev: true 1297 | resolution: 1298 | integrity: sha512-ofovWglpqoqbfLNOTBNZLSbMuGrblAf1efvvArGKOZMBrIoJeu5UsAipQolkijtyQx5MtAzT/J9IHj/CEY1mJw== 1299 | /debug/2.6.9: 1300 | dependencies: 1301 | ms: 2.0.0 1302 | dev: true 1303 | resolution: 1304 | integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 1305 | /debug/3.1.0: 1306 | dependencies: 1307 | ms: 2.0.0 1308 | dev: true 1309 | resolution: 1310 | integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== 1311 | /debug/3.2.6: 1312 | dependencies: 1313 | ms: 2.1.2 1314 | dev: true 1315 | resolution: 1316 | integrity: sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== 1317 | /debug/4.1.1: 1318 | dependencies: 1319 | ms: 2.1.2 1320 | dev: true 1321 | resolution: 1322 | integrity: sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== 1323 | /deep-equal/1.0.1: 1324 | dev: true 1325 | resolution: 1326 | integrity: sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= 1327 | /deep-freeze/0.0.1: 1328 | dev: true 1329 | resolution: 1330 | integrity: sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ= 1331 | /deep-is/0.1.3: 1332 | dev: true 1333 | resolution: 1334 | integrity: sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= 1335 | /deepmerge/4.2.2: 1336 | dev: true 1337 | engines: 1338 | node: '>=0.10.0' 1339 | resolution: 1340 | integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== 1341 | /defaults/1.0.3: 1342 | dependencies: 1343 | clone: 1.0.4 1344 | dev: true 1345 | resolution: 1346 | integrity: sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= 1347 | /define-properties/1.1.3: 1348 | dependencies: 1349 | object-keys: 1.1.1 1350 | dev: true 1351 | engines: 1352 | node: '>= 0.4' 1353 | resolution: 1354 | integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== 1355 | /defined/1.0.0: 1356 | dev: false 1357 | resolution: 1358 | integrity: sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= 1359 | /delegates/1.0.0: 1360 | dev: true 1361 | resolution: 1362 | integrity: sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= 1363 | /depd/1.1.2: 1364 | dev: true 1365 | engines: 1366 | node: '>= 0.6' 1367 | resolution: 1368 | integrity: sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= 1369 | /depd/2.0.0: 1370 | dev: true 1371 | engines: 1372 | node: '>= 0.8' 1373 | resolution: 1374 | integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== 1375 | /destroy/1.0.4: 1376 | dev: true 1377 | resolution: 1378 | integrity: sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= 1379 | /detective/5.2.0: 1380 | dependencies: 1381 | acorn-node: 1.8.2 1382 | defined: 1.0.0 1383 | minimist: 1.2.5 1384 | dev: false 1385 | engines: 1386 | node: '>=0.8.0' 1387 | hasBin: true 1388 | resolution: 1389 | integrity: sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg== 1390 | /dir-glob/3.0.1: 1391 | dependencies: 1392 | path-type: 4.0.0 1393 | dev: true 1394 | engines: 1395 | node: '>=8' 1396 | resolution: 1397 | integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== 1398 | /doctrine/1.5.0: 1399 | dependencies: 1400 | esutils: 2.0.3 1401 | isarray: 1.0.0 1402 | dev: true 1403 | engines: 1404 | node: '>=0.10.0' 1405 | resolution: 1406 | integrity: sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= 1407 | /doctrine/2.1.0: 1408 | dependencies: 1409 | esutils: 2.0.3 1410 | dev: true 1411 | engines: 1412 | node: '>=0.10.0' 1413 | resolution: 1414 | integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== 1415 | /doctrine/3.0.0: 1416 | dependencies: 1417 | esutils: 2.0.3 1418 | dev: true 1419 | engines: 1420 | node: '>=6.0.0' 1421 | resolution: 1422 | integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 1423 | /dom-serializer/0.2.2: 1424 | dependencies: 1425 | domelementtype: 2.0.1 1426 | entities: 2.0.3 1427 | dev: true 1428 | resolution: 1429 | integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== 1430 | /domelementtype/2.0.1: 1431 | dev: true 1432 | resolution: 1433 | integrity: sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== 1434 | /domhandler/3.0.0: 1435 | dependencies: 1436 | domelementtype: 2.0.1 1437 | dev: true 1438 | engines: 1439 | node: '>= 4' 1440 | resolution: 1441 | integrity: sha512-eKLdI5v9m67kbXQbJSNn1zjh0SDzvzWVWtX+qEI3eMjZw8daH9k8rlj1FZY9memPwjiskQFbe7vHVVJIAqoEhw== 1442 | /domutils/2.1.0: 1443 | dependencies: 1444 | dom-serializer: 0.2.2 1445 | domelementtype: 2.0.1 1446 | domhandler: 3.0.0 1447 | dev: true 1448 | resolution: 1449 | integrity: sha512-CD9M0Dm1iaHfQ1R/TI+z3/JWp/pgub0j4jIQKH89ARR4ATAV2nbaOQS5XxU9maJP5jHaPdDDQSEHuE2UmpUTKg== 1450 | /dotenv-expand/5.1.0: 1451 | dev: true 1452 | resolution: 1453 | integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== 1454 | /dotenv/8.2.0: 1455 | dev: true 1456 | engines: 1457 | node: '>=8' 1458 | resolution: 1459 | integrity: sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== 1460 | /duplexer/0.1.1: 1461 | dev: true 1462 | resolution: 1463 | integrity: sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= 1464 | /ee-first/1.1.1: 1465 | dev: true 1466 | resolution: 1467 | integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= 1468 | /electron-to-chromium/1.3.516: 1469 | dev: false 1470 | resolution: 1471 | integrity: sha512-WDM5AAQdOrvLqSX8g3Zd5AujBXfMxf96oeZkff0U2HF5op3tjShE+on2yay3r1UD4M9I3p0iHpAS4+yV8U8A9A== 1472 | /emitt/1.3.3: 1473 | dependencies: 1474 | babel-preset-flow: 6.23.0 1475 | dev: false 1476 | resolution: 1477 | integrity: sha512-L9Hkuqyf6buLxH9oay3/qWoFJb4Z+JHasw8643G2C6P2JHus3XX5S5pgpaDfZKXKoxoXk628R15uCuiDtb/zZw== 1478 | /emoji-regex/7.0.3: 1479 | dev: true 1480 | resolution: 1481 | integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== 1482 | /emojis-list/3.0.0: 1483 | dev: true 1484 | engines: 1485 | node: '>= 4' 1486 | resolution: 1487 | integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== 1488 | /encodeurl/1.0.2: 1489 | dev: true 1490 | engines: 1491 | node: '>= 0.8' 1492 | resolution: 1493 | integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= 1494 | /end-of-stream/1.4.4: 1495 | dependencies: 1496 | once: 1.4.0 1497 | dev: true 1498 | resolution: 1499 | integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 1500 | /enquirer/2.3.6: 1501 | dependencies: 1502 | ansi-colors: 4.1.1 1503 | dev: true 1504 | engines: 1505 | node: '>=8.6' 1506 | resolution: 1507 | integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== 1508 | /entities/2.0.3: 1509 | dev: true 1510 | resolution: 1511 | integrity: sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== 1512 | /error-ex/1.3.2: 1513 | dependencies: 1514 | is-arrayish: 0.2.1 1515 | dev: true 1516 | resolution: 1517 | integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 1518 | /es-abstract/1.17.6: 1519 | dependencies: 1520 | es-to-primitive: 1.2.1 1521 | function-bind: 1.1.1 1522 | has: 1.0.3 1523 | has-symbols: 1.0.1 1524 | is-callable: 1.2.0 1525 | is-regex: 1.1.0 1526 | object-inspect: 1.8.0 1527 | object-keys: 1.1.1 1528 | object.assign: 4.1.0 1529 | string.prototype.trimend: 1.0.1 1530 | string.prototype.trimstart: 1.0.1 1531 | dev: true 1532 | engines: 1533 | node: '>= 0.4' 1534 | resolution: 1535 | integrity: sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== 1536 | /es-module-lexer/0.3.24: 1537 | dev: true 1538 | resolution: 1539 | integrity: sha512-jm/i7KdJtaMDle921xIsA/MQQOGuZ6goYxhlV+k+gQNI7FtP4N6jknrmJvj++3ODpiyFGwQ4PIstJfHJQJNc+g== 1540 | /es-to-primitive/1.2.1: 1541 | dependencies: 1542 | is-callable: 1.2.0 1543 | is-date-object: 1.0.2 1544 | is-symbol: 1.0.3 1545 | dev: true 1546 | engines: 1547 | node: '>= 0.4' 1548 | resolution: 1549 | integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== 1550 | /esbuild/0.6.13: 1551 | dev: true 1552 | hasBin: true 1553 | requiresBuild: true 1554 | resolution: 1555 | integrity: sha512-eTaeqZCna+g9cTqhdT/qn1n+ef8FinkjTHTEexn8mbCRxxqGlc1GfgiURXt74OAwHwH6IU2j/bX9NCyFBsi5KQ== 1556 | /escalade/3.0.2: 1557 | dev: false 1558 | engines: 1559 | node: '>=6' 1560 | resolution: 1561 | integrity: sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ== 1562 | /escape-html/1.0.3: 1563 | dev: true 1564 | resolution: 1565 | integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= 1566 | /escape-string-regexp/1.0.5: 1567 | engines: 1568 | node: '>=0.8.0' 1569 | resolution: 1570 | integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 1571 | /eslint-ast-utils/1.1.0: 1572 | dependencies: 1573 | lodash.get: 4.4.2 1574 | lodash.zip: 4.2.0 1575 | dev: true 1576 | engines: 1577 | node: '>=4' 1578 | resolution: 1579 | integrity: sha512-otzzTim2/1+lVrlH19EfQQJEhVJSu0zOb9ygb3iapN6UlyaDtyRq4b5U1FuW0v1lRa9Fp/GJyHkSwm6NqABgCA== 1580 | /eslint-config-standard/14.1.1_852544c994842eaa2dbc35fff65e8cbc: 1581 | dependencies: 1582 | eslint: 7.6.0 1583 | eslint-plugin-import: 2.22.0_eslint@7.6.0 1584 | eslint-plugin-node: 11.1.0_eslint@7.6.0 1585 | eslint-plugin-promise: 4.2.1 1586 | eslint-plugin-standard: 4.0.1_eslint@7.6.0 1587 | dev: true 1588 | peerDependencies: 1589 | eslint: '>=6.2.2' 1590 | eslint-plugin-import: '>=2.18.0' 1591 | eslint-plugin-node: '>=9.1.0' 1592 | eslint-plugin-promise: '>=4.2.1' 1593 | eslint-plugin-standard: '>=4.0.0' 1594 | resolution: 1595 | integrity: sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg== 1596 | /eslint-import-resolver-node/0.3.4: 1597 | dependencies: 1598 | debug: 2.6.9 1599 | resolve: 1.17.0 1600 | dev: true 1601 | resolution: 1602 | integrity: sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== 1603 | /eslint-module-utils/2.6.0: 1604 | dependencies: 1605 | debug: 2.6.9 1606 | pkg-dir: 2.0.0 1607 | dev: true 1608 | engines: 1609 | node: '>=4' 1610 | resolution: 1611 | integrity: sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== 1612 | /eslint-plugin-es/3.0.1_eslint@7.6.0: 1613 | dependencies: 1614 | eslint: 7.6.0 1615 | eslint-utils: 2.1.0 1616 | regexpp: 3.1.0 1617 | dev: true 1618 | engines: 1619 | node: '>=8.10.0' 1620 | peerDependencies: 1621 | eslint: '>=4.19.1' 1622 | resolution: 1623 | integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== 1624 | /eslint-plugin-html/6.0.3: 1625 | dependencies: 1626 | htmlparser2: 4.1.0 1627 | dev: true 1628 | resolution: 1629 | integrity: sha512-1KV2ebQHywlXkfpXOGjxuEyoq+g6AWvD6g9TB28KsGhbM5rJeHXAEpHOev6LqZv6ylcfa9BWokDsNVKyYefzGw== 1630 | /eslint-plugin-import/2.22.0_eslint@7.6.0: 1631 | dependencies: 1632 | array-includes: 3.1.1 1633 | array.prototype.flat: 1.2.3 1634 | contains-path: 0.1.0 1635 | debug: 2.6.9 1636 | doctrine: 1.5.0 1637 | eslint: 7.6.0 1638 | eslint-import-resolver-node: 0.3.4 1639 | eslint-module-utils: 2.6.0 1640 | has: 1.0.3 1641 | minimatch: 3.0.4 1642 | object.values: 1.1.1 1643 | read-pkg-up: 2.0.0 1644 | resolve: 1.17.0 1645 | tsconfig-paths: 3.9.0 1646 | dev: true 1647 | engines: 1648 | node: '>=4' 1649 | peerDependencies: 1650 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 1651 | resolution: 1652 | integrity: sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg== 1653 | /eslint-plugin-node/11.1.0_eslint@7.6.0: 1654 | dependencies: 1655 | eslint: 7.6.0 1656 | eslint-plugin-es: 3.0.1_eslint@7.6.0 1657 | eslint-utils: 2.1.0 1658 | ignore: 5.1.8 1659 | minimatch: 3.0.4 1660 | resolve: 1.17.0 1661 | semver: 6.3.0 1662 | dev: true 1663 | engines: 1664 | node: '>=8.10.0' 1665 | peerDependencies: 1666 | eslint: '>=5.16.0' 1667 | resolution: 1668 | integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== 1669 | /eslint-plugin-promise/4.2.1: 1670 | dev: true 1671 | engines: 1672 | node: '>=6' 1673 | resolution: 1674 | integrity: sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw== 1675 | /eslint-plugin-react/7.20.5_eslint@7.6.0: 1676 | dependencies: 1677 | array-includes: 3.1.1 1678 | array.prototype.flatmap: 1.2.3 1679 | doctrine: 2.1.0 1680 | eslint: 7.6.0 1681 | has: 1.0.3 1682 | jsx-ast-utils: 2.4.1 1683 | object.entries: 1.1.2 1684 | object.fromentries: 2.0.2 1685 | object.values: 1.1.1 1686 | prop-types: 15.7.2 1687 | resolve: 1.17.0 1688 | string.prototype.matchall: 4.0.2 1689 | dev: true 1690 | engines: 1691 | node: '>=4' 1692 | peerDependencies: 1693 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 1694 | resolution: 1695 | integrity: sha512-ajbJfHuFnpVNJjhyrfq+pH1C0gLc2y94OiCbAXT5O0J0YCKaFEHDV8+3+mDOr+w8WguRX+vSs1bM2BDG0VLvCw== 1696 | /eslint-plugin-standard/4.0.1_eslint@7.6.0: 1697 | dependencies: 1698 | eslint: 7.6.0 1699 | dev: true 1700 | peerDependencies: 1701 | eslint: '>=5.0.0' 1702 | resolution: 1703 | integrity: sha512-v/KBnfyaOMPmZc/dmc6ozOdWqekGp7bBGq4jLAecEfPGmfKiWS4sA8sC0LqiV9w5qmXAtXVn4M3p1jSyhY85SQ== 1704 | /eslint-plugin-unicorn/21.0.0_eslint@7.6.0: 1705 | dependencies: 1706 | ci-info: 2.0.0 1707 | clean-regexp: 1.0.0 1708 | eslint: 7.6.0 1709 | eslint-ast-utils: 1.1.0 1710 | eslint-template-visitor: 2.2.1_eslint@7.6.0 1711 | eslint-utils: 2.1.0 1712 | import-modules: 2.0.0 1713 | lodash: 4.17.19 1714 | pluralize: 8.0.0 1715 | read-pkg-up: 7.0.1 1716 | regexp-tree: 0.1.21 1717 | reserved-words: 0.1.2 1718 | safe-regex: 2.1.1 1719 | semver: 7.3.2 1720 | dev: true 1721 | engines: 1722 | node: '>=10' 1723 | peerDependencies: 1724 | eslint: '>=7.3.0' 1725 | resolution: 1726 | integrity: sha512-S8v7+v4gZTQPj4pKKvexhgSUaLQSyItvxW2SVZDaX9Iu5IjlAmF2eni+L6w8a2aqshxgU8Lle4FIAVDtuejSKQ== 1727 | /eslint-plugin-vue/7.0.0-alpha.10_eslint@7.6.0: 1728 | dependencies: 1729 | eslint: 7.6.0 1730 | eslint-utils: 2.1.0 1731 | natural-compare: 1.4.0 1732 | semver: 7.3.2 1733 | vue-eslint-parser: 7.1.0_eslint@7.6.0 1734 | dev: true 1735 | engines: 1736 | node: '>=8.10' 1737 | peerDependencies: 1738 | eslint: ^6.0.0 || ^7.0.0 1739 | resolution: 1740 | integrity: sha512-NFhzOfuD9OU/94lLGXQJ6112MhRGjgnrGBDnPkB7hQDZEVOdkkoQbufxR425Vm60MNK3GjRepQA88et/fUMBZA== 1741 | /eslint-scope/5.1.0: 1742 | dependencies: 1743 | esrecurse: 4.2.1 1744 | estraverse: 4.3.0 1745 | dev: true 1746 | engines: 1747 | node: '>=8.0.0' 1748 | resolution: 1749 | integrity: sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w== 1750 | /eslint-template-visitor/2.2.1_eslint@7.6.0: 1751 | dependencies: 1752 | babel-eslint: 10.1.0_eslint@7.6.0 1753 | eslint: 7.6.0 1754 | eslint-visitor-keys: 1.3.0 1755 | esquery: 1.3.1 1756 | multimap: 1.1.0 1757 | dev: true 1758 | peerDependencies: 1759 | eslint: '>=7.0.0' 1760 | resolution: 1761 | integrity: sha512-q3SxoBXz0XjPGkUpwGVAwIwIPIxzCAJX1uwfVc8tW3v7u/zS7WXNH3I2Mu2MDz2NgSITAyKLRaQFPHu/iyKxDQ== 1762 | /eslint-utils/2.1.0: 1763 | dependencies: 1764 | eslint-visitor-keys: 1.3.0 1765 | dev: true 1766 | engines: 1767 | node: '>=6' 1768 | resolution: 1769 | integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== 1770 | /eslint-visitor-keys/1.3.0: 1771 | dev: true 1772 | engines: 1773 | node: '>=4' 1774 | resolution: 1775 | integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== 1776 | /eslint/7.6.0: 1777 | dependencies: 1778 | '@babel/code-frame': 7.10.4 1779 | ajv: 6.12.3 1780 | chalk: 4.1.0 1781 | cross-spawn: 7.0.3 1782 | debug: 4.1.1 1783 | doctrine: 3.0.0 1784 | enquirer: 2.3.6 1785 | eslint-scope: 5.1.0 1786 | eslint-utils: 2.1.0 1787 | eslint-visitor-keys: 1.3.0 1788 | espree: 7.2.0 1789 | esquery: 1.3.1 1790 | esutils: 2.0.3 1791 | file-entry-cache: 5.0.1 1792 | functional-red-black-tree: 1.0.1 1793 | glob-parent: 5.1.1 1794 | globals: 12.4.0 1795 | ignore: 4.0.6 1796 | import-fresh: 3.2.1 1797 | imurmurhash: 0.1.4 1798 | is-glob: 4.0.1 1799 | js-yaml: 3.14.0 1800 | json-stable-stringify-without-jsonify: 1.0.1 1801 | levn: 0.4.1 1802 | lodash: 4.17.19 1803 | minimatch: 3.0.4 1804 | natural-compare: 1.4.0 1805 | optionator: 0.9.1 1806 | progress: 2.0.3 1807 | regexpp: 3.1.0 1808 | semver: 7.3.2 1809 | strip-ansi: 6.0.0 1810 | strip-json-comments: 3.1.1 1811 | table: 5.4.6 1812 | text-table: 0.2.0 1813 | v8-compile-cache: 2.1.1 1814 | dev: true 1815 | engines: 1816 | node: ^10.12.0 || >=12.0.0 1817 | hasBin: true 1818 | resolution: 1819 | integrity: sha512-QlAManNtqr7sozWm5TF4wIH9gmUm2hE3vNRUvyoYAa4y1l5/jxD/PQStEjBMQtCqZmSep8UxrcecI60hOpe61w== 1820 | /espree/6.2.1: 1821 | dependencies: 1822 | acorn: 7.3.1 1823 | acorn-jsx: 5.2.0_acorn@7.3.1 1824 | eslint-visitor-keys: 1.3.0 1825 | dev: true 1826 | engines: 1827 | node: '>=6.0.0' 1828 | resolution: 1829 | integrity: sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== 1830 | /espree/7.2.0: 1831 | dependencies: 1832 | acorn: 7.3.1 1833 | acorn-jsx: 5.2.0_acorn@7.3.1 1834 | eslint-visitor-keys: 1.3.0 1835 | dev: true 1836 | engines: 1837 | node: ^10.12.0 || >=12.0.0 1838 | resolution: 1839 | integrity: sha512-H+cQ3+3JYRMEIOl87e7QdHX70ocly5iW4+dttuR8iYSPr/hXKFb+7dBsZ7+u1adC4VrnPlTkv0+OwuPnDop19g== 1840 | /esprima/4.0.1: 1841 | dev: true 1842 | engines: 1843 | node: '>=4' 1844 | hasBin: true 1845 | resolution: 1846 | integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 1847 | /esquery/1.3.1: 1848 | dependencies: 1849 | estraverse: 5.1.0 1850 | dev: true 1851 | engines: 1852 | node: '>=0.10' 1853 | resolution: 1854 | integrity: sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== 1855 | /esrecurse/4.2.1: 1856 | dependencies: 1857 | estraverse: 4.3.0 1858 | dev: true 1859 | engines: 1860 | node: '>=4.0' 1861 | resolution: 1862 | integrity: sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== 1863 | /estraverse/4.3.0: 1864 | dev: true 1865 | engines: 1866 | node: '>=4.0' 1867 | resolution: 1868 | integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 1869 | /estraverse/5.1.0: 1870 | dev: true 1871 | engines: 1872 | node: '>=4.0' 1873 | resolution: 1874 | integrity: sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== 1875 | /estree-walker/0.6.1: 1876 | dev: true 1877 | resolution: 1878 | integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== 1879 | /estree-walker/1.0.1: 1880 | dev: true 1881 | resolution: 1882 | integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== 1883 | /estree-walker/2.0.1: 1884 | dev: true 1885 | resolution: 1886 | integrity: sha512-tF0hv+Yi2Ot1cwj9eYHtxC0jB9bmjacjQs6ZBTj82H8JwUywFuc+7E83NWfNMwHXZc11mjfFcVXPe9gEP4B8dg== 1887 | /esutils/2.0.3: 1888 | dev: true 1889 | engines: 1890 | node: '>=0.10.0' 1891 | resolution: 1892 | integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 1893 | /etag/1.8.1: 1894 | dev: true 1895 | engines: 1896 | node: '>= 0.6' 1897 | resolution: 1898 | integrity: sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= 1899 | /eventemitter3/4.0.4: 1900 | dev: true 1901 | resolution: 1902 | integrity: sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== 1903 | /execa/4.0.3: 1904 | dependencies: 1905 | cross-spawn: 7.0.3 1906 | get-stream: 5.1.0 1907 | human-signals: 1.1.1 1908 | is-stream: 2.0.0 1909 | merge-stream: 2.0.0 1910 | npm-run-path: 4.0.1 1911 | onetime: 5.1.0 1912 | signal-exit: 3.0.3 1913 | strip-final-newline: 2.0.0 1914 | dev: true 1915 | engines: 1916 | node: '>=10' 1917 | resolution: 1918 | integrity: sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A== 1919 | /fast-deep-equal/3.1.3: 1920 | dev: true 1921 | resolution: 1922 | integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 1923 | /fast-glob/3.2.4: 1924 | dependencies: 1925 | '@nodelib/fs.stat': 2.0.3 1926 | '@nodelib/fs.walk': 1.2.4 1927 | glob-parent: 5.1.1 1928 | merge2: 1.4.1 1929 | micromatch: 4.0.2 1930 | picomatch: 2.2.2 1931 | dev: true 1932 | engines: 1933 | node: '>=8' 1934 | resolution: 1935 | integrity: sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== 1936 | /fast-json-stable-stringify/2.1.0: 1937 | dev: true 1938 | resolution: 1939 | integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 1940 | /fast-levenshtein/2.0.6: 1941 | dev: true 1942 | resolution: 1943 | integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 1944 | /fastq/1.8.0: 1945 | dependencies: 1946 | reusify: 1.0.4 1947 | dev: true 1948 | resolution: 1949 | integrity: sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q== 1950 | /file-entry-cache/5.0.1: 1951 | dependencies: 1952 | flat-cache: 2.0.1 1953 | dev: true 1954 | engines: 1955 | node: '>=4' 1956 | resolution: 1957 | integrity: sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== 1958 | /fill-range/7.0.1: 1959 | dependencies: 1960 | to-regex-range: 5.0.1 1961 | dev: true 1962 | engines: 1963 | node: '>=8' 1964 | resolution: 1965 | integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 1966 | /find-up/2.1.0: 1967 | dependencies: 1968 | locate-path: 2.0.0 1969 | dev: true 1970 | engines: 1971 | node: '>=4' 1972 | resolution: 1973 | integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c= 1974 | /find-up/4.1.0: 1975 | dependencies: 1976 | locate-path: 5.0.0 1977 | path-exists: 4.0.0 1978 | dev: true 1979 | engines: 1980 | node: '>=8' 1981 | resolution: 1982 | integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== 1983 | /flat-cache/2.0.1: 1984 | dependencies: 1985 | flatted: 2.0.2 1986 | rimraf: 2.6.3 1987 | write: 1.0.3 1988 | dev: true 1989 | engines: 1990 | node: '>=4' 1991 | resolution: 1992 | integrity: sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== 1993 | /flatted/2.0.2: 1994 | dev: true 1995 | resolution: 1996 | integrity: sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== 1997 | /follow-redirects/1.12.1: 1998 | dev: true 1999 | engines: 2000 | node: '>=4.0' 2001 | resolution: 2002 | integrity: sha512-tmRv0AVuR7ZyouUHLeNSiO6pqulF7dYa3s19c6t+wz9LD69/uSzdMxJ2S91nTI9U3rt/IldxpzMOFejp6f0hjg== 2003 | /fresh/0.5.2: 2004 | dev: true 2005 | engines: 2006 | node: '>= 0.6' 2007 | resolution: 2008 | integrity: sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= 2009 | /fs-extra/8.1.0: 2010 | dependencies: 2011 | graceful-fs: 4.2.4 2012 | jsonfile: 4.0.0 2013 | universalify: 0.1.2 2014 | dev: false 2015 | engines: 2016 | node: '>=6 <7 || >=8' 2017 | resolution: 2018 | integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== 2019 | /fs-extra/9.0.1: 2020 | dependencies: 2021 | at-least-node: 1.0.0 2022 | graceful-fs: 4.2.4 2023 | jsonfile: 6.0.1 2024 | universalify: 1.0.0 2025 | dev: true 2026 | engines: 2027 | node: '>=10' 2028 | resolution: 2029 | integrity: sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== 2030 | /fs.realpath/1.0.0: 2031 | resolution: 2032 | integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 2033 | /fsevents/2.1.3: 2034 | dev: true 2035 | engines: 2036 | node: ^8.16.0 || ^10.6.0 || >=11.0.0 2037 | optional: true 2038 | os: 2039 | - darwin 2040 | resolution: 2041 | integrity: sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== 2042 | /function-bind/1.1.1: 2043 | dev: true 2044 | resolution: 2045 | integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 2046 | /functional-red-black-tree/1.0.1: 2047 | dev: true 2048 | resolution: 2049 | integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= 2050 | /fuse.js/6.4.1: 2051 | dev: false 2052 | engines: 2053 | node: '>=10' 2054 | resolution: 2055 | integrity: sha512-+hAS7KYgLXontDh/vqffs7wIBw0ceb9Sx8ywZQhOsiQGcSO5zInGhttWOUYQYlvV/yYMJOacQ129Xs3mP3+oZQ== 2056 | /generic-names/2.0.1: 2057 | dependencies: 2058 | loader-utils: 1.4.0 2059 | dev: true 2060 | resolution: 2061 | integrity: sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ== 2062 | /gensync/1.0.0-beta.1: 2063 | dev: true 2064 | engines: 2065 | node: '>=6.9.0' 2066 | resolution: 2067 | integrity: sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== 2068 | /get-stream/5.1.0: 2069 | dependencies: 2070 | pump: 3.0.0 2071 | dev: true 2072 | engines: 2073 | node: '>=8' 2074 | resolution: 2075 | integrity: sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== 2076 | /glob-parent/5.1.1: 2077 | dependencies: 2078 | is-glob: 4.0.1 2079 | dev: true 2080 | engines: 2081 | node: '>= 6' 2082 | resolution: 2083 | integrity: sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== 2084 | /glob/7.1.6: 2085 | dependencies: 2086 | fs.realpath: 1.0.0 2087 | inflight: 1.0.6 2088 | inherits: 2.0.4 2089 | minimatch: 3.0.4 2090 | once: 1.4.0 2091 | path-is-absolute: 1.0.1 2092 | resolution: 2093 | integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== 2094 | /globals/11.12.0: 2095 | dev: true 2096 | engines: 2097 | node: '>=4' 2098 | resolution: 2099 | integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 2100 | /globals/12.4.0: 2101 | dependencies: 2102 | type-fest: 0.8.1 2103 | dev: true 2104 | engines: 2105 | node: '>=8' 2106 | resolution: 2107 | integrity: sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== 2108 | /globby/11.0.1: 2109 | dependencies: 2110 | array-union: 2.1.0 2111 | dir-glob: 3.0.1 2112 | fast-glob: 3.2.4 2113 | ignore: 5.1.8 2114 | merge2: 1.4.1 2115 | slash: 3.0.0 2116 | dev: true 2117 | engines: 2118 | node: '>=10' 2119 | resolution: 2120 | integrity: sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== 2121 | /graceful-fs/4.2.4: 2122 | resolution: 2123 | integrity: sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== 2124 | /has-flag/3.0.0: 2125 | engines: 2126 | node: '>=4' 2127 | resolution: 2128 | integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 2129 | /has-flag/4.0.0: 2130 | engines: 2131 | node: '>=8' 2132 | resolution: 2133 | integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 2134 | /has-symbols/1.0.1: 2135 | dev: true 2136 | engines: 2137 | node: '>= 0.4' 2138 | resolution: 2139 | integrity: sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== 2140 | /has/1.0.3: 2141 | dependencies: 2142 | function-bind: 1.1.1 2143 | dev: true 2144 | engines: 2145 | node: '>= 0.4.0' 2146 | resolution: 2147 | integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 2148 | /hash-sum/2.0.0: 2149 | dev: true 2150 | resolution: 2151 | integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== 2152 | /hosted-git-info/2.8.8: 2153 | dev: true 2154 | resolution: 2155 | integrity: sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== 2156 | /htmlparser2/4.1.0: 2157 | dependencies: 2158 | domelementtype: 2.0.1 2159 | domhandler: 3.0.0 2160 | domutils: 2.1.0 2161 | entities: 2.0.3 2162 | dev: true 2163 | resolution: 2164 | integrity: sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q== 2165 | /http-assert/1.4.1: 2166 | dependencies: 2167 | deep-equal: 1.0.1 2168 | http-errors: 1.7.3 2169 | dev: true 2170 | engines: 2171 | node: '>= 0.8' 2172 | resolution: 2173 | integrity: sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw== 2174 | /http-errors/1.4.0: 2175 | dependencies: 2176 | inherits: 2.0.1 2177 | statuses: 1.5.0 2178 | dev: true 2179 | engines: 2180 | node: '>= 0.6' 2181 | resolution: 2182 | integrity: sha1-bAJC3qaz33r9oVPHEImzHG6Cqr8= 2183 | /http-errors/1.6.3: 2184 | dependencies: 2185 | depd: 1.1.2 2186 | inherits: 2.0.3 2187 | setprototypeof: 1.1.0 2188 | statuses: 1.5.0 2189 | dev: true 2190 | engines: 2191 | node: '>= 0.6' 2192 | resolution: 2193 | integrity: sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= 2194 | /http-errors/1.7.3: 2195 | dependencies: 2196 | depd: 1.1.2 2197 | inherits: 2.0.4 2198 | setprototypeof: 1.1.1 2199 | statuses: 1.5.0 2200 | toidentifier: 1.0.0 2201 | dev: true 2202 | engines: 2203 | node: '>= 0.6' 2204 | resolution: 2205 | integrity: sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== 2206 | /http-errors/1.8.0: 2207 | dependencies: 2208 | depd: 1.1.2 2209 | inherits: 2.0.4 2210 | setprototypeof: 1.2.0 2211 | statuses: 1.5.0 2212 | toidentifier: 1.0.0 2213 | dev: true 2214 | engines: 2215 | node: '>= 0.6' 2216 | resolution: 2217 | integrity: sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A== 2218 | /http-proxy/1.18.1: 2219 | dependencies: 2220 | eventemitter3: 4.0.4 2221 | follow-redirects: 1.12.1 2222 | requires-port: 1.0.0 2223 | dev: true 2224 | engines: 2225 | node: '>=8.0.0' 2226 | resolution: 2227 | integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== 2228 | /human-signals/1.1.1: 2229 | dev: true 2230 | engines: 2231 | node: '>=8.12.0' 2232 | resolution: 2233 | integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== 2234 | /icss-replace-symbols/1.1.0: 2235 | dev: true 2236 | resolution: 2237 | integrity: sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= 2238 | /icss-utils/4.1.1: 2239 | dependencies: 2240 | postcss: 7.0.32 2241 | dev: true 2242 | engines: 2243 | node: '>= 6' 2244 | resolution: 2245 | integrity: sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== 2246 | /ignore/4.0.6: 2247 | dev: true 2248 | engines: 2249 | node: '>= 4' 2250 | resolution: 2251 | integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== 2252 | /ignore/5.1.8: 2253 | dev: true 2254 | engines: 2255 | node: '>= 4' 2256 | resolution: 2257 | integrity: sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== 2258 | /import-cwd/2.1.0: 2259 | dependencies: 2260 | import-from: 2.1.0 2261 | dev: true 2262 | engines: 2263 | node: '>=4' 2264 | resolution: 2265 | integrity: sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= 2266 | /import-fresh/2.0.0: 2267 | dependencies: 2268 | caller-path: 2.0.0 2269 | resolve-from: 3.0.0 2270 | dev: true 2271 | engines: 2272 | node: '>=4' 2273 | resolution: 2274 | integrity: sha1-2BNVwVYS04bGH53dOSLUMEgipUY= 2275 | /import-fresh/3.2.1: 2276 | dependencies: 2277 | parent-module: 1.0.1 2278 | resolve-from: 4.0.0 2279 | dev: true 2280 | engines: 2281 | node: '>=6' 2282 | resolution: 2283 | integrity: sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== 2284 | /import-from/2.1.0: 2285 | dependencies: 2286 | resolve-from: 3.0.0 2287 | dev: true 2288 | engines: 2289 | node: '>=4' 2290 | resolution: 2291 | integrity: sha1-M1238qev/VOqpHHUuAId7ja387E= 2292 | /import-modules/2.0.0: 2293 | dev: true 2294 | engines: 2295 | node: '>=8' 2296 | resolution: 2297 | integrity: sha512-iczM/v9drffdNnABOKwj0f9G3cFDon99VcG1mxeBsdqnbd+vnQ5c2uAiCHNQITqFTOPaEvwg3VjoWCur0uHLEw== 2298 | /imurmurhash/0.1.4: 2299 | dev: true 2300 | engines: 2301 | node: '>=0.8.19' 2302 | resolution: 2303 | integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o= 2304 | /indexes-of/1.0.1: 2305 | resolution: 2306 | integrity: sha1-8w9xbI4r00bHtn0985FVZqfAVgc= 2307 | /inflight/1.0.6: 2308 | dependencies: 2309 | once: 1.4.0 2310 | wrappy: 1.0.2 2311 | resolution: 2312 | integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 2313 | /inherits/2.0.1: 2314 | dev: true 2315 | resolution: 2316 | integrity: sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= 2317 | /inherits/2.0.3: 2318 | dev: true 2319 | resolution: 2320 | integrity: sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 2321 | /inherits/2.0.4: 2322 | resolution: 2323 | integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 2324 | /internal-slot/1.0.2: 2325 | dependencies: 2326 | es-abstract: 1.17.6 2327 | has: 1.0.3 2328 | side-channel: 1.0.2 2329 | dev: true 2330 | engines: 2331 | node: '>= 0.4' 2332 | resolution: 2333 | integrity: sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g== 2334 | /is-arrayish/0.2.1: 2335 | dev: true 2336 | resolution: 2337 | integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 2338 | /is-arrayish/0.3.2: 2339 | dev: false 2340 | resolution: 2341 | integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== 2342 | /is-binary-path/2.1.0: 2343 | dependencies: 2344 | binary-extensions: 2.1.0 2345 | dev: true 2346 | engines: 2347 | node: '>=8' 2348 | resolution: 2349 | integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 2350 | /is-callable/1.2.0: 2351 | dev: true 2352 | engines: 2353 | node: '>= 0.4' 2354 | resolution: 2355 | integrity: sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== 2356 | /is-date-object/1.0.2: 2357 | dev: true 2358 | engines: 2359 | node: '>= 0.4' 2360 | resolution: 2361 | integrity: sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== 2362 | /is-directory/0.3.1: 2363 | dev: true 2364 | engines: 2365 | node: '>=0.10.0' 2366 | resolution: 2367 | integrity: sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= 2368 | /is-docker/2.0.0: 2369 | dev: true 2370 | engines: 2371 | node: '>=8' 2372 | resolution: 2373 | integrity: sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ== 2374 | /is-extglob/2.1.1: 2375 | dev: true 2376 | engines: 2377 | node: '>=0.10.0' 2378 | resolution: 2379 | integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 2380 | /is-fullwidth-code-point/2.0.0: 2381 | dev: true 2382 | engines: 2383 | node: '>=4' 2384 | resolution: 2385 | integrity: sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 2386 | /is-generator-function/1.0.7: 2387 | dev: true 2388 | engines: 2389 | node: '>= 0.4' 2390 | resolution: 2391 | integrity: sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw== 2392 | /is-glob/4.0.1: 2393 | dependencies: 2394 | is-extglob: 2.1.1 2395 | dev: true 2396 | engines: 2397 | node: '>=0.10.0' 2398 | resolution: 2399 | integrity: sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 2400 | /is-interactive/1.0.0: 2401 | dev: true 2402 | engines: 2403 | node: '>=8' 2404 | resolution: 2405 | integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== 2406 | /is-module/1.0.0: 2407 | dev: true 2408 | resolution: 2409 | integrity: sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= 2410 | /is-number/7.0.0: 2411 | dev: true 2412 | engines: 2413 | node: '>=0.12.0' 2414 | resolution: 2415 | integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 2416 | /is-reference/1.2.1: 2417 | dependencies: 2418 | '@types/estree': 0.0.45 2419 | dev: true 2420 | resolution: 2421 | integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== 2422 | /is-regex/1.1.0: 2423 | dependencies: 2424 | has-symbols: 1.0.1 2425 | dev: true 2426 | engines: 2427 | node: '>= 0.4' 2428 | resolution: 2429 | integrity: sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw== 2430 | /is-stream/2.0.0: 2431 | dev: true 2432 | engines: 2433 | node: '>=8' 2434 | resolution: 2435 | integrity: sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== 2436 | /is-string/1.0.5: 2437 | dev: true 2438 | engines: 2439 | node: '>= 0.4' 2440 | resolution: 2441 | integrity: sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== 2442 | /is-symbol/1.0.3: 2443 | dependencies: 2444 | has-symbols: 1.0.1 2445 | dev: true 2446 | engines: 2447 | node: '>= 0.4' 2448 | resolution: 2449 | integrity: sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== 2450 | /is-wsl/2.2.0: 2451 | dependencies: 2452 | is-docker: 2.0.0 2453 | dev: true 2454 | engines: 2455 | node: '>=8' 2456 | resolution: 2457 | integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== 2458 | /isarray/0.0.1: 2459 | dev: true 2460 | resolution: 2461 | integrity: sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= 2462 | /isarray/1.0.0: 2463 | dev: true 2464 | resolution: 2465 | integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 2466 | /isbuiltin/1.0.0: 2467 | dependencies: 2468 | builtin-modules: 1.1.1 2469 | dev: true 2470 | resolution: 2471 | integrity: sha1-RFOykVaQy0fAy5ySVaCAd3gxXJY= 2472 | /isexe/2.0.0: 2473 | dev: true 2474 | resolution: 2475 | integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 2476 | /jest-worker/24.9.0: 2477 | dependencies: 2478 | merge-stream: 2.0.0 2479 | supports-color: 6.1.0 2480 | dev: true 2481 | engines: 2482 | node: '>= 6' 2483 | resolution: 2484 | integrity: sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== 2485 | /js-tokens/4.0.0: 2486 | dev: true 2487 | resolution: 2488 | integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 2489 | /js-yaml/3.14.0: 2490 | dependencies: 2491 | argparse: 1.0.10 2492 | esprima: 4.0.1 2493 | dev: true 2494 | hasBin: true 2495 | resolution: 2496 | integrity: sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== 2497 | /jsesc/2.5.2: 2498 | dev: true 2499 | engines: 2500 | node: '>=4' 2501 | hasBin: true 2502 | resolution: 2503 | integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 2504 | /json-parse-better-errors/1.0.2: 2505 | dev: true 2506 | resolution: 2507 | integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== 2508 | /json-schema-traverse/0.4.1: 2509 | dev: true 2510 | resolution: 2511 | integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 2512 | /json-stable-stringify-without-jsonify/1.0.1: 2513 | dev: true 2514 | resolution: 2515 | integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= 2516 | /json5/1.0.1: 2517 | dependencies: 2518 | minimist: 1.2.5 2519 | dev: true 2520 | hasBin: true 2521 | resolution: 2522 | integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== 2523 | /json5/2.1.3: 2524 | dependencies: 2525 | minimist: 1.2.5 2526 | dev: true 2527 | engines: 2528 | node: '>=6' 2529 | hasBin: true 2530 | resolution: 2531 | integrity: sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== 2532 | /jsonfile/4.0.0: 2533 | dev: false 2534 | optionalDependencies: 2535 | graceful-fs: 4.2.4 2536 | resolution: 2537 | integrity: sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= 2538 | /jsonfile/6.0.1: 2539 | dependencies: 2540 | universalify: 1.0.0 2541 | dev: true 2542 | optionalDependencies: 2543 | graceful-fs: 4.2.4 2544 | resolution: 2545 | integrity: sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg== 2546 | /jsx-ast-utils/2.4.1: 2547 | dependencies: 2548 | array-includes: 3.1.1 2549 | object.assign: 4.1.0 2550 | dev: true 2551 | engines: 2552 | node: '>=4.0' 2553 | resolution: 2554 | integrity: sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w== 2555 | /keygrip/1.1.0: 2556 | dependencies: 2557 | tsscmp: 1.0.6 2558 | dev: true 2559 | engines: 2560 | node: '>= 0.6' 2561 | resolution: 2562 | integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ== 2563 | /koa-compose/3.2.1: 2564 | dependencies: 2565 | any-promise: 1.3.0 2566 | dev: true 2567 | resolution: 2568 | integrity: sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec= 2569 | /koa-compose/4.1.0: 2570 | dev: true 2571 | resolution: 2572 | integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw== 2573 | /koa-conditional-get/2.0.0: 2574 | dev: true 2575 | resolution: 2576 | integrity: sha1-pD83I8HQFLcwo07Oit8wuTyCM/I= 2577 | /koa-convert/1.2.0: 2578 | dependencies: 2579 | co: 4.6.0 2580 | koa-compose: 3.2.1 2581 | dev: true 2582 | engines: 2583 | node: '>= 4' 2584 | resolution: 2585 | integrity: sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA= 2586 | /koa-etag/3.0.0: 2587 | dependencies: 2588 | etag: 1.8.1 2589 | mz: 2.7.0 2590 | dev: true 2591 | resolution: 2592 | integrity: sha1-nvc4Ld1agqsN6xU0FckVg293HT8= 2593 | /koa-proxies/0.11.0_koa@2.13.0: 2594 | dependencies: 2595 | http-proxy: 1.18.1 2596 | koa: 2.13.0 2597 | path-match: 1.2.4 2598 | dev: true 2599 | peerDependencies: 2600 | koa: '>=2' 2601 | resolution: 2602 | integrity: sha512-iXGRADBE0fM7g7AttNOlLZ/cCFKXeVMHbFJKIRb0dUCrSYXi02loyVSdBlKlBQ5ZfVKJLo9Q9FyqwVTp1poVVA== 2603 | /koa-send/5.0.1: 2604 | dependencies: 2605 | debug: 4.1.1 2606 | http-errors: 1.8.0 2607 | resolve-path: 1.4.0 2608 | dev: true 2609 | engines: 2610 | node: '>= 8' 2611 | resolution: 2612 | integrity: sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ== 2613 | /koa-static/5.0.0: 2614 | dependencies: 2615 | debug: 3.2.6 2616 | koa-send: 5.0.1 2617 | dev: true 2618 | engines: 2619 | node: '>= 7.6.0' 2620 | resolution: 2621 | integrity: sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ== 2622 | /koa/2.13.0: 2623 | dependencies: 2624 | accepts: 1.3.7 2625 | cache-content-type: 1.0.1 2626 | content-disposition: 0.5.3 2627 | content-type: 1.0.4 2628 | cookies: 0.8.0 2629 | debug: 3.1.0 2630 | delegates: 1.0.0 2631 | depd: 1.1.2 2632 | destroy: 1.0.4 2633 | encodeurl: 1.0.2 2634 | escape-html: 1.0.3 2635 | fresh: 0.5.2 2636 | http-assert: 1.4.1 2637 | http-errors: 1.8.0 2638 | is-generator-function: 1.0.7 2639 | koa-compose: 4.1.0 2640 | koa-convert: 1.2.0 2641 | on-finished: 2.3.0 2642 | only: 0.0.2 2643 | parseurl: 1.3.3 2644 | statuses: 1.5.0 2645 | type-is: 1.6.18 2646 | vary: 1.1.2 2647 | dev: true 2648 | engines: 2649 | node: ^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4 2650 | resolution: 2651 | integrity: sha512-i/XJVOfPw7npbMv67+bOeXr3gPqOAw6uh5wFyNs3QvJ47tUx3M3V9rIE0//WytY42MKz4l/MXKyGkQ2LQTfLUQ== 2652 | /levn/0.4.1: 2653 | dependencies: 2654 | prelude-ls: 1.2.1 2655 | type-check: 0.4.0 2656 | dev: true 2657 | engines: 2658 | node: '>= 0.8.0' 2659 | resolution: 2660 | integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== 2661 | /lines-and-columns/1.1.6: 2662 | dev: true 2663 | resolution: 2664 | integrity: sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= 2665 | /load-json-file/2.0.0: 2666 | dependencies: 2667 | graceful-fs: 4.2.4 2668 | parse-json: 2.2.0 2669 | pify: 2.3.0 2670 | strip-bom: 3.0.0 2671 | dev: true 2672 | engines: 2673 | node: '>=4' 2674 | resolution: 2675 | integrity: sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= 2676 | /loader-utils/1.4.0: 2677 | dependencies: 2678 | big.js: 5.2.2 2679 | emojis-list: 3.0.0 2680 | json5: 1.0.1 2681 | dev: true 2682 | engines: 2683 | node: '>=4.0.0' 2684 | resolution: 2685 | integrity: sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== 2686 | /locate-path/2.0.0: 2687 | dependencies: 2688 | p-locate: 2.0.0 2689 | path-exists: 3.0.0 2690 | dev: true 2691 | engines: 2692 | node: '>=4' 2693 | resolution: 2694 | integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= 2695 | /locate-path/5.0.0: 2696 | dependencies: 2697 | p-locate: 4.1.0 2698 | dev: true 2699 | engines: 2700 | node: '>=8' 2701 | resolution: 2702 | integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== 2703 | /lodash.camelcase/4.3.0: 2704 | dev: true 2705 | resolution: 2706 | integrity: sha1-soqmKIorn8ZRA1x3EfZathkDMaY= 2707 | /lodash.get/4.4.2: 2708 | dev: true 2709 | resolution: 2710 | integrity: sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= 2711 | /lodash.toarray/4.4.0: 2712 | dev: false 2713 | resolution: 2714 | integrity: sha1-JMS/zWsvuji/0FlNsRedjptlZWE= 2715 | /lodash.zip/4.2.0: 2716 | dev: true 2717 | resolution: 2718 | integrity: sha1-7GZi5IlkCO1KtsVCo5kLcswIACA= 2719 | /lodash/4.17.19: 2720 | resolution: 2721 | integrity: sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== 2722 | /log-symbols/3.0.0: 2723 | dependencies: 2724 | chalk: 2.4.2 2725 | dev: true 2726 | engines: 2727 | node: '>=8' 2728 | resolution: 2729 | integrity: sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== 2730 | /loose-envify/1.4.0: 2731 | dependencies: 2732 | js-tokens: 4.0.0 2733 | dev: true 2734 | hasBin: true 2735 | resolution: 2736 | integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 2737 | /lru-cache/5.1.1: 2738 | dependencies: 2739 | yallist: 3.1.1 2740 | dev: true 2741 | resolution: 2742 | integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== 2743 | /magic-string/0.25.7: 2744 | dependencies: 2745 | sourcemap-codec: 1.4.8 2746 | dev: true 2747 | resolution: 2748 | integrity: sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== 2749 | /media-typer/0.3.0: 2750 | dev: true 2751 | engines: 2752 | node: '>= 0.6' 2753 | resolution: 2754 | integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= 2755 | /merge-source-map/1.1.0: 2756 | dependencies: 2757 | source-map: 0.6.1 2758 | dev: true 2759 | resolution: 2760 | integrity: sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== 2761 | /merge-stream/2.0.0: 2762 | dev: true 2763 | resolution: 2764 | integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== 2765 | /merge2/1.4.1: 2766 | dev: true 2767 | engines: 2768 | node: '>= 8' 2769 | resolution: 2770 | integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 2771 | /micromatch/4.0.2: 2772 | dependencies: 2773 | braces: 3.0.2 2774 | picomatch: 2.2.2 2775 | dev: true 2776 | engines: 2777 | node: '>=8' 2778 | resolution: 2779 | integrity: sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== 2780 | /mime-db/1.44.0: 2781 | dev: true 2782 | engines: 2783 | node: '>= 0.6' 2784 | resolution: 2785 | integrity: sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== 2786 | /mime-types/2.1.27: 2787 | dependencies: 2788 | mime-db: 1.44.0 2789 | dev: true 2790 | engines: 2791 | node: '>= 0.6' 2792 | resolution: 2793 | integrity: sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== 2794 | /mimic-fn/2.1.0: 2795 | dev: true 2796 | engines: 2797 | node: '>=6' 2798 | resolution: 2799 | integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 2800 | /minimatch/3.0.4: 2801 | dependencies: 2802 | brace-expansion: 1.1.11 2803 | resolution: 2804 | integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 2805 | /minimist/1.2.5: 2806 | resolution: 2807 | integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 2808 | /mkdirp/0.5.5: 2809 | dependencies: 2810 | minimist: 1.2.5 2811 | dev: true 2812 | hasBin: true 2813 | resolution: 2814 | integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== 2815 | /ms/2.0.0: 2816 | dev: true 2817 | resolution: 2818 | integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 2819 | /ms/2.1.2: 2820 | dev: true 2821 | resolution: 2822 | integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 2823 | /multimap/1.1.0: 2824 | dev: true 2825 | resolution: 2826 | integrity: sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw== 2827 | /mute-stream/0.0.8: 2828 | dev: true 2829 | resolution: 2830 | integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== 2831 | /mz/2.7.0: 2832 | dependencies: 2833 | any-promise: 1.3.0 2834 | object-assign: 4.1.1 2835 | thenify-all: 1.6.0 2836 | dev: true 2837 | resolution: 2838 | integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== 2839 | /natural-compare/1.4.0: 2840 | dev: true 2841 | resolution: 2842 | integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= 2843 | /negotiator/0.6.2: 2844 | dev: true 2845 | engines: 2846 | node: '>= 0.6' 2847 | resolution: 2848 | integrity: sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== 2849 | /node-emoji/1.10.0: 2850 | dependencies: 2851 | lodash.toarray: 4.4.0 2852 | dev: false 2853 | resolution: 2854 | integrity: sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw== 2855 | /node-forge/0.9.0: 2856 | dev: true 2857 | engines: 2858 | node: '>= 4.5.0' 2859 | resolution: 2860 | integrity: sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== 2861 | /node-releases/1.1.60: 2862 | dev: false 2863 | resolution: 2864 | integrity: sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA== 2865 | /normalize-package-data/2.5.0: 2866 | dependencies: 2867 | hosted-git-info: 2.8.8 2868 | resolve: 1.17.0 2869 | semver: 5.7.1 2870 | validate-npm-package-license: 3.0.4 2871 | dev: true 2872 | resolution: 2873 | integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== 2874 | /normalize-path/3.0.0: 2875 | dev: true 2876 | engines: 2877 | node: '>=0.10.0' 2878 | resolution: 2879 | integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 2880 | /normalize-range/0.1.2: 2881 | dev: false 2882 | engines: 2883 | node: '>=0.10.0' 2884 | resolution: 2885 | integrity: sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= 2886 | /normalize.css/8.0.1: 2887 | dev: false 2888 | resolution: 2889 | integrity: sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg== 2890 | /npm-run-path/4.0.1: 2891 | dependencies: 2892 | path-key: 3.1.1 2893 | dev: true 2894 | engines: 2895 | node: '>=8' 2896 | resolution: 2897 | integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== 2898 | /num2fraction/1.2.2: 2899 | dev: false 2900 | resolution: 2901 | integrity: sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= 2902 | /object-assign/4.1.1: 2903 | engines: 2904 | node: '>=0.10.0' 2905 | resolution: 2906 | integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 2907 | /object-inspect/1.8.0: 2908 | dev: true 2909 | resolution: 2910 | integrity: sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== 2911 | /object-keys/1.1.1: 2912 | dev: true 2913 | engines: 2914 | node: '>= 0.4' 2915 | resolution: 2916 | integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 2917 | /object.assign/4.1.0: 2918 | dependencies: 2919 | define-properties: 1.1.3 2920 | function-bind: 1.1.1 2921 | has-symbols: 1.0.1 2922 | object-keys: 1.1.1 2923 | dev: true 2924 | engines: 2925 | node: '>= 0.4' 2926 | resolution: 2927 | integrity: sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== 2928 | /object.entries/1.1.2: 2929 | dependencies: 2930 | define-properties: 1.1.3 2931 | es-abstract: 1.17.6 2932 | has: 1.0.3 2933 | dev: true 2934 | engines: 2935 | node: '>= 0.4' 2936 | resolution: 2937 | integrity: sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA== 2938 | /object.fromentries/2.0.2: 2939 | dependencies: 2940 | define-properties: 1.1.3 2941 | es-abstract: 1.17.6 2942 | function-bind: 1.1.1 2943 | has: 1.0.3 2944 | dev: true 2945 | engines: 2946 | node: '>= 0.4' 2947 | resolution: 2948 | integrity: sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== 2949 | /object.values/1.1.1: 2950 | dependencies: 2951 | define-properties: 1.1.3 2952 | es-abstract: 1.17.6 2953 | function-bind: 1.1.1 2954 | has: 1.0.3 2955 | dev: true 2956 | engines: 2957 | node: '>= 0.4' 2958 | resolution: 2959 | integrity: sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== 2960 | /on-finished/2.3.0: 2961 | dependencies: 2962 | ee-first: 1.1.1 2963 | dev: true 2964 | engines: 2965 | node: '>= 0.8' 2966 | resolution: 2967 | integrity: sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= 2968 | /once/1.4.0: 2969 | dependencies: 2970 | wrappy: 1.0.2 2971 | resolution: 2972 | integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 2973 | /onetime/5.1.0: 2974 | dependencies: 2975 | mimic-fn: 2.1.0 2976 | dev: true 2977 | engines: 2978 | node: '>=6' 2979 | resolution: 2980 | integrity: sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== 2981 | /only/0.0.2: 2982 | dev: true 2983 | resolution: 2984 | integrity: sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q= 2985 | /open/7.1.0: 2986 | dependencies: 2987 | is-docker: 2.0.0 2988 | is-wsl: 2.2.0 2989 | dev: true 2990 | engines: 2991 | node: '>=8' 2992 | resolution: 2993 | integrity: sha512-lLPI5KgOwEYCDKXf4np7y1PBEkj7HYIyP2DY8mVDRnx0VIIu6bNrRB0R66TuO7Mack6EnTNLm4uvcl1UoklTpA== 2994 | /optionator/0.9.1: 2995 | dependencies: 2996 | deep-is: 0.1.3 2997 | fast-levenshtein: 2.0.6 2998 | levn: 0.4.1 2999 | prelude-ls: 1.2.1 3000 | type-check: 0.4.0 3001 | word-wrap: 1.2.3 3002 | dev: true 3003 | engines: 3004 | node: '>= 0.8.0' 3005 | resolution: 3006 | integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== 3007 | /ora/4.0.5: 3008 | dependencies: 3009 | chalk: 3.0.0 3010 | cli-cursor: 3.1.0 3011 | cli-spinners: 2.4.0 3012 | is-interactive: 1.0.0 3013 | log-symbols: 3.0.0 3014 | mute-stream: 0.0.8 3015 | strip-ansi: 6.0.0 3016 | wcwidth: 1.0.1 3017 | dev: true 3018 | engines: 3019 | node: '>=8' 3020 | resolution: 3021 | integrity: sha512-jCDgm9DqvRcNIAEv2wZPrh7E5PcQiDUnbnWbAfu4NGAE2ZNqPFbDixmWldy1YG2QfLeQhuiu6/h5VRrk6cG50w== 3022 | /p-limit/1.3.0: 3023 | dependencies: 3024 | p-try: 1.0.0 3025 | dev: true 3026 | engines: 3027 | node: '>=4' 3028 | resolution: 3029 | integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== 3030 | /p-limit/2.3.0: 3031 | dependencies: 3032 | p-try: 2.2.0 3033 | dev: true 3034 | engines: 3035 | node: '>=6' 3036 | resolution: 3037 | integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 3038 | /p-locate/2.0.0: 3039 | dependencies: 3040 | p-limit: 1.3.0 3041 | dev: true 3042 | engines: 3043 | node: '>=4' 3044 | resolution: 3045 | integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= 3046 | /p-locate/4.1.0: 3047 | dependencies: 3048 | p-limit: 2.3.0 3049 | dev: true 3050 | engines: 3051 | node: '>=8' 3052 | resolution: 3053 | integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== 3054 | /p-try/1.0.0: 3055 | dev: true 3056 | engines: 3057 | node: '>=4' 3058 | resolution: 3059 | integrity: sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= 3060 | /p-try/2.2.0: 3061 | dev: true 3062 | engines: 3063 | node: '>=6' 3064 | resolution: 3065 | integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 3066 | /parent-module/1.0.1: 3067 | dependencies: 3068 | callsites: 3.1.0 3069 | dev: true 3070 | engines: 3071 | node: '>=6' 3072 | resolution: 3073 | integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 3074 | /parse-json/2.2.0: 3075 | dependencies: 3076 | error-ex: 1.3.2 3077 | dev: true 3078 | engines: 3079 | node: '>=0.10.0' 3080 | resolution: 3081 | integrity: sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= 3082 | /parse-json/4.0.0: 3083 | dependencies: 3084 | error-ex: 1.3.2 3085 | json-parse-better-errors: 1.0.2 3086 | dev: true 3087 | engines: 3088 | node: '>=4' 3089 | resolution: 3090 | integrity: sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= 3091 | /parse-json/5.0.1: 3092 | dependencies: 3093 | '@babel/code-frame': 7.10.4 3094 | error-ex: 1.3.2 3095 | json-parse-better-errors: 1.0.2 3096 | lines-and-columns: 1.1.6 3097 | dev: true 3098 | engines: 3099 | node: '>=8' 3100 | resolution: 3101 | integrity: sha512-ztoZ4/DYeXQq4E21v169sC8qWINGpcosGv9XhTDvg9/hWvx/zrFkc9BiWxR58OJLHGk28j5BL0SDLeV2WmFZlQ== 3102 | /parseurl/1.3.3: 3103 | dev: true 3104 | engines: 3105 | node: '>= 0.8' 3106 | resolution: 3107 | integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 3108 | /path-exists/3.0.0: 3109 | dev: true 3110 | engines: 3111 | node: '>=4' 3112 | resolution: 3113 | integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 3114 | /path-exists/4.0.0: 3115 | dev: true 3116 | engines: 3117 | node: '>=8' 3118 | resolution: 3119 | integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 3120 | /path-is-absolute/1.0.1: 3121 | engines: 3122 | node: '>=0.10.0' 3123 | resolution: 3124 | integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 3125 | /path-key/3.1.1: 3126 | dev: true 3127 | engines: 3128 | node: '>=8' 3129 | resolution: 3130 | integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 3131 | /path-match/1.2.4: 3132 | dependencies: 3133 | http-errors: 1.4.0 3134 | path-to-regexp: 1.8.0 3135 | dev: true 3136 | resolution: 3137 | integrity: sha1-pidH88fgwlFHYml/JEQ1hbCRAOo= 3138 | /path-parse/1.0.6: 3139 | resolution: 3140 | integrity: sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 3141 | /path-to-regexp/1.8.0: 3142 | dependencies: 3143 | isarray: 0.0.1 3144 | dev: true 3145 | resolution: 3146 | integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== 3147 | /path-type/2.0.0: 3148 | dependencies: 3149 | pify: 2.3.0 3150 | dev: true 3151 | engines: 3152 | node: '>=4' 3153 | resolution: 3154 | integrity: sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= 3155 | /path-type/4.0.0: 3156 | dev: true 3157 | engines: 3158 | node: '>=8' 3159 | resolution: 3160 | integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== 3161 | /picomatch/2.2.2: 3162 | dev: true 3163 | engines: 3164 | node: '>=8.6' 3165 | resolution: 3166 | integrity: sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== 3167 | /pify/2.3.0: 3168 | dev: true 3169 | engines: 3170 | node: '>=0.10.0' 3171 | resolution: 3172 | integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw= 3173 | /pkg-dir/2.0.0: 3174 | dependencies: 3175 | find-up: 2.1.0 3176 | dev: true 3177 | engines: 3178 | node: '>=4' 3179 | resolution: 3180 | integrity: sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= 3181 | /pluralize/8.0.0: 3182 | dev: true 3183 | engines: 3184 | node: '>=4' 3185 | resolution: 3186 | integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== 3187 | /postcss-discard-comments/4.0.2: 3188 | dependencies: 3189 | postcss: 7.0.32 3190 | dev: true 3191 | engines: 3192 | node: '>=6.9.0' 3193 | resolution: 3194 | integrity: sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== 3195 | /postcss-functions/3.0.0: 3196 | dependencies: 3197 | glob: 7.1.6 3198 | object-assign: 4.1.1 3199 | postcss: 6.0.23 3200 | postcss-value-parser: 3.3.1 3201 | dev: false 3202 | resolution: 3203 | integrity: sha1-DpTQFERwCkgd4g3k1V+yZAVkJQ4= 3204 | /postcss-import/12.0.1: 3205 | dependencies: 3206 | postcss: 7.0.32 3207 | postcss-value-parser: 3.3.1 3208 | read-cache: 1.0.0 3209 | resolve: 1.17.0 3210 | dev: true 3211 | engines: 3212 | node: '>=6.0.0' 3213 | resolution: 3214 | integrity: sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw== 3215 | /postcss-js/2.0.3: 3216 | dependencies: 3217 | camelcase-css: 2.0.1 3218 | postcss: 7.0.32 3219 | dev: false 3220 | resolution: 3221 | integrity: sha512-zS59pAk3deu6dVHyrGqmC3oDXBdNdajk4k1RyxeVXCrcEDBUBHoIhE4QTsmhxgzXxsaqFDAkUZfmMa5f/N/79w== 3222 | /postcss-load-config/2.1.0: 3223 | dependencies: 3224 | cosmiconfig: 5.2.1 3225 | import-cwd: 2.1.0 3226 | dev: true 3227 | engines: 3228 | node: '>= 4' 3229 | resolution: 3230 | integrity: sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q== 3231 | /postcss-modules-extract-imports/2.0.0: 3232 | dependencies: 3233 | postcss: 7.0.32 3234 | dev: true 3235 | engines: 3236 | node: '>= 6' 3237 | resolution: 3238 | integrity: sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== 3239 | /postcss-modules-local-by-default/3.0.3: 3240 | dependencies: 3241 | icss-utils: 4.1.1 3242 | postcss: 7.0.32 3243 | postcss-selector-parser: 6.0.2 3244 | postcss-value-parser: 4.1.0 3245 | dev: true 3246 | engines: 3247 | node: '>= 6' 3248 | resolution: 3249 | integrity: sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== 3250 | /postcss-modules-scope/2.2.0: 3251 | dependencies: 3252 | postcss: 7.0.32 3253 | postcss-selector-parser: 6.0.2 3254 | dev: true 3255 | engines: 3256 | node: '>= 6' 3257 | resolution: 3258 | integrity: sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== 3259 | /postcss-modules-values/3.0.0: 3260 | dependencies: 3261 | icss-utils: 4.1.1 3262 | postcss: 7.0.32 3263 | dev: true 3264 | resolution: 3265 | integrity: sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== 3266 | /postcss-modules/3.2.0: 3267 | dependencies: 3268 | generic-names: 2.0.1 3269 | icss-replace-symbols: 1.1.0 3270 | lodash.camelcase: 4.3.0 3271 | postcss: 7.0.32 3272 | postcss-modules-extract-imports: 2.0.0 3273 | postcss-modules-local-by-default: 3.0.3 3274 | postcss-modules-scope: 2.2.0 3275 | postcss-modules-values: 3.0.0 3276 | string-hash: 1.1.3 3277 | dev: true 3278 | resolution: 3279 | integrity: sha512-ceodlVbBypGD3R7EI1xM7gz28J0syaXq0VKd7rJVXVlOSkxUIRBRJQjBgpoKnKVFNAcCjtLVgZqBA3mUNntWPA== 3280 | /postcss-nested/4.2.3: 3281 | dependencies: 3282 | postcss: 7.0.32 3283 | postcss-selector-parser: 6.0.2 3284 | dev: false 3285 | resolution: 3286 | integrity: sha512-rOv0W1HquRCamWy2kFl3QazJMMe1ku6rCFoAAH+9AcxdbpDeBr6k968MLWuLjvjMcGEip01ak09hKOEgpK9hvw== 3287 | /postcss-selector-parser/6.0.2: 3288 | dependencies: 3289 | cssesc: 3.0.0 3290 | indexes-of: 1.0.1 3291 | uniq: 1.0.1 3292 | engines: 3293 | node: '>=4' 3294 | resolution: 3295 | integrity: sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== 3296 | /postcss-value-parser/3.3.1: 3297 | resolution: 3298 | integrity: sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== 3299 | /postcss-value-parser/4.1.0: 3300 | resolution: 3301 | integrity: sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== 3302 | /postcss/6.0.23: 3303 | dependencies: 3304 | chalk: 2.4.2 3305 | source-map: 0.6.1 3306 | supports-color: 5.5.0 3307 | dev: false 3308 | engines: 3309 | node: '>=4.0.0' 3310 | resolution: 3311 | integrity: sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== 3312 | /postcss/7.0.32: 3313 | dependencies: 3314 | chalk: 2.4.2 3315 | source-map: 0.6.1 3316 | supports-color: 6.1.0 3317 | engines: 3318 | node: '>=6.0.0' 3319 | resolution: 3320 | integrity: sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== 3321 | /prelude-ls/1.2.1: 3322 | dev: true 3323 | engines: 3324 | node: '>= 0.8.0' 3325 | resolution: 3326 | integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== 3327 | /pretty-hrtime/1.0.3: 3328 | dev: false 3329 | engines: 3330 | node: '>= 0.8' 3331 | resolution: 3332 | integrity: sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= 3333 | /progress/2.0.3: 3334 | dev: true 3335 | engines: 3336 | node: '>=0.4.0' 3337 | resolution: 3338 | integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== 3339 | /prop-types/15.7.2: 3340 | dependencies: 3341 | loose-envify: 1.4.0 3342 | object-assign: 4.1.1 3343 | react-is: 16.13.1 3344 | dev: true 3345 | resolution: 3346 | integrity: sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== 3347 | /pump/3.0.0: 3348 | dependencies: 3349 | end-of-stream: 1.4.4 3350 | once: 1.4.0 3351 | dev: true 3352 | resolution: 3353 | integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 3354 | /punycode/2.1.1: 3355 | dev: true 3356 | engines: 3357 | node: '>=6' 3358 | resolution: 3359 | integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 3360 | /purgecss/2.3.0: 3361 | dependencies: 3362 | commander: 5.1.0 3363 | glob: 7.1.6 3364 | postcss: 7.0.32 3365 | postcss-selector-parser: 6.0.2 3366 | dev: false 3367 | hasBin: true 3368 | resolution: 3369 | integrity: sha512-BE5CROfVGsx2XIhxGuZAT7rTH9lLeQx/6M0P7DTXQH4IUc3BBzs9JUzt4yzGf3JrH9enkeq6YJBe9CTtkm1WmQ== 3370 | /react-is/16.13.1: 3371 | dev: true 3372 | resolution: 3373 | integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== 3374 | /react-refresh/0.8.3: 3375 | dev: true 3376 | engines: 3377 | node: '>=0.10.0' 3378 | resolution: 3379 | integrity: sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg== 3380 | /reactivue/0.2.1: 3381 | dependencies: 3382 | '@vue/reactivity': 3.0.0-rc.5 3383 | dev: false 3384 | peerDependencies: 3385 | react: '>=16' 3386 | resolution: 3387 | integrity: sha512-NPnMOMh1PQCdFG/9rRvL59DEt5AzMwz+UVKxBwHhEl3FEsYbClLcX3LUnvutgyBkzsqf+xx8hE1FYgq3bnN8Gw== 3388 | /read-cache/1.0.0: 3389 | dependencies: 3390 | pify: 2.3.0 3391 | dev: true 3392 | resolution: 3393 | integrity: sha1-5mTvMRYRZsl1HNvo28+GtftY93Q= 3394 | /read-pkg-up/2.0.0: 3395 | dependencies: 3396 | find-up: 2.1.0 3397 | read-pkg: 2.0.0 3398 | dev: true 3399 | engines: 3400 | node: '>=4' 3401 | resolution: 3402 | integrity: sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= 3403 | /read-pkg-up/7.0.1: 3404 | dependencies: 3405 | find-up: 4.1.0 3406 | read-pkg: 5.2.0 3407 | type-fest: 0.8.1 3408 | dev: true 3409 | engines: 3410 | node: '>=8' 3411 | resolution: 3412 | integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== 3413 | /read-pkg/2.0.0: 3414 | dependencies: 3415 | load-json-file: 2.0.0 3416 | normalize-package-data: 2.5.0 3417 | path-type: 2.0.0 3418 | dev: true 3419 | engines: 3420 | node: '>=4' 3421 | resolution: 3422 | integrity: sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= 3423 | /read-pkg/5.2.0: 3424 | dependencies: 3425 | '@types/normalize-package-data': 2.4.0 3426 | normalize-package-data: 2.5.0 3427 | parse-json: 5.0.1 3428 | type-fest: 0.6.0 3429 | dev: true 3430 | engines: 3431 | node: '>=8' 3432 | resolution: 3433 | integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== 3434 | /readdirp/3.4.0: 3435 | dependencies: 3436 | picomatch: 2.2.2 3437 | dev: true 3438 | engines: 3439 | node: '>=8.10.0' 3440 | resolution: 3441 | integrity: sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== 3442 | /reduce-css-calc/2.1.7: 3443 | dependencies: 3444 | css-unit-converter: 1.1.2 3445 | postcss-value-parser: 3.3.1 3446 | dev: false 3447 | resolution: 3448 | integrity: sha512-fDnlZ+AybAS3C7Q9xDq5y8A2z+lT63zLbynew/lur/IR24OQF5x98tfNwf79mzEdfywZ0a2wpM860FhFfMxZlA== 3449 | /regenerator-runtime/0.11.1: 3450 | dev: false 3451 | resolution: 3452 | integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== 3453 | /regexp-tree/0.1.21: 3454 | dev: true 3455 | hasBin: true 3456 | resolution: 3457 | integrity: sha512-kUUXjX4AnqnR8KRTCrayAo9PzYMRKmVoGgaz2tBuz0MF3g1ZbGebmtW0yFHfFK9CmBjQKeYIgoL22pFLBJY7sw== 3458 | /regexp.prototype.flags/1.3.0: 3459 | dependencies: 3460 | define-properties: 1.1.3 3461 | es-abstract: 1.17.6 3462 | dev: true 3463 | engines: 3464 | node: '>= 0.4' 3465 | resolution: 3466 | integrity: sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== 3467 | /regexpp/3.1.0: 3468 | dev: true 3469 | engines: 3470 | node: '>=8' 3471 | resolution: 3472 | integrity: sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== 3473 | /requires-port/1.0.0: 3474 | dev: true 3475 | resolution: 3476 | integrity: sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= 3477 | /reserved-words/0.1.2: 3478 | dev: true 3479 | resolution: 3480 | integrity: sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE= 3481 | /resolve-from/3.0.0: 3482 | dev: true 3483 | engines: 3484 | node: '>=4' 3485 | resolution: 3486 | integrity: sha1-six699nWiBvItuZTM17rywoYh0g= 3487 | /resolve-from/4.0.0: 3488 | dev: true 3489 | engines: 3490 | node: '>=4' 3491 | resolution: 3492 | integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 3493 | /resolve-path/1.4.0: 3494 | dependencies: 3495 | http-errors: 1.6.3 3496 | path-is-absolute: 1.0.1 3497 | dev: true 3498 | engines: 3499 | node: '>= 0.8' 3500 | resolution: 3501 | integrity: sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc= 3502 | /resolve/1.17.0: 3503 | dependencies: 3504 | path-parse: 1.0.6 3505 | resolution: 3506 | integrity: sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== 3507 | /restore-cursor/3.1.0: 3508 | dependencies: 3509 | onetime: 5.1.0 3510 | signal-exit: 3.0.3 3511 | dev: true 3512 | engines: 3513 | node: '>=8' 3514 | resolution: 3515 | integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== 3516 | /reusify/1.0.4: 3517 | dev: true 3518 | engines: 3519 | iojs: '>=1.0.0' 3520 | node: '>=0.10.0' 3521 | resolution: 3522 | integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 3523 | /rimraf/2.6.3: 3524 | dependencies: 3525 | glob: 7.1.6 3526 | dev: true 3527 | hasBin: true 3528 | resolution: 3529 | integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== 3530 | /rollup-plugin-dynamic-import-variables/1.1.0_rollup@2.23.0: 3531 | dependencies: 3532 | '@rollup/pluginutils': 3.1.0_rollup@2.23.0 3533 | estree-walker: 2.0.1 3534 | globby: 11.0.1 3535 | magic-string: 0.25.7 3536 | dev: true 3537 | peerDependencies: 3538 | rollup: '*' 3539 | resolution: 3540 | integrity: sha512-C1avEmnXC8cC4aAQ5dB63O9oQf7IrhEHc98bQw9Qd6H36FxtZooLCvVfcO4SNYrqaNrzH3ErucQt/zdFSLPHNw== 3541 | /rollup-plugin-terser/5.3.0_rollup@2.23.0: 3542 | dependencies: 3543 | '@babel/code-frame': 7.10.4 3544 | jest-worker: 24.9.0 3545 | rollup: 2.23.0 3546 | rollup-pluginutils: 2.8.2 3547 | serialize-javascript: 2.1.2 3548 | terser: 4.8.0 3549 | dev: true 3550 | peerDependencies: 3551 | rollup: '>=0.66.0 <3' 3552 | resolution: 3553 | integrity: sha512-XGMJihTIO3eIBsVGq7jiNYOdDMb3pVxuzY0uhOE/FM4x/u9nQgr3+McsjzqBn3QfHIpNSZmFnpoKAwHBEcsT7g== 3554 | /rollup-plugin-vue/6.0.0-beta.10_@vue+compiler-sfc@3.0.0-rc.5: 3555 | dependencies: 3556 | '@vue/compiler-sfc': 3.0.0-rc.5_vue@3.0.0-rc.5 3557 | debug: 4.1.1 3558 | hash-sum: 2.0.0 3559 | rollup-pluginutils: 2.8.2 3560 | dev: true 3561 | peerDependencies: 3562 | '@vue/compiler-sfc': '*' 3563 | resolution: 3564 | integrity: sha512-8TZJmROiSRjWoHRR6id0/ktOBOUGuI302xDBq4YBiA/tnnXdoY3oFGtvRWzT5ldX0jTJ8QX40rrJOw2SvcWwxQ== 3565 | /rollup-plugin-web-worker-loader/1.3.1_rollup@2.23.0: 3566 | dependencies: 3567 | rollup: 2.23.0 3568 | dev: true 3569 | peerDependencies: 3570 | rollup: ^1.9.2 || ^2.0.0 3571 | resolution: 3572 | integrity: sha512-Td36kmB4iz10xqI/gJFCv2xZZ21fY6E7AGVFOT3PWIDkM1BeBrfuzeNh1tFIkD6fHtjQhppnedkYFaIlGHuEvA== 3573 | /rollup-pluginutils/2.8.2: 3574 | dependencies: 3575 | estree-walker: 0.6.1 3576 | dev: true 3577 | resolution: 3578 | integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== 3579 | /rollup/2.23.0: 3580 | dev: true 3581 | engines: 3582 | node: '>=10.0.0' 3583 | hasBin: true 3584 | optionalDependencies: 3585 | fsevents: 2.1.3 3586 | resolution: 3587 | integrity: sha512-vLNmZFUGVwrnqNAJ/BvuLk1MtWzu4IuoqsH9UWK5AIdO3rt8/CSiJNvPvCIvfzrbNsqKbNzPAG1V2O4eTe2XZg== 3588 | /run-parallel/1.1.9: 3589 | dev: true 3590 | resolution: 3591 | integrity: sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== 3592 | /safe-buffer/5.1.2: 3593 | dev: true 3594 | resolution: 3595 | integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 3596 | /safe-regex/2.1.1: 3597 | dependencies: 3598 | regexp-tree: 0.1.21 3599 | dev: true 3600 | resolution: 3601 | integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A== 3602 | /selfsigned/1.10.7: 3603 | dependencies: 3604 | node-forge: 0.9.0 3605 | dev: true 3606 | resolution: 3607 | integrity: sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA== 3608 | /semver/5.7.1: 3609 | dev: true 3610 | hasBin: true 3611 | resolution: 3612 | integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 3613 | /semver/6.3.0: 3614 | dev: true 3615 | hasBin: true 3616 | resolution: 3617 | integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 3618 | /semver/7.3.2: 3619 | dev: true 3620 | engines: 3621 | node: '>=10' 3622 | hasBin: true 3623 | resolution: 3624 | integrity: sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== 3625 | /serialize-javascript/2.1.2: 3626 | dev: true 3627 | resolution: 3628 | integrity: sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== 3629 | /setprototypeof/1.1.0: 3630 | dev: true 3631 | resolution: 3632 | integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== 3633 | /setprototypeof/1.1.1: 3634 | dev: true 3635 | resolution: 3636 | integrity: sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== 3637 | /setprototypeof/1.2.0: 3638 | dev: true 3639 | resolution: 3640 | integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== 3641 | /shebang-command/2.0.0: 3642 | dependencies: 3643 | shebang-regex: 3.0.0 3644 | dev: true 3645 | engines: 3646 | node: '>=8' 3647 | resolution: 3648 | integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 3649 | /shebang-regex/3.0.0: 3650 | dev: true 3651 | engines: 3652 | node: '>=8' 3653 | resolution: 3654 | integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 3655 | /side-channel/1.0.2: 3656 | dependencies: 3657 | es-abstract: 1.17.6 3658 | object-inspect: 1.8.0 3659 | dev: true 3660 | resolution: 3661 | integrity: sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA== 3662 | /signal-exit/3.0.3: 3663 | dev: true 3664 | resolution: 3665 | integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== 3666 | /simple-swizzle/0.2.2: 3667 | dependencies: 3668 | is-arrayish: 0.3.2 3669 | dev: false 3670 | resolution: 3671 | integrity: sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= 3672 | /slash/3.0.0: 3673 | dev: true 3674 | engines: 3675 | node: '>=8' 3676 | resolution: 3677 | integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== 3678 | /slice-ansi/2.1.0: 3679 | dependencies: 3680 | ansi-styles: 3.2.1 3681 | astral-regex: 1.0.0 3682 | is-fullwidth-code-point: 2.0.0 3683 | dev: true 3684 | engines: 3685 | node: '>=6' 3686 | resolution: 3687 | integrity: sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== 3688 | /source-map-support/0.5.19: 3689 | dependencies: 3690 | buffer-from: 1.1.1 3691 | source-map: 0.6.1 3692 | dev: true 3693 | resolution: 3694 | integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== 3695 | /source-map/0.5.7: 3696 | dev: true 3697 | engines: 3698 | node: '>=0.10.0' 3699 | resolution: 3700 | integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 3701 | /source-map/0.6.1: 3702 | engines: 3703 | node: '>=0.10.0' 3704 | resolution: 3705 | integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 3706 | /sourcemap-codec/1.4.8: 3707 | dev: true 3708 | resolution: 3709 | integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== 3710 | /spdx-correct/3.1.1: 3711 | dependencies: 3712 | spdx-expression-parse: 3.0.1 3713 | spdx-license-ids: 3.0.5 3714 | dev: true 3715 | resolution: 3716 | integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== 3717 | /spdx-exceptions/2.3.0: 3718 | dev: true 3719 | resolution: 3720 | integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== 3721 | /spdx-expression-parse/3.0.1: 3722 | dependencies: 3723 | spdx-exceptions: 2.3.0 3724 | spdx-license-ids: 3.0.5 3725 | dev: true 3726 | resolution: 3727 | integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== 3728 | /spdx-license-ids/3.0.5: 3729 | dev: true 3730 | resolution: 3731 | integrity: sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== 3732 | /sprintf-js/1.0.3: 3733 | dev: true 3734 | resolution: 3735 | integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 3736 | /statuses/1.5.0: 3737 | dev: true 3738 | engines: 3739 | node: '>= 0.6' 3740 | resolution: 3741 | integrity: sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= 3742 | /string-hash/1.1.3: 3743 | dev: true 3744 | resolution: 3745 | integrity: sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= 3746 | /string-width/3.1.0: 3747 | dependencies: 3748 | emoji-regex: 7.0.3 3749 | is-fullwidth-code-point: 2.0.0 3750 | strip-ansi: 5.2.0 3751 | dev: true 3752 | engines: 3753 | node: '>=6' 3754 | resolution: 3755 | integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== 3756 | /string.prototype.matchall/4.0.2: 3757 | dependencies: 3758 | define-properties: 1.1.3 3759 | es-abstract: 1.17.6 3760 | has-symbols: 1.0.1 3761 | internal-slot: 1.0.2 3762 | regexp.prototype.flags: 1.3.0 3763 | side-channel: 1.0.2 3764 | dev: true 3765 | resolution: 3766 | integrity: sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg== 3767 | /string.prototype.trimend/1.0.1: 3768 | dependencies: 3769 | define-properties: 1.1.3 3770 | es-abstract: 1.17.6 3771 | dev: true 3772 | resolution: 3773 | integrity: sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== 3774 | /string.prototype.trimstart/1.0.1: 3775 | dependencies: 3776 | define-properties: 1.1.3 3777 | es-abstract: 1.17.6 3778 | dev: true 3779 | resolution: 3780 | integrity: sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== 3781 | /strip-ansi/5.2.0: 3782 | dependencies: 3783 | ansi-regex: 4.1.0 3784 | dev: true 3785 | engines: 3786 | node: '>=6' 3787 | resolution: 3788 | integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== 3789 | /strip-ansi/6.0.0: 3790 | dependencies: 3791 | ansi-regex: 5.0.0 3792 | dev: true 3793 | engines: 3794 | node: '>=8' 3795 | resolution: 3796 | integrity: sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 3797 | /strip-bom/3.0.0: 3798 | dev: true 3799 | engines: 3800 | node: '>=4' 3801 | resolution: 3802 | integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= 3803 | /strip-final-newline/2.0.0: 3804 | dev: true 3805 | engines: 3806 | node: '>=6' 3807 | resolution: 3808 | integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== 3809 | /strip-json-comments/3.1.1: 3810 | dev: true 3811 | engines: 3812 | node: '>=8' 3813 | resolution: 3814 | integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 3815 | /supports-color/5.5.0: 3816 | dependencies: 3817 | has-flag: 3.0.0 3818 | engines: 3819 | node: '>=4' 3820 | resolution: 3821 | integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 3822 | /supports-color/6.1.0: 3823 | dependencies: 3824 | has-flag: 3.0.0 3825 | engines: 3826 | node: '>=6' 3827 | resolution: 3828 | integrity: sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== 3829 | /supports-color/7.1.0: 3830 | dependencies: 3831 | has-flag: 4.0.0 3832 | engines: 3833 | node: '>=8' 3834 | resolution: 3835 | integrity: sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== 3836 | /table/5.4.6: 3837 | dependencies: 3838 | ajv: 6.12.3 3839 | lodash: 4.17.19 3840 | slice-ansi: 2.1.0 3841 | string-width: 3.1.0 3842 | dev: true 3843 | engines: 3844 | node: '>=6.0.0' 3845 | resolution: 3846 | integrity: sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== 3847 | /tailwindcss/1.6.2: 3848 | dependencies: 3849 | '@fullhuman/postcss-purgecss': 2.3.0 3850 | autoprefixer: 9.8.6 3851 | browserslist: 4.13.0 3852 | bytes: 3.1.0 3853 | chalk: 4.1.0 3854 | color: 3.1.2 3855 | detective: 5.2.0 3856 | fs-extra: 8.1.0 3857 | lodash: 4.17.19 3858 | node-emoji: 1.10.0 3859 | normalize.css: 8.0.1 3860 | postcss: 7.0.32 3861 | postcss-functions: 3.0.0 3862 | postcss-js: 2.0.3 3863 | postcss-nested: 4.2.3 3864 | postcss-selector-parser: 6.0.2 3865 | pretty-hrtime: 1.0.3 3866 | reduce-css-calc: 2.1.7 3867 | resolve: 1.17.0 3868 | dev: false 3869 | engines: 3870 | node: '>=8.9.0' 3871 | hasBin: true 3872 | resolution: 3873 | integrity: sha512-Cpa0kElG8Sg5sJSvTYi2frmIQZq0w37RLNNrYyy/W6HIWKspqSdTfb9tIN6X1gm4KV5a+TE/n7EKmn5Q9C7EUQ== 3874 | /terser/4.8.0: 3875 | dependencies: 3876 | commander: 2.20.3 3877 | source-map: 0.6.1 3878 | source-map-support: 0.5.19 3879 | dev: true 3880 | engines: 3881 | node: '>=6.0.0' 3882 | hasBin: true 3883 | resolution: 3884 | integrity: sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== 3885 | /text-table/0.2.0: 3886 | dev: true 3887 | resolution: 3888 | integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= 3889 | /thenify-all/1.6.0: 3890 | dependencies: 3891 | thenify: 3.3.1 3892 | dev: true 3893 | engines: 3894 | node: '>=0.8' 3895 | resolution: 3896 | integrity: sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= 3897 | /thenify/3.3.1: 3898 | dependencies: 3899 | any-promise: 1.3.0 3900 | dev: true 3901 | resolution: 3902 | integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== 3903 | /to-fast-properties/2.0.0: 3904 | dev: true 3905 | engines: 3906 | node: '>=4' 3907 | resolution: 3908 | integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= 3909 | /to-regex-range/5.0.1: 3910 | dependencies: 3911 | is-number: 7.0.0 3912 | dev: true 3913 | engines: 3914 | node: '>=8.0' 3915 | resolution: 3916 | integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 3917 | /toidentifier/1.0.0: 3918 | dev: true 3919 | engines: 3920 | node: '>=0.6' 3921 | resolution: 3922 | integrity: sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== 3923 | /tsconfig-paths/3.9.0: 3924 | dependencies: 3925 | '@types/json5': 0.0.29 3926 | json5: 1.0.1 3927 | minimist: 1.2.5 3928 | strip-bom: 3.0.0 3929 | dev: true 3930 | resolution: 3931 | integrity: sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== 3932 | /tslib/1.13.0: 3933 | dev: true 3934 | resolution: 3935 | integrity: sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== 3936 | /tsscmp/1.0.6: 3937 | dev: true 3938 | engines: 3939 | node: '>=0.6.x' 3940 | resolution: 3941 | integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== 3942 | /tsutils/3.17.1_typescript@3.9.7: 3943 | dependencies: 3944 | tslib: 1.13.0 3945 | typescript: 3.9.7 3946 | dev: true 3947 | engines: 3948 | node: '>= 6' 3949 | peerDependencies: 3950 | typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' 3951 | resolution: 3952 | integrity: sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== 3953 | /type-check/0.4.0: 3954 | dependencies: 3955 | prelude-ls: 1.2.1 3956 | dev: true 3957 | engines: 3958 | node: '>= 0.8.0' 3959 | resolution: 3960 | integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== 3961 | /type-fest/0.6.0: 3962 | dev: true 3963 | engines: 3964 | node: '>=8' 3965 | resolution: 3966 | integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== 3967 | /type-fest/0.8.1: 3968 | dev: true 3969 | engines: 3970 | node: '>=8' 3971 | resolution: 3972 | integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== 3973 | /type-is/1.6.18: 3974 | dependencies: 3975 | media-typer: 0.3.0 3976 | mime-types: 2.1.27 3977 | dev: true 3978 | engines: 3979 | node: '>= 0.6' 3980 | resolution: 3981 | integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 3982 | /typescript/3.9.7: 3983 | dev: true 3984 | engines: 3985 | node: '>=4.2.0' 3986 | hasBin: true 3987 | resolution: 3988 | integrity: sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== 3989 | /uniq/1.0.1: 3990 | resolution: 3991 | integrity: sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= 3992 | /universalify/0.1.2: 3993 | dev: false 3994 | engines: 3995 | node: '>= 4.0.0' 3996 | resolution: 3997 | integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== 3998 | /universalify/1.0.0: 3999 | dev: true 4000 | engines: 4001 | node: '>= 10.0.0' 4002 | resolution: 4003 | integrity: sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== 4004 | /uri-js/4.2.2: 4005 | dependencies: 4006 | punycode: 2.1.1 4007 | dev: true 4008 | resolution: 4009 | integrity: sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== 4010 | /v8-compile-cache/2.1.1: 4011 | dev: true 4012 | resolution: 4013 | integrity: sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ== 4014 | /validate-npm-package-license/3.0.4: 4015 | dependencies: 4016 | spdx-correct: 3.1.1 4017 | spdx-expression-parse: 3.0.1 4018 | dev: true 4019 | resolution: 4020 | integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== 4021 | /vary/1.1.2: 4022 | dev: true 4023 | engines: 4024 | node: '>= 0.8' 4025 | resolution: 4026 | integrity: sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= 4027 | /vite-plugin-react/3.0.2_vite@1.0.0-rc.4: 4028 | dependencies: 4029 | '@babel/core': 7.11.0 4030 | react-refresh: 0.8.3 4031 | vite: 1.0.0-rc.4 4032 | dev: true 4033 | peerDependencies: 4034 | vite: '>=1.0.0-beta.1' 4035 | resolution: 4036 | integrity: sha512-W+OdAWuvSddOJDKbHMeyOihLGnMj8pxo7STH3ATn7FZ/3zvcsZKXSlDWmdRtodeMQJJ8odKlDCheVeTFsQJ/vg== 4037 | /vite/1.0.0-rc.4: 4038 | dependencies: 4039 | '@babel/parser': 7.11.0 4040 | '@rollup/plugin-commonjs': 14.0.0_rollup@2.23.0 4041 | '@rollup/plugin-json': 4.1.0_rollup@2.23.0 4042 | '@rollup/plugin-node-resolve': 8.4.0_rollup@2.23.0 4043 | '@types/koa': 2.11.3 4044 | '@types/lru-cache': 5.1.0 4045 | '@vue/compiler-dom': 3.0.0-rc.5 4046 | '@vue/compiler-sfc': 3.0.0-rc.5_vue@3.0.0-rc.5 4047 | brotli-size: 4.0.0 4048 | chalk: 4.1.0 4049 | chokidar: 3.4.1 4050 | clean-css: 4.2.3 4051 | debug: 4.1.1 4052 | dotenv: 8.2.0 4053 | dotenv-expand: 5.1.0 4054 | es-module-lexer: 0.3.24 4055 | esbuild: 0.6.13 4056 | etag: 1.8.1 4057 | execa: 4.0.3 4058 | fs-extra: 9.0.1 4059 | hash-sum: 2.0.0 4060 | isbuiltin: 1.0.0 4061 | koa: 2.13.0 4062 | koa-conditional-get: 2.0.0 4063 | koa-etag: 3.0.0 4064 | koa-proxies: 0.11.0_koa@2.13.0 4065 | koa-send: 5.0.1 4066 | koa-static: 5.0.0 4067 | lru-cache: 5.1.1 4068 | magic-string: 0.25.7 4069 | merge-source-map: 1.1.0 4070 | mime-types: 2.1.27 4071 | minimist: 1.2.5 4072 | open: 7.1.0 4073 | ora: 4.0.5 4074 | postcss: 7.0.32 4075 | postcss-discard-comments: 4.0.2 4076 | postcss-import: 12.0.1 4077 | postcss-load-config: 2.1.0 4078 | resolve: 1.17.0 4079 | rollup: 2.23.0 4080 | rollup-plugin-dynamic-import-variables: 1.1.0_rollup@2.23.0 4081 | rollup-plugin-terser: 5.3.0_rollup@2.23.0 4082 | rollup-plugin-vue: 6.0.0-beta.10_@vue+compiler-sfc@3.0.0-rc.5 4083 | rollup-plugin-web-worker-loader: 1.3.1_rollup@2.23.0 4084 | rollup-pluginutils: 2.8.2 4085 | selfsigned: 1.10.7 4086 | slash: 3.0.0 4087 | vue: 3.0.0-rc.5 4088 | ws: 7.3.1 4089 | dev: true 4090 | engines: 4091 | node: '>=10.16.0' 4092 | hasBin: true 4093 | resolution: 4094 | integrity: sha512-D9gpKKaE2U0YpIxNrSn+nlFPBT0sfg68Y1EReYW8YHMhbNFcxwS7RZIa1W/8Pq6yDfVRAhbOZNijv1mLG5pCEg== 4095 | /vue-demi/0.1.4: 4096 | dev: false 4097 | hasBin: true 4098 | requiresBuild: true 4099 | resolution: 4100 | integrity: sha512-8Hu4A9jLGK+SIIetMamf81eT2m9QUsiPaXSkiDTuPo9qEhSt56OCH/X+kmmg5Pg6kfzdTzKvvjlDBKWd41A7pg== 4101 | /vue-eslint-parser/7.1.0_eslint@7.6.0: 4102 | dependencies: 4103 | debug: 4.1.1 4104 | eslint: 7.6.0 4105 | eslint-scope: 5.1.0 4106 | eslint-visitor-keys: 1.3.0 4107 | espree: 6.2.1 4108 | esquery: 1.3.1 4109 | lodash: 4.17.19 4110 | dev: true 4111 | engines: 4112 | node: '>=8.10' 4113 | peerDependencies: 4114 | eslint: '>=5.0.0' 4115 | resolution: 4116 | integrity: sha512-Kr21uPfthDc63nDl27AGQEhtt9VrZ9nkYk/NTftJ2ws9XiJwzJJCnCr3AITQ2jpRMA0XPGDECxYH8E027qMK9Q== 4117 | /vue/3.0.0-rc.5: 4118 | dependencies: 4119 | '@vue/compiler-dom': 3.0.0-rc.5 4120 | '@vue/runtime-dom': 3.0.0-rc.5 4121 | '@vue/shared': 3.0.0-rc.5 4122 | dev: true 4123 | resolution: 4124 | integrity: sha512-8t8Y4sHMBGD5iLZ7JfBGmKBJlzesPoL+/nW9EV8s+4LwnKC4rGlRp+Lj2rcign4iQaj0GFaL7DrQ8IoOfVX6+w== 4125 | /wcwidth/1.0.1: 4126 | dependencies: 4127 | defaults: 1.0.3 4128 | dev: true 4129 | resolution: 4130 | integrity: sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= 4131 | /which/2.0.2: 4132 | dependencies: 4133 | isexe: 2.0.0 4134 | dev: true 4135 | engines: 4136 | node: '>= 8' 4137 | hasBin: true 4138 | resolution: 4139 | integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 4140 | /word-wrap/1.2.3: 4141 | dev: true 4142 | engines: 4143 | node: '>=0.10.0' 4144 | resolution: 4145 | integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== 4146 | /wrappy/1.0.2: 4147 | resolution: 4148 | integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 4149 | /write/1.0.3: 4150 | dependencies: 4151 | mkdirp: 0.5.5 4152 | dev: true 4153 | engines: 4154 | node: '>=4' 4155 | resolution: 4156 | integrity: sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== 4157 | /ws/7.3.1: 4158 | dev: true 4159 | engines: 4160 | node: '>=8.3.0' 4161 | peerDependencies: 4162 | bufferutil: ^4.0.1 4163 | utf-8-validate: ^5.0.2 4164 | peerDependenciesMeta: 4165 | bufferutil: 4166 | optional: true 4167 | utf-8-validate: 4168 | optional: true 4169 | resolution: 4170 | integrity: sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== 4171 | /xtend/4.0.2: 4172 | dev: false 4173 | engines: 4174 | node: '>=0.4' 4175 | resolution: 4176 | integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== 4177 | /yallist/3.1.1: 4178 | dev: true 4179 | resolution: 4180 | integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== 4181 | /ylru/1.2.1: 4182 | dev: true 4183 | engines: 4184 | node: '>= 4.0.0' 4185 | resolution: 4186 | integrity: sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ== 4187 | specifiers: 4188 | '@antfu/eslint-config': ^0.3.1 4189 | '@iconify/react-with-api': ^1.0.0-beta.2 4190 | '@pika/react': ^16.13.1 4191 | '@pika/react-dom': ^16.13.1 4192 | '@types/react': ^16.9.46 4193 | '@types/react-dom': ^16.9.8 4194 | '@typescript-eslint/eslint-plugin': ^3.9.0 4195 | '@vueuse/core': ^4.0.0-beta.4 4196 | emitt: ^1.3.3 4197 | eslint: ^7.6.0 4198 | eslint-plugin-react: ^7.20.5 4199 | fast-glob: ^3.2.4 4200 | fuse.js: ^6.4.1 4201 | reactivue: ^0.2.1 4202 | tailwindcss: ^1.6.2 4203 | typescript: ^3.9.7 4204 | vite: ^1.0.0-rc.4 4205 | vite-plugin-react: ^3.0.2 4206 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: [ 3 | require('tailwindcss'), 4 | require('autoprefixer'), 5 | ], 6 | } 7 | -------------------------------------------------------------------------------- /public/favicon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /screenshots/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antfu/awesome-cn-cafe-web/fd611fb38915b5bb715679c0a4b8047b17ef7782/screenshots/1.png -------------------------------------------------------------------------------- /screenshots/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antfu/awesome-cn-cafe-web/fd611fb38915b5bb715679c0a4b8047b17ef7782/screenshots/logo.png -------------------------------------------------------------------------------- /scripts/process.mjs: -------------------------------------------------------------------------------- 1 | import path from 'path' 2 | import { promises as fs } from 'fs' 3 | import fg from 'fast-glob' 4 | 5 | (async() => { 6 | const readme = await fs.readFile('./cafe/README.md') 7 | const regex = /\* \[(.*)\s*\((\d+)\)\]\((.*).geojson\)/g 8 | const data = {} 9 | 10 | let match 11 | 12 | // eslint-disable-next-line no-cond-assign 13 | while (match = regex.exec(readme)) { 14 | data[match[3]] = { 15 | name: match[1], 16 | count: +match[2], 17 | } 18 | } 19 | 20 | const files = await fg('./cafe/*.geojson') 21 | 22 | for (const file of files) { 23 | const name = path.parse(file).name 24 | data[name].data = JSON.parse(await fs.readFile(file, 'utf-8')) 25 | 26 | data[name].data.features.forEach((i) => { 27 | i.properties.shortname = i.properties['名称'] 28 | .replace(/[((].*[))]/g, '') 29 | .replace('星巴克', 'Starbucks') 30 | .replace(/Starbucks\s*Starbucks/, 'Starbucks') 31 | .trim() 32 | 33 | i.properties.referrers = Object.keys(i.properties) 34 | .map(i => i.match(/(@[\w_-]+)/)) 35 | .filter(Boolean) 36 | .map(i => i[1]) 37 | }) 38 | 39 | // calc center 40 | const coordinates = data[name].data.features.map(i => i.geometry.coordinates) 41 | data[name].center = coordinates 42 | .reduce((a, b) => [a[0] + b[0], a[1] + b[1]], [0, 0]) 43 | .map(i => i / coordinates.length) 44 | } 45 | 46 | await fs.writeFile('./src/data.json', JSON.stringify(data), 'utf-8') 47 | await fs.writeFile('./src/build.ts', `export const BuildTime = ${+new Date()}\n`, 'utf-8') 48 | })() 49 | -------------------------------------------------------------------------------- /sha: -------------------------------------------------------------------------------- 1 | "sha": "d3c8c5da10048fa15b563fed28c0da0d26c47780", 2 | -------------------------------------------------------------------------------- /src/components/About.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { defineComponent } from 'reactivue' 3 | import { BuildTime } from '../build' 4 | import { fromNow } from '../utils/time' 5 | import { loc } from '../store' 6 | import { Logo } from './Logo' 7 | 8 | export const About = defineComponent( 9 | () => ({ loc }), 10 | ({ loc }) => { 11 | return
12 |

13 | 14 |

15 |
Data Source Awesome CN Café
16 |
Updated {fromNow(BuildTime)}
17 |
Made by @antfu
18 |
Source code on Github
19 | { loc &&
My Location [ {loc.map(i => +i.toFixed(5)).join(', ')} ]
} 20 |
21 | }, 22 | ) 23 | -------------------------------------------------------------------------------- /src/components/Detail.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { CafeShop } from '../types' 3 | import { AppName } from '../constants' 4 | import { parseShop } from '../utils/parseShop' 5 | 6 | interface Props { 7 | shop: CafeShop 8 | } 9 | 10 | export const Detail = ({ shop }: Props) => { 11 | const { 12 | name, 13 | color, 14 | speed, 15 | speedtest, 16 | location1, 17 | location2, 18 | table, 19 | coordinates, 20 | distance, 21 | } = parseShop(shop) 22 | 23 | return ( 24 |
25 |

{name}

26 |

27 | 34 | {speed} 35 | 36 | { 37 | distance 38 | ? ( 39 | <> 40 | 41 | {distance} 42 | 43 | ) 44 | : null 45 | } 46 | 47 | {coordinates.map(i => i.toFixed(3)).join(', ')} 48 |

49 | 50 | 51 | {table.map(([key, value]) => ( 52 | 53 | 54 | 55 | 56 | ))} 57 | 58 |
{key}{value}
59 | 60 |
61 | 66 | 高德地图 67 | 68 | 73 | 百度地图 74 | 75 |
76 |
77 | ) 78 | } 79 | -------------------------------------------------------------------------------- /src/components/FloatControl.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { defineComponent } from 'reactivue' 3 | import { Icon } from '@iconify/react-with-api' 4 | import { filter, setFilter } from '../store' 5 | import { Colors, ColorToIcon } from '../constants' 6 | 7 | export const FloatControl = defineComponent( 8 | () => ({ filter }), 9 | ({ filter }) => { 10 | return ( 11 |
12 |
13 | { Colors.map(color => ( 14 | 22 | ))} 23 |
24 |
25 | ) 26 | }, 27 | ) 28 | -------------------------------------------------------------------------------- /src/components/ListItem.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { CafeShop } from '../types' 3 | import { parseShop } from '../utils/parseShop' 4 | import { setCurrent, setSearchOpen } from '../store' 5 | import { emitter } from '../event' 6 | 7 | interface Props { 8 | shop: CafeShop 9 | } 10 | 11 | export const ListItem = ({ shop }: Props) => { 12 | const { 13 | name, 14 | color, 15 | speed, 16 | distance, 17 | referrers, 18 | } = parseShop(shop) 19 | 20 | const onClick = () => { 21 | setCurrent(shop) 22 | setSearchOpen(false) 23 | emitter.emit('fly-to', { 24 | center: [shop.coordinates[0], shop.coordinates[1] - 0.005], 25 | zoom: 14, 26 | speed: 1.5, 27 | }) 28 | } 29 | 30 | return ( 31 |
35 |

{name}

36 |

37 | {speed} 41 | {distance && ( 42 | <> 43 | 44 | {distance} 45 | 46 | )} 47 | <> 48 | 49 | {referrers.join(' ')} 50 | 51 |

52 |
53 | ) 54 | } 55 | -------------------------------------------------------------------------------- /src/components/Logo.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { Icon } from '@iconify/react-with-api' 3 | 4 | export const Logo = () => { 5 | return ( 6 |
7 | 8 |
9 | Café CN 10 |
11 |
12 | ) 13 | } 14 | -------------------------------------------------------------------------------- /src/components/Map.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { setCurrent, setLoc } from '../store' 3 | import { emitter } from '../event' 4 | 5 | window.mapboxgl.accessToken = 'pk.eyJ1IjoiYW50aG9ueWZ1MTE3IiwiYSI6ImNrZGJxa3U2MTB1ZjgycXJ4eWQ5N3cxN3cifQ.Vz_GndQJpG6ybjFc-MJaCw' 6 | 7 | interface Props { 8 | city: string 9 | filter: string 10 | geo: any 11 | data: any 12 | } 13 | 14 | const SCALE = 10 15 | 16 | function createColorPoint(...color: number[]) { 17 | const d = 48 18 | const r = d / 2 19 | const r2 = r ** 2 20 | const bytesPerPixel = 4 21 | 22 | const data = new Uint8Array(d * d * bytesPerPixel) 23 | 24 | for (let x = 0; x < d; x++) { 25 | for (let y = 0; y < d; y++) { 26 | if ((x - r) ** 2 + (y - r) ** 2 >= r2) 27 | continue 28 | 29 | const offset = (y * d + x) * bytesPerPixel 30 | for (let b = 0; b < bytesPerPixel; b++) 31 | data[offset + b] = color[b] 32 | } 33 | } 34 | return { width: d, height: d, data } 35 | } 36 | 37 | export class Map extends React.Component { 38 | mapContainer: HTMLDivElement | undefined | null 39 | map: any 40 | geoControl: any 41 | last = '' 42 | lastFilter = '' 43 | 44 | componentDidMount() { 45 | const map = window.map = this.map = new window.mapboxgl.Map({ 46 | container: this.mapContainer, 47 | style: 'mapbox://styles/anthonyfu117/cjygtd7sr07dq1cqibnpqvq4w', 48 | center: this.props.data.center, 49 | zoom: SCALE, 50 | }) 51 | 52 | map.addControl(new window.MapboxLanguage({ defaultLanguage: 'zh' })) 53 | 54 | map.on('load', () => { 55 | map.addImage('#50C240', createColorPoint(80, 194, 64, 255)) 56 | map.addImage('#F3AE1A', createColorPoint(255, 193, 7, 255)) 57 | map.addImage('#C24740', createColorPoint(194, 71, 64, 255)) 58 | map.addImage('#BEBEBE', createColorPoint(125, 125, 125, 255)) 59 | 60 | this.updateMap() 61 | }) 62 | 63 | map.on('click', 'layer', (e: any) => { 64 | if (!e.features) 65 | return 66 | 67 | const coordinates = e.features[0].geometry.coordinates.slice() 68 | const properties = e.features[0].properties 69 | 70 | setCurrent({ 71 | coordinates, 72 | properties, 73 | }) 74 | }) 75 | 76 | map.on('click', 'clusters', (e: any) => { 77 | const features = map.queryRenderedFeatures(e.point, { 78 | layers: ['clusters'], 79 | }) 80 | if (!features.length) 81 | return 82 | const clusterId = features[0].properties.cluster_id 83 | map 84 | .getSource('source') 85 | .getClusterExpansionZoom( 86 | clusterId, 87 | (err: any, zoom: any) => { 88 | if (err) return 89 | 90 | map.easeTo({ 91 | center: features[0].geometry.coordinates, 92 | zoom, 93 | }) 94 | }, 95 | ) 96 | }) 97 | 98 | map.on('mouseenter', 'layer', () => { 99 | map.getCanvas().style.cursor = 'pointer' 100 | }) 101 | 102 | map.on('mouseleave', 'layer', () => { 103 | map.getCanvas().style.cursor = '' 104 | }) 105 | 106 | this.geoControl = new window.mapboxgl.GeolocateControl({ 107 | positionOptions: { 108 | enableHighAccuracy: true, 109 | }, 110 | trackUserLocation: true, 111 | }) 112 | 113 | map.addControl(this.geoControl) 114 | 115 | emitter.on('track', () => { 116 | this.geoControl.trigger() 117 | }) 118 | 119 | emitter.on('fly-to', (data: any) => { 120 | map.flyTo(data) 121 | }) 122 | 123 | this.geoControl.on('geolocate', (e: any) => { 124 | setLoc([e.coords.longitude, e.coords.latitude]) 125 | }) 126 | } 127 | 128 | componentDidUpdate() { 129 | this.updateMap() 130 | 131 | // trigger mapbox to resize 132 | // https://github.com/mapbox/mapbox.js/issues/488#issuecomment-250504605 133 | setTimeout(() => { 134 | window.dispatchEvent(new Event('resize')) 135 | }, 300) 136 | } 137 | 138 | shouldComponentUpdate(next: Props) { 139 | return this.last !== next.city || this.lastFilter !== next.filter 140 | } 141 | 142 | updateMap() { 143 | const map = this.map 144 | const { city, filter, geo, data } = this.props 145 | 146 | if (this.last !== city) { 147 | map.flyTo({ 148 | center: data.center, 149 | zoom: SCALE, 150 | speed: 2, 151 | }) 152 | } 153 | 154 | if (this.lastFilter !== filter) { 155 | if (map.getLayer('layer')) 156 | map.removeLayer('layer') 157 | if (map.getLayer('clusters')) 158 | map.removeLayer('clusters') 159 | if (map.getLayer('clusters-count')) 160 | map.removeLayer('clusters-count') 161 | if (map.getSource('source')) 162 | map.removeSource('source') 163 | 164 | map.addSource('source', { 165 | type: 'geojson', 166 | data: geo, 167 | cluster: true, 168 | clusterMaxZoom: 12, 169 | clusterRadius: 25, 170 | }) 171 | 172 | map.addLayer({ 173 | id: 'clusters', 174 | type: 'circle', 175 | source: 'source', 176 | filter: ['has', 'point_count'], 177 | paint: { 178 | 'circle-color': '#d3cdc0', 179 | 'circle-stroke-color': '#a59a83', 180 | 'circle-stroke-width': 1, 181 | 'circle-radius': 10, 182 | }, 183 | }) 184 | 185 | map.addLayer({ 186 | id: 'clusters-count', 187 | type: 'symbol', 188 | source: 'source', 189 | filter: ['has', 'point_count'], 190 | layout: { 191 | 'text-field': '{point_count_abbreviated}', 192 | 'text-size': 12, 193 | 'text-allow-overlap': true, 194 | }, 195 | paint: { 196 | 'text-color': 'white', 197 | }, 198 | }) 199 | 200 | map.addLayer({ 201 | id: 'layer', 202 | type: 'symbol', 203 | source: 'source', 204 | layout: { 205 | 'icon-image': ['get', 'marker-color'], 206 | 'icon-size': 0.25, 207 | 'text-field': ['get', 'shortname'], 208 | 'text-size': 12, 209 | 'text-offset': [0, 0.5], 210 | 'text-anchor': 'top', 211 | 'icon-allow-overlap': true, 212 | }, 213 | paint: { 214 | 'text-color': '#7e6c56', 215 | 'text-halo-color': '#fff', 216 | 'text-halo-width': 1, 217 | 'text-halo-blur': 0, 218 | }, 219 | }) 220 | } 221 | 222 | this.last = city 223 | this.lastFilter = filter 224 | } 225 | 226 | render() { 227 | return ( 228 |
229 |
this.mapContainer = el} style={{ height: '100%', width: '100%', top: 0, bottom: 0, left: 0, right: 0 }} /> 230 |
231 | ) 232 | } 233 | } 234 | -------------------------------------------------------------------------------- /src/components/Modal.tsx: -------------------------------------------------------------------------------- 1 | import React, { PropsWithChildren } from 'react' 2 | 3 | export interface Props { 4 | value: boolean 5 | setValue: (v: boolean) => void 6 | } 7 | 8 | export const Modal = ({ value, setValue, children }: PropsWithChildren) => { 9 | return ( 10 |
11 |
setValue(false)} 14 | /> 15 |
19 | {children} 20 |
21 |
22 | ) 23 | } 24 | -------------------------------------------------------------------------------- /src/components/Nav.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { Icon } from '@iconify/react-with-api' 3 | import { defineComponent } from 'reactivue' 4 | import { city, cityName, cities, changeCity, Cities, setAbout, setSearchOpen } from '../store' 5 | import { emitter } from '../event' 6 | import { Logo } from './Logo' 7 | 8 | export const Nav = defineComponent( 9 | () => ({ cities, city, cityName, changeCity }), 10 | ({ city, cities, cityName, changeCity }) => { 11 | return ( 12 |
13 |
14 | {cityName} 15 | 16 | 25 |
26 |
27 |
setSearchOpen(true)} 30 | > 31 | 32 |
33 |
emitter.emit('track')} 36 | > 37 | 38 |
39 | 40 |
setAbout(true)} 44 | > 45 | 46 |
47 |
48 | ) 49 | }, 50 | ) 51 | -------------------------------------------------------------------------------- /src/components/Search.tsx: -------------------------------------------------------------------------------- 1 | import React, { useRef, useEffect } from 'react' 2 | import { Icon } from '@iconify/react-with-api' 3 | import { defineComponent } from 'reactivue' 4 | import { setSearchOpen, searchResult, searchString, setSearchString, searchOpen } from '../store' 5 | import { ListItem } from './ListItem' 6 | 7 | export const Search = defineComponent( 8 | () => ({ searchResult, searchString, searchOpen }), 9 | ({ searchResult, searchString, searchOpen }) => { 10 | const ref = useRef(null) 11 | 12 | useEffect(() => { 13 | if (ref.current && searchOpen) 14 | ref.current?.focus() 15 | }, []) 16 | 17 | return ( 18 |
22 |
23 | setSearchString(e.target.value)} 27 | placeholder="Search" 28 | className="px-3 py-4 outline-none w-full" 29 | /> 30 | setSearchOpen(false)}/> 31 |
32 |
33 | { 34 | searchString 35 | ? searchResult.length 36 | ? searchResult.map(i => ) 37 | :
无结果
38 | :
输入关键字以开始搜索
39 | } 40 |
41 |
42 | ) 43 | }, 44 | ) 45 | -------------------------------------------------------------------------------- /src/constants.ts: -------------------------------------------------------------------------------- 1 | export const AppName = 'Café 𝐂𝐍' 2 | 3 | export const ColorToIcon: Record = { 4 | '#50C240': 'mdi:wifi-strength-4', 5 | '#F3AE1A': 'mdi:wifi-strength-2', 6 | '#C24740': 'mdi:wifi-strength-1', 7 | '#BEBEBE': 'mdi:domain-off', 8 | } 9 | 10 | export const Colors = Object.keys(ColorToIcon) 11 | 12 | export const ignoredProperties = [ 13 | '名称', 14 | '下载速度', 15 | 'shortname', 16 | 'Speedtest 链接', 17 | 'marker-color', 18 | 'marker-symbol', 19 | 'referrers', 20 | ] 21 | -------------------------------------------------------------------------------- /src/event.ts: -------------------------------------------------------------------------------- 1 | import emitt from 'emitt' 2 | 3 | export const emitter = emitt() 4 | -------------------------------------------------------------------------------- /src/main.css: -------------------------------------------------------------------------------- 1 | @import 'tailwindcss/base'; 2 | @import 'tailwindcss/components'; 3 | @import 'tailwindcss/utilities'; 4 | 5 | html, body, #app { 6 | height: 100vh; 7 | width: 100vw; 8 | margin: 0; 9 | padding: 0; 10 | } 11 | 12 | .mapboxgl-ctrl-geolocate { 13 | display: none !important; 14 | } -------------------------------------------------------------------------------- /src/main.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { render } from 'react-dom' 3 | import { defineComponent } from 'reactivue' 4 | import { city, data, filteredGeo, filter, setCurrent, current, about, setAbout, searchOpen, setSearchOpen } from './store' 5 | import { Nav } from './components/Nav' 6 | import { Map } from './components/Map' 7 | import { FloatControl } from './components/FloatControl' 8 | import { Modal } from './components/Modal' 9 | import { Detail } from './components/Detail' 10 | import { About } from './components/About' 11 | import { Search } from './components/Search' 12 | import './main.css' 13 | 14 | const App = defineComponent( 15 | () => ({ city, data, filteredGeo, filter, current, about, searchOpen }), 16 | ({ city, data, filteredGeo, filter, current, about, searchOpen }) => { 17 | return ( 18 |
19 |
20 |
23 | 24 | 25 | setCurrent(null)}> 26 | {current ? : null } 27 | 28 | setAbout(false)}> 29 | 30 | 31 | setSearchOpen(false)}> 32 | 33 | 34 |
35 | ) 36 | }, 37 | ) 38 | 39 | render(, document.getElementById('app')) 40 | -------------------------------------------------------------------------------- /src/store.ts: -------------------------------------------------------------------------------- 1 | import { computed, Ref, ref } from 'reactivue' 2 | import { useStorage } from '@vueuse/core' 3 | import Fuse from 'fuse.js' 4 | import { CafeShop } from './types' 5 | import raw from './data.json' 6 | 7 | export const rawData = Object.freeze(raw) 8 | export const geo = Object.freeze({ 9 | type: 'FeatureCollection', 10 | features: Object.values(rawData).flatMap(i => i.data.features as any[]), 11 | }) 12 | export const shops = Object.freeze(geo.features.map(i => ({ 13 | ...i, 14 | coordinates: i.geometry.coordinates, 15 | }) as CafeShop)) 16 | export const fuseByName = new Fuse(shops, { 17 | includeScore: false, 18 | keys: [ 19 | ['properties', '名称'], 20 | ], 21 | }) 22 | export const fuseByReferrers = new Fuse(shops, { 23 | includeScore: false, 24 | keys: [ 25 | ['properties', 'referrers'], 26 | ], 27 | }) 28 | 29 | export type Cities = keyof typeof raw 30 | 31 | export const city = useStorage('cafe-cn-city', 'shanghai') as Ref 32 | export const filter = useStorage('cafe-cn-filter', 'all') 33 | export const loc = ref<[number, number] | null>(null) 34 | export const about = ref(false) 35 | export const searchOpen = ref(false) 36 | export const searchString = ref('') 37 | 38 | export const data = computed(() => rawData[city.value]) 39 | 40 | export const filteredGeo = computed(() => { 41 | if (filter.value === 'all') { 42 | return geo 43 | } 44 | else { 45 | return { 46 | ...geo, 47 | features: (geo.features as any[]) 48 | .filter(i => i.properties['marker-color'] === filter.value), 49 | } 50 | } 51 | }) 52 | 53 | export const searchResult = computed(() => { 54 | if (searchString.value.startsWith('@')) 55 | return fuseByReferrers.search(searchString.value).map(i => i.item) 56 | else 57 | return fuseByName.search(searchString.value).map(i => i.item) 58 | }) 59 | 60 | export const current = ref(null) 61 | 62 | export const cityName = computed(() => data.value.name) 63 | export const cities = Object.entries(raw) 64 | 65 | export const setFilter = (v: string) => filter.value === v ? filter.value = 'all' : filter.value = v 66 | export const changeCity = (v: Cities) => city.value = v 67 | export const setCurrent = (v: CafeShop | null) => current.value = v 68 | export const setLoc = (v: [number, number] | null) => loc.value = v 69 | export const setAbout = (v: boolean) => about.value = v 70 | export const setSearchOpen = (v: boolean) => searchOpen.value = v 71 | export const setSearchString = (str: string) => searchString.value = str 72 | -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | export interface CafeShop { 2 | coordinates: [number, number] 3 | properties: Record 4 | } 5 | -------------------------------------------------------------------------------- /src/utils/distance.ts: -------------------------------------------------------------------------------- 1 | import { loc } from '../store' 2 | 3 | export const getDistanceFromMe = (coords: [number, number]) => { 4 | if (!loc.value) 5 | return null 6 | 7 | const [lat1, lon1] = coords 8 | const [lat2, lon2] = loc.value 9 | if ((lat1 === lat2) && (lon1 === lon2)) { 10 | return 0 11 | } 12 | else { 13 | const radlat1 = Math.PI * lat1 / 180 14 | const radlat2 = Math.PI * lat2 / 180 15 | const theta = lon1 - lon2 16 | const radtheta = Math.PI * theta / 180 17 | let dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta) 18 | if (dist > 1) 19 | dist = 1 20 | 21 | dist = Math.acos(dist) 22 | dist = dist * 180 / Math.PI 23 | dist = dist * 60 * 1.1515 24 | const km = dist * 1.609344 25 | 26 | if (km > 1) 27 | return `${+km.toFixed(2)} km` 28 | else 29 | return `${Math.round(km * 1000)} m` 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/utils/parseShop.ts: -------------------------------------------------------------------------------- 1 | import { CafeShop } from '../types' 2 | import { ignoredProperties } from '../constants' 3 | import { getDistanceFromMe } from './distance' 4 | 5 | export const parseShop = (shop: CafeShop) => { 6 | const { properties, coordinates } = shop 7 | 8 | const location1 = coordinates.join(',') 9 | const location2 = coordinates.slice().reverse().join(',') 10 | const distance = getDistanceFromMe(coordinates) 11 | 12 | const table = Object.entries(properties) 13 | .filter(([k]) => !ignoredProperties.includes(k)) 14 | 15 | return { 16 | shop, 17 | properties, 18 | coordinates, 19 | color: properties['marker-color'], 20 | name: properties['名称'], 21 | speed: properties['下载速度'], 22 | speedtest: properties['Speedtest 链接'], 23 | referrers: properties.referrers as any as string[], 24 | location1, 25 | location2, 26 | table, 27 | distance, 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/utils/time.ts: -------------------------------------------------------------------------------- 1 | export function fromNow(to: number, now = +new Date()) { 2 | const msPerMinute = 60 * 1000 3 | const msPerHour = msPerMinute * 60 4 | const msPerDay = msPerHour * 24 5 | const msPerMonth = msPerDay * 30 6 | const msPerYear = msPerDay * 365 7 | 8 | const elapsed = now - to 9 | 10 | if (elapsed < msPerMinute) 11 | return `${Math.round(elapsed / 1000)} seconds ago` 12 | 13 | else if (elapsed < msPerHour) 14 | return `${Math.round(elapsed / msPerMinute)} minutes ago` 15 | 16 | else if (elapsed < msPerDay) 17 | return `${Math.round(elapsed / msPerHour)} hours ago` 18 | 19 | else if (elapsed < msPerMonth) 20 | return `${Math.round(elapsed / msPerDay)} days ago` 21 | 22 | else if (elapsed < msPerYear) 23 | return `${Math.round(elapsed / msPerMonth)} months ago` 24 | else 25 | return `${Math.round(elapsed / msPerYear)} years ago` 26 | } 27 | -------------------------------------------------------------------------------- /src/window.d.ts: -------------------------------------------------------------------------------- 1 | declare interface Window { 2 | mapboxgl: any 3 | map: any 4 | MapboxLanguage: any 5 | } 6 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | purge: { 3 | content: [ 4 | './index.html', 5 | './src/**/*.vue', 6 | './src/**/*.js', 7 | './src/**/*.ts', 8 | ], 9 | }, 10 | theme: { 11 | extend: { 12 | opacity: { 13 | 10: '0.1', 14 | }, 15 | }, 16 | }, 17 | } 18 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "lib": ["DOM", "DOM.Iterable", "ESNext"], 5 | "types": [], 6 | "allowJs": false, 7 | "skipLibCheck": false, 8 | "esModuleInterop": false, 9 | "allowSyntheticDefaultImports": true, 10 | "strict": true, 11 | "forceConsistentCasingInFileNames": true, 12 | "module": "ESNext", 13 | "moduleResolution": "Node", 14 | "resolveJsonModule": true, 15 | "isolatedModules": true, 16 | "noEmit": true, 17 | "jsx": "react", 18 | }, 19 | "include": ["src"] 20 | } 21 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import * as reactPlugin from 'vite-plugin-react' 2 | import type { UserConfig } from 'vite' 3 | 4 | const config: UserConfig = { 5 | jsx: 'react', 6 | plugins: [reactPlugin], 7 | alias: { 8 | vue: 'reactivue', 9 | 'vue-demi': 'reactivue', 10 | '@vue/runtime-dom': 'reactivue', 11 | }, 12 | optimizeDeps: { 13 | exclude: [ 14 | 'dayjs', 15 | 'reactivue', 16 | 'react-mapbox-gl', 17 | ], 18 | }, 19 | } 20 | 21 | export default config 22 | --------------------------------------------------------------------------------