├── .github └── workflows │ └── build.yml ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── README.md └── src └── main.rs /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Build MDN CLI 2 | on: 3 | push: 4 | tags: 5 | - 'v*' 6 | 7 | jobs: 8 | release: 9 | name: release 10 | runs-on: ubuntu-latest 11 | outputs: 12 | upload_url: ${{ steps.create_release.outputs.upload_url }} 13 | steps: 14 | - name: create a github release 15 | id: create_release 16 | uses: actions/create-release@v1 17 | env: 18 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 19 | with: 20 | tag_name: ${{ github.ref }} 21 | release_name: mdn ${{ github.ref }} 22 | draft: true 23 | prerelease: false 24 | 25 | linux: 26 | name: linux gnulibc build 27 | runs-on: ubuntu-latest 28 | needs: [release] 29 | steps: 30 | - uses: actions/checkout@v2 31 | - uses: actions-rs/toolchain@v1 32 | with: 33 | toolchain: stable 34 | profile: minimal 35 | - uses: actions/cache@v2 36 | with: 37 | path: | 38 | ~/.cargo/registry 39 | ~/.cargo/git 40 | target 41 | key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.lock') }} 42 | restore-keys: | 43 | ${{ runner.os }}-cargo- 44 | - run: cargo build --release 45 | - run: tar cfz mdn_x64_linux.tar.gz -C target/release mdn 46 | - name: upload x64 linux gnu release 47 | id: release 48 | uses: actions/upload-release-asset@v1 49 | env: 50 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 51 | with: 52 | upload_url: ${{needs.release.outputs.upload_url}} 53 | asset_path: ./mdn_x64_linux.tar.gz 54 | asset_name: mdn_x64_linux.tar.gz 55 | asset_content_type: application/gzip 56 | 57 | darwin: 58 | name: darwin 59 | runs-on: macos-latest 60 | needs: [release] 61 | steps: 62 | - uses: actions/checkout@v2 63 | - uses: actions-rs/toolchain@v1 64 | with: 65 | toolchain: stable 66 | profile: minimal 67 | - uses: actions/cache@v2 68 | with: 69 | path: | 70 | ~/.cargo/registry 71 | ~/.cargo/git 72 | target 73 | key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.lock') }} 74 | restore-keys: | 75 | ${{ runner.os }}-cargo- 76 | - run: cargo build --release 77 | - run: tar cfz mdn_x64_darwin.tar.gz -C target/release mdn 78 | - name: upload darwin release 79 | id: release 80 | uses: actions/upload-release-asset@v1 81 | env: 82 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 83 | with: 84 | upload_url: ${{needs.release.outputs.upload_url}} 85 | asset_path: ./mdn_x64_darwin.tar.gz 86 | asset_name: mdn_x64_darwin.tar.gz 87 | asset_content_type: application/gzip 88 | 89 | windows: 90 | name: windows 91 | runs-on: windows-latest 92 | needs: [release] 93 | steps: 94 | - uses: actions/checkout@v2 95 | - uses: actions-rs/toolchain@v1 96 | with: 97 | toolchain: stable 98 | profile: minimal 99 | - uses: actions/cache@v2 100 | with: 101 | path: | 102 | ~/.cargo/registry 103 | ~/.cargo/git 104 | target 105 | key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.lock') }} 106 | restore-keys: | 107 | ${{ runner.os }}-cargo- 108 | - run: cargo build --release 109 | - name: tar it up 110 | shell: bash 111 | run: | 112 | tar cfz mdn_x64_win32.tar.gz -C target/release mdn 113 | - name: upload windows release 114 | id: release 115 | uses: actions/upload-release-asset@v1 116 | env: 117 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 118 | with: 119 | upload_url: ${{needs.release.outputs.upload_url}} 120 | asset_path: ./mdn_x64_win32.tar.gz 121 | asset_name: mdn_x64_win32.tar.gz 122 | asset_content_type: application/gzip 123 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "adler" 7 | version = "1.0.2" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 10 | 11 | [[package]] 12 | name = "aead" 13 | version = "0.3.2" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331" 16 | dependencies = [ 17 | "generic-array", 18 | ] 19 | 20 | [[package]] 21 | name = "aes" 22 | version = "0.6.0" 23 | source = "registry+https://github.com/rust-lang/crates.io-index" 24 | checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561" 25 | dependencies = [ 26 | "aes-soft", 27 | "aesni", 28 | "cipher", 29 | ] 30 | 31 | [[package]] 32 | name = "aes-gcm" 33 | version = "0.8.0" 34 | source = "registry+https://github.com/rust-lang/crates.io-index" 35 | checksum = "5278b5fabbb9bd46e24aa69b2fdea62c99088e0a950a9be40e3e0101298f88da" 36 | dependencies = [ 37 | "aead", 38 | "aes", 39 | "cipher", 40 | "ctr", 41 | "ghash", 42 | "subtle", 43 | ] 44 | 45 | [[package]] 46 | name = "aes-soft" 47 | version = "0.6.4" 48 | source = "registry+https://github.com/rust-lang/crates.io-index" 49 | checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072" 50 | dependencies = [ 51 | "cipher", 52 | "opaque-debug", 53 | ] 54 | 55 | [[package]] 56 | name = "aesni" 57 | version = "0.10.0" 58 | source = "registry+https://github.com/rust-lang/crates.io-index" 59 | checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce" 60 | dependencies = [ 61 | "cipher", 62 | "opaque-debug", 63 | ] 64 | 65 | [[package]] 66 | name = "aho-corasick" 67 | version = "0.7.19" 68 | source = "registry+https://github.com/rust-lang/crates.io-index" 69 | checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" 70 | dependencies = [ 71 | "memchr", 72 | ] 73 | 74 | [[package]] 75 | name = "ansi_colours" 76 | version = "1.1.1" 77 | source = "registry+https://github.com/rust-lang/crates.io-index" 78 | checksum = "32678233b67f9056b0c144b39d46dc3218637e8d84ad6038ded339e08b19620d" 79 | dependencies = [ 80 | "rgb", 81 | ] 82 | 83 | [[package]] 84 | name = "ansi_term" 85 | version = "0.12.1" 86 | source = "registry+https://github.com/rust-lang/crates.io-index" 87 | checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" 88 | dependencies = [ 89 | "winapi", 90 | ] 91 | 92 | [[package]] 93 | name = "anyhow" 94 | version = "1.0.65" 95 | source = "registry+https://github.com/rust-lang/crates.io-index" 96 | checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602" 97 | 98 | [[package]] 99 | name = "async-attributes" 100 | version = "1.1.2" 101 | source = "registry+https://github.com/rust-lang/crates.io-index" 102 | checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" 103 | dependencies = [ 104 | "quote", 105 | "syn", 106 | ] 107 | 108 | [[package]] 109 | name = "async-channel" 110 | version = "1.7.1" 111 | source = "registry+https://github.com/rust-lang/crates.io-index" 112 | checksum = "e14485364214912d3b19cc3435dde4df66065127f05fa0d75c712f36f12c2f28" 113 | dependencies = [ 114 | "concurrent-queue", 115 | "event-listener", 116 | "futures-core", 117 | ] 118 | 119 | [[package]] 120 | name = "async-executor" 121 | version = "1.4.1" 122 | source = "registry+https://github.com/rust-lang/crates.io-index" 123 | checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965" 124 | dependencies = [ 125 | "async-task", 126 | "concurrent-queue", 127 | "fastrand", 128 | "futures-lite", 129 | "once_cell", 130 | "slab", 131 | ] 132 | 133 | [[package]] 134 | name = "async-global-executor" 135 | version = "2.3.0" 136 | source = "registry+https://github.com/rust-lang/crates.io-index" 137 | checksum = "0da5b41ee986eed3f524c380e6d64965aea573882a8907682ad100f7859305ca" 138 | dependencies = [ 139 | "async-channel", 140 | "async-executor", 141 | "async-io", 142 | "async-lock", 143 | "blocking", 144 | "futures-lite", 145 | "once_cell", 146 | ] 147 | 148 | [[package]] 149 | name = "async-io" 150 | version = "1.9.0" 151 | source = "registry+https://github.com/rust-lang/crates.io-index" 152 | checksum = "83e21f3a490c72b3b0cf44962180e60045de2925d8dff97918f7ee43c8f637c7" 153 | dependencies = [ 154 | "autocfg", 155 | "concurrent-queue", 156 | "futures-lite", 157 | "libc", 158 | "log", 159 | "once_cell", 160 | "parking", 161 | "polling", 162 | "slab", 163 | "socket2", 164 | "waker-fn", 165 | "winapi", 166 | ] 167 | 168 | [[package]] 169 | name = "async-lock" 170 | version = "2.5.0" 171 | source = "registry+https://github.com/rust-lang/crates.io-index" 172 | checksum = "e97a171d191782fba31bb902b14ad94e24a68145032b7eedf871ab0bc0d077b6" 173 | dependencies = [ 174 | "event-listener", 175 | ] 176 | 177 | [[package]] 178 | name = "async-std" 179 | version = "1.12.0" 180 | source = "registry+https://github.com/rust-lang/crates.io-index" 181 | checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" 182 | dependencies = [ 183 | "async-attributes", 184 | "async-channel", 185 | "async-global-executor", 186 | "async-io", 187 | "async-lock", 188 | "crossbeam-utils", 189 | "futures-channel", 190 | "futures-core", 191 | "futures-io", 192 | "futures-lite", 193 | "gloo-timers", 194 | "kv-log-macro", 195 | "log", 196 | "memchr", 197 | "once_cell", 198 | "pin-project-lite", 199 | "pin-utils", 200 | "slab", 201 | "wasm-bindgen-futures", 202 | ] 203 | 204 | [[package]] 205 | name = "async-task" 206 | version = "4.3.0" 207 | source = "registry+https://github.com/rust-lang/crates.io-index" 208 | checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" 209 | 210 | [[package]] 211 | name = "async-trait" 212 | version = "0.1.57" 213 | source = "registry+https://github.com/rust-lang/crates.io-index" 214 | checksum = "76464446b8bc32758d7e88ee1a804d9914cd9b1cb264c029899680b0be29826f" 215 | dependencies = [ 216 | "proc-macro2", 217 | "quote", 218 | "syn", 219 | ] 220 | 221 | [[package]] 222 | name = "atomic-waker" 223 | version = "1.0.0" 224 | source = "registry+https://github.com/rust-lang/crates.io-index" 225 | checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a" 226 | 227 | [[package]] 228 | name = "atty" 229 | version = "0.2.14" 230 | source = "registry+https://github.com/rust-lang/crates.io-index" 231 | checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" 232 | dependencies = [ 233 | "hermit-abi", 234 | "libc", 235 | "winapi", 236 | ] 237 | 238 | [[package]] 239 | name = "autocfg" 240 | version = "1.1.0" 241 | source = "registry+https://github.com/rust-lang/crates.io-index" 242 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 243 | 244 | [[package]] 245 | name = "base-x" 246 | version = "0.2.11" 247 | source = "registry+https://github.com/rust-lang/crates.io-index" 248 | checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" 249 | 250 | [[package]] 251 | name = "base64" 252 | version = "0.13.0" 253 | source = "registry+https://github.com/rust-lang/crates.io-index" 254 | checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" 255 | 256 | [[package]] 257 | name = "bat" 258 | version = "0.16.0" 259 | source = "registry+https://github.com/rust-lang/crates.io-index" 260 | checksum = "ff3ef95bb0870ec03587b42a8f972902333d52f699d5d78ddfa6d5c19bb6276a" 261 | dependencies = [ 262 | "ansi_colours", 263 | "ansi_term", 264 | "atty", 265 | "clap", 266 | "console", 267 | "content_inspector", 268 | "dirs", 269 | "encoding", 270 | "error-chain", 271 | "git2", 272 | "globset", 273 | "lazy_static", 274 | "path_abs", 275 | "semver 0.11.0", 276 | "serde", 277 | "serde_yaml", 278 | "shell-words", 279 | "syntect", 280 | "unicode-width", 281 | "wild", 282 | ] 283 | 284 | [[package]] 285 | name = "bincode" 286 | version = "1.3.3" 287 | source = "registry+https://github.com/rust-lang/crates.io-index" 288 | checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" 289 | dependencies = [ 290 | "serde", 291 | ] 292 | 293 | [[package]] 294 | name = "bitflags" 295 | version = "1.3.2" 296 | source = "registry+https://github.com/rust-lang/crates.io-index" 297 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 298 | 299 | [[package]] 300 | name = "block-buffer" 301 | version = "0.9.0" 302 | source = "registry+https://github.com/rust-lang/crates.io-index" 303 | checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" 304 | dependencies = [ 305 | "generic-array", 306 | ] 307 | 308 | [[package]] 309 | name = "blocking" 310 | version = "1.2.0" 311 | source = "registry+https://github.com/rust-lang/crates.io-index" 312 | checksum = "c6ccb65d468978a086b69884437ded69a90faab3bbe6e67f242173ea728acccc" 313 | dependencies = [ 314 | "async-channel", 315 | "async-task", 316 | "atomic-waker", 317 | "fastrand", 318 | "futures-lite", 319 | "once_cell", 320 | ] 321 | 322 | [[package]] 323 | name = "bstr" 324 | version = "0.2.17" 325 | source = "registry+https://github.com/rust-lang/crates.io-index" 326 | checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" 327 | dependencies = [ 328 | "memchr", 329 | ] 330 | 331 | [[package]] 332 | name = "bumpalo" 333 | version = "3.11.0" 334 | source = "registry+https://github.com/rust-lang/crates.io-index" 335 | checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" 336 | 337 | [[package]] 338 | name = "bytemuck" 339 | version = "1.12.1" 340 | source = "registry+https://github.com/rust-lang/crates.io-index" 341 | checksum = "2f5715e491b5a1598fc2bef5a606847b5dc1d48ea625bd3c02c00de8285591da" 342 | 343 | [[package]] 344 | name = "byteorder" 345 | version = "1.4.3" 346 | source = "registry+https://github.com/rust-lang/crates.io-index" 347 | checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" 348 | 349 | [[package]] 350 | name = "bytes" 351 | version = "0.5.6" 352 | source = "registry+https://github.com/rust-lang/crates.io-index" 353 | checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" 354 | 355 | [[package]] 356 | name = "bytes" 357 | version = "1.2.1" 358 | source = "registry+https://github.com/rust-lang/crates.io-index" 359 | checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" 360 | 361 | [[package]] 362 | name = "cache-padded" 363 | version = "1.2.0" 364 | source = "registry+https://github.com/rust-lang/crates.io-index" 365 | checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" 366 | 367 | [[package]] 368 | name = "cc" 369 | version = "1.0.73" 370 | source = "registry+https://github.com/rust-lang/crates.io-index" 371 | checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" 372 | dependencies = [ 373 | "jobserver", 374 | ] 375 | 376 | [[package]] 377 | name = "cfg-if" 378 | version = "1.0.0" 379 | source = "registry+https://github.com/rust-lang/crates.io-index" 380 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 381 | 382 | [[package]] 383 | name = "cipher" 384 | version = "0.2.5" 385 | source = "registry+https://github.com/rust-lang/crates.io-index" 386 | checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" 387 | dependencies = [ 388 | "generic-array", 389 | ] 390 | 391 | [[package]] 392 | name = "clap" 393 | version = "2.34.0" 394 | source = "registry+https://github.com/rust-lang/crates.io-index" 395 | checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" 396 | dependencies = [ 397 | "ansi_term", 398 | "atty", 399 | "bitflags", 400 | "strsim", 401 | "term_size", 402 | "textwrap", 403 | "unicode-width", 404 | "vec_map", 405 | ] 406 | 407 | [[package]] 408 | name = "concurrent-queue" 409 | version = "1.2.4" 410 | source = "registry+https://github.com/rust-lang/crates.io-index" 411 | checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c" 412 | dependencies = [ 413 | "cache-padded", 414 | ] 415 | 416 | [[package]] 417 | name = "console" 418 | version = "0.12.0" 419 | source = "registry+https://github.com/rust-lang/crates.io-index" 420 | checksum = "c0b1aacfaffdbff75be81c15a399b4bedf78aaefe840e8af1d299ac2ade885d2" 421 | dependencies = [ 422 | "encode_unicode", 423 | "lazy_static", 424 | "libc", 425 | "regex", 426 | "terminal_size", 427 | "termios", 428 | "unicode-width", 429 | "winapi", 430 | "winapi-util", 431 | ] 432 | 433 | [[package]] 434 | name = "const_fn" 435 | version = "0.4.9" 436 | source = "registry+https://github.com/rust-lang/crates.io-index" 437 | checksum = "fbdcdcb6d86f71c5e97409ad45898af11cbc995b4ee8112d59095a28d376c935" 438 | 439 | [[package]] 440 | name = "content_inspector" 441 | version = "0.2.4" 442 | source = "registry+https://github.com/rust-lang/crates.io-index" 443 | checksum = "b7bda66e858c683005a53a9a60c69a4aca7eeaa45d124526e389f7aec8e62f38" 444 | dependencies = [ 445 | "memchr", 446 | ] 447 | 448 | [[package]] 449 | name = "convert_case" 450 | version = "0.4.0" 451 | source = "registry+https://github.com/rust-lang/crates.io-index" 452 | checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" 453 | 454 | [[package]] 455 | name = "cookie" 456 | version = "0.14.4" 457 | source = "registry+https://github.com/rust-lang/crates.io-index" 458 | checksum = "03a5d7b21829bc7b4bf4754a978a241ae54ea55a40f92bb20216e54096f4b951" 459 | dependencies = [ 460 | "aes-gcm", 461 | "base64", 462 | "hkdf", 463 | "hmac", 464 | "percent-encoding", 465 | "rand 0.8.5", 466 | "sha2", 467 | "time 0.2.27", 468 | "version_check", 469 | ] 470 | 471 | [[package]] 472 | name = "cpufeatures" 473 | version = "0.2.5" 474 | source = "registry+https://github.com/rust-lang/crates.io-index" 475 | checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" 476 | dependencies = [ 477 | "libc", 478 | ] 479 | 480 | [[package]] 481 | name = "cpuid-bool" 482 | version = "0.2.0" 483 | source = "registry+https://github.com/rust-lang/crates.io-index" 484 | checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba" 485 | 486 | [[package]] 487 | name = "crc32fast" 488 | version = "1.3.2" 489 | source = "registry+https://github.com/rust-lang/crates.io-index" 490 | checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" 491 | dependencies = [ 492 | "cfg-if", 493 | ] 494 | 495 | [[package]] 496 | name = "crossbeam-utils" 497 | version = "0.8.11" 498 | source = "registry+https://github.com/rust-lang/crates.io-index" 499 | checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" 500 | dependencies = [ 501 | "cfg-if", 502 | "once_cell", 503 | ] 504 | 505 | [[package]] 506 | name = "crypto-mac" 507 | version = "0.10.1" 508 | source = "registry+https://github.com/rust-lang/crates.io-index" 509 | checksum = "bff07008ec701e8028e2ceb8f83f0e4274ee62bd2dbdc4fefff2e9a91824081a" 510 | dependencies = [ 511 | "generic-array", 512 | "subtle", 513 | ] 514 | 515 | [[package]] 516 | name = "cssparser" 517 | version = "0.27.2" 518 | source = "registry+https://github.com/rust-lang/crates.io-index" 519 | checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a" 520 | dependencies = [ 521 | "cssparser-macros", 522 | "dtoa-short", 523 | "itoa 0.4.8", 524 | "matches", 525 | "phf", 526 | "proc-macro2", 527 | "quote", 528 | "smallvec", 529 | "syn", 530 | ] 531 | 532 | [[package]] 533 | name = "cssparser-macros" 534 | version = "0.6.0" 535 | source = "registry+https://github.com/rust-lang/crates.io-index" 536 | checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e" 537 | dependencies = [ 538 | "quote", 539 | "syn", 540 | ] 541 | 542 | [[package]] 543 | name = "ctor" 544 | version = "0.1.23" 545 | source = "registry+https://github.com/rust-lang/crates.io-index" 546 | checksum = "cdffe87e1d521a10f9696f833fe502293ea446d7f256c06128293a4119bdf4cb" 547 | dependencies = [ 548 | "quote", 549 | "syn", 550 | ] 551 | 552 | [[package]] 553 | name = "ctr" 554 | version = "0.6.0" 555 | source = "registry+https://github.com/rust-lang/crates.io-index" 556 | checksum = "fb4a30d54f7443bf3d6191dcd486aca19e67cb3c49fa7a06a319966346707e7f" 557 | dependencies = [ 558 | "cipher", 559 | ] 560 | 561 | [[package]] 562 | name = "curl" 563 | version = "0.4.44" 564 | source = "registry+https://github.com/rust-lang/crates.io-index" 565 | checksum = "509bd11746c7ac09ebd19f0b17782eae80aadee26237658a6b4808afb5c11a22" 566 | dependencies = [ 567 | "curl-sys", 568 | "libc", 569 | "openssl-probe", 570 | "openssl-sys", 571 | "schannel", 572 | "socket2", 573 | "winapi", 574 | ] 575 | 576 | [[package]] 577 | name = "curl-sys" 578 | version = "0.4.56+curl-7.83.1" 579 | source = "registry+https://github.com/rust-lang/crates.io-index" 580 | checksum = "6093e169dd4de29e468fa649fbae11cdcd5551c81fe5bf1b0677adad7ef3d26f" 581 | dependencies = [ 582 | "cc", 583 | "libc", 584 | "libnghttp2-sys", 585 | "libz-sys", 586 | "openssl-sys", 587 | "pkg-config", 588 | "vcpkg", 589 | "winapi", 590 | ] 591 | 592 | [[package]] 593 | name = "derive_more" 594 | version = "0.99.17" 595 | source = "registry+https://github.com/rust-lang/crates.io-index" 596 | checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" 597 | dependencies = [ 598 | "convert_case", 599 | "proc-macro2", 600 | "quote", 601 | "rustc_version 0.4.0", 602 | "syn", 603 | ] 604 | 605 | [[package]] 606 | name = "digest" 607 | version = "0.9.0" 608 | source = "registry+https://github.com/rust-lang/crates.io-index" 609 | checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" 610 | dependencies = [ 611 | "generic-array", 612 | ] 613 | 614 | [[package]] 615 | name = "dirs" 616 | version = "3.0.2" 617 | source = "registry+https://github.com/rust-lang/crates.io-index" 618 | checksum = "30baa043103c9d0c2a57cf537cc2f35623889dc0d405e6c3cccfadbc81c71309" 619 | dependencies = [ 620 | "dirs-sys", 621 | ] 622 | 623 | [[package]] 624 | name = "dirs-sys" 625 | version = "0.3.7" 626 | source = "registry+https://github.com/rust-lang/crates.io-index" 627 | checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" 628 | dependencies = [ 629 | "libc", 630 | "redox_users", 631 | "winapi", 632 | ] 633 | 634 | [[package]] 635 | name = "discard" 636 | version = "1.0.4" 637 | source = "registry+https://github.com/rust-lang/crates.io-index" 638 | checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0" 639 | 640 | [[package]] 641 | name = "dtoa" 642 | version = "0.4.8" 643 | source = "registry+https://github.com/rust-lang/crates.io-index" 644 | checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" 645 | 646 | [[package]] 647 | name = "dtoa-short" 648 | version = "0.3.3" 649 | source = "registry+https://github.com/rust-lang/crates.io-index" 650 | checksum = "bde03329ae10e79ede66c9ce4dc930aa8599043b0743008548680f25b91502d6" 651 | dependencies = [ 652 | "dtoa", 653 | ] 654 | 655 | [[package]] 656 | name = "ego-tree" 657 | version = "0.6.2" 658 | source = "registry+https://github.com/rust-lang/crates.io-index" 659 | checksum = "3a68a4904193147e0a8dec3314640e6db742afd5f6e634f428a6af230d9b3591" 660 | 661 | [[package]] 662 | name = "encode_unicode" 663 | version = "0.3.6" 664 | source = "registry+https://github.com/rust-lang/crates.io-index" 665 | checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" 666 | 667 | [[package]] 668 | name = "encoding" 669 | version = "0.2.33" 670 | source = "registry+https://github.com/rust-lang/crates.io-index" 671 | checksum = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec" 672 | dependencies = [ 673 | "encoding-index-japanese", 674 | "encoding-index-korean", 675 | "encoding-index-simpchinese", 676 | "encoding-index-singlebyte", 677 | "encoding-index-tradchinese", 678 | ] 679 | 680 | [[package]] 681 | name = "encoding-index-japanese" 682 | version = "1.20141219.5" 683 | source = "registry+https://github.com/rust-lang/crates.io-index" 684 | checksum = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91" 685 | dependencies = [ 686 | "encoding_index_tests", 687 | ] 688 | 689 | [[package]] 690 | name = "encoding-index-korean" 691 | version = "1.20141219.5" 692 | source = "registry+https://github.com/rust-lang/crates.io-index" 693 | checksum = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81" 694 | dependencies = [ 695 | "encoding_index_tests", 696 | ] 697 | 698 | [[package]] 699 | name = "encoding-index-simpchinese" 700 | version = "1.20141219.5" 701 | source = "registry+https://github.com/rust-lang/crates.io-index" 702 | checksum = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7" 703 | dependencies = [ 704 | "encoding_index_tests", 705 | ] 706 | 707 | [[package]] 708 | name = "encoding-index-singlebyte" 709 | version = "1.20141219.5" 710 | source = "registry+https://github.com/rust-lang/crates.io-index" 711 | checksum = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a" 712 | dependencies = [ 713 | "encoding_index_tests", 714 | ] 715 | 716 | [[package]] 717 | name = "encoding-index-tradchinese" 718 | version = "1.20141219.5" 719 | source = "registry+https://github.com/rust-lang/crates.io-index" 720 | checksum = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18" 721 | dependencies = [ 722 | "encoding_index_tests", 723 | ] 724 | 725 | [[package]] 726 | name = "encoding_index_tests" 727 | version = "0.1.4" 728 | source = "registry+https://github.com/rust-lang/crates.io-index" 729 | checksum = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569" 730 | 731 | [[package]] 732 | name = "encoding_rs" 733 | version = "0.8.31" 734 | source = "registry+https://github.com/rust-lang/crates.io-index" 735 | checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" 736 | dependencies = [ 737 | "cfg-if", 738 | ] 739 | 740 | [[package]] 741 | name = "error-chain" 742 | version = "0.12.4" 743 | source = "registry+https://github.com/rust-lang/crates.io-index" 744 | checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc" 745 | dependencies = [ 746 | "version_check", 747 | ] 748 | 749 | [[package]] 750 | name = "event-listener" 751 | version = "2.5.3" 752 | source = "registry+https://github.com/rust-lang/crates.io-index" 753 | checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" 754 | 755 | [[package]] 756 | name = "fastrand" 757 | version = "1.8.0" 758 | source = "registry+https://github.com/rust-lang/crates.io-index" 759 | checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" 760 | dependencies = [ 761 | "instant", 762 | ] 763 | 764 | [[package]] 765 | name = "flate2" 766 | version = "1.0.24" 767 | source = "registry+https://github.com/rust-lang/crates.io-index" 768 | checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" 769 | dependencies = [ 770 | "crc32fast", 771 | "miniz_oxide", 772 | ] 773 | 774 | [[package]] 775 | name = "flume" 776 | version = "0.9.2" 777 | source = "registry+https://github.com/rust-lang/crates.io-index" 778 | checksum = "1bebadab126f8120d410b677ed95eee4ba6eb7c6dd8e34a5ec88a08050e26132" 779 | dependencies = [ 780 | "futures-core", 781 | "futures-sink", 782 | "spinning_top", 783 | ] 784 | 785 | [[package]] 786 | name = "fnv" 787 | version = "1.0.7" 788 | source = "registry+https://github.com/rust-lang/crates.io-index" 789 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 790 | 791 | [[package]] 792 | name = "form_urlencoded" 793 | version = "1.1.0" 794 | source = "registry+https://github.com/rust-lang/crates.io-index" 795 | checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" 796 | dependencies = [ 797 | "percent-encoding", 798 | ] 799 | 800 | [[package]] 801 | name = "futf" 802 | version = "0.1.5" 803 | source = "registry+https://github.com/rust-lang/crates.io-index" 804 | checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" 805 | dependencies = [ 806 | "mac", 807 | "new_debug_unreachable", 808 | ] 809 | 810 | [[package]] 811 | name = "futures-channel" 812 | version = "0.3.24" 813 | source = "registry+https://github.com/rust-lang/crates.io-index" 814 | checksum = "30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050" 815 | dependencies = [ 816 | "futures-core", 817 | ] 818 | 819 | [[package]] 820 | name = "futures-core" 821 | version = "0.3.24" 822 | source = "registry+https://github.com/rust-lang/crates.io-index" 823 | checksum = "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf" 824 | 825 | [[package]] 826 | name = "futures-io" 827 | version = "0.3.24" 828 | source = "registry+https://github.com/rust-lang/crates.io-index" 829 | checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68" 830 | 831 | [[package]] 832 | name = "futures-lite" 833 | version = "1.12.0" 834 | source = "registry+https://github.com/rust-lang/crates.io-index" 835 | checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" 836 | dependencies = [ 837 | "fastrand", 838 | "futures-core", 839 | "futures-io", 840 | "memchr", 841 | "parking", 842 | "pin-project-lite", 843 | "waker-fn", 844 | ] 845 | 846 | [[package]] 847 | name = "futures-macro" 848 | version = "0.3.24" 849 | source = "registry+https://github.com/rust-lang/crates.io-index" 850 | checksum = "42cd15d1c7456c04dbdf7e88bcd69760d74f3a798d6444e16974b505b0e62f17" 851 | dependencies = [ 852 | "proc-macro2", 853 | "quote", 854 | "syn", 855 | ] 856 | 857 | [[package]] 858 | name = "futures-sink" 859 | version = "0.3.24" 860 | source = "registry+https://github.com/rust-lang/crates.io-index" 861 | checksum = "21b20ba5a92e727ba30e72834706623d94ac93a725410b6a6b6fbc1b07f7ba56" 862 | 863 | [[package]] 864 | name = "futures-task" 865 | version = "0.3.24" 866 | source = "registry+https://github.com/rust-lang/crates.io-index" 867 | checksum = "a6508c467c73851293f390476d4491cf4d227dbabcd4170f3bb6044959b294f1" 868 | 869 | [[package]] 870 | name = "futures-util" 871 | version = "0.3.24" 872 | source = "registry+https://github.com/rust-lang/crates.io-index" 873 | checksum = "44fb6cb1be61cc1d2e43b262516aafcf63b241cffdb1d3fa115f91d9c7b09c90" 874 | dependencies = [ 875 | "futures-core", 876 | "futures-io", 877 | "futures-macro", 878 | "futures-task", 879 | "memchr", 880 | "pin-project-lite", 881 | "pin-utils", 882 | "slab", 883 | ] 884 | 885 | [[package]] 886 | name = "fxhash" 887 | version = "0.2.1" 888 | source = "registry+https://github.com/rust-lang/crates.io-index" 889 | checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" 890 | dependencies = [ 891 | "byteorder", 892 | ] 893 | 894 | [[package]] 895 | name = "generic-array" 896 | version = "0.14.6" 897 | source = "registry+https://github.com/rust-lang/crates.io-index" 898 | checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" 899 | dependencies = [ 900 | "typenum", 901 | "version_check", 902 | ] 903 | 904 | [[package]] 905 | name = "getopts" 906 | version = "0.2.21" 907 | source = "registry+https://github.com/rust-lang/crates.io-index" 908 | checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5" 909 | dependencies = [ 910 | "unicode-width", 911 | ] 912 | 913 | [[package]] 914 | name = "getrandom" 915 | version = "0.1.16" 916 | source = "registry+https://github.com/rust-lang/crates.io-index" 917 | checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" 918 | dependencies = [ 919 | "cfg-if", 920 | "libc", 921 | "wasi 0.9.0+wasi-snapshot-preview1", 922 | ] 923 | 924 | [[package]] 925 | name = "getrandom" 926 | version = "0.2.7" 927 | source = "registry+https://github.com/rust-lang/crates.io-index" 928 | checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" 929 | dependencies = [ 930 | "cfg-if", 931 | "libc", 932 | "wasi 0.11.0+wasi-snapshot-preview1", 933 | ] 934 | 935 | [[package]] 936 | name = "ghash" 937 | version = "0.3.1" 938 | source = "registry+https://github.com/rust-lang/crates.io-index" 939 | checksum = "97304e4cd182c3846f7575ced3890c53012ce534ad9114046b0a9e00bb30a375" 940 | dependencies = [ 941 | "opaque-debug", 942 | "polyval", 943 | ] 944 | 945 | [[package]] 946 | name = "git2" 947 | version = "0.13.25" 948 | source = "registry+https://github.com/rust-lang/crates.io-index" 949 | checksum = "f29229cc1b24c0e6062f6e742aa3e256492a5323365e5ed3413599f8a5eff7d6" 950 | dependencies = [ 951 | "bitflags", 952 | "libc", 953 | "libgit2-sys", 954 | "log", 955 | "url", 956 | ] 957 | 958 | [[package]] 959 | name = "glob" 960 | version = "0.3.0" 961 | source = "registry+https://github.com/rust-lang/crates.io-index" 962 | checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" 963 | 964 | [[package]] 965 | name = "globset" 966 | version = "0.4.9" 967 | source = "registry+https://github.com/rust-lang/crates.io-index" 968 | checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a" 969 | dependencies = [ 970 | "aho-corasick", 971 | "bstr", 972 | "fnv", 973 | "log", 974 | "regex", 975 | ] 976 | 977 | [[package]] 978 | name = "gloo-timers" 979 | version = "0.2.4" 980 | source = "registry+https://github.com/rust-lang/crates.io-index" 981 | checksum = "5fb7d06c1c8cc2a29bee7ec961009a0b2caa0793ee4900c2ffb348734ba1c8f9" 982 | dependencies = [ 983 | "futures-channel", 984 | "futures-core", 985 | "js-sys", 986 | "wasm-bindgen", 987 | ] 988 | 989 | [[package]] 990 | name = "hashbrown" 991 | version = "0.12.3" 992 | source = "registry+https://github.com/rust-lang/crates.io-index" 993 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 994 | 995 | [[package]] 996 | name = "hermit-abi" 997 | version = "0.1.19" 998 | source = "registry+https://github.com/rust-lang/crates.io-index" 999 | checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" 1000 | dependencies = [ 1001 | "libc", 1002 | ] 1003 | 1004 | [[package]] 1005 | name = "hkdf" 1006 | version = "0.10.0" 1007 | source = "registry+https://github.com/rust-lang/crates.io-index" 1008 | checksum = "51ab2f639c231793c5f6114bdb9bbe50a7dbbfcd7c7c6bd8475dec2d991e964f" 1009 | dependencies = [ 1010 | "digest", 1011 | "hmac", 1012 | ] 1013 | 1014 | [[package]] 1015 | name = "hmac" 1016 | version = "0.10.1" 1017 | source = "registry+https://github.com/rust-lang/crates.io-index" 1018 | checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15" 1019 | dependencies = [ 1020 | "crypto-mac", 1021 | "digest", 1022 | ] 1023 | 1024 | [[package]] 1025 | name = "html2text" 1026 | version = "0.2.1" 1027 | source = "registry+https://github.com/rust-lang/crates.io-index" 1028 | checksum = "a26379dcb715e237b96102a12b505c553e2bffa74bae2e54658748d298660ef1" 1029 | dependencies = [ 1030 | "html5ever", 1031 | "markup5ever_rcdom", 1032 | "unicode-width", 1033 | ] 1034 | 1035 | [[package]] 1036 | name = "html5ever" 1037 | version = "0.25.2" 1038 | source = "registry+https://github.com/rust-lang/crates.io-index" 1039 | checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148" 1040 | dependencies = [ 1041 | "log", 1042 | "mac", 1043 | "markup5ever", 1044 | "proc-macro2", 1045 | "quote", 1046 | "syn", 1047 | ] 1048 | 1049 | [[package]] 1050 | name = "http" 1051 | version = "0.2.8" 1052 | source = "registry+https://github.com/rust-lang/crates.io-index" 1053 | checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" 1054 | dependencies = [ 1055 | "bytes 1.2.1", 1056 | "fnv", 1057 | "itoa 1.0.3", 1058 | ] 1059 | 1060 | [[package]] 1061 | name = "http-client" 1062 | version = "6.5.3" 1063 | source = "registry+https://github.com/rust-lang/crates.io-index" 1064 | checksum = "1947510dc91e2bf586ea5ffb412caad7673264e14bb39fb9078da114a94ce1a5" 1065 | dependencies = [ 1066 | "async-std", 1067 | "async-trait", 1068 | "cfg-if", 1069 | "http-types", 1070 | "isahc", 1071 | "log", 1072 | ] 1073 | 1074 | [[package]] 1075 | name = "http-types" 1076 | version = "2.12.0" 1077 | source = "registry+https://github.com/rust-lang/crates.io-index" 1078 | checksum = "6e9b187a72d63adbfba487f48095306ac823049cb504ee195541e91c7775f5ad" 1079 | dependencies = [ 1080 | "anyhow", 1081 | "async-channel", 1082 | "async-std", 1083 | "base64", 1084 | "cookie", 1085 | "futures-lite", 1086 | "infer", 1087 | "pin-project-lite", 1088 | "rand 0.7.3", 1089 | "serde", 1090 | "serde_json", 1091 | "serde_qs", 1092 | "serde_urlencoded", 1093 | "url", 1094 | ] 1095 | 1096 | [[package]] 1097 | name = "idna" 1098 | version = "0.3.0" 1099 | source = "registry+https://github.com/rust-lang/crates.io-index" 1100 | checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" 1101 | dependencies = [ 1102 | "unicode-bidi", 1103 | "unicode-normalization", 1104 | ] 1105 | 1106 | [[package]] 1107 | name = "indexmap" 1108 | version = "1.9.1" 1109 | source = "registry+https://github.com/rust-lang/crates.io-index" 1110 | checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" 1111 | dependencies = [ 1112 | "autocfg", 1113 | "hashbrown", 1114 | ] 1115 | 1116 | [[package]] 1117 | name = "infer" 1118 | version = "0.2.3" 1119 | source = "registry+https://github.com/rust-lang/crates.io-index" 1120 | checksum = "64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac" 1121 | 1122 | [[package]] 1123 | name = "instant" 1124 | version = "0.1.12" 1125 | source = "registry+https://github.com/rust-lang/crates.io-index" 1126 | checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" 1127 | dependencies = [ 1128 | "cfg-if", 1129 | ] 1130 | 1131 | [[package]] 1132 | name = "isahc" 1133 | version = "0.9.14" 1134 | source = "registry+https://github.com/rust-lang/crates.io-index" 1135 | checksum = "e2948a0ce43e2c2ef11d7edf6816508998d99e13badd1150be0914205df9388a" 1136 | dependencies = [ 1137 | "bytes 0.5.6", 1138 | "crossbeam-utils", 1139 | "curl", 1140 | "curl-sys", 1141 | "flume", 1142 | "futures-lite", 1143 | "http", 1144 | "log", 1145 | "once_cell", 1146 | "slab", 1147 | "sluice", 1148 | "tracing", 1149 | "tracing-futures", 1150 | "url", 1151 | "waker-fn", 1152 | ] 1153 | 1154 | [[package]] 1155 | name = "itoa" 1156 | version = "0.4.8" 1157 | source = "registry+https://github.com/rust-lang/crates.io-index" 1158 | checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" 1159 | 1160 | [[package]] 1161 | name = "itoa" 1162 | version = "1.0.3" 1163 | source = "registry+https://github.com/rust-lang/crates.io-index" 1164 | checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754" 1165 | 1166 | [[package]] 1167 | name = "jobserver" 1168 | version = "0.1.25" 1169 | source = "registry+https://github.com/rust-lang/crates.io-index" 1170 | checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b" 1171 | dependencies = [ 1172 | "libc", 1173 | ] 1174 | 1175 | [[package]] 1176 | name = "js-sys" 1177 | version = "0.3.60" 1178 | source = "registry+https://github.com/rust-lang/crates.io-index" 1179 | checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" 1180 | dependencies = [ 1181 | "wasm-bindgen", 1182 | ] 1183 | 1184 | [[package]] 1185 | name = "kv-log-macro" 1186 | version = "1.0.7" 1187 | source = "registry+https://github.com/rust-lang/crates.io-index" 1188 | checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" 1189 | dependencies = [ 1190 | "log", 1191 | ] 1192 | 1193 | [[package]] 1194 | name = "lazy_static" 1195 | version = "1.4.0" 1196 | source = "registry+https://github.com/rust-lang/crates.io-index" 1197 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 1198 | 1199 | [[package]] 1200 | name = "lazycell" 1201 | version = "1.3.0" 1202 | source = "registry+https://github.com/rust-lang/crates.io-index" 1203 | checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" 1204 | 1205 | [[package]] 1206 | name = "libc" 1207 | version = "0.2.133" 1208 | source = "registry+https://github.com/rust-lang/crates.io-index" 1209 | checksum = "c0f80d65747a3e43d1596c7c5492d95d5edddaabd45a7fcdb02b95f644164966" 1210 | 1211 | [[package]] 1212 | name = "libgit2-sys" 1213 | version = "0.12.26+1.3.0" 1214 | source = "registry+https://github.com/rust-lang/crates.io-index" 1215 | checksum = "19e1c899248e606fbfe68dcb31d8b0176ebab833b103824af31bddf4b7457494" 1216 | dependencies = [ 1217 | "cc", 1218 | "libc", 1219 | "libz-sys", 1220 | "pkg-config", 1221 | ] 1222 | 1223 | [[package]] 1224 | name = "libnghttp2-sys" 1225 | version = "0.1.7+1.45.0" 1226 | source = "registry+https://github.com/rust-lang/crates.io-index" 1227 | checksum = "57ed28aba195b38d5ff02b9170cbff627e336a20925e43b4945390401c5dc93f" 1228 | dependencies = [ 1229 | "cc", 1230 | "libc", 1231 | ] 1232 | 1233 | [[package]] 1234 | name = "libz-sys" 1235 | version = "1.1.8" 1236 | source = "registry+https://github.com/rust-lang/crates.io-index" 1237 | checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf" 1238 | dependencies = [ 1239 | "cc", 1240 | "libc", 1241 | "pkg-config", 1242 | "vcpkg", 1243 | ] 1244 | 1245 | [[package]] 1246 | name = "line-wrap" 1247 | version = "0.1.1" 1248 | source = "registry+https://github.com/rust-lang/crates.io-index" 1249 | checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9" 1250 | dependencies = [ 1251 | "safemem", 1252 | ] 1253 | 1254 | [[package]] 1255 | name = "linked-hash-map" 1256 | version = "0.5.6" 1257 | source = "registry+https://github.com/rust-lang/crates.io-index" 1258 | checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" 1259 | 1260 | [[package]] 1261 | name = "lock_api" 1262 | version = "0.4.9" 1263 | source = "registry+https://github.com/rust-lang/crates.io-index" 1264 | checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" 1265 | dependencies = [ 1266 | "autocfg", 1267 | "scopeguard", 1268 | ] 1269 | 1270 | [[package]] 1271 | name = "log" 1272 | version = "0.4.17" 1273 | source = "registry+https://github.com/rust-lang/crates.io-index" 1274 | checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" 1275 | dependencies = [ 1276 | "cfg-if", 1277 | "value-bag", 1278 | ] 1279 | 1280 | [[package]] 1281 | name = "mac" 1282 | version = "0.1.1" 1283 | source = "registry+https://github.com/rust-lang/crates.io-index" 1284 | checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" 1285 | 1286 | [[package]] 1287 | name = "markup5ever" 1288 | version = "0.10.1" 1289 | source = "registry+https://github.com/rust-lang/crates.io-index" 1290 | checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd" 1291 | dependencies = [ 1292 | "log", 1293 | "phf", 1294 | "phf_codegen", 1295 | "string_cache", 1296 | "string_cache_codegen", 1297 | "tendril", 1298 | ] 1299 | 1300 | [[package]] 1301 | name = "markup5ever_rcdom" 1302 | version = "0.1.0" 1303 | source = "registry+https://github.com/rust-lang/crates.io-index" 1304 | checksum = "f015da43bcd8d4f144559a3423f4591d69b8ce0652c905374da7205df336ae2b" 1305 | dependencies = [ 1306 | "html5ever", 1307 | "markup5ever", 1308 | "tendril", 1309 | "xml5ever", 1310 | ] 1311 | 1312 | [[package]] 1313 | name = "matches" 1314 | version = "0.1.9" 1315 | source = "registry+https://github.com/rust-lang/crates.io-index" 1316 | checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" 1317 | 1318 | [[package]] 1319 | name = "mdn" 1320 | version = "0.1.3" 1321 | dependencies = [ 1322 | "anyhow", 1323 | "async-std", 1324 | "bat", 1325 | "html2text", 1326 | "scraper", 1327 | "surf", 1328 | "term_size", 1329 | "urlencoding", 1330 | ] 1331 | 1332 | [[package]] 1333 | name = "memchr" 1334 | version = "2.5.0" 1335 | source = "registry+https://github.com/rust-lang/crates.io-index" 1336 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 1337 | 1338 | [[package]] 1339 | name = "mime" 1340 | version = "0.3.16" 1341 | source = "registry+https://github.com/rust-lang/crates.io-index" 1342 | checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" 1343 | 1344 | [[package]] 1345 | name = "mime_guess" 1346 | version = "2.0.4" 1347 | source = "registry+https://github.com/rust-lang/crates.io-index" 1348 | checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" 1349 | dependencies = [ 1350 | "mime", 1351 | "unicase", 1352 | ] 1353 | 1354 | [[package]] 1355 | name = "miniz_oxide" 1356 | version = "0.5.4" 1357 | source = "registry+https://github.com/rust-lang/crates.io-index" 1358 | checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" 1359 | dependencies = [ 1360 | "adler", 1361 | ] 1362 | 1363 | [[package]] 1364 | name = "new_debug_unreachable" 1365 | version = "1.0.4" 1366 | source = "registry+https://github.com/rust-lang/crates.io-index" 1367 | checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" 1368 | 1369 | [[package]] 1370 | name = "nodrop" 1371 | version = "0.1.14" 1372 | source = "registry+https://github.com/rust-lang/crates.io-index" 1373 | checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" 1374 | 1375 | [[package]] 1376 | name = "num_threads" 1377 | version = "0.1.6" 1378 | source = "registry+https://github.com/rust-lang/crates.io-index" 1379 | checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" 1380 | dependencies = [ 1381 | "libc", 1382 | ] 1383 | 1384 | [[package]] 1385 | name = "once_cell" 1386 | version = "1.15.0" 1387 | source = "registry+https://github.com/rust-lang/crates.io-index" 1388 | checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" 1389 | 1390 | [[package]] 1391 | name = "onig" 1392 | version = "6.4.0" 1393 | source = "registry+https://github.com/rust-lang/crates.io-index" 1394 | checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f" 1395 | dependencies = [ 1396 | "bitflags", 1397 | "libc", 1398 | "once_cell", 1399 | "onig_sys", 1400 | ] 1401 | 1402 | [[package]] 1403 | name = "onig_sys" 1404 | version = "69.8.1" 1405 | source = "registry+https://github.com/rust-lang/crates.io-index" 1406 | checksum = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7" 1407 | dependencies = [ 1408 | "cc", 1409 | "pkg-config", 1410 | ] 1411 | 1412 | [[package]] 1413 | name = "opaque-debug" 1414 | version = "0.3.0" 1415 | source = "registry+https://github.com/rust-lang/crates.io-index" 1416 | checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" 1417 | 1418 | [[package]] 1419 | name = "openssl-probe" 1420 | version = "0.1.5" 1421 | source = "registry+https://github.com/rust-lang/crates.io-index" 1422 | checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" 1423 | 1424 | [[package]] 1425 | name = "openssl-sys" 1426 | version = "0.9.76" 1427 | source = "registry+https://github.com/rust-lang/crates.io-index" 1428 | checksum = "5230151e44c0f05157effb743e8d517472843121cf9243e8b81393edb5acd9ce" 1429 | dependencies = [ 1430 | "autocfg", 1431 | "cc", 1432 | "libc", 1433 | "pkg-config", 1434 | "vcpkg", 1435 | ] 1436 | 1437 | [[package]] 1438 | name = "parking" 1439 | version = "2.0.0" 1440 | source = "registry+https://github.com/rust-lang/crates.io-index" 1441 | checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" 1442 | 1443 | [[package]] 1444 | name = "parking_lot" 1445 | version = "0.12.1" 1446 | source = "registry+https://github.com/rust-lang/crates.io-index" 1447 | checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 1448 | dependencies = [ 1449 | "lock_api", 1450 | "parking_lot_core", 1451 | ] 1452 | 1453 | [[package]] 1454 | name = "parking_lot_core" 1455 | version = "0.9.3" 1456 | source = "registry+https://github.com/rust-lang/crates.io-index" 1457 | checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" 1458 | dependencies = [ 1459 | "cfg-if", 1460 | "libc", 1461 | "redox_syscall", 1462 | "smallvec", 1463 | "windows-sys", 1464 | ] 1465 | 1466 | [[package]] 1467 | name = "path_abs" 1468 | version = "0.5.1" 1469 | source = "registry+https://github.com/rust-lang/crates.io-index" 1470 | checksum = "05ef02f6342ac01d8a93b65f96db53fe68a92a15f41144f97fb00a9e669633c3" 1471 | dependencies = [ 1472 | "std_prelude", 1473 | ] 1474 | 1475 | [[package]] 1476 | name = "percent-encoding" 1477 | version = "2.2.0" 1478 | source = "registry+https://github.com/rust-lang/crates.io-index" 1479 | checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" 1480 | 1481 | [[package]] 1482 | name = "pest" 1483 | version = "2.3.1" 1484 | source = "registry+https://github.com/rust-lang/crates.io-index" 1485 | checksum = "cb779fcf4bb850fbbb0edc96ff6cf34fd90c4b1a112ce042653280d9a7364048" 1486 | dependencies = [ 1487 | "thiserror", 1488 | "ucd-trie", 1489 | ] 1490 | 1491 | [[package]] 1492 | name = "phf" 1493 | version = "0.8.0" 1494 | source = "registry+https://github.com/rust-lang/crates.io-index" 1495 | checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" 1496 | dependencies = [ 1497 | "phf_macros", 1498 | "phf_shared 0.8.0", 1499 | "proc-macro-hack", 1500 | ] 1501 | 1502 | [[package]] 1503 | name = "phf_codegen" 1504 | version = "0.8.0" 1505 | source = "registry+https://github.com/rust-lang/crates.io-index" 1506 | checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" 1507 | dependencies = [ 1508 | "phf_generator 0.8.0", 1509 | "phf_shared 0.8.0", 1510 | ] 1511 | 1512 | [[package]] 1513 | name = "phf_generator" 1514 | version = "0.8.0" 1515 | source = "registry+https://github.com/rust-lang/crates.io-index" 1516 | checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" 1517 | dependencies = [ 1518 | "phf_shared 0.8.0", 1519 | "rand 0.7.3", 1520 | ] 1521 | 1522 | [[package]] 1523 | name = "phf_generator" 1524 | version = "0.10.0" 1525 | source = "registry+https://github.com/rust-lang/crates.io-index" 1526 | checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" 1527 | dependencies = [ 1528 | "phf_shared 0.10.0", 1529 | "rand 0.8.5", 1530 | ] 1531 | 1532 | [[package]] 1533 | name = "phf_macros" 1534 | version = "0.8.0" 1535 | source = "registry+https://github.com/rust-lang/crates.io-index" 1536 | checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c" 1537 | dependencies = [ 1538 | "phf_generator 0.8.0", 1539 | "phf_shared 0.8.0", 1540 | "proc-macro-hack", 1541 | "proc-macro2", 1542 | "quote", 1543 | "syn", 1544 | ] 1545 | 1546 | [[package]] 1547 | name = "phf_shared" 1548 | version = "0.8.0" 1549 | source = "registry+https://github.com/rust-lang/crates.io-index" 1550 | checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" 1551 | dependencies = [ 1552 | "siphasher", 1553 | ] 1554 | 1555 | [[package]] 1556 | name = "phf_shared" 1557 | version = "0.10.0" 1558 | source = "registry+https://github.com/rust-lang/crates.io-index" 1559 | checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" 1560 | dependencies = [ 1561 | "siphasher", 1562 | ] 1563 | 1564 | [[package]] 1565 | name = "pin-project" 1566 | version = "1.0.12" 1567 | source = "registry+https://github.com/rust-lang/crates.io-index" 1568 | checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" 1569 | dependencies = [ 1570 | "pin-project-internal", 1571 | ] 1572 | 1573 | [[package]] 1574 | name = "pin-project-internal" 1575 | version = "1.0.12" 1576 | source = "registry+https://github.com/rust-lang/crates.io-index" 1577 | checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" 1578 | dependencies = [ 1579 | "proc-macro2", 1580 | "quote", 1581 | "syn", 1582 | ] 1583 | 1584 | [[package]] 1585 | name = "pin-project-lite" 1586 | version = "0.2.9" 1587 | source = "registry+https://github.com/rust-lang/crates.io-index" 1588 | checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" 1589 | 1590 | [[package]] 1591 | name = "pin-utils" 1592 | version = "0.1.0" 1593 | source = "registry+https://github.com/rust-lang/crates.io-index" 1594 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 1595 | 1596 | [[package]] 1597 | name = "pkg-config" 1598 | version = "0.3.25" 1599 | source = "registry+https://github.com/rust-lang/crates.io-index" 1600 | checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" 1601 | 1602 | [[package]] 1603 | name = "plist" 1604 | version = "1.3.1" 1605 | source = "registry+https://github.com/rust-lang/crates.io-index" 1606 | checksum = "bd39bc6cdc9355ad1dc5eeedefee696bb35c34caf21768741e81826c0bbd7225" 1607 | dependencies = [ 1608 | "base64", 1609 | "indexmap", 1610 | "line-wrap", 1611 | "serde", 1612 | "time 0.3.14", 1613 | "xml-rs", 1614 | ] 1615 | 1616 | [[package]] 1617 | name = "polling" 1618 | version = "2.3.0" 1619 | source = "registry+https://github.com/rust-lang/crates.io-index" 1620 | checksum = "899b00b9c8ab553c743b3e11e87c5c7d423b2a2de229ba95b24a756344748011" 1621 | dependencies = [ 1622 | "autocfg", 1623 | "cfg-if", 1624 | "libc", 1625 | "log", 1626 | "wepoll-ffi", 1627 | "winapi", 1628 | ] 1629 | 1630 | [[package]] 1631 | name = "polyval" 1632 | version = "0.4.5" 1633 | source = "registry+https://github.com/rust-lang/crates.io-index" 1634 | checksum = "eebcc4aa140b9abd2bc40d9c3f7ccec842679cd79045ac3a7ac698c1a064b7cd" 1635 | dependencies = [ 1636 | "cpuid-bool", 1637 | "opaque-debug", 1638 | "universal-hash", 1639 | ] 1640 | 1641 | [[package]] 1642 | name = "ppv-lite86" 1643 | version = "0.2.16" 1644 | source = "registry+https://github.com/rust-lang/crates.io-index" 1645 | checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" 1646 | 1647 | [[package]] 1648 | name = "precomputed-hash" 1649 | version = "0.1.1" 1650 | source = "registry+https://github.com/rust-lang/crates.io-index" 1651 | checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" 1652 | 1653 | [[package]] 1654 | name = "proc-macro-hack" 1655 | version = "0.5.19" 1656 | source = "registry+https://github.com/rust-lang/crates.io-index" 1657 | checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" 1658 | 1659 | [[package]] 1660 | name = "proc-macro2" 1661 | version = "1.0.45" 1662 | source = "registry+https://github.com/rust-lang/crates.io-index" 1663 | checksum = "3edcd08cf4fea98d1ae6c9ddd3b8ccb1acac7c3693d62625969a7daa04a2ae36" 1664 | dependencies = [ 1665 | "unicode-ident", 1666 | ] 1667 | 1668 | [[package]] 1669 | name = "quote" 1670 | version = "1.0.21" 1671 | source = "registry+https://github.com/rust-lang/crates.io-index" 1672 | checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" 1673 | dependencies = [ 1674 | "proc-macro2", 1675 | ] 1676 | 1677 | [[package]] 1678 | name = "rand" 1679 | version = "0.7.3" 1680 | source = "registry+https://github.com/rust-lang/crates.io-index" 1681 | checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" 1682 | dependencies = [ 1683 | "getrandom 0.1.16", 1684 | "libc", 1685 | "rand_chacha 0.2.2", 1686 | "rand_core 0.5.1", 1687 | "rand_hc", 1688 | "rand_pcg", 1689 | ] 1690 | 1691 | [[package]] 1692 | name = "rand" 1693 | version = "0.8.5" 1694 | source = "registry+https://github.com/rust-lang/crates.io-index" 1695 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 1696 | dependencies = [ 1697 | "libc", 1698 | "rand_chacha 0.3.1", 1699 | "rand_core 0.6.4", 1700 | ] 1701 | 1702 | [[package]] 1703 | name = "rand_chacha" 1704 | version = "0.2.2" 1705 | source = "registry+https://github.com/rust-lang/crates.io-index" 1706 | checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" 1707 | dependencies = [ 1708 | "ppv-lite86", 1709 | "rand_core 0.5.1", 1710 | ] 1711 | 1712 | [[package]] 1713 | name = "rand_chacha" 1714 | version = "0.3.1" 1715 | source = "registry+https://github.com/rust-lang/crates.io-index" 1716 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 1717 | dependencies = [ 1718 | "ppv-lite86", 1719 | "rand_core 0.6.4", 1720 | ] 1721 | 1722 | [[package]] 1723 | name = "rand_core" 1724 | version = "0.5.1" 1725 | source = "registry+https://github.com/rust-lang/crates.io-index" 1726 | checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" 1727 | dependencies = [ 1728 | "getrandom 0.1.16", 1729 | ] 1730 | 1731 | [[package]] 1732 | name = "rand_core" 1733 | version = "0.6.4" 1734 | source = "registry+https://github.com/rust-lang/crates.io-index" 1735 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 1736 | dependencies = [ 1737 | "getrandom 0.2.7", 1738 | ] 1739 | 1740 | [[package]] 1741 | name = "rand_hc" 1742 | version = "0.2.0" 1743 | source = "registry+https://github.com/rust-lang/crates.io-index" 1744 | checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" 1745 | dependencies = [ 1746 | "rand_core 0.5.1", 1747 | ] 1748 | 1749 | [[package]] 1750 | name = "rand_pcg" 1751 | version = "0.2.1" 1752 | source = "registry+https://github.com/rust-lang/crates.io-index" 1753 | checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" 1754 | dependencies = [ 1755 | "rand_core 0.5.1", 1756 | ] 1757 | 1758 | [[package]] 1759 | name = "redox_syscall" 1760 | version = "0.2.16" 1761 | source = "registry+https://github.com/rust-lang/crates.io-index" 1762 | checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" 1763 | dependencies = [ 1764 | "bitflags", 1765 | ] 1766 | 1767 | [[package]] 1768 | name = "redox_users" 1769 | version = "0.4.3" 1770 | source = "registry+https://github.com/rust-lang/crates.io-index" 1771 | checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" 1772 | dependencies = [ 1773 | "getrandom 0.2.7", 1774 | "redox_syscall", 1775 | "thiserror", 1776 | ] 1777 | 1778 | [[package]] 1779 | name = "regex" 1780 | version = "1.6.0" 1781 | source = "registry+https://github.com/rust-lang/crates.io-index" 1782 | checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" 1783 | dependencies = [ 1784 | "aho-corasick", 1785 | "memchr", 1786 | "regex-syntax", 1787 | ] 1788 | 1789 | [[package]] 1790 | name = "regex-syntax" 1791 | version = "0.6.27" 1792 | source = "registry+https://github.com/rust-lang/crates.io-index" 1793 | checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" 1794 | 1795 | [[package]] 1796 | name = "rgb" 1797 | version = "0.8.34" 1798 | source = "registry+https://github.com/rust-lang/crates.io-index" 1799 | checksum = "3603b7d71ca82644f79b5a06d1220e9a58ede60bd32255f698cb1af8838b8db3" 1800 | dependencies = [ 1801 | "bytemuck", 1802 | ] 1803 | 1804 | [[package]] 1805 | name = "rustc_version" 1806 | version = "0.2.3" 1807 | source = "registry+https://github.com/rust-lang/crates.io-index" 1808 | checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" 1809 | dependencies = [ 1810 | "semver 0.9.0", 1811 | ] 1812 | 1813 | [[package]] 1814 | name = "rustc_version" 1815 | version = "0.4.0" 1816 | source = "registry+https://github.com/rust-lang/crates.io-index" 1817 | checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" 1818 | dependencies = [ 1819 | "semver 1.0.14", 1820 | ] 1821 | 1822 | [[package]] 1823 | name = "ryu" 1824 | version = "1.0.11" 1825 | source = "registry+https://github.com/rust-lang/crates.io-index" 1826 | checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" 1827 | 1828 | [[package]] 1829 | name = "safemem" 1830 | version = "0.3.3" 1831 | source = "registry+https://github.com/rust-lang/crates.io-index" 1832 | checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" 1833 | 1834 | [[package]] 1835 | name = "same-file" 1836 | version = "1.0.6" 1837 | source = "registry+https://github.com/rust-lang/crates.io-index" 1838 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 1839 | dependencies = [ 1840 | "winapi-util", 1841 | ] 1842 | 1843 | [[package]] 1844 | name = "schannel" 1845 | version = "0.1.20" 1846 | source = "registry+https://github.com/rust-lang/crates.io-index" 1847 | checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" 1848 | dependencies = [ 1849 | "lazy_static", 1850 | "windows-sys", 1851 | ] 1852 | 1853 | [[package]] 1854 | name = "scopeguard" 1855 | version = "1.1.0" 1856 | source = "registry+https://github.com/rust-lang/crates.io-index" 1857 | checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" 1858 | 1859 | [[package]] 1860 | name = "scraper" 1861 | version = "0.12.0" 1862 | source = "registry+https://github.com/rust-lang/crates.io-index" 1863 | checksum = "48e02aa790c80c2e494130dec6a522033b6a23603ffc06360e9fe6c611ea2c12" 1864 | dependencies = [ 1865 | "cssparser", 1866 | "ego-tree", 1867 | "getopts", 1868 | "html5ever", 1869 | "matches", 1870 | "selectors", 1871 | "smallvec", 1872 | "tendril", 1873 | ] 1874 | 1875 | [[package]] 1876 | name = "selectors" 1877 | version = "0.22.0" 1878 | source = "registry+https://github.com/rust-lang/crates.io-index" 1879 | checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" 1880 | dependencies = [ 1881 | "bitflags", 1882 | "cssparser", 1883 | "derive_more", 1884 | "fxhash", 1885 | "log", 1886 | "matches", 1887 | "phf", 1888 | "phf_codegen", 1889 | "precomputed-hash", 1890 | "servo_arc", 1891 | "smallvec", 1892 | "thin-slice", 1893 | ] 1894 | 1895 | [[package]] 1896 | name = "semver" 1897 | version = "0.9.0" 1898 | source = "registry+https://github.com/rust-lang/crates.io-index" 1899 | checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" 1900 | dependencies = [ 1901 | "semver-parser 0.7.0", 1902 | ] 1903 | 1904 | [[package]] 1905 | name = "semver" 1906 | version = "0.11.0" 1907 | source = "registry+https://github.com/rust-lang/crates.io-index" 1908 | checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" 1909 | dependencies = [ 1910 | "semver-parser 0.10.2", 1911 | ] 1912 | 1913 | [[package]] 1914 | name = "semver" 1915 | version = "1.0.14" 1916 | source = "registry+https://github.com/rust-lang/crates.io-index" 1917 | checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" 1918 | 1919 | [[package]] 1920 | name = "semver-parser" 1921 | version = "0.7.0" 1922 | source = "registry+https://github.com/rust-lang/crates.io-index" 1923 | checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" 1924 | 1925 | [[package]] 1926 | name = "semver-parser" 1927 | version = "0.10.2" 1928 | source = "registry+https://github.com/rust-lang/crates.io-index" 1929 | checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" 1930 | dependencies = [ 1931 | "pest", 1932 | ] 1933 | 1934 | [[package]] 1935 | name = "serde" 1936 | version = "1.0.145" 1937 | source = "registry+https://github.com/rust-lang/crates.io-index" 1938 | checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b" 1939 | dependencies = [ 1940 | "serde_derive", 1941 | ] 1942 | 1943 | [[package]] 1944 | name = "serde_derive" 1945 | version = "1.0.145" 1946 | source = "registry+https://github.com/rust-lang/crates.io-index" 1947 | checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c" 1948 | dependencies = [ 1949 | "proc-macro2", 1950 | "quote", 1951 | "syn", 1952 | ] 1953 | 1954 | [[package]] 1955 | name = "serde_json" 1956 | version = "1.0.85" 1957 | source = "registry+https://github.com/rust-lang/crates.io-index" 1958 | checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44" 1959 | dependencies = [ 1960 | "itoa 1.0.3", 1961 | "ryu", 1962 | "serde", 1963 | ] 1964 | 1965 | [[package]] 1966 | name = "serde_qs" 1967 | version = "0.8.5" 1968 | source = "registry+https://github.com/rust-lang/crates.io-index" 1969 | checksum = "c7715380eec75f029a4ef7de39a9200e0a63823176b759d055b613f5a87df6a6" 1970 | dependencies = [ 1971 | "percent-encoding", 1972 | "serde", 1973 | "thiserror", 1974 | ] 1975 | 1976 | [[package]] 1977 | name = "serde_urlencoded" 1978 | version = "0.7.1" 1979 | source = "registry+https://github.com/rust-lang/crates.io-index" 1980 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 1981 | dependencies = [ 1982 | "form_urlencoded", 1983 | "itoa 1.0.3", 1984 | "ryu", 1985 | "serde", 1986 | ] 1987 | 1988 | [[package]] 1989 | name = "serde_yaml" 1990 | version = "0.8.26" 1991 | source = "registry+https://github.com/rust-lang/crates.io-index" 1992 | checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" 1993 | dependencies = [ 1994 | "indexmap", 1995 | "ryu", 1996 | "serde", 1997 | "yaml-rust", 1998 | ] 1999 | 2000 | [[package]] 2001 | name = "servo_arc" 2002 | version = "0.1.1" 2003 | source = "registry+https://github.com/rust-lang/crates.io-index" 2004 | checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432" 2005 | dependencies = [ 2006 | "nodrop", 2007 | "stable_deref_trait", 2008 | ] 2009 | 2010 | [[package]] 2011 | name = "sha1" 2012 | version = "0.6.1" 2013 | source = "registry+https://github.com/rust-lang/crates.io-index" 2014 | checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770" 2015 | dependencies = [ 2016 | "sha1_smol", 2017 | ] 2018 | 2019 | [[package]] 2020 | name = "sha1_smol" 2021 | version = "1.0.0" 2022 | source = "registry+https://github.com/rust-lang/crates.io-index" 2023 | checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" 2024 | 2025 | [[package]] 2026 | name = "sha2" 2027 | version = "0.9.9" 2028 | source = "registry+https://github.com/rust-lang/crates.io-index" 2029 | checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" 2030 | dependencies = [ 2031 | "block-buffer", 2032 | "cfg-if", 2033 | "cpufeatures", 2034 | "digest", 2035 | "opaque-debug", 2036 | ] 2037 | 2038 | [[package]] 2039 | name = "shell-words" 2040 | version = "1.1.0" 2041 | source = "registry+https://github.com/rust-lang/crates.io-index" 2042 | checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" 2043 | 2044 | [[package]] 2045 | name = "siphasher" 2046 | version = "0.3.10" 2047 | source = "registry+https://github.com/rust-lang/crates.io-index" 2048 | checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" 2049 | 2050 | [[package]] 2051 | name = "slab" 2052 | version = "0.4.7" 2053 | source = "registry+https://github.com/rust-lang/crates.io-index" 2054 | checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" 2055 | dependencies = [ 2056 | "autocfg", 2057 | ] 2058 | 2059 | [[package]] 2060 | name = "sluice" 2061 | version = "0.5.5" 2062 | source = "registry+https://github.com/rust-lang/crates.io-index" 2063 | checksum = "6d7400c0eff44aa2fcb5e31a5f24ba9716ed90138769e4977a2ba6014ae63eb5" 2064 | dependencies = [ 2065 | "async-channel", 2066 | "futures-core", 2067 | "futures-io", 2068 | ] 2069 | 2070 | [[package]] 2071 | name = "smallvec" 2072 | version = "1.9.0" 2073 | source = "registry+https://github.com/rust-lang/crates.io-index" 2074 | checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" 2075 | 2076 | [[package]] 2077 | name = "socket2" 2078 | version = "0.4.7" 2079 | source = "registry+https://github.com/rust-lang/crates.io-index" 2080 | checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" 2081 | dependencies = [ 2082 | "libc", 2083 | "winapi", 2084 | ] 2085 | 2086 | [[package]] 2087 | name = "spinning_top" 2088 | version = "0.2.4" 2089 | source = "registry+https://github.com/rust-lang/crates.io-index" 2090 | checksum = "75adad84ee84b521fb2cca2d4fd0f1dab1d8d026bda3c5bea4ca63b5f9f9293c" 2091 | dependencies = [ 2092 | "lock_api", 2093 | ] 2094 | 2095 | [[package]] 2096 | name = "stable_deref_trait" 2097 | version = "1.2.0" 2098 | source = "registry+https://github.com/rust-lang/crates.io-index" 2099 | checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 2100 | 2101 | [[package]] 2102 | name = "standback" 2103 | version = "0.2.17" 2104 | source = "registry+https://github.com/rust-lang/crates.io-index" 2105 | checksum = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff" 2106 | dependencies = [ 2107 | "version_check", 2108 | ] 2109 | 2110 | [[package]] 2111 | name = "std_prelude" 2112 | version = "0.2.12" 2113 | source = "registry+https://github.com/rust-lang/crates.io-index" 2114 | checksum = "8207e78455ffdf55661170876f88daf85356e4edd54e0a3dbc79586ca1e50cbe" 2115 | 2116 | [[package]] 2117 | name = "stdweb" 2118 | version = "0.4.20" 2119 | source = "registry+https://github.com/rust-lang/crates.io-index" 2120 | checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5" 2121 | dependencies = [ 2122 | "discard", 2123 | "rustc_version 0.2.3", 2124 | "stdweb-derive", 2125 | "stdweb-internal-macros", 2126 | "stdweb-internal-runtime", 2127 | "wasm-bindgen", 2128 | ] 2129 | 2130 | [[package]] 2131 | name = "stdweb-derive" 2132 | version = "0.5.3" 2133 | source = "registry+https://github.com/rust-lang/crates.io-index" 2134 | checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" 2135 | dependencies = [ 2136 | "proc-macro2", 2137 | "quote", 2138 | "serde", 2139 | "serde_derive", 2140 | "syn", 2141 | ] 2142 | 2143 | [[package]] 2144 | name = "stdweb-internal-macros" 2145 | version = "0.2.9" 2146 | source = "registry+https://github.com/rust-lang/crates.io-index" 2147 | checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" 2148 | dependencies = [ 2149 | "base-x", 2150 | "proc-macro2", 2151 | "quote", 2152 | "serde", 2153 | "serde_derive", 2154 | "serde_json", 2155 | "sha1", 2156 | "syn", 2157 | ] 2158 | 2159 | [[package]] 2160 | name = "stdweb-internal-runtime" 2161 | version = "0.1.5" 2162 | source = "registry+https://github.com/rust-lang/crates.io-index" 2163 | checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" 2164 | 2165 | [[package]] 2166 | name = "string_cache" 2167 | version = "0.8.4" 2168 | source = "registry+https://github.com/rust-lang/crates.io-index" 2169 | checksum = "213494b7a2b503146286049378ce02b482200519accc31872ee8be91fa820a08" 2170 | dependencies = [ 2171 | "new_debug_unreachable", 2172 | "once_cell", 2173 | "parking_lot", 2174 | "phf_shared 0.10.0", 2175 | "precomputed-hash", 2176 | "serde", 2177 | ] 2178 | 2179 | [[package]] 2180 | name = "string_cache_codegen" 2181 | version = "0.5.2" 2182 | source = "registry+https://github.com/rust-lang/crates.io-index" 2183 | checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" 2184 | dependencies = [ 2185 | "phf_generator 0.10.0", 2186 | "phf_shared 0.10.0", 2187 | "proc-macro2", 2188 | "quote", 2189 | ] 2190 | 2191 | [[package]] 2192 | name = "strsim" 2193 | version = "0.8.0" 2194 | source = "registry+https://github.com/rust-lang/crates.io-index" 2195 | checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" 2196 | 2197 | [[package]] 2198 | name = "subtle" 2199 | version = "2.4.1" 2200 | source = "registry+https://github.com/rust-lang/crates.io-index" 2201 | checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" 2202 | 2203 | [[package]] 2204 | name = "surf" 2205 | version = "2.3.2" 2206 | source = "registry+https://github.com/rust-lang/crates.io-index" 2207 | checksum = "718b1ae6b50351982dedff021db0def601677f2120938b070eadb10ba4038dd7" 2208 | dependencies = [ 2209 | "async-std", 2210 | "async-trait", 2211 | "cfg-if", 2212 | "encoding_rs", 2213 | "futures-util", 2214 | "getrandom 0.2.7", 2215 | "http-client", 2216 | "http-types", 2217 | "log", 2218 | "mime_guess", 2219 | "once_cell", 2220 | "pin-project-lite", 2221 | "serde", 2222 | "serde_json", 2223 | "web-sys", 2224 | ] 2225 | 2226 | [[package]] 2227 | name = "syn" 2228 | version = "1.0.101" 2229 | source = "registry+https://github.com/rust-lang/crates.io-index" 2230 | checksum = "e90cde112c4b9690b8cbe810cba9ddd8bc1d7472e2cae317b69e9438c1cba7d2" 2231 | dependencies = [ 2232 | "proc-macro2", 2233 | "quote", 2234 | "unicode-ident", 2235 | ] 2236 | 2237 | [[package]] 2238 | name = "syntect" 2239 | version = "4.6.0" 2240 | source = "registry+https://github.com/rust-lang/crates.io-index" 2241 | checksum = "8b20815bbe80ee0be06e6957450a841185fcf690fe0178f14d77a05ce2caa031" 2242 | dependencies = [ 2243 | "bincode", 2244 | "bitflags", 2245 | "flate2", 2246 | "fnv", 2247 | "lazy_static", 2248 | "lazycell", 2249 | "onig", 2250 | "plist", 2251 | "regex-syntax", 2252 | "serde", 2253 | "serde_derive", 2254 | "serde_json", 2255 | "walkdir", 2256 | "yaml-rust", 2257 | ] 2258 | 2259 | [[package]] 2260 | name = "tendril" 2261 | version = "0.4.3" 2262 | source = "registry+https://github.com/rust-lang/crates.io-index" 2263 | checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" 2264 | dependencies = [ 2265 | "futf", 2266 | "mac", 2267 | "utf-8", 2268 | ] 2269 | 2270 | [[package]] 2271 | name = "term_size" 2272 | version = "0.3.2" 2273 | source = "registry+https://github.com/rust-lang/crates.io-index" 2274 | checksum = "1e4129646ca0ed8f45d09b929036bafad5377103edd06e50bf574b353d2b08d9" 2275 | dependencies = [ 2276 | "libc", 2277 | "winapi", 2278 | ] 2279 | 2280 | [[package]] 2281 | name = "terminal_size" 2282 | version = "0.1.17" 2283 | source = "registry+https://github.com/rust-lang/crates.io-index" 2284 | checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df" 2285 | dependencies = [ 2286 | "libc", 2287 | "winapi", 2288 | ] 2289 | 2290 | [[package]] 2291 | name = "termios" 2292 | version = "0.3.3" 2293 | source = "registry+https://github.com/rust-lang/crates.io-index" 2294 | checksum = "411c5bf740737c7918b8b1fe232dca4dc9f8e754b8ad5e20966814001ed0ac6b" 2295 | dependencies = [ 2296 | "libc", 2297 | ] 2298 | 2299 | [[package]] 2300 | name = "textwrap" 2301 | version = "0.11.0" 2302 | source = "registry+https://github.com/rust-lang/crates.io-index" 2303 | checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" 2304 | dependencies = [ 2305 | "term_size", 2306 | "unicode-width", 2307 | ] 2308 | 2309 | [[package]] 2310 | name = "thin-slice" 2311 | version = "0.1.1" 2312 | source = "registry+https://github.com/rust-lang/crates.io-index" 2313 | checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" 2314 | 2315 | [[package]] 2316 | name = "thiserror" 2317 | version = "1.0.37" 2318 | source = "registry+https://github.com/rust-lang/crates.io-index" 2319 | checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" 2320 | dependencies = [ 2321 | "thiserror-impl", 2322 | ] 2323 | 2324 | [[package]] 2325 | name = "thiserror-impl" 2326 | version = "1.0.37" 2327 | source = "registry+https://github.com/rust-lang/crates.io-index" 2328 | checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" 2329 | dependencies = [ 2330 | "proc-macro2", 2331 | "quote", 2332 | "syn", 2333 | ] 2334 | 2335 | [[package]] 2336 | name = "time" 2337 | version = "0.1.44" 2338 | source = "registry+https://github.com/rust-lang/crates.io-index" 2339 | checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" 2340 | dependencies = [ 2341 | "libc", 2342 | "wasi 0.10.0+wasi-snapshot-preview1", 2343 | "winapi", 2344 | ] 2345 | 2346 | [[package]] 2347 | name = "time" 2348 | version = "0.2.27" 2349 | source = "registry+https://github.com/rust-lang/crates.io-index" 2350 | checksum = "4752a97f8eebd6854ff91f1c1824cd6160626ac4bd44287f7f4ea2035a02a242" 2351 | dependencies = [ 2352 | "const_fn", 2353 | "libc", 2354 | "standback", 2355 | "stdweb", 2356 | "time-macros", 2357 | "version_check", 2358 | "winapi", 2359 | ] 2360 | 2361 | [[package]] 2362 | name = "time" 2363 | version = "0.3.14" 2364 | source = "registry+https://github.com/rust-lang/crates.io-index" 2365 | checksum = "3c3f9a28b618c3a6b9251b6908e9c99e04b9e5c02e6581ccbb67d59c34ef7f9b" 2366 | dependencies = [ 2367 | "itoa 1.0.3", 2368 | "libc", 2369 | "num_threads", 2370 | ] 2371 | 2372 | [[package]] 2373 | name = "time-macros" 2374 | version = "0.1.1" 2375 | source = "registry+https://github.com/rust-lang/crates.io-index" 2376 | checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1" 2377 | dependencies = [ 2378 | "proc-macro-hack", 2379 | "time-macros-impl", 2380 | ] 2381 | 2382 | [[package]] 2383 | name = "time-macros-impl" 2384 | version = "0.1.2" 2385 | source = "registry+https://github.com/rust-lang/crates.io-index" 2386 | checksum = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f" 2387 | dependencies = [ 2388 | "proc-macro-hack", 2389 | "proc-macro2", 2390 | "quote", 2391 | "standback", 2392 | "syn", 2393 | ] 2394 | 2395 | [[package]] 2396 | name = "tinyvec" 2397 | version = "1.6.0" 2398 | source = "registry+https://github.com/rust-lang/crates.io-index" 2399 | checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" 2400 | dependencies = [ 2401 | "tinyvec_macros", 2402 | ] 2403 | 2404 | [[package]] 2405 | name = "tinyvec_macros" 2406 | version = "0.1.0" 2407 | source = "registry+https://github.com/rust-lang/crates.io-index" 2408 | checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" 2409 | 2410 | [[package]] 2411 | name = "tracing" 2412 | version = "0.1.36" 2413 | source = "registry+https://github.com/rust-lang/crates.io-index" 2414 | checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" 2415 | dependencies = [ 2416 | "cfg-if", 2417 | "log", 2418 | "pin-project-lite", 2419 | "tracing-attributes", 2420 | "tracing-core", 2421 | ] 2422 | 2423 | [[package]] 2424 | name = "tracing-attributes" 2425 | version = "0.1.22" 2426 | source = "registry+https://github.com/rust-lang/crates.io-index" 2427 | checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" 2428 | dependencies = [ 2429 | "proc-macro2", 2430 | "quote", 2431 | "syn", 2432 | ] 2433 | 2434 | [[package]] 2435 | name = "tracing-core" 2436 | version = "0.1.29" 2437 | source = "registry+https://github.com/rust-lang/crates.io-index" 2438 | checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7" 2439 | dependencies = [ 2440 | "once_cell", 2441 | ] 2442 | 2443 | [[package]] 2444 | name = "tracing-futures" 2445 | version = "0.2.5" 2446 | source = "registry+https://github.com/rust-lang/crates.io-index" 2447 | checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" 2448 | dependencies = [ 2449 | "pin-project", 2450 | "tracing", 2451 | ] 2452 | 2453 | [[package]] 2454 | name = "typenum" 2455 | version = "1.15.0" 2456 | source = "registry+https://github.com/rust-lang/crates.io-index" 2457 | checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" 2458 | 2459 | [[package]] 2460 | name = "ucd-trie" 2461 | version = "0.1.5" 2462 | source = "registry+https://github.com/rust-lang/crates.io-index" 2463 | checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" 2464 | 2465 | [[package]] 2466 | name = "unicase" 2467 | version = "2.6.0" 2468 | source = "registry+https://github.com/rust-lang/crates.io-index" 2469 | checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" 2470 | dependencies = [ 2471 | "version_check", 2472 | ] 2473 | 2474 | [[package]] 2475 | name = "unicode-bidi" 2476 | version = "0.3.8" 2477 | source = "registry+https://github.com/rust-lang/crates.io-index" 2478 | checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" 2479 | 2480 | [[package]] 2481 | name = "unicode-ident" 2482 | version = "1.0.4" 2483 | source = "registry+https://github.com/rust-lang/crates.io-index" 2484 | checksum = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd" 2485 | 2486 | [[package]] 2487 | name = "unicode-normalization" 2488 | version = "0.1.22" 2489 | source = "registry+https://github.com/rust-lang/crates.io-index" 2490 | checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" 2491 | dependencies = [ 2492 | "tinyvec", 2493 | ] 2494 | 2495 | [[package]] 2496 | name = "unicode-width" 2497 | version = "0.1.10" 2498 | source = "registry+https://github.com/rust-lang/crates.io-index" 2499 | checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" 2500 | 2501 | [[package]] 2502 | name = "universal-hash" 2503 | version = "0.4.1" 2504 | source = "registry+https://github.com/rust-lang/crates.io-index" 2505 | checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" 2506 | dependencies = [ 2507 | "generic-array", 2508 | "subtle", 2509 | ] 2510 | 2511 | [[package]] 2512 | name = "url" 2513 | version = "2.3.1" 2514 | source = "registry+https://github.com/rust-lang/crates.io-index" 2515 | checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" 2516 | dependencies = [ 2517 | "form_urlencoded", 2518 | "idna", 2519 | "percent-encoding", 2520 | "serde", 2521 | ] 2522 | 2523 | [[package]] 2524 | name = "urlencoding" 2525 | version = "1.3.3" 2526 | source = "registry+https://github.com/rust-lang/crates.io-index" 2527 | checksum = "5a1f0175e03a0973cf4afd476bef05c26e228520400eb1fd473ad417b1c00ffb" 2528 | 2529 | [[package]] 2530 | name = "utf-8" 2531 | version = "0.7.6" 2532 | source = "registry+https://github.com/rust-lang/crates.io-index" 2533 | checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" 2534 | 2535 | [[package]] 2536 | name = "value-bag" 2537 | version = "1.0.0-alpha.9" 2538 | source = "registry+https://github.com/rust-lang/crates.io-index" 2539 | checksum = "2209b78d1249f7e6f3293657c9779fe31ced465df091bbd433a1cf88e916ec55" 2540 | dependencies = [ 2541 | "ctor", 2542 | "version_check", 2543 | ] 2544 | 2545 | [[package]] 2546 | name = "vcpkg" 2547 | version = "0.2.15" 2548 | source = "registry+https://github.com/rust-lang/crates.io-index" 2549 | checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 2550 | 2551 | [[package]] 2552 | name = "vec_map" 2553 | version = "0.8.2" 2554 | source = "registry+https://github.com/rust-lang/crates.io-index" 2555 | checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" 2556 | 2557 | [[package]] 2558 | name = "version_check" 2559 | version = "0.9.4" 2560 | source = "registry+https://github.com/rust-lang/crates.io-index" 2561 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 2562 | 2563 | [[package]] 2564 | name = "waker-fn" 2565 | version = "1.1.0" 2566 | source = "registry+https://github.com/rust-lang/crates.io-index" 2567 | checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" 2568 | 2569 | [[package]] 2570 | name = "walkdir" 2571 | version = "2.3.2" 2572 | source = "registry+https://github.com/rust-lang/crates.io-index" 2573 | checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" 2574 | dependencies = [ 2575 | "same-file", 2576 | "winapi", 2577 | "winapi-util", 2578 | ] 2579 | 2580 | [[package]] 2581 | name = "wasi" 2582 | version = "0.9.0+wasi-snapshot-preview1" 2583 | source = "registry+https://github.com/rust-lang/crates.io-index" 2584 | checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" 2585 | 2586 | [[package]] 2587 | name = "wasi" 2588 | version = "0.10.0+wasi-snapshot-preview1" 2589 | source = "registry+https://github.com/rust-lang/crates.io-index" 2590 | checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" 2591 | 2592 | [[package]] 2593 | name = "wasi" 2594 | version = "0.11.0+wasi-snapshot-preview1" 2595 | source = "registry+https://github.com/rust-lang/crates.io-index" 2596 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 2597 | 2598 | [[package]] 2599 | name = "wasm-bindgen" 2600 | version = "0.2.83" 2601 | source = "registry+https://github.com/rust-lang/crates.io-index" 2602 | checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" 2603 | dependencies = [ 2604 | "cfg-if", 2605 | "wasm-bindgen-macro", 2606 | ] 2607 | 2608 | [[package]] 2609 | name = "wasm-bindgen-backend" 2610 | version = "0.2.83" 2611 | source = "registry+https://github.com/rust-lang/crates.io-index" 2612 | checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" 2613 | dependencies = [ 2614 | "bumpalo", 2615 | "log", 2616 | "once_cell", 2617 | "proc-macro2", 2618 | "quote", 2619 | "syn", 2620 | "wasm-bindgen-shared", 2621 | ] 2622 | 2623 | [[package]] 2624 | name = "wasm-bindgen-futures" 2625 | version = "0.4.33" 2626 | source = "registry+https://github.com/rust-lang/crates.io-index" 2627 | checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" 2628 | dependencies = [ 2629 | "cfg-if", 2630 | "js-sys", 2631 | "wasm-bindgen", 2632 | "web-sys", 2633 | ] 2634 | 2635 | [[package]] 2636 | name = "wasm-bindgen-macro" 2637 | version = "0.2.83" 2638 | source = "registry+https://github.com/rust-lang/crates.io-index" 2639 | checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" 2640 | dependencies = [ 2641 | "quote", 2642 | "wasm-bindgen-macro-support", 2643 | ] 2644 | 2645 | [[package]] 2646 | name = "wasm-bindgen-macro-support" 2647 | version = "0.2.83" 2648 | source = "registry+https://github.com/rust-lang/crates.io-index" 2649 | checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" 2650 | dependencies = [ 2651 | "proc-macro2", 2652 | "quote", 2653 | "syn", 2654 | "wasm-bindgen-backend", 2655 | "wasm-bindgen-shared", 2656 | ] 2657 | 2658 | [[package]] 2659 | name = "wasm-bindgen-shared" 2660 | version = "0.2.83" 2661 | source = "registry+https://github.com/rust-lang/crates.io-index" 2662 | checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" 2663 | 2664 | [[package]] 2665 | name = "web-sys" 2666 | version = "0.3.60" 2667 | source = "registry+https://github.com/rust-lang/crates.io-index" 2668 | checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" 2669 | dependencies = [ 2670 | "js-sys", 2671 | "wasm-bindgen", 2672 | ] 2673 | 2674 | [[package]] 2675 | name = "wepoll-ffi" 2676 | version = "0.1.2" 2677 | source = "registry+https://github.com/rust-lang/crates.io-index" 2678 | checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb" 2679 | dependencies = [ 2680 | "cc", 2681 | ] 2682 | 2683 | [[package]] 2684 | name = "wild" 2685 | version = "2.1.0" 2686 | source = "registry+https://github.com/rust-lang/crates.io-index" 2687 | checksum = "05b116685a6be0c52f5a103334cbff26db643826c7b3735fc0a3ba9871310a74" 2688 | dependencies = [ 2689 | "glob", 2690 | ] 2691 | 2692 | [[package]] 2693 | name = "winapi" 2694 | version = "0.3.9" 2695 | source = "registry+https://github.com/rust-lang/crates.io-index" 2696 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 2697 | dependencies = [ 2698 | "winapi-i686-pc-windows-gnu", 2699 | "winapi-x86_64-pc-windows-gnu", 2700 | ] 2701 | 2702 | [[package]] 2703 | name = "winapi-i686-pc-windows-gnu" 2704 | version = "0.4.0" 2705 | source = "registry+https://github.com/rust-lang/crates.io-index" 2706 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 2707 | 2708 | [[package]] 2709 | name = "winapi-util" 2710 | version = "0.1.5" 2711 | source = "registry+https://github.com/rust-lang/crates.io-index" 2712 | checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" 2713 | dependencies = [ 2714 | "winapi", 2715 | ] 2716 | 2717 | [[package]] 2718 | name = "winapi-x86_64-pc-windows-gnu" 2719 | version = "0.4.0" 2720 | source = "registry+https://github.com/rust-lang/crates.io-index" 2721 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 2722 | 2723 | [[package]] 2724 | name = "windows-sys" 2725 | version = "0.36.1" 2726 | source = "registry+https://github.com/rust-lang/crates.io-index" 2727 | checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" 2728 | dependencies = [ 2729 | "windows_aarch64_msvc", 2730 | "windows_i686_gnu", 2731 | "windows_i686_msvc", 2732 | "windows_x86_64_gnu", 2733 | "windows_x86_64_msvc", 2734 | ] 2735 | 2736 | [[package]] 2737 | name = "windows_aarch64_msvc" 2738 | version = "0.36.1" 2739 | source = "registry+https://github.com/rust-lang/crates.io-index" 2740 | checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" 2741 | 2742 | [[package]] 2743 | name = "windows_i686_gnu" 2744 | version = "0.36.1" 2745 | source = "registry+https://github.com/rust-lang/crates.io-index" 2746 | checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" 2747 | 2748 | [[package]] 2749 | name = "windows_i686_msvc" 2750 | version = "0.36.1" 2751 | source = "registry+https://github.com/rust-lang/crates.io-index" 2752 | checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" 2753 | 2754 | [[package]] 2755 | name = "windows_x86_64_gnu" 2756 | version = "0.36.1" 2757 | source = "registry+https://github.com/rust-lang/crates.io-index" 2758 | checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" 2759 | 2760 | [[package]] 2761 | name = "windows_x86_64_msvc" 2762 | version = "0.36.1" 2763 | source = "registry+https://github.com/rust-lang/crates.io-index" 2764 | checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" 2765 | 2766 | [[package]] 2767 | name = "xml-rs" 2768 | version = "0.8.4" 2769 | source = "registry+https://github.com/rust-lang/crates.io-index" 2770 | checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" 2771 | 2772 | [[package]] 2773 | name = "xml5ever" 2774 | version = "0.16.2" 2775 | source = "registry+https://github.com/rust-lang/crates.io-index" 2776 | checksum = "9234163818fd8e2418fcde330655e757900d4236acd8cc70fef345ef91f6d865" 2777 | dependencies = [ 2778 | "log", 2779 | "mac", 2780 | "markup5ever", 2781 | "time 0.1.44", 2782 | ] 2783 | 2784 | [[package]] 2785 | name = "yaml-rust" 2786 | version = "0.4.5" 2787 | source = "registry+https://github.com/rust-lang/crates.io-index" 2788 | checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" 2789 | dependencies = [ 2790 | "linked-hash-map", 2791 | ] 2792 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "mdn" 3 | version = "0.1.3" 4 | authors = ["Chris Dickinson "] 5 | edition = "2018" 6 | description = "A command line tool to search and display documentation from Mozilla Developer Network" 7 | license = "MIT" 8 | repository = "https://github.com/chrisdickinson/mdn-cli" 9 | homepage = "https://github.com/chrisdickinson/mdn-cli" 10 | 11 | [dependencies] 12 | anyhow = "1.0.32" 13 | surf = "2.3.2" 14 | urlencoding = "1.1.1" 15 | scraper = "0.12.0" 16 | html2text = "0.2.1" 17 | term_size = "0.3.2" 18 | bat = "0.16.0" 19 | 20 | [dependencies.async-std] 21 | version = "1.6.5" 22 | features = ["attributes"] 23 | 24 | [profile.release] 25 | lto = true 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # mdn-cli 2 | 3 | A command line tool for displaying the top DuckDuckGo search result for a MDN 4 | query in your terminal. Automatically paginated. 5 | 6 | ``` 7 | $ mdn accept header 8 | 9 | # Accept 10 | 11 | The **`Accept`** request HTTP header advertises which content types, expressed as [MIME types][1], the client is able to understand. Using [content negotiation][2], 12 | the server then selects one of the proposals, uses it and informs the client of its choice with the [`Content-Type`][3] response header. Browsers set adequate values 13 | for this header depending on the context where the request is done: when fetching a CSS stylesheet a different value is set for the request than when fetching an 14 | image, video or a script. 15 | 16 | [...] 17 | ``` 18 | 19 | ## Colophon 20 | 21 | Results via DuckDuckGo's [Instant Answer] API. 22 | 23 | [Instant Answer]: https://duckduckgo.com/api 24 | 25 | Crates: 26 | 27 | - [`html2text`](https://lib.rs/html2text) 28 | - [`bat`](https://lib.rs/bat) 29 | - [`scraper`](https://lib.rs/scraper) 30 | - [`surf`](https://lib.rs/surf) 31 | - [`term_size`](https://lib.rs/term_size) 32 | 33 | ## Installation 34 | 35 | You must have rust installed in order to use mdn-cli, to create the binary for mdn-cli: 36 | 37 | ```sh 38 | git clone https://github.com/chrisdickinson/mdn-cli.git 39 | cd mdn-cli/ 40 | cargo install --path . 41 | ``` 42 | 43 | ## License 44 | 45 | MIT 46 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | use bat::{Input, PagingMode, PrettyPrinter}; 2 | use std::io::Write; 3 | use std::time::Duration; 4 | 5 | #[async_std::main] 6 | async fn main() -> Result<(), surf::Error> { 7 | //→ curl -I 'https://duckduckgo.com/?format=json&q=%21%20site%3Adeveloper.mozilla.org%20accept-header' 8 | let args: Vec = std::iter::once("! site:developer.mozilla.org".to_string()) 9 | .chain(std::env::args().skip(1)) 10 | .collect(); 11 | 12 | if args.len() == 1 { 13 | eprintln!( 14 | r#" 15 | mdn 16 | Search the Mozilla Developer Network documentation for a given query 17 | and display the top result as markdown in your terminal. 18 | 19 | USAGE: 20 | mdn http accept header 21 | mdn queryselectorall 22 | "# 23 | ); 24 | std::process::exit(1); 25 | } 26 | 27 | let args = args.join(" "); 28 | let query = urlencoding::encode(args.as_str()); 29 | 30 | let url = format!("https://duckduckgo.com/?q={}&format=json", query); 31 | let response = surf::get(url.as_str()).await?; 32 | let location = response 33 | .header("location") 34 | .map(|xs| xs.as_str().to_owned()) 35 | .unwrap_or_else(Default::default); 36 | 37 | if location.is_empty() { 38 | async_std::task::sleep(Duration::from_millis(200)).await; 39 | 40 | std::io::stderr().write_all(b" No results.")?; 41 | std::process::exit(1); 42 | } 43 | 44 | let body = surf::get(location.as_str()).recv_string().await?; 45 | 46 | let document = scraper::Html::parse_document(body.as_str()); 47 | let article_sel = scraper::Selector::parse("article.main-page-content").unwrap(); 48 | 49 | let article = document 50 | .select(&article_sel) 51 | .next() 52 | .map(|xs| xs.inner_html()) 53 | .unwrap_or_else(|| "".to_string()); 54 | 55 | let html = format!("
{}
", article); 56 | 57 | let term_width = if let Some((w, _)) = term_size::dimensions() { 58 | w 59 | } else { 60 | 120 61 | }; 62 | 63 | let markdown = html2text::from_read(html.as_bytes(), term_width); 64 | PrettyPrinter::new() 65 | .pager("less") 66 | .paging_mode(PagingMode::QuitIfOneScreen) 67 | .header(true) 68 | .grid(true) 69 | .input( 70 | Input::from_bytes(markdown.as_bytes()) 71 | .name("mdn.md") 72 | .title(url) 73 | .kind("Search Result"), 74 | ) 75 | .print() 76 | .unwrap(); 77 | 78 | Ok(()) 79 | } 80 | --------------------------------------------------------------------------------