diff --git a/Cargo.lock b/Cargo.lock
index dda4b8fa2..5e33c3733 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1,986 +1,1061 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
+[[package]]
+name = "adler32"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
+
[[package]]
name = "aho-corasick"
version = "0.7.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
dependencies = [
- "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "memchr",
+]
+
+[[package]]
+name = "alloc-no-stdlib"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5192ec435945d87bc2f70992b4d818154b5feede43c09fb7592146374eac90a6"
+
+[[package]]
+name = "alloc-stdlib"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "697ed7edc0f1711de49ce108c541623a0af97c6c60b2f6e2b65229847ac843c2"
+dependencies = [
+ "alloc-no-stdlib",
]
[[package]]
name = "ansi_term"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
dependencies = [
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi",
]
[[package]]
name = "atty"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
dependencies = [
- "hermit-abi 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hermit-abi",
+ "libc",
+ "winapi",
]
[[package]]
name = "autocfg"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
[[package]]
name = "autocfg"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
[[package]]
name = "backtrace"
version = "0.3.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad235dabf00f36301792cfe82499880ba54c6486be094d1047b02bacb67c14e8"
dependencies = [
- "backtrace-sys 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)",
- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)",
- "rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
+ "backtrace-sys",
+ "cfg-if",
+ "libc",
+ "rustc-demangle",
]
[[package]]
name = "backtrace-sys"
version = "0.1.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca797db0057bae1a7aa2eef3283a874695455cecf08a43bfb8507ee0ebc1ed69"
dependencies = [
- "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cc",
+ "libc",
]
[[package]]
name = "base64"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
[[package]]
name = "bit-set"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e84c238982c4b1e1ee668d136c510c67a13465279c0cb367ea6baf6310620a80"
dependencies = [
- "bit-vec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bit-vec",
]
[[package]]
name = "bit-vec"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f59bbe95d4e52a6398ec21238d31577f2b28a9d86807f06ca59d191d8440d0bb"
[[package]]
name = "bitflags"
version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+
+[[package]]
+name = "brotli"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f29919120f08613aadcd4383764e00526fc9f18b6c0895814faeed0dd78613e"
+dependencies = [
+ "alloc-no-stdlib",
+ "alloc-stdlib",
+ "brotli-decompressor",
+]
+
+[[package]]
+name = "brotli-decompressor"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1052e1c3b8d4d80eb84a8b94f0a1498797b5fb96314c001156a1c761940ef4ec"
+dependencies = [
+ "alloc-no-stdlib",
+ "alloc-stdlib",
+]
[[package]]
name = "byteorder"
version = "1.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
[[package]]
name = "cc"
version = "1.0.50"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd"
[[package]]
name = "cfg-if"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
[[package]]
name = "chrono"
version = "0.4.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80094f509cf8b5ae86a4966a39b3ff66cd7e2a3e594accec3743ff3fabeab5b2"
dependencies = [
- "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
- "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-integer",
+ "num-traits",
+ "time",
]
[[package]]
name = "clap"
version = "2.33.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
dependencies = [
- "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ansi_term",
+ "atty",
+ "bitflags",
+ "strsim",
+ "textwrap",
+ "unicode-width",
+ "vec_map",
]
[[package]]
name = "cloudabi"
version = "0.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
dependencies = [
- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bitflags",
+]
+
+[[package]]
+name = "crc32fast"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
+dependencies = [
+ "cfg-if",
]
[[package]]
name = "curl"
version = "0.4.33"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78baca05127a115136a9898e266988fc49ca7ea2c839f60fc6e1fc9df1599168"
dependencies = [
- "curl-sys 0.4.36+curl-7.71.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)",
- "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "openssl-sys 0.9.54 (registry+https://github.com/rust-lang/crates.io-index)",
- "schannel 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
- "socket2 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "curl-sys",
+ "libc",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "socket2",
+ "winapi",
]
[[package]]
name = "curl-sys"
version = "0.4.36+curl-7.71.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68cad94adeb0c16558429c3c34a607acc9ea58e09a7b66310aabc9788fc5d721"
dependencies = [
- "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)",
- "libz-sys 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "openssl-sys 0.9.54 (registry+https://github.com/rust-lang/crates.io-index)",
- "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
- "vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cc",
+ "libc",
+ "libz-sys",
+ "openssl-sys",
+ "pkg-config",
+ "vcpkg",
+ "winapi",
]
[[package]]
name = "encoding"
version = "0.2.33"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec"
dependencies = [
- "encoding-index-japanese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "encoding-index-korean 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "encoding-index-simpchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "encoding-index-singlebyte 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "encoding-index-tradchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "encoding-index-japanese",
+ "encoding-index-korean",
+ "encoding-index-simpchinese",
+ "encoding-index-singlebyte",
+ "encoding-index-tradchinese",
]
[[package]]
name = "encoding-index-japanese"
version = "1.20141219.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91"
dependencies = [
- "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "encoding_index_tests",
]
[[package]]
name = "encoding-index-korean"
version = "1.20141219.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81"
dependencies = [
- "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "encoding_index_tests",
]
[[package]]
name = "encoding-index-simpchinese"
version = "1.20141219.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7"
dependencies = [
- "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "encoding_index_tests",
]
[[package]]
name = "encoding-index-singlebyte"
version = "1.20141219.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a"
dependencies = [
- "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "encoding_index_tests",
]
[[package]]
name = "encoding-index-tradchinese"
version = "1.20141219.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18"
dependencies = [
- "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "encoding_index_tests",
]
[[package]]
name = "encoding_index_tests"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569"
[[package]]
name = "error-chain"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9435d864e017c3c6afeac1654189b06cdb491cf2ff73dbf0d73b0f292f42ff8"
dependencies = [
- "backtrace 0.3.45 (registry+https://github.com/rust-lang/crates.io-index)",
+ "backtrace",
]
[[package]]
name = "float-cmp"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da62c4f1b81918835a8c6a484a397775fff5953fe83529afd51b05f5c6a6617d"
dependencies = [
- "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits",
]
[[package]]
name = "fnv"
version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
[[package]]
name = "fuchsia-cprng"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
[[package]]
name = "getrandom"
version = "0.1.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
dependencies = [
- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)",
- "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cfg-if",
+ "libc",
+ "wasi",
]
[[package]]
name = "heck"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
dependencies = [
- "unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-segmentation",
]
[[package]]
name = "hermit-abi"
version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1010591b26bbfe835e9faeabeb11866061cc7dcebffd56ad7d0942d0e61aefd8"
dependencies = [
- "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc",
]
[[package]]
name = "hurl"
version = "0.99.13"
dependencies = [
- "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
- "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
- "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "curl 0.4.33 (registry+https://github.com/rust-lang/crates.io-index)",
- "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
- "float-cmp 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "libxml 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "proptest 0.9.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "roxmltree 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde-xml-rs 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_json 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)",
- "structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
- "sxd-document 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "xmlparser 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "atty",
+ "base64",
+ "brotli",
+ "chrono",
+ "clap",
+ "curl",
+ "encoding",
+ "float-cmp",
+ "libflate",
+ "libxml",
+ "proptest",
+ "regex",
+ "roxmltree",
+ "serde",
+ "serde-xml-rs",
+ "serde_json",
+ "structopt",
+ "sxd-document",
+ "url",
+ "xmlparser",
]
[[package]]
name = "idna"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
dependencies = [
- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicode-normalization 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
+ "matches",
+ "unicode-bidi",
+ "unicode-normalization",
]
[[package]]
name = "itoa"
version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e"
[[package]]
name = "lazy_static"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
version = "0.2.67"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb147597cdf94ed43ab7a9038716637d2d1bf2bc571da995d0028dec06bd3018"
+
+[[package]]
+name = "libflate"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9bac9023e1db29c084f9f8cd9d3852e5e8fddf98fb47c4964a0ea4663d95949"
+dependencies = [
+ "adler32",
+ "crc32fast",
+ "libflate_lz77",
+ "rle-decode-fast",
+]
+
+[[package]]
+name = "libflate_lz77"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3286f09f7d4926fc486334f28d8d2e6ebe4f7f9994494b6dab27ddfad2c9b11b"
[[package]]
name = "libxml"
version = "0.2.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbbe61bd26eaed780d4d81e07ad3f5ce4aae2d61eca61945006875f08cbdf1b4"
dependencies = [
- "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)",
- "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc",
+ "pkg-config",
]
[[package]]
name = "libz-sys"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af67924b8dd885cccea261866c8ce5b74d239d272e154053ff927dae839f5ae9"
dependencies = [
- "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)",
- "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
- "vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
]
[[package]]
name = "log"
version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
dependencies = [
- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cfg-if",
]
[[package]]
name = "matches"
version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
[[package]]
name = "memchr"
version = "2.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
[[package]]
name = "num-integer"
version = "0.1.42"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba"
dependencies = [
- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "autocfg 1.0.0",
+ "num-traits",
]
[[package]]
name = "num-traits"
version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096"
dependencies = [
- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "autocfg 1.0.0",
]
[[package]]
name = "openssl-probe"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
[[package]]
name = "openssl-sys"
version = "0.9.54"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1024c0a59774200a555087a6da3f253a9095a5f344e353b212ac4c8b8e450986"
dependencies = [
- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)",
- "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
- "vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "autocfg 1.0.0",
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
]
[[package]]
name = "percent-encoding"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
[[package]]
name = "peresil"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f658886ed52e196e850cfbbfddab9eaa7f6d90dd0929e264c31e5cec07e09e57"
[[package]]
name = "pkg-config"
version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
[[package]]
name = "ppv-lite86"
version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
[[package]]
name = "proc-macro2"
version = "0.4.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
dependencies = [
- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-xid",
]
[[package]]
name = "proptest"
version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf6147d103a7c9d7598f4105cf049b15c99e2ecd93179bf024f0fd349be5ada4"
dependencies = [
- "bit-set 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
- "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex-syntax 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
- "rusty-fork 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bit-set",
+ "bitflags",
+ "byteorder",
+ "lazy_static",
+ "num-traits",
+ "quick-error",
+ "rand 0.6.5",
+ "rand_chacha 0.1.1",
+ "rand_xorshift",
+ "regex-syntax",
+ "rusty-fork",
+ "tempfile",
]
[[package]]
name = "quick-error"
version = "1.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
[[package]]
name = "quote"
version = "0.6.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
dependencies = [
- "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
]
[[package]]
name = "rand"
version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
dependencies = [
- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "autocfg 0.1.7",
+ "libc",
+ "rand_chacha 0.1.1",
+ "rand_core 0.4.2",
+ "rand_hc 0.1.0",
+ "rand_isaac",
+ "rand_jitter",
+ "rand_os",
+ "rand_pcg",
+ "rand_xorshift",
+ "winapi",
]
[[package]]
name = "rand"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
dependencies = [
- "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "getrandom",
+ "libc",
+ "rand_chacha 0.2.2",
+ "rand_core 0.5.1",
+ "rand_hc 0.2.0",
]
[[package]]
name = "rand_chacha"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
dependencies = [
- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "autocfg 0.1.7",
+ "rand_core 0.3.1",
]
[[package]]
name = "rand_chacha"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
dependencies = [
- "ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ppv-lite86",
+ "rand_core 0.5.1",
]
[[package]]
name = "rand_core"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
dependencies = [
- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_core 0.4.2",
]
[[package]]
name = "rand_core"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
[[package]]
name = "rand_core"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
dependencies = [
- "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
+ "getrandom",
]
[[package]]
name = "rand_hc"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
dependencies = [
- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_core 0.3.1",
]
[[package]]
name = "rand_hc"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
dependencies = [
- "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_core 0.5.1",
]
[[package]]
name = "rand_isaac"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
dependencies = [
- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_core 0.3.1",
]
[[package]]
name = "rand_jitter"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
dependencies = [
- "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc",
+ "rand_core 0.4.2",
+ "winapi",
]
[[package]]
name = "rand_os"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
dependencies = [
- "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cloudabi",
+ "fuchsia-cprng",
+ "libc",
+ "rand_core 0.4.2",
+ "rdrand",
+ "winapi",
]
[[package]]
name = "rand_pcg"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
dependencies = [
- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "autocfg 0.1.7",
+ "rand_core 0.4.2",
]
[[package]]
name = "rand_xorshift"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
dependencies = [
- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_core 0.3.1",
]
[[package]]
name = "rdrand"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
dependencies = [
- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_core 0.3.1",
]
[[package]]
name = "redox_syscall"
version = "0.1.56"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
[[package]]
name = "regex"
version = "1.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "322cf97724bea3ee221b78fe25ac9c46114ebb51747ad5babd51a2fc6a8235a8"
dependencies = [
- "aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex-syntax 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
- "thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+ "thread_local",
]
[[package]]
name = "regex-syntax"
version = "0.6.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1132f845907680735a84409c3bebc64d1364a5683ffbce899550cd09d5eaefc1"
[[package]]
name = "remove_dir_all"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
dependencies = [
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi",
]
+[[package]]
+name = "rle-decode-fast"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cabe4fa914dec5870285fa7f71f602645da47c486e68486d2b4ceb4a343e90ac"
+
[[package]]
name = "roxmltree"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0852407257c1b696a0c66b9db3ffe7769c2744a2fa725c8050e6f3e5a823c02b"
dependencies = [
- "xmlparser 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "xmlparser",
]
[[package]]
name = "rustc-demangle"
version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
[[package]]
name = "rusty-fork"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dd93264e10c577503e926bd1430193eeb5d21b059148910082245309b424fae"
dependencies = [
- "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "wait-timeout 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "fnv",
+ "quick-error",
+ "tempfile",
+ "wait-timeout",
]
[[package]]
name = "ryu"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa8506c1de11c9c4e4c38863ccbe02a305c8188e85a05a784c9e11e1c3910c8"
[[package]]
name = "schannel"
version = "0.1.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "507a9e6e8ffe0a4e0ebb9a10293e62fdf7657c06f1b8bb07a8fcf697d2abf295"
dependencies = [
- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static",
+ "winapi",
]
[[package]]
name = "serde"
version = "1.0.104"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "414115f25f818d7dfccec8ee535d76949ae78584fc4f79a6f45a904bf8ab4449"
[[package]]
name = "serde-xml-rs"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "27d98dfc234faa8532d66c837de56bf4276a259a43dd10ef96feb2fb7ab333b1"
dependencies = [
- "error-chain 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
- "xml-rs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "error-chain",
+ "log",
+ "serde",
+ "xml-rs",
]
[[package]]
name = "serde_json"
version = "1.0.48"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9371ade75d4c2d6cb154141b9752cf3781ec9c05e0e5cf35060e1e70ee7b9c25"
dependencies = [
- "itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
+ "itoa",
+ "ryu",
+ "serde",
]
[[package]]
name = "smallvec"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c2fb2ec9bcd216a5b0d0ccf31ab17b5ed1d627960edff65bbe95d3ce221cefc"
[[package]]
name = "socket2"
version = "0.3.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918"
dependencies = [
- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)",
- "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "winapi",
]
[[package]]
name = "strsim"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
[[package]]
name = "structopt"
version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16c2cdbf9cc375f15d1b4141bc48aeef444806655cd0e904207edc8d68d86ed7"
dependencies = [
- "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "structopt-derive 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "clap",
+ "structopt-derive",
]
[[package]]
name = "structopt-derive"
version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53010261a84b37689f9ed7d395165029f9cc7abb9f56bbfe86bee2597ed25107"
dependencies = [
- "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)",
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn",
]
[[package]]
name = "sxd-document"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94d82f37be9faf1b10a82c4bd492b74f698e40082f0f40de38ab275f31d42078"
dependencies = [
- "peresil 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "typed-arena 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "peresil",
+ "typed-arena",
]
[[package]]
name = "syn"
version = "0.15.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
dependencies = [
- "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
+ "quote",
+ "unicode-xid",
]
[[package]]
name = "tempfile"
version = "3.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
dependencies = [
- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
- "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cfg-if",
+ "libc",
+ "rand 0.7.3",
+ "redox_syscall",
+ "remove_dir_all",
+ "winapi",
]
[[package]]
name = "textwrap"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
dependencies = [
- "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-width",
]
[[package]]
name = "thread_local"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
dependencies = [
- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static",
]
[[package]]
name = "time"
version = "0.1.42"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f"
dependencies = [
- "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)",
- "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc",
+ "redox_syscall",
+ "winapi",
]
[[package]]
name = "typed-arena"
version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9b2228007eba4120145f785df0f6c92ea538f5a3635a612ecf4e334c8c1446d"
[[package]]
name = "unicode-bidi"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
dependencies = [
- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "matches",
]
[[package]]
name = "unicode-normalization"
version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4"
dependencies = [
- "smallvec 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "smallvec",
]
[[package]]
name = "unicode-segmentation"
version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
[[package]]
name = "unicode-width"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
[[package]]
name = "unicode-xid"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
[[package]]
name = "url"
version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb"
dependencies = [
- "idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "idna",
+ "matches",
+ "percent-encoding",
]
[[package]]
name = "vcpkg"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168"
[[package]]
name = "vec_map"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
[[package]]
name = "wait-timeout"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
dependencies = [
- "libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc",
]
[[package]]
name = "wasi"
version = "0.9.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
[[package]]
name = "winapi"
version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
dependencies = [
- "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
]
[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "xml-rs"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "541b12c998c5b56aa2b4e6f18f03664eef9a4fd0a246a55594efae6cc2d964b5"
[[package]]
name = "xmlparser"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[metadata]
-"checksum aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)" = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
-"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
-"checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-"checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
-"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
-"checksum backtrace 0.3.45 (registry+https://github.com/rust-lang/crates.io-index)" = "ad235dabf00f36301792cfe82499880ba54c6486be094d1047b02bacb67c14e8"
-"checksum backtrace-sys 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)" = "ca797db0057bae1a7aa2eef3283a874695455cecf08a43bfb8507ee0ebc1ed69"
-"checksum base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
-"checksum bit-set 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e84c238982c4b1e1ee668d136c510c67a13465279c0cb367ea6baf6310620a80"
-"checksum bit-vec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f59bbe95d4e52a6398ec21238d31577f2b28a9d86807f06ca59d191d8440d0bb"
-"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-"checksum byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
-"checksum cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)" = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd"
-"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
-"checksum chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "80094f509cf8b5ae86a4966a39b3ff66cd7e2a3e594accec3743ff3fabeab5b2"
-"checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
-"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
-"checksum curl 0.4.33 (registry+https://github.com/rust-lang/crates.io-index)" = "78baca05127a115136a9898e266988fc49ca7ea2c839f60fc6e1fc9df1599168"
-"checksum curl-sys 0.4.36+curl-7.71.1 (registry+https://github.com/rust-lang/crates.io-index)" = "68cad94adeb0c16558429c3c34a607acc9ea58e09a7b66310aabc9788fc5d721"
-"checksum encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec"
-"checksum encoding-index-japanese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91"
-"checksum encoding-index-korean 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81"
-"checksum encoding-index-simpchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7"
-"checksum encoding-index-singlebyte 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a"
-"checksum encoding-index-tradchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18"
-"checksum encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569"
-"checksum error-chain 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d9435d864e017c3c6afeac1654189b06cdb491cf2ff73dbf0d73b0f292f42ff8"
-"checksum float-cmp 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "da62c4f1b81918835a8c6a484a397775fff5953fe83529afd51b05f5c6a6617d"
-"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
-"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
-"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
-"checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
-"checksum hermit-abi 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "1010591b26bbfe835e9faeabeb11866061cc7dcebffd56ad7d0942d0e61aefd8"
-"checksum idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
-"checksum itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e"
-"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-"checksum libc 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)" = "eb147597cdf94ed43ab7a9038716637d2d1bf2bc571da995d0028dec06bd3018"
-"checksum libxml 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "fbbe61bd26eaed780d4d81e07ad3f5ce4aae2d61eca61945006875f08cbdf1b4"
-"checksum libz-sys 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "af67924b8dd885cccea261866c8ce5b74d239d272e154053ff927dae839f5ae9"
-"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
-"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
-"checksum memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
-"checksum num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba"
-"checksum num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096"
-"checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
-"checksum openssl-sys 0.9.54 (registry+https://github.com/rust-lang/crates.io-index)" = "1024c0a59774200a555087a6da3f253a9095a5f344e353b212ac4c8b8e450986"
-"checksum percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
-"checksum peresil 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f658886ed52e196e850cfbbfddab9eaa7f6d90dd0929e264c31e5cec07e09e57"
-"checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
-"checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
-"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
-"checksum proptest 0.9.5 (registry+https://github.com/rust-lang/crates.io-index)" = "bf6147d103a7c9d7598f4105cf049b15c99e2ecd93179bf024f0fd349be5ada4"
-"checksum quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
-"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
-"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
-"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
-"checksum rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
-"checksum rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
-"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
-"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
-"checksum rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
-"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
-"checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
-"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
-"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
-"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
-"checksum regex 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "322cf97724bea3ee221b78fe25ac9c46114ebb51747ad5babd51a2fc6a8235a8"
-"checksum regex-syntax 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)" = "1132f845907680735a84409c3bebc64d1364a5683ffbce899550cd09d5eaefc1"
-"checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
-"checksum roxmltree 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0852407257c1b696a0c66b9db3ffe7769c2744a2fa725c8050e6f3e5a823c02b"
-"checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
-"checksum rusty-fork 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3dd93264e10c577503e926bd1430193eeb5d21b059148910082245309b424fae"
-"checksum ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bfa8506c1de11c9c4e4c38863ccbe02a305c8188e85a05a784c9e11e1c3910c8"
-"checksum schannel 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "507a9e6e8ffe0a4e0ebb9a10293e62fdf7657c06f1b8bb07a8fcf697d2abf295"
-"checksum serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "414115f25f818d7dfccec8ee535d76949ae78584fc4f79a6f45a904bf8ab4449"
-"checksum serde-xml-rs 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "27d98dfc234faa8532d66c837de56bf4276a259a43dd10ef96feb2fb7ab333b1"
-"checksum serde_json 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)" = "9371ade75d4c2d6cb154141b9752cf3781ec9c05e0e5cf35060e1e70ee7b9c25"
-"checksum smallvec 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5c2fb2ec9bcd216a5b0d0ccf31ab17b5ed1d627960edff65bbe95d3ce221cefc"
-"checksum socket2 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)" = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918"
-"checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-"checksum structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "16c2cdbf9cc375f15d1b4141bc48aeef444806655cd0e904207edc8d68d86ed7"
-"checksum structopt-derive 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "53010261a84b37689f9ed7d395165029f9cc7abb9f56bbfe86bee2597ed25107"
-"checksum sxd-document 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "94d82f37be9faf1b10a82c4bd492b74f698e40082f0f40de38ab275f31d42078"
-"checksum syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)" = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
-"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
-"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-"checksum thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
-"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f"
-"checksum typed-arena 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a9b2228007eba4120145f785df0f6c92ea538f5a3635a612ecf4e334c8c1446d"
-"checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
-"checksum unicode-normalization 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4"
-"checksum unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
-"checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
-"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
-"checksum url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb"
-"checksum vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168"
-"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
-"checksum wait-timeout 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
-"checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
-"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-"checksum xml-rs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "541b12c998c5b56aa2b4e6f18f03664eef9a4fd0a246a55594efae6cc2d964b5"
-"checksum xmlparser 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8110496c5bcc0d966b0b2da38d5a791aa139eeb0b80e7840a7463c2b806921eb"
+checksum = "8110496c5bcc0d966b0b2da38d5a791aa139eeb0b80e7840a7463c2b806921eb"
diff --git a/Cargo.toml b/Cargo.toml
index d7c5f80fd..41514461e 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -31,6 +31,9 @@ float-cmp = "0.6.0"
encoding = "0.2"
chrono = "0.4.11"
curl = "0.4.33"
+brotli="3.3.0"
+libflate = "1.0.2"
+
#[dev-dependencies]
proptest = "0.9.4"
diff --git a/integration/report/html/index.html b/integration/report/html/index.html
index 70a7df712..707ac5628 100644
--- a/integration/report/html/index.html
+++ b/integration/report/html/index.html
@@ -1,2 +1,2 @@
-
Hurl ReportHurl Report
Mon, 12 Oct 2020 10:24:25 +0200
filename | duration |
tests/assert_base64.hurl | 0.006s |
tests/assert_header.hurl | 0.007s |
tests/assert_json.hurl | 0.015s |
tests/assert_match.hurl | 0.033s |
tests/assert_regex.hurl | 0.009s |
tests/assert_xpath.hurl | 0.006s |
tests/bytes.hurl | 0.005s |
tests/capture_and_assert.hurl | 0.006s |
tests/captures.hurl | 0.014s |
tests/compressed.hurl | 0.006s |
tests/cookies.hurl | 0.021s |
tests/cookie_storage.hurl | 0.007s |
tests/delete.hurl | 0.005s |
tests/empty.hurl | 0s |
tests/encoding.hurl | 0.007s |
tests/error_assert_base64.hurl | 0.005s |
tests/error_assert_file.hurl | 0.006s |
tests/error_assert_header_not_found.hurl | 0.006s |
tests/error_assert_header_value.hurl | 0.006s |
tests/error_assert_http_version.hurl | 0.005s |
tests/error_assert_invalid_predicate_type.hurl | 0.008s |
tests/error_assert_match_utf8.hurl | 0.006s |
tests/error_assert_query_cookie.hurl | 0.01s |
tests/error_assert_query_invalid_regex.hurl | 0.006s |
tests/error_assert_query_invalid_xpath.hurl | 0.006s |
tests/error_assert_status.hurl | 0.005s |
tests/error_assert_template_variable_not_found.hurl | 0.006s |
tests/error_assert_value_error.hurl | 0.01s |
tests/error_assert_variable.hurl | 0.008s |
tests/error_file_read_access.hurl | 0s |
tests/error_http_connection.hurl | 0.124s |
tests/error_invalid_jsonpath.hurl | 0.006s |
tests/error_invalid_url.hurl | 0s |
tests/error_invalid_xml.hurl | 0.006s |
tests/error_multipart_form_data.hurl | 0s |
tests/error_predicate.hurl | 0.021s |
tests/error_query_header_not_found.hurl | 0.005s |
tests/error_query_invalid_json.hurl | 0.006s |
tests/error_query_invalid_utf8.hurl | 0.006s |
tests/error_template_variable_not_found.hurl | 0s |
tests/error_template_variable_not_renderable.hurl | 0.007s |
tests/error_timeout.hurl | 2.007s |
tests/follow_redirect.hurl | 0.006s |
tests/form_params.hurl | 0.008s |
tests/headers.hurl | 0.014s |
tests/hello.hurl | 0.008s |
tests/multipart_form_data.hurl | 0.007s |
tests/no_entry.hurl | 0s |
tests/output.hurl | 0.007s |
tests/patch.hurl | 0.006s |
tests/post_base64.hurl | 0.006s |
tests/post_file.hurl | 0.006s |
tests/post_json.hurl | 0.019s |
tests/post_multilines.hurl | 0.009s |
tests/post_xml.hurl | 0.008s |
tests/predicates-string.hurl | 0.009s |
tests/put.hurl | 0.005s |
tests/querystring_params.hurl | 0.014s |
tests/redirect.hurl | 0.009s |
tests/utf8.hurl | 0.006s |
\ No newline at end of file
+Hurl ReportHurl Report
Thu, 15 Oct 2020 08:23:41 +0200
filename | duration |
tests/assert_base64.hurl | 0.005s |
tests/assert_header.hurl | 0.006s |
tests/assert_json.hurl | 0.011s |
tests/assert_match.hurl | 0.02s |
tests/assert_regex.hurl | 0.008s |
tests/assert_xpath.hurl | 0.006s |
tests/bytes.hurl | 0.005s |
tests/capture_and_assert.hurl | 0.005s |
tests/captures.hurl | 0.011s |
tests/compressed.hurl | 0.011s |
tests/cookies.hurl | 0.018s |
tests/cookie_storage.hurl | 0.007s |
tests/delete.hurl | 0.005s |
tests/empty.hurl | 0s |
tests/encoding.hurl | 0.008s |
tests/error_assert_base64.hurl | 0.005s |
tests/error_assert_decompress.hurl | 0.006s |
tests/error_assert_file.hurl | 0.005s |
tests/error_assert_header_not_found.hurl | 0.006s |
tests/error_assert_header_value.hurl | 0.006s |
tests/error_assert_http_version.hurl | 0.005s |
tests/error_assert_invalid_predicate_type.hurl | 0.007s |
tests/error_assert_match_utf8.hurl | 0.005s |
tests/error_assert_query_cookie.hurl | 0.009s |
tests/error_assert_query_invalid_regex.hurl | 0.006s |
tests/error_assert_query_invalid_xpath.hurl | 0.006s |
tests/error_assert_status.hurl | 0.005s |
tests/error_assert_template_variable_not_found.hurl | 0.006s |
tests/error_assert_value_error.hurl | 0.009s |
tests/error_assert_variable.hurl | 0.008s |
tests/error_file_read_access.hurl | 0s |
tests/error_http_connection.hurl | 0.012s |
tests/error_invalid_jsonpath.hurl | 0.006s |
tests/error_invalid_url.hurl | 0s |
tests/error_invalid_xml.hurl | 0.005s |
tests/error_multipart_form_data.hurl | 0s |
tests/error_output_decompress.hurl | 0.005s |
tests/error_predicate.hurl | 0.018s |
tests/error_query_header_not_found.hurl | 0.005s |
tests/error_query_invalid_json.hurl | 0.006s |
tests/error_query_invalid_utf8.hurl | 0.005s |
tests/error_template_variable_not_found.hurl | 0s |
tests/error_template_variable_not_renderable.hurl | 0.006s |
tests/error_timeout.hurl | 2.007s |
tests/follow_redirect.hurl | 0.006s |
tests/form_params.hurl | 0.008s |
tests/headers.hurl | 0.014s |
tests/hello.hurl | 0.007s |
tests/multipart_form_data.hurl | 0.006s |
tests/no_entry.hurl | 0s |
tests/output.hurl | 0.008s |
tests/patch.hurl | 0.006s |
tests/post_base64.hurl | 0.006s |
tests/post_file.hurl | 0.005s |
tests/post_json.hurl | 0.017s |
tests/post_multilines.hurl | 0.009s |
tests/post_xml.hurl | 0.007s |
tests/predicates-string.hurl | 0.008s |
tests/put.hurl | 0.005s |
tests/querystring_params.hurl | 0.011s |
tests/redirect.hurl | 0.007s |
tests/utf8.hurl | 0.006s |
\ No newline at end of file
diff --git a/integration/report/tests.json b/integration/report/tests.json
index 41dcdc506..b2340680c 100644
--- a/integration/report/tests.json
+++ b/integration/report/tests.json
@@ -30,7 +30,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -43,11 +43,11 @@
{},
{}
],
- "time": 6
+ "time": 5
}
],
"success": true,
- "time": 6,
+ "time": 5,
"cookies": []
},
{
@@ -113,7 +113,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -135,11 +135,11 @@
{},
{}
],
- "time": 6
+ "time": 5
}
],
"success": true,
- "time": 7,
+ "time": 6,
"cookies": [
{
"domain": "localhost",
@@ -201,7 +201,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -226,7 +226,7 @@
{},
{}
],
- "time": 6
+ "time": 5
},
{
"request": {
@@ -256,7 +256,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -303,7 +303,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -323,7 +323,7 @@
}
],
"success": true,
- "time": 15,
+ "time": 11,
"cookies": []
},
{
@@ -357,7 +357,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -373,11 +373,11 @@
{},
{}
],
- "time": 6
+ "time": 5
}
],
"success": true,
- "time": 33,
+ "time": 20,
"cookies": []
},
{
@@ -411,7 +411,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -429,7 +429,7 @@
}
],
"success": true,
- "time": 9,
+ "time": 8,
"cookies": []
},
{
@@ -463,7 +463,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -517,7 +517,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -568,7 +568,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -590,7 +590,7 @@
}
],
"success": true,
- "time": 6,
+ "time": 5,
"cookies": []
},
{
@@ -632,7 +632,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -694,7 +694,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -736,7 +736,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -813,12 +813,57 @@
}
],
"success": true,
- "time": 14,
+ "time": 11,
"cookies": []
},
{
"filename": "tests/compressed.hurl",
"entries": [
+ {
+ "request": {
+ "method": "GET",
+ "url": "http://localhost:8000/compressed/none",
+ "queryString": [],
+ "headers": [],
+ "cookies": [],
+ "body": ""
+ },
+ "response": {
+ "httpVersion": "HTTP/1.0",
+ "status": 200,
+ "cookies": [],
+ "headers": [
+ {
+ "name": "Content-Type",
+ "value": "text/html; charset=utf-8"
+ },
+ {
+ "name": "Content-Length",
+ "value": "12"
+ },
+ {
+ "name": "Server",
+ "value": "Werkzeug/0.16.1 Python/3.5.3"
+ },
+ {
+ "name": "Date",
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
+ }
+ ]
+ },
+ "captures": [],
+ "asserts": [
+ {
+ "actual": "1.0",
+ "expected": "1.0"
+ },
+ {},
+ {},
+ {},
+ {}
+ ],
+ "time": 5
+ },
{
"request": {
"method": "GET",
@@ -851,7 +896,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -867,11 +912,111 @@
{},
{}
],
- "time": 5
+ "time": 1
+ },
+ {
+ "request": {
+ "method": "GET",
+ "url": "http://localhost:8000/compressed/zlib",
+ "queryString": [],
+ "headers": [],
+ "cookies": [],
+ "body": ""
+ },
+ "response": {
+ "httpVersion": "HTTP/1.0",
+ "status": 200,
+ "cookies": [],
+ "headers": [
+ {
+ "name": "Content-Type",
+ "value": "text/html; charset=utf-8"
+ },
+ {
+ "name": "Content-Length",
+ "value": "20"
+ },
+ {
+ "name": "Content-Encoding",
+ "value": "deflate"
+ },
+ {
+ "name": "Server",
+ "value": "Werkzeug/0.16.1 Python/3.5.3"
+ },
+ {
+ "name": "Date",
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
+ }
+ ]
+ },
+ "captures": [],
+ "asserts": [
+ {
+ "actual": "1.0",
+ "expected": "1.0"
+ },
+ {},
+ {},
+ {},
+ {},
+ {}
+ ],
+ "time": 1
+ },
+ {
+ "request": {
+ "method": "GET",
+ "url": "http://localhost:8000/compressed/brotli",
+ "queryString": [],
+ "headers": [],
+ "cookies": [],
+ "body": ""
+ },
+ "response": {
+ "httpVersion": "HTTP/1.0",
+ "status": 200,
+ "cookies": [],
+ "headers": [
+ {
+ "name": "Content-Type",
+ "value": "text/html; charset=utf-8"
+ },
+ {
+ "name": "Content-Length",
+ "value": "16"
+ },
+ {
+ "name": "Content-Encoding",
+ "value": "br"
+ },
+ {
+ "name": "Server",
+ "value": "Werkzeug/0.16.1 Python/3.5.3"
+ },
+ {
+ "name": "Date",
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
+ }
+ ]
+ },
+ "captures": [],
+ "asserts": [
+ {
+ "actual": "1.0",
+ "expected": "1.0"
+ },
+ {},
+ {},
+ {},
+ {},
+ {}
+ ],
+ "time": 1
}
],
- "success": false,
- "time": 6,
+ "success": true,
+ "time": 11,
"cookies": []
},
{
@@ -910,7 +1055,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -952,7 +1097,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -1004,7 +1149,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -1047,7 +1192,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -1094,7 +1239,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -1124,7 +1269,7 @@
{
"name": "cookie2",
"value": "",
- "expires": "Mon, 12-Oct-2020 08:24:22 GMT",
+ "expires": "Thu, 15-Oct-2020 06:23:38 GMT",
"max_age": 0,
"path": "/"
}
@@ -1136,7 +1281,7 @@
},
{
"name": "Set-Cookie",
- "value": "cookie2=; Expires=Mon, 12-Oct-2020 08:24:22 GMT; Max-Age=0; Path=/"
+ "value": "cookie2=; Expires=Thu, 15-Oct-2020 06:23:38 GMT; Max-Age=0; Path=/"
},
{
"name": "Content-Length",
@@ -1148,7 +1293,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -1192,7 +1337,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -1272,7 +1417,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -1302,14 +1447,14 @@
}
],
"success": true,
- "time": 21,
+ "time": 18,
"cookies": [
{
"domain": "localhost",
"include_subdomain": "FALSE",
"path": "/",
"https": "FALSE",
- "expires": "1602491062",
+ "expires": "1602743018",
"name": "cookie2",
"value": ""
},
@@ -1355,7 +1500,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -1397,7 +1542,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -1447,7 +1592,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -1504,7 +1649,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -1548,7 +1693,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -1566,7 +1711,7 @@
}
],
"success": true,
- "time": 7,
+ "time": 8,
"cookies": []
},
{
@@ -1600,7 +1745,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -1620,6 +1765,61 @@
"time": 5,
"cookies": []
},
+ {
+ "filename": "tests/error_assert_decompress.hurl",
+ "entries": [
+ {
+ "request": {
+ "method": "GET",
+ "url": "http://localhost:8000/error-assert-decompress",
+ "queryString": [],
+ "headers": [],
+ "cookies": [],
+ "body": ""
+ },
+ "response": {
+ "httpVersion": "HTTP/1.0",
+ "status": 200,
+ "cookies": [],
+ "headers": [
+ {
+ "name": "Content-Encoding",
+ "value": "gzip"
+ },
+ {
+ "name": "Content-Type",
+ "value": "text/html; charset=utf-8"
+ },
+ {
+ "name": "Content-Length",
+ "value": "5"
+ },
+ {
+ "name": "Server",
+ "value": "Werkzeug/0.16.1 Python/3.5.3"
+ },
+ {
+ "name": "Date",
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
+ }
+ ]
+ },
+ "captures": [],
+ "asserts": [
+ {
+ "actual": "1.0",
+ "expected": "1.0"
+ },
+ {},
+ {}
+ ],
+ "time": 5
+ }
+ ],
+ "success": false,
+ "time": 6,
+ "cookies": []
+ },
{
"filename": "tests/error_assert_file.hurl",
"entries": [
@@ -1651,7 +1851,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -1668,7 +1868,7 @@
}
],
"success": false,
- "time": 6,
+ "time": 5,
"cookies": []
},
{
@@ -1702,7 +1902,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -1753,7 +1953,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -1804,7 +2004,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -1854,7 +2054,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -1867,11 +2067,11 @@
{},
{}
],
- "time": 6
+ "time": 5
}
],
"success": false,
- "time": 8,
+ "time": 7,
"cookies": []
},
{
@@ -1905,7 +2105,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -1918,11 +2118,11 @@
{},
{}
],
- "time": 6
+ "time": 5
}
],
"success": false,
- "time": 6,
+ "time": 5,
"cookies": []
},
{
@@ -1976,7 +2176,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -1992,11 +2192,11 @@
{},
{}
],
- "time": 6
+ "time": 5
}
],
"success": false,
- "time": 10,
+ "time": 9,
"cookies": [
{
"domain": "localhost",
@@ -2049,7 +2249,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -2100,7 +2300,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -2151,7 +2351,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -2201,7 +2401,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:22 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -2252,7 +2452,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:23 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -2271,7 +2471,7 @@
}
],
"success": false,
- "time": 10,
+ "time": 9,
"cookies": []
},
{
@@ -2305,7 +2505,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:23 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -2372,7 +2572,7 @@
}
],
"success": false,
- "time": 124,
+ "time": 12,
"cookies": []
},
{
@@ -2406,7 +2606,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:23 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -2478,7 +2678,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:23 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -2495,7 +2695,7 @@
}
],
"success": false,
- "time": 6,
+ "time": 5,
"cookies": []
},
{
@@ -2511,6 +2711,60 @@
"time": 0,
"cookies": []
},
+ {
+ "filename": "tests/error_output_decompress.hurl",
+ "entries": [
+ {
+ "request": {
+ "method": "GET",
+ "url": "http://localhost:8000/error-output-decompress",
+ "queryString": [],
+ "headers": [],
+ "cookies": [],
+ "body": ""
+ },
+ "response": {
+ "httpVersion": "HTTP/1.0",
+ "status": 200,
+ "cookies": [],
+ "headers": [
+ {
+ "name": "Content-Encoding",
+ "value": "gzip"
+ },
+ {
+ "name": "Content-Type",
+ "value": "text/html; charset=utf-8"
+ },
+ {
+ "name": "Content-Length",
+ "value": "5"
+ },
+ {
+ "name": "Server",
+ "value": "Werkzeug/0.16.1 Python/3.5.3"
+ },
+ {
+ "name": "Date",
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
+ }
+ ]
+ },
+ "captures": [],
+ "asserts": [
+ {
+ "actual": "1.0",
+ "expected": "1.0"
+ },
+ {}
+ ],
+ "time": 5
+ }
+ ],
+ "success": true,
+ "time": 5,
+ "cookies": []
+ },
{
"filename": "tests/error_predicate.hurl",
"entries": [
@@ -2542,7 +2796,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:23 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -2569,7 +2823,7 @@
}
],
"success": false,
- "time": 21,
+ "time": 18,
"cookies": []
},
{
@@ -2603,7 +2857,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:23 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -2654,7 +2908,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:23 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -2705,7 +2959,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:23 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -2722,7 +2976,7 @@
}
],
"success": false,
- "time": 6,
+ "time": 5,
"cookies": []
},
{
@@ -2769,7 +3023,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:23 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:38 GMT"
}
]
},
@@ -2799,7 +3053,7 @@
}
],
"success": false,
- "time": 7,
+ "time": 6,
"cookies": []
},
{
@@ -2833,7 +3087,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -2881,7 +3135,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -2950,7 +3204,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -2997,7 +3251,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -3047,7 +3301,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -3098,7 +3352,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -3149,7 +3403,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -3212,7 +3466,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -3259,7 +3513,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -3305,7 +3559,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -3356,7 +3610,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -3399,7 +3653,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -3412,11 +3666,11 @@
{},
{}
],
- "time": 2
+ "time": 1
}
],
"success": true,
- "time": 8,
+ "time": 7,
"cookies": []
},
{
@@ -3450,7 +3704,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -3462,11 +3716,11 @@
},
{}
],
- "time": 7
+ "time": 6
}
],
"success": true,
- "time": 7,
+ "time": 6,
"cookies": []
},
{
@@ -3519,7 +3773,7 @@
},
{}
],
- "time": 5
+ "time": 6
},
{
"request": {
@@ -3565,7 +3819,7 @@
}
],
"success": true,
- "time": 7,
+ "time": 8,
"cookies": []
},
{
@@ -3616,7 +3870,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -3668,7 +3922,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -3718,7 +3972,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -3734,7 +3988,7 @@
}
],
"success": true,
- "time": 6,
+ "time": 5,
"cookies": []
},
{
@@ -3768,7 +4022,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -3810,7 +4064,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -3852,7 +4106,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -3894,7 +4148,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -3936,7 +4190,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -3978,7 +4232,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -4020,7 +4274,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -4067,7 +4321,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -4077,7 +4331,7 @@
}
],
"success": true,
- "time": 19,
+ "time": 17,
"cookies": []
},
{
@@ -4111,7 +4365,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -4153,7 +4407,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -4200,7 +4454,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -4250,7 +4504,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -4262,7 +4516,7 @@
},
{}
],
- "time": 6
+ "time": 5
},
{
"request": {
@@ -4292,7 +4546,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:40 GMT"
}
]
},
@@ -4304,11 +4558,11 @@
},
{}
],
- "time": 2
+ "time": 1
}
],
"success": true,
- "time": 8,
+ "time": 7,
"cookies": []
},
{
@@ -4342,7 +4596,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:41 GMT"
}
]
},
@@ -4358,7 +4612,7 @@
{},
{}
],
- "time": 6
+ "time": 5
},
{
"request": {
@@ -4388,7 +4642,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:41 GMT"
}
]
},
@@ -4406,7 +4660,7 @@
}
],
"success": true,
- "time": 9,
+ "time": 8,
"cookies": []
},
{
@@ -4440,7 +4694,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:41 GMT"
}
]
},
@@ -4507,7 +4761,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:41 GMT"
}
]
},
@@ -4519,7 +4773,7 @@
},
{}
],
- "time": 6
+ "time": 5
},
{
"request": {
@@ -4549,7 +4803,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:41 GMT"
}
]
},
@@ -4561,7 +4815,7 @@
},
{}
],
- "time": 2
+ "time": 1
},
{
"request": {
@@ -4604,7 +4858,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:41 GMT"
}
]
},
@@ -4616,7 +4870,7 @@
},
{}
],
- "time": 2
+ "time": 1
},
{
"request": {
@@ -4651,7 +4905,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:41 GMT"
}
]
},
@@ -4663,11 +4917,11 @@
},
{}
],
- "time": 2
+ "time": 1
}
],
"success": true,
- "time": 14,
+ "time": 11,
"cookies": []
},
{
@@ -4705,7 +4959,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:41 GMT"
}
]
},
@@ -4718,7 +4972,7 @@
{},
{}
],
- "time": 6
+ "time": 5
},
{
"request": {
@@ -4748,7 +5002,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:41 GMT"
}
]
},
@@ -4764,7 +5018,7 @@
}
],
"success": true,
- "time": 9,
+ "time": 7,
"cookies": []
},
{
@@ -4798,7 +5052,7 @@
},
{
"name": "Date",
- "value": "Mon, 12 Oct 2020 08:24:25 GMT"
+ "value": "Thu, 15 Oct 2020 06:23:41 GMT"
}
]
},
@@ -4812,7 +5066,7 @@
{},
{}
],
- "time": 6
+ "time": 5
}
],
"success": true,
diff --git a/integration/tests/compressed.hurl b/integration/tests/compressed.hurl
index b1a221455..c983d7ced 100644
--- a/integration/tests/compressed.hurl
+++ b/integration/tests/compressed.hurl
@@ -1,3 +1,10 @@
+# -- COMPRESSED HAS NO EFFECT ON NON-COMPRESSED
+GET http://localhost:8000/compressed/none
+HTTP/1.0 200
+Content-Length: 12
+Content-Type: text/html; charset=utf-8
+```Hello World!```
+
GET http://localhost:8000/compressed/gzip
HTTP/1.0 200
Content-Length: 32
@@ -5,9 +12,16 @@ Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
```Hello World!```
-# -- COMPRESSED HAS NO EFFECT ON NON-COMPRESSED
-GET http://localhost:8000/compressed/none
+GET http://localhost:8000/compressed/zlib
HTTP/1.0 200
-Content-Length: 12
+Content-Length: 20
+Content-Encoding: deflate
+Content-Type: text/html; charset=utf-8
+```Hello World!```
+
+GET http://localhost:8000/compressed/brotli
+HTTP/1.0 200
+Content-Length: 16
+Content-Encoding: br
Content-Type: text/html; charset=utf-8
```Hello World!```
\ No newline at end of file
diff --git a/integration/tests/compressed.py b/integration/tests/compressed.py
index 59e9fff04..67d4b951e 100644
--- a/integration/tests/compressed.py
+++ b/integration/tests/compressed.py
@@ -5,16 +5,31 @@ from io import BytesIO
@app.route("/compressed/gzip")
def compressed_gzip():
result = BytesIO()
- # echo -n 'Hello World!' | gzip -f | hexdump -C
- #result.write(b'\x1f\x8b\x08\x00\x0e\x2e\x83\x5f\x00\x03\xf3\x48\xcd\xc9\xc9\x57\x08\xcf\x2f\xca\x49\x51\xe4\x02\x00\xdd\xdd\x14\x7d\x0d')
- # 1f 8b 08 00 ed 0c 84 5f 00 03 f3 48 cd c9 c9 57 08 cf 2f ca 49 51 04 00 a3 1c 29 1c 0c 00 00 00
result.write(b'\x1f\x8b\x08\x00\xed\x0c\x84\x5f\x00\x03\xf3\x48\xcd\xc9\xc9\x57\x08\xcf\x2f\xca\x49\x51\x04\x00\xa3\x1c\x29\x1c\x0c\x00\x00\x00')
-
data = result.getvalue()
resp = make_response(data)
resp.headers['Content-Encoding'] = 'gzip'
return resp
+@app.route("/compressed/zlib")
+def compressed_zlib():
+ result = BytesIO()
+ result.write(b'\x78\x9c\xf3\x48\xcd\xc9\xc9\x57\x08\xcf\x2f\xca\x49\x51\x04\x00\x1c\x49\x04\x3e')
+ data = result.getvalue()
+ resp = make_response(data)
+ resp.headers['Content-Encoding'] = 'deflate'
+ return resp
+
+@app.route("/compressed/brotli")
+def compressed_brotli():
+ result = BytesIO()
+
+ result.write(b'\x21\x2c\x00\x04\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x21')
+ data = result.getvalue()
+ resp = make_response(data)
+ resp.headers['Content-Encoding'] = 'br'
+ return resp
+
@app.route("/compressed/none")
def compressed_none():
return 'Hello World!'
\ No newline at end of file
diff --git a/integration/tests/error_assert_decompress.err b/integration/tests/error_assert_decompress.err
new file mode 100644
index 000000000..bf96c1d1a
--- /dev/null
+++ b/integration/tests/error_assert_decompress.err
@@ -0,0 +1,7 @@
+error: Decompression Error
+ --> tests/error_assert_decompress.hurl:1:1
+ |
+ 1 | GET http://localhost:8000/error-assert-decompress
+ | ^ Could not uncompress response with gzip
+ |
+
diff --git a/integration/tests/error_assert_decompress.exit b/integration/tests/error_assert_decompress.exit
new file mode 100644
index 000000000..b8626c4cf
--- /dev/null
+++ b/integration/tests/error_assert_decompress.exit
@@ -0,0 +1 @@
+4
diff --git a/integration/tests/error_assert_decompress.hurl b/integration/tests/error_assert_decompress.hurl
new file mode 100644
index 000000000..576851cc4
--- /dev/null
+++ b/integration/tests/error_assert_decompress.hurl
@@ -0,0 +1,4 @@
+GET http://localhost:8000/error-assert-decompress
+HTTP/1.0 200
+```Hello World!```
+
diff --git a/integration/tests/error_assert_decompress.options b/integration/tests/error_assert_decompress.options
new file mode 100644
index 000000000..cb691d599
--- /dev/null
+++ b/integration/tests/error_assert_decompress.options
@@ -0,0 +1 @@
+--compressed
diff --git a/integration/tests/error_assert_decompressed.py b/integration/tests/error_assert_decompressed.py
new file mode 100644
index 000000000..bfc131ccd
--- /dev/null
+++ b/integration/tests/error_assert_decompressed.py
@@ -0,0 +1,8 @@
+from tests import app
+from flask import Response
+
+@app.route("/error-assert-decompress")
+def error_assert_decompress():
+ headers = {}
+ headers['Content-Encoding'] = 'gzip'
+ return Response('Hello', headers=headers)
\ No newline at end of file
diff --git a/integration/tests/error_output_decompress.err b/integration/tests/error_output_decompress.err
new file mode 100644
index 000000000..f37950c91
--- /dev/null
+++ b/integration/tests/error_output_decompress.err
@@ -0,0 +1 @@
+warning: Could not uncompress response with gzip
diff --git a/integration/tests/error_output_decompress.exit b/integration/tests/error_output_decompress.exit
new file mode 100644
index 000000000..e440e5c84
--- /dev/null
+++ b/integration/tests/error_output_decompress.exit
@@ -0,0 +1 @@
+3
\ No newline at end of file
diff --git a/integration/tests/error_output_decompress.hurl b/integration/tests/error_output_decompress.hurl
new file mode 100644
index 000000000..44e6baff7
--- /dev/null
+++ b/integration/tests/error_output_decompress.hurl
@@ -0,0 +1,4 @@
+GET http://localhost:8000/error-output-decompress
+HTTP/1.0 200
+
+
diff --git a/integration/tests/error_output_decompress.options b/integration/tests/error_output_decompress.options
new file mode 100644
index 000000000..cb691d599
--- /dev/null
+++ b/integration/tests/error_output_decompress.options
@@ -0,0 +1 @@
+--compressed
diff --git a/integration/tests/error_output_decompress.py b/integration/tests/error_output_decompress.py
new file mode 100644
index 000000000..9aab544e4
--- /dev/null
+++ b/integration/tests/error_output_decompress.py
@@ -0,0 +1,8 @@
+from tests import app
+from flask import Response
+
+@app.route("/error-output-decompress")
+def error_output_decompress():
+ headers = {}
+ headers['Content-Encoding'] = 'gzip'
+ return Response('Hello', headers=headers)
\ No newline at end of file
diff --git a/integration/tests/error_output_decompressed.options b/integration/tests/error_output_decompressed.options
new file mode 100644
index 000000000..cb691d599
--- /dev/null
+++ b/integration/tests/error_output_decompressed.options
@@ -0,0 +1 @@
+--compressed
diff --git a/src/bin/hurl.rs b/src/bin/hurl.rs
index bd9b793ae..a50512dad 100644
--- a/src/bin/hurl.rs
+++ b/src/bin/hurl.rs
@@ -27,7 +27,9 @@ use atty::Stream;
use chrono::{DateTime, Local};
use clap::{AppSettings, ArgMatches};
+use hurl::ast::{Pos, SourceInfo};
use hurl::cli;
+use hurl::cli::Error;
use hurl::html;
use hurl::http;
use hurl::parser;
@@ -124,7 +126,6 @@ fn execute(
let timeout = cli_options.timeout;
let connect_timeout = cli_options.connect_timeout;
- let compressed = cli_options.compressed;
let options = http::ClientOptions {
follow_location,
max_redirect,
@@ -135,7 +136,6 @@ fn execute(
insecure,
timeout,
connect_timeout,
- compressed,
};
let mut client = http::Client::init(options);
@@ -588,6 +588,7 @@ fn main() {
}
fs::read_to_string(filename).expect("Something went wrong reading the file")
};
+
let hurl_result = execute(
filename,
contents,
@@ -617,10 +618,32 @@ fn main() {
}
cli::log_info("");
}
-
+ let body = if cli_options.compressed {
+ match response.uncompress_body() {
+ Ok(bytes) => bytes,
+ Err(e) => {
+ log_error_message(
+ false,
+ runner::Error {
+ source_info: SourceInfo {
+ start: Pos { line: 0, column: 0 },
+ end: Pos { line: 0, column: 0 },
+ },
+ inner: e,
+ assert: false,
+ }
+ .fixme()
+ .as_str(),
+ );
+ std::process::exit(3);
+ }
+ }
+ } else {
+ response.body
+ };
unwrap_or_exit(
&log_error_message,
- write_output(response.body, matches.value_of("output")),
+ write_output(body, matches.value_of("output")),
);
} else {
cli::log_info("no response has been received");
diff --git a/src/cli/error.rs b/src/cli/error.rs
index a4d990057..e2a614312 100644
--- a/src/cli/error.rs
+++ b/src/cli/error.rs
@@ -124,6 +124,8 @@ impl Error for runner::Error {
RunnerError::AssertFailure { .. } => "Assert Failure".to_string(),
RunnerError::UnrenderableVariable { .. } => "Unrenderable Variable".to_string(),
RunnerError::NoQueryResult { .. } => "No query result".to_string(),
+ RunnerError::UnsupportedContentEncoding(..) => "Decompression Error".to_string(),
+ RunnerError::CouldNotUncompressResponse(..) => "Decompression Error".to_string(),
}
}
@@ -196,6 +198,12 @@ impl Error for runner::Error {
format!("value {} can not be rendered", value)
}
RunnerError::NoQueryResult { .. } => "The query didn't return any result".to_string(),
+ RunnerError::UnsupportedContentEncoding(algorithm) => {
+ format!("Compression {} is not supported", algorithm)
+ }
+ RunnerError::CouldNotUncompressResponse(algorithm) => {
+ format!("Could not uncompress response with {}", algorithm)
+ }
}
}
}
diff --git a/src/cli/mod.rs b/src/cli/mod.rs
index 7d5a2b11b..fee3d093c 100644
--- a/src/cli/mod.rs
+++ b/src/cli/mod.rs
@@ -16,6 +16,7 @@
*
*/
+pub use self::error::Error;
pub use self::logger::{
log_info, make_logger_error_message, make_logger_linter_error, make_logger_parser_error,
make_logger_runner_error, make_logger_verbose,
diff --git a/src/http/client.rs b/src/http/client.rs
index 3e98c6986..e83929958 100644
--- a/src/http/client.rs
+++ b/src/http/client.rs
@@ -65,7 +65,6 @@ pub struct ClientOptions {
pub insecure: bool,
pub timeout: Duration,
pub connect_timeout: Duration,
- pub compressed: bool,
}
impl Client {
@@ -98,9 +97,6 @@ impl Client {
h.timeout(options.timeout).unwrap();
h.connect_timeout(options.connect_timeout).unwrap();
- if options.compressed {
- h.accept_encoding("br, gzip, deflate").unwrap();
- }
Client {
handle: Box::new(h),
follow_location: options.follow_location,
diff --git a/src/runner/content_decoding.rs b/src/runner/content_decoding.rs
new file mode 100644
index 000000000..7cf30dbec
--- /dev/null
+++ b/src/runner/content_decoding.rs
@@ -0,0 +1,211 @@
+/*
+ * hurl (https://hurl.dev)
+ * Copyright (C) 2020 Orange
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+///
+/// Uncompress body response
+/// using the Content-Encoding response header
+///
+use std::io::prelude::*;
+
+use crate::http;
+
+use super::core::RunnerError;
+
+#[derive(Clone, Debug, PartialEq, Eq)]
+pub enum Encoding {
+ Brotli,
+ Gzip,
+ Deflate,
+ Identity,
+}
+
+impl http::Response {
+ fn content_encoding(&self) -> Result